Explorar o código

Geffen Magic Tournament instance - Semi-official implementation

Big thanks to @RagnarokNova for creating this script with the help of
@tokeiburu, Diablo and others. I simply converted it to be compliant
with rAthena master standard. Hope you guys enjoy it and report any bugs
:)

To clarify on the semi-official part: This script was made from scratch
by playing on iRO and may have inconsistencies with the official
version. If you want to use this on your server you must enable it
yourself by uncommenting the entry in scripts_athena.conf.
Locien %!s(int64=8) %!d(string=hai) anos
pai
achega
be1c0ee1e6

+ 1 - 0
db/re/instance_db.txt

@@ -19,3 +19,4 @@
 12,Old Glast Heim,3600,300,1@gl_k,150,20,2@gl_k
 13,Eclage Interior,1200,300,1@ecl,60,50
 14,Sara's Memories,3600,300,1@sara,250,155
+15,Geffen Magic Tournament,7200,300,1@gef,119,209,1@gef_in,1@ge_st

+ 21 - 21
db/re/mob_db.txt

@@ -1703,26 +1703,26 @@
 2546,GUARDDOG2,2nd Guard Dog,2nd Guard Dog,101,21099,1,1014,2673,1,573,229,66,36,20,46,25,35,64,30,10,12,1,2,23,0x3095,120,73,348,288,0,0,0,0,0,0,0,12045,466,7478,1,12050,466,12055,466,12060,466,12065,466,12070,466,12126,200,0,0,0,0
 //2547,MER_GARM_BABY
 //2548,MER_HILLSRION
-//2549,GEFFEN_MAGE_1
-//2550,GEFFEN_MAGE_2
-//2551,GEFFEN_MAGE_3_1
-//2552,GEFFEN_MAGE_3_2
-//2553,GEFFEN_MAGE_3_3
-//2554,GEFFEN_MAGE_4
-//2555,GEFFEN_MAGE_5
-//2556,GEFFEN_MAGE_6
-//2557,GEFFEN_MAGE_7
-//2558,GEFFEN_MAGE_8
-//2559,GEFFEN_MAGE_9
-//2560,GEFFEN_MAGE_10
-//2561,GEFFEN_MAGE_11
-//2562,GEFFEN_MAGE_12
-//2563,FEI_KANABIAN
-//2564,GEFFEN_FENRIR
-//2565,ALPHONSE
-//2566,ALPHONSE_JR
-//2567,E_GEFFEN_MAGE_3_2
-//2568,E_GEFFEN_MAGE_3_3
+2549,GEFFEN_MAGE_1,Arhi,Arhi,90,100000,1,8900,4550,1,329,424,64,38,50,50,50,50,130,50,10,12,1,7,20,0x85,200,1000,864,480,0,0,0,0,0,0,0,0,,0,,0,,0,,0,,0,,0,,0,0,0,0,0,
+2550,GEFFEN_MAGE_2,Dio Anemos,Dio Anemos,95,200000,1,9440,4430,1,478,649,129,18,40,40,50,80,130,60,10,12,1,7,20,0x85,200,900,672,480,0,0,0,0,0,0,0,1095,10000,0,,0,,0,,0,,0,,0,,0,0,0,0,0,
+2551,GEFFEN_MAGE_3_1,Geffen Shoplifter,Geffen Shoplifter,100,300000,1,9780,3665,1,478,632,93,36,70,70,40,40,140,60,10,12,1,7,20,0x85,200,800,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2552,GEFFEN_MAGE_3_2,Geffen Bully,Geffen Bully,100,300000,1,9780,3665,1,478,632,93,36,70,50,70,40,140,40,10,12,1,7,20,0x85,200,900,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2553,GEFFEN_MAGE_3_3,Geffen Gang Member,Geffen Gang Member,100,300000,1,9780,3665,1,468,622,93,36,60,80,30,30,140,70,10,12,1,7,20,0x85,200,950,864,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2554,GEFFEN_MAGE_4,Faymont,Faymont,105,400000,1,11660,4370,1,477,633,114,21,60,60,60,60,140,60,10,12,1,7,20,0x85,200,672,648,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2555,GEFFEN_MAGE_5,Ordre,Ordre,110,600000,1,15610,4861,1,654,906,107,21,40,70,40,100,150,60,10,12,1,7,20,0x85,200,768,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2556,GEFFEN_MAGE_6,Blut Hase,Blut Hase,120,1000000,1,20560,10010,1,480,601,66,47,120,120,120,50,150,60,10,12,1,7,48,0x85,200,800,768,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2557,GEFFEN_MAGE_7,Kuro Akuma,Kuro Akuma,130,1200000,1,26100,12030,1,761,1026,135,10,100,100,100,100,145,100,10,12,1,7,20,0x85,200,1000,864,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2558,GEFFEN_MAGE_8,Ifodes,Ifodes,140,1400000,1,46150,18900,1,676,869,120,60,150,100,100,50,170,100,10,12,1,7,20,0x85,200,800,768,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2559,GEFFEN_MAGE_9,Licheniyes,Licheniyes,145,1600000,1,52060,24105,1,763,1048,140,57,50,100,50,200,220,75,10,12,1,7,20,0x85,200,864,768,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2560,GEFFEN_MAGE_10,Odoric,Odoric,150,2000000,1,60027,40237,1,950,1250,165,62,200,150,50,50,170,100,10,12,1,7,20,0x85,200,800,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2561,GEFFEN_MAGE_11,Ju,Ju,155,5000000,1,75335,52130,1,1045,1465,170,65,50,100,100,200,220,100,10,12,1,7,20,0x85,200,800,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2562,GEFFEN_MAGE_12,Dwigh,Dwigh,160,7000000,1,151317,123000,1,1410,2010,175,65,50,100,100,250,220,100,10,12,1,7,48,0x6200085,200,800,768,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2563,FEI_KANABIAN,Fei Kanabian,Fay Kanavian,160,8000000,1,157975,110571,1,1710,2460,175,65,50,100,100,250,220,100,10,12,1,7,48,0x6200085,200,720,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2564,GEFFEN_FENRIR,Geffen Fenrir,Fenrir,160,20000000,1,323300,300000,1,2160,3060,200,70,200,100,200,200,220,100,10,12,1,7,48,0x6200085,200,900,864,480,0,0,0,0,0,0,0,22511,100,22511,100,22511,100,22511,100,22511,100,22511,100,0,0,0,0,0,0,4556,1
+2565,ALPHONSE,Alphonse,Alphonse,150,1000000,1,0,0,1,650,850,100,20,100,100,50,50,170,100,10,12,1,7,42,0x85,200,1400,816,396,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2566,ALPHONSE_JR,Alphonse Jr,Alphonse Jr,150,100000,1,0,0,1,450,550,80,20,100,100,50,50,170,100,10,12,1,7,62,0x85,200,936,792,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2567,E_GEFFEN_MAGE_3_2,Geffen Bully,Geffen Bully,50,10000,1,212,227,1,89,111,70,7,41,14,15,0,100,5,10,12,1,7,20,0x85,200,900,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2568,E_GEFFEN_MAGE_3_3,Geffen Gang Member,Geffen Gang Member,50,10000,1,212,227,1,89,111,70,7,41,14,15,0,100,5,10,12,1,7,20,0x85,200,950,864,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 //2569,G_ANOPHELES
 //2570,G_BREEZE
 //2571,G_BUTOIJO
@@ -2068,7 +2068,7 @@
 2911,C1_AGAV,Swift Agav,Swift Agav,128,200000,200000,12780,26520,1,1069,1497,77,82,85,66,55,113,120,61,10,12,1,7,80,0x3295,300,768,360,360,0,0,0,0,0,0,0,7567,2500,2422,2,7563,4000,2109,1,12183,50,7563,100,1061,2500,0,0,0,0,4409,1
 2912,C2_ACIDUS_,Solid Acidus,Solid Acidus,130,407180,407180,14690,30480,2,1660,2372,98,47,106,110,61,53,133,53,10,12,2,9,44,0x3095,180,168,768,360,0,0,0,0,0,0,0,505,150,1035,4000,2890,10,1036,3589,7446,800,996,20,7446,100,0,0,0,0,4379,1
 2913,C3_ACIDUS_,Acidus Ringleader,Acidus Ringleader,130,203590,203590,14690,30480,2,1660,2372,98,47,106,110,61,53,133,53,10,12,2,9,44,0x3095,180,168,768,360,0,0,0,0,0,0,0,505,150,1035,4000,2890,10,1036,3589,7446,800,996,20,7446,100,0,0,0,0,4379,1
-//2914,E_GEFFEN_MAGE_3_1
+2914,E_GEFFEN_MAGE_3_1,Geffen Shoplifter,Geffen Shoplifter,50,10000,1,212,227,1,89,111,70,7,41,14,15,0,100,5,10,12,1,7,20,0x85,200,800,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 //2915,HIDDEN_MOB6
 2916,BIG_BEN,Big Ben,Big Ben,150,220240,1,7447,7005,1,3101,3313,125,43,102,58,69,75,131,49,10,12,1,0,42,0x91,200,1092,792,480,0,0,0,0,0,0,0,1095,3000,1019,500,509,950,568,160,757,100,22515,15,22515,15,0,0,0,0,4626,1
 2917,BIG_BELL,Big Bell,Big Bell,163,166860,1,7513,8457,1,4785,4977,138,53,102,104,72,57,98,57,10,12,1,0,60,0x3695,300,1020,500,768,0,0,0,0,0,0,0,1095,3000,2607,1,7005,750,984,100,912,750,22515,10,0,0,0,0,0,0,4627,1

+ 57 - 0
db/re/mob_skill_db.txt

@@ -8852,6 +8852,63 @@
 //2542,Irene Elder@NPC_MILLENNIUMSHIELD,attack,707,1,5000,1000,30000,no,self,always,0,,,,,,,
 //2542,Irene Elder@NPC_MILLENNIUMSHIELD,chase,707,1,5000,1000,30000,no,self,always,0,,,,,,,
 
+//Geffen Magic Tournament
+2549,[PH] 게펜마법사1@MG_FIREBOLT,attack,19,5,3000,1000,3000,yes,target,always,0,,,,,,,
+2549,[PH] 게펜마법사1@MG_FIREWALL,attack,18,1,3000,2000,3000,yes,target,always,0,,,,,,,
+2550,[PH] 게펜마법사2@MG_FROSTDIVER,attack,15,5,3000,1000,3000,yes,target,always,0,,,,,,,
+2550,[PH] 게펜마법사2@MG_THUNDERSTORM,attack,21,3,3000,2000,3000,yes,target,always,0,,,,,,,
+2551,[PH] 게펜마법사3 1@NPC_COMBOATTACK,attack,171,2,5000,0,3000,yes,target,always,0,,,,,,,
+2551,[PH] 게펜마법사3 1@MG_STONECURSE,attack,16,5,5000,1000,5000,yes,target,always,0,,,,,,,
+2551,[PH] 게펜마법사3 1@TF_POISON,attack,52,3,3000,0,5000,yes,target,always,0,,,,,,,
+2552,[PH] 게펜마법사3 2@BS_HAMMERFALL,attack,110,5,5000,1000,10000,yes,target,always,0,,,,,,,
+2552,[PH] 게펜마법사3 2@NPC_POWERUP,attack,349,5,5000,1000,25000,yes,self,always,0,,,,,,,
+2553,[PH] 게펜마법사3 3@ASC_BREAKER,attack,379,1,3000,1000,5000,yes,target,always,0,,,,,,,
+2553,[PH] 게펜마법사3 3@AS_VENOMDUST,attack,140,10,3000,1000,5000,yes,target,always,0,,,,,,,
+2554,[PH] 게펜마법사4@AL_INCAGI,idle,29,10,10000,1000,10000,yes,self,always,0,,,,,,,
+2554,[PH] 게펜마법사4@AL_INCAGI,attack,29,10,3000,1000,10000,yes,self,always,0,,,,,,,
+2554,[PH] 게펜마법사4@AL_DECAGI,attack,30,48,3000,1000,10000,yes,target,always,0,,,,,,,
+2554,[PH] 게펜마법사4@NPC_COMBOATTACK,attack,171,3,5000,0,3000,yes,target,always,0,,,,,,,
+2555,[PH] 게펜마법사5@MG_COLDBOLT,attack,14,5,3000,1000,5000,yes,target,always,0,,,,,,,
+2555,[PH] 게펜마법사5@WZ_STORMGUST,attack,89,1,3000,3000,10000,yes,target,always,0,,,,,,,
+2555,[PH] 게펜마법사5@WZ_FROSTNOVA,attack,88,5,3000,1000,5000,yes,self,always,0,,,,,,,
+2556,[PH] 게펜마법사6@CR_AUTOGUARD,attack,249,5,3000,500,5000,yes,self,always,0,,,,,,,
+2556,[PH] 게펜마법사6@CR_GRANDCROSS,attack,254,5,3000,1000,10000,yes,self,always,0,,,,,,,
+2557,[PH] 게펜마법사7@NPC_BLEEDING,attack,660,5,5000,0,10000,yes,target,always,0,,,,,,,
+2557,[PH] 게펜마법사7@NPC_WIDESOULDRAIN,attack,680,3,3000,500,10000,no,self,always,0,,,,,,,
+2557,[PH] 게펜마법사7@NPC_COMBOATTACK,attack,171,10,3000,1000,10000,yes,target,always,0,,,,,,,
+2557,[PH] 게펜마법사7@NPC_INVISIBLE,attack,353,1,2000,1000,60000,yes,self,always,0,,,,,,,
+2558,[PH] 게펜마법사8@LK_SPIRALPIERCE,attack,397,5,3000,1000,10000,yes,target,always,0,,,,,,,
+2558,[PH] 게펜마법사8@SM_ENDURE,attack,8,10,3000,0,10000,yes,self,always,0,,,,,,,
+2558,[PH] 게펜마법사8@SM_MAGNUM,attack,7,25,3000,500,5000,yes,self,always,0,,,,,,,
+2558,[PH] 게펜마법사8@NPC_MILLENNIUMSHIELD,attack,707,1,3000,1000,10000,yes,self,always,0,,,,,,,
+2559,[PH] 게펜마법사9@NPC_HOLYATTACK,attack,189,10,3000,500,5000,yes,target,always,0,,,,,,,
+2559,[PH] 게펜마법사9@AL_HEAL,attack,28,8,3000,0,5000,yes,self,always,0,,,,,,,
+2559,[PH] 게펜마법사9@AL_PNEUMA,attack,25,1,3000,1000,10000,yes,self,always,0,,,,,,,
+2560,[PH] 게펜마법사10@NPC_MENTALBREAKER,attack,159,4,2000,1500,10000,no,target,always,0,,,,,,,
+2560,[PH] 게펜마법사10@AC_DOUBLE,attack,46,5,3000,500,5000,yes,target,always,0,,,,,,,
+2560,[PH] 게펜마법사10@HT_ANKLESNARE,attack,117,1,2000,1000,10000,yes,around2,always,0,,,,,,,
+2560,[PH] 게펜마법사10@HT_FLASHER,attack,120,1,2000,1000,10000,yes,around2,always,0,,,,,,,
+2561,[PH] 게펜마법사11@MG_FIREBOLT,attack,19,5,1000,500,15000,yes,target,always,0,,,,,,,
+2561,[PH] 게펜마법사11@MG_COLDBOLT,attack,14,5,1000,500,15000,yes,target,always,0,,,,,,,
+2561,[PH] 게펜마법사11@MG_LIGHTNINGBOLT,attack,20,5,1000,500,10000,yes,target,always,0,,,,,,,
+2561,[PH] 게펜마법사11@WZ_EARTHSPIKE,attack,90,5,1000,500,15000,yes,target,always,0,,,,,,,
+2561,[PH] 게펜마법사11@PF_SPIDERWEB,attack,405,1,1000,1000,15000,yes,target,always,0,,,,,,,
+2561,[PH] 게펜마법사11@RG_STRIPSHIELD,attack,216,5,3000,1000,30000,yes,target,always,0,,,,,,,
+2562,[PH] 게펜마법사12@NPC_SLOWCAST,attack,672,5,1000,1000,15000,yes,self,always,0,,,,,,,
+2562,[PH] 게펜마법사12@MG_SOULSTRIKE,attack,13,10,1000,500,10000,yes,target,always,0,,,,,,,
+2562,[PH] 게펜마법사12@WZ_FIREPILLAR,attack,80,5,3000,500,5000,yes,around2,always,0,,,,,,,
+2562,[PH] 게펜마법사12@WZ_VERMILION,attack,85,5,1000,2000,15000,yes,target,always,0,,,,,,,
+2563,Fei Kanabian@AM_DEMONSTRATION,attack,229,5,2000,500,15000,yes,target,always,0,,,,,,,
+2563,Fei Kanabian@AM_ACIDTERROR,attack,230,5,2000,1000,15000,yes,target,always,0,,,,,,,
+2563,Fei Kanabian@AM_POTIONPITCHER,attack,231,4,3000,1000,10000,yes,self,always,0,,,,,,,
+2564,Geffen Fenrir@NPC_SHIELDBRAKE,attack,346,10,3000,1000,10000,yes,target,always,0,,,,,,,
+2564,Geffen Fenrir@WL_EARTHSTRAIN,attack,2216,5,3000,3000,30000,yes,target,always,0,,,,,,,
+2564,Geffen Fenrir@NPC_COMET,attack,708,5,2000,5000,30000,yes,self,always,0,,,,,,,
+2564,Geffen Fenrir@WL_TETRAVORTEX,attack,2217,5,1000,5000,30000,yes,target,always,0,,,,,,,
+2565,Alphonse@SM_BASH,attack,5,5,1000,500,10000,yes,target,always,0,,,,,,,
+2566,Alphonse Jr@PR_LEXDIVINA,attack,76,1,1000,2000,60000,yes,target,always,0,,,,,,,
+2566,Alphonse Jr@PR_LEXAETERNA,attack,78,1,1000,500,10000,yes,target,always,0,,,,,,,
+
 // Champion Monsters
 2603,Swift Zombie Slaughter@AL_TELEPORT,attack,26,1,500,0,5000,yes,self,myhpltmaxrate,50,,,,,,,
 2603,Swift Zombie Slaughter@AL_HEAL,attack,28,5,10000,500,5000,yes,self,myhpltmaxrate,50,,,,,,,

+ 35 - 0
db/re/quest_db.txt

@@ -1771,6 +1771,41 @@
 9260,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Survey investigation notes"
 9262,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Mystery Robbery Incident 16"
 
+//Geffen Magic Tournament
+9284,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
+9285,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
+9286,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
+9287,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
+9288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
+9289,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
+9290,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
+9291,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
+9292,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
+9293,0,1106,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
+9294,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
+9295,0,2549,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
+9296,0,2550,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
+9297,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
+9298,0,2553,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
+9299,0,2554,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
+9300,0,2555,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
+9301,0,2556,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
+9302,0,2557,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
+9303,0,2558,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
+9304,0,2559,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
+9305,0,2560,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
+9306,0,2561,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
+9307,0,2562,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
+9308,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
+9309,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
+9310,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
+9311,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
+9312,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
+9313,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
+9314,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
+9315,82800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
+9316,82800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
+
 // Academy 14.2
 9264,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Job change to Mage"
 9265,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Job change to Mage"

+ 4930 - 0
npc/custom/official/GeffenMagicTournament.txt

