diff --git a/db/re/instance_db.txt b/db/re/instance_db.txt
index af85614980..7b5634d9d4 100644
--- a/db/re/instance_db.txt
+++ b/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
\ No newline at end of file
diff --git a/db/re/mob_db.txt b/db/re/mob_db.txt
index 44e5cb465a..e3c8555f8b 100644
--- a/db/re/mob_db.txt
+++ b/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
diff --git a/db/re/mob_skill_db.txt b/db/re/mob_skill_db.txt
index b12b3ebdfe..37f881648f 100644
--- a/db/re/mob_skill_db.txt
+++ b/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,,,,,,,
diff --git a/db/re/quest_db.txt b/db/re/quest_db.txt
index 9145a1bf0c..bc549c7f35 100644
--- a/db/re/quest_db.txt
+++ b/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"
diff --git a/npc/custom/official/GeffenMagicTournament.txt b/npc/custom/official/GeffenMagicTournament.txt
new file mode 100644
index 0000000000..0885149075
--- /dev/null
+++ b/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 "- "+getitemname(.@item)+""+.@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 "- "+getitemname(.@item)+""+.@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 "- "+getitemname(.@item)+""+.@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$, ": Time limit is " + ('timeout / 60) + " minutes.",bc_blue; sleep 2000;
+ mapannounce .@map$, ": Ready... Set...",bc_blue; sleep 2000;
+ mapannounce .@map$, ": 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"), ": "+'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"), ": Time remaining is 4 minutes, this match is getting heated!",bc_blue; break;
+ case 180: mapannounce instance_mapname("1@ge_st"), ": Time remaining is 3 minutes, the match has gotten extremely heated!",bc_blue; break;
+ case 120: mapannounce instance_mapname("1@ge_st"), ": Time remaining is 2 minutes, we're racing towards the end!",bc_blue; break;
+ case 90: mapannounce instance_mapname("1@ge_st"), ": Time remaining is 1 minute 30 seconds, the bout is halfway over!",bc_blue; break;
+ case 60: mapannounce instance_mapname("1@ge_st"), ": Time remaining is 1 minute, the end of the match is nearing!",bc_blue; break;
+ case 30: mapannounce instance_mapname("1@ge_st"), ": Time remaining is 30 seconds, turn coming to an end!",bc_blue; break;
+ case 10: mapannounce instance_mapname("1@ge_st"), ": 10 seconds remaining!",bc_blue; break;
+ case 5: mapannounce instance_mapname("1@ge_st"), ": 5!",bc_blue; break;
+ case 4: mapannounce instance_mapname("1@ge_st"), ": 4!",bc_blue; break;
+ case 3: mapannounce instance_mapname("1@ge_st"), ": 3!",bc_blue; break;
+ case 2: mapannounce instance_mapname("1@ge_st"), ": 2!",bc_blue; break;
+ case 1: mapannounce instance_mapname("1@ge_st"), ": 1!",bc_blue; break;
+ case 0:
+ stopnpctimer;
+ donpcevent instance_npcname("#GMTcontroller::OnTimeout2");
+ end;
+ }
+
+ initnpctimer;
+ end;
+OnTimeout2:
+ mapannounce instance_mapname("1@ge_st"), ": 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
diff --git a/npc/re/scripts_athena.conf b/npc/re/scripts_athena.conf
index e9994cb357..730bbc718f 100644
--- a/npc/re/scripts_athena.conf
+++ b/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
diff --git a/src/map/script_constants.h b/src/map/script_constants.h
index 69dc0e4e0c..d602ae1a00 100644
--- a/src/map/script_constants.h
+++ b/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
diff --git a/src/map/status.c b/src/map/status.c
index 9ab515003e..d5a23bb9ae 100644
--- a/src/map/status.c
+++ b/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:
diff --git a/src/map/status.h b/src/map/status.h
index ddddf06a15..92d82e3d5a 100644
--- a/src/map/status.h
+++ b/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