@@ -0,0 +1,4930 @@
+//===== rAthena Script ======================================= 
+//= Geffen Magic Tournament Memorial Dungeon
+//===== By: ================================================== 
+//= Nova with the help of Tokei, Diablo and others.
+//===== Current Version: ===================================== 
+//= 1.0
+//===== Compatible With: ===================================== 
+//= rAthena Project
+//===== Description: ========================================= 
+//= [Custom implementation of official script]
+//= Participate in the Geffen Magic Tournament and gain coins to trade for rewards.
+//===== Additional Comments: ================================= 
+//= 1.0 First version. Converted to rAthena compliant standard.
+//=		Thanks to Nova, Tokei, Diablo and others for creating the script. [MasterOfMuppets]
+//============================================================ 
+
+//MAIN QUEST
+1@gef,0,0,0	script	#gmt_dummy	-1,{ end; }
+
+1@gef,119,208,0	script	#GefMagicStart	567,5,5,{
+	end;
+OnTouch:
+	if ('GMT == 0) {
+		'GMT = 1;
+		setquest 9292;
+		mapannounce instance_mapname("1@gef"),"Geffen Broadcast: The Geffen Magic Tournament is about to begin!",bc_blue;
+		sleep2 3000;
+		mapannounce instance_mapname("1@gef"),"Geffen Broadcast: Citizens and adventurers in Geffen, please join the tournament~!",bc_blue;
+		sleep2 5000;
+		mapannounce instance_mapname("1@gef"),"Geffen Broadcast: Anyone who wants to join the Geffen Magic Tournament, please come to the southern fountain of Geffen~!",bc_blue;
+		'charname$ = strcharinfo(0);
+		'sex = Sex;
+		'gmt_account_id = getcharid(3);
+	}
+
+	end;
+OnInit:
+	hideonnpc strnpcinfo(0);
+	end;
+OnInstanceInit:
+	hideonnpc instance_npcname(strnpcinfo(0));
+	end;
+}
+
+1@gef,120,78,0	script	#GefMagicGuess0	567,4,1,{
+	end;
+OnTouch_:
+	if ('GMT == 1) {
+		'GMT = 2;
+		showscript strcharinfo(0)+" : Guess this is where I register for the tournament...";
+		end;
+	}
+	
+	end;
+OnInit:
+	hideonnpc strnpcinfo(0);
+	end;
+OnInstanceInit:
+	hideonnpc instance_npcname(strnpcinfo(0));
+	end;
+}
+
+1@gef,142,53,0	duplicate(#GefMagicGuess0)	#GefMagicGuess1	567,1,15
+1@gef,99,53,0	duplicate(#GefMagicGuess0)	#GefMagicGuess2	567,1,20
+
+//Movie
+
+1@gef,71,86,4	duplicate(#gmt_dummy)	Young Lady#gef1	4_F_BRZ_WOMAN
+1@gef,75,82,4	duplicate(#gmt_dummy)	Young Lady#gef3	4_F_03
+1@gef,68,79,6	duplicate(#gmt_dummy)	Handsome Adventurer#gef	4_M_CRU
+1@gef,70,77,2	duplicate(#gmt_dummy)	Male Adventurer#gef	4_M_LGTMAN
+1@gef,73,84,4	duplicate(#gmt_dummy)	Young Lady#gef2	4_F_CAPEGIRL
+
+1@gef,73,84,0	script	MOVIECONTROL#gef	-1,13,13,{
+	end;
+OnTouch_:
+	if ('MOVIE == 1) end;
+	'MOVIE = 1;
+	'm1_timer = 0;
+	initnpctimer;
+	end;
+OnTimer1000:
+	'm1_timer++;
+	
+	switch('m1_timer) {
+		case   1: npctalk "I am lonely... Should I be alone during the festival?", instance_npcname("Young Lady#gef1"); break;
+		case   4: npctalk "Oh my god ~! Why do you say that~?", instance_npcname("Young Lady#gef2"); break;
+		case   8: npctalk "How about hitting on the handsome adventurers coming to Geffen?", instance_npcname("Young Lady#gef3"); break;
+		case  12: npctalk "Handsome? Where are there handsome men?", instance_npcname("Young Lady#gef1"); break;
+		case  17: npctalk "I only see guys who look so old and fat!", instance_npcname("Young Lady#gef1"); break;
+		case  21: npctalk "Agh... I can not just sit around during this festival alone...", instance_npcname("Young Lady#gef2"); break;
+		case  26: npctalk "No! There has to be some handsome guys around here! Don't give up!", instance_npcname("Young Lady#gef3"); break;
+		case  30:
+			npctalk "Um... okay...", instance_npcname("Young Lady#gef1");
+			npctalk "Um... okay...", instance_npcname("Young Lady#gef2");
+			break;
+		case  34: npctalk "See! Look over there! A handsome guy!", instance_npcname("Young Lady#gef3"); break;
+		case  38:
+			npctalk "Oh god! Where?!", instance_npcname("Young Lady#gef1");
+			npctalk "Oh my god! Where? Where?", instance_npcname("Young Lady#gef2");
+			break;
+		case  42:
+			hideoffnpc instance_npcname("Handsome Adventurer#gef");
+			npctalk "Over there~!", instance_npcname("Young Lady#gef3");
+			break;
+		case  46: npctalk "There are many beautiful ladies at this year's Magic Tournament.", instance_npcname("Handsome Adventurer#gef"); break;
+		case  50:
+			npctalk "Yikes~~~!!", instance_npcname("Young Lady#gef1");
+			npctalk "Yikes~~~! Is he talking about me?", instance_npcname("Young Lady#gef2");
+			npctalk "Yikes~~! Nice!!", instance_npcname("Young Lady#gef3");
+			break;
+		case  54: npctalk "What should I do? Should I talk to him?", instance_npcname("Young Lady#gef3"); break;
+		case  58: npctalk "Come on~! You're good at this! Hurry up and hook up with him!", instance_npcname("Young Lady#gef2"); break;
+		case  62: npctalk "Hurry up~!", instance_npcname("Young Lady#gef1"); break;
+		case  66: npctalk "It's almost time for the event to begin...", instance_npcname("Handsome Adventurer#gef"); break;
+		case  70: npctalk "Maybe he's waiting for someone!", instance_npcname("Young Lady#gef3"); break;
+		case  74: npctalk "A girlfriend?! It can't be!", instance_npcname("Young Lady#gef2"); break;
+		case  78:
+			hideoffnpc instance_npcname("Male Adventurer#gef");
+			npctalk "No... it can't be~!", instance_npcname("Young Lady#gef1");
+			break;
+		case  79: npctalk "Have I kept you waiting for a long time?", instance_npcname("Male Adventurer#gef"); break;
+		case  83: npctalk "Lucky! It's a man!!!", instance_npcname("Young Lady#gef3"); break;
+		case  86:
+			npctalk "Looks like it's just a friend~!!", instance_npcname("Young Lady#gef2");
+			break;
+		case  88: npctalk "Hook up with both of them? Ho ho ho~!", instance_npcname("Young Lady#gef1"); break;
+		case  91:
+			npctalk "Yes! You have finally arrived, my love!", instance_npcname("Handsome Adventurer#gef");
+			emotion 23, 0, instance_npcname("Young Lady#gef1");
+			emotion 23, 0, instance_npcname("Young Lady#gef2");
+			emotion 23, 0, instance_npcname("Young Lady#gef3");
+			break;
+		case  95:
+			npctalk "My love...", instance_npcname("Male Adventurer#gef");
+			emotion 3, 0, instance_npcname("Male Adventurer#gef");
+			emotion 3, 0, instance_npcname("Handsome Adventurer#gef");
+			emotion 3, 0, instance_npcname("Handsome Adventurer#gef");
+			break;
+		case  99:
+			npctalk "Maybe... There are no good guys left for us...", instance_npcname("Young Lady#gef3");
+			emotion 3, 0, instance_npcname("Handsome Adventurer#gef");
+			break;
+		case 103:
+			npctalk "Ahem... Maybe... Just the three of us... will be together forever...", instance_npcname("Young Lady#gef2");
+			emotion 3, 0, instance_npcname("Male Adventurer#gef");
+			break;
+		case 106:
+			npctalk "Our friendship is forever~!!!", instance_npcname("Young Lady#gef3");
+			emotion 3, 0, instance_npcname("Handsome Adventurer#gef");
+			sleep2 500;
+			npctalk "Our friendship is forever~!!!", instance_npcname("Young Lady#gef1");
+			sleep2 500;
+			npctalk "Our friendship is forever~!!!", instance_npcname("Young Lady#gef2");
+			'm1_timer++;
+			break;
+		case 109:
+			emotion 3, 0, instance_npcname("Male Adventurer#gef");
+			emotion 28, 0, instance_npcname("Young Lady#gef1");
+			emotion 28, 0, instance_npcname("Young Lady#gef2");
+			emotion 28, 0, instance_npcname("Young Lady#gef3");
+			break;
+		case 111: emotion 3, 0, instance_npcname("Handsome Adventurer#gef"); break;
+		case 113: emotion 3, 0, instance_npcname("Male Adventurer#gef"); break;
+		case 115: emotion 3, 0, instance_npcname("Handsome Adventurer#gef"); break;
+		case 118:
+			hideonnpc instance_npcname("Male Adventurer#gef");
+			hideonnpc instance_npcname("Handsome Adventurer#gef");
+			'MOVIE = 0;
+			stopnpctimer;
+			end;
+	}
+	
+	initnpctimer;
+	end;
+}
+
+//Fireworks
+
+1@gef,90,197,0	script	#Firecrackers0	649,{
+	end;
+OnTimer2500:
+	.@r = rand(0,1);
+	if (.@r != 0 ) { stopnpctimer; initnpctimer; end; }
+	stopnpctimer;
+	specialeffect .effects[rand(0,18)],AREA,instance_npcname(strnpcinfo(0));
+	initnpctimer;
+	end;
+
+OnInit:
+	setarray .effects,97,255,28,256,29,257,244,92,32,195,258,22,62,234,89,30,225,116,94;
+	hideonnpc strnpcinfo(0);
+	end;
+	
+OnInstanceInit:
+	initnpctimer;
+	hideonnpc instance_npcname(strnpcinfo(0));
+	end;
+}
+
+1@gef,106,145,0	duplicate(#Firecrackers0)	#Firecrackers1	649
+1@gef,112,49,0	duplicate(#Firecrackers0)	#Firecrackers2	649
+1@gef,134,145,0	duplicate(#Firecrackers0)	#Firecrackers3	649
+1@gef,132,111,0	duplicate(#Firecrackers0)	#Firecrackers4	649
+1@gef,141,56,0	duplicate(#Firecrackers0)	#Firecrackers5	649
+1@gef,146,175,0	duplicate(#Firecrackers0)	#Firecrackers6	649
+1@gef,182,163,0	duplicate(#Firecrackers0)	#Firecrackers7	649
+1@gef,183,126,0	duplicate(#Firecrackers0)	#Firecrackers8	649
+1@gef,194,89,0	duplicate(#Firecrackers0)	#Firecrackers9	649
+1@gef,59,125,0	duplicate(#Firecrackers0)	#Firecrackers10	649
+1@gef,62,147,0	duplicate(#Firecrackers0)	#Firecrackers11	649
+1@gef,62,91,0	duplicate(#Firecrackers0)	#Firecrackers12	649
+1@gef,71,181,0	duplicate(#Firecrackers0)	#Firecrackers13	649
+1@gef,112,196,0	duplicate(#Firecrackers0)	#Firecrackers14	649
+1@gef,98,58,0	duplicate(#Firecrackers0)	#Firecrackers15	649
+1@gef,98,126,0	duplicate(#Firecrackers0)	#Firecrackers16	649
+1@gef,127,196,0	duplicate(#Firecrackers0)	#Firecrackers17	649
+1@gef,40,125,0	duplicate(#Firecrackers0)	#Firecrackers18	649
+1@gef,116,75,0	duplicate(#Firecrackers0)	#Firecrackers19	649
+1@gef,58,112,0	duplicate(#Firecrackers0)	#Firecrackers20	649
+1@gef,40,112,0	duplicate(#Firecrackers0)	#Firecrackers21	649
+1@gef,107,111,0	duplicate(#Firecrackers0)	#Firecrackers22	649
+1@gef,127,49,0	duplicate(#Firecrackers0)	#Firecrackers23	649
+1@gef,123,75,0	duplicate(#Firecrackers0)	#Firecrackers24	649
+1@gef,199,126,0	duplicate(#Firecrackers0)	#Firecrackers25	649
+1@gef,183,113,0	duplicate(#Firecrackers0)	#Firecrackers26	649
+1@gef,199,114,0	duplicate(#Firecrackers0)	#Firecrackers27	649
+1@gef,140,126,0	duplicate(#Firecrackers0)	#Firecrackers28	649
+
+//SHOPS
+
+1@gef_in,77,167,0	shop	Tool Dealer#gefa_0et	1_F_03,1750:-1,611:-1,501:-1,502:-1,503:-1,504:-1,645:-1,656:-1,713:-1,601:-1,602:-1,2241:-1
+1@gef_in,77,173,0	shop	Trader#gef_0et	1_M_WIZARD,717:-1,1601:-1,1604:-1,1607:-1,1610:-1,2232:-1,2321:-1,2332:-1
+1@gef_in,74,144,0	shop	Trader#gef_0et1	1_F_01,911:-1,910:-1,912:-1
+1@gef_in,65,144,4	shop	Tool Dealer#gefb_0et1	1_M_WIZARD,1092:-1,1093:-1,713:-1
+
+1@gef_in,22,171,7	shop	Weapon Dealer#GMT	84,1146:-1,1245:-1
+1@gef_in,26,178,4	shop	Armor Dealer#GMT	66,2628:-1,2101:-1,2107:-1,2401:-1,2501:-1,2230:-1,2301:-1,2303:-1,2305:-1,2321:-1,2332:-1
+1@gef_in,30,178,4	shop	Weapon Dealer#GMT2	47,1750:-1,1751:-1,1101:-1,1701:-1,1201:-1,1204:-1,1207:-1,1210:-1,1213:-1,1216:-1,1601:-1,1604:-1,1607:-1,1610:-1
+
+1@gef,193,152,4	shop	Pet Groomer#GMT	124,537:-1,643:-1,10013:-1,10014:-1,6113:-1,6114:-1,6115:-1,6110:-1,6100:-1,6098:-1,6112:-1,6104:-1,6108:-1,6111:-1,7824:1000,6097:1000,6107:1000
+1@gef,196,111,3	shop	Cook#gef_0et	85,7482:-1
+
+1@gef,131,58,4	script	Geffen Coin Operator#g	4_F_ZONDAGIRL,{ // 55149
+	.@n$ = "[ Geffen Coin Operator ]";
+	mes .@n$,"I exchange Magic Tournament Coins for Equipment."; next;
+	goto L_Menu;
+	end;
+
+L_Menu:
+	switch(select("Shields:Rings:Armor:End Conversation")){
+		case 1:
+			mes .@n$,"There are two types of Shields are available for exchange.";
+			next;
+L_Shield:
+			switch(select("Magic Reflector ^3355FF<900 Coins>^000000:Revised Encyclopedia ^3355FF<900 Coins>^000000:Go back to previous menu")){
+				case 1: .@item = 2185; .@cost = 900; break;
+				case 2: .@item = 2186; .@cost = 900; break;
+				case 3: goto L_Menu; break;
+			}
+			mes .@n$;
+			mes "<ITEM>"+getitemname(.@item)+"<INFO>"+.@item+"</INFO></ITEM>";
+			mes "Price is "+.@cost+" coins";
+			mes "Do you wish to exchange your coins?";
+			next;
+				switch(select("Do Not Exchange:Exchange")){
+					case 1:
+						mes .@n$,"Take a look at the other equipment available.";
+						next;
+						goto L_Shield;
+						break;
+					case 2:
+						if( countitem(6671) < .@cost ) { 
+							mes .@n$,"You need "+.@cost+" Geffen Magic Tournament Coins."; 
+							next;
+							mes .@n$,"Participate in the Tournament to earn more coins."," ","Do you need more help?"; 
+							goto L_Shield; 
+						}
+						if(!checkweight(.@item,1)) { mes .@n$; mes "You have too many things in your inventory to carry a ^FF0000"+getitemname(.@item)+"^000000."; end; }
+						delitem 6671,.@cost;
+						getitem .@item,1;
+						mes .@n$,"Thank you.";
+						end;			
+				}
+
+		case 2:
+			mes .@n$;
+			mes "There are two types of Rings are available for exchange.";
+			next;
+L_Ring:
+				switch(select("Phyisical Enhancer Ring ^3355FF<1350 Coins>^000000:Magic Intensifier Ring ^3355FF<1350 Coins>^000000:Go back to previous menu")){
+					case 1:
+						.@item = 2963;
+						.@cost = 1350;
+						break;
+					case 2:
+						.@item = 2964;
+						.@cost = 1350;
+						break;
+					case 3:
+						goto L_Menu;
+						break;
+				}
+			mes .@n$;
+			mes "<ITEM>"+getitemname(.@item)+"<INFO>"+.@item+"</INFO></ITEM>";
+			mes "Price is "+.@cost+" coins";
+			mes "Do you wish to exchange your coins?";
+			next;
+				switch(select("Do Not Exchange:Exchange")){
+					case 1:
+						mes .@n$,"Take a look at the other equipment available.";
+						next;
+						goto L_Ring;
+						break;
+					case 2:
+						if( countitem(6671) < .@cost ) { 
+							mes .@n$,"You need "+.@cost+" Geffen Magic Tournament Coins."; 
+							next;
+							mes .@n$,"Participate in the Tournament to earn more coins."," ","Do you need more help?"; 
+							goto L_Ring; 
+						}
+						if(!checkweight(.@item,1)) { mes .@n$; mes "You have too many things in your inventory to carry a ^FF0000"+getitemname(.@item)+"^000000."; end; }
+						delitem 6671,.@cost;
+						getitem .@item,1;
+						mes .@n$,"Thank you.";
+						end;						
+				}
+		case 3:
+			mes .@n$;
+			mes "There are two types of Armor are available for exchange.";
+			next;
+L_Armor:
+				switch(select("Anti-Magic Suit ^3355FF<1800 Coins>^000000:Geffen Magic Robe ^3355FF<1800 Coins>^000000:Go back to previous menu")){
+					case 1:
+						.@item = 15073;
+						.@cost = 1800;
+						break;
+					case 2:
+						.@item = 15074;
+						.@cost = 1800;
+						break;
+					case 3:
+						goto L_Menu;
+						break;
+				}
+			mes .@n$;
+			mes "<ITEM>"+getitemname(.@item)+"<INFO>"+.@item+"</INFO></ITEM>";
+			mes "Price is "+.@cost+" coins";
+			mes "Do you wish to exchange your coins?";
+			next;
+				switch(select("Do Not Exchange:Exchange")){
+					case 1:
+						mes .@n$,"Take a look at the other equipment available.";
+						next;
+						goto L_Armor;
+						break;
+					case 2:
+						if( countitem(6671) < .@cost ) { 
+							mes .@n$,"You need "+.@cost+" Geffen Magic Tournament Coins."; 
+							next;
+							mes .@n$,"Participate in the Tournament to earn more coins."," ","Do you need more help?"; 
+							goto L_Armor; 
+						}
+						if(!checkweight(.@item,1)) { mes .@n$; mes "You have too many things in your inventory to carry a ^FF0000"+getitemname(.@item)+"^000000."; end; }
+						delitem 6671,.@cost;
+						getitem .@item,1;
+						mes .@n$,"Thank you.";
+						end;
+				}
+		case 4:
+			mes .@n$;
+			mes "You can tell a lot about a person by what gear they have.";
+			mes "I will see you next time~!";
+			close;
+
+	}
+	end;
+}
+
+//On Touch NPCs
+
+1@gef,0,0,0	script	#gmt_quotes	-1,{
+	end;
+OnTouch_:
+	if (strnpcinfo(0) == "Old Bachelor#z1_0et") setarray .@quotes$, "Old Bachelor: It's such a good festival, and I am alone...","Old Bachelor: Maybe I should hit on that girl...","Old Bachelor: It's so crowded in here during the Magic Tournament~!";
+	if (strnpcinfo(0) == "Little Geffen Boy#a2_0e") setarray .@quotes$, "Little Geffen Boy: Ugh ha ha~ Look~! That guy passing by there is so ugly~!!","Little Geffen Boy: I am bored! Is there anything fun to do around here?","Little Geffen Boy: I should ask my father for some pocket change.";
+	if (strnpcinfo(0) == "Dio Anemos#z1_0et") {
+		if ('GMT_1QUE > 1) setarray .@quotes$, "Dio Anemos : Any time I face a woman, I really have no choice but to go easy on her...";
+		else setarray .@quotes$, "Dio Anemos: I want to eat some cookies before the Magic Tournament starts.","Dio Anemos: I'm hungry... Can i have some food?","Dio Anemos: Geffen is so lively whenever I visit.";
+	}
+	if (strnpcinfo(0) == "Ordre#z1_0et") {
+		if ('GMT_1QUE > 1) setarray .@quotes$, "Ordre : Even powerful people like me can lose...";
+		else setarray .@quotes$, "Ordre: I've been waiting for this air and mood for a long time.","Ordre: Show us what you have trained for.","Ordre: Let's go register for the competition.";
+	}
+	if (strnpcinfo(0) == "Ju#z1_0et") {
+		if ('GMT_1QUE > 1) setarray .@quotes$, "Ju : ... You really defeat me...";
+		else setarray .@quotes$, "Ju: I will make sure to register for the Magic Tournament quickly.","Ju: I only see novices around here.","Ju: I will surprise them with my excellent battle skills!";
+	}
+	if (strnpcinfo(0) == "Blut Hase#z1_0et") {
+		if ('GMT_1QUE > 1) setarray .@quotes$, "Blut Hase : How can somebody be so powerful...";
+		else setarray .@quotes$, "Blut Hase: Where do I go to register for the Magic Tournament?","Blut Hase: My clothes will be stained with the blood of my enemies.";
+	}
+	if (strnpcinfo(0) == "Kuro Akuma#z1_0et") {
+		if ('GMT_1QUE > 1) setarray .@quotes$, "Kuro Akuma : Maybe just being evil isn't enough to win the tournament...";
+		else setarray .@quotes$, "Kuro Akuma: It's like a calm before a storm~!","Kuro Akuma: So peaceful~! I love it!","Kuro Akuma: There quite a few innocent lambs joining the Magic Tournament~!";
+	}
+	if (strnpcinfo(0) == "Odoric#z1_0et") {
+		if ('GMT_1QUE > 1) setarray .@quotes$, "Odoric : This is what youth looks like, sister... I'm truly jealous...";
+		else setarray .@quotes$, "Odoric: I can't find my type of competitors at all!","Odoric: It is so crowded during the Tournament~!","Odoric: It should be fun dancing in the festival~!";
+	}
+	if (strnpcinfo(0) == "Fay Kanavian#z1_0et") {
+		if ('GMT_1QUE > 1) setarray .@quotes$, "Fay Kanavian : I actually lost... How is this possible?";
+		else setarray .@quotes$, "Fay Kanavian: It is time to show off my Philosopher's Stone at the Tournament~!","Fay Kanavian: No one can stop me. Ha ha ha ha ha ha~!","Fay Kanavian: Have you seen my Homonculus Alphonse?";
+	}
+	if (strnpcinfo(0) == "Licheniyes#z1_0et") {
+		if ('GMT_1QUE > 1) setarray .@quotes$, "Lecheniyes : Most people won't even remember the outcome of the tournament, so there's no real sense of failure...";
+		else setarray .@quotes$, "Licheni: Happy Geffen Magic Tournament~!","Licheni: It will be a very fun Magic Tournament this year.","Licheni: Yahoo~ Let's go join the Magic Tournament~";
+	}
+	if (strnpcinfo(0) == "Ifodes#z1_0et") {
+		if ('GMT_1QUE > 1) setarray .@quotes$, "Ifodes : Losing to a woman... Now that's a terrifying thought.";
+		else setarray .@quotes$, "Ifodes: I will show who I am at the Magic Tournament!","Ifodes: Strong attack and solid defense! Sigh, I wish I had a girlfriend...","Ifodes: Is there any beautiful ladies around to show my chivalry?";
+	}
+	if (strnpcinfo(0) == "Faymont#z1_0et") {
+		if ('GMT_1QUE > 1) setarray .@quotes$, "Faymont : No time to chat, I need to go comfort the other girls who failed.";
+		else setarray .@quotes$, "Faymont: I heard a new hat was released in Geffen.","Faymont: There are no other decent competitors in the Tournament?","Faymont: I've never met anyone who has a better fashion sense than me.";
+	}
+	if (strnpcinfo(0) == "Arhi#z1_0et") {
+		if ('GMT_1QUE > 1) setarray .@quotes$, "Arhi: The tournament is finally over! It was really a great year... Way too intense!";
+		else setarray .@quotes$, "Arhi: I'm thinking of joining the Magic Tournament!","Arhi: This should be a pretty good experience.","Arhi: Are there any competitors that look weak?";
+	}
+	if (strnpcinfo(0) == "Dwigh#z1_0et") {
+		if ('GMT_1QUE > 1) setarray .@quotes$, "Dwigh : Needless to say, it was a pretty decisive battle!";
+		else setarray .@quotes$, "Dwigh: I want this Magic Tournament to become my turning point.","Dwigh: I am quite depressed these days...","Dwigh: I will show my great skills to all of my students.";
+	}
+	
+	showscript .@quotes$[rand(getarraysize(.@quotes$))], getnpcid(0);
+	end;
+}
+
+1@gef,124,173,4	duplicate(#gmt_quotes)	Old Bachelor#z1_0et	1_M_03,4,4
+1@gef,91,117,6	duplicate(#gmt_quotes)	Dio Anemos#z1_0et	4_GEFFEN_01,4,4
+1@gef,85,68,6	duplicate(#gmt_quotes)	Ordre#z1_0et	4_GEFFEN_05,4,4
+1@gef,178,91,6	duplicate(#gmt_quotes)	Ju#z1_0et	4_GEFFEN_11,4,4
+1@gef,194,91,4	duplicate(#gmt_quotes)	Little Geffen Boy#a2_0e	4_KID01,4,4
+1@gef,111,62,6	duplicate(#gmt_quotes)	Blut Hase#z1_0et	4_GEFFEN_06,4,4
+1@gef,104,42,6	duplicate(#gmt_quotes)	Kuro Akuma#z1_0et	4_GEFFEN_07,4,4
+1@gef,158,63,4	duplicate(#gmt_quotes)	Odoric#z1_0et	4_GEFFEN_10,4,4
+1@gef,117,72,6	duplicate(#gmt_quotes)	Fay Kanavian#z1_0et	4_F_GEFFEN_FAY,4,4
+1@gef,137,53,4	duplicate(#gmt_quotes)	Licheniyes#z1_0et	4_GEFFEN_09,4,4
+1@gef,115,66,6	duplicate(#gmt_quotes)	Ifodes#z1_0et	4_GEFFEN_08,4,4
+1@gef,53,90,6	duplicate(#gmt_quotes)	Faymont#z1_0et	4_GEFFEN_04,4,4
+1@gef,145,125,4	duplicate(#gmt_quotes)	Arhi#z1_0et	4_GEFFEN_02,4,4
+1@gef,120,98,4	duplicate(#gmt_quotes)	Dwigh#z1_0et	4_GEFFEN_12,4,4
+
+//WARPS
+1@gef_in,70,132,0	script	#gef_a4_0et	45,2,2,{
+	end;
+OnTouch:
+	warp instance_mapname("1@gef"),46,88;
+	end;
+OnInstanceInit:
+OnEnable:
+	enablenpc instance_npcname("#gef_a4_0et");
+	end;
+}
+
+1@gef_in,106,181,0	script	#gef_a3_0et	45,2,2,{
+	end;
+OnTouch:
+	warp instance_mapname("1@gef"),178,63;
+	end;
+OnInstanceInit:
+OnEnable:
+	enablenpc instance_npcname("#gef_a3_0et");
+	end;
+}
+
+1@gef,182,59,0	script	#gef_a1_0et	45,2,2,{
+	end;
+OnTouch:
+	warp instance_mapname("1@gef_in"),106,177;
+	end;
+OnInstanceInit:
+OnEnable:
+	enablenpc instance_npcname("#gef_a1_0et");
+	end;
+}
+
+1@gef_in,70,158,0	script	#gef_a5_0et	45,2,2,{
+	end;
+OnTouch:
+	warp instance_mapname("1@gef_in"),70,146;
+	end;
+OnInstanceInit:
+OnEnable:
+	enablenpc instance_npcname("#gef_a5_0et");
+	end;
+}
+
+1@gef_in,70,149,0	script	#gef_a6_0et	45,2,2,{
+	end;
+OnTouch:
+	warp instance_mapname("1@gef_in"),70,161;
+	end;
+OnInstanceInit:
+OnEnable:
+	enablenpc instance_npcname("#gef_a6_0et");
+	end;
+}
+
+1@gef,43,85,0	script	#gef_a2_0et	45,2,2,{
+	end;
+OnTouch:
+	warp instance_mapname("1@gef_in"),70,138;
+	end;
+OnInstanceInit:
+OnEnable:
+	enablenpc instance_npcname("#gef_a2_0et");
+	end;
+}
+
+1@gef,98,141,0	script	#gef_a8_0et	45,2,2,{
+	end;
+OnTouch:
+	warp instance_mapname("1@gef_in"),28,160;
+	end;
+OnInstanceInit:
+OnEnable:
+	enablenpc instance_npcname("#gef_a8_0et");
+	end;
+}
+
+1@gef_in,28,156,0	script	#gef_a7_0et	45,2,2,{
+	end;
+OnTouch:
+	warp instance_mapname("1@gef"),101,138;
+	end;
+OnInstanceInit:
+OnEnable:
+	enablenpc instance_npcname("#gef_a7_0et");
+	end;
+}
+
+//SPECTATORS
+
+-	script	#d_c	4_M_DST_TOUGH,{ end; }
+
+1@gef,175,74,4	duplicate(#d_c)	Tournament Spectator#c0	4_M_DST_TOUGH
+1@gef,130,196,6	duplicate(#d_c)	Tournament Spectator#c1	1_ETC_01
+1@gef,137,190,6	duplicate(#d_c)	Tournament Spectator#c2	1_F_02
+1@gef,149,196,6	duplicate(#d_c)	Tournament Spectator#c3	1_M_01
+1@gef,136,188,6	duplicate(#d_c)	Tournament Spectator#c4	4_F_TWGRANDMOM
+1@gef,110,195,4	duplicate(#d_c)	Tournament Spectator#c5	1_M_03
+1@gef,134,63,4	duplicate(#d_c)	Tournament Spectator#c6	1_M_MERCHANT
+1@gef,145,47,4	duplicate(#d_c)	Tournament Spectator#c7	1_M_MOC_LORD
+1@gef,154,55,4	duplicate(#d_c)	Tournament Spectator#c8	1_M_ORIENT01
+1@gef,147,65,4	duplicate(#d_c)	Tournament Spectator#c9	1_M_PASTOR
+1@gef,163,76,4	duplicate(#d_c)	Tournament Spectator#c10	1_F_PRIEST
+1@gef,180,84,4	duplicate(#d_c)	Tournament Spectator#c11	1_M_INNKEEPER
+1@gef,189,97,4	duplicate(#d_c)	Tournament Spectator#c12	1_M_SIZ
+1@gef,194,110,4	duplicate(#d_c)	Tournament Spectator#c13	1_M_PAY_ELDER
+1@gef,185,107,6	duplicate(#d_c)	Tournament Spectator#c14	1_M_PRON_KING
+1@gef,189,120,4	duplicate(#d_c)	Tournament Spectator#c15	4_F_01
+1@gef,44,95,6	duplicate(#d_c)	Tournament Spectator#c17	1_M_JOBTESTER
+1@gef,52,83,6	duplicate(#d_c)	Tournament Spectator#c18	1_M_KNIGHTMASTER
+1@gef,130,196,6	duplicate(#d_c)	Tournament Spectator#c19	1_ETC_01
+1@gef,104,189,4	duplicate(#d_c)	Tournament Spectator#c20	1_F_01
+1@gef,94,194,4	duplicate(#d_c)	Tournament Spectator#c21	1_F_03
+1@gef,52,155,6	duplicate(#d_c)	Tournament Spectator#c22	1_F_04
+1@gef,55,142,4	duplicate(#d_c)	Tournament Spectator#c23	1_F_GYPSY
+1@gef,58,146,4	duplicate(#d_c)	Tournament Spectator#c24	1_M_BARD
+1@gef,45,149,6	duplicate(#d_c)	Tournament Spectator#c25	1_F_LIBRARYGIRL
+1@gef,44,133,6	duplicate(#d_c)	Tournament Spectator#c26	1_M_HOF
+1@gef,45,126,6	duplicate(#d_c)	Tournament Spectator#c27	1_M_02
+1@gef,44,118,6	duplicate(#d_c)	Tournament Spectator#c28	1_F_MERCHANT_01
+1@gef,55,113,4	duplicate(#d_c)	Tournament Spectator#c29	1_F_MERCHANT_02
+1@gef,50,107,6	duplicate(#d_c)	Tournament Spectator#c30	1_M_JOBGUIDER
+1@gef,72,65,6	duplicate(#d_c)	Tournament Spectator#c31	1_M_LIBRARYMASTER
+1@gef,83,60,6	duplicate(#d_c)	Tournament Spectator#c32	1_F_ORIENT_01
+1@gef,94,68,6	duplicate(#d_c)	Tournament Spectator#c33	1_F_ORIENT_02
+1@gef,97,66,4	duplicate(#d_c)	Tournament Spectator#c34	1_F_ORIENT_03
+1@gef,167,120,4	duplicate(#d_c)	Tournament Spectator#c36	1_M_SIGN1
+1@gef,152,120,4	duplicate(#d_c)	Tournament Spectator#c37	2_F_MAGICMASTER
+1@gef,138,110,4	duplicate(#d_c)	Tournament Spectator#c38	4_F_01
+1@gef,128,99,4	duplicate(#d_c)	Tournament Spectator#c39	4_F_02
+1@gef,105,109,6	duplicate(#d_c)	Tournament Spectator#c40	4_F_03
+1@gef,96,122,6	duplicate(#d_c)	Tournament Spectator#c41	4_F_04
+1@gef,132,137,6	duplicate(#d_c)	Tournament Spectator#c42	4_F_TRAINEE
+1@gef,141,132,4	duplicate(#d_c)	Tournament Spectator#c43	1_M_SIGNART
+1@gef,124,72,4	duplicate(#d_c)	Tournament Spectator#c44	1_M_SIGNMCNT
+1@gef,130,49,6	duplicate(#d_c)	Tournament Spectator#c45	1_M_SIGNMONK2
+
+
+//Dialogue NPC
+
+1@gef_in,110,172,0	script	Christopher#1_0et	1_M_SMITH,{
+	mes "[ Christopher ]";
+	mes "Welcome to Christopher's Workshop.";
+	mes "Ye can get all yer stuff for";
+	mes "forging here. What business";
+	mes "brings ye to me?";
+	next;
+	mes "[ Christopher ]";
+	mes "We are taking a break from our forges in honor of the festival.";
+	mes "Please come back again after the festival is done.";
+	close;
+}
+
+1@gef,129,65,4	script	Point Merchant#gef_m	8_F_GIRL,{
+	if (checkweight(1201,1) == 0 || MaxWeight - Weight < 2000) {
+		mes "- Wait a minute !! -";
+		mes "- Currently you're carrying -";
+		mes "- too many items with you. -";
+		mes "- Please try again -";
+		mes "- after you lose some weight. -";
+		close;
+	}
+	mes "[ Point Merchant ]";
+	mes "Hello. I'm selling a catalyst called ^FF0000Points^000000 for Sorcerers. What would you like?";
+	next;
+	.@i = select("Scarlet Points - 200z:Lime Green Points - 200z:Indigo Points - 200z:Yellow Wish Points - 200z:Cancel")-1;
+	mes "[ Point Merchant ]";
+	if (.@i == 4) {
+		mes "You can't find the stuff you need?";
+		close;
+	}
+	setarray .@itemid[0],6360,6363,6361,6362;
+	setarray .@color$[0],"Scarlet","Lime Green","Indigo","Yellow Wish";
+	mes "You have chosen "+.@color$[.@i]+" Points.";
+	mes "How many do you want?";
+	mes "If you want to cancel, enter 0.";
+	next;
+	input .@amount;
+	mes "[ Point Merchant ]";
+	if (.@amount == 0) {
+		mes "You've cancelled the trade.";
+		close;
+	}
+	if (Zeny < .@amount*200) {
+		mes "You don't seem to have enough money.";
+		close;
+	}
+	if (!checkweight(.@itemid[.@i],.@amount)) {
+		mes "You don't have enough space in your inventory to buy this amount.";
+		close;
+	}
+	Zeny = Zeny-(.@amount*200);
+	getitem .@itemid[.@i],.@amount;
+	mes "Thank you very much. See you~!";
+	close;
+}
+
+1@gef,127,65,3	script	Universal Rental NPC#gf	8W_SOLDIER,{
+	if (ismounting()) {
+		message strcharinfo(0),"You must first remove your mount.";
+		end;
+	} else if ((eaclass()&EAJ_THIRDMASK==EAJ_RANGER) && !countitem(6124)) {
+		if (!checkfalcon() && getskilllv("HT_FALCON") && !checkwug()) {
+			if(select(" ~ Falcon: ~ Warg")==1) setfalcon;
+			else getitem 6124,1; //Wolf's_Flute
+		} else getitem 6124,1; //Wolf's_Flute
+	} else if ((eaclass()&EAJ_THIRDMASK==EAJ_MECHANIC) && !checkcart() && getskilllv("MC_PUSHCART")) {
+		if (!checkmadogear() && getskilllv("NC_MADOLICENCE")) {
+			if(select(" ~ Cart: ~ Mado")==1) setcart;
+			else setmadogear;
+		} else setcart;
+	} else if (!checkcart() && getskilllv("MC_PUSHCART")) setcart;
+	else if (!checkfalcon() && getskilllv("HT_FALCON") && !checkwug()) setfalcon;
+	else if (!checkriding() && !checkdragon() && getskilllv("KN_RIDING")) {
+		if (eaclass()&EAJ_THIRDMASK==EAJ_RUNE_KNIGHT) setdragon;
+		else setriding;
+	} else if (!checkmadogear() && getskilllv("NC_MADOLICENCE")) setmadogear;
+	else {
+		message strcharinfo(0),"You do not meet requirements to rent.";
+		end;
+	}
+	specialeffect2 EF_TEIHIT3;
+	end;
+}
+
+1@gef,124,65,4	script	Kafra Employee#gef_t	4_F_KAFRA4,{
+	cutin "kafra_04",2;
+	mes "[Kafra Employee]";
+	mes "Welcome~!";
+	mes "The Kafra Services.";
+	mes "are always on your side.";
+	mes "So how can I help you?";
+	callfunc "F_Kafra",5,5,1,50,0;
+}
+
+
+dali,100,147,3	script	Dimensional Device#gefma	PORTAL,{
+	.@n$ = "[ Dimensional Device ]";
+			
+		.@ins_geffen_time = checkquest(9316,PLAYTIME);
+		
+		if ( GeffenTournament < gettimetick(2)) {
+
+			.@party_id = getcharid(1);
+			.@p_name$ = getpartyname(.@party_id);
+			.@md_name$ = "Geffen Magic Tournament";
+			
+			getpartymember(getcharid(1),0);
+			set .@GPPartySize,$@partymembercount;
+			
+			if( !getcharid(1) || getcharid(3) != getpartyleader( getcharid(1),1 ) || .@GPPartySize > 1) {
+				mes .@n$;
+				mes "This is a solo instance. Please form a solo party before continuing.";
+				end;
+			}
+			
+			if (!.@party_id) {
+				mes .@n$;
+				mes "This is a solo instance. Please form a solo party before continuing.";
+				end;
+			}
+				
+			switch(select("Leave it alone:^3355FFUse the Device^000000")){
+			
+				case 1:
+					mes .@n$;
+					mes "You can feel time being distorted by the device.";
+					end;
+					
+				case 2:
+					if (BaseLevel < 90) {
+						mes .@n$; 
+						mes "You must be base level 90 to continue.";
+						end;
+					}
+						switch(instance_enter(.@md_name$)) {
+							case 3:
+								mes "An unknown error has occurred.";
+								end;
+							case 2:
+								mes "The Geffen Magic Tournament instance has not been created. Please go to talk to Emmitt White first.";
+								end;
+							case 1:
+								mes "Only registered members can enter the "+.@md_name$+" instance.";
+								end;
+							case 0:
+								mapannounce "dali02",strcharinfo(0)+" of the party, "+.@p_name$+" is entering the "+.@md_name$+".",bc_map,"0x00ff99";
+								GeffenTournament = gettimetick(2) + 82800;
+								if(.@ins_geffen_time != -1) erasequest 9316;
+								setquest 9316;
+								end;
+						}
+					end;
+			}
+		} else if ( GeffenTournament > gettimetick(2) ) {
+			mes .@n$;
+			mes "Looks like the window of opportunity is not open right now.";
+			end;
+		}
+		end;
+
+}
+
+
+
+dali,98,141,3	script	Emmitt White	4_M_KHKYEL,{
+	.@n$ = "[ Time Travel Researcher ]";
+	
+		if (BaseLevel < 90) {
+			mes .@n$; 
+			mes "You must be base level 90 to continue.";
+			end;
+		}
+	
+	if (checkquest(9309) != -1) {
+		mes .@n$,
+		"I see that you've returned from the Tournament.",
+		"Did you find out anything interesting?";
+		next;
+		mes .@n$,
+		"You give details of your experience to the researcher.";
+		next;
+		mes .@n$,
+		"You didn't really give me any information that I didn't already know...";
+		next;
+		mes .@n$,
+		"But I still want more~!",
+		"Can you help me tomorrow?",
+		"I will be waiting for you.";
+		next;
+
+				for (.@i = 9284; .@i <= 9314; .@i++) {
+					if (checkquest(.@i) != -1) {
+						erasequest .@i;
+					}
+				}
+				
+			changequest 9315,9316;
+	}
+	
+	if (checkquest(9308) != -1) {
+		mes .@n$,
+		"I can't believe you won the Tournament!";
+		next;
+		mes .@n$,
+		"But I still want more~!",
+		"Can you help me tomorrow?",
+		"I will be waiting for you.";
+		next;
+
+				for (.@i = 9284; .@i <= 9314; .@i++) {
+					if (checkquest(.@i) != -1) {
+						erasequest .@i;
+					}
+				}
+				
+			changequest 9315,9316;
+	}
+	
+		getpartymember(getcharid(1),0);
+		set .@GPPartySize,$@partymembercount;
+		
+		if( !getcharid(1) || getcharid(3) != getpartyleader( getcharid(1),1 ) || .@GPPartySize > 1) {
+			mes .@n$;
+			mes "This is a solo instance. Please form a solo party before continuing.";
+			end;
+		}
+		
+	
+	// 23 Hour Cooldown
+
+	if ( GeffenTournament < gettimetick(2) ) {
+		.@party_id = getcharid(1);
+		.@p_name$ = getpartyname(.@party_id);
+		.@md_name$ = "Geffen Magic Tournament";
+
+			if (!.@party_id) {
+				mes .@n$;
+				mes "You need to be a party leader in order to continue.";
+				end;
+			}
+			
+		if (getcharid(0) == getpartyleader(.@party_id,2)){
+			mes .@n$; 
+			mes "Did you know? A long time ago there was a Magic Tournament in Geffen.";
+			next;
+			mes .@n$; 
+			mes "I've done so much research on the Tournament but haven't gotten too much information from research alone.";
+			next;
+			mes .@n$; 
+			mes "When I found out that this time gap can help with my research I couldn't resist the opportunity to continue the research.";
+			next;
+			mes .@n$; 
+			mes "And now I've found an adventurer, in you, who can help me go back to the time that the Tournament took place.";
+			next;
+			mes .@n$; 
+			mes "Please use the dimensional device and participate in the Magic Tournament for me.";
+			next;
+			mes .@n$; 
+			mes "Will you go and tell me about it?";
+			next;
+			mes .@n$; 
+			mes "The portal is unstable so you have to go solo.";
+			mes "Are you ready to enter?";
+			next;
+				switch(select("No:Yes")){
+					case 1:
+						mes .@n$;
+						mes "Come back if you change your mind~!";
+						end;
+					case 2:
+						for (.@i = 9284; .@i <= 9314; .@i++) {
+							if (checkquest(.@i) != -1) {
+								erasequest .@i;
+							}
+						}
+						
+						if (instance_create(.@md_name$) < 0) {
+							mes "Party Name: "+.@p_name$;
+							mes "Party Leader: "+strcharinfo(0);
+							mes "^0000ff"+.@md_name$+" ^000000- Reservation Failed!";
+							end;
+						}
+						mes .@n$; 
+						mes "The Dimensional Device has been activated.";
+						end;
+					}
+			end;
+		} else {
+			mes .@n$;
+			mes "You need to be a party leader in order to continue.";
+			end;
+		}
+
+	} else {
+		mes .@n$;
+		mes "Just a second.";
+		mes "You need to wait for the timer to expire before going back.";
+		mes " ";
+		
+		.@time = (GeffenTournament - gettimetick(2));
+		.@sec = .@time % 60;
+		.@min = (.@time / 60) % 60;
+		.@hrs = (.@time / 3600) % 24;
+
+		mes "Cooldown: ^3355FF"+(.@hrs < 10 ? "0" : "")+.@hrs+":"+(.@min < 10 ? "0" : "")+.@min+":"+(.@sec < 10 ? "0" : "")+.@sec+"^000000";
+		end;
+		
+
+			
+	}
+}
+
+1@gef,120,34,4	script	#gefmagic_warp01	45,2,2,{
+	callfunc("InventoryCheck");
+	end;
+
+OnTouch:
+	movenpc instance_npcname("Old Bachelor#z1_0et"),1,1;
+	movenpc instance_npcname("Dio Anemos#z1_0et"),1,1;
+	movenpc instance_npcname("Ju#z1_0et"),1,1;
+	movenpc instance_npcname("Ordre#z1_0et"),1,1;
+	movenpc instance_npcname("Blut Hase#z1_0et"),1,1;
+	movenpc instance_npcname("Kuro Akuma#z1_0et"),1,1;
+	movenpc instance_npcname("Odoric#z1_0et"),1,1;
+	movenpc instance_npcname("Fay Kanavian#z1_0et"),1,1;
+	movenpc instance_npcname("Licheniyes#z1_0et"),1,1;
+	movenpc instance_npcname("Ifodes#z1_0et"),1,1;
+	movenpc instance_npcname("Faymont#z1_0et"),1,1;
+	movenpc instance_npcname("Arhi#z1_0et"),1,1;
+	movenpc instance_npcname("Dwigh#z1_0et"),1,1;	
+	
+	warp instance_mapname("1@ge_st"),104,50;
+	donpcevent instance_npcname(strnpcinfo(0))+"::OnDisable";
+	end;
+
+OnInstanceInit:
+OnDisable:
+	disablenpc instance_npcname(strnpcinfo(0));
+	end;
+OnEnable:
+	enablenpc instance_npcname(strnpcinfo(0));
+	end;
+}
+
+1@gef,1,1,4	script	#gefmagic_warp02	45,2,2,{
+	end;
+	
+OnTouch_:
+	instance_warpall "dali",92,142;
+	end;
+
+OnInstanceInit:
+OnEnable:
+	hideoffnpc instance_npcname(strnpcinfo(0));
+	end;
+}
+
+
+1@gef,1,1,4	script	#invisGMTquests	567,2,2,{
+	end;
+	
+OnTouch_:
+	if ('GMTHeroes < 1 ) {
+		'GMTHeroes = 1;
+		for (.@i = 9309; .@i < 9315; .@i++){
+			setquest .@i;
+		}
+	}
+	end;
+
+OnInit:
+	hideonnpc strnpcinfo(0);
+	end;
+	
+OnInstanceInit:
+	hideonnpc instance_npcname(strnpcinfo(0));
+	end;
+	
+}
+
+
+1@gef,123,203,4	script	Tournament Guide#gfmg	705,{
+	cutin "gef_soldier.bmp",2;
+	.@n$ = "[ Tournament Guide ]";
+	mes .@n$,"Welcome to the Magical city of ^8B4513Geffen^000000.";
+	next;
+	mes .@n$,"If you want to watch the ^55CC55Magic Tournament^000000 go to the southern fountain of Geffen.";
+	next;
+	mes .@n$,"The fireworks are here to celebrate the Geffen Magical Tournament Festival.";
+	next;
+	mes .@n$,"Please enjoy the festivities and enjoy your stay here in Geffen~!";
+	close2;
+	cutin "",255;
+	end;
+
+OnInstanceInit:
+OnEnable:
+	enablenpc instance_npcname(strnpcinfo(0));
+	end;
+}
+
+1@gef,203,116,4	duplicate(Tournament Guide#gfmg)	Tournament Guide#gf2	705
+1@gef,36,123,6	duplicate(Tournament Guide#gfmg)	Tournament Guide#gf3	705
+
+1@gef,122,58,4	script	Receptionist#1_0et	4_M_ARUNA_NFM1,{
+
+	.@n$ = "[ Tournament Receptionist ]";
+
+	if ( checkquest(9309) != -1 ) {
+		mes .@n$;
+		mes "Fenrir won this year's Magic Tournament!";
+		next;
+		mes .@n$;
+		mes "I'm such a big fan of hers.";
+		end;
+	}
+	
+	if ( checkquest(9308) != -1 ) {
+		mes .@n$;
+		mes "Congratulations on being this year's Magic Tournament winner!";
+		end;
+	}
+		
+	if ( 'passtest == 2 ) {
+		mes .@n$;
+		mes "Do you wish to try again?";
+		mes "If you can kill the Desert Wolf within 60 seconds, you pass the test.";
+		next;
+		mes .@n$;
+		mes "If you fail, you will automatically be eliminated from the list. You can try again as many times as you want.";
+		mes "Will you take the test again?";
+		next;
+		switch(select("No:Yes")){
+			case 1:
+				mes .@n$;
+				mes "Come back if you change your mind.";
+				close;
+			case 2:
+				mes .@n$;
+				mes "There is no registration fee to enter.";
+				mes "The only requirement is to pass a simple test.";
+				next;
+				mes .@n$;
+				mes "The test is very simple. Defeat a Desert Wolf in 60 seconds or less and you're in.";
+				next;
+				mes .@n$;
+				mes "If you fail you will automatically be eliminated from the list but you can try again as many times as you wish.";
+				mes "Are you ready?";
+				next;
+				switch(select("No:Yes")){
+					case 1:
+						mes .@n$;
+						mes "Come back if you change your mind.";
+						close;
+					case 2:
+						mes .@n$;
+						mes "You can participate in the Magic Tournament after passing the test.";
+						mes "Then, let us begin!";
+						npctalk "Time limit is 60 seconds ! Ready! Set! Go!";
+						erasequest 9292;
+						setquest 9293;
+						addtimer 60000,instance_npcname("Receptionist#1_0et")+"::OnFail";
+						monster instance_mapname("1@gef"),120,62,"--ja--",1106,1,instance_npcname("Receptionist#1_0et")+"::OnTest";
+						hideonnpc instance_npcname("Receptionist#1_0et");	
+						break;
+				}
+				end;
+		}
+		end;
+	}
+	
+	if ( 'passtest == 1 ) {
+	
+		if ('GMT >= 5){
+			mes .@n$;
+			mes "The Magic Tournament is going to start soon.";
+			mes "Enter the portal to the south and you can join in.";
+			next;
+			mes .@n$;
+			mes "Good luck!";
+			end;
+		}
+		
+		mes .@n$;
+		mes "Congratulations! You passed the test!";
+		next;
+		mes .@n$;
+		mes "Give me your name so I can write it down.";
+		mes "You will automatically be registered for the tournament now.";
+		next;
+		input .@char$;
+		if(.@char$ == "") { end; }
+		mes .@n$;
+		mes strcharinfo(0)+"?";
+		mes "Okay, interesting name.";
+		mes "Anyway, your registration is complete!";
+		'GMT = 5;
+		erasequest 9293;
+		if (checkquest(9294) > -1)
+			erasequest 9294;
+		setquest 9294;
+		donpcevent instance_npcname("#gefmagic_warp01")+"::OnEnable";
+		next;
+		mes .@n$;
+		mes "Competitors who registered will randomly be selected.";
+		next;
+		mes .@n$;
+		mes "The Magic Tournament is going to start soon.";
+		mes "Enter the portal to the south and you can join in.";
+		next;
+		mes .@n$;
+		mes "Good Luck~!";
+		end;
+	
+	}
+	
+	if ( checkquest(9293) == -1 ) {
+		
+		mes .@n$;
+		mes "Thank you for visiting the Geffen Magic Tournament.";
+		mes "What can I do for you?";
+		next;
+	L_Menu:
+		switch(select("About Geffen Magic Tournament:How do I Register?:Collecting Rewards.:Can I get a Spectator Pass?:End Conversation")){
+			case 1:
+				mes .@n$;
+				mes "Geffen Magic Tournament is being held once every 3 years.";
+				next;
+				mes .@n$;
+				mes "This festival used to be a more studious event with scholars discussing magical methods.";
+				mes "Now it's all about fun and a big party.";
+				next;
+				mes .@n$;
+				mes "Now it has become almost exclusively a fighting tournament.";
+				mes "The most famous Mages from all over the world come for the tournament.";
+				next;
+				mes .@n$;
+				mes "Anything else?";
+				next;
+				goto L_Menu;
+			case 2:
+				mes .@n$;
+				mes "There is no registration fee to enter.";
+				mes "The only requirement is to pass a simple test.";
+				next;
+				mes .@n$;
+				mes "The test is very simple. Defeat a Desert Wolf in 60 seconds or less and you're in.";
+				next;
+				mes .@n$;
+				mes "If you fail you will automatically be eliminated from the list but you can try again as many times as you wish.";
+				mes "Do you want to take the test?";
+				next;
+				switch(select("No:Yes")){
+					case 1:
+						mes .@n$;
+						mes "Come back if you change your mind.";
+						close;
+					case 2:
+						mes .@n$;
+						mes "You can participate in the Magic Tournament after passing the test.";
+						mes "Then, let us begin!";
+						erasequest 9292;
+						setquest 9293;
+						'GMT = 3;
+						npctalk "Time limit is 60 seconds ! Ready! Set! Go!";
+						addtimer 60000,instance_npcname("Receptionist#1_0et")+"::OnFail";
+						monster instance_mapname("1@gef"),120,62,"--ja--",1106,1,instance_npcname("Receptionist#1_0et")+"::OnTest";
+						hideonnpc instance_npcname("Receptionist#1_0et");	
+						break;
+				}
+				end;
+			case 3:
+				mes .@n$;
+				mes "The father you go along in the tournament, the more coins you will earn.";
+				next;
+				mes .@n$;
+				mes "Collect the coins and you can exchange them for equipment from the Geffen Coin Operator.";
+				next;
+				mes .@n$;
+				mes "Anything else?";
+				next;
+				goto L_Menu;
+			case 4:
+				mes .@n$;
+				mes "Hmm it seems that the Magic Tournament is so popular this year that there aren't any more spectator seats available.";
+				next;
+				mes .@n$;
+				mes "I am sorry for inconvenience.";
+				next;
+				mes .@n$;
+				mes "Do you need anything else?";
+				next;
+				goto L_Menu;
+			case 5:
+				mes .@n$;
+				mes "Please enjoy the Geffen Magic Tournament.";
+				close;
+		}
+		end;
+	}
+	
+	end;
+	
+OnTest:
+	deltimer instance_npcname("Receptionist#1_0et")+"::OnFail";
+	'passtest = 1;
+	hideoffnpc instance_npcname("Receptionist#1_0et");
+	npctalk "You passed the test! Shall we finish your registration?", instance_npcname("Receptionist#1_0et");
+	end;
+	
+OnFail:
+	hideoffnpc instance_npcname("Receptionist#1_0et");
+	'passtest = 2;
+	killmonster instance_mapname("1@gef"),instance_npcname("Receptionist#1_0et")+"::OnTest";
+	npctalk "You failed the test. Talk to me if you wish to try again.", instance_npcname("Receptionist#1_0et");
+	end;
+
+}
+
+1@ge_st,95,62,6	duplicate(#d_c)	Tournament Spectator#70	4_M_LGTPOOR
+1@ge_st,113,62,4	duplicate(#d_c)	Tournament Spectator#71	4_M_LGTGUARD
+1@ge_st,99,62,6	duplicate(#d_c)	Tournament Spectator#72	4_F_JOB_HUNTER
+1@ge_st,93,62,6	duplicate(#d_c)	Tournament Spectator#73	1_ETC_01
+1@ge_st,94,62,6	duplicate(#d_c)	Tournament Spectator#74	1_F_02
+1@ge_st,96,62,6	duplicate(#d_c)	Tournament Spectator#75	1_M_01
+1@ge_st,98,62,6	duplicate(#d_c)	Tournament Spectator#76	1_M_02
+1@ge_st,100,62,6	duplicate(#d_c)	Tournament Spectator#77	1_M_03
+1@ge_st,102,62,6	duplicate(#d_c)	Tournament Spectator#78	1_F_01
+1@ge_st,104,62,6	duplicate(#d_c)	Tournament Spectator#79	1_F_03
+1@ge_st,116,62,4	duplicate(#d_c)	Tournament Spectator#80	1_F_04
+1@ge_st,118,62,4	duplicate(#d_c)	Tournament Spectator#81	1_F_GYPSY
+1@ge_st,92,64,6	duplicate(#d_c)	Tournament Spectator#82	4_F_TWGRANDMOM
+1@ge_st,93,64,6	duplicate(#d_c)	Tournament Spectator#83	1_F_MERCHANT_01
+1@ge_st,94,64,6	duplicate(#d_c)	Tournament Spectator#84	1_F_MERCHANT_02
+1@ge_st,95,64,6	duplicate(#d_c)	Tournament Spectator#85	1_M_JOBGUIDER
+1@ge_st,96,64,6	duplicate(#d_c)	Tournament Spectator#86	1_M_JOBTESTER
+1@ge_st,97,64,6	duplicate(#d_c)	Tournament Spectator#87	1_M_KNIGHTMASTER
+1@ge_st,98,64,6	duplicate(#d_c)	Tournament Spectator#88	1_M_LIBRARYMASTER
+1@ge_st,99,64,6	duplicate(#d_c)	Tournament Spectator#89	1_F_ORIENT_01
+1@ge_st,100,64,6	duplicate(#d_c)	Tournament Spectator#90	1_F_ORIENT_02
+1@ge_st,101,64,6	duplicate(#d_c)	Tournament Spectator#91	1_F_ORIENT_03
+1@ge_st,102,64,6	duplicate(#d_c)	Tournament Spectator#92	1_F_ORIENT_04
+1@ge_st,103,64,6	duplicate(#d_c)	Tournament Spectator#93	1_M_MERCHANT
+1@ge_st,104,64,6	duplicate(#d_c)	Tournament Spectator#94	1_M_MOC_LORD
+1@ge_st,105,64,6	duplicate(#d_c)	Tournament Spectator#95	1_M_ORIENT01
+1@ge_st,106,64,6	duplicate(#d_c)	Tournament Spectator#96	1_M_PASTOR
+1@ge_st,107,64,6	duplicate(#d_c)	Tournament Spectator#97	1_F_PRIEST
+1@ge_st,108,64,6	duplicate(#d_c)	Tournament Spectator#98	1_F_PUBGIRL
+1@ge_st,109,64,4	duplicate(#d_c)	Tournament Spectator#99	4_M_DST_TOUGH
+1@ge_st,110,64,4	duplicate(#d_c)	Tournament Spectator#100	1_M_INNKEEPER
+1@ge_st,111,64,4	duplicate(#d_c)	Tournament Spectator#101	1_M_SIZ
+1@ge_st,112,64,4	duplicate(#d_c)	Tournament Spectator#102	1_M_PAY_ELDER
+1@ge_st,113,64,4	duplicate(#d_c)	Tournament Spectator#103	1_M_PRON_KING
+1@ge_st,114,64,4	duplicate(#d_c)	Tournament Spectator#104	1_M_PUBMASTER
+1@ge_st,115,64,4	duplicate(#d_c)	Tournament Spectator#105	1_M_SIGN1
+1@ge_st,116,64,4	duplicate(#d_c)	Tournament Spectator#106	2_F_MAGICMASTER
+1@ge_st,117,64,4	duplicate(#d_c)	Tournament Spectator#107	4_F_01
+1@ge_st,118,64,4	duplicate(#d_c)	Tournament Spectator#108	4_F_02
+1@ge_st,90,63,6	duplicate(#d_c)	Tournament Spectator#109	4_F_TELEPORTER
+1@ge_st,91,63,6	duplicate(#d_c)	Tournament Spectator#110	4_F_THAIAYO
+1@ge_st,89,38,8	duplicate(#d_c)	Tournament Spectator#111	4_M_ALCHE_E
+1@ge_st,89,39,8	duplicate(#d_c)	Tournament Spectator#112	4_M_ARUNA_NFM1
+1@ge_st,89,40,8	duplicate(#d_c)	Tournament Spectator#113	4_F_JPN2
+1@ge_st,89,41,8	duplicate(#d_c)	Tournament Spectator#114	4_F_JPN
+1@ge_st,89,42,8	duplicate(#d_c)	Tournament Spectator#115	4_F_JPNCHIBI
+1@ge_st,89,43,8	duplicate(#d_c)	Tournament Spectator#116	4_F_HUGRANMA
+1@ge_st,89,44,8	duplicate(#d_c)	Tournament Spectator#117	4_F_JPNOBA2
+1@ge_st,89,45,8	duplicate(#d_c)	Tournament Spectator#118	4_F_JPNOBA
+1@ge_st,89,51,6	duplicate(#d_c)	Tournament Spectator#119	4_F_SCIENCE
+1@ge_st,89,52,6	duplicate(#d_c)	Tournament Spectator#120	4_F_SHABBY
+1@ge_st,89,53,6	duplicate(#d_c)	Tournament Spectator#121	4_M_CRU_SOLD
+1@ge_st,89,54,6	duplicate(#d_c)	Tournament Spectator#122	4_M_DESERT
+1@ge_st,89,55,6	duplicate(#d_c)	Tournament Spectator#123	4_M_DEWBOY
+1@ge_st,89,56,6	duplicate(#d_c)	Tournament Spectator#124	4_M_DEWMAN
+1@ge_st,89,57,6	duplicate(#d_c)	Tournament Spectator#125	4_F_SHADOWCHASER
+1@ge_st,89,58,6	duplicate(#d_c)	Tournament Spectator#126	4_F_SISTER
+1@ge_st,89,59,6	duplicate(#d_c)	Tournament Spectator#127	4_F_SOCCER
+1@ge_st,89,62,6	duplicate(#d_c)	Tournament Spectator#128	4_M_DOCTOR
+1@ge_st,88,61,6	duplicate(#d_c)	Tournament Spectator#129	4_M_DEWZATICHIEF
+1@ge_st,87,37,8	duplicate(#d_c)	Tournament Spectator#130	4_M_ALCHE_D
+1@ge_st,87,59,6	duplicate(#d_c)	Tournament Spectator#131	4_F_SURA
+1@ge_st,87,60,6	duplicate(#d_c)	Tournament Spectator#132	4_M_DEWOLDMAN
+1@ge_st,119,62,4	duplicate(#d_c)	Tournament Spectator#133	4_F_JOB_KNIGHT
+1@ge_st,119,64,4	duplicate(#d_c)	Tournament Spectator#134	4_F_03
+1@ge_st,120,62,4	duplicate(#d_c)	Tournament Spectator#135	1_M_BARD
+1@ge_st,120,64,4	duplicate(#d_c)	Tournament Spectator#136	4_F_04
+1@ge_st,121,64,4	duplicate(#d_c)	Tournament Spectator#137	4_F_TRAINEE
+1@ge_st,122,64,4	duplicate(#d_c)	Tournament Spectator#138	1_M_SIGNART
+1@ge_st,123,64,4	duplicate(#d_c)	Tournament Spectator#139	1_M_SIGNMCNT
+1@ge_st,124,62,4	duplicate(#d_c)	Tournament Spectator#140	1_F_LIBRARYGIRL
+1@ge_st,124,64,4	duplicate(#d_c)	Tournament Spectator#141	1_M_SIGNMONK2
+1@ge_st,125,62,4	duplicate(#d_c)	Tournament Spectator#142	1_M_HOF
+1@ge_st,125,64,4	duplicate(#d_c)	Tournament Spectator#143	4_F_05
+1@ge_st,126,64,4	duplicate(#d_c)	Tournament Spectator#144	4_F_06
+1@ge_st,127,63,4	duplicate(#d_c)	Tournament Spectator#145	4_F_07
+1@ge_st,128,63,4	duplicate(#d_c)	Tournament Spectator#146	4_F_ACROSS
+1@ge_st,128,60,4	duplicate(#d_c)	Tournament Spectator#147	4_F_ALCHE
+1@ge_st,128,59,4	duplicate(#d_c)	Tournament Spectator#148	4_M_EDEN_GUARDER
+1@ge_st,128,58,4	duplicate(#d_c)	Tournament Spectator#149	4_F_ANNIVERSARY
+1@ge_st,128,57,4	duplicate(#d_c)	Tournament Spectator#150	4_F_BRZ_INDIAN
+1@ge_st,128,56,4	duplicate(#d_c)	Tournament Spectator#151	1_M_WIZARD
+1@ge_st,128,55,4	duplicate(#d_c)	Tournament Spectator#152	1_M_YOUNGKNIGHT
+1@ge_st,128,54,4	duplicate(#d_c)	Tournament Spectator#153	2_M_ALCHE
+1@ge_st,128,53,4	duplicate(#d_c)	Tournament Spectator#154	4_F_BRZ_INDIAN
+1@ge_st,128,52,4	duplicate(#d_c)	Tournament Spectator#155	4_F_BRZ_INDOLD
+1@ge_st,128,51,4	duplicate(#d_c)	Tournament Spectator#156	4_F_BRZ_WOMAN
+1@ge_st,128,45,2	duplicate(#d_c)	Tournament Spectator#157	2_M_BARD_ORIENT
+1@ge_st,128,44,2	duplicate(#d_c)	Tournament Spectator#158	2_M_DYEINGER
+1@ge_st,129,62,4	duplicate(#d_c)	Tournament Spectator#159	1_M_SIGNMONK
+1@ge_st,128,43,2	duplicate(#d_c)	Tournament Spectator#160	2_M_MOLGENSTEIN
+1@ge_st,129,43,2	duplicate(#d_c)	Tournament Spectator#161	4_M_CRU_OLD
+1@ge_st,129,44,2	duplicate(#d_c)	Tournament Spectator#162	4_F_RUSWOMAN2
+1@ge_st,129,45,2	duplicate(#d_c)	Tournament Spectator#163	4_F_RUSWOMAN3
+1@ge_st,130,61,4	duplicate(#d_c)	Tournament Spectator#164	1_M_SIGNROGUE
+1@ge_st,130,60,4	duplicate(#d_c)	Tournament Spectator#165	1_M_SMITH
+1@ge_st,128,42,2	duplicate(#d_c)	Tournament Spectator#166	4_F_CAPEGIRL
+1@ge_st,129,42,2	duplicate(#d_c)	Tournament Spectator#167	4_M_CRU_KNT
+1@ge_st,128,41,2	duplicate(#d_c)	Tournament Spectator#168	4_F_CAVE1
+1@ge_st,129,41,2	duplicate(#d_c)	Tournament Spectator#169	4_M_CRU_HEAD
+1@ge_st,128,40,2	duplicate(#d_c)	Tournament Spectator#170	4_F_CHILD
+1@ge_st,129,40,2	duplicate(#d_c)	Tournament Spectator#171	4_M_CRU_CRUA
+1@ge_st,128,39,2	duplicate(#d_c)	Tournament Spectator#172	2_M_OLDBLSMITH
+1@ge_st,129,39,2	duplicate(#d_c)	Tournament Spectator#173	4_F_RUSWOMAN1
+1@ge_st,128,38,2	duplicate(#d_c)	Tournament Spectator#174	2_M_PHARMACIST
+1@ge_st,129,38,2	duplicate(#d_c)	Tournament Spectator#175	4_F_RUSCHILD
+1@ge_st,128,37,2	duplicate(#d_c)	Tournament Spectator#176	2_M_SAGE_B
+1@ge_st,130,37,2	duplicate(#d_c)	Tournament Spectator#177	4_F_CHNDOCTOR
+1@ge_st,130,36,2	duplicate(#d_c)	Tournament Spectator#178	4_F_CHNDRESS1
+1@ge_st,130,35,2	duplicate(#d_c)	Tournament Spectator#179	2_M_SAGE_OLD
+1@ge_st,108,34,8	duplicate(#d_c)	Tournament Spectator#180	4_F_KID3
+1@ge_st,109,34,2	duplicate(#d_c)	Tournament Spectator#181	4_F_LGTGIRL
+1@ge_st,110,34,2	duplicate(#d_c)	Tournament Spectator#182	4_F_LGTGRAND
+1@ge_st,111,34,2	duplicate(#d_c)	Tournament Spectator#183	4_F_MADAME
+1@ge_st,112,34,2	duplicate(#d_c)	Tournament Spectator#184	4_M_CHN8GUEK
+1@ge_st,113,34,2	duplicate(#d_c)	Tournament Spectator#185	4_M_CHNCOOK
+1@ge_st,114,34,2	duplicate(#d_c)	Tournament Spectator#186	4_M_CHNGENERL
+1@ge_st,115,34,2	duplicate(#d_c)	Tournament Spectator#187	4_M_CHNMAN
+1@ge_st,116,34,2	duplicate(#d_c)	Tournament Spectator#188	4_F_MASK
+1@ge_st,117,34,2	duplicate(#d_c)	Tournament Spectator#189	4_F_MONK
+1@ge_st,118,34,2	duplicate(#d_c)	Tournament Spectator#190	4_F_NFLOSTGIRL
+1@ge_st,119,34,2	duplicate(#d_c)	Tournament Spectator#191	4_F_NOVICE
+1@ge_st,129,34,2	duplicate(#d_c)	Tournament Spectator#192	2_M_SWORDMASTER
+1@ge_st,120,34,2	duplicate(#d_c)	Tournament Spectator#193	4_M_CHNMONK
+1@ge_st,121,34,2	duplicate(#d_c)	Tournament Spectator#194	4_M_CHNOLD
+1@ge_st,122,34,2	duplicate(#d_c)	Tournament Spectator#195	4_M_CHNSOLDIER
+1@ge_st,123,34,2	duplicate(#d_c)	Tournament Spectator#196	4_M_CRU
+1@ge_st,124,34,2	duplicate(#d_c)	Tournament Spectator#197	4_F_RACHOLD
+1@ge_st,125,34,2	duplicate(#d_c)	Tournament Spectator#198	4_F_ROGUE
+1@ge_st,128,33,2	duplicate(#d_c)	Tournament Spectator#199	4_F_CHNDRESS2
+1@ge_st,127,33,2	duplicate(#d_c)	Tournament Spectator#200	4_F_CHNDRESS3
+1@ge_st,119,32,2	duplicate(#d_c)	Tournament Spectator#201	4_F_DST_CHILD
+1@ge_st,118,32,2	duplicate(#d_c)	Tournament Spectator#202	4_LGTSCIENCE
+1@ge_st,117,32,2	duplicate(#d_c)	Tournament Spectator#203	4_M_01
+1@ge_st,116,32,2	duplicate(#d_c)	Tournament Spectator#204	4_F_DST_GRAND
+1@ge_st,115,32,2	duplicate(#d_c)	Tournament Spectator#205	4_F_EDEN_MASTER
+1@ge_st,114,32,2	duplicate(#d_c)	Tournament Spectator#206	4_F_EDEN_OFFICER
+1@ge_st,113,32,2	duplicate(#d_c)	Tournament Spectator#207	4_M_1STPRIN1
+1@ge_st,112,32,2	duplicate(#d_c)	Tournament Spectator#208	4_M_DST_CHILD
+1@ge_st,111,32,2	duplicate(#d_c)	Tournament Spectator#209	4_F_EINOLD
+1@ge_st,110,32,2	duplicate(#d_c)	Tournament Spectator#210	4_F_YUNYANG
+1@ge_st,109,32,2	duplicate(#d_c)	Tournament Spectator#211	4_M_2NDPRIN1
+1@ge_st,108,32,8	duplicate(#d_c)	Tournament Spectator#212	4_M_03
+1@ge_st,126,32,2	duplicate(#d_c)	Tournament Spectator#213	2_M_THIEFMASTER
+1@ge_st,125,32,2	duplicate(#d_c)	Tournament Spectator#214	4_COOK
+1@ge_st,124,32,2	duplicate(#d_c)	Tournament Spectator#215	4_F_CHNWOMAN
+1@ge_st,123,32,2	duplicate(#d_c)	Tournament Spectator#216	4_F_CRU
+1@ge_st,122,32,2	duplicate(#d_c)	Tournament Spectator#217	4_DST_SOLDIER
+1@ge_st,121,32,2	duplicate(#d_c)	Tournament Spectator#218	4_KID01
+1@ge_st,120,32,2	duplicate(#d_c)	Tournament Spectator#219	4_F_DESERT
+1@ge_st,107,32,8	duplicate(#d_c)	Tournament Spectator#220	4_F_GODEMOM
+1@ge_st,107,34,8	duplicate(#d_c)	Tournament Spectator#221	4_F_KID2
+1@ge_st,106,32,8	duplicate(#d_c)	Tournament Spectator#222	4_F_GON
+1@ge_st,106,34,8	duplicate(#d_c)	Tournament Spectator#223	4_F_THAIGIRL
+1@ge_st,105,32,8	duplicate(#d_c)	Tournament Spectator#224	4_M_3RDPRIN1
+1@ge_st,105,34,8	duplicate(#d_c)	Tournament Spectator#225	4_M_CAVE1
+1@ge_st,104,32,8	duplicate(#d_c)	Tournament Spectator#226	4_M_DST_MASTER
+1@ge_st,104,34,8	duplicate(#d_c)	Tournament Spectator#227	4_M_CASMAN1
+1@ge_st,103,32,8	duplicate(#d_c)	Tournament Spectator#228	4_M_4THPRIN1
+1@ge_st,103,34,8	duplicate(#d_c)	Tournament Spectator#229	4_M_BUDDHIST
+1@ge_st,102,32,8	duplicate(#d_c)	Tournament Spectator#230	4_M_DSTMAN
+1@ge_st,102,34,8	duplicate(#d_c)	Tournament Spectator#231	4_M_BRZ_MAN1
+1@ge_st,101,32,8	duplicate(#d_c)	Tournament Spectator#232	4_F_GUILLOTINE
+1@ge_st,101,34,8	duplicate(#d_c)	Tournament Spectator#233	4_F_TWMASKGIRL
+1@ge_st,100,32,8	duplicate(#d_c)	Tournament Spectator#234	4_F_HUGIRL
+1@ge_st,100,34,8	duplicate(#d_c)	Tournament Spectator#235	4_F_KHGIRL
+1@ge_st,99,32,8	duplicate(#d_c)	Tournament Spectator#236	4_F_HUGRANMA
+1@ge_st,99,34,8	duplicate(#d_c)	Tournament Spectator#237	4_F_KHELLY
+1@ge_st,98,32,8	duplicate(#d_c)	Tournament Spectator#238	4_F_HUWOMAN
+1@ge_st,98,34,8	duplicate(#d_c)	Tournament Spectator#239	4_F_KHELLISIA
+1@ge_st,97,32,8	duplicate(#d_c)	Tournament Spectator#240	4_M_5THPRIN1
+1@ge_st,97,34,8	duplicate(#d_c)	Tournament Spectator#241	4_M_BRZ_JACI
+1@ge_st,96,32,8	duplicate(#d_c)	Tournament Spectator#242	4_M_06
+1@ge_st,96,34,8	duplicate(#d_c)	Tournament Spectator#243	4_M_BIBI
+1@ge_st,95,32,8	duplicate(#d_c)	Tournament Spectator#244	4_M_6THPRIN1
+1@ge_st,95,34,8	duplicate(#d_c)	Tournament Spectator#245	4_M_BARD
+1@ge_st,94,32,8	duplicate(#d_c)	Tournament Spectator#246	4_M_ACROSS
+1@ge_st,94,34,8	duplicate(#d_c)	Tournament Spectator#247	4_M_BARBER
+1@ge_st,93,32,8	duplicate(#d_c)	Tournament Spectator#248	4_M_ALCHE_A
+1@ge_st,93,34,8	duplicate(#d_c)	Tournament Spectator#249	4_M_ATEIL
+1@ge_st,92,32,8	duplicate(#d_c)	Tournament Spectator#250	4_F_JOB_ASSASSIN
+1@ge_st,91,33,8	duplicate(#d_c)	Tournament Spectator#251	4_F_JOB_BLACKSMITH
+1@ge_st,90,33,8	duplicate(#d_c)	Tournament Spectator#252	4_M_JP_RUN
+1@ge_st,89,34,8	duplicate(#d_c)	Tournament Spectator#253	4_M_EINMAN
+1@ge_st,88,35,8	duplicate(#d_c)	Tournament Spectator#254	4_M_ALCHE_B
+1@ge_st,88,36,8	duplicate(#d_c)	Tournament Spectator#255	4_M_ALCHE_C
+1@gef,124,72,4	duplicate(#d_c)	Tournament Spectator#256	1_M_SIGNMCNT
+1@gef,106,56,6	duplicate(#d_c)	Tournament Spectator#257	1_F_ORIENT_04
+1@ge_st,107,62,6	duplicate(#d_c)	Veins Spectator#a1	4_F_ALCHE_A
+1@ge_st,110,62,4	duplicate(#d_c)	Comodo Spectator#a1	4_F_EINWOMAN
+1@ge_st,115,62,4	duplicate(#d_c)	Prontera Spectator#a1	4_M_DST_GRAND
+1@ge_st,117,62,4	duplicate(#d_c)	Payon Spectator#a1	1_F_SIGNZISK
+1@ge_st,121,62,4	duplicate(#d_c)	Alberta Spectator#a1	4_M_05
+1@ge_st,97,62,6	duplicate(#d_c)	Prontera Spectator#a2	4_M_2NDPRIN1
+1@ge_st,101,62,6	duplicate(#d_c)	Payon Spectator#a2	4_M_ROGUE
+1@ge_st,105,62,6	duplicate(#d_c)	Alberta Spectator#a2	4_M_ORIENT02
+1@ge_st,103,62,6	duplicate(#d_c)	Magic Academy Student#1	4_M_02
+1@ge_st,109,62,4	duplicate(#d_c)	Magic Academy Student#2	4_M_CHILD1
+1@ge_st,114,62,4	duplicate(#d_c)	Magic Academy Student#3	4_M_04
+1@ge_st,122,62,4	duplicate(#d_c)	Magic Academy Student#4	1_F_MARIA
+1@ge_st,123,62,4	duplicate(#d_c)	Magic Academy Student#5	1_M_SIGNALCHE
+1@gef,128,93,4	duplicate(#d_c)	Geffen Villager#c1	4_F_CAVE1
+1@gef,103,100,6	duplicate(#d_c)	Geffen Villager#c2	1_M_JOBGUIDER
+
+// ===================================================================================
+// Tournament Start - CHINESE TOURNAMENT ARENA START
+// ===================================================================================
+1@ge_st,102,49,4	script	Geffen Academy Master#S	567,3,3,{
+end;
+
+OnTouch_:
+	ignoretimeout 1;
+	.@n$ = "[ Geffen Academy Master ]";
+	if ('GMT_1QUE < 11) {
+		cutin "acamaster_a.bmp",2;
+		mes .@n$,
+		"Ladies and gentlemen!",
+		"Welcome to the Geffen Magic",
+		"Tournament!";
+		next;
+		mes .@n$,
+		"Today a champion will be crowned.";
+		next;
+		mes .@n$,
+		"There are 2 divisions this year",
+		"divided into Group A and B.",
+		"The winner of each group will face",
+		"each other for the championship",
+		"match.";
+		next;
+		mes .@n$,
+		"I am the MC of Group A.",
+		"Geffen Academy Master~!",
+		"Archmage Zanzibar Hellmod";
+		next;
+		mes .@n$,
+		"I am honored to be this year's MC.",
+		"Now, it's time for the matches to begin.";
+		next;
+		mes .@n$,
+		"Ahem...";
+		close2;
+		cutin "acamaster_a.bmp", 255;
+		hideonnpc "Geffen Academy Master";
+		'GMT_1QUE = 11;
+		changequest 9294,9295;
+		donpcevent instance_npcname("Geffen Academy Master")+"::OnStart";
+		'charname$ = strcharinfo(0);
+		'sex = Sex;
+		end;
+	}
+	end;
+
+OnInit:
+	hideonnpc strnpcinfo(0);
+	end;
+OnInstanceInit:
+	hideonnpc instance_npcname(strnpcinfo(0));
+	end;
+	
+}
+
+1@ge_st,107,57,4	script	Tournament Guide#gefMT	4_M_HUMAN_02,{
+	.@n$ = "[ Tournament Guide ]";
+	ignoretimeout 1;
+	if (checkquest(9308) != -1) {
+		switch(select("Leave the Arena and receive your reward:End Conversation")) {
+			case 1:
+				mes .@n$;
+				mes "You won the competition!","Congratulations!";
+				next;
+				mes .@n$;
+				mes "By the way, the Academy Master has","something to tell you!";
+				next;
+				cutin "acamaster_a.bmp",2;
+				.@n2$ = "[ Geffen Academy Master ]";
+				mes .@n2$,
+				"Congratulations!",
+				"This has been the best pool of",
+				"competitors in the history of this",
+				"competition.";
+				next;
+				mes .@n2$,
+				"I present to you your earned ^55CC55Geffen",
+				"Magic Tournament Coins.^000000";
+				next;
+				mes .@n2$,
+				"Bring the coins to the ^55CC55Geffen Coin",
+				"Operator^000000 to exchange for special",
+				"equipment.";
+				next;
+				mes .@n2$,
+				"Your name will be remembered in the",
+				"history books of Geffen.";
+				next;
+				mes .@n2$,
+				"Congratulations again.",
+				"I hope you enjoy the rest of the",
+				"Geffen Festivities.";
+				close2;
+				cutin "",255;
+				getitem 6671,20;
+				warp instance_mapname("1@gef"), 120,35;
+				end;
+			case 2:
+				end;
+		}
+	}
+	mes .@n$;
+	if ('GMT_1QUE <22) {
+		mes "Congratulations on winning the "+callfunc("F_GetNumSuffix",('GMT_1QUE-10))+" round!";
+		.@menu$ = "Begin the "+callfunc("F_GetNumSuffix",('GMT_1QUE-9))+" match.";
+	}
+	else {
+	mes "Congratulations! You've defeated every other opponent in Group A! Good luck on the final!";
+	.@menu$ = "Begin the final match.";
+	}
+	next;
+	
+			switch(select(.@menu$,"End Conversation")) {
+			case 1:
+					mes .@n$;
+					mes "Winners of each round will receive ^55CC55Geffen Magic Tournament Coins^000000 as a reward.";
+					next;
+					mes .@n$;
+					mes "Bring the coins to the ^55CC55Geffen Coin Operator^000000 to exchange them for special equipment.";
+					next;
+					mes .@n$;
+					mes "The "+callfunc("F_GetNumSuffix",('GMT_1QUE-9))+" match of Group A is about to begin!";
+					close2;
+					getitem 6671, 'reward['GMT_1QUE-11];
+					hideonnpc instance_npcname("Tournament Healer#1");
+					
+					switch ('GMT_1QUE) {
+						  case 11:
+							enablenpc instance_npcname("Dio Anemos#1");
+							break;
+						  case 12:
+							if ('GMTQuest == 1)
+								enablenpc instance_npcname("Geffen Gangster#n1");
+							else if ('GMTQuest == 2)
+								enablenpc instance_npcname("Geffen Bully#n1");
+							else
+								enablenpc instance_npcname("Geffen Shoplifter#n1");
+								break;
+						  case 13:
+							enablenpc instance_npcname("Faymont#1");
+							break;
+						  case 14:
+							enablenpc instance_npcname("Ordre#1");
+							break;
+						  case 15:
+							enablenpc instance_npcname("Blut Hase#1");
+							break;
+						  case 16:
+							enablenpc instance_npcname("Kuro Akuma#1");
+							break;
+						  case 17:
+							enablenpc instance_npcname("Ifodes#1");
+							break;
+						  case 18:
+							enablenpc instance_npcname("Licheniyes#1");
+							break;
+						  case 19:
+							enablenpc instance_npcname("Odoric#1");
+							break;
+						  case 20:
+							enablenpc instance_npcname("Ju#1");
+							break;
+						  case 21:
+					'half = rand(0,1);
+					if ('half) {
+					enablenpc instance_npcname("Dwigh#1");
+					} else {
+					enablenpc instance_npcname("Fay Kanavian#1");
+									}
+									break;
+								  case 22:
+									enablenpc instance_npcname("Fenrir#f");
+									break;
+					}
+					warp instance_mapname("1@ge_st"), 104,50;
+					'GMT_1QUE++;
+					donpcevent instance_npcname("Geffen Academy Master")+"::OnStart";
+					hideoffnpc instance_npcname("Geffen Academy Master");
+					hideonnpc instance_npcname("Tournament Guide#gefMT");
+					end;
+			case 2:
+				mes .@n$; // KURAMA END CONVERSATION TEXT
+				mes "Need more time to prepare I see.";
+				mes "Not a problem, talk to me when you're ready.";
+				close;
+		}
+
+OnInstanceInit:
+	setarray 'reward,1,2,3,4,5,6,7,8,9,10,15,20,20;
+	end;
+}
+
+1@ge_st,109,57,4	script	Geffen Academy Master	10006,{
+end;
+OnStart:
+	if ( 'GMT_1QUE != 11 ){
+		attachrid('gmt_account_id);
+		changequest 9283 + 'GMT_1QUE, 9284 +'GMT_1QUE;
+		detachrid;
+	}
+
+	switch ('GMT_1QUE) {
+		case 11:
+			donpcevent instance_npcname("#Talkcontrol")+"::OnStart";
+			npctalk "Ladies and Gentlemen!";
+			sleep 3000;
+			npctalk "I do my best to be as loud as I can!";
+			donpcevent instance_npcname("#FireworksControl")+"::OnStart";
+			enablenpc instance_npcname("Arhi#1");
+			sleep 3000;
+			npctalk "The Geffen Magic Tournament will now commence!";
+			sleep 1000;
+			.@spec = rand(70,257);
+			showscript "Tournament Spectator: Wow~!!! Looks fun~~!! Yahoo~!",getnpcid(0,instance_npcname("Tournament Spectator#"+.@spec));
+			sleep 1000;
+			.@spec = rand(70,257);
+			showscript "Tournament Spectator: This is getting exciting~!",getnpcid(0,instance_npcname("Tournament Spectator#"+.@spec));
+			sleep 1000;
+			.@spec = rand(70,257);
+			showscript "Tournament Spectator: When is the game going to start~!",getnpcid(0,instance_npcname("Tournament Spectator#"+.@spec));
+			sleep 500;
+			donpcevent instance_npcname("Arhi#1")+"::OnActivate";
+			sleep 500;
+			npctalk "We are starting the 1st match for Group A";;
+			sleep 2000;
+			npctalk "On this corner, "+('sex?"he":"she")+" looks weak enough to lose in the 1st match!";
+			sleep 3000;
+			npctalk "Give a big welcome to the unknown competitor! "+'charname$+"~!";
+			sleep 2000;
+			npctalk "And on the other corner, Arhi the Novice! Give it your best shot!";
+			end;
+		case 12:
+			donpcevent instance_npcname("#Talkcontrol")+"::OnStart";
+			donpcevent instance_npcname("#FireworksControl")+"::OnStart";
+			npctalk "The 2nd match of Group A is about to begin!";
+			sleep 3000;
+			npctalk "On this corner, the competitor who exceeded our expectations by getting past the first round!";
+			sleep 3000;
+			npctalk "The extremely weak looking competitor, "+'charname$+"!";
+			sleep 3000;
+			donpcevent instance_npcname("Dio Anemos#1")+"::OnActivate";
+			sleep 500;
+			npctalk "And "+('sex ? "his" : "her")+" opponent...";
+			sleep 3000;
+			npctalk "Despite his skipping classes at the Magic Academy...";
+			sleep 3000;
+			npctalk "A crowd favorite! A big round of applause to the Magician Apprentice, Dio Anemos!";
+			end;
+		case 13:
+			donpcevent instance_npcname("#Talkcontrol")+"::OnStart";
+			donpcevent instance_npcname("#FireworksControl")+"::OnStart";
+			npctalk "The 3rd match of Group A is about to begin!";
+			sleep 2000;
+			npctalk "Welcome back our unlikely competitor, "+'charname$+"!";
+			sleep 3000;
+			npctalk "And "+('sex ? "his" : "her")+" opponent...";
+			sleep 2000;
+			if ('GMTQuest == 1) {
+				donpcevent instance_npcname("Geffen Gangster#n1")+"::OnActivate";
+				sleep 500;
+				npctalk "Whose looks give off a creepy air about him...";
+				sleep 3000;
+				npctalk "A member of the Curvy Woman Loving club~!! Geffen Gangster!";
+			} else if ('GMTQuest == 2) {
+				donpcevent instance_npcname("Geffen Bully#n1")+"::OnActivate";
+				sleep 500;
+				npctalk "With a face only a mother can love!";
+				sleep 3000;
+				npctalk "The ruthless Geffen Bully!";
+			} else {
+				donpcevent instance_npcname("Geffen Shoplifter#n1")+"::OnActivate";
+				sleep 500;
+				npctalk "With a mischievous grin on her face!";
+				sleep 3000;
+				npctalk "The Geffen Thief Guild's Guildmaster! Geffen Shoplifter!";
+			}
+			end;
+		case 14:
+			donpcevent instance_npcname("#Talkcontrol")+"::OnStart";
+			donpcevent instance_npcname("#FireworksControl")+"::OnStart";
+			npctalk "The surprise of this year's Tournament~!";
+			sleep 3000;
+			npctalk "The unrivaled warrior! "+'charname$+"!";
+			sleep 3000;
+			donpcevent instance_npcname("Faymont#1")+"::OnActivate";
+			npctalk "And "+('sex ? "his" : "her")+" opponent~!!!";
+			sleep 3000;
+			npctalk "Entering the ring with pomp and circumstance.";
+			sleep 3000;
+			npctalk "Prontera's pride and style, Faymont!";
+			npctalk "Oh~ A player from Prontera ah!", instance_npcname("Prontera Spectator#a1");
+			sleep 2000;
+			npctalk "Do not give Prontera a bad name!!", instance_npcname("Prontera Spectator#a2");
+			end;
+		case 15:
+			donpcevent instance_npcname("#Talkcontrol")+"::OnStart";
+			donpcevent instance_npcname("#FireworksControl")+"::OnStart";
+			npctalk "This isn't just a fluke ladies and gents!";
+			sleep 3000;
+			npctalk "The remarkable rookie! "+'charname$+"!";
+			sleep 3000;
+			npctalk "And "+('sex ? "his" : "her")+" opponent~!!!";
+			sleep 500;
+			donpcevent instance_npcname("Ordre#1")+"::OnActivate";
+			sleep 3000;
+			npctalk "One who promises to fight with honor!";
+			sleep 3000;
+			npctalk "The self-proclaimed master of battle, Ordre!";
+			end;
+		case 16:
+			donpcevent instance_npcname("#Talkcontrol")+"::OnStart";
+			donpcevent instance_npcname("#FireworksControl")+"::OnStart";
+			npctalk "Suddenly, the incredibly powerful!";
+			sleep 3000;
+			npctalk "Super rookie of this year's tournament~! "+'charname$+"!";
+			sleep 3000;
+			npctalk "And "+('sex ? "his" : "her")+" opponent~!!!";
+			sleep 500;
+			donpcevent instance_npcname("Blut Hase#1")+"::OnActivate";
+			sleep 3000;
+			npctalk "Cute on the outside, but cruely destroys enemies!";
+			sleep 3000;
+			npctalk "Bloody Rabbit Ears~!! Blut Hase!";
+			end;
+		case 17:
+			donpcevent instance_npcname("#Talkcontrol")+"::OnStart";
+			donpcevent instance_npcname("#FireworksControl")+"::OnStart";
+			npctalk "Onwards to the 7th Round!";
+			sleep 3000;
+			npctalk "Welcome back "+'charname$+"!";
+			sleep 3000;
+			npctalk "And "+('sex ? "his" : "her")+" opponent~!!!";
+			sleep 2000;
+			donpcevent instance_npcname("#Talkcontrol")+"::OnRndtalk";
+			npctalk "A competitor more evil than any we've seen before!";
+			sleep 500;
+			donpcevent instance_npcname("Kuro Akuma#1")+"::OnActivate";
+			sleep 3000;
+			npctalk "The Devil's Tooth, Kuro Akuma!";
+			donpcevent instance_npcname("#Talkcontrol")+"::OnRndtalk";
+			end;
+		case 18:
+			donpcevent instance_npcname("#Talkcontrol")+"::OnStart";
+			donpcevent instance_npcname("#FireworksControl")+"::OnStart";
+			npctalk "Starting up Round 8 for Group A!";
+			sleep 3000;
+			npctalk "The darling of this year's tournament!";
+			sleep 3000;
+			npctalk "Rune-Midgard newest star, "+'charname$+"!";
+			sleep 2000;
+			npctalk "And "+('sex ? "his" : "her")+" opponent~!!!";
+			sleep 2000;
+			npctalk "They look very strong!", instance_npcname("Payon Spectator#a1");
+			sleep 250;
+			donpcevent instance_npcname("Ifodes#1")+"::OnActivate";
+			sleep 250;
+			npctalk "Looks good and strong ah!", instance_npcname("Veins Spectator#a1");
+			sleep 1000;
+			npctalk "Slow as a turtle, fast as a hare!";
+			sleep 3000;
+			npctalk "The maniac of Rune Midgard! Ifodes!";
+			donpcevent instance_npcname("#Talkcontrol")+"::OnRndtalk";
+			end;
+		case 19:
+			donpcevent instance_npcname("#Talkcontrol")+"::OnStart";
+			donpcevent instance_npcname("#FireworksControl")+"::OnStart";
+			npctalk "We have now entered the 9th Round of this competition!";
+			sleep 3000;
+			npctalk "Nobody can stop "+('sex ? "him" : "her")+"!";
+			sleep 3000;
+			npctalk ""+('sex ? "His" : "Her")+" strength has been recognized by the people! "+'charname$;
+			sleep 2000;
+			npctalk "And "+('sex ? "his" : "her")+" opponent~!!!";
+			sleep 500;
+			donpcevent instance_npcname("Licheniyes#1")+"::OnActivate";
+			sleep 500;
+			donpcevent instance_npcname("#Talkcontrol")+"::OnRndtalk";
+			sleep 1000;
+			npctalk "She might look like a nice lady, but you better watch out!";
+			sleep 3000;
+			npctalk "She'll attack you with the swiftness of a snake!";
+			sleep 3000;
+			npctalk "The Lady of Death! Licheniyes!";
+			donpcevent instance_npcname("#Talkcontrol")+"::OnRndtalk";
+			end;
+		case 20:
+			donpcevent instance_npcname("#Talkcontrol")+"::OnStart";
+			donpcevent instance_npcname("#FireworksControl")+"::OnStart";
+			npctalk "Let us begin the 10th Round of Group A!";
+			sleep 3000;
+			npctalk "In this corner, back to entertain us again!";
+			sleep 3000;
+			npctalk "None other than the incredible "+'charname$+"!";
+			sleep 1000;
+			donpcevent instance_npcname("#Talkcontrol")+"::OnRndtalk";
+			sleep 1000;
+			npctalk "And "+('sex ? "his" : "her")+" opponent~!!!";
+			sleep 1000;
+			npctalk "Seductress of Rune Midgard...";
+			sleep 500;
+			donpcevent instance_npcname("Odoric#1")+"::OnActivate";
+			sleep 500;
+			npctalk "You can't look away from her curves!";
+			sleep 3000;
+			npctalk "The Songstress of Death! Odoric!";
+			donpcevent instance_npcname("#Talkcontrol")+"::OnRndtalk";
+			end;
+		case 21:
+			donpcevent instance_npcname("#Talkcontrol")+"::OnStart";
+			donpcevent instance_npcname("#FireworksControl")+"::OnStart";
+			npctalk "We're getting closer to the end, next up is Quarter-Finals!";
+			sleep 3000;
+			npctalk "The winning never ends with "+'charname$+"!";
+			sleep 2000;
+			donpcevent instance_npcname("#Talkcontrol")+"::OnRndtalk";
+			sleep 1000;
+			npctalk "And "+('sex ? "his" : "her")+" opponent~!!!";
+			sleep 500;
+			donpcevent instance_npcname("Ju#1")+"::OnActivate";
+			sleep 250;
+			npctalk "I can smell blood...",instance_npcname("Loki#a2");
+			sleep 1000;
+			npctalk "Oh... A fierce competitor, is not it?",instance_npcname("Iris#a2");
+			sleep 500;
+			npctalk "Hidden behind a shroud of mystery...";
+			sleep 3000;
+			npctalk "Master of power and speed! Ju!";
+			donpcevent instance_npcname("#Talkcontrol")+"::OnRndtalk";
+			end;
+		case 22:
+			donpcevent instance_npcname("#Talkcontrol")+"::OnStart";
+			donpcevent instance_npcname("#FireworksControl")+"::OnStart";
+			npctalk "We are now at the Semi-Finals of this competition, this match will decide the winner for Group A!";
+			sleep 3000;
+			npctalk "Winning against all odds, Group A's Dark Horse, "+'charname$+"!";
+			sleep 3000;
+			npctalk "And "+('sex ? "his" : "her")+" opponent~!!!";
+			if ('half) {
+				sleep 500;
+				donpcevent instance_npcname("Dwigh#1")+"::OnActivate";
+				sleep 1500;
+				npctalk "Chief Professor of the Mage Academy, loved by her many disciples!";
+				sleep 1000;
+				donpcevent instance_npcname("#Talkcontrol")+"::OnRndtalk";
+				sleep 2000;
+				npctalk "Commander of battle and wits! Dwigh!";
+			}	else {
+				sleep 2000;
+				npctalk "An Alchemist from Aldebaran, the city of science!";
+				sleep 500;
+				donpcevent instance_npcname("Fay Kanavian#1")+"::OnActivate";
+				sleep 500;
+				donpcevent instance_npcname("#Talkcontrol")+"::OnRndtalk";
+				sleep 2000;
+				npctalk "Fay Kanavian and her homunculus, Alphonse!";
+				}
+			end;
+		case 23:
+			donpcevent instance_npcname("#Talkcontrol")+"::OnStart";
+			donpcevent instance_npcname("#FireworksControl")+"::OnStart";
+			npctalk "A previously anonymous fighter";
+			sleep 3000;
+			npctalk "Despite this, unmatched in Group A!";
+			sleep 2000;
+			npctalk "The most talked about competitor this year!";
+			sleep 3000;
+			npctalk "The unrivaled! "+'charname$+"!";
+			sleep 3000;
+			npctalk "Aha, this match looks like it will be interesting.",instance_npcname("Loki#a2");
+			sleep 3000;
+			npctalk "And the champion of Group B~!!!";
+			sleep 1500;
+			donpcevent instance_npcname("Fenrir#f")+"::OnActivate";
+			sleep 1500;
+			npctalk "A Warlock with incredible powers!";
+			sleep 3000;
+			npctalk "A competitor who swept through Group B like a hurricane!";
+			sleep 1000;
+			npctalk "Oh! This match is going to be exciting!",instance_npcname("Chaos#a2");
+			sleep 2000;
+			npctalk "Is there any Wizard stronger in all of Rune-Midgard?!";
+			sleep 3000;
+			npctalk "The Blue Wizard! Fenris Fenrir~!!";
+			end;
+	}
+
+OnTalk1:
+	showscript "Geffen Academy Master : Let's get it on!",getnpcid(0,instance_npcname(strnpcinfo(0)));
+	end;
+	
+OnTalk2:
+	if ('GMT_1QUE == 22) {
+		npctalk "The final match of Group A is finished~! Congratulations "+'charname$+"!"; 
+	}
+	else {
+		npctalk "The "+callfunc("F_GetNumSuffix",('GMT_1QUE-10))+" match of Group A is finished~! Congratulations "+'charname$+"!"; 
+		sleep 6000;
+		npctalk "You may take some time to heal your wounds.";
+		sleep 6000;
+		npctalk "Please speak with the Tournament Guide when you are ready for the next round.";
+		sleep 3000;
+	}
+	switch ('GMT_1QUE) {
+	case 11:
+	case 12:
+	case 14:
+	case 15:
+	case 17:
+	case 18:
+	case 20:
+	case 21:
+		break;
+	case 13:
+		npctalk "Fenris Fenrir has 3 consecutive victories in Group B~!";
+		sleep 3000;
+		break;
+	case 16:
+		npctalk "Okay~! There is news from Group B!";
+		sleep 3000;
+		npctalk "While all of the other competitors are doing their best,";
+		sleep 3000;
+		npctalk "Fenrir is taking the tournament by storm, and has won 5 consecutive matches!";
+		sleep 1000;
+		break;
+	case 19:
+		npctalk "This is getting exciting! More news from Group B!";
+		sleep 3000;
+		npctalk "Fenris Fenrir is continuing her reign of dominance~! Those in Group A better beware!";
+		sleep 2000;
+		break;
+	case 22:
+		npctalk "Group B has completed their 12th match as well~!";
+		sleep 3000;
+		npctalk "Have you heard of Tetra Vortex? There is a competitor using this mysterious spell!";
+		sleep 3000;
+		npctalk "Her name is none other than Fenris Fenrir!";
+		sleep 3000;
+		npctalk "The final match of this tournament is bound to be challenging!";
+		sleep 1000;
+		break;
+	}
+	hideoffnpc instance_npcname("Tournament Guide#gefMT");
+	hideoffnpc instance_npcname("Geffen Academy Master");
+	hideoffnpc instance_npcname("Tournament Healer#1");
+	end;
+
+OnTalk3:
+	npctalk "The Final Round has started! Let's get it on!";
+	end;
+OnTalk4:
+	npctalk "The Final Match of this year's Geffen Magic Tournament is finished~!";
+	sleep 3000;
+	npctalk "Everyone! Thank you for supporting the Geffen Magic Tournament~!!";
+	sleep 3000;
+	npctalk "This year's Geffen Magic Tournament Champion is "+'charname$+"~!!";
+	donpcevent instance_npcname("#FireworksControl")+"::OnWin";
+	end;
+
+OnInstanceInit:
+	hideonnpc instance_npcname("Tournament Guide#gefMT");
+	disablenpc instance_npcname("Arhi#1");
+	disablenpc instance_npcname("Dio Anemos#1");
+	disablenpc instance_npcname("Geffen Gangster#n1");
+	disablenpc instance_npcname("Geffen Bully#n1");
+	disablenpc instance_npcname("Geffen Shoplifter#n1");
+	disablenpc instance_npcname("Faymont#1");
+	disablenpc instance_npcname("Ordre#1");
+	disablenpc instance_npcname("Blut Hase#1");
+	disablenpc instance_npcname("Kuro Akuma#1");
+	disablenpc instance_npcname("Ifodes#1");
+	disablenpc instance_npcname("Licheniyes#1");
+	disablenpc instance_npcname("Odoric#1");
+	disablenpc instance_npcname("Ju#1");
+	disablenpc instance_npcname("Dwigh#1");
+	disablenpc instance_npcname("Fay Kanavian#1");
+	disablenpc instance_npcname("Fenrir#f");
+	end;
+	
+OnMobDead:
+	end;
+	
+}
+
+1@ge_st,1,1,1	script	#GMTcontroller	-1,{
+	end;
+OnStart:
+	.@map$ = instance_mapname("1@ge_st");
+	.@label$ = instance_npcname("#GMTcontroller")+"::OnMobDead";
+	'timeout = 180;
+	if ('GMT_1QUE == 23) 'timeout = 300;
+	mapannounce .@map$, "<Magic Tournament Broadcast>: Time limit is " + ('timeout / 60) + " minutes.",bc_blue; sleep 2000;
+	mapannounce .@map$, "<Magic Tournament Broadcast>: Ready... Set...",bc_blue; sleep 2000;
+	mapannounce .@map$, "<Magic Tournament Broadcast>: Fight!",bc_blue;
+	
+	donpcevent instance_npcname("#FireworksControl")+"::OnTurn";
+	initnpctimer;
+	
+	switch ('GMT_1QUE) {
+		case 11:
+			hideonnpc instance_npcname("Arhi#1");
+			'BossID = monster(.@map$,114,50,"--ja--",2549,1,.@label$);
+			break;
+		case 12:
+			hideonnpc instance_npcname("Dio Anemos#1");
+			'BossID = monster(.@map$,114,50,"--ja--",2550,1,.@label$);
+			break;
+		case 13:
+			if ('GMTQuest == 1) {
+				hideonnpc instance_npcname("Geffen Gangster#n1");
+				'BossID = monster(.@map$,114,50,"--ja--",2553,1,.@label$);
+			} else if ('GMTQuest == 2) {
+				hideonnpc instance_npcname("Geffen Bully#n1");
+				'BossID = monster(.@map$,114,50,"--ja--",2552,1,.@label$);
+			} else {
+				hideonnpc instance_npcname("Geffen Shoplifter#n1");
+				'BossID = monster(.@map$,114,50,"--ja--",2551,1,.@label$);
+			}
+			break;
+		case 14:
+			hideonnpc instance_npcname("Faymont#1");
+			'BossID = monster(.@map$,114,50,"--ja--",2554,1,.@label$);
+			break;
+		case 15:
+			hideonnpc instance_npcname("Ordre#1");
+			'BossID = monster(.@map$,114,50,"--ja--",2555,1,.@label$);
+			break;
+		case 16:
+			hideonnpc instance_npcname("Blut Hase#1");
+			'BossID = monster(.@map$,114,50,"--ja--",2556,1,.@label$);
+			break;
+		case 17:
+			hideonnpc instance_npcname("Kuro Akuma#1");
+			'BossID = monster(.@map$,114,50,"--ja--",2557,1,.@label$);
+			break;
+		case 18:
+			hideonnpc instance_npcname("Ifodes#1");
+			'BossID = monster(.@map$,114,50,"--ja--",2558,1,.@label$);
+			break;
+		case 19:
+			hideonnpc instance_npcname("Licheniyes#1");
+			'BossID = monster(.@map$,114,50,"--ja--",2559,1,.@label$);
+			break;
+		case 20:
+			hideonnpc instance_npcname("Odoric#1");
+			'BossID = monster(.@map$,114,50,"--ja--",2560,1,.@label$);
+			break;
+		case 21:
+			hideonnpc instance_npcname("Ju#1");
+			'BossID = monster(.@map$,114,50,"--ja--",2561,1,.@label$);
+			break;
+		case 22:
+			if ('half) {
+				hideonnpc instance_npcname("Dwigh#1");
+				'BossID = monster(.@map$,114,50,"--ja--",2562,1,.@label$);
+			}
+			else {
+				hideonnpc instance_npcname("Fay Kanavian#1");
+				'BossID = monster(.@map$,114,50,"--ja--",2563,1,.@label$);
+				donpcevent instance_npcname("#GMTHomun")+"::OnSummon";
+			}
+			
+			break;
+		case 23:
+			hideonnpc instance_npcname("Fenrir#f");
+			'BossID = monster(.@map$,114,50,"--ja--",2564,1,.@label$);
+			donpcevent instance_npcname("Geffen Academy Master")+"::OnTalk3";
+			end;
+	}
+		
+	donpcevent instance_npcname("Geffen Academy Master")+"::OnTalk1";
+	end;
+OnTimeout:
+	end;
+OnMobDead:
+	'timeout_exit = 1;
+	
+	switch ('GMT_1QUE) {
+		case 11: donpcevent instance_npcname("Arhi#1")+"::OnDefeat"; break;
+		case 12: donpcevent instance_npcname("Dio Anemos#1")+"::OnDefeat"; break;
+		case 13:
+			if ('GMTQuest == 1) { donpcevent instance_npcname("Geffen Gangster#n1")+"::OnDefeat"; }
+			else if ('GMTQuest == 2) { donpcevent instance_npcname("Geffen Bully#n1")+"::OnDefeat"; }
+			else { donpcevent instance_npcname("Geffen Shoplifter#n1")+"::OnDefeat"; }
+			break;
+		case 14: donpcevent instance_npcname("Faymont#1")+"::OnDefeat"; break;
+		case 15: donpcevent instance_npcname("Ordre#1")+"::OnDefeat"; break;
+		case 16: donpcevent instance_npcname("Blut Hase#1")+"::OnDefeat"; break;
+		case 17: donpcevent instance_npcname("Kuro Akuma#1")+"::OnDefeat"; break;
+		case 18: donpcevent instance_npcname("Ifodes#1")+"::OnDefeat"; break;
+		case 19: donpcevent instance_npcname("Licheniyes#1")+"::OnDefeat"; break;
+		case 20: donpcevent instance_npcname("Odoric#1")+"::OnDefeat"; break;
+		case 21: donpcevent instance_npcname("Ju#1")+"::OnDefeat"; break;
+		case 22:
+			if ('half) {
+				donpcevent instance_npcname("Dwigh#1")+"::OnDefeat";
+			}
+			else {
+				donpcevent instance_npcname("Fay Kanavian#1")+"::OnDefeat";
+				donpcevent instance_npcname("#GMTHomun")+"::OnEnd";
+			}
+			
+			break;
+		case 23:
+			donpcevent instance_npcname("Fenrir#f")+"::OnDefeat";
+			donpcevent instance_npcname("Geffen Academy Master")+"::OnTalk4";
+			end;
+	}
+	
+	mapannounce instance_mapname("1@ge_st"), "<Magic Tournament Broadcast>: "+'charname$+" has won the round!",bc_blue;
+	donpcevent instance_npcname("Geffen Academy Master")+"::OnTalk2";
+	end;
+OnTimer1000:
+	'timeout--;
+	
+	if ('timeout_exit) {
+		'timeout_exit = 0;
+		stopnpctimer;
+		end;
+	}
+	
+	switch('timeout) {
+		case 240: mapannounce instance_mapname("1@ge_st"), "<Magic Tournament Broadcast>: Time remaining is 4 minutes, this match is getting heated!",bc_blue; break;
+		case 180: mapannounce instance_mapname("1@ge_st"), "<Magic Tournament Broadcast>: Time remaining is 3 minutes, the match has gotten extremely heated!",bc_blue; break;
+		case 120: mapannounce instance_mapname("1@ge_st"), "<Magic Tournament Broadcast>: Time remaining is 2 minutes, we're racing towards the end!",bc_blue; break;
+		case  90: mapannounce instance_mapname("1@ge_st"), "<Magic Tournament Broadcast>: Time remaining is 1 minute 30 seconds, the bout is halfway over!",bc_blue; break;
+		case  60: mapannounce instance_mapname("1@ge_st"), "<Magic Tournament Broadcast>: Time remaining is 1 minute, the end of the match is nearing!",bc_blue; break;
+		case  30: mapannounce instance_mapname("1@ge_st"), "<Magic Tournament Broadcast>: Time remaining is 30 seconds, turn coming to an end!",bc_blue; break;
+		case  10: mapannounce instance_mapname("1@ge_st"), "<Magic Tournament Broadcast>: 10 seconds remaining!",bc_blue; break;
+		case   5: mapannounce instance_mapname("1@ge_st"), "<Magic Tournament Broadcast>: 5!",bc_blue; break;
+		case   4: mapannounce instance_mapname("1@ge_st"), "<Magic Tournament Broadcast>: 4!",bc_blue; break;
+		case   3: mapannounce instance_mapname("1@ge_st"), "<Magic Tournament Broadcast>: 3!",bc_blue; break;
+		case   2: mapannounce instance_mapname("1@ge_st"), "<Magic Tournament Broadcast>: 2!",bc_blue; break;
+		case   1: mapannounce instance_mapname("1@ge_st"), "<Magic Tournament Broadcast>: 1!",bc_blue; break;
+		case   0:
+			stopnpctimer;
+			donpcevent instance_npcname("#GMTcontroller::OnTimeout2");
+			end;
+	}
+	
+	initnpctimer;
+	end;
+OnTimeout2:
+	mapannounce instance_mapname("1@ge_st"), "<Magic Tournament Broadcast>: Time's up! The judges will decide the victor for this round!",bc_blue;	
+	
+	setcell instance_mapname("1@ge_st"), 50, 50, 50, 50, cell_walkable, 1;
+	unitwarp 'BossID, instance_mapname("1@ge_st"), 50, 50;
+	killmonster instance_mapname("1@ge_st"), instance_npcname("#GMTcontroller")+"::OnTimeout";
+	'BossID = 0;
+	
+	if ('HomID) {
+		killmonster instance_mapname("1@ge_st"),instance_npcname("#GMTHomun")+"::OnHomJR";
+		killmonster instance_mapname("1@ge_st"),instance_npcname("#GMTHomun")+"::OnHomDead";
+		'HomID = 0;
+	}
+	
+	sleep 3000;
+	hideoffnpc instance_npcname("Geffen Academy Master");
+//	npctalk "The votes are in... And the winner is...",instance_npcname("Geffen Academy Master");
+//	sleep 1500;
+	npctalk "1st judge's score! "+rand(100)+" - "+rand(100)+"", "Geffen Academy Master";
+	sleep 1500;
+	npctalk "2nd judge's score! "+rand(100)+" - "+rand(100)+"", "Geffen Academy Master";
+	sleep 1500;
+	npctalk "3rd judge's score! "+rand(100)+" - "+rand(100)+"", "Geffen Academy Master";
+	sleep 1500;
+	
+	switch ('GMT_1QUE) {
+		case 11:
+			enablenpc instance_npcname("Arhi#1");
+			donpcevent instance_npcname("Arhi#1")+"::OnVictory";
+			.@defeat$ = "The Novice, Arhi!";
+			break;
+		case 12:
+			enablenpc instance_npcname("Dio Anemos#1");
+			donpcevent instance_npcname("Dio Anemos#1")+"::OnVictory";
+			.@defeat$ = "The Magician Apprentice, Dio Anemos!";
+			break;
+		case 13:
+			if ('GMTQuest == 1) {
+				enablenpc instance_npcname("Geffen Gangster#n1");
+				donpcevent instance_npcname("Geffen Gangster#n1")+"::OnVictory";
+				.@defeat$ = "Geffen Gangster!";
+			} else if ('GMTQuest == 2) {
+				enablenpc instance_npcname("Geffen Bully#n1");
+				donpcevent instance_npcname("Geffen Bully#n1")+"::OnVictory";
+				.@defeat$ = "Gefen Bully!";
+				break;
+			} else {
+				enablenpc instance_npcname("Geffen Shoplifter#n1");
+				donpcevent instance_npcname("Geffen Shoplifter#n1")+"::OnVictory";
+				.@defeat$ = "Geffen Shoplifter!";
+				break;
+			}
+			break;
+		case 14:
+			enablenpc instance_npcname("Faymont#1");
+			donpcevent instance_npcname("Faymont#1")+"::OnVictory";
+			.@defeat$ = "Prontera's pride and style, Feymont!";
+			break;
+		case 15:
+			enablenpc instance_npcname("Ordre#1");
+			donpcevent instance_npcname("Ordre#1")+"::OnVictory";
+			.@defeat$ = "Self proclaimed Master of Battle, Ordre!";
+			break;
+		case 16:
+			enablenpc instance_npcname("Blut Hase#1");
+			donpcevent instance_npcname("Blut Hase#1")+"::OnVictory";
+			.@defeat$ = "Bloody Rabbit Ears~!! Blut Hase!";
+			break;
+		case 17:
+			enablenpc instance_npcname("Kuro Akuma#1");
+			donpcevent instance_npcname("Kuro Akuma#1")+"::OnVictory";
+			.@defeat$ = "The Devil's Tooth! Kuro Akuma!";
+			break;
+		case 18:
+			enablenpc instance_npcname("Ifodes#1");
+			donpcevent instance_npcname("Ifodes#1")+"::OnVictory";
+			.@defeat$ = "The Maniac of Rune Mindgard! Ifodes!";
+			break;
+		case 19:
+			enablenpc instance_npcname("Licheniyes#1");
+			donpcevent instance_npcname("Licheniyes#1")+"::OnVictory";
+			.@defeat$ = "The Lady of Death! Licheniyes!";
+			break;
+		case 20:
+			enablenpc instance_npcname("Odoric#1");
+			donpcevent instance_npcname("Odoric#1")+"::OnVictory";
+			.@defeat$ = "The Songstress of Death! Odoric!";
+			break;
+		case 21:
+			enablenpc instance_npcname("Ju#1");
+			donpcevent instance_npcname("Ju#1")+"::OnVictory";
+			.@defeat$ = "Master of power and speed! Ju!";
+			break;
+		case 22:
+			if ('half) {
+				enablenpc instance_npcname("Dwigh#1");
+				donpcevent instance_npcname("Dwigh#1")+"::OnVictory";
+				.@defeat$ = "Commander of battle and wits! Dwigh!";
+				break;
+			} else {
+				enablenpc instance_npcname("Fay Kanavian#1");
+				donpcevent instance_npcname("Fay Kanavian#1")+"::OnVictory";
+				.@defeat$ = "Fay Kanavian and her homunculus Alphonse!";
+				
+				if ('HomID) {
+					killmonster instance_mapname("1@ge_st"),instance_npcname("#GMTHomun")+"::OnHomJR";
+					killmonster instance_mapname("1@ge_st"),instance_npcname("#GMTHomun")+"::OnHomDead";
+					'HomID = 0;
+				}
+				break;
+			}
+			break;
+		case 23:
+			enablenpc instance_npcname("Fenrir#f");
+			donpcevent instance_npcname("Fenrir#f")+"::OnVictory";
+			.@defeat$ = "The Blue Wizard! Fenris Fenrir~!!";
+			break;
+	}
+	
+	npctalk "The winner of the "+callfunc("F_GetNumSuffix",('GMT_1QUE-10))+" match in Group A by judge's decision is...! "+.@defeat$, "Geffen Academy Master";
+	sleep 1500;
+	//donpcevent instance_npcname("#DEATHGMT")+"::OnLoseRound";
+	npctalk "Give a warm round of applause to the losing competitor.", "Geffen Academy Master";
+	sleep 1500;
+	npctalk "Defeated competitors please leave the arena!", "Geffen Academy Master";
+	sleep 3000;
+	movenpc instance_npcname("#gefmagic_warp02"),120,213;
+	movenpc instance_npcname("#invisGMTquests"),120,61;
+	
+	donpcevent instance_npcname("Fenrir#e1")+"::OnEnable";
+	donpcevent instance_npcname("Chaos#e1")+"::OnEnable";
+	donpcevent instance_npcname("Iris#e1")+"::OnEnable";
+	donpcevent instance_npcname("Lydia#e1")+"::OnEnable";
+	donpcevent instance_npcname("Loki#e1")+"::OnEnable";
+	end;
+	
+OnStop:
+	stopnpctimer;
+	end;
+}
+
+1@ge_st,1,1,1	script	#GMTHomun	HIDDEN_NPC,{
+end;
+
+OnSummon:
+	initnpctimer;
+	'HomID = monster (instance_mapname("1@ge_st"), 114,50,"--ja--",2565,1, instance_npcname("#GMTHomun")+"::OnHomDead");
+	end;
+
+OnTimer10000:
+	if (!'BossID) {
+		stopnpctimer;
+		disablenpc instance_npcname("#GMTHomun");
+		end;
+	}
+	
+	initnpctimer;
+	
+	if ('HomID != 0) {
+		getunitdata 'BossID,.@bossdata;
+		getunitdata 'HomID,.@homdata;
+			if (distance(.@bossdata[6],.@bossdata[7],.@homdata[6],.@homdata[7]) > 10) {
+				unittalk 'BossID,"Alphonse, come!";
+				sleep 500;
+				unitwarp 'HomID, instance_mapname("1@ge_st"),.@bossdata[6],.@bossdata[7];
+			}
+	}
+	else {
+		if (mobcount(instance_mapname("1@ge_st"),instance_npcname("#GMTHomun")+"::OnHomJR")) { end; }
+		getunitdata 'BossID,.@bossdata;
+		unittalk 'BossID, "Alphonse, I'll revive you!";
+		areamonster instance_mapname("1@ge_st"),.@bossdata[6]-2,.@bossdata[7]-2,.@bossdata[6]+2,.@bossdata[7]+2,"--ja--",2566,3,instance_npcname("#GMTHomun")+"::OnHomJR";
+	}
+	end;
+
+OnHomDead:
+	initnpctimer;
+	'HomID = 0;
+	end;
+
+OnHomJR:
+	end;
+
+OnEnd:
+	stopnpctimer;
+	if ('HomID) { 
+		killmonster instance_mapname("1@ge_st"),instance_npcname("#GMTHomun")+"::OnHomJR";
+		killmonster instance_mapname("1@ge_st"),instance_npcname("#GMTHomun")+"::OnHomDead";
+	}
+	disablenpc instance_npcname("#GMTHomun");
+	end;
+}
+
+
+1@ge_st,111,57,4	script	Tournament Healer#1	569,{ //83649 (hide) 
+	mes "[ Tournament Healer ]";
+	mes "The previous round's winner can receive a heal from me.";
+	next;
+		if (select ("Heal", "Cancel") == 2) {
+			mes "[ Tournament Healer ]";
+			mes "Guess you don't need to be healed.";
+			close;
+		}
+	mes "[ Tournament Healer ]";
+	mes "Enjoy.";
+	mes "Good luck on the next round!";
+	percentheal 100,100;
+	specialeffect2 312;
+	close2;
+	hideonnpc instance_npcname("Tournament Healer#1"); // 83649
+	end;
+OnInstanceInit:
+	hideonnpc instance_npcname("Tournament Healer#1");
+	end;
+}
+
+1@ge_st,1,1,1	script	#FireworksControl	-1,{
+end;
+OnStart:
+	initnpctimer;
+		for ( .@i = 11; .@i <= 20; .@i++ ) {
+			specialeffect .effect[rand(3)], AREA, instance_npcname("#fireworks_" +.@i);
+		}
+	end;
+OnTimer6000:
+	initnpctimer;
+		for ( .@i = 0; .@i < 5; .@i++) {
+			specialeffect .effect[rand(3)], AREA, instance_npcname("#fireworks_" + rand(11,20));
+		}
+	end;
+
+OnTurn:
+	stopnpctimer;
+	end;
+
+OnWin:
+	for ( .@i = 1; .@i <= 5; .@i++ ) {
+		specialeffect 90, AREA, instance_npcname("#fireworks_f" + .@i);
+	}
+	sleep 3000;
+	for ( .@i = 1; .@i <= 5; .@i++ ) {
+		specialeffect 62, AREA, instance_npcname("#fireworks_f" + .@i);
+	}
+	sleep 500;
+	for ( .@i = 1; .@i <= 5; .@i++ ){
+		specialeffect 89, AREA, instance_npcname("#fireworks_f" + .@i);
+	}
+	sleep 3000;
+	for ( .@i = 1; .@i <= 5; .@i++ ) {
+		specialeffect 237, AREA, instance_npcname("#fireworks_f" + .@i);
+	}
+	end;
+OnInstanceInit:
+	setarray .effect, 30, 89, 92;
+	end;
+}
+
+1@ge_st,102,42,0	script	#fireworks_11	139,{ end; }
+1@ge_st,100,60,0	duplicate(#fireworks_11)	#fireworks_12	139
+1@ge_st,109,60,0	duplicate(#fireworks_11)	#fireworks_13	139
+1@ge_st,118,60,0	duplicate(#fireworks_11)	#fireworks_14	139
+1@ge_st,126,59,0	duplicate(#fireworks_11)	#fireworks_15	139
+1@ge_st,126,37,0	duplicate(#fireworks_11)	#fireworks_16	139
+1@ge_st,118,36,0	duplicate(#fireworks_11)	#fireworks_17	139
+1@ge_st,109,36,0	duplicate(#fireworks_11)	#fireworks_18	139
+1@ge_st,100,36,0	duplicate(#fireworks_11)	#fireworks_19	139
+1@ge_st,92,37,0	duplicate(#fireworks_11)	#fireworks_20	139
+1@ge_st,112,52,0	duplicate(#fireworks_11)	#fireworks_f1	139
+1@ge_st,112,42,0	duplicate(#fireworks_11)	#fireworks_f2	139
+1@ge_st,102,52,0	duplicate(#fireworks_11)	#fireworks_f3	139
+1@ge_st,102,52,0	duplicate(#fireworks_11)	#fireworks_f4	139
+1@ge_st,102,42,0	duplicate(#fireworks_11)	#fireworks_f5	139
+
+1@ge_st,1,1,1	script	#Talkcontrol	-1,{
+end;
+
+OnStart:
+	'Talkcounter = 0;
+	initnpctimer;
+	end;
+
+OnTimer5000:
+	'Talkcounter++;
+	if ('Talkcounter <4)
+	initnpctimer;
+OnRndtalk:
+	.@iter = rand(1,3);
+	for (.@i = 0; .@i <.@iter ;.@i++) {
+	.@group = rand(30);
+	if (.@group <18) {
+		showscript 'audience$[rand(getarraysize('audience$))],getnpcid(0,instance_npcname("Tournament Spectator#"+rand(70,257)));
+		showscript 'audience$[rand(getarraysize('audience$))],getnpcid(0,instance_npcname("Tournament Spectator#"+rand(70,257)));
+	} else if (.@group <23) {
+		showscript 'student$[rand(getarraysize('student$))],getnpcid(0,instance_npcname("Magic Academy Student#" + rand(1,5)));
+	} else {
+		.@id = rand(getarraysize('tourist$));
+		showscript 'touristname2$[.@id]+'tourist$[.@id],getnpcid(0,instance_npcname('touristname$[.@id]));
+	}
+	sleep rand(2,5) * 100;
+	}
+	end;
+
+OnTimer13000:
+	stopnpctimer;
+	.@iter = rand(1,3);
+		for ( .@i = 0; .@i <.@iter; .@i++ ) {
+			.@group = rand(30);
+			
+				if ( .@group <18) {
+					showscript 'audience$[rand(getarraysize('audience$))],getnpcid(0,instance_npcname("Tournament Spectator#"+rand(70,257)));
+					showscript 'audience$[rand(getarraysize('audience$))],getnpcid(0,instance_npcname("Tournament Spectator#"+rand(70,257)));
+				} else if (.group <23) {
+					showscript 'student$[rand(getarraysize('student$))],getnpcid(0,instance_npcname("Magic Academy Student#" + rand(1,5)));
+				} else {
+					.@id = rand(getarraysize('tourist$));
+					showscript 'touristname2$[.@id]+'tourist$[.@id],getnpcid(0,instance_npcname('touristname$[.@id]));
+				}
+					
+	
+			sleep rand(2,5)*100;
+		}
+	end;
+
+OnInstanceInit:
+	setarray 'audience$,
+		"Tournament Spectator : I've been watiing for this round!",
+		"Tournament Spectator : Hope this round's an interesting match up!",
+		"Tournament Spectator : Oh! Ah! Oh! Ah!",
+		"Tournament Spectator : Oooh, finally started!",
+		"Tournament Spectator : Start already! Fight! Come on, start!",
+		"Tournament Spectator : Is this that guy's first time? I feel he's very powerful, ah!",
+		"Tournament Spectator : Who do you think will win?",
+		"Tournament Spectator : Come on, start!",
+		"Tournament Spectator : Get it on already!",
+		"Tournament Spectator : I feel like I'm in danger...",
+		"Tournament Spectator : I'm counting on that "+('sex ? "guy" : "girl")+" to lose!",
+		"Tournament Spectator : Gotta feel sorry for that guy! Come on!",
+		"Tournament Spectator : He's terrific! You've got this! Come on!",
+		"Tournament Spectator : I'm having such a great time here!",
+		"Tournament Spectator : Come on!~~",
+		"Tournament Spectator : Let's see what you've got "+'charname$+"!",
+		"Tournament Spectator : He's probably going to lose this round.",
+		"Tournament Spectator : This contest has a lot of good participants.",
+		"Tournament Spectator : Do not be afraid, come on!",
+		"Tournament Spectator : Almost to start huh?",
+		"Tournament Spectator : Even just watching this is fun!",
+		"Tournament Spectator : My hands are sweating...",
+		"Tournament Spectator : Come on let's go!";
+
+	setarray 'student$,
+		"Magic Academy Student: Ya~ Hoo~",
+		"Magic Academy Student: Wow, I'm so nervous!",
+		"Magic Academy Student: Both of you please! Come on!";
+
+	setarray 'tourist$,
+		" : Oh, the atmosphere's starting to heat up...",
+		" : This is so energizing!",
+		" : There's no Payon contestants are there?",
+		" : The atmosphere here is great!",
+		" : Oooh! Come on!",
+		" : These participants are so energetic!",
+		" : Good thing too...",
+		" : Don't lose too quickly! Oh!~";
+
+	setarray 'touristname$,
+		"Prontera Spectator#a1",
+		"Prontera Spectator#a2",
+		"Payon Spectator#a1",
+		"Payon Spectator#a2",
+		"Alberta Spectator#a1",
+		"Alberta Spectator#a2",
+		"Veins Spectator#a1",
+		"Comodo Spectator#a1";
+		
+	setarray 'touristname2$,
+		"Prontera Spectator",
+		"Prontera Spectator",
+		"Payon Spectator",
+		"Payon Spectator",
+		"Alberta Spectator",
+		"Alberta Spectator",
+		"Veins Spectator",
+		"Comodo Spectator";
+		end;
+
+}
+
+1@ge_st,106,62,6	script	Loki#a2	512,{}
+1@ge_st,108,62,6	script	Chaos#a2	683,{}
+1@ge_st,111,62,4	script	Iris#a2	666,{}
+1@ge_st,112,62,4	script	Lydia#a2	10010,{}
+
+// ================================================================
+// Rivals
+// ================================================================
+1@ge_st,114,50,4	script	Arhi#1	670,{
+end;
+
+OnActivate:
+	enablenpc instance_npcname("Arhi#1");
+	npctalk "The first match always makes me nervous~!";
+	sleep 2000;
+	npctalk "Can I win?";
+	sleep 3000;
+	npctalk "I guess it will be okay, this "+('sex ? "guy" : "girl")+" seems weak.";
+	sleep 3000;
+	npctalk "Okay, just relax~!";
+	sleep 3000;
+	npctalk "Ah... Finally, It's going to start soon!";
+	sleep 3000;
+	npctalk "Just relax~!";
+	sleep 2000;
+	donpcevent instance_npcname("#GMTcontroller")+"::OnStart";
+	end;
+
+OnDefeat:
+	hideoffnpc instance_npcname("Arhi#1");
+	sleep 1000;
+	npctalk "Ah... I lost the first match...";
+	sleep 3000;
+	npctalk "How can I face my family...";
+	sleep 3000;
+	npctalk "So shameful...";
+	sleep 3000;
+	npctalk "Ah... My friends will laugh at me...";
+	sleep 3000;
+	npctalk "Sob...";
+	sleep 1000;	
+	hideonnpc instance_npcname("Arhi#1");
+	sleep 1000;
+	movenpc instance_npcname("Arhi#z1_0et"),145,125;
+	hideoffnpc instance_npcname("Tournament Guide#gefMT");
+	disablenpc instance_npcname("Arhi#1");
+	end;
+	
+OnVictory:
+	hideoffnpc instance_npcname("Arhi#1");
+	sleep 1000;
+	npctalk "I knew I would win!";
+	sleep 3000;
+	npctalk "I'm so relieved!";
+	sleep 3000;
+	npctalk "I was able to beat a weak competitior.";
+	sleep 3000;
+	npctalk "Yahoo!";
+	sleep 5000;
+	instance_warpall instance_mapname("1@gef"),120,61;
+	end;
+	
+}
+
+1@ge_st,114,50,4	script	Dio Anemos#1	669,{
+end;
+
+OnActivate:
+	npctalk "Second round huh...";
+	sleep 2000;
+	npctalk "You look like a weak competitor.";
+	sleep 3000;
+	npctalk "I think I've got a good chance against you.";
+	sleep 3000;
+	npctalk "I wish the match would start already...";
+	sleep 3000;
+	npctalk "If I finish it quickly maybe I can go buy some cookies!";
+	sleep 3000;
+	npctalk "Okay then let's start!";
+	sleep 2000;
+	npctalk "Boring...",instance_npcname("Loki#a2");
+	donpcevent instance_npcname("#GMTcontroller")+"::OnStart";
+	end;
+
+OnDefeat:
+	hideoffnpc instance_npcname("Dio Anemos#1");
+	sleep 1000;
+	npctalk "Oh my god....";
+	sleep 2000;
+	npctalk "I lost...";
+	sleep 2000;
+	npctalk "Ah... and to this random loser too...";
+	sleep 3000;
+	npctalk "My skills have gotten worse...";
+	sleep 3000;
+	npctalk "This is so sad...";
+	sleep 2000;
+	npctalk "Ahhhh! Why?...";
+	sleep 1000;
+	hideonnpc instance_npcname("Dio Anemos#1");
+	sleep 1000;
+	movenpc instance_npcname("Dio Anemos#z1_0et"),91,117;
+	disablenpc instance_npcname("Dio Anemos#1");
+	end;
+	
+OnVictory:
+	hideoffnpc instance_npcname("Dio Anemos#1");
+	sleep 1000;
+	npctalk "Phew... That was easy.";
+	sleep 3000;
+	npctalk "You should go home and ask your mommy to feed you!";
+	sleep 3000;
+	npctalk "Ha ha ha ha~!!!!";
+	sleep 3000;
+	npctalk "Time to get ready for my next match.";
+	sleep 5000;
+	instance_warpall instance_mapname("1@gef"),120,61;
+	end;
+	
+}
+
+1@ge_st,114,50,4	script	Geffen Gangster#n1	682,{
+end;
+
+OnActivate:
+	npctalk "Hmmm, you're that kid from before...";
+	sleep 3000;
+	npctalk "I've got a lesson to teach you!";
+	sleep 3000;
+	npctalk "It's my turn to beat you!";
+	sleep 3000;
+	npctalk "First I'll take care of you, and then I'll go back for that Kafra...";
+	sleep 3000;
+	npctalk "Watcha got punk?!";
+	sleep 3000;
+	npctalk "Prepare to die!";
+	sleep 2000;
+	donpcevent instance_npcname("#GMTcontroller")+"::OnStart";
+	end;
+
+OnDefeat:
+	hideoffnpc instance_npcname("Geffen Gangster#n1");
+	sleep 1000;
+	npctalk "I was defeated! This doesn't make any sense!";
+	sleep 2000;
+	npctalk "I can't believe I lost to you!";
+	sleep 3000;
+	npctalk "To be embarrassed in front of the Kafra with the luscious legs...!";
+	sleep 3000;
+	npctalk "Sob.. This can't be happening!";
+	sleep 2000;
+	npctalk "I shouldn't have to go through this depression alone!";
+	sleep 2000;
+	npctalk "I'll have to go to see the Kafra gal' in Prontera hu-hu-hu...";
+	sleep 1000;
+	hideonnpc instance_npcname("Geffen Gangster#n1");
+	sleep 1000;
+	disablenpc instance_npcname("Geffen Gangster#n1");
+	end;
+	
+OnVictory:
+	hideoffnpc instance_npcname("Geffen Gangster#n1");
+	sleep 1000;
+	npctalk "This is my real ability!";
+	sleep 3000;
+	npctalk "Hu hu... That... Kafra...!";
+	sleep 3000;
+	npctalk "I want to go back to my Kafra~!!";
+	sleep 3000;
+	npctalk "Hu hu hu hu hu...";
+	sleep 5000;
+	instance_warpall instance_mapname("1@gef"),120,61;
+	end;
+}
+
+1@ge_st,114,50,4	script	Geffen Bully#n1	681,{
+end;
+
+OnActivate:
+	npctalk "Just you wait, you'll be immediately disabled!";
+	sleep 3000;
+	npctalk "I will beat you down today!";
+	sleep 3000;
+	npctalk "Give me your zeny!";
+	sleep 3000;
+	npctalk "I'll send you crying home!";
+	sleep 3000;
+	npctalk "I will make you experience my 20 years of bullying.";
+	sleep 3000;
+	npctalk "You're dead!";
+	sleep 2000;
+	donpcevent instance_npcname("#GMTcontroller")+"::OnStart";
+	end;
+
+OnDefeat:
+	hideoffnpc instance_npcname("Geffen Bully#n1");
+	sleep 1000;
+	npctalk "I can't believe you beat me...";
+	sleep 3000;
+	npctalk "It can't be!";
+	sleep 3000;
+	npctalk "This can't be! I only wanted to get more zeny!";
+	sleep 3000;
+	npctalk "Now I'll be the laughing stock of all of Geffen!";
+	sleep 3000;
+	npctalk "Ah! Ahhh!! It can't be!!!";
+	sleep 1000;
+	hideonnpc instance_npcname("Geffen Bully#n1");
+	sleep 1000;
+	disablenpc instance_npcname("Geffen Bully#n1");
+	end;
+	
+OnVictory:
+	hideoffnpc instance_npcname("Geffen Bully#n1");
+	sleep 1000;
+	npctalk "You! Hou much zeny do you have left?";
+	sleep 3000;
+	npctalk "You messed with me once before!";
+	sleep 3000;
+	npctalk "And now I've left you speechless!";
+	sleep 3000;
+	npctalk "Never show your face in Geffen again!";
+	sleep 5000;
+	instance_warpall instance_mapname("1@gef"),120,61;
+	end;
+	
+}
+
+1@ge_st,114,50,4	script	Geffen Shoplifter#n1	671,{
+end;
+
+OnActivate:
+	npctalk "There are so many people gathered here.";
+	sleep 3000;
+	npctalk "I thought there'd be something good to steal here";
+	sleep 3000;
+	npctalk "But I can't steal anything because of all the attention it'll cause.";
+	sleep 3000;
+	npctalk "Ah... This is no good...";
+	sleep 2000;
+	npctalk "I guess I'll just participate in the tournament...";
+	sleep 2000;
+	npctalk "Well~! Let's win anyway!";
+	sleep 2000;
+	donpcevent instance_npcname("#GMTcontroller")+"::OnStart";
+	end;
+
+OnDefeat:
+	hideoffnpc instance_npcname("Geffen Shoplifter#n1");
+	sleep 1000;
+	npctalk "Oh my god... I was defeated.";
+	sleep 2000;
+	npctalk "I have been spending too much time stealing.";
+	sleep 2000;
+	npctalk "My battle power has been reduced.";
+	sleep 3000;
+	npctalk "Ah... It can't be...";
+	sleep 2000;
+	npctalk "I'll need to train more if I want to keep my position as Guild Leader...";
+	sleep 3000;
+	npctalk "Fine, I'm outta here!";
+	sleep 1000;
+	hideonnpc instance_npcname("Geffen Shoplifter#n1");
+	sleep 1000;
+	disablenpc instance_npcname("Geffen Shoplifter#n1");
+	end;
+	
+OnVictory:
+	hideoffnpc instance_npcname("Geffen Shoplifter#n1");
+	sleep 1000;
+	npctalk "I know, I'm really good.";
+	sleep 3000;
+	npctalk "Okay! Time to keep winning~!!";
+	sleep 3000;
+	npctalk "I should take as many rewards as possible~!";
+	sleep 3000;
+	npctalk "You should go home~ Bye~!";
+	sleep 5000;
+	instance_warpall instance_mapname("1@gef"),120,61;
+	end;
+}
+
+1@ge_st,114,50,4	script	Faymont#1	672,{
+end;
+
+OnActivate:
+	enablenpc instance_npcname("Faymont#1");
+	npctalk "Well would you look at that... this competitor seems...";
+	sleep 2000;
+	npctalk "Like he's just gotten lucky up until now!";
+	sleep 3000;
+	npctalk "I really don't want to get my hands dirty.";
+	sleep 3000;
+	npctalk "I'll handle this in a sophisticated way...";
+	sleep 3000;
+	npctalk "Ahem... Looks like we're about to start now.";
+	sleep 3000;
+	npctalk "Maybe if I finish this quickly, I can buy that new headdress...";
+	npctalk "Come on!", instance_npcname("Prontera Spectator#a1");
+	sleep 2000;
+	donpcevent instance_npcname("#GMTcontroller")+"::OnStart";
+	end;
+
+OnDefeat:
+	hideoffnpc instance_npcname("Faymont#1");
+	sleep 1000;
+	npctalk "How could... How could I lose?!...";
+	sleep 2000;
+	npctalk "And to the one "+('sex ? "guy" : "girl")+" with no taste...";
+	sleep 2000;
+	npctalk "How shameful...";
+	sleep 2000;
+	npctalk "My fans will be disappointed at me for losing...";
+	sleep 3000;
+	npctalk "Ahh.... What's the quickest way out of here?";
+	sleep 3000;
+	npctalk "I can't show my face around here any longer...";
+	sleep 1000;
+	hideonnpc instance_npcname("Faymont#1");
+	sleep 1000;
+	movenpc instance_npcname("Faymont#z1_0et"),53,90;
+	disablenpc instance_npcname("Faymont#1");
+	end;
+	
+OnVictory:
+	hideoffnpc instance_npcname("Faymont#1");
+	sleep 1000;
+	npctalk "Can you see the difference between you and me? Noble and shallow.";
+	sleep 3000;
+	npctalk "This tournament is pointless.";
+	sleep 3000;
+	npctalk "What kind of shallow man will I have to fight with next?";
+	sleep 3000;
+	npctalk "No matter, I'll just prepare for the next match.";
+	sleep 5000;
+	instance_warpall instance_mapname("1@gef"),120,61;
+	end;
+}
+
+1@ge_st,114,50,4	script	Ordre#1	673,{
+end;
+
+OnActivate:
+	enablenpc instance_npcname("Ordre#1");
+	npctalk "One! Two! One! Two!";
+	sleep 2000;
+	npctalk "Let's climb the ladder one step at a time!";
+	sleep 2000;
+	npctalk "I've been training so hard!";
+	sleep 3000;
+	npctalk "I'm not about to give up now!";
+	sleep 3000;
+	npctalk "I can't lose after coming so far";
+	sleep 3000;
+	npctalk "Now~! Let's do our best for those in the audience!";
+	sleep 3000;
+	npctalk "Shall we begin?";
+	npctalk "What? Is this really the level of competition?",instance_npcname("Chaos#a2");
+	sleep 2000;
+	donpcevent instance_npcname("#GMTcontroller")+"::OnStart";
+	end;
+
+OnDefeat:
+	hideoffnpc instance_npcname("Ordre#1");
+	sleep 1000;
+	npctalk "Defeated...";
+	sleep 2000;
+	npctalk "I need more practice...";
+	sleep 2000;
+	npctalk "I need more training...";
+	sleep 3000;
+	npctalk "I'll train twice as hard as before!";
+	sleep 3000;
+	npctalk "I must start over.";
+	sleep 2000;
+	npctalk "Let's go.";
+	sleep 1000;
+	hideonnpc instance_npcname("Ordre#1");
+	sleep 1000;
+	movenpc instance_npcname("Ordre#z1_0et"),85,68;
+	disablenpc instance_npcname("Ordre#1");
+	end;
+	
+OnVictory:
+	hideoffnpc instance_npcname("Ordre#1");
+	sleep 1000;
+	npctalk "I won!";
+	sleep 3000;
+	npctalk "As long as you try... you can get what you want!";
+	sleep 3000;
+	npctalk "Let's show respect to this competition!";
+	sleep 3000;
+	npctalk "I'm ready for the next match!!";
+	sleep 5000;
+	instance_warpall instance_mapname("1@gef"),120,61;
+	end;
+}
+
+
+1@ge_st,114,50,4	script	Blut Hase#1	674,{
+end;
+
+OnActivate:
+	npctalk "You've gotten this far.";
+	sleep 2000;
+	npctalk "I imagine by now the rest of the competitors are quite strong";
+	sleep 3000;
+	npctalk "But I did not build my reputation for nothing!";
+	sleep 3000;
+	npctalk "Fear my Bunny Band!";
+	sleep 3000;
+	npctalk "You are but an obstacle in my way!";
+	sleep 1000;
+	donpcevent instance_npcname("#Talkcontrol")+"::OnRndtalk";
+	sleep 2000;
+	npctalk "You will be sacrificed on my path to victory!";
+	sleep 1000;
+	donpcevent instance_npcname("#Talkcontrol")+"::OnRndtalk";
+	sleep 1000;
+	donpcevent instance_npcname("#GMTcontroller")+"::OnStart";
+	end;
+
+OnDefeat:
+	hideoffnpc instance_npcname("Blut Hase#1");
+	sleep 1000;
+	npctalk "I will not lose!";
+	sleep 1000;
+	npctalk "My reputation... My popularity...";
+	sleep 3000;
+	npctalk "I will lose them both...";
+	sleep 3000;
+	npctalk "I cannot accept this result!";
+	sleep 3000;
+	npctalk "I will regain my reputation!";
+	sleep 2000;
+	npctalk "Next time I will be the winner!";
+	sleep 1000;
+	hideonnpc instance_npcname("Blut Hase#1");
+	sleep 1000;
+	movenpc instance_npcname("Blut Hase#z1_0et"),111,62;
+	disablenpc instance_npcname("Blut Hase#1");
+	end;
+	
+OnVictory:
+	hideoffnpc instance_npcname("Blut Hase#1");
+	sleep 1000;
+	npctalk "In terms of reputation or popularity...";
+	sleep 3000;
+	npctalk "It was impossible for me to lose!";
+	sleep 3000;
+	npctalk "I will be known as Ultra Rabbit's Blood instead of Rabbit's Bloody Ear now!";
+	sleep 3000;
+	npctalk "Ha ha ha ha ha~!!";
+	sleep 5000;
+	instance_warpall instance_mapname("1@gef"),120,61;
+	end;
+}
+
+1@ge_st,114,50,4	script	Kuro Akuma#1	675,{
+end;
+OnActivate:
+	npctalk "Finally the 7th game has started ~!";
+	sleep 2000;
+	npctalk "You've never met anyone as evil as me ~!";
+	sleep 3000;
+	npctalk "You are lucky~!";
+	sleep 3000;
+	npctalk "This will be a good experience for you~!";
+	sleep 3000;
+	npctalk "Nobody who's faced me has ever survived~!";
+	sleep 3000;
+	npctalk "I will destroy you if I must~!";
+	sleep 1000;
+	donpcevent instance_npcname("#Talkcontrol")+"::OnRndtalk";
+	sleep 1000;
+	donpcevent instance_npcname("#GMTcontroller")+"::OnStart";
+	end;
+
+OnDefeat:
+	hideoffnpc instance_npcname("Kuro Akuma#1");
+	sleep 1000;
+	npctalk "Oh my god...";
+	sleep 3000;
+	npctalk "I am The Devil's Tooth...";
+	sleep 2000;
+	npctalk "And I have lost this match...";
+	sleep 3000;
+	npctalk "Yach, yikes, ah, ah, ah! Yikes ah, ah, ah!!";
+	sleep 3000;
+	npctalk "I can't lose! I'll have my revenge!";
+	sleep 2000;
+	hideonnpc instance_npcname("Kuro Akuma#1");
+	sleep 1000;
+	movenpc instance_npcname("Kuro Akuma#z1_0et"),104,42;
+	disablenpc instance_npcname("Kuro Akuma#1");
+	end;
+	
+OnVictory:
+	hideoffnpc instance_npcname("Kuro Akuma#1");
+	sleep 1000;
+	npctalk "How is it~! My Power~!";
+	sleep 3000;
+	npctalk "I took pity on you and decided not to send you to hell~!";
+	sleep 3000;
+	npctalk "You should appreciate that!";
+	sleep 3000;
+	npctalk "Now, I shall prepare for my next match~!";
+	sleep 5000;
+	instance_warpall instance_mapname("1@gef"),120,61;
+	end;
+	
+}
+
+1@ge_st,114,50,4	script	Ifodes#1	676,{
+end;
+OnActivate:
+	npctalk "At long last, the 8th game has started.";
+	sleep 3000;
+	npctalk "No one can pierce my defenses!";
+	sleep 3000;
+	npctalk "But I can surely get past yours.";
+	sleep 2000;
+	npctalk "Therefore, you stand no chance!";
+	sleep 2000;
+	npctalk "Once the match has started, your laughter will turn into tears!";
+	sleep 2000;
+	npctalk "Shall we start?";
+	sleep 1000;
+	donpcevent instance_npcname("#Talkcontrol")+"::OnRndtalk";
+	sleep 1000;
+	donpcevent instance_npcname("#GMTcontroller")+"::OnStart";
+	end;
+
+OnDefeat:
+	hideoffnpc instance_npcname("Ifodes#1");
+	sleep 1000;
+	npctalk "I will not lose this tournament!";
+	sleep 3000;
+	npctalk "This is nonsense.";
+	sleep 2000;
+	npctalk "How could this happen?";
+	sleep 3000;
+	npctalk "I can't understand!";
+	sleep 3000;
+	npctalk "Arrgggh!";
+	sleep 2000;
+	hideonnpc instance_npcname("Ifodes#1");
+	sleep 1000;
+	movenpc instance_npcname("Ifodes#z1_0et"),115,66;
+	disablenpc instance_npcname("Ifodes#1");
+	end;
+	
+OnVictory:
+	hideoffnpc instance_npcname("Ifodes#1");
+	sleep 1000;
+	npctalk "You can't penetrate my defense!";
+	sleep 3000;
+	npctalk "You can't even protect yourself from my powerful attacks!";
+	sleep 3000;
+	npctalk "Wahahaha~!!";
+	sleep 5000;
+	instance_warpall instance_mapname("1@gef"),120,61;
+	end;
+	
+}
+
+1@ge_st,114,50,4	script	Licheniyes#1	677,{
+end;
+OnActivate:
+	npctalk "Ho ho ho~!!";
+	sleep 3000;
+	npctalk "The competitor of the 9th match looks scary~!";
+	sleep 3000;
+	npctalk "You don't scare me though~!";
+	sleep 2000;
+	npctalk "I'm a lady~!";
+	sleep 2000;
+	npctalk "But once this match starts...!";
+	sleep 2000;
+	npctalk "*Giggling*... I will bite you!";
+	sleep 1000;
+	npctalk "good horror players ...", instance_npcname("Payon Spectator#a1");
+	sleep 1000;
+	npctalk "Do not be afraid ah, dark horse contestant!", instance_npcname("Prontera Spectator#a1");
+	donpcevent instance_npcname("#GMTcontroller")+"::OnStart";
+	end;
+
+OnDefeat:
+	hideoffnpc instance_npcname("Licheniyes#1");
+	sleep 1000;
+	npctalk "You try to beat me with cruelty, a lady like me...";
+	sleep 3000;
+	npctalk "I am very sad...";
+	sleep 2000;
+	npctalk "Sob...";
+	sleep 3000;
+	npctalk "But, next time we meet...";
+	sleep 3000;
+	npctalk "I will destroy you with little effort!";
+	sleep 1000;
+	hideonnpc instance_npcname("Licheniyes#1");
+	sleep 1000;
+	movenpc instance_npcname("Licheniyes#z1_0et"),137,53;
+	disablenpc instance_npcname("Licheniyes#1");
+	end;
+	
+OnVictory:
+	hideoffnpc instance_npcname("Licheniyes#1");
+	sleep 1000;
+	npctalk "Oh ho ho ho~~! I knew I would win~!";
+	sleep 3000;
+	npctalk "Oh my! Oh my! I am very sorry~!";
+	sleep 3000;
+	npctalk "Ah, Ah~ I need to prepare next match!";
+	sleep 3000;
+	npctalk "I'm so giddy to find out who I'm up against next!~";
+	sleep 5000;
+	instance_warpall instance_mapname("1@gef"),120,61;
+	end;
+	
+}
+
+1@ge_st,114,50,4	script	Odoric#1	678,{
+end;
+OnActivate:
+	npctalk "Lu lu~ What a fun tournament!";
+	sleep 3000;
+	npctalk "Dance~ Dance~ Bewitching dance~!";
+	sleep 3000;
+	npctalk "Everyone is mesmerized by my magical dance!";
+	sleep 3000;
+	npctalk "You will be captured by my charm~!";
+	sleep 2000;
+	npctalk "Now, feast on my magical dance!";
+	sleep 2000;
+	npctalk "Lah, Lah, Lah, Lah~~!";
+	sleep 1000;
+	npctalk "How beautiful!", instance_npcname("Veins Spectator#a1");
+	sleep 1000;
+	donpcevent instance_npcname("#GMTcontroller")+"::OnStart";
+	end;
+
+OnDefeat:
+	hideoffnpc instance_npcname("Odoric#1");
+	sleep 1000;
+	npctalk "Sob...";
+	sleep 3000;
+	npctalk "I lost, even though I did my best...";
+	sleep 2000;
+	npctalk "My charming poses...";
+	sleep 3000;
+	npctalk "They didn't work... Sob...";
+	sleep 3000;
+	npctalk "I'm so sad that I lost here...";
+	sleep 2000;
+	npctalk "I have to leave~!";
+	sleep 1000;
+	hideonnpc instance_npcname("Odoric#1");
+	sleep 1000;
+	movenpc instance_npcname("Odoric#z1_0et"),158,63;
+	disablenpc instance_npcname("Odoric#1");
+	end;
+	
+OnVictory:
+	hideoffnpc instance_npcname("Odoric#1");
+	sleep 1000;
+	npctalk "Even you... Against my fascinating dance moves...";
+	sleep 3000;
+	npctalk "You're nothing special~!!";
+	sleep 3000;
+	npctalk "You did a good job getting to this point~!!";
+	sleep 3000;
+	npctalk "I need to get ready for my next match now~";
+	sleep 5000;
+	instance_warpall instance_mapname("1@gef"),120,61;
+	end;
+	
+}
+
+1@ge_st,114,50,4	script	Ju#1	679,{
+end;
+OnActivate:
+	npctalk "Another match has started...";
+	sleep 3000;
+	npctalk "A real battle is a serious matter...";
+	sleep 3000;
+	npctalk "It is something to be feared!";
+	sleep 3000;
+	npctalk "All of these novices who spent their time only training";
+	sleep 3000;
+	npctalk "They will never know the true meaning of battle!";
+	sleep 3000;
+	npctalk "I will make sure to handle them as fast as possible.";
+	sleep 3000;
+	npctalk "My heart is beating so fast! I'm so nervous!",instance_npcname("Lydia#a2");
+	donpcevent instance_npcname("#GMTcontroller")+"::OnStart";
+	end;
+
+OnDefeat:
+	hideoffnpc instance_npcname("Ju#1");
+	sleep 1000;
+	npctalk "Sob... defeated...";
+	sleep 3000;
+	npctalk "You're stronger than I thought...";
+	sleep 3000;
+	npctalk "You must have experienced many cruel battles.";
+	sleep 3000;
+	npctalk "Sob... Victory was the only thing in my mind...";
+	sleep 3000;
+	npctalk "I wish you luck on your following matches.";
+	sleep 3000;
+	npctalk "You better not lose after defeating me!";
+	sleep 2000;
+	hideonnpc instance_npcname("Ju#1");
+	sleep 1000;
+	movenpc	instance_npcname("Ju#z1_0et"),178,91;
+	disablenpc instance_npcname("Ju#1");
+	end;
+	
+OnVictory:
+	hideoffnpc instance_npcname("Ju#1");
+	sleep 1000;
+	npctalk "This is not a game.";
+	sleep 3000;
+	npctalk "This is real battle.";
+	sleep 3000;
+	npctalk "Yeahhhh !!";
+	sleep 3000;
+	npctalk "The real game is battle!";
+	sleep 5000;
+	instance_warpall instance_mapname("1@gef"),120,61;
+	end;
+	
+}
+
+1@ge_st,114,50,4	script	Dwigh#1	680,{
+end;
+OnActivate:
+	npctalk "Semi-Finals huh...";
+	sleep 2000;
+	npctalk "I can see the end...";
+	sleep 3000;
+	npctalk "You must be a decent fighter, making it all the way here...";
+	sleep 3000;
+	npctalk "But I came to here for my students.";
+	sleep 3000;
+	npctalk "People who are important to me are watching this battle!";
+	sleep 3000;
+	npctalk "Wow, teacher!",instance_npcname("Magic Academy Student#22");
+	npctalk "Teacher, show 'em what you've got!",instance_npcname("Magic Academy Student#3");
+	npctalk "What a great teacher, I want to be like her!",instance_npcname("Magic Academy Student#4");
+	sleep 2000;
+	npctalk "I can't imagine teacher losing here~!",instance_npcname("Magic Academy Student#1");
+	npctalk "Everyone cheer loudly for our teacher!",instance_npcname("Magic Academy Student#5");
+	sleep 2000;
+	npctalk "I can't lose in front of my students!";
+	sleep 2000;
+	donpcevent instance_npcname("#GMTcontroller")+"::OnStart";
+	sleep 1000;
+	npctalk "Ahh!~ Go teacher~!!",instance_npcname("Magic Academy Student#5");
+	sleep 1000;
+	npctalk "Go! Go! Teacher~!!",instance_npcname("Magic Academy Student#22");
+	npctalk "Teacher! She's the one~!!",instance_npcname("Magic Academy Student#3");
+	npctalk "If she can't do it~!!",instance_npcname("Magic Academy Student#4");
+	npctalk "No one can~!!",instance_npcname("Magic Academy Student#1");
+	npctalk "Teacher~!!",instance_npcname("Magic Academy Student#5");
+	end;
+
+OnDefeat:
+	hideoffnpc instance_npcname("Dwigh#1");
+	sleep 1000;
+	npctalk "If I had just won one more game, I could have been in the finals...";
+	sleep 3000;
+	npctalk "I'm ashamed for losing in front of my students...";
+	sleep 3000;
+	npctalk "But the competition was too strong.";
+	sleep 3000;
+	npctalk "I admit defeat.";
+	sleep 3000;
+	npctalk "According to my students, Fenrir's strength should still be above me, I wish you luck.";
+	sleep 2000;
+	hideonnpc instance_npcname("Dwigh#1");
+	sleep 1000;
+	movenpc instance_npcname("Dwigh#z1_0et"),120,98;
+	disablenpc instance_npcname("Dwigh#1");
+	end;
+	
+OnVictory:
+	hideoffnpc instance_npcname("Dwigh#1");
+	sleep 1000;
+	npctalk "Ugh... It was a tough match.";
+	sleep 3000;
+	npctalk "But I am happy to have won.";
+	sleep 3000;
+	npctalk "I will do my best for my students.";
+	sleep 3000;
+	npctalk "I have just one more match to win!";
+	sleep 5000;
+	instance_warpall instance_mapname("1@gef"),120,61;
+	end;
+	
+}
+
+1@ge_st,114,50,4	script	Fay Kanavian#1	665,{
+end;
+OnActivate:
+	enablenpc instance_npcname("#paycanatalk");
+	end;
+OnDefeat:
+	hideoffnpc instance_npcname("Fay Kanavian#1");
+	killmonster instance_mapname("1@ge_st"),instance_npcname("#GMTHomun")+"::OnHomJR";
+	killmonster instance_mapname("1@ge_st"),instance_npcname("#GMTHomun")+"::OnHomDead";
+	enablenpc instance_npcname("#paycanatalk2");
+	end;
+
+OnTalk1:
+    cutin "paycana_a", 2;
+    npctalk "You~ I've never heard about you before~!";
+    sleep2 4000;
+    npctalk "You must know, all of the spectators are cheering for me!";
+    sleep2 4000;
+    npctalk "If you want to keep your life you should run now~!";
+    sleep2 4000;
+    npctalk "Unless you want to experience the strength of my masterpiece, Alphonse!";
+    sleep2 4000;
+    npctalk "You HAVE seen my Alphonse, right?";
+    sleep2 4000;
+    donpcevent instance_npcname("#Talkcontrol")+"::OnRndtalk";
+    sleep2 1000;
+    npctalk "Once this match starts, you will see his full power!";
+    sleep2 2000;
+    cutin "", 255;
+	donpcevent instance_npcname("#GMTcontroller")+"::OnStart";
+	end;
+
+OnTalk2:
+    cutin "paycana_b ", 2;
+    npctalk "I actually lost...";
+    sleep2 3000;
+    npctalk "Alphonse... I gave you my heart and soul...";
+    sleep2 3000;
+    npctalk "I was supposed to make it to the finals...";
+    sleep2 3000;
+    npctalk "And face Fenris Fenrir...";
+    sleep2 3000;
+    npctalk "I wanted to fight her so bad!";
+    sleep2 2000;
+    cutin "", 255;
+	hideonnpc instance_npcname("Fay Kanavian#1");
+	sleep 1000;
+	movenpc instance_npcname("Fay Kanavian#z1_0et"),117,72;
+	disablenpc instance_npcname("Fay Kanavian#1");
+	end;
+	
+OnVictory:
+	hideoffnpc instance_npcname("Fay Kanavian#1");
+	sleep 1000;
+	npctalk "My abilities are amazing~!";
+	sleep 3000;
+	npctalk "This tournament is but a game to me, and not at all important.";
+	sleep 3000;
+	npctalk "But Fenrir has reached the finals by winning every single round...";
+	sleep 3000;
+	npctalk "I will defeat her and win this tournament!";
+	sleep 5000;
+	instance_warpall instance_mapname("1@gef"),120,61;
+	end;
+	
+}
+
+1@ge_st,108,50,4	script	#paycanatalk	139,25,25,{
+end;
+
+OnTouch:
+    doevent instance_npcname("Fay Kanavian#1")+"::OnTalk1";
+    disablenpc instance_npcname("#paycanatalk");
+    end;
+
+OnInstanceInit:
+    disablenpc instance_npcname("#paycanatalk");
+    end;
+
+}
+
+1@ge_st,108,50,4	script	#paycanatalk2	139,25,25,{
+end;
+
+OnTouch_:
+    doevent instance_npcname("Fay Kanavian#1")+"::OnTalk2";
+    disablenpc instance_npcname("#paycanatalk2");
+    end;
+
+OnInstanceInit:
+    disablenpc instance_npcname("#paycanatalk2");
+    end;
+
+}
+
+1@ge_st,114,50,4	script	Fenrir#f	664,{
+    end;
+OnActivate:
+    enablenpc instance_npcname("#fenrirtalk");
+    end;
+OnDefeat:
+    hideoffnpc instance_npcname("Fenrir#f");
+    enablenpc instance_npcname("#fenrirtalk2");
+    end;
+
+OnTalk1:
+    cutin "fenrir_b", 1;
+    npctalk "The final match...";
+    sleep2 1000;
+    npctalk "Fenrir is going to win without a doubt~!", instance_npcname("Payon Spectator#a1");
+    sleep2 1000;
+    npctalk "I am Fenris Fenrir.";
+    sleep2 1000;
+    npctalk "Hey, do your best!",instance_npcname("Iris#a2");
+    sleep2 2000;
+    npctalk "You... made it here.";
+    sleep2 2000;
+    npctalk "I am sure that this will be a hard fought match.";
+    sleep2 1000;
+    npctalk "Wow! I'm so excited!",instance_npcname("Lydia#a2");
+    npctalk "Fenrir, please give me an autograph!", instance_npcname("Prontera Spectator#a2");
+    sleep2 2000;
+    npctalk "I will do my best to fight you fairly.";
+	sleep2 2000;
+    npctalk "Then, should we start the final match?";
+    cutin "", 255;
+	donpcevent instance_npcname("#GMTcontroller")+"::OnStart";
+	end;
+
+OnTalk2:
+    cutin "fenrir_a", 1;
+    npctalk "Uh... I am defeated.";
+    sleep2 2000;
+    npctalk "How did you get to be so strong?";
+    sleep2 3000;
+    npctalk "I am completely defeated...";
+    sleep2 3000;
+    npctalk "This world is full of surprises...";
+    sleep2 3000;
+    npctalk "Congratulations on your victory "+'charname$+".";
+    sleep2 2000;
+    npctalk "However, next time, I won't lose!";
+    sleep2 2000;
+    cutin "", 255;
+    changequest 9307,9308;
+    warp instance_mapname("1@ge_st"), 109,50;
+	donpcevent instance_npcname("#win")+"::OnEnable";
+	movenpc instance_npcname("#gefmagic_warp02"),120,213;
+	end;
+	
+OnVictory:
+	hideoffnpc instance_npcname("Fenrir#f");
+	sleep 1000;
+	npctalk "Thank you~ It was a good match.";
+	sleep 3000;
+	npctalk "It feels good to be the winner.";
+	sleep 3000;
+	npctalk "I hope to see you again.";
+	sleep 3000;
+	npctalk "I have to go... My friends are waiting for me.";
+	sleep 5000;
+	instance_warpall instance_mapname("1@gef"),120,61;
+	end;
+	
+}
+
+1@ge_st,108,50,4	script	#fenrirtalk	139,25,25,{
+end;
+
+OnTouch:
+    doevent instance_npcname("Fenrir#f")+"::OnTalk1";
+    disablenpc instance_npcname("#fenrirtalk");
+    end;
+
+OnInstanceInit:
+    disablenpc instance_npcname("#fenrirtalk");
+    end;
+
+}
+
+1@ge_st,108,50,4	script	#fenrirtalk2	139,25,25,{
+end;
+
+OnTouch_:
+    doevent instance_npcname("Fenrir#f")+"::OnTalk2";
+    disablenpc instance_npcname("#fenrirtalk2");
+    end;
+
+OnInstanceInit:
+    disablenpc instance_npcname("#fenrirtalk2");
+    end;
+
+}
+
+1@ge_st,1,1,1	script	#win	CLEAR_NPC,{
+end;
+
+OnEnable:
+	disablenpc instance_npcname("Fenrir#f");
+	movenpc instance_npcname("Arhi#q1"), 104, 53;
+	movenpc instance_npcname("Dio Anemos#q1"), 100, 49;
+	movenpc instance_npcname("Faymont#q1"), 102, 46;
+	movenpc instance_npcname("Ordre#q1"), 104, 44;
+	movenpc instance_npcname("Blut Hase#q1"), 112, 45;
+	movenpc instance_npcname("Kuro Akuma#q1"), 116, 46;
+	movenpc instance_npcname("Ifodes#q1"), 115, 53;
+	movenpc instance_npcname("Licheniyes#q1"), 116, 49;
+	movenpc instance_npcname("Odoric#q1"), 112, 53;
+	movenpc instance_npcname("Ju#q1"), 109, 54;
+	movenpc instance_npcname("Dwigh#q1"), 106, 50;
+	movenpc instance_npcname("Fay Kanavian#q1"), 107, 48;
+	movenpc instance_npcname("Fenrir#q1"), 112, 50;
+	hideoffnpc instance_npcname("Tournament Guide#gefMT");
+	hideoffnpc instance_npcname("Geffen Academy Master");
+	sleep 1000;
+	npctalk "The other contestants want to congratulate you on winning as well!",instance_npcname("Fenrir#q1");
+	end;
+
+OnInstanceInit:
+end;
+}
+
+1@ge_st,1,1,6	script	Arhi#q1	670,{
+	switch(rand(1,2)){
+		case 1:
+			showscript "Arhi : Tsk, I will come back when I get stronger!",getnpcid(0);//DONE
+			break;
+		case 2:
+			showscript "Arhi : Congratulations~!",getnpcid(0);//DONE
+			break;
+	}
+	end;
+}
+1@ge_st,1,1,6	script	Dio Anemos#q1	669,{
+	
+		switch(rand(1,2)){
+		case 1:
+			showscript "Dio Anemos : I'm suddenly really hungry...",getnpcid(0);//DONE
+			break;
+		case 2:
+			showscript "Dio Anemos : Congratulations~! It is your treat~!",getnpcid(0);//DONE
+			break;
+	}
+	end;
+}
+1@ge_st,1,1,0	script	Faymont#q1	672,{
+	showscript "Faymont : Awesome fighting ability!",getnpcid(0);//DONE
+	end;
+}
+1@ge_st,1,1,0	script	Ordre#q1	673,{
+	switch(rand(1,2)){
+		case 1:
+			showscript "Ordre : Simply amazing!",getnpcid(0);//DONE
+			break;
+		case 2:
+			showscript "Ordre : I can only imagine how long you have trained yourself to become this strong.",getnpcid(0);//DONE
+			break;
+	}	
+	end;
+}
+1@ge_st,1,1,2	script	Blut Hase#q1	674,{
+	switch(rand(1,2)){
+		case 1:
+			showscript "Blut Hase : You must be famous, right?",getnpcid(0);//DONE
+			break;
+		case 2:
+			showscript "Blut Hase : Well... Congratulations anyway...",getnpcid(0);//DONE
+			break;
+	}	
+	end;
+}
+1@ge_st,1,1,2	script	Kuro Akuma#q1	675,{
+	showscript "Kuro Akuma : So... very strong...",getnpcid(0);//DONE
+	end;
+}
+1@ge_st,1,1,4	script	Ifodes#q1	676,{
+	switch(rand(1,2)){
+		case 1:
+			showscript "Ifodes : Your talents suit your chivalry.",getnpcid(0);//DONE
+			break;
+		case 2:
+			showscript "Ifodes : You were great competition. Congratulations!",getnpcid(0);//DONE
+			break;
+	}	
+	end;
+}
+1@ge_st,1,1,4	script	Licheniyes#q1	677,{
+	showscript "Licheniyes : Awesome victory~!",getnpcid(0);//DONE
+	end;
+}
+1@ge_st,1,1,4	script	Odoric#q1	678,{
+	switch(rand(1,2)){
+		case 1:
+			showscript "Odoric : Simply amazing.",getnpcid(0);//DONE
+			break;
+		case 2:
+			showscript "Odoric : Congratulations on your victory~!",getnpcid(0);//DONE
+			break;
+	}	
+	end;
+}
+1@ge_st,1,1,4	script	Ju#q1	679,{
+	switch(rand(1,2)){
+		case 1:
+			showscript "Ju : You... are... strong... I... won't... forget... you...",getnpcid(0);//DONE	
+			break;
+		case 2:
+			showscript "Ju : I've never lost before. But you are a worthy foe.",getnpcid(0);//DONE
+			break;
+	}
+	end;
+}
+1@ge_st,1,1,6	script	Dwigh#q1	680,{
+	showscript "Dwigh : Really good fight, you've got exceptional strength!",getnpcid(0);
+	end;
+}
+1@ge_st,1,1,0	script	Fay Kanavian#q1	665,{
+	switch(rand(1,2)){
+		case 1:
+			showscript "Fay Kanavian : I didn't think that Fenrir would lose...",getnpcid(0);//DONE
+			break;
+		case 2:
+			showscript "Fay Kanavian : Next time we fight, Alphonse will be stronger!",getnpcid(0);//DONE
+			break;
+	}
+	end;
+}
+1@ge_st,1,1,4	script	Fenrir#q1	664,{
+	switch(rand(1,2)){
+		case 1:
+			showscript "Fenrir : All of my colleagues are so excited about your victory. They are eager to meet you.",getnpcid(0);//DONE
+			break;
+		case 2:
+			showscript "Fenrir : You defeated me in a fair fight. You are very strong.",getnpcid(0);//DONE
+			break;
+	}	
+	end;
+}
+
+-	script	#EVT_GMT	-1,{
+OnPCDieEvent:
+	if (strcharinfo(3) == "1@ge_st" || strcharinfo(3) == instance_mapname("1@ge_st") ) {
+		dispbottom "You've fallen! You have 10 seconds to get up or the match will be over!";
+		sleep2 10000;
+		if (Hp >= 1) {
+			end; 
+		}
+		if (Hp == 0) {
+			instance_warpall instance_mapname("1@ge_st"),104,50;
+			donpcevent instance_npcname("#DEATHGMT")+"::OnLoseRound";
+			donpcevent instance_npcname("#GMTcontroller")+"::OnStop";
+			end;
+		}
+	}
+	
+	end;
+}
+
+1@ge_st,1,1,1	script	#DEATHGMT	-1,{
+	end;
+OnInstanceInit:
+	enablenpc instance_npcname("#DEATHGMT");
+	end;
+	
+OnLoseRound:
+	killmonster instance_mapname("1@ge_st"),instance_npcname("#GMTcontroller")+"::OnMobDead";
+	movenpc instance_npcname("#gefmagic_warp02"),120,213;
+	movenpc instance_npcname("#invisGMTquests"),120,61;
+	
+	donpcevent instance_npcname("Fenrir#e1")+"::OnEnable";
+	donpcevent instance_npcname("Chaos#e1")+"::OnEnable";
+	donpcevent instance_npcname("Iris#e1")+"::OnEnable";
+	donpcevent instance_npcname("Lydia#e1")+"::OnEnable";
+	donpcevent instance_npcname("Loki#e1")+"::OnEnable";
+	
+		
+	switch ('GMT_1QUE) {
+		case 11:
+			.@defeat$ = "Arhi";
+			break;
+		case 12:
+			.@defeat$ = "Dio Anemos";
+			break;
+		case 13:
+			if ('GMTQuest == 1) {
+				.@defeat$ = "Geffen Gangster";
+			}
+			else if ('GMTQuest == 2) {
+				.@defeat$ = "Gefen Bully";
+			}
+			else {
+				.@defeat$ = "Geffen Shoplifter";
+			}
+			break;
+		case 14:
+			.@defeat$ = "Feymont";
+			break;
+		case 15:
+			.@defeat$ = "Ordre";
+			break;
+		case 16:
+			.@defeat$ = "Blut Hase";
+			break;
+		case 17:
+			.@defeat$ = "Kuro Akuma";
+			break;
+		case 18:
+			.@defeat$ = "Ifodes";
+			break;
+		case 19:
+			.@defeat$ = "Licheniyes";
+			break;
+		case 20:
+			.@defeat$ = "Odoric";
+			break;
+		case 21:
+			.@defeat$ = "Ju";
+			break;
+		case 22:
+			if ('half) {
+				.@defeat$ = "Dwigh";
+			} else {
+				.@defeat$ = "Fay Kanavian";
+			}
+			break;
+		case 23:
+			.@defeat$ = "Fenrir";
+			break;
+		default:
+			break;
+	}
+	
+	npctalk ""+.@defeat$+" has won the "+callfunc("F_GetNumSuffix",('GMT_1QUE-10))+" Round of Group A!",instance_npcname("Geffen Academy Master");
+	
+		switch ('GMT_1QUE) {
+			case 11:
+				enablenpc instance_npcname("Arhi#1");
+				donpcevent instance_npcname("Arhi#1")+"::OnVictory";
+				break;
+			case 12:
+				enablenpc instance_npcname("Dio Anemos#1");
+				donpcevent instance_npcname("Dio Anemos#1")+"::OnVictory";
+				break;
+			case 13:
+				if ('GMTQuest == 1) {
+					enablenpc instance_npcname("Geffen Gangster#n1");
+					donpcevent instance_npcname("Geffen Gangster#n1")+"::OnVictory";
+					break;
+				} else if ('GMTQuest == 2) {
+					enablenpc instance_npcname("Geffen Bully#n1");
+					donpcevent instance_npcname("Geffen Bully#n1")+"::OnVictory";
+					break;
+				} else {
+					enablenpc instance_npcname("Geffen Shoplifter#n1");
+					donpcevent instance_npcname("Geffen Shoplifter#n1")+"::OnVictory";
+					break;
+				}
+				break;
+			case 14:
+				enablenpc instance_npcname("Faymont#1");
+				donpcevent instance_npcname("Faymont#1")+"::OnVictory";
+				break;
+			case 15:
+				enablenpc instance_npcname("Ordre#1");
+				donpcevent instance_npcname("Ordre#1")+"::OnVictory";
+				break;
+			case 16:
+				enablenpc instance_npcname("Blut Hase#1");
+				donpcevent instance_npcname("Blut Hase#1")+"::OnVictory";
+				break;
+			case 17:
+				enablenpc instance_npcname("Kuro Akuma#1");
+				donpcevent instance_npcname("Kuro Akuma#1")+"::OnVictory";
+				break;
+			case 18:
+				enablenpc instance_npcname("Ifodes#1");
+				donpcevent instance_npcname("Ifodes#1")+"::OnVictory";
+				break;
+			case 19:
+				enablenpc instance_npcname("Licheniyes#1");
+				donpcevent instance_npcname("Licheniyes#1")+"::OnVictory";
+				break;
+			case 20:
+				enablenpc instance_npcname("Odoric#1");
+				donpcevent instance_npcname("Odoric#1")+"::OnVictory";
+				break;
+			case 21:
+				enablenpc instance_npcname("Ju#1");
+				donpcevent instance_npcname("Ju#1")+"::OnVictory";
+				break;
+			case 22:
+				if ('half) {
+					enablenpc instance_npcname("Dwigh#1");
+					donpcevent instance_npcname("Dwigh#1")+"::OnVictory";
+					break;
+				} else {
+					enablenpc instance_npcname("Fay Kanavian#1");
+					donpcevent instance_npcname("Fay Kanavian#1")+"::OnVictory";
+					
+						if ('HomID) {
+							killmonster instance_mapname("1@ge_st"),instance_npcname("#GMTHomun")+"::OnHomJR";
+							killmonster instance_mapname("1@ge_st"),instance_npcname("#GMTHomun")+"::OnHomDead";
+							'HomID = 0;
+						}
+						
+					break;
+				}
+				break;
+			case 23:
+				enablenpc instance_npcname("Fenrir#f");
+				donpcevent instance_npcname("Fenrir#f")+"::OnVictory";
+				break;
+		}
+	
+	end;
+	
+}
+
+1@gef,115,105,6	script	Loki#e1	4_M_ROKI2,{
+	.@n$ = "[ Loki ]";
+		
+	if(checkquest(9314) != -1) {
+		cutin "ep14_roki01.bmp", 2;
+		mes .@n$;
+		mes "That's a pretty good score.";
+		next;
+		mes .@n$;
+		mes "Please take this present.";
+		setarray .items,501,502,503,504,505,506,608,607;
+		getitem .items[rand(0,7)],1;
+		erasequest 9314;
+		cutin "", 255;
+		end;
+	}
+	
+	cutin "ep14_roki01", 2;
+	mes .@n$;
+	mes "Let's take a rain check on our match.";
+	mes "We'll fight next time we meet...";
+	close2;
+	cutin "", 255;
+	end;
+
+OnInstanceInit:
+	hideonnpc instance_npcname(strnpcinfo(0));
+	end;
+	
+OnEnable:
+	hideoffnpc instance_npcname(strnpcinfo(0));
+	end;
+	
+}
+
+1@gef,117,108,6	script	Lydia#e1	4_F_LYDIA,{
+
+	.@n$ = "[ Lydia ]";
+		
+	if(checkquest(9312) != -1) {
+		cutin "lydia_a.bmp",2;
+		mes .@n$;
+		mes "Good game~!";
+		next;
+		mes .@n$;
+		mes "I want to give you a reward even if you lost~!";
+		setarray .items,501,502,503,504,505,506,608,607;
+		getitem .items[rand(0,7)],1;
+		erasequest 9312;
+		cutin "", 255;
+		end;
+	}
+	cutin "lydia_a.bmp",2;
+	mes .@n$;
+	mes "I hope to see you again.";
+	close2;
+	cutin "", 255;
+	end;
+	
+OnInstanceInit:
+	hideonnpc instance_npcname(strnpcinfo(0));
+	end;
+	
+OnEnable:
+	hideoffnpc instance_npcname(strnpcinfo(0));
+	end;
+}
+
+1@gef,125,105,4	script	Iris#e1	4_F_IRIS,{
+
+	.@n$ = "[ Iris ]";
+		
+	if(checkquest(9310) != -1) {
+		cutin "hero_iris_01.bmp",2;
+		mes .@n$;
+		mes "I enjoyed watching your round~";
+		mes "Bad luck this year huh?~";
+		mes "Wish you luck next year.";
+		next;
+		mes .@n$;
+		mes "Take this to cheer you up.";
+		setarray .items,501,502,503,504,505,506,608,607;
+		getitem .items[rand(0,7)],1;
+		erasequest 9310;
+		cutin "", 255;
+		end;
+	}
+	
+	cutin "hero_iris_01.bmp",2;
+	mes .@n$;
+	mes "Think we'll meet again?";
+	close2;
+	cutin "", 255;
+	end;
+	
+OnInstanceInit:
+	hideonnpc instance_npcname(strnpcinfo(0));
+	end;
+	
+OnEnable:
+	hideoffnpc instance_npcname(strnpcinfo(0));
+	end;
+}
+
+1@gef,123,108,4	script	Chaos#e1	4_M_CHAOS,{
+
+	.@n$ = "[ Chaos ]";
+	
+		if(checkquest(9311) != -1) {
+			cutin "hero_chaos_01.bmp",2;
+			mes .@n$;
+			mes "That was a good match~!";
+			mes "Not bad at all~!";
+			next;
+			mes .@n$;
+			mes "You have been very impressive today.";
+			mes "I want to give you a present~!";
+			setarray .items,501,502,503,504,505,506,608,607;
+			getitem .items[rand(0,7)],1;
+			erasequest 9311;
+			cutin "", 255;
+			end;
+		}
+	cutin "hero_chaos_01.bmp",2;
+	mes .@n$;
+	mes "I hope to see you again next time~!";
+	close2;
+	cutin "", 255;
+	end;
+	
+OnInstanceInit:
+	hideonnpc instance_npcname(strnpcinfo(0));
+	end;
+	
+OnEnable:
+	hideoffnpc instance_npcname(strnpcinfo(0));
+	end;
+}
+
+1@gef,120,108,4	script	Fenrir#e1	4_F_FENRIR,{
+
+	.@n$ = "[ Fenrir ]";
+	
+	if(checkquest(9313) != -1) {
+		cutin "fenrir_a.bmp",2;
+		mes .@n$;
+		mes "It was a good game.";
+		mes "Hope you get farther next time.";
+		next;
+		mes .@n$;
+		mes "Take this gift.";
+		mes "Keep trying harder~!";
+		setarray .items,501,502,503,504,505,506,608,607;
+		getitem .items[rand(0,7)],1;
+		erasequest 9313;
+		cutin "", 255;
+		end;
+	}
+	cutin "fenrir_a.bmp",2;
+	mes .@n$;
+	mes "I hope to see you again adventurer!";
+	close2;
+	cutin "", 255;
+	end;
+	
+OnInstanceInit:
+	hideonnpc instance_npcname(strnpcinfo(0));
+	end;
+	
+OnEnable:
+	hideoffnpc instance_npcname(strnpcinfo(0));
+	end;
+}
+
+// Cutscenes
+
+
+//ϯϯϯϯϯϯϯϯϯ
+//   Event 1
+//__________________
+1@gef,159,172,6	duplicate(#gmt_dummy)	Geffen Gangster#1	682
+1@gef,160,176,6	duplicate(#gmt_dummy)	Geffen Gangster#3	682
+1@gef,164,175,6	duplicate(#gmt_dummy)	Geffen Gangster#2	682
+1@gef,168,170,6	duplicate(#gmt_dummy)	Geffen Gangster#11	682
+1@gef,167,169,6	duplicate(#gmt_dummy)	Geffen Gangster#22	682
+1@gef,166,168,6	duplicate(#gmt_dummy)	Geffen Gangster#33	682
+1@gef,170,168,4	duplicate(#gmt_dummy)	Iris#Gef1	666
+1@gef,169,167,2	duplicate(#gmt_dummy)	Kafra Employee#1	114
+1@gef,173,167,4	duplicate(#gmt_dummy)	Chaos#Gef1	683
+1@gef,168,168,4	duplicate(#gmt_dummy)	Chaos#Gef2	683
+1@gef,162,174,4	duplicate(#gmt_dummy)	Chaos#3	683
+
+1@gef,166,168,0	script	#Event 1 start	139,7,7,{
+	end;
+OnTouch:
+	if ('gmt_event != 0) end;
+	if('OnTouchOnce1) end;
+	set 'OnTouchOnce1,1;
+	hideonnpc instance_npcname("#Event 1 start");
+	disablenpc instance_npcname("#Event 1 start");
+	hideoffnpc instance_npcname("Geffen Gangster#1");
+	hideoffnpc instance_npcname("Geffen Gangster#2");
+	hideoffnpc instance_npcname("Geffen Gangster#3");
+	hideoffnpc instance_npcname("Kafra Employee#1");
+	'gmt_char_name$ = strcharinfo(0);
+	'GMTQuest = 1;
+
+	//if (checkquest(9284) > -1)
+	//	erasequest 9284;
+	//setquest 9284;
+	'gmt_timer_evt1 = 0;
+	initnpctimer;
+	end;
+OnTimer1000:
+	'gmt_timer_evt1++;
+	
+	switch('gmt_timer_evt1) {
+		case 1: npctalk "Geffen Gangster : Hey girl~", instance_npcname("Geffen Gangster#1"); break;
+		case 3: npctalk "Geffen Gangster : Whoo~ You have beautiful legs~!", instance_npcname("Geffen Gangster#2"); break;
+		case 5: npctalk "Kafra Employee : What are you doing?", instance_npcname("Kafra Employee#1"); break;
+		case 10: npctalk "Geffen Gangster : What do you think I'm doing~?", instance_npcname("Geffen Gangster#3"); break;
+		case 13: npctalk "Kafra Employee : You creep! Get away~!", instance_npcname("Kafra Employee#1"); break;
+		case 15: npctalk "Geffen Gangster : How dare you!", instance_npcname("Geffen Gangster#1");	break;
+		case 16:
+			hideonnpc instance_npcname("Geffen Gangster#1");
+			hideonnpc instance_npcname("Geffen Gangster#2");
+			hideonnpc instance_npcname("Geffen Gangster#3");
+			hideoffnpc instance_npcname("Geffen Gangster#11");
+			hideoffnpc instance_npcname("Geffen Gangster#22");
+			hideoffnpc instance_npcname("Geffen Gangster#33");
+			break;
+		case 19: npctalk "Geffen Gangster : Wanna have some fun?", instance_npcname("Geffen Gangster#11"); break;
+		case 20: npctalk "Geffen Gangster : We won't bite!", instance_npcname("Geffen Gangster#22"); break;
+		case 21: npctalk "Geffen Gangster : Unless...", instance_npcname("Geffen Gangster#33"); break;
+		case 23: npctalk "Kafra Employee : Help me~!!!", instance_npcname("Kafra Employee#1"); break;
+		case 25: unittalk 'gmt_account_id, "What can I do? I have to help."; break;
+		case 27:
+			enablenpc instance_npcname("#Event 1 start 2");
+			stopnpctimer;
+			end;
+	}
+	
+	initnpctimer;
+	end;
+}
+
+1@gef,166,169,0	script	#Event 1 start 2	139,5,5,{
+	end;
+OnTouch:
+	if('OnTouchOnce2) end;
+	set 'OnTouchOnce2,1;
+	if ('gmt_event != 0) end;
+	'gmt_event = 2;
+	hideonnpc instance_npcname("#Event 1 start 2");
+	'gmt_timer_evt1 = 0;
+	initnpctimer;
+	end;
+OnTimer1000:
+	'gmt_timer_evt1++;
+	
+	switch('gmt_timer_evt1) {
+		case 1: unittalk 'gmt_account_id, "You bastards! Leave her alone!"; break;
+		case 3: npctalk "Geffen Gangster : What's with your attitude?", instance_npcname("Geffen Gangster#11"); break;
+		case 4: npctalk "Geffen Gangster : You're such an idiot!", instance_npcname("Geffen Gangster#22"); break;
+		case 5: npctalk "Geffen Gangster : Who're you calling bastards!?", instance_npcname("Geffen Gangster#33"); break;
+		case 8: npctalk "Kafra Employee : Please help me~!", instance_npcname("Kafra Employee#1"); break;
+		case 9:
+			unittalk 'gmt_account_id, "Time to teach them a lesson~!";
+			hideonnpc instance_npcname("Geffen Gangster#11");
+			hideonnpc instance_npcname("Geffen Gangster#22");
+			hideonnpc instance_npcname("Geffen Gangster#33");
+			
+			monster instance_mapname("1@gef"), 168, 170, "Geffen Gangster", 2568, 1, instance_npcname("#Event 1 start 2") + "::OnMobKilled";
+			monster instance_mapname("1@gef"), 167, 169, "Geffen Gangster", 2568, 1, instance_npcname("#Event 1 start 2") + "::OnMobKilled";
+			monster instance_mapname("1@gef"), 166, 168, "Geffen Gangster", 2568, 1, instance_npcname("#Event 1 start 2") + "::OnMobKilled";
+			
+			stopnpctimer;
+			end;
+	}
+	
+	initnpctimer;
+	end;
+OnMobKilled:
+	if (mobcount(instance_mapname("1@gef"), instance_npcname("#Event 1 start 2") + "::OnMobKilled") <= 0) {
+		hideoffnpc instance_npcname("Geffen Gangster#1");
+		hideoffnpc instance_npcname("Geffen Gangster#2");
+		hideoffnpc instance_npcname("Geffen Gangster#3");
+		//completequest 9284;
+		//setquest 9284;
+		//completequest 9284;
+		//setquest 9285;
+		donpcevent instance_npcname("#GefGangsterEvent1")+"::OnStart";
+	}
+	
+	end;
+}
+
+1@gef,166,167,0	script	#GefGangsterEvent1	-1,{
+	end;
+OnStart:
+	'gmt_timer_evt1 = 0;
+	initnpctimer;
+	end;
+OnTimer1000:
+	'gmt_timer_evt1++;
+	
+	switch('gmt_timer_evt1) {
+		case 1:
+			specialeffect 220, AREA, instance_npcname("Geffen Gangster#1");
+			specialeffect 220, AREA, instance_npcname("Geffen Gangster#2");
+			specialeffect 220, AREA, instance_npcname("Geffen Gangster#3");
+			npctalk "Geffen Gangster : You're pretty good...!", instance_npcname("Geffen Gangster#1");
+			npctalk "Geffen Gangster : We should stop playing around...", instance_npcname("Geffen Gangster#2");
+			npctalk "Geffen Gangster : You're gonna pay the price!", instance_npcname("Geffen Gangster#3");
+			break;
+		case 4: npctalk "Kafra Employee : No... I'm scared...!", instance_npcname("Kafra Employee#1"); break;
+		case 5:
+			hideoffnpc instance_npcname("Iris#Gef1");
+			npctalk "Iris : Hey, you stop right there~!!", instance_npcname("Iris#Gef1");
+			break;
+		case 8: npctalk "Iris : That's enough.", instance_npcname("Iris#Gef1"); break;
+		case 11: npctalk "Iris : I won't forgive you~!", instance_npcname("Iris#Gef1"); break;
+		case 13: specialeffect 204, AREA, instance_npcname("Iris#Gef1"); break;
+		case 14:
+			npctalk "Geffen Gangster : Why hello there, are you scared?", instance_npcname("Geffen Gangster#1");
+			npctalk "Geffen Gangster : You're pretty cute. Do you want to play with us too?", instance_npcname("Geffen Gangster#2");
+			npctalk "Geffen Gangster : Aren't I your type babe?~", instance_npcname("Geffen Gangster#3");
+			break;
+		case 18:
+			hideonnpc instance_npcname("Geffen Gangster#1");
+			hideonnpc instance_npcname("Geffen Gangster#2");
+			hideonnpc instance_npcname("Geffen Gangster#3");
+			hideoffnpc instance_npcname("Geffen Gangster#11");
+			hideoffnpc instance_npcname("Geffen Gangster#22");
+			hideoffnpc instance_npcname("Geffen Gangster#33");
+			break;
+		case 22: mapannounce instance_mapname("1@gef"), "Stop right there! Jerks!", 0x00ebff; break;
+		case 23: hideoffnpc instance_npcname("Chaos#Gef1"); break;
+		case 25: specialeffect 218, AREA, instance_npcname("Chaos#Gef1"); break;
+		case 26: npctalk "Chaos : Are you clowns harassing Iris?", instance_npcname("Chaos#Gef1"); break;
+		case 30: npctalk "Chaos : I think I need to teach someone a lesson!", instance_npcname("Chaos#Gef1"); break;
+		case 31:
+			specialeffect 60, AREA, instance_npcname("Geffen Gangster#11");
+			specialeffect 60, AREA, instance_npcname("Geffen Gangster#22");
+			specialeffect 60, AREA, instance_npcname("Geffen Gangster#33");
+			npctalk "Chaos : Come and fight me!", instance_npcname("Chaos#Gef2");
+			hideonnpc instance_npcname("Chaos#Gef1");
+			hideoffnpc instance_npcname("Chaos#Gef2");
+			break;
+		case 34:
+			npctalk "Chaos : Bash~!!!", instance_npcname("Chaos#Gef2");
+			specialeffect 1, AREA, instance_npcname("Chaos#Gef2");
+			specialeffect 16, AREA, instance_npcname("Geffen Gangster#11");
+			specialeffect 16, AREA, instance_npcname("Geffen Gangster#22");
+			specialeffect 16, AREA, instance_npcname("Geffen Gangster#33");
+			hideonnpc instance_npcname("Geffen Gangster#11");
+			hideonnpc instance_npcname("Geffen Gangster#22");
+			hideonnpc instance_npcname("Geffen Gangster#33");
+			break;
+		case 35:
+			hideoffnpc instance_npcname("Geffen Gangster#1");
+			hideoffnpc instance_npcname("Geffen Gangster#2");
+			hideoffnpc instance_npcname("Geffen Gangster#3");
+			break;
+		case 36:
+			npctalk "Geffen Gangster : Ugh...", instance_npcname("Geffen Gangster#1");
+			npctalk "Geffen Gangster : Strong...", instance_npcname("Geffen Gangster#2");
+			npctalk "Geffen Gangster : Too strong...", instance_npcname("Geffen Gangster#3");
+			break;
+		case 39:
+			hideonnpc instance_npcname("Chaos#Gef2");
+			hideoffnpc instance_npcname("Chaos#3");
+			break;
+		case 42:
+			npctalk "Chaos : I'm not done yet!! Magnum Break~!", instance_npcname("Chaos#3");
+			specialeffect 17, AREA, instance_npcname("Geffen Gangster#1");
+			specialeffect 17, AREA, instance_npcname("Geffen Gangster#2");
+			specialeffect 17, AREA, instance_npcname("Geffen Gangster#3");
+			break;
+		case 43:
+			specialeffect 183, AREA, instance_npcname("Geffen Gangster#1");
+			specialeffect 183, AREA, instance_npcname("Geffen Gangster#2");
+			specialeffect 183, AREA, instance_npcname("Geffen Gangster#3");
+			hideonnpc instance_npcname("Geffen Gangster#1");
+			hideonnpc instance_npcname("Geffen Gangster#2");
+			hideonnpc instance_npcname("Geffen Gangster#3");
+			break;
+		case 45: hideonnpc instance_npcname("Chaos#3"); break;
+		case 46:
+			hideoffnpc instance_npcname("Chaos#Gef1");
+			stopnpctimer;
+			
+			if (attachrid('gmt_account_id)) {
+				cutin "hero_iris_01.bmp", 2;
+				mes "[Iris]", "Are you okay?", "There have been so many jerks everywhere we go..."; next;
+				cutin "", 255;
+				mes "[Kafra]", "Thanks for helping me out.", "Who are you?"; next;
+				cutin "hero_iris_01.bmp", 2;
+				mes "[Iris]", "I am Iris~", "I am travelling with my good friend Chaos~!"; next;
+				mes "[Iris]", "I am not the one you should thank.", "Thank that adventurer, " + strcharinfo(0) + ".", "It could have been much worse."; next;
+				cutin "", 255;
+				mes "[Kafra]", "Thank you " + strcharinfo(0) + ".", "You saved me."; next;
+				cutin "hero_iris_01.bmp", 2;
+				mes "[Iris]", "It's pretty rare to meet someone as righteous as " + strcharinfo(0) + "."; next;
+				mes "[Iris]", "I'm on my way to see the Geffen Magic Tournament with Chaos.", "Are you on your way there too, " + strcharinfo(0) + "?"; next;
+				cutin "hero_chaos_01.bmp", 2;
+				mes "[Chaos]", "Yes, you seem strong enough to be in the Tournament."; next;
+				mes "[Chaos]", "Just know that Fenrir plans on joining as well, so it won't be that easy."; next;
+				mes "[Chaos]", "This is my favorite magic buff scroll, so take it as a token of our appreciation.";
+				sc_start4 SC_GEFFEN_MAGIC3, 3600000, 5, 0, 0, 0, 10000, 1;
+				atcommand "@effect 220";
+				next;
+				mes "[Chaos]", "It will be useful in the Magic Tournament.", "Let's go Iris~!", "It's going to start soon~!"; next;
+				cutin "hero_iris_01.bmp", 2;
+				mes "[Iris]", "Yes~! Go " + strcharinfo(0) + "~", "Kafra, wish us luck~!", "Do your best " + strcharinfo(0) + ".";
+				close2;
+				cutin "", 255;
+				hideonnpc instance_npcname("Iris#Gef1");
+                hideonnpc instance_npcname("Chaos#Gef1");
+                hideonnpc instance_npcname("Kafra Employee#1");
+				sleep2 2000;
+				unittalk 'gmt_account_id, "They sure are brave...";
+				sleep2 2000;
+				unittalk 'gmt_account_id, "Should we apply for the Magic Tournament now?";
+				end;
+			}
+			
+			end;
+	}
+	
+	initnpctimer;
+	end;
+}
+
+//ϯϯϯϯϯϯϯϯϯ
+//   Event 2
+//__________________
+1@gef,75,172,4	duplicate(#gmt_dummy)	Geffen Bully#1	681
+1@gef,76,170,4	duplicate(#gmt_dummy)	Geffen Bully#2	681
+1@gef,73,173,4	duplicate(#gmt_dummy)	Geffen Bully#3	681
+1@gef,68,171,4	duplicate(#gmt_dummy)	Geffen Bully#11	681
+1@gef,70,171,4	duplicate(#gmt_dummy)	Geffen Bully#22	681
+1@gef,70,169,4	duplicate(#gmt_dummy)	Geffen Bully#33	681
+1@gef,70,167,8	duplicate(#gmt_dummy)	Magic Academy Student#11	123
+1@gef,73,170,8	duplicate(#gmt_dummy)	Magic Academy Student#22	123
+1@gef,69,168,8	duplicate(#gmt_dummy)	Loki#1	512
+1@gef,69,170,8	duplicate(#gmt_dummy)	Loki#2	512
+1@gef,67,170,8	duplicate(#gmt_dummy)	Loki#3	512
+1@gef,68,169,8	duplicate(#gmt_dummy)	Fenrir#1	664
+
+1@gef,72,169,0	script	#Event 2 start	139,7,7,{
+	end;
+OnTouch:
+	if ('gmt_event != 0) end;
+	if('OnTouchOnce3) end;
+	set 'OnTouchOnce3,1;
+	hideoffnpc instance_npcname("Geffen Bully#1");
+	hideoffnpc instance_npcname("Geffen Bully#2");
+	hideoffnpc instance_npcname("Geffen Bully#3");
+	hideoffnpc instance_npcname("Magic Academy Student#11");
+	hideonnpc instance_npcname("#Event 2 start");
+	disablenpc instance_npcname("#Event 2 start");
+	//setquest 9286;
+	'gmt_timer_evt2 = 2;
+	'gmt_char_name$ = strcharinfo(0);
+	'GMTQuest = 2;
+	initnpctimer;
+	end;
+OnTimer1000:
+	'gmt_timer_evt2++;
+	
+	switch('gmt_timer_evt2) {
+		case 5: npctalk "Geffen Bully : Hey you! Yeah you~", instance_npcname("Geffen Bully#1"); break;
+		case 7: npctalk "Magic Academy Student : Yea... yeah? Me...? Do you mean me?", instance_npcname("Magic Academy Student#11"); break;
+		case 8: npctalk "Geffen Bully : Yes, you! Come over here!", instance_npcname("Geffen Bully#2"); break;
+		case 9: npctalk "Geffen Bully : Hurry! You have 3 seconds!", instance_npcname("Geffen Bully#3"); break;
+		case 11: npctalk "Geffen Bully : 3...", instance_npcname("Geffen Bully#3"); break;
+		case 12: npctalk "Geffen Bully : 2...", instance_npcname("Geffen Bully#3"); break;
+		case 13: npctalk "Geffen Bully : 1...", instance_npcname("Geffen Bully#3"); break;
+		case 14:
+			hideonnpc instance_npcname("Magic Academy Student#11");
+			hideoffnpc instance_npcname("Magic Academy Student#22");
+			break;
+		case 17: npctalk "Geffen Bully : You! How much zeny do you have?", instance_npcname("Geffen Bully#1"); break;
+		case 20: npctalk "Magic Academy Student : What... huh?", instance_npcname("Magic Academy Student#22"); break;
+		case 23: npctalk "Geffen Bully : Did I stutter? I said, how much zeny do you have! You idiot!", instance_npcname("Geffen Bully#2"); break;
+		case 27: npctalk "Magic Academy Student : I don't have any zeny... I'm but a student...", instance_npcname("Magic Academy Student#22"); break;
+		case 30: npctalk "Geffen Bully : Do I have to beat the zeny out of you?!", instance_npcname("Geffen Bully#3"); break;
+		case 33: npctalk "Magic Academy Student : Ugh... I told you, I don't have any zeny!", instance_npcname("Magic Academy Student#22"); break;
+		case 36:
+			unittalk 'gmt_account_id, "What should I do? I have to help!";
+			enablenpc instance_npcname("#Event 2 start 2");
+			hideoffnpc instance_npcname("#Event 2 start 2");
+			stopnpctimer;
+			end;
+	}
+	
+	initnpctimer;
+	end;
+}
+
+1@gef,72,170,0	script	#Event 2 start 2	139,3,3,{
+	end;
+OnTouch:
+	if ('gmt_event != 0) end;
+	if('OnTouchOnce4) end;
+	set 'OnTouchOnce4,1;
+	hideonnpc instance_npcname("#Event 2 start 2");
+	'gmt_timer_evt2 = 0;
+	'gmt_event = 2;
+	initnpctimer;
+	end;
+OnTimer1000:
+	'gmt_timer_evt2++;
+	
+	switch('gmt_timer_evt2) {
+		case 2: unittalk 'gmt_account_id, "You! Bullies! Stop!"; break;
+		case 3: npctalk "Geffen Bully : You ready for a beating?", instance_npcname("Geffen Bully#1"); break;
+		case 4: npctalk "Geffen Bully : I've been waiting to have some fun...", instance_npcname("Geffen Bully#2"); break;
+		case 5: npctalk "Geffen Bully : Say hello to my little friends!", instance_npcname("Geffen Bully#3"); break;
+		case 7: npctalk "Magic Academy Student : Please help me~", instance_npcname("Magic Academy Student#22"); break;
+		case 9:
+			unittalk 'gmt_account_id, "I have to help!";
+			attachrid 'gmt_account_id;
+			specialeffect2 60;
+			detachrid;
+			monster instance_mapname("1@gef"), 75, 172, "Geffen Bully", 2567, 1, instance_npcname("#Event 2 start 2") + "::OnMobKilled";
+			monster instance_mapname("1@gef"), 76, 170, "Geffen Bully", 2567, 1, instance_npcname("#Event 2 start 2") + "::OnMobKilled";
+			monster instance_mapname("1@gef"), 73, 173, "Geffen Bully", 2567, 1, instance_npcname("#Event 2 start 2") + "::OnMobKilled";
+			hideonnpc instance_npcname("Geffen Bully#1");
+			hideonnpc instance_npcname("Geffen Bully#2");
+			hideonnpc instance_npcname("Geffen Bully#3");
+			stopnpctimer;
+			end;
+	}
+	
+	initnpctimer;
+	end;
+OnMobKilled:
+	if (mobcount(instance_mapname("1@gef"), instance_npcname("#Event 2 start 2") + "::OnMobKilled") <= 0) {
+		hideoffnpc instance_npcname("Geffen Bully#1");
+		hideoffnpc instance_npcname("Geffen Bully#2");
+		hideoffnpc instance_npcname("Geffen Bully#3");
+		//completequest 9286;
+		//setquest 9286;
+		//completequest 9286;
+		//setquest 9287;
+		sleep2 500;
+		specialeffect 220, AREA, instance_npcname("Geffen Bully#1");
+		specialeffect 220, AREA, instance_npcname("Geffen Bully#2");
+		specialeffect 220, AREA, instance_npcname("Geffen Bully#3");
+		
+		$gmt_timer_evt2 = -1;
+		
+		while($gmt_timer_evt2 < 50) {
+			$gmt_timer_evt2++;
+			
+			switch($gmt_timer_evt2) {
+				case 0:
+					npctalk "Geffen Bully : He has surprisingly good skills.", instance_npcname("Geffen Bully#1");
+					npctalk "Geffen Bully : This isn't good...", instance_npcname("Geffen Bully#2");
+					npctalk "Geffen Bully : 1 slap for 10 wins. No... You get 10 slaps for 1 win.", instance_npcname("Geffen Bully#3");
+					break;
+				case 3:
+					hideonnpc instance_npcname("Magic Academy Student#22");
+					hideoffnpc instance_npcname("Magic Academy Student#11");
+					sleep2 500;
+					npctalk "Magic Academy Student : I'm scared~! Help me...", instance_npcname("Magic Academy Student#11");
+					break;
+				case 6: hideoffnpc instance_npcname("Fenrir#1"); break;
+				case 7: npctalk "Fenrir : Hello. Are you going to stop now?", instance_npcname("Fenrir#1"); break;
+				case 10: npctalk "Fenrir : This is really uncomfortable. I can't just sit back and watch.", instance_npcname("Fenrir#1"); break;
+				case 13:
+					npctalk "Fenrir : Stop harassing her. I won't forgive you.", instance_npcname("Fenrir#1");
+					specialeffect 204, AREA, instance_npcname("Fenrir#1");
+					break;
+				case 15: npctalk "Geffen Bully : Hey~ You look rich, you must have a lot of zeny right?", instance_npcname("Geffen Bully#1"); break;
+				case 17: npctalk "Geffen Bully : What's a rich girl like you doing around here?~", instance_npcname("Geffen Bully#2"); break;
+				case 19: npctalk "Geffen Bully : Hey! Rich girl~! How much zeny do you got?", instance_npcname("Geffen Bully#3"); break;
+				case 22:
+					hideonnpc instance_npcname("Geffen Bully#1");
+					hideonnpc instance_npcname("Geffen Bully#2");
+					hideonnpc instance_npcname("Geffen Bully#3");
+					hideoffnpc instance_npcname("Geffen Bully#11");
+					hideoffnpc instance_npcname("Geffen Bully#22");
+					hideoffnpc instance_npcname("Geffen Bully#33");
+					break;
+				case 23:
+					emotion e_gasp, 0, instance_npcname("Fenrir#1");
+					mapannounce instance_mapname("1@gef"), "Take your dirty hands off of me.", 0x00ebff;
+					break;
+				case 25:
+					hideoffnpc instance_npcname("Loki#1");
+					sleep2 500;
+					specialeffect 126, AREA, instance_npcname("Loki#1");
+					sleep2 1500;
+					specialeffect 121, AREA, instance_npcname("Loki#1");
+					npctalk "Loki : Hmph!", instance_npcname("Loki#1");
+					sleep2 500;
+					specialeffect 124, AREA, instance_npcname("Loki#1");
+					specialeffect 122, AREA, instance_npcname("Geffen Bully#33");
+					specialeffect 143, AREA, instance_npcname("Geffen Bully#33");
+					sleep2 330;
+					specialeffect 32, AREA, instance_npcname("Geffen Bully#33");
+					hideonnpc instance_npcname("Geffen Bully#33");
+					hideoffnpc instance_npcname("Geffen Bully#3");
+					break;
+				case 26: npctalk "Geffen Bully : Yikes!", instance_npcname("Geffen Bully#3"); break;
+				case 27:
+					hideonnpc instance_npcname("Loki#1");
+					hideoffnpc instance_npcname("Loki#2");
+					sleep2 750;
+					npctalk "Loki : Take this.", instance_npcname("Loki#2");
+					sleep2 500;
+					specialeffect 271, AREA, instance_npcname("Geffen Bully#22");
+					specialeffect 122, AREA, instance_npcname("Geffen Bully#22");
+					specialeffect 143, AREA, instance_npcname("Geffen Bully#22");
+					sleep2 330;
+					specialeffect 32, AREA, instance_npcname("Geffen Bully#22");
+					hideonnpc instance_npcname("Geffen Bully#22");
+					hideoffnpc instance_npcname("Geffen Bully#2");
+					break;
+				case 28:
+					npctalk "Geffen Bully : Ugh, uuurgh! What the?!", instance_npcname("Geffen Bully#2");
+					hideonnpc instance_npcname("Loki#2");
+					hideoffnpc instance_npcname("Loki#3");
+					sleep2 750;
+					npctalk "Loki : Change your mind yet?", instance_npcname("Loki#3");
+					sleep2 500;
+					specialeffect 270, AREA, instance_npcname("Geffen Bully#11");
+					specialeffect 122, AREA, instance_npcname("Geffen Bully#11");
+					specialeffect 143, AREA, instance_npcname("Geffen Bully#11");
+					sleep2 330;
+					specialeffect 32, AREA, instance_npcname("Geffen Bully#11");
+					hideonnpc instance_npcname("Geffen Bully#11");
+					hideoffnpc instance_npcname("Geffen Bully#1");
+					break;
+				case 29: npctalk "Geffen Bully : Ugh, urgh, urgh! GAAAAAAH!!", instance_npcname("Geffen Bully#1"); break;
+				case 31: npctalk "Loki : If you don't want to taste my Katar, leave now.", instance_npcname("Loki#3"); break;
+				case 34: npctalk "Loki : Get out of my sight.", instance_npcname("Loki#3"); break;
+				case 36: npctalk "Geffen Bully : Oh, oh! Time to go!", instance_npcname("Geffen Bully#1"); break;
+				case 38: npctalk "Geffen Bully : Please... spare my life...", instance_npcname("Geffen Bully#2"); break;
+				case 40: npctalk "Geffen Bully : Let's get away!~!!!!!", instance_npcname("Geffen Bully#3"); break;
+				case 41:
+					npctalk "Loki : You have 10 seconds.", instance_npcname("Loki#3");
+					specialeffect 121, AREA, instance_npcname("Loki#3");
+					break;
+				case 43:
+					specialeffect 136, AREA, instance_npcname("Loki#3");
+					npctalk "Loki : 10... 9...", instance_npcname("Loki#3");
+					sleep2 500;
+					specialeffect 269, AREA, instance_npcname("Loki#3");
+					specialeffect 126, AREA, instance_npcname("Loki#3");
+					specialeffect 127, AREA, instance_npcname("Loki#3");
+					break;
+				case 45:
+					specialeffect 125, AREA, instance_npcname("Loki#3");
+					sleep2 500;
+					emotion e_gg, 0, instance_npcname("Loki#3");
+					npctalk "Loki : 3... 2...", instance_npcname("Loki#3");
+					sleep2 500;
+					npctalk "Geffen Bully : What?! You went from from 9 to 3 seconds!!", instance_npcname("Geffen Bully#1");
+					npctalk "Geffen Bully : Screw this, let's run~!!!!!!!!!", instance_npcname("Geffen Bully#2");
+					npctalk "Geffen Bully : I will have my revenge~!!", instance_npcname("Geffen Bully#3");
+					break;
+				case 46:
+					specialeffect 361, AREA, instance_npcname("Loki#3");
+					specialeffect 124, AREA, instance_npcname("Loki#3");
+					npctalk "Loki : 1...", instance_npcname("Loki#3");
+					sleep2 330;
+					hideonnpc instance_npcname("Geffen Bully#1");
+					hideonnpc instance_npcname("Geffen Bully#2");
+					hideonnpc instance_npcname("Geffen Bully#3");
+					break;
+				case 48:
+					hideonnpc instance_npcname("Loki#3");
+					hideoffnpc instance_npcname("Loki#1");
+					break;
+				case 49:
+					attachrid('gmt_account_id);
+					cutin "fenrir_a.bmp", 2;
+					mes "[Fenrir]", "Are you okay?", "Where are all these punks coming from anyways?"; next;
+					cutin "", 255;
+					mes "[Magic Academy Student]", "Thanks for helping me.", "Who are you?"; next;
+					cutin "fenrir_a.bmp", 2;
+					mes "[Fenrir]", "I am Fenris Fenrir."; next;
+					mes "[Fenrir]", "Thank " + strcharinfo(0) + ".", "It would have been much worse if "+('sex?"he":"she")+" hadn't shown up."; next;
+					cutin "", 255;
+					mes "[Magic Academy Student]", "Thank you so much " + strcharinfo(0) + ".", "You saved me."; next;
+					cutin "fenrir_a.bmp", 2;
+					mes "[Fenrir]", "You don't meet many people like " + strcharinfo(0) + " these days.", "You're a good person."; next;
+					mes "[Fenrir]", "I was on the way to register for the Geffen Magic Tournament with Loki."; next;
+					mes "[Fenrir]", "I have a feeling that you will register too " + strcharinfo(0) + ".", "I hope to meet you in the finals of the Tournament."; next;
+					cutin "ep14_roki01.bmp", 2;
+					mes "[Loki]", "Oh yeah?", "" + strcharinfo(0) + " is going to register?", "That's interesting."; next;
+					mes "[Loki]", "I have a spare magic buff scroll.", "I will give it to you as a present.";
+					sc_start4 SC_GEFFEN_MAGIC2, 3600000, 5, 0, 0, 0, 10000, 1;
+					atcommand "@effect 220";
+					next;
+					mes "[Loki]", "I doubt that you can beat Fenrir at the Tournament.", "Her fighting prowess is unmatched."; next;
+					mes "[Loki]", "Fenrir, it's time to register.", "Let's hurry."; next;
+					cutin "fenrir_a.bmp", 2;
+					mes "[Fenrir]", "Yes~! I almost forgot.", "It was nice meeting you " + strcharinfo(0) + "~!"; next;
+					mes "[Fenrir]", "I hope to meet you in combat soon.";
+					close2;
+					cutin "", 255;
+					hideonnpc instance_npcname("Fenrir#1");
+					hideonnpc instance_npcname("Loki#1");
+					sleep2 1000;
+					hideonnpc instance_npcname("Magic Academy Student#11");
+					sleep2 3000;
+					unittalk $gmt_account_id, "It was fun meeting Fenrir.";
+					sleep2 2000;
+					unittalk $gmt_account_id, "I should register for the Magic Tournament.";
+					end;
+			}
+			
+			sleep2 1000;
+		}
+	}
+	
+	end;
+}
+
+//ϯϯϯϯϯϯϯϯϯ
+//   Event 3
+//__________________
+1@gef,111,146,4	duplicate(#gmt_dummy)	Geffen Resident#1	67
+1@gef,106,141,4	duplicate(#gmt_dummy)	Geffen Resident#2	67
+1@gef,104,141,6	duplicate(#gmt_dummy)	Lydia#1	10010
+
+1@gef,108,139,6	script	Geffen Shoplifter#1	671,4,4,{
+OnTouch:
+	if ('gmt_chase != 1) end;
+	if ('gmt_event != 0) end;
+	'gmt_event = 3;
+	unittalk 'gmt_account_id, "Thief! Give that zeny back!! Don't move!!";
+	sleep2 3000;
+	npctalk "Geffen Shoplifter : Threatening me?~!! Yeah, boo hoo! You really scare me~!!", instance_npcname("Geffen Shoplifter#1");
+	sleep2 2000;
+	npctalk "Geffen Shoplifter : Catch me if you can~!!", instance_npcname("Geffen Shoplifter#1");
+	sleep2 2000;
+	npctalk "Geffen Resident : Please find my paycheck...", instance_npcname("Geffen Resident#1");
+	sleep2 3000;
+	unittalk 'gmt_account_id, "I have you now!";
+	hideonnpc instance_npcname("Geffen Shoplifter#1");
+	hideoffnpc instance_npcname("Geffen Shoplifter#2");
+	'gmt_chase = 2;
+	'GMTQuest = 3;
+	end;
+}
+
+1@gef,107,126,4	script	Geffen Shoplifter#2	671,4,4,{
+	end;
+OnTouch:
+	if ('gmt_chase != 2) end;
+	if('OnTouchOnce5) end;
+	set 'OnTouchOnce5,1;
+	if (Zeny > 2000) Zeny -= 2000;
+	npctalk "Geffen Shoplifter : Are you following me? Thanks for the 2,000 zeny~!", instance_npcname("Geffen Shoplifter#2");
+	atcommand "@effect 18";
+	sleep2 3000;
+	unittalk 'gmt_account_id, "Hey~ Stop right there! Thief!";
+	sleep2 3000;
+	hideonnpc instance_npcname("Geffen Shoplifter#2");
+	hideoffnpc instance_npcname("Geffen Shoplifter#3");
+	'gmt_chase = 3;
+	end;
+}
+
+1@gef,111,118,4	script	Geffen Shoplifter#3	671,4,4,{
+	end;
+OnTouch:
+	if ('gmt_chase != 3) end;
+	if('OnTouchOnce6) end;
+	set 'OnTouchOnce6,1;
+	if (Zeny > 2000) Zeny -= 2000;
+	npctalk "Geffen Shoplifter : Woohoo~ Catch me if you can~! 4,000 large! Easy~!", instance_npcname("Geffen Shoplifter#3");
+	atcommand "@effect 18";
+	sleep2 3000;
+	unittalk 'gmt_account_id, "I will beat you down once I catch you!";
+	sleep2 3000;
+	hideonnpc instance_npcname("Geffen Shoplifter#3");
+	hideoffnpc instance_npcname("Geffen Shoplifter#11");
+	'gmt_chase = 11;
+	end;
+}
+
+1@gef,123,111,4	script	Geffen Shoplifter#11	671,4,4,{
+	end;
+OnTouch:
+	if ('gmt_chase != 11) end;
+	if('OnTouchOnce7) end;
+	set 'OnTouchOnce7,1;
+	if (Zeny > 2000) Zeny -= 2000;
+	npctalk "Geffen Shoplifter : You're annoying me~! I like it! 6,000 zeny~!", instance_npcname("Geffen Shoplifter#11");
+	atcommand "@effect 18";
+	sleep2 3000;
+	unittalk 'gmt_account_id, "Stop right there you filthy thief!";
+	sleep2 3000;
+	hideonnpc instance_npcname("Geffen Shoplifter#11");
+	hideoffnpc instance_npcname("Geffen Shoplifter#22");
+	'gmt_chase = 22;
+	end;
+}
+
+1@gef,129,121,4	script	Geffen Shoplifter#22	671,4,4,{
+	end;
+OnTouch:
+	if ('gmt_chase != 22) end;
+	if('OnTouchOnce8) end;
+	set 'OnTouchOnce8,1;
+	if (Zeny > 2000) Zeny -= 2000;
+	npctalk "Geffen Shoplifter : Calling me a rat? Yoink~ 8,000 zeny~!", instance_npcname("Geffen Shoplifter#22");
+	atcommand "@effect 18";
+	sleep2 3000;
+	unittalk 'gmt_account_id, "Would you stop?!";
+	sleep2 3000;
+	hideonnpc instance_npcname("Geffen Shoplifter#22");
+	hideoffnpc instance_npcname("Geffen Shoplifter#33");
+	'gmt_chase = 33;
+	end;
+}
+
+1@gef,114,137,4	script	Geffen Shoplifter#33	671,4,4,{
+	end;
+OnTouch:
+	if ('gmt_chase != 33) end;
+	if('OnTouchOnce9) end;
+	set 'OnTouchOnce9,1;
+	if (Zeny > 2000) Zeny -= 2000;
+	npctalk "Geffen Shoplifter : Stop following me. It's driving me crazy! 10,000 zeny~!", instance_npcname("Geffen Shoplifter#33");
+	atcommand "@effect 18";
+	sleep2 3000;
+	unittalk 'gmt_account_id, "You can't run away anymore. I've got you now!";
+	sleep2 3000;
+	npctalk "Geffen Shoplifter : You really piss me off! I'm gonna have to beat you down!", instance_npcname("Geffen Shoplifter#33");
+	sleep2 3000;
+	hideonnpc instance_npcname("Geffen Shoplifter#33");
+	monster instance_mapname("1@gef"), 114, 137, "Geffen Shoplifter", 2914, 1, instance_npcname("Geffen Shoplifter#33") + "::OnMobKilled";
+	end;
+OnMobKilled:
+	hideoffnpc instance_npcname("Geffen Shoplifter#1");
+	//completequest 9288;
+	//setquest 9288; // State = 1, Time = 0
+	//completequest 9288;
+	//setquest 9289; // State = 1, Time = 0
+	'gmt_timer_evt3 = 0;
+	initnpctimer;
+	end;
+OnTimer1000:
+	'gmt_timer_evt3++;
+	
+	switch('gmt_timer_evt3) {
+		case 1: specialeffect 20, AREA, instance_npcname("Geffen Shoplifter#1"); break;
+		case 4: npctalk "Geffen Shoplifter : Ugh, I shouldn't fight toe to toe with anyone...", instance_npcname("Geffen Shoplifter#1"); break;
+		case 7: unittalk 'gmt_account_id, "Don't want to be in a fair fight, huh thief?"; break;
+		case 10: npctalk "Geffen Shoplifter : Umm... stealing zeny is my job~ I did nothing wrong~!", instance_npcname("Geffen Shoplifter#1"); break;
+		case 13: unittalk 'gmt_account_id, "What? You're stealing from needy people."; break;
+		case 16: npctalk "Geffen Shoplifter : Well, it has been fun~! I'm outta here~", instance_npcname("Geffen Shoplifter#1"); break;
+		case 17: unittalk 'gmt_account_id, "Hey! Give back what you stole thief!"; break;
+		case 20: npctalk "Geffen Shoplifter : Hahaha~! You'll get nothing~!", instance_npcname("Geffen Shoplifter#1"); break;
+		case 22: hideonnpc instance_npcname("Geffen Shoplifter#1"); break;
+		case 24:
+			if (attachrid('gmt_account_id)) {
+				mes "[Geffen Resident]", "My monthly salary...", "What am I gonna do?", "I have to eat..."; next;
+				mes "[Geffen Resident]", "You're not a thief are you?", "I don't know what to do about my zeny being stolen."; next;
+				mes "[Lydia]", "Woo, yeah, what a day~", "It seems like all these thieves in Geffen are rich.", "They may be good at stealing but they're easy to steal from too.";
+				cutin "lydia_a.bmp", 0;
+				next;
+				hideoffnpc instance_npcname("Lydia#1");
+				mes "[Lydia]", "Hey, why are you crying?", "What happened?"; next;
+				mes "You tell Lydia about the shoplifters.";
+				cutin "", 255;
+				next;
+				mes "[Geffen Resident]", "What am I going to do?", "*sobbing*"; next;
+				mes "[Lydia]", "(I stole this envelope from one of those thug-looking guys)", "....", "How much zeny was stolen from you?";
+				cutin "lydia_a.bmp", 0;
+				next;
+				mes "[Geffen Resident]", "1,000,000 zeny!", "It's everything that I had.";
+				cutin "", 255;
+				next;
+				mes "[Lydia]", "Whoa! That's the same amount as what's in this envelope that I stole from that shoplifter.";
+				cutin "lydia_a.bmp", 0;
+				next;
+				mes "[Lydia]", "Maybe this is what you are looking for?", "Check it out!"; next;
+				mes "[Geffen Resident]", "Let me see...", "Wait, this has to be my zeny!", "Thank you very much for finding it!";
+				cutin "", 255;
+				next;
+				hideonnpc instance_npcname("Geffen Resident#1");
+				hideoffnpc instance_npcname("Geffen Resident#2");
+				mes "[Lydia]", "Well... Um, that is...", "I didn't say I was gonna give it back to you...";
+				cutin "lydia_a.bmp", 0;
+				next;
+				mes "[Geffen Resident]", "Thank you very much!!", "I will never forget your kindness~!", "I'm putting it in the bank right now!", "Have a good day~!!! Zap~!!";
+				cutin "", 255;
+				next;
+				hideonnpc instance_npcname("Geffen Resident#2");
+				mes "[Lydia]", "......", "I guess... I did a good thing...?";
+				cutin "lydia_a.bmp", 0;
+				next;
+				mes "You tell Lydia about your stolen zeny.";
+				cutin "", 255;
+				next;
+				mes "[Lydia]";
+				mes "So, are you asking me for more zeny?";
+				mes "Zeny doesn't grow on trees you know!";
+				cutin "lydia_a.bmp", 0;
+				next;
+				mes "[Lydia]";
+				mes "I mean it is hers so...";
+				mes "I'll just consider it a donation to the Geffen Magic Tournament.";
+				next;
+				mes "[Lydia]";
+				mes "Well, I can't give away any Tournament participants any zeny...";
+				next;
+				mes "[Lydia]";
+				mes "I stole this magic scroll from another thief, so don't worry about taking it.";
+				sc_start4 SC_GEFFEN_MAGIC1, 3600000, 5, 0, 0, 0, 10000, 1; // flag = 1
+				atcommand "@effect 220";
+				next;
+				mes "[Lydia]";
+				mes "I need to get to the Geffen Magic Tournament.";
+				mes "Gotta go!";
+				close2;
+				cutin "", 255;
+				hideonnpc instance_npcname("Lydia#1");
+				sleep2 2000;
+				unittalk 'gmt_account_id, "She disappeared before I could thank her...";
+				sleep2 3000;
+				unittalk 'gmt_account_id, "She seems like a good person...";
+				sleep2 3000;
+				unittalk 'gmt_account_id, "Well, time to register for the Magic Tournament.";
+				stopnpctimer;
+				end;
+			}
+		
+			stopnpctimer;
+			end;
+	}
+	
+	initnpctimer;
+	end;
+	
+}
+
+1@gef,114,143,0	script	#Event 3 start	139,5,5,{
+	end;
+OnTouch:
+	if ('gmt_event != 0) end;
+	if('OnTouchOnce10) end;
+	set 'OnTouchOnce10,1;
+	'gmt_char_name$ = strcharinfo(0);
+	hideonnpc instance_npcname("#Event 3 start");
+	disablenpc instance_npcname("#Event 3 start");
+	hideoffnpc instance_npcname("Geffen Resident#1");
+	//setquest 9288;
+	'gmt_timer_evt3 = 0;
+	initnpctimer;
+	end;
+OnTimer1000:
+	'gmt_timer_evt3++;
+	
+	switch('gmt_timer_evt3) {
+		case 1: npctalk "Geffen Resident : A thief...! A thief~!!", instance_npcname("Geffen Resident#1"); break;
+		case 3: npctalk "Geffen Resident : Help me~!! Someone stole my paycheck!", instance_npcname("Geffen Resident#1"); break;
+		case 6: 
+			hideoffnpc instance_npcname("Geffen Shoplifter#1");
+			'gmt_chase = 1;
+			break;
+		case 8: npctalk "Geffen Shoplifter : Damn... Someone saw me...", instance_npcname("Geffen Shoplifter#1"); break;
+		case 11:
+			unittalk 'gmt_account_id, "What can I do? I gotta help.";
+			stopnpctimer;
+			end;
+	}
+	
+	initnpctimer;
+	end;
+}
+
+1@gef,0,0,0	script	#gmt_main	-1,{
+	end;
+OnInstanceInit:
+	// Event 1
+	hideonnpc instance_npcname("Geffen Gangster#1");
+	hideonnpc instance_npcname("Geffen Gangster#2");
+	hideonnpc instance_npcname("Geffen Gangster#3");
+	hideonnpc instance_npcname("Kafra Employee#1");
+	hideonnpc instance_npcname("Geffen Gangster#11");
+	hideonnpc instance_npcname("Geffen Gangster#22");
+	hideonnpc instance_npcname("Geffen Gangster#33");
+	disablenpc instance_npcname("#Event 1 start 2");
+	hideonnpc instance_npcname("Chaos#Gef1");
+	hideonnpc instance_npcname("Chaos#Gef2");
+	hideonnpc instance_npcname("Chaos#3");
+	hideonnpc instance_npcname("Iris#Gef1");
+	
+	// Event 2
+	hideonnpc instance_npcname("Geffen Bully#1");
+	hideonnpc instance_npcname("Geffen Bully#2");
+	hideonnpc instance_npcname("Geffen Bully#3");
+	hideonnpc instance_npcname("Geffen Bully#11");
+	hideonnpc instance_npcname("Geffen Bully#22");
+	hideonnpc instance_npcname("Geffen Bully#33");
+	hideonnpc instance_npcname("Magic Academy Student#11");
+	hideonnpc instance_npcname("Magic Academy Student#22");
+	hideonnpc instance_npcname("Loki#1");
+	hideonnpc instance_npcname("Loki#2");
+	hideonnpc instance_npcname("Loki#3");
+	hideonnpc instance_npcname("Fenrir#1");
+	disablenpc instance_npcname("#Event 2 start 2");
+	
+	// Event 3
+	hideonnpc instance_npcname("Geffen Resident#1");
+	hideonnpc instance_npcname("Geffen Resident#2");
+	hideonnpc instance_npcname("Geffen Shoplifter#1");
+	hideonnpc instance_npcname("Geffen Shoplifter#2");
+	hideonnpc instance_npcname("Geffen Shoplifter#3");
+	hideonnpc instance_npcname("Geffen Shoplifter#11");
+	hideonnpc instance_npcname("Geffen Shoplifter#22");
+	hideonnpc instance_npcname("Geffen Shoplifter#33");
+	hideonnpc instance_npcname("Geffen Shoplifter#33");
+	hideonnpc instance_npcname("Lydia#1");
+	
+	hideonnpc instance_npcname("Male Adventurer#gef");
+	hideonnpc instance_npcname("Handsome Adventurer#gef");
+	end;
+}
+
+1@gef	mapflag	nowarp
+1@gef	mapflag	nomemo
+1@gef	mapflag	noteleport
+1@gef	mapflag	monster_noteleport
+1@gef	mapflag	nosave
+1@gef	mapflag	nobranch
+1@gef	mapflag	nowarpto
+1@gef	mapflag	noicewall
+1@gef	mapflag	restricted	9
+
+1@ge_st	mapflag	nowarp
+1@ge_st	mapflag	nomemo
+1@ge_st	mapflag	noteleport
+1@ge_st	mapflag	monster_noteleport
+1@ge_st	mapflag	nosave
+1@ge_st	mapflag	nobranch
+1@ge_st	mapflag	nowarpto
+1@ge_st	mapflag	noicewall
+1@ge_st	mapflag	restricted	9
+
+1@gef_in	mapflag	nowarp
+1@gef_in	mapflag	nomemo
+1@gef_in	mapflag	noteleport
+1@gef_in	mapflag	monster_noteleport
+1@gef_in	mapflag	nosave
+1@gef_in	mapflag	nobranch
+1@gef_in	mapflag	nowarpto
+1@gef_in	mapflag	noicewall
+1@gef_in	mapflag	restricted	9

+ 1 - 0
npc/re/scripts_athena.conf

@@ -61,6 +61,7 @@ npc: npc/re/instances/OldGlastHeim.txt
 npc: npc/re/instances/WolfchevLaboratory.txt
 npc: npc/re/instances/EclageInterior.txt
 npc: npc/re/instances/SaraMemory.txt
+//npc: npc/custom/official/GeffenMagicTournament.txt
 
 // ---------------- Kafras & Cool Event Corp. -------------------
 npc: npc/re/kafras/kafras.txt

+ 3 - 0
src/map/script_constants.h

@@ -1435,6 +1435,9 @@
 	export_constant(SC_GOLDENMACECLAN);
 	export_constant(SC_CROSSBOWCLAN);
 	export_constant(SC_JUMPINGCLAN);
+	export_constant(SC_GEFFEN_MAGIC1);
+	export_constant(SC_GEFFEN_MAGIC2);
+	export_constant(SC_GEFFEN_MAGIC3);
 #ifdef RENEWAL
 	export_constant(SC_EXTREMITYFIST2);
 #endif

+ 25 - 0
src/map/status.c

@@ -1106,6 +1106,11 @@ void initChangeTables(void)
 	StatusIconChangeTable[SC_CROSSBOWCLAN] = SI_CROSSBOWCLAN;
 	StatusIconChangeTable[SC_JUMPINGCLAN] = SI_JUMPINGCLAN;
 
+	// Geffen Magic Tournament Buffs
+	StatusIconChangeTable[SC_GEFFEN_MAGIC1] = SI_GEFFEN_MAGIC1;
+    StatusIconChangeTable[SC_GEFFEN_MAGIC2] = SI_GEFFEN_MAGIC2;
+    StatusIconChangeTable[SC_GEFFEN_MAGIC3] = SI_GEFFEN_MAGIC3;
+
 	/* Other SC which are not necessarily associated to skills */
 	StatusChangeFlagTable[SC_ASPDPOTION0] |= SCB_ASPD;
 	StatusChangeFlagTable[SC_ASPDPOTION1] |= SCB_ASPD;
@@ -4019,6 +4024,20 @@ int status_calc_pc_(struct map_session_data* sd, enum e_status_calc_opt opt)
 			sd->subele[ELE_HOLY] += sc->data[SC_PROVIDENCE]->val2;
 			sd->subrace[RC_DEMON] += sc->data[SC_PROVIDENCE]->val2;
 		}
+        if (sc->data[SC_GEFFEN_MAGIC1]) {
+            sd->right_weapon.addrace[RC_PLAYER] += sc->data[SC_GEFFEN_MAGIC1]->val1;
+            sd->right_weapon.addrace[RC_DEMIHUMAN] += sc->data[SC_GEFFEN_MAGIC1]->val1;
+            sd->left_weapon.addrace[RC_PLAYER] += sc->data[SC_GEFFEN_MAGIC1]->val1;
+            sd->left_weapon.addrace[RC_DEMIHUMAN] += sc->data[SC_GEFFEN_MAGIC1]->val1;
+        }
+        if (sc->data[SC_GEFFEN_MAGIC2]) {
+            sd->magic_addrace[RC_PLAYER] += sc->data[SC_GEFFEN_MAGIC2]->val1;
+            sd->magic_addrace[RC_DEMIHUMAN] += sc->data[SC_GEFFEN_MAGIC2]->val1;
+        }
+        if(sc->data[SC_GEFFEN_MAGIC3]) {
+            sd->subrace[RC_PLAYER] += sc->data[SC_GEFFEN_MAGIC3]->val1;
+            sd->subrace[RC_DEMIHUMAN] += sc->data[SC_GEFFEN_MAGIC3]->val1;
+        }
 		if(sc->data[SC_ARMOR_ELEMENT]) {	// This status change should grant card-type elemental resist.
 			sd->subele[ELE_WATER] += sc->data[SC_ARMOR_ELEMENT]->val1;
 			sd->subele[ELE_EARTH] += sc->data[SC_ARMOR_ELEMENT]->val2;
@@ -11427,6 +11446,9 @@ int status_change_clear(struct block_list* bl, int type)
 			case SC_REUSE_STORMBLAST:
 			case SC_ALL_RIDING_REUSE_LIMIT:
 			case SC_SPRITEMABLE:
+            case SC_GEFFEN_MAGIC1:
+            case SC_GEFFEN_MAGIC2:
+            case SC_GEFFEN_MAGIC3:
 			// Costumes
 			case SC_MOONSTAR:
 			case SC_SUPER_STAR:
@@ -13420,6 +13442,9 @@ void status_change_clear_buffs(struct block_list* bl, uint8 type)
 			case SC_ALL_RIDING_REUSE_LIMIT:
 			case SC_SPRITEMABLE:
 			case SC_BITESCAR:
+            case SC_GEFFEN_MAGIC1:
+            case SC_GEFFEN_MAGIC2:
+            case SC_GEFFEN_MAGIC3:
 			// Costumes
 			case SC_MOONSTAR:
 			case SC_SUPER_STAR:

+ 5 - 0
src/map/status.h

@@ -788,6 +788,11 @@ typedef enum sc_type {
 
 	SC_TAROTCARD,
 
+	// Geffen Magic Tournament Buffs
+	SC_GEFFEN_MAGIC1,
+    SC_GEFFEN_MAGIC2,
+    SC_GEFFEN_MAGIC3,
+
 #ifdef RENEWAL
 	SC_EXTREMITYFIST2, //! NOTE: This SC should be right before SC_MAX, so it doesn't disturb if RENEWAL is disabled
 #endif