summaryrefslogtreecommitdiff
path: root/npc/pre-re
diff options
context:
space:
mode:
Diffstat (limited to 'npc/pre-re')
-rw-r--r--npc/pre-re/airports/izlude.txt13
-rw-r--r--npc/pre-re/cities/alberta.txt42
-rw-r--r--npc/pre-re/cities/izlude.txt26
-rw-r--r--npc/pre-re/cities/jawaii.txt15
-rw-r--r--npc/pre-re/guides/guides_alberta.txt159
-rw-r--r--npc/pre-re/guides/guides_aldebaran.txt109
-rw-r--r--npc/pre-re/guides/guides_amatsu.txt119
-rw-r--r--npc/pre-re/guides/guides_ayothaya.txt111
-rw-r--r--npc/pre-re/guides/guides_comodo.txt127
-rw-r--r--npc/pre-re/guides/guides_einbroch.txt351
-rw-r--r--npc/pre-re/guides/guides_geffen.txt174
-rw-r--r--npc/pre-re/guides/guides_gonryun.txt66
-rw-r--r--npc/pre-re/guides/guides_hugel.txt156
-rw-r--r--npc/pre-re/guides/guides_izlude.txt161
-rw-r--r--npc/pre-re/guides/guides_juno.txt118
-rw-r--r--npc/pre-re/guides/guides_lighthalzen.txt227
-rw-r--r--npc/pre-re/guides/guides_louyang.txt233
-rw-r--r--npc/pre-re/guides/guides_morroc.txt164
-rw-r--r--npc/pre-re/guides/guides_moscovia.txt92
-rw-r--r--npc/pre-re/guides/guides_niflheim.txt134
-rw-r--r--npc/pre-re/guides/guides_payon.txt296
-rw-r--r--npc/pre-re/guides/guides_prontera.txt242
-rw-r--r--npc/pre-re/guides/guides_rachel.txt116
-rw-r--r--npc/pre-re/guides/guides_umbala.txt124
-rw-r--r--npc/pre-re/guides/guides_veins.txt129
-rw-r--r--npc/pre-re/jobs/1-1/acolyte.txt470
-rw-r--r--npc/pre-re/jobs/1-1/archer.txt246
-rw-r--r--npc/pre-re/jobs/1-1/mage.txt736
-rw-r--r--npc/pre-re/jobs/1-1/merchant.txt1172
-rw-r--r--npc/pre-re/jobs/1-1/swordman.txt642
-rw-r--r--npc/pre-re/jobs/1-1/thief.txt539
-rw-r--r--npc/pre-re/jobs/novice/novice.txt4299
-rw-r--r--npc/pre-re/kafras/kafras_izl.txt15
-rw-r--r--npc/pre-re/merchants/shops.txt21
-rw-r--r--npc/pre-re/mobs/dungeons/abbey.txt129
-rw-r--r--npc/pre-re/mobs/dungeons/abyss.txt62
-rw-r--r--npc/pre-re/mobs/dungeons/alde_dun.txt64
-rw-r--r--npc/pre-re/mobs/dungeons/ama_dun.txt42
-rw-r--r--npc/pre-re/mobs/dungeons/anthell.txt122
-rw-r--r--npc/pre-re/mobs/dungeons/ayo_dun.txt31
-rw-r--r--npc/pre-re/mobs/dungeons/beach_dun.txt40
-rw-r--r--npc/pre-re/mobs/dungeons/c_tower.txt101
-rw-r--r--npc/pre-re/mobs/dungeons/ein_dun.txt40
-rw-r--r--npc/pre-re/mobs/dungeons/gef_dun.txt98
-rw-r--r--npc/pre-re/mobs/dungeons/gefenia.txt129
-rw-r--r--npc/pre-re/mobs/dungeons/glastheim.txt232
-rw-r--r--npc/pre-re/mobs/dungeons/gld_dun.txt52
-rw-r--r--npc/pre-re/mobs/dungeons/gld_dunSE.txt29
-rw-r--r--npc/pre-re/mobs/dungeons/gon_dun.txt44
-rw-r--r--npc/pre-re/mobs/dungeons/ice_dun.txt69
-rw-r--r--npc/pre-re/mobs/dungeons/in_sphinx.txt56
-rw-r--r--npc/pre-re/mobs/dungeons/iz_dun.txt114
-rw-r--r--npc/pre-re/mobs/dungeons/juperos.txt60
-rw-r--r--npc/pre-re/mobs/dungeons/kh_dun.txt62
-rw-r--r--npc/pre-re/mobs/dungeons/lhz_dun.txt311
-rw-r--r--npc/pre-re/mobs/dungeons/lou_dun.txt43
-rw-r--r--npc/pre-re/mobs/dungeons/mag_dun.txt43
-rw-r--r--npc/pre-re/mobs/dungeons/mjo_dun.txt36
-rw-r--r--npc/pre-re/mobs/dungeons/moc_pryd.txt64
-rw-r--r--npc/pre-re/mobs/dungeons/mosk_dun.txt49
-rw-r--r--npc/pre-re/mobs/dungeons/nyd_dun.txt21
-rw-r--r--npc/pre-re/mobs/dungeons/odin.txt67
-rw-r--r--npc/pre-re/mobs/dungeons/orcsdun.txt41
-rw-r--r--npc/pre-re/mobs/dungeons/pay_dun.txt162
-rw-r--r--npc/pre-re/mobs/dungeons/prt_maze.txt103
-rw-r--r--npc/pre-re/mobs/dungeons/prt_sew.txt53
-rw-r--r--npc/pre-re/mobs/dungeons/ra_san.txt82
-rw-r--r--npc/pre-re/mobs/dungeons/tha_t.txt182
-rw-r--r--npc/pre-re/mobs/dungeons/thor_v.txt68
-rw-r--r--npc/pre-re/mobs/dungeons/treasure.txt158
-rw-r--r--npc/pre-re/mobs/dungeons/tur_dun.txt72
-rw-r--r--npc/pre-re/mobs/dungeons/um_dun.txt56
-rw-r--r--npc/pre-re/mobs/dungeons/xmas_dun.txt38
-rw-r--r--npc/pre-re/mobs/dungeons/yggdrasil.txt35
-rw-r--r--npc/pre-re/mobs/fields/amatsu.txt42
-rw-r--r--npc/pre-re/mobs/fields/ayothaya.txt31
-rw-r--r--npc/pre-re/mobs/fields/comodo.txt200
-rw-r--r--npc/pre-re/mobs/fields/einbroch.txt148
-rw-r--r--npc/pre-re/mobs/fields/geffen.txt230
-rw-r--r--npc/pre-re/mobs/fields/gonryun.txt22
-rw-r--r--npc/pre-re/mobs/fields/hugel.txt136
-rw-r--r--npc/pre-re/mobs/fields/jawaii.txt29
-rw-r--r--npc/pre-re/mobs/fields/lighthalzen.txt51
-rw-r--r--npc/pre-re/mobs/fields/louyang.txt33
-rw-r--r--npc/pre-re/mobs/fields/lutie.txt21
-rw-r--r--npc/pre-re/mobs/fields/manuk.txt36
-rw-r--r--npc/pre-re/mobs/fields/mjolnir.txt250
-rw-r--r--npc/pre-re/mobs/fields/morocc.txt325
-rw-r--r--npc/pre-re/mobs/fields/moscovia.txt20
-rw-r--r--npc/pre-re/mobs/fields/niflheim.txt196
-rw-r--r--npc/pre-re/mobs/fields/payon.txt147
-rw-r--r--npc/pre-re/mobs/fields/prontera.txt141
-rw-r--r--npc/pre-re/mobs/fields/rachel.txt117
-rw-r--r--npc/pre-re/mobs/fields/splendide.txt32
-rw-r--r--npc/pre-re/mobs/fields/umbala.txt99
-rw-r--r--npc/pre-re/mobs/fields/veins.txt90
-rw-r--r--npc/pre-re/mobs/fields/yuno.txt178
-rw-r--r--npc/pre-re/other/arena/arena_aco.txt1847
-rw-r--r--npc/pre-re/other/arena/arena_lvl50.txt1108
-rw-r--r--npc/pre-re/other/arena/arena_lvl60.txt1110
-rw-r--r--npc/pre-re/other/arena/arena_lvl70.txt1088
-rw-r--r--npc/pre-re/other/arena/arena_lvl80.txt1059
-rw-r--r--npc/pre-re/other/arena/arena_party.txt1462
-rw-r--r--npc/pre-re/other/arena/arena_point.txt181
-rw-r--r--npc/pre-re/other/arena/arena_room.txt1112
-rw-r--r--npc/pre-re/other/mercenary_rent.txt17
-rw-r--r--npc/pre-re/quests/collection/quest_alligator.txt242
-rw-r--r--npc/pre-re/quests/collection/quest_caramel.txt242
-rw-r--r--npc/pre-re/quests/collection/quest_coco.txt243
-rw-r--r--npc/pre-re/quests/collection/quest_creamy.txt248
-rw-r--r--npc/pre-re/quests/collection/quest_demonpungus.txt244
-rw-r--r--npc/pre-re/quests/collection/quest_disguiseloliruri.txt150
-rw-r--r--npc/pre-re/quests/collection/quest_dokebi.txt234
-rw-r--r--npc/pre-re/quests/collection/quest_dryad.txt242
-rw-r--r--npc/pre-re/quests/collection/quest_fabre.txt231
-rw-r--r--npc/pre-re/quests/collection/quest_frilldora.txt240
-rw-r--r--npc/pre-re/quests/collection/quest_goat.txt245
-rw-r--r--npc/pre-re/quests/collection/quest_golem.txt232
-rw-r--r--npc/pre-re/quests/collection/quest_hode.txt241
-rw-r--r--npc/pre-re/quests/collection/quest_leafcat.txt239
-rw-r--r--npc/pre-re/quests/collection/quest_mantis.txt101
-rw-r--r--npc/pre-re/quests/collection/quest_pecopeco.txt251
-rw-r--r--npc/pre-re/quests/collection/quest_pupa.txt233
-rw-r--r--npc/pre-re/quests/collection/quest_zhupolong.txt101
-rw-r--r--npc/pre-re/quests/mrsmile.txt16
-rw-r--r--npc/pre-re/quests/quests_izlude.txt15
-rw-r--r--npc/pre-re/quests/quests_lighthalzen.txt15
-rw-r--r--npc/pre-re/scripts_athena.conf81
-rw-r--r--npc/pre-re/scripts_jobs.conf14
-rw-r--r--npc/pre-re/scripts_main.conf44
-rw-r--r--npc/pre-re/scripts_monsters.conf70
-rw-r--r--npc/pre-re/scripts_warps.conf23
-rw-r--r--npc/pre-re/warps/cities/izlude.txt34
-rw-r--r--npc/pre-re/warps/cities/rachel.txt125
-rw-r--r--npc/pre-re/warps/cities/yggdrasil.txt25
-rw-r--r--npc/pre-re/warps/fields/com_fild.txt50
-rw-r--r--npc/pre-re/warps/fields/geffen_fild.txt72
-rw-r--r--npc/pre-re/warps/fields/hugel_fild.txt47
-rw-r--r--npc/pre-re/warps/fields/morroc_fild.txt119
-rw-r--r--npc/pre-re/warps/fields/payon_fild.txt49
-rw-r--r--npc/pre-re/warps/fields/prontera_fild.txt105
-rw-r--r--npc/pre-re/warps/fields/rachel_fild.txt47
-rw-r--r--npc/pre-re/warps/fields/veins_fild.txt49
-rw-r--r--npc/pre-re/warps/fields/yuno_fild.txt89
-rw-r--r--npc/pre-re/warps/other/arena.txt72
-rw-r--r--npc/pre-re/warps/other/sign.txt38
146 files changed, 31620 insertions, 0 deletions
diff --git a/npc/pre-re/airports/izlude.txt b/npc/pre-re/airports/izlude.txt
new file mode 100644
index 000000000..15d6b62d2
--- /dev/null
+++ b/npc/pre-re/airports/izlude.txt
@@ -0,0 +1,13 @@
+//===== rAthena Script =======================================
+//= Izlude Airport NPCs
+//===== By: ==================================================
+//= rAthena Dev Team
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= Izlude Airport NPCs
+//===== Additional Comments: =================================
+//= Official NPCs.
+//============================================================
+
+izlude,206,55,3 duplicate(Airship_Staff_izlude) Airship Staff#izlude 90
diff --git a/npc/pre-re/cities/alberta.txt b/npc/pre-re/cities/alberta.txt
new file mode 100644
index 000000000..f5408b611
--- /dev/null
+++ b/npc/pre-re/cities/alberta.txt
@@ -0,0 +1,42 @@
+//===== rAthena Script =======================================
+//= Alberta Town Pre-Renewal
+//===== By: ==================================================
+//= Euphy
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= Alberta town NPCs.
+//===== Additional Comments: =================================
+//= 1.0 First Version.
+//============================================================
+
+// cities/amatsu.txt
+//============================================================
+alberta,245,93,3 duplicate(Sea_Captain_amatsu) Sea Captain#ama1 709
+
+// cities/ayothaya.txt
+//============================================================
+alberta,247,42,3 duplicate(Aibakthing_ayothaya) Aibakthing#ayo 843
+
+// cities/gonryun.txt
+//============================================================
+alberta,245,69,3 duplicate(Kunlun_Envoy_gonryun) Kunlun Envoy#gon 776
+
+// cities/louyang.txt
+//============================================================
+alberta,245,45,3 duplicate(Girl_louyang) Girl#0lou 815
+
+// cities/moscovia.txt
+//============================================================
+alberta,245,66,4 duplicate(PR_Officer_moscovia) Moscovia P.R. Officer#1 960
+
+// quests/quests_alberta.txt
+//============================================================
+alberta,247,122,4 duplicate(Sailor_alberta) Sailor#tur 709
+alberta,248,89,4 duplicate(Turtle_Scholar_alberta) Turtle Island Scholar 121
+
+// quests/skills/merchant_skills.txt
+//============================================================
+alberta,232,106,6 duplicate(Gershaun_alberta) Gershaun 57
diff --git a/npc/pre-re/cities/izlude.txt b/npc/pre-re/cities/izlude.txt
new file mode 100644
index 000000000..0c304adaa
--- /dev/null
+++ b/npc/pre-re/cities/izlude.txt
@@ -0,0 +1,26 @@
+//===== rAthena Script =======================================
+//= Izlude Town Pre-Renewal
+//===== By: ==================================================
+//= Daegaladh
+//===== Current Version: =====================================
+//= 1.1
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= Izlude town NPCs.
+//===== Additional Comments: =================================
+//= 1.0 First Version.
+//= 1.1 Added bullet NPC duplicates. [Euphy]
+//============================================================
+
+izlude,201,181,2 duplicate(Sailor_izlude) Sailor#izlude 100
+izlude,55,74,2 duplicate(Bonne_izlude) Bonne#izlude 90
+izlude,135,78,2 duplicate(Charfri_izlude) Charfri#izlude 91
+izlude,119,121,2 duplicate(Cuskoal_izlude) Cuskoal#izlude 124
+izlude,150,118,2 duplicate(Dega_izlude) Dega#izlude 84
+izlude,150,143,2 duplicate(Kylick_izlude) Kylick#izlude 97
+izlude,56,126,2 duplicate(Red_izlude) Red#izlude 85
+izlude,58,126,2 duplicate(Cebalis_izlude) Cebalis#izlude 98
+izlude,124,178,2 duplicate(Soldier_izlude) Soldier#izlude 105
+izlude,171,133,3 duplicate(bdt) Bullet Dealer Tony#iz 86
+izlude,171,127,3 duplicate(mdk) Magazine Dealer Kenny 83
diff --git a/npc/pre-re/cities/jawaii.txt b/npc/pre-re/cities/jawaii.txt
new file mode 100644
index 000000000..1f2d0fb6a
--- /dev/null
+++ b/npc/pre-re/cities/jawaii.txt
@@ -0,0 +1,15 @@
+//===== rAthena Script =======================================
+//= Jawaii Town Pre-Renewal
+//===== By: ==================================================
+//= Daegaladh
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= Jawaii town NPCs.
+//===== Additional Comments: =================================
+//= 1.0 First Version.
+//============================================================
+
+izlude,171,185,3 duplicate(Honeymoon_Helper_Izlude) Honeymoon Helper#Izlude 71
diff --git a/npc/pre-re/guides/guides_alberta.txt b/npc/pre-re/guides/guides_alberta.txt
new file mode 100644
index 000000000..c08894f52
--- /dev/null
+++ b/npc/pre-re/guides/guides_alberta.txt
@@ -0,0 +1,159 @@
+//===== rAthena Script =======================================
+//= Alberta Guides
+//===== By: ==================================================
+//= kobra_k88; L0ne_W0lf
+//===== Current Version: =====================================
+//= 1.5a
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Official Conversion]
+//= Guides for the city of Alberta
+//===== Additional Comments: =================================
+//= Fully working
+//= 1.1 Fixed Armory coords, thanks to Freya team
+//= 1.2 Optimized, updated common guide names [Lupus]
+//= 1.3 Updated the guide according to how it is on iRO, thanks [MasterOfMuppets]
+//= to Muad_Dib
+//= 1.4 Fitted the many lines into 1 or 2, and corrected some typos [erKURITA]
+//= 1.5 Rescripted to official 10.3 standards. [L0ne_W0lf]
+//= 1.5 Fixed some errors with the loop[Samuray22]
+// -Thanks to $ephiroth.
+//============================================================
+
+alberta,23,238,4 script Guide#alb::AlbGuide 105,{
+ cutin "prt_soldier",2;
+ mes "[Alberta Guide]";
+ mes "Welcome to Alberta,";
+ mes "the Port City. Feel free";
+ mes "to ask me if you're having";
+ mes "trouble finding anything in";
+ mes "town, or if you just need";
+ mes "guidance around the city.";
+ set .@loop1,1;
+ while (.@loop1) {
+ next;
+ switch(select("City Guide:Remove Marks from Mini-Map:Notice:Cancel")) {
+ case 1:
+ mes "[Alberta Guide]";
+ mes "Please select";
+ mes "a location from";
+ mes "the following menu.";
+ if (.@compass_check == 0) {
+ mes "Would you like me";
+ mes "to mark locations";
+ mes "on your Mini-Map?";
+ next;
+ if (select("Yes:No") == 1) set .@compass_check,1;
+ }
+ set .@loop2,1;
+ while (.@loop2) {
+ if (.@wait_button_chk == 0) set .@wait_button_chk,1;
+ else next;
+
+ switch(select("^FF0000Merchant Guild^000000:Weapon Shop:Tool Shop:Inn:Forge:Cancel")) {
+ case 1:
+ mes "[Alberta Guide]";
+ mes "The Merchant Guild";
+ mes "handles Job Changes";
+ mes "to the Merchant Class,";
+ mes "and is located in the";
+ mes "southwest corner";
+ mes "of Alberta.";
+ if (.@compass_check)
+ viewpoint 1,33,41,2,0xFF0000;
+ break;
+ case 2:
+ mes "[Alberta Guide]";
+ mes "The Weapon Shop";
+ mes "can be found in the";
+ mes "southern end of Alberta.";
+ if (.@compass_check)
+ viewpoint 1,117,37,3,0xFF00FF;
+ break;
+ case 3:
+ mes "[Alberta Guide]";
+ mes "The Tool Shop";
+ mes "is kind of close";
+ mes "to the center of";
+ mes "Alberta. It shouldn't";
+ mes "be too hard to find.";
+ if (.@compass_check)
+ viewpoint 1,98,154,4,0xFF00FF;
+ break;
+ case 4:
+ mes "[Alberta Guide]";
+ mes "There's an Inn";
+ mes "at the northern";
+ mes "end of Alberta";
+ mes "where you can rest.";
+ if (.@compass_check)
+ viewpoint 1,65,233,5,0xFF00FF;
+ break;
+ case 5:
+ mes "[Alberta Guide]";
+ mes "The Forge in Alberta";
+ mes "is in the same building";
+ mes "as the Merchant Guild.";
+ mes "It's to the southwest.";
+ if (.@compass_check)
+ viewpoint 1,35,41,6,0xFF00FF;
+ break;
+ case 6:
+ mes "[Alberta Guide]";
+ mes "Please ask me to ''Remove";
+ mes "Marks from Mini-Map'' if you";
+ mes "no longer wish to have the";
+ mes "location marks displayed";
+ mes "on your Mini-Map.";
+ set .@loop2,0;
+ }
+ }
+ break;
+ case 2:
+ viewpoint 2,237,41,2,0xFF0000;
+ viewpoint 2,237,41,3,0xFF00FF;
+ viewpoint 2,46,345,4,0xFF00FF;
+ viewpoint 2,175,220,5,0xFF00FF;
+ viewpoint 2,175,220,6,0xFF00FF;
+ set .@compass_check,0;
+ break;
+ case 3:
+ mes "[Alberta Guide]";
+ mes "Advances in sorcery and";
+ mes "technology have allowed";
+ mes "us to update our information";
+ mes "system, enabling up to mark";
+ mes "locations on your Mini-Map";
+ mes "for easier navigation.";
+ next;
+ mes "[Alberta Guide]";
+ mes "Your Mini-Map is located";
+ mes "in the upper right corner";
+ mes "of the screen. If you can't";
+ mes "see it, press the Ctrl + Tab";
+ mes "keys or click the ''Map'' button in your Basic Info Window.";
+ next;
+ mes "[Alberta Guide]";
+ mes "On your Mini-Map,";
+ mes "click on the ''+'' and ''-''";
+ mes "symbols to zoom in and";
+ mes "our of your Mini-Map. We";
+ mes "hope you enjoy your travels";
+ mes "here in the city of Alberta.";
+ break;
+ case 4:
+ mes "[Alberta Guide]";
+ mes "Be safe when you";
+ mes "travel and don't hesitate";
+ mes "to ask me if you have any";
+ mes "questions about Alberta.";
+ close2;
+ set .@loop1,0;
+ }
+ }
+ cutin "prt_soldier",255;
+ end;
+}
+
+alberta,120,60,3 duplicate(AlbGuide) Guide#2alb 105 \ No newline at end of file
diff --git a/npc/pre-re/guides/guides_aldebaran.txt b/npc/pre-re/guides/guides_aldebaran.txt
new file mode 100644
index 000000000..ba8fd1636
--- /dev/null
+++ b/npc/pre-re/guides/guides_aldebaran.txt
@@ -0,0 +1,109 @@
+//===== rAthena Script =======================================
+//= Al De Baran Guides
+//===== By: ==================================================
+//= kobra_k88; L0ne_W0lf
+//===== Current Version: =====================================
+//= 1.7
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Official conversion]
+//= Guides for the City of Al De Baran
+//===== Additional Comments: =================================
+//= Corrected building locations and descriptions
+//= 1.2 Optimized, updated common guide names [Lupus]
+//= 1.3 Updated the guide according to how it is on iRO, thanks [MasterOfMuppets]
+//= to Muad_Dib
+//= 1.4 Fitted the many lines into 1 or 2, and corrected some typos [erKURITA]
+//= 1.5 Removed Duplicates [Silent]
+//= 1.6 Rescripted to official 10.3 standards. [L0ne_W0lf]
+//= 1.6a Changed some "close"s to "close2"s. (bugreport:1597) [Samuray22]
+//= 1.7 Fixed viewpoint coordinates [Playtester]
+//============================================================
+
+aldebaran,139,63,4 script Soldier#alde 105,{
+ cutin "prt_soldier",2;
+ mes "[Al De Baran Guard]";
+ mes "I'm just an ordinary guard";
+ mes "that you could find in any other city. I don't think I even have a name...";
+ next;
+ mes "[Al De Baran Guard]";
+ mes "I am in charge of the Service Guides from the Al De Baran Garrison. Let me guide you";
+ mes "through our town!";
+ next;
+ if (select("Get Location Guide.:End conversation.") == 1) {
+ viewpoint 1,61,229,0,0xFF6633;
+ viewpoint 1,72,197,1,0x0000FF;
+ viewpoint 1,223,222,2,0x00FFFF;
+ viewpoint 1,233,105,3,0x515151;
+ viewpoint 1,197,70,4,0x3355FF;
+ viewpoint 1,60,60,5,0xFF5555;
+ mes "^FF6633+^000000 -> Kafra Main Office ";
+ mes "^0000FF+^000000 -> Weapon Shop ";
+ mes "^00FFFF+^000000 -> Sorcerer Guild (Closed)";
+ mes "^515151+^000000 -> Pub";
+ mes "^3355FF+^000000 -> Item Shop";
+ mes "^FF5555+^000000 -> Alchemist Guild";
+ close2;
+ cutin "prt_soldier",255;
+ end;
+ }
+ mes "[Al De Baran Guard]";
+ mes "We are sworn to protect Al De Baran! May the forces of evil always be crushed by the";
+ mes "righteous fist of good!";
+ close2;
+ cutin "prt_soldier",255;
+ end;
+}
+
+aldebaran,133,108,4 script Soldier#2alde 105,{
+ cutin "prt_soldier",2;
+ mes "[Al De Baran Guard]";
+ mes "I'm just an";
+ mes "ordinary guard,";
+ mes "the kind you can";
+ mes "find in any other city.";
+ next;
+ mes "[Al De Baran Guard]";
+ mes "When I'm not too busy";
+ mes "protecting the Al De Baran";
+ mes "populace, I'm here giving directions to adventurers";
+ mes "like yourself.";
+ next;
+ switch(select("Kafra Main Office :Weapon Shop :Sorcerer Guild :Pub :Item Shop :Alchemist Guild :End Conversation ")) {
+ case 1:
+ viewpoint 1,61,229,0,0xFF6633;
+ mes "^FF6633+^000000 -> Kafra Main Office ";
+ break;
+ case 2:
+ viewpoint 1,72,197,1,0x0000FF;
+ mes "^0000FF+^000000 -> Weapon Shop ";
+ break;
+ case 3:
+ viewpoint 1,223,222,2,0x00FFFF;
+ mes "^00FFFF+^000000 -> Sorcerer Guild (Closed)";
+ break;
+ case 4:
+ viewpoint 1,233,105,3,0x515151;
+ mes "^515151+^000000 -> Pub ";
+ break;
+ case 5:
+ viewpoint 1,197,70,4,0x3355FF;
+ mes "^3355FF+^000000 -> Item Shop ";
+ break;
+ case 6:
+ viewpoint 1,60,60,5,0xFF5555;
+ mes "^FF5555+^000000 -> Alchemist Guild";
+ break;
+ case 7:
+ mes "[Al De Baran Guard]";
+ mes "We are sworn to";
+ mes "protect Al De Baran!";
+ mes "May the forces of good";
+ mes "always prevail over evil~";
+ break;
+ }
+ close2;
+ cutin "prt_soldier",255;
+ end;
+}
diff --git a/npc/pre-re/guides/guides_amatsu.txt b/npc/pre-re/guides/guides_amatsu.txt
new file mode 100644
index 000000000..100eb9c6a
--- /dev/null
+++ b/npc/pre-re/guides/guides_amatsu.txt
@@ -0,0 +1,119 @@
+//===== rAthena Script =======================================
+//= Amatsu Guides
+//===== By: ==================================================
+//= MasterOfMuppets; L0ne_W0lf
+//===== Current Version: =====================================
+//= 1.3
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Official Conversion]
+//= Guides for the City of Amatsu
+//===== Additional Comments: =================================
+//= 1.0 First version [MasterOfMuppets]
+//= 1.1 Removed Duplicates [Silent]
+//= 1.3 Rescripted to official 10.3 standards. [L0ne_W0lf]
+//============================================================
+
+amatsu,207,89,3 script Amatsu Guide#ama 758,{
+ mes "[Amachang]";
+ mes "Welcome to Amatsu,";
+ mes "the town of kind towners";
+ mes "and beautiful cherry blossoms.";
+ next;
+ mes "[Amachang]";
+ mes "I'm Amachang,";
+ mes "the 13th Miss Amatsu.";
+ mes "I will guide you about town";
+ mes "as Miss Amatsu.";
+ mes "Please tell me";
+ mes "if you want to know something.";
+ next;
+ switch(select("Palace:Tool Shop:Weapon Shop:Bar")) {
+ case 1:
+ viewpoint 1,85,235,0,0xFF3355;
+ mes "[Amachang]";
+ mes "On the mini-map,";
+ mes "go to ^FF3355+^000000";
+ mes "to find the Palace.";
+ mes "Have a good time";
+ mes "in Amatsu.";
+ close;
+ case 2:
+ viewpoint 1,96,118,1,0xCE6300;
+ mes "[Amachang]";
+ mes "On the mini-map,";
+ mes "go to ^CE6300+^000000";
+ mes "to find the Tool Shop.";
+ mes "Have a good time";
+ mes "in Amatsu.";
+ close;
+ case 3:
+ viewpoint 1,132,117,2,0x55FF33;
+ mes "[Amachang]";
+ mes "On the mini-map,";
+ mes "go to ^55FF33+^000000";
+ mes "to find the Weapon Shop.";
+ mes "Have a good time";
+ mes "in Amatsu.";
+ close;
+ case 4:
+ viewpoint 1,217,116,3,0x3355FF;
+ mes "[Amachang]";
+ mes "On the mini-map,";
+ mes "go to ^3355FF+^000000";
+ mes "to find the Bar.";
+ mes "Have a good time";
+ mes "in Amatsu.";
+ close;
+ }
+}
+
+amatsu,251,283,4 script Guide Man#2ama 767,{
+ mes "[Guide Man]";
+ mes "Welcome, tourist from Rune-Midgard.";
+ mes "I'm the guide of";
+ mes "our beautiful town, Amatsu.";
+ next;
+ mes "[Guide Man]";
+ mes "What are you looking for?";
+ next;
+ switch(select("Palace:Tool Shop:Weapon Shop:Bar")) {
+ case 1:
+ viewpoint 1,85,235,0,0xFF3355;
+ mes "[Guide Man]";
+ mes "On the mini-map,";
+ mes "go to ^FF3355+^000000";
+ mes "to find the Palace.";
+ mes "Have a good time";
+ mes "in Amatsu.";
+ close;
+ case 2:
+ viewpoint 1,96,118,1,0xCE6300;
+ mes "[Guide Man]";
+ mes "On the mini-map,";
+ mes "go to ^CE6300+^000000";
+ mes "to find the Tool Shop.";
+ mes "Have a good time";
+ mes "in Amatsu.";
+ close;
+ case 3:
+ viewpoint 1,132,117,2,0x55FF33;
+ mes "[Guide Man]";
+ mes "On the mini-map,";
+ mes "go to ^55FF33+^000000";
+ mes "to find the Weapon Shop.";
+ mes "Have a good time";
+ mes "in Amatsu.";
+ close;
+ case 4:
+ viewpoint 1,217,116,3,0x3355FF;
+ mes "[Guide Man]";
+ mes "On the mini-map,";
+ mes "go to ^3355FF+^000000";
+ mes "to find the Bar.";
+ mes "Have a good time";
+ mes "in Amatsu.";
+ close;
+ }
+}
diff --git a/npc/pre-re/guides/guides_ayothaya.txt b/npc/pre-re/guides/guides_ayothaya.txt
new file mode 100644
index 000000000..d153cf8d3
--- /dev/null
+++ b/npc/pre-re/guides/guides_ayothaya.txt
@@ -0,0 +1,111 @@
+//===== rAthena Script =======================================
+//= Ayothaya Guides
+//===== By: ==================================================
+//= MasterOfMuppets
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Official Conversion]
+//= Guides for the City of Ayotaya
+//===== Additional Comments: =================================
+//= 1.0 First version [L0ne_W0lf]
+//============================================================
+
+ayothaya,203,169,3 script Noi#ayo 839,{
+ mes "[Noi]";
+ mes "Welcome to Ayotaya.";
+ mes "Our beautiful village is built";
+ mes "above the water, surrounded";
+ mes "by a dense forest.";
+ next;
+ mes "[Noi]";
+ mes "There are many tourist attractions in this village that you won't be able to find anywhere else. Our fish markets and the the unique architecture of our buildings is enough reason to visit Ayotaya.";
+ next;
+ mes "[Noi]";
+ mes "Please feel free";
+ mes "to take a look around.";
+ next;
+ switch(select("Building Locations.:Remove marks from mini-map.:Cancel.")) {
+ case 1:
+ mes "[Noi]";
+ mes "Where would";
+ mes "you like to visit?";
+ next;
+ switch(select("Weapon Shop:Tool Shop:Tavern:Shrine:Fishing Spot:Cancel")) {
+ case 1:
+ mes "[Noi]";
+ mes "At our Weapon Shop,";
+ mes "you will find great weapons";
+ mes "favored by brave Ayotayan seafarers.";
+ next;
+ mes "[Noi]";
+ mes "Our Weapon Shop";
+ mes "is located at ^55FF33+^000000.";
+ viewpoint 1,165,90,2,0x55FF33;
+ close;
+ case 2:
+ mes "[Noi]";
+ mes "We Ayotayans always make sure we have everything we need before we go traveling. It never hurts to be prepared, doesn't it?";
+ next;
+ mes "[Noi]";
+ mes "Our Tool Shop";
+ mes "is located at ^3355FF+^000000.";
+ viewpoint 1,129,86,3,0x3355FF;
+ close;
+ case 3:
+ mes "[Noi]";
+ mes "One of the basics of adventuring is gathering information, or at least that's what they say. You can meet people from all sorts of places in the Tavern. I'm sure you can learn something useful there.";
+ next;
+ mes "[Noi]";
+ mes "Of course, you must";
+ mes "drop by our Tavern.";
+ mes "It is located at ^00FF00+^000000.";
+ viewpoint 1,232,76,4,0x00FF00;
+ close;
+ case 4:
+ mes "[Noi]";
+ mes "If you wish to pray to God, or achieve a state of peace in your mind, why don't you visit our Shrine? Even if it's just for sight-seeing, everyone is";
+ mes "welcome there.";
+ next;
+ mes "[Noi]";
+ mes "Our Shrine";
+ mes "is located at ^00FF00+^000000.";
+ viewpoint 1,208,283,5,0x00FF00;
+ close;
+ case 5:
+ mes "[Noi]";
+ mes "Since Ayothaya was built above the surface of the water and close to a beach, it's been a favorite spot for fishermen. Why don't you catch some fish for dinner at the Fishing Spot?";
+ next;
+ mes "[Noi]";
+ mes "Our famous";
+ mes "Fishing Spot";
+ mes "is located at ^00FF00+^000000";
+ viewpoint 1,253,99,6,0x00FF00;
+ close;
+ case 6:
+ mes "[Noi]";
+ mes "If you wish to remove location marks on your mini-map, please select the 'Remove marks from mini-map' command from the menu.";
+ close;
+ }
+ case 2:
+ viewpoint 2,165,90,2,0x55FF33;
+ viewpoint 2,129,86,3,0x3355FF;
+ viewpoint 2,232,76,4,0x00FF00;
+ viewpoint 2,208,283,5,0x00FF00;
+ viewpoint 2,253,99,6,0x00FF00;
+ mes "[Noi]";
+ mes "Alright...";
+ mes "I've removed all the";
+ mes "location marks from";
+ mes "your mini-map.";
+ mes "Thank you.";
+ close;
+ case 3:
+ mes "[Noi]";
+ mes "Please enjoy";
+ mes "your travels.";
+ close;
+ }
+}
diff --git a/npc/pre-re/guides/guides_comodo.txt b/npc/pre-re/guides/guides_comodo.txt
new file mode 100644
index 000000000..2cebf8740
--- /dev/null
+++ b/npc/pre-re/guides/guides_comodo.txt
@@ -0,0 +1,127 @@
+//===== rAthena Script =======================================
+//= Comodo Guides
+//===== By: ==================================================
+//= kobra_k88; L0ne_W0lf
+//===== Current Version: =====================================
+//= 1.5
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Official Conversion]
+//= Guides for the City of Comodo
+//===== Additional Comments: =================================
+//= Fully working v1.1 Now using duplicate command.
+//= 1.2 Optimized, updated common guide names [Lupus]
+//= 1.3 Updated the guide according to how it is on iRO, thanks
+//= to Muad_Dib [MasterOfMuppets]
+//= 1.4 Removed 3 guides, and converted to use functions.
+//= 1.5 Rescripted to official 10.3 standards. [L0ne_W0lf]
+//============================================================
+
+comodo,322,178,4 script Comodo Guide#cmd::CmdGuide 700,{
+ callfunc "F_CmdGuide","Native Kokomo";
+}
+
+comodo,176,350,4 script Comodo Guide#2cmd 700,{
+ callfunc "F_CmdGuide","Native Nutcoco";
+}
+
+comodo,37,219,4 script Guide#2cmd 700,{
+ callfunc "F_CmdGuide","Native Papaya";
+}
+
+function script F_CmdGuide {
+ mes "["+getarg(0)+"]";
+ mes "Welcome to Comodo, the";
+ mes "city of dreams and fantasy,";
+ mes "where the nightlife never ends!";
+ mes "I know this area really well,";
+ mes "so let me know if you need";
+ mes "directions anywhere here.";
+ next;
+ switch(select("Casino:Hula Dance Stage ^3355FF(Dancer Job Change)^000000:Weapon and Armor Shop:Tool Shop:Tourist Shop:Kafra Co. Western Branch:Chief's House:Pub:Campground:End Conversation")) {
+ case 1:
+ viewpoint 1,140,98,0,0xFF6633;
+ mes "Please refer to the cross mark,";
+ mes "^FF6633+^000000, on your Mini-Map to find the";
+ mes "Casino, a haven for rest for";
+ mes "weary travlers and the heart";
+ mes "of Comodo's nightlife.";
+ close;
+ case 2:
+ viewpoint 1,188,168,1,0x0000FF;
+ mes "Please refer to the cross mark,";
+ mes "^0000FF+^000000, on your Mini-Map to find the";
+ mes "Hula Dance Stage, the place";
+ mes "where female Archers can";
+ mes "change jobs to Dancers.";
+ close;
+ case 3:
+ viewpoint 1,266,70,2,0x00FFFF;
+ mes "Please refer to the cross mark,";
+ mes "^00FFFF+^000000, on your Mini-Map to find the";
+ mes "Weapon and Armor shop. Be";
+ mes "sure to check that shop for";
+ mes "any special items that are";
+ mes "unique to Comodo!";
+ close;
+ case 4:
+ viewpoint 1,86,128,3,0x515151;
+ mes "Please refer to the cross mark,";
+ mes "^515151+^000000, on your Mini-Map to find the";
+ mes "Tool Shop. If you've never been";
+ mes "there before, then I suggest";
+ mes "you check it out and stock up";
+ mes "on tools you might need later.";
+ close;
+ case 5:
+ viewpoint 1,298,124,4,0x3355FF;
+ mes "Please refer to the cross mark,";
+ mes "^3355FF+^000000, on your Mini-Map to find the";
+ mes "Tourist Shop where you can ";
+ mes "buy gifts that can only be found^FFFFFF ^000000 in the Comodo region~";
+ close;
+ case 6:
+ viewpoint 1,136,202,5,0xFF5555;
+ mes "Please refer to the cross mark,";
+ mes "^FF5555+^000000, on your Mini-Map to find the";
+ mes "Western branch of the Kafra";
+ mes "Corporation. They offer some";
+ mes "pretty important services that^FFFFFF ^000000 you may want to check out later.";
+ close;
+ case 7:
+ viewpoint 1,114,294,5,0xFF5555;
+ mes "Please refer to the cross mark,";
+ mes "^FF5555+^000000, on your Mini-Map to find the";
+ mes "Chief's House. You're welcome";
+ mes "to visit him, and he's usually";
+ mes "happy to have visitors.";
+ close;
+ case 8:
+ viewpoint 1,166,298,5,0xFF5555;
+ mes "Please refer to the cross mark,";
+ mes "^FF5555+^000000, on your Mini-Map to find the";
+ mes "Pub. There, you can meet other";
+ mes "tourists, relax, and socialize";
+ mes "in an enjoyable environment~";
+ close;
+ case 9:
+ viewpoint 1,210,308,5,0xFF5555;
+ mes "Please refer to the cross mark,";
+ mes "^FF5555+^000000, on your Mini-Map to find the";
+ mes "Campground. Gather with your";
+ mes "family and friends, and enjoy";
+ mes "the special barbeque of";
+ mes "Comodo's camping grounds~";
+ close;
+ case 10:
+ mes "["+getarg(0)+"]";
+ mes "Actually, it always looks";
+ mes "like nighttime in Comodo";
+ mes "because it's built in a huge";
+ mes "cave. We don't get any sunlight";
+ mes "here, but the darkness here is";
+ mes "more exciting than gloomy~";
+ close;
+ }
+}
diff --git a/npc/pre-re/guides/guides_einbroch.txt b/npc/pre-re/guides/guides_einbroch.txt
new file mode 100644
index 000000000..c73b37b74
--- /dev/null
+++ b/npc/pre-re/guides/guides_einbroch.txt
@@ -0,0 +1,351 @@
+//===== rAthena Script =======================================
+//= Einbroch Guides
+//===== By: ==================================================
+//= Muad_dib; L0ne_W0lf
+//===== Current Version: =====================================
+//= 1.5
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Official Conversion]
+//= Guides for the City of Einbroch
+//===== Additional Comments: =================================
+//= 1.0b missing tabs, fixed Guide coords [Lupus]
+//= 1.1 added 1 more Guide NPC, thanx to Justin84 [Lupus]
+//= 1.2 Optimized, updated common guide names [Lupus]
+//= 1.3 Fitted the many lines into 1 or 2, and corrected some typos [erKURITA]
+//= 1.4 Removed Duplicates [Silent]
+//= 1.5 Rescripted to official 10.3 standards. [L0ne_W0lf]
+//============================================================
+
+einbroch,72,202,4 script Guide#ein::EinGuide 852,{
+ cutin "ein_soldier",2;
+ mes "[Einbroch Guide]";
+ mes "Welcome";
+ mes "to Einbroch,";
+ mes "the City of Steel.";
+ mes "Please ask me if you";
+ mes "have any questions.";
+ set .@loop1,1;
+ while (.@loop1) {
+ next;
+ switch(select("City Guide.:Remove Marks from Mini-Map.:Notice.:Cancel.")) {
+ case 1:
+ mes "[Einbroch Guide]";
+ mes "Please select";
+ mes "a location from";
+ mes "the following menu.";
+ if (.@compass_check == 0) {
+ mes "Would you like me";
+ mes "to mark locations";
+ mes "on your Mini-Map?";
+ next;
+ if (select("Yes.:No.") == 1) set .@compass_check,1;
+ }
+ set .@loop2,1;
+ while(.@loop2) {
+ if (.@wait_button_chk == 0) set .@wait_button_chk,1;
+ else next;
+ switch(select("^FF0000Airport^000000:Train Station:Factory:Plaza:Hotel:Weapon Shop:Laboratory:Blacksmith Guild:Einbroch Tower:Cancel")) {
+ case 1:
+ mes "[Einbroch Guide]";
+ mes "The ^FF0000Airport^000000 is located";
+ mes "in the northwestern part";
+ mes "of the city. There you can";
+ mes "see our city's pride and joy, the Airship. Remember that you must pay admission to board the Airship.";
+ if (.@compass_check)
+ viewpoint 1,63,228,2,0xFF0000;
+ break;
+ case 2:
+ mes "[Einbroch Guide]";
+ mes "The Train Station is";
+ mes "located in the northeast";
+ mes "part of Einbroch. Trains";
+ mes "running between here";
+ mes "and Einbech run all day";
+ mes "long, everyday.";
+ if (.@compass_check)
+ viewpoint 1,236,279,3,0xFF00FF;
+ break;
+ case 3:
+ mes "[Einbroch Guide]";
+ mes "The Factory, perhaps the";
+ mes "most important facility in";
+ mes "Einbroch, is located in the";
+ mes "southern part of the city.";
+ if (.@compass_check)
+ viewpoint 1,158,78,4,0xFF00FF;
+ break;
+ case 4:
+ mes "[Einbroch Guide]";
+ mes "The Plaza, our biggest";
+ mes "shopping district, can be";
+ mes "found just east from the";
+ mes "center of Einbroch.";
+ if (.@compass_check)
+ viewpoint 1,232,190,5,0xFF00FF;
+ break;
+ case 5:
+ mes "[Einbroch Guide]";
+ mes "The Hotel is east of";
+ mes "the Plaza and offers top";
+ mes "caliber accomodations.";
+ mes "There, you can enjoy your";
+ mes "stay in Einbroch in comfort~";
+ if (.@compass_check)
+ viewpoint 1,260,201,6,0x00FF00;
+ break;
+ case 6:
+ mes "[Einbroch Guide]";
+ mes "The Weapon Shop is";
+ mes "located north from the";
+ mes "Plaza. There you can";
+ mes "purchase weapons for";
+ mes "your personal use.";
+ if (.@compass_check)
+ viewpoint 1,215,221,7,0x00FF00;
+ break;
+ case 7:
+ mes "[Einbroch Guide]";
+ mes "The Laboratory is an";
+ mes "annex of the Factory and";
+ mes "is located in the southwest";
+ mes "sector of Einbroch.";
+ if (.@compass_check)
+ viewpoint 1,36,49,8,0x00FF;
+ break;
+ case 8:
+ mes "[Einbroch Guide]";
+ mes "The Blacksmith Guild is";
+ mes "located in the southeast";
+ mes "part of Einbroch. You can";
+ mes "upgrade your equipment";
+ mes "by using their services.";
+ if (.@compass_check)
+ viewpoint 1,244,90,9,0x00FF00;
+ break;
+ case 9:
+ mes "[Einbroch Guide]";
+ mes "The Einbroch Tower is";
+ mes "located in the center of";
+ mes "the city. From the top of";
+ mes "the tower, you can view";
+ mes "all of Einbroch.";
+ if (.@compass_check)
+ viewpoint 1,174,195,10,0xFFFF00;
+ break;
+ case 10:
+ mes "[Einbroch Guide]";
+ mes "Please ask me to ''Remove";
+ mes "Marks from Mini-Map'' if you";
+ mes "no longer wish to have the";
+ mes "location marks displayed";
+ mes "on your Mini-Map.";
+ set .@loop2,0;
+ }
+ }
+ break;
+ case 2:
+ viewpoint 2,63,228,2,0xFF0000;
+ viewpoint 2,236,279,3,0xFF00FF;
+ viewpoint 2,158,78,4,0xFF00FF;
+ viewpoint 2,232,190,5,0xFF00FF;
+ viewpoint 2,260,201,6,0x00FF00;
+ viewpoint 2,215,221,7,0x00FF00;
+ viewpoint 2,36,49,8,0x00FF00;
+ viewpoint 2,244,90,9,0x00FF00;
+ viewpoint 2,174,195,10,0xFFFF00;
+ set .@compass_check,0;
+ mes "[Einbroch Guide]";
+ mes "Okay, the marks from";
+ mes "your Mini-Map have been";
+ mes "removed. If you need any";
+ mes "guidance around Einbroch,";
+ mes "please let me or one of the";
+ mes "other Einbroch Guides know.";
+ break;
+ case 3:
+ mes "[Einbroch Guide]";
+ mes "Through the technology of";
+ mes "the Schwaltzvalt Republic,";
+ mes "we've upgraded to a digital";
+ mes "information system that allows";
+ mes "us to mark locations on your";
+ mes "Mini-Map for easier navigation.";
+ next;
+ mes "[Einbroch Guide]";
+ mes "Your Mini-Map is located";
+ mes "in the upper right corner";
+ mes "of the screen. If you can't";
+ mes "see it, press the Ctrl + Tab";
+ mes "keys or click the ''Map'' button in your Basic Info Window.";
+ next;
+ mes "[Einbroch Guide]";
+ mes "On your Mini-Map,";
+ mes "click on the ''+'' and ''-''";
+ mes "symbols to zoom in and";
+ mes "our of your Mini-Map. We";
+ mes "hope you enjoy your travels";
+ mes "here in Einbroch, adventurer.";
+ break;
+ case 4:
+ mes "[Einbroch Guide]";
+ mes "We hope that you";
+ mes "enjoy your travels";
+ mes "here in Einbroch.";
+ mes "Oh, and please be";
+ mes "aware of the Smog Alerts.";
+ close2;
+ set .@loop1,0;
+ }
+ }
+ cutin "ein_soldier",255;
+ end;
+}
+
+einbroch,155,43,4 duplicate(EinGuide) Guide#2ein 852
+einbroch,162,317,4 duplicate(EinGuide) Guide#3ein 852
+
+einbech,67,37,4 script Guide#4ein::EinGuide2 852,{
+ cutin "ein_soldier",2;
+ mes "[Einbech Guide]";
+ mes "Welcome to Einbech,";
+ mes "the Mining Town. We're";
+ mes "here to assist tourists,";
+ mes "so if you have any questions,";
+ mes "please feel free to ask us.";
+ set .@loop1,1;
+ while (.@loop1) {
+ next;
+ switch(select("City Guide.:Remove Marks from Mini-Map.:Notice.:Cancel.")) {
+ case 1:
+ mes "[Einbech Guide]";
+ mes "Please select";
+ mes "a location from";
+ mes "the following menu.";
+ if (.@compass_check == 0) {
+ mes "Would you like me";
+ mes "to mark locations";
+ mes "on your Mini-Map?";
+ next;
+ if (select("Yes.:No.") == 1) set .@compass_check,1;
+ }
+ set .@loop2,1;
+ while (.@loop2) {
+ if (.@wait_button_chk == 0) set .@wait_button_chk,1;
+ else next;
+ switch(select("Train Station:Tavern:Tool Shop:Swordman Guild:Mine:Cancel")) {
+ case 1:
+ mes "[Einbech Guide]";
+ mes "The Train Stations are";
+ mes "located in the northwest";
+ mes "and northeast parts of";
+ mes "Einbech. There, you can";
+ mes "take a train to Einbroch.";
+ if (.@compass_check)
+ viewpoint 1,43,213,2,0xFF0000;
+ break;
+ case 2:
+ mes "[Einbech Guide]";
+ mes "The Tavern is located";
+ mes "in the southern part of";
+ mes "Einbech. It's a nice place";
+ mes "to relax after a long day.";
+ if (.@compass_check)
+ viewpoint 1,142,112,3,0xFF00FF;
+ break;
+ case 3:
+ mes "[Einbech Guide]";
+ mes "You can find the Tool";
+ mes "Shop in the center of";
+ mes "Einbech. There, you can";
+ mes "purchase any tools you";
+ mes "might need for your travels.";
+ if (.@compass_check)
+ viewpoint 1,176,136,4,0xFF00FF;
+ break;
+ case 4:
+ mes "[Einbech Guide]";
+ mes "The Swordman Guild";
+ mes "is located in the eastern";
+ mes "outskirts of Einbech. It's";
+ mes "under construction and they";
+ mes "haven't started accepting";
+ mes "applications.";
+ if (.@compass_check)
+ viewpoint 1,250,110,5,0xFF00FF;
+ break;
+ case 5:
+ mes "[Einbech Guide]";
+ mes "The Mine, which is";
+ mes "Einbech's major industry,";
+ mes "is located in the northern";
+ mes "part of this town. It's where";
+ mes "we get all our ores, although monsters get in the miners' way.";
+ if (.@compass_check)
+ viewpoint 1,138,251,6,0x00FF00;
+ break;
+ case 6:
+ mes "[Einbech Guide]";
+ mes "Please ask me to ''Remove";
+ mes "Marks from Mini-Map'' if you";
+ mes "no longer wish to have the";
+ mes "location marks displayed";
+ mes "on your Mini-Map.";
+ set .@loop2,0;
+ }
+ }
+ break;
+ case 2:
+ viewpoint 2,43,213,2,0xFF0000;
+ viewpoint 2,142,112,3,0xFF00FF;
+ viewpoint 2,176,136,4,0xFF00FF;
+ viewpoint 2,250,110,5,0xFF00FF;
+ viewpoint 2,138,251,6,0x00FF00;
+ set .@compass_check,0;
+ mes "[Einbech Guide]";
+ mes "Okay, the marks from";
+ mes "your Mini-Map have been";
+ mes "removed. If you need any";
+ mes "guidance around Einbech,";
+ mes "please let me or one of the";
+ mes "other Einbech Guides know.";
+ break;
+ case 3:
+ mes "[Einbech Guide]";
+ mes "Through the technology of";
+ mes "the Schwaltzvalt Republic,";
+ mes "we've upgraded to a digital";
+ mes "information system that allows";
+ mes "us to mark locations on your";
+ mes "Mini-Map for easier navigation.";
+ next;
+ mes "[Einbech Guide]";
+ mes "Your Mini-Map is located";
+ mes "in the upper right corner";
+ mes "of the screen. If you can't";
+ mes "see it, press the Ctrl + Tab";
+ mes "keys or click the ''Map'' button in your Basic Info Window.";
+ next;
+ mes "[Einbech Guide]";
+ mes "On your Mini-Map,";
+ mes "click on the ''+'' and ''-''";
+ mes "symbols to zoom in and";
+ mes "our of your Mini-Map. We";
+ mes "hope you enjoy your travels";
+ mes "here in Einbech, adventurer.";
+ break;
+ case 4:
+ mes "[Einbech Guide]";
+ mes "We hope that you";
+ mes "enjoy your travels";
+ mes "here in Einbech.";
+ close2;
+ set .@loop1,0;
+ }
+ }
+ cutin "ein_soldier",255;
+ end;
+}
+
+einbech,48,214,4 duplicate(EinGuide2) Guide#5ein 852
diff --git a/npc/pre-re/guides/guides_geffen.txt b/npc/pre-re/guides/guides_geffen.txt
new file mode 100644
index 000000000..28e7232c4
--- /dev/null
+++ b/npc/pre-re/guides/guides_geffen.txt
@@ -0,0 +1,174 @@
+//===== rAthena Script =======================================
+//= Geffen Guides
+//===== By: ==================================================
+//= kobra_k88; L0ne_W0lf
+//===== Current Version: =====================================
+//= 1.4a
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Official COnversion]
+//= Guides for the City of Geffen
+//===== Additional Comments: =================================
+//= Fully working. Added a guide at every exit.
+//= v1.1 Now using duplicate command.
+//= 1.2 Optimized, updated common guide names [Lupus]
+//= 1.2a Small note that the BS guild moved to Einbroch [Poki#3]
+//= 1.3 Removed Duplicates [Silent]
+//= 1.4a Rescripted to official 10.3 standards. [L0ne_W0lf]
+//= 1.4 Fixed some errors with the loop[Samuray22]
+// -Thanks to $ephiroth.
+//============================================================
+
+geffen,203,116,0 script Guide#gef::GefGuide 705,{
+ cutin "gef_soldier",2;
+ mes "[Geffen Guide]";
+ mes "Welcome to Geffen,";
+ mes "the City of Magic. If you";
+ mes "need any guidance around";
+ mes "the city, feel free to ask me";
+ mes "and I'll do my best to assist you. ^FFFFFFcobo^000000";
+ set .@loop1,1;
+ while (.@loop1) {
+ next;
+ switch(select("City Guide:Remove Marks from Mini-Map:Notice.:Cancel")) {
+ case 1:
+ mes "[Geffen Guide]";
+ mes "Please select";
+ mes "a location from";
+ mes "the following menu.";
+ if (compass_check == 0) {
+ mes "Would you like me";
+ mes "to mark locations";
+ mes "on your Mini-Map?";
+ next;
+ if (select("Yes:No") == 1) set .@compass_check,1;
+ }
+ set .@loop2,1;
+ while (.@loop2) {
+ if (.@wait_button_chk == 0) set .@wait_button_chk,1;
+ else next;
+// next;
+ switch(select("^FF0000Magic Acedemy^000000:Forge Shop:Weapon Shop:Tool Shop:Pub:Inn:Geffen Tower:Cancel")) {
+ case 1:
+ mes "[Geffen Guide]";
+ mes "The Magic Academy in";
+ mes "northwest Geffen handles";
+ mes "Job Changes to the Mage class.";
+ if (.@compass_check)
+ viewpoint 1,61,180,2,0xFF0000;
+ break;
+ case 2:
+ mes "[Geffen Guide]";
+ mes "The Forge Shop is";
+ mes "located just southeast";
+ mes "from the center of Geffen.";
+ if (.@compass_check)
+ viewpoint 1,182,59,3,0x00FF00;
+ break;
+ case 3:
+ mes "[Geffen Guide]";
+ mes "The Weapon Shop";
+ mes "can be found northwest";
+ mes "from the center of Geffen.";
+ if (.@compass_check)
+ viewpoint 1,99,140,4,0xFF00FF;
+ break;
+ case 4:
+ mes "[Geffen Guide]";
+ mes "You can find the";
+ mes "Tool Shop by heading";
+ mes "southwest from the";
+ mes "center of Geffen.";
+ if (.@compass_check)
+ viewpoint 1,44,86,5,0xFF00FF;
+ break;
+ case 5:
+ mes "[Geffen Guide]";
+ mes "The Pub can be";
+ mes "found northeast";
+ mes "from the Geffen Tower.";
+ if (.@compass_check)
+ viewpoint 1,138,138,6,0xFF00FF;
+ break;
+ case 6:
+ mes "[Geffen Guide]";
+ mes "The Inn can be";
+ mes "found by traveling";
+ mes "northeast from the";
+ mes "center of Geffen.";
+ if (.@compass_check)
+ viewpoint 1,172,174,7,0xFF00FF;
+ break;
+ case 7:
+ mes "[Geffen Guide]";
+ mes "Geffen Tower is found";
+ mes "in the center of the city.";
+ mes "The Wizard Guild is at the";
+ mes "top, and there's even a dungeon";
+ mes "underneath it. There's many a";
+ mes "mystery surrounding that tower...";
+ if (.@compass_check)
+ viewpoint 1,120,114,8,0x00FF00;
+ break;
+ case 8:
+ mes "[Geffen Guide]";
+ mes "Please ask me to ''Remove";
+ mes "Marks from Mini-Map'' if you";
+ mes "no longer wish to have the";
+ mes "location marks displayed";
+ mes "on your Mini-Map.";
+ set .@loop2,0;
+ break;
+ }
+ }
+ break;
+ case 2:
+ viewpoint 2,237,41,2,0xFF0000;
+ viewpoint 2,237,41,3,0x00FF00;
+ viewpoint 2,46,345,4,0xFF00FF;
+ viewpoint 2,175,220,5,0xFF00FF;
+ viewpoint 2,134,221,6,0xFF00FF;
+ viewpoint 2,204,214,7,0xFF00FF;
+ viewpoint 2,204,214,8,0x00FF00;
+ set .@compass_check,0;
+ break;
+ case 3:
+ mes "[Geffen Guide]";
+ mes "Advances in sorcery and";
+ mes "technology have allowed";
+ mes "us to update our information";
+ mes "system, enabling up to mark";
+ mes "locations on your Mini-Map";
+ mes "for easier navigation.";
+ next;
+ mes "[Geffen Guide]";
+ mes "Your Mini-Map is located";
+ mes "in the upper right corner";
+ mes "of the screen. If you can't";
+ mes "see it, press the Ctrl + Tab";
+ mes "keys or click the ''Map'' button in your Basic Info Window.";
+ next;
+ mes "[Geffen Guide]";
+ mes "On your Mini-Map,";
+ mes "click on the ''+'' and ''-''";
+ mes "symbols to zoom in and";
+ mes "our of your Mini-Map. We";
+ mes "hope you enjoy your travels";
+ mes "here in the city of Geffen.";
+ break;
+ case 4:
+ mes "[Geffen Guide]";
+ mes "Alright, adventurer.";
+ mes "I wish you safety on";
+ mes "your journeys through";
+ mes "the lands you may travel...";
+ close2;
+ set .@loop1,0;
+ }
+ }
+ cutin "gef_soldier",255;
+ end;
+}
+
+geffen,118,62,0 duplicate(GefGuide) Guide#2gef 705
diff --git a/npc/pre-re/guides/guides_gonryun.txt b/npc/pre-re/guides/guides_gonryun.txt
new file mode 100644
index 000000000..590bf7bd4
--- /dev/null
+++ b/npc/pre-re/guides/guides_gonryun.txt
@@ -0,0 +1,66 @@
+//===== rAthena Script =======================================
+//= Kunlun Guides
+//===== By: ==================================================
+//= kobra_k88; L0ne_W0lf
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Official COnversion]
+//= Guides for the City of Kunlun
+//===== Additional Comments: =================================
+//= 1.0 First version [L0ne_W0lf]
+//============================================================
+
+gonryun,163,60,4 script Kunlun Guide#gon 780,{
+ mes "[He Yuen Zhe]";
+ mes "Ni Hao!";
+ mes "Welcome to Kunlun~";
+ mes "Take a walk around and experience";
+ mes "the ancient history and tradition";
+ mes "of our breath taking city.";
+ next;
+ mes "[He Yuen Zhe]";
+ mes "I am responsible for helping you";
+ mes "with any questions you may have.";
+ mes "Please feel free to ask me anything.";
+ next;
+ switch(select("Residence of the Chief:Tool Dealer:Weapon Dealer:Armor Dealer:Wine Maker")) {
+ case 1:
+ viewpoint 1,109,131,0,0xFF3355;
+ mes "[He Yuen Zhe]";
+ mes "Please follow your minimap, and head over to the ^FF3355+^000000 mark.";
+ mes "There, you'll get to the residence of the Chief. Enjoy your stay in lovely Kunlun!";
+ mes "Xie Xie!";
+ close;
+ case 2:
+ viewpoint 1,147,82,1,0xCE6300;
+ mes "[He Yuen Zhe]";
+ mes "Please follow your minimap, and head over to the ^CE6300+^000000 mark.";
+ mes "There, you'll get to the Tool Dealer. Enjoy your stay in lovely Kunlun!";
+ mes "Xie Xie!";
+ close;
+ case 3:
+ viewpoint 1,174,104,2,0x55FF33;
+ mes "[He Yuen Zhe]";
+ mes "Please follow your minimap, and head over to the ^55FF33+^000000 mark.";
+ mes "There, you'll get to the Weapon Dealer. Enjoy your stay in lovely Kunlun!";
+ mes "Xie Xie!";
+ close;
+ case 4:
+ viewpoint 1,173,84,3,0x3355FF;
+ mes "[He Yuen Zhe]";
+ mes "Please follow your minimap, and head over to the ^3355FF+^000000 mark.";
+ mes "There, you'll get to the Armor Dealer. Enjoy your stay in lovely Kunlun!";
+ mes "Xie Xie!";
+ close;
+ case 5:
+ viewpoint 1,215,114,3,0xCD69C9;
+ mes "[He Yuen Zhe]";
+ mes "Please follow your minimap, and head over to the ^CD69C9+^000000 mark.";
+ mes "There, you'll get to the Wine Maker. Enjoy your stay in lovely Kunlun!";
+ mes "Xie Xie!";
+ close;
+ }
+}
diff --git a/npc/pre-re/guides/guides_hugel.txt b/npc/pre-re/guides/guides_hugel.txt
new file mode 100644
index 000000000..27336fcaa
--- /dev/null
+++ b/npc/pre-re/guides/guides_hugel.txt
@@ -0,0 +1,156 @@
+//===== rAthena Script =======================================
+//= Hugel Guides
+//===== By: ==================================================
+//= erKURITA; L0ne_W0lf
+//===== Current Version: =====================================
+//= 1.2
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Official COnversion]
+//= Guides for the City of Hugel.
+//===== Additional Comments: =================================
+//= 1.0 Started the script. [erKURITA]
+//= 1.1 Removed Duplicates [Silent]
+//= 1.2 Rescripted to official 10.3 standards. [L0ne_W0lf]
+//============================================================
+
+hugel,98,56,3 script Hugel Guide Granny#huge 863,0,0,{
+ mes "[Hugel Guide Granny]";
+ mes "Oh, hello~ you are one energetic adventurer.";
+ mes "Welcome to Hugel. I was honored to guide you to this beautiful village.";
+ mes "If this is the first time for you to use the guide services, why don't you check the ''Notice'' menu first?";
+ while(1) {
+ next;
+ switch(select("Village Guide:Remove Marks from Mini-Map:Notice:Cancel")) {
+ case 1:
+ mes "[Hugel Guide Granny]";
+ mes "I can tell you any building location as long as it is in Hugel.";
+ mes "So where do you want to go?";
+ if (.@compass_check == 0) {
+ mes "Would you like me";
+ mes "to mark locations";
+ mes "on your Mini-Map?";
+ next;
+ if (select("Yes.:No.") == 1) set .@compass_check,1;
+ }
+ set .@loop,1;
+ while(.@loop) {
+ if (.@wait_button_chk == 0) set .@wait_button_chk,1;
+ else next;
+ switch(select("Church:Inn:Pub:Airport:Weapon Shop:Tool Shop:Party Supplies Shop:^3131FFHunter Job Change Place^000000:^3131FFShrine Expedition's Place^000000:Monster Race Arena:Bingo Game Room:Cancel")) {
+ case 1:
+ mes "[Hugel Guide Granny]";
+ mes "Well, to me, this Church is rather like a place for old folks like me, you know...";
+ if (.@compass_check)
+ viewpoint 1,156,116,2,0xFF0000;
+ break;
+ case 2:
+ mes "[Hugel Guide Granny]";
+ mes "Pudding rather than praise.";
+ mes "You'd better unpack your stuffs first before you start looking around this village.";
+ mes "It is the building right next to me.";
+ if (.@compass_check)
+ viewpoint 1,104,79,3,0xFF00FF;
+ break;
+ case 3:
+ mes "[Hugel Guide Granny]";
+ mes "Yes, when you travel, you want to drop by a pub and make new friends.";
+ mes "Go east from here, then you will arrive at the pub.";
+ if (.@compass_check)
+ viewpoint 1,129,66,4,0x99FFFF;
+ break;
+ case 4:
+ mes "[Hugel Guide Granny]";
+ mes "A while ago, strangers came to village and built that strange airport kind of thing...";
+ mes "What do they call it? Airship?";
+ if (.@compass_check)
+ viewpoint 1,178,146,5,0x0000FF;
+ break;
+ case 5:
+ mes "[Hugel Guide Granny]";
+ mes "Well, we have a weapon shop in the center of village.";
+ mes "But I don't know if there is any weapon that you find useful.";
+ if (.@compass_check)
+ viewpoint 1,70,158,6,0x00FF00;
+ break;
+ case 6:
+ mes "[Hugel Guide Granny]";
+ mes "Yes, I love Hugel brand Red Potions. I haven't tasted Red Potions from any other brands yet...hohoho. ";
+ mes "The tool shop is located in the center of village.";
+ if (.@compass_check)
+ viewpoint 1,93,167,7,0x00FF00;
+ break;
+ case 7:
+ mes "[Hugel Guide Granny]";
+ mes "The party supplies shop is around the center of village.";
+ mes "Make sure that you will not use any firecracker stuffs near other people, because it is dangerous, you know?";
+ if (.@compass_check)
+ viewpoint 1,91,105,8,0xFF99FF;
+ break;
+ case 8:
+ mes "[Hugel Guide Granny]";
+ mes "Oh, are you an aspiring Hunter?";
+ mes "Then head northeast following the beach, then you will find the Hunter job change place.";
+ if (.@compass_check)
+ viewpoint 1,206,228,9,0xFF9900;
+ break;
+ case 9:
+ mes "[Hugel Guide Granny]";
+ mes "I heard that the shrine expedition is staying in a house at the west.";
+ mes "They have put some kind of sign in the middle of village, so I guess that they are hiring people for something...";
+ mes "I wonder what they are doing in here...hmmm.";
+ if (.@compass_check)
+ viewpoint 1,52,91,10,0xFFFFFF;
+ break;
+ case 10:
+ mes "[Hugel Guide Granny]";
+ mes "I also like playing Monster Race games. It is pretty fun, you know?";
+ mes "Oh, you haven't tried it yet? No~ you'd better try. Trust me, you will like it.";
+ if (.@compass_check)
+ viewpoint 1,58,72,11,0xFF9900;
+ break;
+ case 11:
+ mes "[Hugel Guide Granny]";
+ mes "Do you like bingo games? If you do, go visit Euklan's Bingo Game Room.";
+ if (.@compass_check)
+ viewpoint 1,55,209,12,0x66FFFF;
+ break;
+ case 12:
+ mes "[Hugel Guide Granny]";
+ mes "If you like to get rid of all the location marks on your Mini-Map,";
+ mes "just ask me again, and choose ''Remove Marks from Mini-Map'' menu.";
+ set .@loop,0;
+ }
+ }
+ break;
+ case 2:
+ viewpoint 2,156,116,2,0xFF0000;
+ viewpoint 2,104,79,3,0xFF00FF;
+ viewpoint 2,129,66,4,0x99FFFF;
+ viewpoint 2,178,146,5,0x0000FF;
+ viewpoint 2,70,158,6,0x00FF00;
+ viewpoint 2,93,167,7,0x00FF00;
+ viewpoint 2,91,105,8,0xFF99FF;
+ viewpoint 2,206,228,9,0xFF9900;
+ viewpoint 2,52,91,10,0xFFFFFF;
+ viewpoint 2,58,72,11,0xFF9900;
+ viewpoint 2,55,209,12,0x66FFFF;
+ set .@compass_check,0;
+ mes "[Hugel Guide Granny]";
+ mes "Okay, they are gone now. If you have more locations to ask, just let me know.";
+ break;
+ case 3:
+ mes "[Hugel Guide Granny]";
+ mes "When you are using the ''Village Guide'' menu, ";
+ mes "make sure that building locations will be marked on your mini-map at the upper right side of your screen.";
+ mes "If you cannot see your mini-map, use the short cut key ''ctrl+tab'' or press the ''Map'' button on your basic information windows, okay?";
+ mes "And you can also zoom out your mini-map by using the ''-'' button in case you cannot view the entire map of the village.";
+ break;
+ case 4:
+ mes "[Hugel Guide Granny]";
+ mes "This guide job is pretty exciting. Hohoho~";
+ close;
+ }
+ }
+}
diff --git a/npc/pre-re/guides/guides_izlude.txt b/npc/pre-re/guides/guides_izlude.txt
new file mode 100644
index 000000000..df214fb67
--- /dev/null
+++ b/npc/pre-re/guides/guides_izlude.txt
@@ -0,0 +1,161 @@
+//===== rAthena Script =======================================
+//= Izlude Guides
+//===== By: ==================================================
+//= kobra_k88; L0ne_W0lf
+//===== Current Version: =====================================
+//= 1.5a
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Official Conversion]
+//= Guides for the City of Izlude
+//===== Additional Comments: =================================
+//= 1.2 Optimized, updated common guide names [Lupus]
+//= 1.3 Updated the guide according to how it is on iRO, thanks [MasterOfMuppets]
+//= to Muad_Dib
+//= 1.4 Fitted the many lines into 1 or 2, and corrected some typos [erKURITA]
+//= 1.5 Rescripted to official 10.3 standards. [L0ne_W0lf]
+//= 1.5a Fixed some errors with the loop[Samuray22]
+// -Thanks to $ephiroth.
+//============================================================
+
+izlude,121,87,6 script Guide#iz 105,{
+ cutin "prt_soldier",2;
+ mes "[Izlude Guide]";
+ mes "Welcome to Izlude,";
+ mes "Prontera's satellite city.";
+ mes "If you need any guidance";
+ mes "around Izlude, feel free";
+ mes "to ask me at anytime.";
+ set .@loop1,1;
+ while(.@loop1) {
+ next;
+ switch(select("City Guide:Remove Marks from Mini-Map:Notice.:Cancel")) {
+ case 1:
+ mes "[Izlude Guide]";
+ mes "Please select";
+ mes "a location from";
+ mes "the following menu.";
+ if (.@compass_check == 0) {
+ mes "Would you like me";
+ mes "to mark locations";
+ mes "on your Mini-Map?";
+ next;
+ if (select("Yes:No") == 1) set .@compass_check,1;
+ }
+ set .@loop2,1;
+ while(.@loop2) {
+ if (.@wait_button_chk == 0) set .@wait_button_chk,1;
+ else next;
+
+ switch(select("^FF0000Swordman Association^000000:Swordman Hall:Arena:Izlude Marina:Weapon Shop:Tool Shop:Cancel")) {
+ case 1:
+ mes "[Izlude Guide]";
+ mes "The Swordman Association";
+ mes "is located on an island that is";
+ mes "in west Izlude. If you're thinking of changing jobs to Swordman,";
+ mes "you should check it out.";
+ if (.@compass_check)
+ viewpoint 1,52,140,0,0xFF0000;
+ break;
+ case 2:
+ mes "[Izlude Guide]";
+ mes "The Swordman Hall";
+ mes "is located in the eastern";
+ mes "island connected to Izlude.";
+ if (.@compass_check)
+ viewpoint 1,214,130,1,0x00FF00;
+ break;
+ case 3:
+ mes "[Izlude Guide]";
+ mes "Izlude's famous";
+ mes "Arena is located at the";
+ mes "northern end of Izlude.";
+ if (.@compass_check)
+ viewpoint 1,128,225,2,0x00FF00;
+ break;
+ case 4:
+ mes "[Izlude Guide]";
+ mes "You can find the";
+ mes "Marina in the northeast";
+ mes "part of Izlude. There, you can";
+ mes "ride a ship which will take you";
+ mes "to Alberta or Byalan Island.";
+ if (.@compass_check)
+ viewpoint 1,200,180,3,0xFF0000;
+ break;
+ case 5:
+ mes "[Izlude Guide]";
+ mes "You can easily";
+ mes "find the Weapon Shop";
+ mes "in northwest Izlude.";
+ if (.@compass_check)
+ viewpoint 1,111,149,4,0xFF00FF;
+ break;
+ case 6:
+ mes "[Izlude Guide]";
+ mes "The Tool Shop shouldn't";
+ mes "be too hard to find in the";
+ mes "northeast part of Izlude.";
+ if (.@compass_check)
+ viewpoint 1,148,148,5,0xFF00FF;
+ break;
+ case 7:
+ mes "[Izlude Guide]";
+ mes "Please ask me to ''Remove";
+ mes "Marks from Mini-Map'' if you";
+ mes "no longer wish to have the";
+ mes "location marks displayed";
+ mes "on your Mini-Map.";
+ set .@loop2,0;
+ break;
+ }
+ }
+ break;
+ case 2:
+ viewpoint 2,237,41,0,0x00FF00;
+ viewpoint 2,237,41,1,0x0000FF;
+ viewpoint 2,46,345,2,0x00FF00;
+ viewpoint 2,175,220,3,0xFF0000;
+ viewpoint 2,134,221,4,0xFF0000;
+ viewpoint 2,204,214,5,0xFF0000;
+ set .@compass_check,0;
+ break;
+ case 3:
+ mes "[Izlude Guide]";
+ mes "Advances in sorcery and";
+ mes "technology have allowed";
+ mes "us to update our information";
+ mes "system, enabling up to mark";
+ mes "locations on your Mini-Map";
+ mes "for easier navigation.";
+ next;
+ mes "[Izlude Guide]";
+ mes "Your Mini-Map is located";
+ mes "in the upper right corner";
+ mes "of the screen. If you can't";
+ mes "see it, press the Ctrl + Tab";
+ mes "keys or click the ''Map'' button in your Basic Info Window.";
+ next;
+ mes "[Izlude Guide]";
+ mes "On your Mini-Map,";
+ mes "click on the ''+'' and ''-''";
+ mes "symbols to zoom in and";
+ mes "our of your Mini-Map. We";
+ mes "hope you enjoy your travels";
+ mes "here in the city of Izlude.";
+ break;
+ case 4:
+ mes "[Izlude Guide]";
+ mes "Okay then, feel";
+ mes "free to come to me";
+ mes "if you ever feel lost";
+ mes "around Izlude, alright?";
+ close2;
+ set .@loop1,0;
+ break;
+ }
+ }
+ cutin "prt_soldier",255;
+ end;
+}
diff --git a/npc/pre-re/guides/guides_juno.txt b/npc/pre-re/guides/guides_juno.txt
new file mode 100644
index 000000000..d8c08b31e
--- /dev/null
+++ b/npc/pre-re/guides/guides_juno.txt
@@ -0,0 +1,118 @@
+//===== rAthena Script =======================================
+//= Yuno Guides
+//===== By: ==================================================
+//= KitsuneStarwind, usul, kobra_k88; L0ne_W0lf
+//===== Current Version: =====================================
+//= 1.7
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Official Conversion]
+//= Guides for the City of Juno
+//===== Additional Comments: =================================
+//= Edited Miss Yoon text. Added town soldiers by usul. Edited town soldiers
+//= and added map location option for them. [kobra_k88]
+//= 1.1 Changed sprites and cutins to Schwarzwald Republic ones
+//= 1.2 Optimized, updated common guide names [Lupus]
+//= 1.3 Updated the mini map localization function. [Musashiden]
+//= 1.4 Juno Guides are now up to date according to iRO. [Musashiden]
+//= 1.5 Removed Duplicates [Silent].
+//= 1.6 Changed one of the Juno soldier's sprite. [Musashiden]
+//= 1.7 Rescripted to official 10.3 standards. [L0ne_W0lf]
+//============================================================
+
+yuno,153,47,4 script Juno Guide#yuno 700,{
+ mes "[Ms. Yoon]";
+ mes "A place that takes the vision of the future, and gives it form in the present. Welcome to";
+ mes "the city of Juno!";
+ next;
+ switch(select("Armory:Tool Shop:Sage Castle (Sage Job Change Place):Street of Book Stores:Juphero Plaza:Library of the Republic:Schweicherbil Magic Academy:Monster Museum:Forge:Airport:End Conversation")) {
+ case 1:
+ viewpoint 1,120,138,0,0xFF3355;
+ mes "[Ms. Yoon]";
+ mes "Please look";
+ mes "at the mini map.";
+ mes "^FF3355+^000000 -> Armory";
+ mes "Thank you,";
+ mes "have a good day.";
+ close;
+ case 2:
+ viewpoint 1,193,142,1,0x3355FF;
+ mes "[Ms. Yoon]";
+ mes "Please look";
+ mes "at the mini map.";
+ mes "^3355FF+^000000 -> Tool Shop";
+ mes "Thank you,";
+ mes "have a good day.";
+ close;
+ case 3:
+ viewpoint 1,90,318,2,0x33FF55;
+ mes "[Ms. Yoon]";
+ mes "Please look";
+ mes "at the mini map.";
+ mes "^33FF55+^000000 -> Sage Castle";
+ mes "( Sage Job Change Place )";
+ mes "Thank you, have a good day.";
+ close;
+ case 4:
+ viewpoint 1,257,102,3,0xFF3355;
+ mes "[Ms. Yoon]";
+ mes "Please look";
+ mes "at the mini map.";
+ mes "^FF3355+^000000 -> Street of Book Stores";
+ mes "Thank you, have a good day.";
+ close;
+ case 5:
+ viewpoint 1,157,170,4,0x3355FF;
+ mes "[Ms. Yoon]";
+ mes "Please look";
+ mes "at the mini map.";
+ mes "^3355FF+^000000 -> Juphero Plaza";
+ mes "Thank you,";
+ mes "have a good day.";
+ close;
+ case 6:
+ viewpoint 1,336,204,5,0x33FF55;
+ mes "[Ms. Yoon]";
+ mes "Please look";
+ mes "at the mini map.";
+ mes "^33FF55+^000000 -> Library of the Republic";
+ mes "Thank you, have a good day.";
+ close;
+ case 7:
+ viewpoint 1,323,281,6,0xFF3355;
+ mes "[Ms. Yoon]";
+ mes "Please look at the mini map.";
+ mes "^FF3355+^000000 -> Schweicherbil Magic Academy";
+ mes "Thank you, have a good day.";
+ close;
+ case 8:
+ viewpoint 1,278,288,7,0x3355FF;
+ mes "[Ms. Yoon]";
+ mes "Please look at the mini map.";
+ mes "^3355FF+^000000 -> Monster Museum";
+ mes "Thank you, have a good day.";
+ close;
+ case 9:
+ viewpoint 1,120,138,8,0xFF3355;
+ mes "[Ms. Yoon]";
+ mes "Please look at the mini map.";
+ mes "^FF3355+^000000 -> Forge";
+ mes "The forge is located underneath Armory.";
+ mes "Thank you, have a good day.";
+ close;
+ case 10:
+ viewpoint 1,53,214,9,0xFF3355;
+ mes "[Ms. Yoon]";
+ mes "Please look at the mini map.";
+ mes "^FF3355+^000000 -> Airport";
+ mes "Thank you, have a good day.";
+ close;
+ case 11:
+ mes "[Ms. Yoon]";
+ mes "A great city of wise men.";
+ mes "A city of Knowledge!";
+ mes "Welcome to Juno.";
+ close;
+ }
+}
diff --git a/npc/pre-re/guides/guides_lighthalzen.txt b/npc/pre-re/guides/guides_lighthalzen.txt
new file mode 100644
index 000000000..c9fb40b5b
--- /dev/null
+++ b/npc/pre-re/guides/guides_lighthalzen.txt
@@ -0,0 +1,227 @@
+//===== rAthena Script =======================================
+//= Lighthalzen Guides
+//===== By: ==================================================
+//= MasterOfMuppets; L0ne_W0lf
+//===== Current Version: =====================================
+//= 1.2
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Official Conversion]
+//= Guides for the City of Lighthalzen
+//===== Additional Comments: =================================
+//= 1.0 First Version [MasterOfMuppets]
+//= 1.1 Removed Duplicates [Silent]
+//= 1.2 Rescripted to official 10.3 standards. [L0ne_W0lf]
+//============================================================
+
+lighthalzen,207,310,5 script Guide#lhz::LhzGuide 852,{
+ cutin "ein_soldier",2;
+ mes "[Lighthalzen Guide]";
+ mes "Welcome to Lighthalzen,";
+ mes "the Corporation City-State.";
+ mes "If you need any guidance";
+ mes "around the city, feel free";
+ mes "to ask me and I'll do my";
+ mes "very best to help you.";
+ set .@loop1,1;
+ while (.@loop1) {
+ next;
+ switch(select("City Guide:Remove Marks from Mini-Map:Notice.:Cancel")) {
+ case 1:
+ mes "[Lighthalzen Guide]";
+ mes "Please be aware that I'm";
+ mes "in charge of providing info";
+ mes "regarding the West District";
+ mes "of Lighthalzen. Now, please";
+ mes "select the location that you'd";
+ mes "like to learn more about.";
+ if (.@compass_check == 0) {
+ next;
+ mes "[Lighthalzen Guide]";
+ mes "But before that,";
+ mes "would you like me";
+ mes "to mark locations";
+ mes "on your Mini-Map?";
+ next;
+ if (select("Yes.:No.") == 1) set .@compass_check,1;
+ }
+ set .@loop2,1;
+ while(.@loop2) {
+ if (.@wait_button_chk == 0) set .@wait_button_chk,1;
+ else next;
+ switch(select("^FF0000Rekenber Corporation^000000:Train Station:Police Station:Bank:Hotel:Airport:Merchant Guild:Jewelry Shop:Weapon Shop:Departement Store:Cancel")) {
+ case 1:
+ mes "[Lighthalzen Guide]";
+ mes "Rekenber Corporation,";
+ mes "the largest company in";
+ mes "the Schwaltzvalt Republic,";
+ mes "in located in northwestern";
+ mes "Lighthalzen. You can't miss";
+ mes "the headquarters building.";
+ if (.@compass_check)
+ viewpoint 1,102,247,2,0xFF0000;
+ break;
+ case 2:
+ mes "[Lighthalzen Guide]";
+ mes "The Train Station is";
+ mes "located in the center of";
+ mes "the city, where we have";
+ mes "a direct railroad to Einbroch.";
+ if (.@compass_check)
+ viewpoint 1,233,164,3,0xFF00FF;
+ break;
+ case 3:
+ mes "[Lighthalzen Guide]";
+ mes "Our Police Station is just";
+ mes "north of the city's center.";
+ mes "Please don't hesitate to report";
+ mes "any suspicious persons and";
+ mes "activity, or if you have any";
+ mes "problems whatsoever.";
+ if (.@compass_check)
+ viewpoint 1,236,276,4,0x99FFFFF;
+ break;
+ case 4:
+ mes "[Lighthalzen Guide]";
+ mes "The Bank is located";
+ mes "just opposite to the";
+ mes "Lighthalzen Police Station,";
+ mes "which is a pretty good idea";
+ mes "when I think about it, actually. ^FFFFFFspacer^000000";
+ if (.@compass_check)
+ viewpoint 1,198,257,5,0x0000FF;
+ break;
+ case 5:
+ mes "[Lighthalzen Guide]";
+ mes "Our Hotel is located in";
+ mes "the middle of the South Plaza.";
+ mes "Due to its quality services and";
+ mes "luxurious accomodations, this";
+ mes "hotel is extremely popular.";
+ if (.@compass_check)
+ viewpoint 1,159,133,6,0x00FF00;
+ break;
+ case 6:
+ mes "[Lighthalzen Guide]";
+ mes "The Airport is to the far";
+ mes "west of the Central Promenade.";
+ mes "You can travel anywhere within";
+ mes "the Schwaltzvalt Republic by";
+ mes "riding on one of the Airships.";
+ if (.@compass_check)
+ viewpoint 1,267,75,7,0x00FF00;
+ break;
+ case 7:
+ mes "[Lighthalzen Guide]";
+ mes "The Merchant Guild can be";
+ mes "found in the southwestern";
+ mes "part of Lighthalzen.";
+ if (.@compass_check)
+ viewpoint 1,74,53,8,0xFF99FF;
+ break;
+ case 8:
+ mes "[Lighthalzen Guide]";
+ mes "The Jewelry Shop is";
+ mes "located just west of";
+ mes "the South Plaza.";
+ if (.@compass_check)
+ viewpoint 1,93,110,9,0xFF9900;
+ break;
+ case 9:
+ mes "[Lighthalzen Guide]";
+ mes "The Weapon Shop is";
+ mes "located at the end of";
+ mes "the Central Promenade.";
+ mes "It's at least worth a look";
+ mes "if you're serious about";
+ mes "adventuring around here.";
+ if (.@compass_check)
+ viewpoint 1,196,46,10,0x330033;
+ break;
+ case 10:
+ mes "[Lighthalzen Guide]";
+ mes "The Department Store is";
+ mes "located in the middle of";
+ mes "Lighthalzen and is the biggest";
+ mes "and most convenient place for";
+ mes "shopping for almost everything.";
+ if (.@compass_check)
+ viewpoint 1,199,163,11,0xFFFF00;
+ break;
+ case 11:
+ mes "[Lighthalzen Guide]";
+ mes "Please ask me to ''Remove";
+ mes "Marks from Mini-Map'' if you";
+ mes "no longer wish to have the";
+ mes "location marks displayed";
+ mes "on your Mini-Map.";
+ set .@loop2,0;
+ }
+ }
+ break;
+ case 2:
+ viewpoint 2,102,247,2,0xFF0000;
+ viewpoint 2,233,164,3,0xFF00FF;
+ viewpoint 2,236,276,4,0x99FFFF;
+ viewpoint 2,198,257,5,0x0000FF;
+ viewpoint 2,159,133,6,0x00FF00;
+ viewpoint 2,267,75,7,0x00FF00;
+ viewpoint 2,74,53,8,0xFF99FF;
+ viewpoint 2,93,110,9,0xFF9900;
+ viewpoint 2,196,46,10,0x330033;
+ viewpoint 2,199,163,11,0xFFFF00;
+ set .@compass_check,0;
+ break;
+ case 3:
+ mes "[Lighthalzen Guide]";
+ mes "Advances in sorcery and";
+ mes "technology have allowed";
+ mes "us to update our information";
+ mes "system, enabling up to mark";
+ mes "locations on your Mini-Map";
+ mes "for easier navigation.";
+ next;
+ mes "[Lighthalzen Guide]";
+ mes "Your Mini-Map is located";
+ mes "in the upper right corner";
+ mes "of the screen. If you can't";
+ mes "see it, press the Ctrl + Tab";
+ mes "keys or click the ''Map'' button in your Basic Info Window.";
+ next;
+ mes "[Lighthalzen Guide]";
+ mes "On your Mini-Map,";
+ mes "click on the ''+'' and ''-''";
+ mes "symbols to zoom in and";
+ mes "our of your Mini-Map. We";
+ mes "hope you enjoy your travels";
+ mes "here in Lighthalzen.";
+ break;
+ case 4:
+ mes "[Lighthalzen Guide]";
+ mes "Lighthalzen is divided";
+ mes "into the East and West";
+ mes "districts by a railroad that";
+ mes "runs right through the middle.";
+ mes "There are always guards on";
+ mes "watch to protect the peace.";
+ next;
+ mes "[Lighthalzen Guide]";
+ mes "Please don't hesitate";
+ mes "to report any suspicious";
+ mes "activity or persons to us.";
+ mes "We hope that you enjoy";
+ mes "our fair city, adventurer.";
+ close2;
+ set .@loop1,0;
+ }
+ }
+ cutin "ein_soldier",255;
+ end;
+}
+
+lighthalzen,220,311,3 duplicate(LhzGuide) Guide#2lhz 852
+
+lighthalzen,154,100,5 duplicate(LhzGuide) Guide#3lhz 852
+
+lighthalzen,307,224,3 duplicate(LhzGuide) Guide#4lhz 852
diff --git a/npc/pre-re/guides/guides_louyang.txt b/npc/pre-re/guides/guides_louyang.txt
new file mode 100644
index 000000000..52a87ee32
--- /dev/null
+++ b/npc/pre-re/guides/guides_louyang.txt
@@ -0,0 +1,233 @@
+//===== rAthena Script =======================================
+//= Louyang Guides
+//===== By: ==================================================
+//= jAthena/Tsuyuki; L0ne_W0lf
+//===== Current Version: =====================================
+//= 1.2
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= Guides for the City of Louyang
+//===== Additional Comments: =================================
+//= 0.5 Added first, Japanese version [Tsuyuki]
+//= 1.0 Translated to English from iRO NPC Dialogue (100% Official) [Tsuyuki]
+//= 1.1 Rescripted official 10.3 standards. [L0ne_W0lf]
+//= 1.2 Corrected NPC names to fall within proper restrictions. [L0ne_W0lf]
+//============================================================
+
+louyang,213,213,3 script Soldier#BA::LouGuide 825,{
+ mes "[Soldier]";
+ mes "Welcome to Louyang,";
+ mes "a city with a long";
+ mes "and colorful history.";
+ next;
+ mes "[Soldier]";
+ mes "Recently we've developed";
+ mes "an ocean lane to accomodate";
+ mes "positive exchange with";
+ mes "foreign nations.";
+ next;
+ mes "[Soldier]";
+ mes "Louyang is well-known for various specialties in addition to its rich history. Here you can find many things unique to our land.";
+ next;
+ mes "[Soldier]";
+ mes "Please take your time";
+ mes "and we invite you to enjoy";
+ mes "your trip here in Louyang.";
+ next;
+ switch(select("Ask Building Locations.:Remove all marks from mini-map.:Cancel.")) {
+ case 1:
+ mes "[Soldier]";
+ mes "Where would you like to go?";
+ next;
+ switch(select("Dragon Castle:Doctor's Office:City Hall:Weapon Shop:Tool Shop:Tavern:Cancel")) {
+ case 1:
+ mes "[Soldier]";
+ mes "The Dragon Castle is located at ^FF3355+^000000. It is where all the nobles reside, including our lord.";
+ next;
+ mes "[Soldier]";
+ mes "Since you're an outsider, I guess it would be appropriate for you to visit our lord first.";
+ viewpoint 1,218,255,2,0xFF3355;
+ break;
+ case 2:
+ mes "[Soldier]";
+ mes "We have a very skillful doctor.";
+ mes "You can find her office at ^CE6300+^000000.";
+ next;
+ mes "[Soldier]";
+ mes "It is said that there";
+ mes "is no disease she cannot cure. Well, I can't guarantee if that's true or not.";
+ viewpoint 1,263,94,3,0xCE6300;
+ break;
+ case 3:
+ mes "[Soldier]";
+ mes "We have a City Hall where the federal government operates.";
+ mes "It is located at ^A5BAAD+^000000.";
+ next;
+ mes "[Soldier]";
+ mes "If you have any problems,";
+ mes "you should talk with the";
+ mes "employees in City Hall.";
+ viewpoint 1,309,80,4,0xA5BAAD;
+ break;
+ case 4:
+ mes "[Soldier]";
+ mes "The Weapon Shop is located at ^55FF33+^000000.";
+ next;
+ mes "[Soldier]";
+ mes "You will see";
+ mes "marvelous weapons forged";
+ mes "by the well-experienced";
+ mes "blacksmiths of Louyang.";
+ viewpoint 1,145,174,5,0x55FF33;
+ break;
+ case 5:
+ mes "[Soldier]";
+ mes "The Tool Shop is located at ^3355FF+^000000.";
+ next;
+ mes "[Soldier]";
+ mes "Knowing your enemy";
+ mes "is half the battle!";
+ mes "It's also safer to prepare yourself than to be sorry later. Why don't you go check their supplies?";
+ viewpoint 1,135,98,6,0x3355FF;
+ break;
+ case 6:
+ mes "[Soldier]";
+ mes "When you get tired during your trip, I suggest that you visit the Tavern. It's located at ^00FF00+^000000.";
+ next;
+ mes "[Soldier]";
+ mes "The Tavern is a good place";
+ mes "to meet other tourists, as well as to hear of any news that may be helpful to know.";
+ viewpoint 1,280,167,7,0x00FF00;
+ break;
+ case 7:
+ mes "[Soldier]";
+ mes "If you wish to remove all marks";
+ mes "on your mini-map, please choose 'Remove all marks from mini-map.' from the menu.";
+ }
+ break;
+ case 2:
+ viewpoint 2,218,255,2,0xFF00FF;
+ viewpoint 2,263,94,3,0xFF00FF;
+ viewpoint 2,309,80,4,0xFF00FF;
+ viewpoint 2,145,174,5,0xFF00FF;
+ viewpoint 2,135,98,6,0xFF00FF;
+ viewpoint 2,280,167,7,0xFF00FF;
+ mes "[Soldier]";
+ mes "There, I've erased all the marks on your mini-map. Feel free to ask me about building locations whenever you need to.";
+ break;
+ case 3:
+ mes "[Soldier]";
+ mes "I guess it's fun";
+ mes "sometimes to go exploring";
+ mes "on your own. Take care.";
+ }
+ close;
+}
+
+louyang,160,175,3 duplicate(LouGuide) Soldier#BB 825
+
+louyang,224,104,3 script Representative#lou 818,{
+ mes "[Representative]";
+ mes "Welcome to Louyang,";
+ mes "an ancient land with";
+ mes "a history full of tales";
+ mes "of bravery.";
+ next;
+ mes "[Representative]";
+ mes "We now provide an ocean lane to accomodate foreign travelers and intercultural exchange from which all can benefit.";
+ next;
+ mes "[Representative]";
+ mes "Louyang is famous for";
+ mes "its elaborate history, as well as specialties that are unique to this nation. Please take your time and enjoy your stay.";
+ next;
+ switch(select("Ask Building Locations.:Remove all marks from mini-map.:Cancel.")) {
+ case 1:
+ set .@compass_check,1;
+ mes "[Representative]";
+ mes "Where would you like to go?";
+ next;
+ switch(select("Dragon Castle:Doctor's Office:City Hall:Weapon Shop:Tool Shop:Tavern:Cancel")) {
+ case 1:
+ mes "[Representative]";
+ mes "The Dragon Castle is located at ^FF3355+^000000. It is where all the nobles reside, including our lord.";
+ next;
+ mes "[Representative]";
+ mes "Since you're an outsider, I guess it would be appropriate for you to visit our lord first.";
+ viewpoint 1,218,255,2,0xFFFF33;
+ break;
+ case 2:
+ mes "[Representative]";
+ mes "We have a very skillful doctor.";
+ mes "You can find her office at ^CE6300+^000000.";
+ next;
+ mes "[Representative]";
+ mes "It is said that there";
+ mes "is no disease she cannot cure. Well, I can't guarantee if that's true or not.";
+ viewpoint 1,263,94,3,0xFFCE63;
+ break;
+ case 3:
+ mes "[Representative]";
+ mes "We have a City Hall where the federal government operates.";
+ mes "It is located at ^A5BAAD+^000000.";
+ next;
+ mes "[Representative]";
+ mes "If you have any problems,";
+ mes "you should talk with the";
+ mes "employees in City Hall.";
+ viewpoint 1,309,80,4,0xFF00FF;
+ break;
+ case 4:
+ mes "[Representative]";
+ mes "The Weapon Shop is located at ^55FF33+^000000.";
+ next;
+ mes "[Representative]";
+ mes "You will see";
+ mes "marvelous weapons forged";
+ mes "by the well-experienced";
+ mes "blacksmiths of Louyang.";
+ viewpoint 1,145,174,5,0xFF55FF;
+ break;
+ case 5:
+ mes "[Representative]";
+ mes "The Tool Shop is located at ^3355FF+^000000.";
+ next;
+ mes "[Representative]";
+ mes "Knowing your enemy";
+ mes "is half the battle!";
+ mes "It's also safer to prepare yourself than to be sorry later. Why don't you go check their supplies?";
+ viewpoint 1,135,98,6,0xFF3355;
+ break;
+ case 6:
+ mes "[Representative]";
+ mes "When you get tired during your trip, I suggest that you visit the Tavern. It's located at ^00FF00+^000000.";
+ next;
+ mes "[Soldier]";
+ mes "The Tavern is a good place";
+ mes "to meet other tourists, as well as to hear of any news that may be helpful to know.";
+ viewpoint 1,280,167,7,0xFF00FF;
+ break;
+ case 7:
+ mes "[Representative]";
+ mes "If you wish to remove all marks";
+ mes "on your mini-map, please choose 'Remove all marks from mini-map.' from the menu.";
+ }
+ break;
+ case 2:
+ viewpoint 2,218,255,2,0xFF00FF;
+ viewpoint 2,263,94,3,0xFF00FF;
+ viewpoint 2,309,80,4,0xFF00FF;
+ viewpoint 2,145,174,5,0xFF00FF;
+ viewpoint 2,135,98,6,0xFF00FF;
+ viewpoint 2,280,167,7,0xFF00FF;
+ mes "[Representative]";
+ mes "Done! All the marks on your mini-map are erased. Feel free to ask me about building locations whenever you need to.";
+ break;
+ case 3:
+ mes "[Representative]";
+ mes "I understand that you want to explore Louyang and see the";
+ mes "sights for yourself. Alright then, take care!";
+ break;
+ }
+ close;
+}
diff --git a/npc/pre-re/guides/guides_morroc.txt b/npc/pre-re/guides/guides_morroc.txt
new file mode 100644
index 000000000..f0b5b343b
--- /dev/null
+++ b/npc/pre-re/guides/guides_morroc.txt
@@ -0,0 +1,164 @@
+//===== rAthena Script =======================================
+//= Morroc Guides
+//===== By: ==================================================
+//= kobra_k88; L0ne_W0lf
+//===== Current Version: =====================================
+//= 1.4a
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Official Conversion]
+//= Guides for the City of Morroc
+//===== Additional Comments: =================================
+//= 1.1 Now using duplicate command.
+//= 1.2 Optimized, updated common guide names [Lupus]
+//= 1.3 Removed Duplicates [Silent]
+//= 1.4 rescripted to official 10.3 standards. [L0ne_W0lf]
+//= 1.4a Fixed some errors with the loop[Samuray22]
+// -Thanks to $ephiroth.
+//============================================================
+
+morocc,153,286,6 script Guide#moc::MocGuide 707,{
+ cutin "moc_soldier",2;
+ mes "[Morroc Guide]";
+ mes "Welcome to Morroc,";
+ mes "the frontier town of the";
+ mes "Rune-Midgarts Kingdom.";
+ mes "Please ask me for help if";
+ mes "you're having any trouble";
+ mes "finding anything in town.";
+ set .@loop1,1;
+ while (.@loop1) {
+ next;
+ switch(select("City Guide:Remove Marks from Mini-Map:Notice:Cancel")) {
+ case 1:
+ mes "[Morroc Guide]";
+ mes "Please select";
+ mes "a location from";
+ mes "the following menu.";
+ if (.@compass_check == 0) {
+ mes "Would you like me";
+ mes "to mark locations";
+ mes "on your Mini-Map?";
+ next;
+ if (select("Yes.:No.") == 1) set .@compass_check,1;
+ }
+ set .@loop2,1;
+ while(.@loop2) {
+ if (.@wait_button_chk == 0) set .@wait_button_chk,1;
+ else next;
+
+ switch(select("^FF0000Thief Guild^000000:Weapon Shop:Inn:Pub:Mercenary Guild:Forge:Cancel")) {
+ case 1:
+ mes "[Morroc Guide]";
+ mes "The Thief Guild is";
+ mes "in charge of all Job";
+ mes "Changes to the Thief";
+ mes "Class. From what I hear,";
+ mes "you can find them inside";
+ mes "the Pyramids nearby...";
+ if (.@compass_check)
+ viewpoint 1,24,297,2,0xFF0000;
+ break;
+ case 2:
+ mes "[Morroc Guide]";
+ mes "The Weapon Shop";
+ mes "is in the southeast";
+ mes "end of Morroc.";
+ if (.@compass_check)
+ viewpoint 1,253,56,3,0xFF00FF;
+ break;
+ case 3:
+ mes "[Morroc Guide]";
+ mes "There are Inns";
+ mes "where you can rest";
+ mes "at the southeast and";
+ mes "northeast ends of Morroc.";
+ if (.@compass_check) {
+ viewpoint 1,197,66,4,0xFF00FF;
+ viewpoint 1,273,269,5,0xFF00FF;
+ }
+ break;
+ case 4:
+ mes "[Morroc Guide]";
+ mes "You can find the";
+ mes "Pub in northeast Morroc.";
+ if (.@compass_check)
+ viewpoint 1,52,259,6,0xFF00FF;
+ break;
+ case 5:
+ mes "[Morroc Guide]";
+ mes "The Mercenary";
+ mes "Guild is located";
+ mes "in East Morroc.";
+ if (.@compass_check)
+ viewpoint 1,284,171,7,0x00FF00;
+ break;
+ case 6:
+ mes "[Morroc Guide]";
+ mes "The Forge is";
+ mes "located just";
+ mes "southwest from";
+ mes "the center of Morroc.";
+ if (.@compass_check)
+ viewpoint 1,47,47,7,0xFF00FF;
+ break;
+ case 7:
+ mes "[Morroc Guide]";
+ mes "Please ask me to ''Remove";
+ mes "Marks from Mini-Map'' if you";
+ mes "no longer wish to have the";
+ mes "location marks displayed";
+ mes "on your Mini-Map.";
+ set .@loop2,0;
+ }
+ }
+ break;
+ case 2:
+ viewpoint 2,237,41,2,0x00FF00;
+ viewpoint 2,237,41,3,0x0000FF;
+ viewpoint 2,46,345,4,0x00FF00;
+ viewpoint 2,175,220,5,0xFF0000;
+ viewpoint 2,175,220,6,0xFF0000;
+ viewpoint 2,175,220,7,0xFF0000;
+ set .@compass_check,0;
+ break;
+ case 3:
+ mes "[Morroc Guide]";
+ mes "Advances in sorcery and";
+ mes "technology have allowed";
+ mes "us to update our information";
+ mes "system, enabling up to mark";
+ mes "locations on your Mini-Map";
+ mes "for easier navigation.";
+ next;
+ mes "[Morroc Guide]";
+ mes "Your Mini-Map is located";
+ mes "in the upper right corner";
+ mes "of the screen. If you can't";
+ mes "see it, press the Ctrl + Tab";
+ mes "keys or click the ''Map'' button in your Basic Info Window.";
+ next;
+ mes "[Morroc Guide]";
+ mes "On your Mini-Map,";
+ mes "click on the ''+'' and ''-''";
+ mes "symbols to zoom in and";
+ mes "our of your Mini-Map. We";
+ mes "hope you enjoy your travels";
+ mes "here in the city of Morroc.";
+ break;
+ case 4:
+ mes "[Morroc Guide]";
+ mes "Alright then,";
+ mes "try to stay out of";
+ mes "too much trouble";
+ mes "out there, adventurer.";
+ close2;
+ set .@loop1,0;
+ }
+ }
+ cutin "moc_soldier",255;
+ end;
+}
+
+morocc,54,97,0 duplicate(MocGuide) Guide#2moc 707
diff --git a/npc/pre-re/guides/guides_moscovia.txt b/npc/pre-re/guides/guides_moscovia.txt
new file mode 100644
index 000000000..8986c7502
--- /dev/null
+++ b/npc/pre-re/guides/guides_moscovia.txt
@@ -0,0 +1,92 @@
+//===== rAthena Script =======================================
+//= Moscovia Guides
+//===== By: ==================================================
+//= Kisuka
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Official Conversion]
+//= Guides for the town of Moscovia.
+//===== Additional Comments: =================================
+//= 1.0 First Version. [Kisuka]
+//============================================================
+
+moscovia,161,76,4 script Moscovia Guide#mosk 959,{
+ mes "[Moscovia Guide]";
+ mes "Welcome to Moscovia";
+ mes "Here is the paradise spreading on";
+ mes "the endless seas";
+ mes "You'll be happy with the beautiful";
+ mes "scenery and the sunlight!";
+ next;
+ mes "[Moscovia Guide]";
+ mes "I was sent from Moscovia Palace";
+ mes "to guide tourists and to give them";
+ mes "information on this town.";
+ mes "If you have some questions, please ask me.";
+ next;
+ switch(select("Ask where you can go.:Delete all the marks on the mini-map.:Cancel.")) {
+ case 1:
+ mes "[Moscovia Guide]";
+ mes "Where would you like to go?";
+ next;
+ switch(select("The Palace:Armor Shop:Tool Shop:An Inn:Cancel")) {
+ case 1:
+ mes "[Moscovia Guide]";
+ mes "The Palace can be found ^ff0000+^000000 at the";
+ mes "end of the North sea from";
+ mes "Rune-Midgarts.";
+ mes "There resides our Lord the Czar of";
+ mes "Moscovia and his retainers.";
+ close2;
+ viewpoint 1,257,138,1,0xFF0000;
+ end;
+ case 2:
+ viewpoint 1,185,187,2,0x00FF00;
+ mes "[Moscovia Guide]";
+ mes "The Armor Shop is located at the";
+ mes "southwest corner of town..";
+ mes "You can buy armor made by the best";
+ mes "craftsmen of Moscovia there.";
+ close;
+ case 3:
+ mes "[Moscovia Guide]";
+ mes "The Tool Shop is located just south";
+ mes "from the center of town.";
+ mes "You can find all sorts of things";
+ mes "you need for your travels.";
+ close2;
+ viewpoint 1,223,174,3,0x00FF00;
+ end;
+ case 4:
+ mes "[Moscovia Guide]";
+ mes "The Inn 'Sticky Herb Tree' is just";
+ mes "north from the center of town.";
+ mes "If you need to rest, there is no";
+ mes "better place to stay.";
+ close2;
+ viewpoint 1,229,208,4,0x3355FF;
+ end;
+ case 5:
+ close;
+ }
+ case 2:
+ mes "[Moscovia Guide]";
+ mes "I've deleted all marks on the mini-map.";
+ mes "Whenever you'd like to put marks";
+ mes "there, you can ask me.";
+ viewpoint 2,257,138,1,0xFF0000;
+ viewpoint 2,185,187,2,0x00FF00;
+ viewpoint 2,223,174,3,0x00FF00;
+ viewpoint 2,229,208,4,0x3355FF;
+ close;
+
+ case 3:
+ mes "[Moscovia Guide]";
+ mes "It'd be great to walk about alone.";
+ mes "Take care.";
+ close;
+ }
+} \ No newline at end of file
diff --git a/npc/pre-re/guides/guides_niflheim.txt b/npc/pre-re/guides/guides_niflheim.txt
new file mode 100644
index 000000000..9a68d10d6
--- /dev/null
+++ b/npc/pre-re/guides/guides_niflheim.txt
@@ -0,0 +1,134 @@
+//===== rAthena Script =======================================
+//= Niflheim Guide
+//===== By: ==================================================
+//= L0ne_W0lf
+//===== Current Version: =====================================
+//= 1.3
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Official Conversion]
+//= Guides for the City of Niflheim
+//===== Additional Comments: =================================
+//= 1.1 Fixed location command format [Lupus]
+//= 1.2 Optimized, updated common guide names [Lupus]
+//= 1.3 Rescripted to official 10.3 standards. [L0ne_W0lf]
+//============================================================
+
+niflheim,107,156,6 script Roaming Man#nif 798,{
+ mes "[Ricael]";
+ mes "You must be lost...";
+ mes "Why would anyone come";
+ mes "to this horrid, dreadful";
+ mes "place on purpose...??";
+ next;
+ mes "[Ricael]";
+ mes "Ever since I stumbled fell down into this giant tree, I've suffered endlessly here. I've wasted years in sadness, being unable to escape Niflheim.";
+ next;
+ mes "[Ricael]";
+ mes "But in searching for an";
+ mes "escape route, I probably know";
+ mes "this town better than anyone";
+ mes "else. I guess knowing the";
+ mes "layout might help you escape";
+ mes "if it weren't so futile.";
+ next;
+ switch(select("Ask building locations.:Remove marks on the mini-map.:Cancel.")) {
+ case 1:
+ mes "[Ricael]";
+ mes "So, um, which place do you want to know about?";
+ next;
+ switch(select("Witch's castle:Tool shop:Weapon shop:Pub:Cancel")) {
+ case 1:
+ mes "[Ricael]";
+ mes "There. I made a ^FF3355+^000000 mark";
+ mes "on your mini-map so that you can";
+ mes "go to the castle where that";
+ mes "creepy witch lives.";
+ next;
+ mes "[Ricael]";
+ mes "I went there once, but then I";
+ mes "ran away and decided that I";
+ mes "should try to not die as much";
+ mes "as possible. That's pretty";
+ mes "much my life goal here in";
+ mes "Niflheim.";
+ viewpoint 1,253,191,2,0xFF3355;
+ break;
+ case 2:
+ mes "[Ricael]";
+ mes "The Tool shop is located";
+ mes "at the ^CE6300+^000000 mark I made";
+ mes "on your mini-map.";
+ next;
+ mes "[Ricael]";
+ mes "They sell some unique items that";
+ mes "you cannot find outside of this";
+ mes "town. Of course, they weren't so";
+ mes "special once I realized no";
+ mes "Potion can ease the pain I feel.";
+ mes "...I wish I was in prison.";
+ Emotion e_wah;
+ viewpoint 1,217,196,3,0xCE6300;
+ break;
+ case 3:
+ mes "[Ricael]";
+ mes "The Weapon shop is located";
+ mes "at the ^55FF33+^000000 mark I made";
+ mes "on your mini-map.";
+ next;
+ mes "[Ricael]";
+ mes "They sell some unique items which";
+ mes "you cannot find outside of this";
+ mes "town... Of course, fighting";
+ mes "the monsters here will just";
+ mes "make them angrier. You may as";
+ mes "well let them eat you.";
+ Emotion e_wah;
+ viewpoint 1,216,171,4,0x55FF33;
+ break;
+ case 4:
+ mes "[Ricael]";
+ mes "The Pub is located at";
+ mes "the ^3355FF+^000000 mark I've made";
+ mes "on your mini-map.";
+ next;
+ mes "[Ricael]";
+ mes "Sometimes I see dead people in the";
+ mes "Pub enjoying themselves, having a";
+ mes "good time. I used to be able to";
+ mes "have fun once, but now all I feel";
+ mes "is the cold tingle of loneliness";
+ mes "and despair...every waking moment.";
+ viewpoint 1,189,207,5,0x3355FF;
+ break;
+ case 5:
+ mes "[Ricael]";
+ mes "If you want to remove the location";
+ mes "marks from your mini-map, please";
+ mes "choose 'Remove marks on the";
+ mes "mini-map' from the menu.";
+ }
+ break;
+ case 2:
+ viewpoint 2,253,191,2,0xFF3355;
+ viewpoint 2,217,196,3,0xCE6300;
+ viewpoint 2,216,171,4,0x55FF33;
+ viewpoint 2,189,207,5,0x3355FF;
+ mes "[Ricael]";
+ mes "I removed the location marks from";
+ mes "your mini-map. Go ahead and ask";
+ mes "me if you want to mark the";
+ mes "building locations again. It";
+ mes "helps me ignore the depression";
+ mes "that gnaws at me constantly.";
+ break;
+ case 3:
+ mes "[Ricael]";
+ mes "It's not a good idea to search";
+ mes "Niflheim by yourself...";
+ mes "At least try to be careful.";
+ break;
+ }
+ close;
+}
diff --git a/npc/pre-re/guides/guides_payon.txt b/npc/pre-re/guides/guides_payon.txt
new file mode 100644
index 000000000..11e7cc57b
--- /dev/null
+++ b/npc/pre-re/guides/guides_payon.txt
@@ -0,0 +1,296 @@
+//===== rAthena Script =======================================
+//= Payon Guides
+//===== By: ==================================================
+//= kobra_k88; L0ne_W0lf
+//===== Current Version: =====================================
+//= 1.6
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Official COnversion]
+//= Guides for the City of Payon
+//===== Additional Comments: =================================
+//= 1.1 Now using duplicate command.New Payon Locations [Darkchild]
+//= 1.2 Optimized, updated common guide names [Lupus]
+//= 1.3 Updated the guide according to how it is on iRO, thanks [MasterOfMuppets]
+//= to Muad_Dib
+//= 1.3a Fixed some problems with duplicated text, thanks to muad_dib [MasterOfMuppets]
+//= 1.4 Fitted the many lines into 1 or 2, and corrected some typos [erKURITA]
+//= 1.4a Tixed Archer Village Guide [Lupus]
+//= 1.5 Removed Duplicates [Silent]
+//= 1.6 Rescripted to official 10.3 standards. [L0ne_W0lf]
+//============================================================
+
+payon,162,67,4 script Guide#pay 708,{
+ cutin "pay_soldier",2;
+ mes "[Payon Guide]";
+ mes "Welcome to the";
+ mes "mountain city of Payon.";
+ mes "If you're unfamiliar with this";
+ mes "area, I can help you find what";
+ mes "you're looking for around here.";
+ set .@loop1,1;
+ while (.@loop1) {
+ next;
+ switch(select("City Guide:Remove Marks from Mini-Map:Notice.:Cancel")) {
+ case 1:
+ mes "[Payon Guide]";
+ mes "Please select";
+ mes "a location from";
+ mes "the following menu.";
+ if (.@compass_check == 0) {
+ mes "Would you like me";
+ mes "to mark locations";
+ mes "on your Mini-Map?";
+ next;
+ if (select("Yes.:No.") == 1) set .@compass_check,1;
+ }
+ set .@loop2,1;
+ while(.@loop2) {
+ if (.@wait_button_chk == 0) set .@wait_button_chk,1;
+ else next;
+ switch(select("^FF0000Archer Guild^000000:Weapon Shop:Tool Shop:Pub:Central Palace:The Empress:Palace Annex:Royal Kitchen:Forge:Cancel")) {
+ case 1:
+ mes "[Payon Guide]";
+ mes "The Archer Guild handles";
+ mes "Job Changes to the Archer";
+ mes "Class. You'll need to enter";
+ mes "the Archer Village which is";
+ mes "to the northeast of Payon.";
+ if (.@compass_check)
+ viewpoint 1,227,328,2,0xFF0000;
+ break;
+ case 2:
+ mes "[Payon Guide]";
+ mes "The Weapon Shop";
+ mes "can be found in the";
+ mes "northwest corner of";
+ mes "the city of Payon.";
+ if (.@compass_check)
+ viewpoint 1,139,159,3,0xFF00FF;
+ break;
+ case 3:
+ mes "[Payon Guide]";
+ mes "The Tool Shop";
+ mes "is located near";
+ mes "the northwest";
+ mes "corner of Payon.";
+ if (.@compass_check)
+ viewpoint 1,144,85,4,0xFF00FF;
+ break;
+ case 4:
+ mes "[Payon Guide]";
+ mes "The Pub can be";
+ mes "found in the northeast";
+ mes "part of Payon. It's the";
+ mes "best place to relax after";
+ mes "a long day of hunting.";
+ if (.@compass_check)
+ viewpoint 1,220,117,5,0xFF00FF;
+ break;
+ case 5:
+ mes "[Payon Guide]";
+ mes "The Central Palace";
+ mes "is located to the north";
+ mes "within the city of Payon.";
+ if (.@compass_check)
+ viewpoint 1,155,245,6,0x00FF00;
+ break;
+ case 6:
+ mes "[Payon Guide]";
+ mes "The Empress";
+ mes "can be found to the";
+ mes "northwest in Payon.";
+ if (.@compass_check)
+ viewpoint 1,107,324,7,0x00FF00;
+ break;
+ case 7:
+ mes "[Payon Guide]";
+ mes "The Palace Annex";
+ mes "can be found in the";
+ mes "western part of Payon.";
+ if (.@compass_check)
+ viewpoint 1,130,204,8,0x00FF00;
+ break;
+ case 8:
+ mes "[Payon Guide]";
+ mes "The Royal Kitchen";
+ mes "is located near the";
+ mes "northern end of Payon.";
+ if (.@compass_check)
+ viewpoint 1,154,325,9,0x00FF00;
+ break;
+ case 9:
+ mes "[Payon Guide]";
+ mes "The Forge is";
+ mes "situated near";
+ mes "the center of Payon.";
+ if (.@compass_check)
+ viewpoint 1,126,169,10,0xFFFF00;
+ break;
+ case 10:
+ mes "[Payon Guide]";
+ mes "Please ask me to ''Remove";
+ mes "Marks from Mini-Map'' if you";
+ mes "no longer wish to have the";
+ mes "location marks displayed";
+ mes "on your Mini-Map.";
+ set .@loop2,0;
+ break;
+ }
+ }
+ break;
+ case 2:
+ viewpoint 2,237,41,2,0x00FF00;
+ viewpoint 2,237,41,3,0x0000FF;
+ viewpoint 2,46,345,4,0xFF00FF;
+ viewpoint 2,175,220,5,0xFF0000;
+ viewpoint 2,175,220,6,0xFF0000;
+ viewpoint 2,175,220,7,0xFF0000;
+ viewpoint 2,237,41,8,0x0000FF;
+ viewpoint 2,46,345,9,0x00FF00;
+ viewpoint 2,175,220,10,0xFF0000;
+ set .@compass_check,0;
+ break;
+ case 3:
+ mes "[Payon Guide]";
+ mes "Advances in sorcery and";
+ mes "technology have allowed";
+ mes "us to update our information";
+ mes "system, enabling up to mark";
+ mes "locations on your Mini-Map";
+ mes "for easier navigation.";
+ next;
+ mes "[Payon Guide]";
+ mes "Your Mini-Map is located";
+ mes "in the upper right corner";
+ mes "of the screen. If you can't";
+ mes "see it, press the Ctrl + Tab";
+ mes "keys or click the ''Map'' button in your Basic Info Window.";
+ next;
+ mes "[Payon Guide]";
+ mes "On your Mini-Map,";
+ mes "click on the ''+'' and ''-''";
+ mes "symbols to zoom in and";
+ mes "our of your Mini-Map. We";
+ mes "hope you enjoy your travels";
+ mes "here in the city of Payon.";
+ break;
+ case 4:
+ mes "[Payon Guide]";
+ mes "Be safe in";
+ mes "your travels,";
+ mes "brave adventurer.";
+ close2;
+ set .@loop1,0;
+ break;
+ }
+ }
+ cutin "pay_soldier",255;
+ end;
+}
+
+pay_arche,85,30,2 script Guide#2pay 708,{
+ cutin "pay_soldier",2;
+ mes "[Payon Guide]";
+ mes "Welcome to the";
+ mes "mountain city of Payon.";
+ mes "If you're unfamiliar with this";
+ mes "area, I can help you find what";
+ mes "you're looking for around here.";
+ set .@loop1,1;
+ while (.@loop1) {
+ next;
+ switch(select("City Guide:Remove Marks from Mini-Map:Notice:Cancel")) {
+ case 1:
+ mes "[Payon Guide]";
+ mes "Please, select a menu.";
+ if (.@compass_check == 0) {
+ mes "Would you like to leave indicators on the mini-map?";
+ next;
+ if (select("Yes.:No.") == 1) set .@compass_check,1;
+ }
+ set .@loop2,1;
+ while(.@loop2) {
+ if (.@wait_button_chk == 0) set .@wait_button_chk,1;
+ else next;
+ switch(select("^FF0000Archer Guild^000000:Tool Shop:Payon Dungeon:Cancel")) {
+ case 1:
+ mes "[Payon Guide]";
+ mes "The Archer Guild,";
+ mes "found northeast in";
+ mes "the Archer Village,";
+ mes "handles Job Changes";
+ mes "to the Archer Class.";
+ if (.@compass_check)
+ viewpoint 1,144,164,0,0xFFFF00;
+ break;
+ case 2:
+ mes "[Payon Guide]";
+ mes "You can find";
+ mes "a Tool Shop in";
+ mes "the northeast corner";
+ mes "of the Archer Village.";
+ if (.@compass_check)
+ viewpoint 1,71,156,1,0xFFFF00;
+ break;
+ case 3:
+ mes "[Payon Guide]";
+ mes "The entrance to";
+ mes "the Payon Dungeon";
+ mes "is located at the west";
+ mes "end of the village.";
+ if (.@compass_check)
+ viewpoint 1,34,132,2,0xFFFFFF;
+ break;
+ case 4:
+ mes "[Payon Guide]";
+ mes "If you'd like to erase the marks on the mini-map, select menu, 'Wipe all indicators on the mini-map'.";
+ set @loop2,0;
+ break;
+ }
+ }
+ break;
+ case 2:
+ viewpoint 2,237,41,0,0xFF00FF;
+ viewpoint 2,237,41,1,0xFF0000;
+ viewpoint 2,46,345,2,0xFF00FF;
+ set .@compass_check,0;
+ break;
+ case 3:
+ mes "[Payon Guide]";
+ mes "Advances in sorcery and";
+ mes "technology have allowed";
+ mes "us to update our information";
+ mes "system, enabling up to mark";
+ mes "locations on your Mini-Map";
+ mes "for easier navigation.";
+ next;
+ mes "[Payon Guide]";
+ mes "Your Mini-Map is located";
+ mes "in the upper right corner";
+ mes "of the screen. If you can't";
+ mes "see it, press the Ctrl + Tab";
+ mes "keys or click the ''Map'' button in your Basic Info Window.";
+ next;
+ mes "[Payon Guide]";
+ mes "On your Mini-Map,";
+ mes "click on the ''+'' and ''-''";
+ mes "symbols to zoom in and";
+ mes "our of your Mini-Map. We";
+ mes "hope you enjoy your travels";
+ mes "here in the city of Payon.";
+ break;
+ case 4:
+ mes "[Payon Guide]";
+ mes "Be safe in";
+ mes "your travels,";
+ mes "brave adventurer.";
+ close2;
+ set .@loop1,0;
+ break;
+ }
+ }
+ cutin "pay_soldier",255;
+ end;
+}
diff --git a/npc/pre-re/guides/guides_prontera.txt b/npc/pre-re/guides/guides_prontera.txt
new file mode 100644
index 000000000..8a3f87f61
--- /dev/null
+++ b/npc/pre-re/guides/guides_prontera.txt
@@ -0,0 +1,242 @@
+//===== rAthena Script =======================================
+//= Prontera Guides
+//===== By: ==================================================
+//= kobra_k88; L0ne_W0lf
+//===== Current Version: =====================================
+//= 1.6a
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Official Conversion]
+//= Guides for the City of Prontera
+//===== Additional Comments: =================================
+//= 1.1 Now using duplicate command.
+//= 1.2 Optimized, updated common guide names [Lupus]
+//= 1.3 Updated the guide according to how it is on iRO, thanks [MasterOfMuppets]
+//= to Muad_Dib
+//= 1.4 Fitted the many lines into 1 or 2, and corrected some typos [erKURITA]
+//= 1.5 Removed Duplicates [Silent]
+//= 1.6 Rescripted to official 10.3 standards. [L0ne_W0lf]
+//= 1.6a Fixed some errors with the loop. [Samuray22]
+// -Thanks to $ephiroth.
+//= 1.6b Fixed a Problem with Unnecesary RGB Values. [Samuray22]
+// -Thanks to Brainstorm.
+//============================================================
+
+prontera,154,187,4 script Guide#prt::PrtGuide 105,{
+ cutin "prt_soldier",2;
+ mes "[Prontera Guide]";
+ mes "Welcome to Prontera,";
+ mes "the beautiful capital of the";
+ mes "Rune-Midgarts Kingdom. If";
+ mes "you have questions or need help finding something in the city, don't hesitate to ask.";
+ set .@loop1,1;
+ while (.@loop1) {
+ next;
+ switch(select("City Guide.:Remove Marks from Mini-Map:Notice:Cancel")) {
+ case 1:
+ mes "[Prontera Guide]";
+ mes "Please select";
+ mes "a location from";
+ mes "the following menu.";
+ if (.@compass_check == 0) {
+ mes "Would you like me";
+ mes "to mark locations";
+ mes "on your Mini-Map?";
+ next;
+ if (select("Yes:No") == 1) set .@compass_check,1;
+ }
+ set .@loop2,1;
+ while (.@loop2) {
+ if (.@wait_button_chk == 0) set .@wait_button_chk,1;
+ else next;
+
+ switch(select("Swordman Association:^0000FFSanctuary^000000:Prontera Chivalry:Weapon Shop:Tool Shop:Inn:Trading Post:Pub:Library:Job Agency:Prontera Castle:City Hall:Cancel")) {
+ case 1:
+ mes "[Prontera Guide]";
+ mes "The Swordman Association,";
+ mes "which handles Job Changes";
+ mes "to the Swordman class, has";
+ mes "moved to Izlude. This facility";
+ mes "is just an empty building now.";
+ if (.@compass_check)
+ viewpoint 1,237,41,4,0x00FF00;
+ break;
+ case 2:
+ mes "[Prontera Guide]";
+ mes "The Prontera Sanctuary";
+ mes "handles Job Changes to";
+ mes "the Acolyte class, and can";
+ mes "be found in the northeast";
+ mes "corner of Prontera.";
+ if (.@compass_check)
+ viewpoint 1,236,316,5,0xFF0000;
+ break;
+ case 3:
+ mes "[Prontera Guide]";
+ mes "The Prontera Chivralry,";
+ mes "which is responsible for";
+ mes "the safety of our capital, is";
+ mes "in Prontera's northwest corner.";
+ if (.@compass_check)
+ viewpoint 1,46,345,6,0x00FF00;
+ break;
+ case 4:
+ mes "[Prontera Guide]";
+ mes "The Weapon Shop";
+ mes "is located northeast";
+ mes "of the central fountain.";
+ if (.@compass_check)
+ viewpoint 1,175,220,7,0xFF00FF;
+ break;
+ case 5:
+ mes "[Prontera Guide]";
+ mes "The Tool Shop";
+ mes "is located northwest";
+ mes "of the central fountain.";
+ if (.@compass_check)
+ viewpoint 1,134,221,8,0xFF00FF;
+ break;
+ case 6:
+ mes "[Prontera Guide]";
+ mes "The Inns in Prontera are";
+ mes "located both to the east";
+ mes "and west of Prontera's";
+ mes "central fountain area.";
+ if (.@compass_check) {
+ viewpoint 1,204,191,9,0xFF00FF;
+ viewpoint 1,107,192,10,0xFF00FF;
+ }
+ break;
+ case 7:
+ mes "[Prontera Guide]";
+ mes "The Trading Post";
+ mes "can be found southeast";
+ mes "from the central fountain.";
+ if (.@compass_check)
+ viewpoint 1,179,184,11,0x00FF00;
+ break;
+ case 8:
+ mes "[Prontera Guide]";
+ mes "The Pub is located";
+ mes "southeast of the fountain,";
+ mes "behind the Trading Post.";
+ if (.@compass_check)
+ viewpoint 1,208,154,12,0x00FF00;
+ break;
+ case 9:
+ mes "[Prontera Guide]";
+ mes "If you head north from";
+ mes "the central fountain, you'll";
+ mes "find an empty area in which";
+ mes "both branches of the Prontera";
+ mes "Library can be accessed if you";
+ mes "head towards the east or west.";
+ if (.@compass_check) {
+ viewpoint 1,120,267,13,0x00FF00;
+ viewpoint 1,192,267,14,0x00FF00;
+ }
+ break;
+ case 10:
+ mes "[Prontera Guide]";
+ mes "The Job Agency is";
+ mes "just southwest of the";
+ mes "central fountain area.";
+ if (.@compass_check)
+ viewpoint 1,133,183,15,0x00FF00;
+ break;
+ case 11:
+ mes "[Prontera Guide]";
+ mes "The Prontera Castle is";
+ mes "located at the northern";
+ mes "sector of this city. You can";
+ mes "go to the fields that are north";
+ mes "of Prontera by going through";
+ mes "the castle's rear exit.";
+ if (.@compass_check)
+ viewpoint 1,156,360,16,0x00FF00;
+ break;
+ case 12:
+ mes "[Prontera Guide]";
+ mes "The City Hall";
+ mes "is located in the";
+ mes "southwest corner";
+ mes "in our city of Prontera.";
+ if (.@compass_check)
+ viewpoint 1,75,91,17,0x01FF01;
+ break;
+ case 13:
+ mes "[Prontera Guide]";
+ mes "Please ask me to ''Remove";
+ mes "Marks from Mini-Map'' if you";
+ mes "no longer wish to have the";
+ mes "location marks displayed";
+ mes "on your Mini-Map.";
+ set .@loop2,0;
+ break;
+ }
+ }
+ break;
+ case 2:
+ viewpoint 2,237,41,4,0x00FF00;
+ viewpoint 2,237,41,5,0x0000FF;
+ viewpoint 2,46,345,6,0x00FF00;
+ viewpoint 2,175,220,7,0xFF0000;
+ viewpoint 2,134,221,8,0xFF0000;
+ viewpoint 2,204,191,9,0xFF0000;
+ viewpoint 2,107,192,10,0xFF0000;
+ viewpoint 2,179,184,11,0x00FF00;
+ viewpoint 2,208,154,12,0x00FF00;
+ viewpoint 2,120,267,13,0x00FF00;
+ viewpoint 2,192,267,14,0x00FF00;
+ viewpoint 2,133,183,15,0x00FF00;
+ viewpoint 2,156,360,16,0x00FF00;
+ viewpoint 2,75,91,17,0x00FF00;
+ set .@compass_check,0;
+ break;
+ case 3:
+ mes "[Prontera Guide]";
+ mes "Advances in sorcery and";
+ mes "technology have allowed";
+ mes "us to update our information";
+ mes "system, enabling up to mark";
+ mes "locations on your Mini-Map";
+ mes "for easier navigation.";
+ next;
+ mes "[Prontera Guide]";
+ mes "Your Mini-Map is located";
+ mes "in the upper right corner";
+ mes "of the screen. If you can't";
+ mes "see it, press the Ctrl + Tab";
+ mes "keys or click the ''Map'' button in your Basic Info Window.";
+ next;
+ mes "[Prontera Guide]";
+ mes "On your Mini-Map,";
+ mes "click on the ''+'' and ''-''";
+ mes "symbols to zoom in and";
+ mes "our of your Mini-Map. We";
+ mes "hope you enjoy your travels";
+ mes "here in the city of Prontera.";
+ break;
+ case 4:
+ mes "[Prontera Guide]";
+ mes "Well, adventurer...";
+ mes "I hope your journeys";
+ mes "through Rune-Midgard";
+ mes "are both fun and safe.";
+ close2;
+ set .@loop1,0;
+ break;
+ }
+ }
+ cutin "prt_soldier",255;
+ end;
+}
+
+prontera,282,208,2 duplicate(PrtGuide) East Gate-Guide 105
+
+prontera,29,200,6 duplicate(PrtGuide) West Gate-Guide 105
+
+prontera,160,29,0 duplicate(PrtGuide) South Gate-Guide 105
+
+prontera,151,330,4 duplicate(PrtGuide) North Gate-Guide 105
diff --git a/npc/pre-re/guides/guides_rachel.txt b/npc/pre-re/guides/guides_rachel.txt
new file mode 100644
index 000000000..d9fc74475
--- /dev/null
+++ b/npc/pre-re/guides/guides_rachel.txt
@@ -0,0 +1,116 @@
+//===== rAthena Script =======================================
+//= Rachel Guide
+//===== By: ==================================================
+//= L0ne_W0lf
+//===== Current Version: =====================================
+//= 1.2b
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Official Conversion]
+//= Rachel City guide
+//===== Additional Comments: =================================
+//= 1.0 First version. [L0ne_W0lf]
+//= 1.1 Change the while loops a bit. [L0ne_W0lf]
+//= 1.2 Deleted an Unnecessary "next;" [Samuray22]
+// -Thanks to $ephiroth.
+//= 1.2a Fixed some errors with the loop[Samuray22]
+// -Thanks to $ephiroth.
+//= 1.2b Deleted a unnecessary "end". [Samuray22]
+//============================================================
+
+rachel,138,146,5 script Rachel Guide 934,{
+ mes "[Rachel Guide]";
+ mes "Welcome to the capital of";
+ mes "Arunafeltz, Rachel where a warm";
+ mes "breath of goddess Freya reaches.";
+ mes "If this is the first time for you";
+ mes "to use the guide services, why";
+ mes "don't you check the \"Notice\" menu first?";
+ set .@loop1,1;
+ while(.@loop1) {
+ next;
+ switch(select("Village Guide:Remove Marks from Mini-Map:Notice:Cancel")) {
+ case 1:
+ mes "[Rachel Guide]";
+ mes "I can tell you any building location as long as it is in Rachel.";
+ mes "So where do you want to go?";
+ if (.@compass_check == 0) {
+ mes "Would you like me";
+ mes "to mark locations";
+ mes "on your Mini-Map?";
+ next;
+ if (select("Yes:No") == 1) set .@compass_check,1;
+ }
+ set .@loop2,1;
+ while(.@loop2) {
+ if (.@wait_button_chk == 0) set .@wait_button_chk,1;
+ else next;
+
+ switch(select("Cheshrumnir:Inn:Weapon Shop:Tool Shop:Airport:Cancel")) {
+ case 1:
+ mes "[Rachel Guide]";
+ mes "Cheshrumnir is a holy ground where pope, the incarnation of goddess Freya stays.";
+ mes "Take the road to the norh to find the building.";
+ if (.@compass_check == 1) viewpoint 1,150,249,1,0xFF0000;
+ break;
+ case 2:
+ mes "[Rachel Guide]";
+ mes "You can rest your fatigue off the journey in the Inn.";
+ mes "The left building next to me is the Inn of Rachel.";
+ if (.@compass_check == 1) viewpoint 1,115,149,2,0xFF00FF;
+ break;
+ case 3:
+ mes "[Rachel Guide]";
+ mes "Do you want to check out the weapons that are sold in Rachel?";
+ mes "The weapon shop is located nearby the western gate.";
+ if (.@compass_check == 1) viewpoint 1,42,87,3,0x99FFFF;
+ break;
+ case 4:
+ mes "[Rachel Guide]";
+ mes "Rachel tool shop sells the best quality potions.";
+ mes "It's located nearby the western gate.";
+ if (.@compass_check == 1) viewpoint 1,83,78,4,0x0000FF;
+ break;
+ case 5:
+ mes "[Rachel Guide]";
+ mes "The Airport is located outside the eastern gate.";
+ if (.@compass_check == 1) viewpoint 1,273,125,5,0x00FF00;
+ break;
+ case 6:
+ mes "[Rachel Guide]";
+ mes "If you like to get rid of all the location marks on your Mini-Map,";
+ mes "just ask me again, and choose \"Remove Marks from Mini-Map\" menu.";
+ set .@loop2,0;
+ break;
+ }
+ }
+ break;
+
+ case 2:
+ viewpoint 2,150,249,1,0xFF0000;
+ viewpoint 2,115,149,2,0xFF00FF;
+ viewpoint 2,42,87,3,0x99FFFF;
+ viewpoint 2,83,78,4,0x0000FF;
+ viewpoint 2,273,125,5,0x00FF00;
+ mes "[Rachel Guide]";
+ mes "Okay, they are gone now. If you have more locations to ask, just let me know.";
+ break;
+ case 3:
+ mes "[Rachel Guide]";
+ mes "When you are using the ''Village Guide'' menu,";
+ mes "make sure that building locations will be marked on your mini-map at the upper right side of your screen.";
+ mes "If you cannot see your mini-map, use the short cut key ''ctrl+tab'' or press the ''Map'' button on your basic information windows, okay?";
+ mes "And you can also zoom out your mini-map by using the ''-'' button in case you cannot view the entire map of the village.";
+ break;
+ case 4:
+ mes "[Rachel Guide]";
+ mes "Hope you have a wonderfull journey";
+ mes "in Arunafeltz.";
+ close2;
+ set .@loop1,0;
+ break;
+ }
+ }
+ close;
+}
diff --git a/npc/pre-re/guides/guides_umbala.txt b/npc/pre-re/guides/guides_umbala.txt
new file mode 100644
index 000000000..aab2f362d
--- /dev/null
+++ b/npc/pre-re/guides/guides_umbala.txt
@@ -0,0 +1,124 @@
+//===== rAthena Script =======================================
+//= Umbala Guides
+//===== By: ==================================================
+//= Dizzy, Translated by Celest; L0ne_W0lf
+//===== Current Version: =====================================
+//= 1.5
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Official Conversion]
+//= Guide for the City of Umbala
+//===== Additional Comments: =================================
+//= 1.1 Fixed location command format [Lupus]
+//= 1.2 Optimized, updated common guide names [Lupus]
+//= 1.4 Fitted the many lines into 1 or 2, and corrected some typos [erKURITA]
+//= 1.5 Rescripted to official 10.3 standards. [L0ne_W0lf]
+//= 1.6 Corrected activating ontouch. [L0ne_W0lf]
+//============================================================
+
+umbala,128,94,4 script Adventurer#um 702,{
+ mes "[Adventurer]";
+ mes "This is a very strange place...";
+ mes "It's underdeveloped, and there";
+ mes "are a number of complex, winding paths...";
+ next;
+ mes "[Adventurer]";
+ mes "However, since I have been here";
+ mes "for months, I am familiar with";
+ mes "this area's geography and points";
+ mes "of interest in this village.";
+ mes "You're welcome to ask me about the";
+ mes "locations of buildings.";
+ next;
+ switch(select("Locations of buildings.:Remove marks on the mini map.:Quit.")) {
+ case 1:
+ mes "[Adventurer]";
+ mes "So, which one do you want to check?";
+ next;
+ switch(select("Chief's House:Shaman's House:Weapon Shop:Tool Shop:Bungee Jump Place:Cancel")) {
+ case 1:
+ mes "[Adventurer]";
+ mes "I have made a ^FF3355+^000000 mark";
+ mes "on your mini map.";
+ next;
+ mes "[Adventurer]";
+ mes "Only the chief knows the language";
+ mes "of the outside world. So you'd";
+ mes "better visit him before anything else.";
+ viewpoint 1,66,250,2,0xFF3355;
+ break;
+ case 2:
+ mes "[Adventurer]";
+ mes "I have made a ^CE6300+^000000 mark";
+ mes "on your mini map.";
+ next;
+ mes "[Adventurer]";
+ mes "The Utan Shaman has some";
+ mes "sort of mystic power...";
+ mes "People say she can create rough";
+ mes "enchanted stones, and divide a";
+ mes "pure enchanted stone into rough ones.";
+ viewpoint 1,217,186,3,0xCE6300;
+ break;
+ case 3:
+ mes "[Adventurer]";
+ mes "I have made a ^55FF33+^000000 mark";
+ mes "on your mini map.";
+ next;
+ mes "[Adventurer]";
+ mes "The Utans are usually well armed";
+ mes "in preparation for attacks from";
+ mes "their enemies. Apparently, they";
+ mes "have been attacked from the outside many times in the past.";
+ viewpoint 1,126,154,4,0x55FF33;
+ break;
+ case 4:
+ mes "[Adventurer]";
+ mes "I have made a ^3355FF+^000000 mark";
+ mes "on your mini map.";
+ next;
+ mes "[Adventurer]";
+ mes "There are many useful things for";
+ mes "traveling in the Tool Shop, so why don't you go look around?";
+ viewpoint 1,136,127,5,0x3355FF;
+ break;
+ case 5:
+ mes "[Adventurer]";
+ mes "I have made a ^00FF00+^000000 mark";
+ mes "on your mini map.";
+ next;
+ mes "[Adventurer]";
+ mes "Umbala has a unique locale called";
+ mes "the 'Bungee Jump Place'.";
+ mes "If you're interested in testing";
+ mes "your courage, why don't you go";
+ mes "and partake in this Utan";
+ mes "ritual yourself?";
+ viewpoint 1,139,198,6,0x00FF00;
+ break;
+ case 6:
+ mes "[Adventurer]";
+ mes "If you want to remove the location";
+ mes "marks on your mini map, please";
+ mes "choose 'Remove marks on the mini map' menu.";
+ }
+ break;
+ case 2:
+ viewpoint 2,66,250,2,0xFF3355;
+ viewpoint 2,217,186,3,0xCE6300;
+ viewpoint 2,126,154,4,0x55FF33;
+ viewpoint 2,136,127,5,0x3355FF;
+ viewpoint 2,139,198,6,0x00FF00;
+ mes "[Adventurer]";
+ mes "I removed all the marks from your";
+ mes "mini map. Feel free to ask me";
+ mes "again if you want me to mark building locations.";
+ break;
+ case 3:
+ mes "[Adventurer]";
+ mes "It's fun to learn Utan culture on your own. Take care.";
+ break;
+ }
+ close;
+}
diff --git a/npc/pre-re/guides/guides_veins.txt b/npc/pre-re/guides/guides_veins.txt
new file mode 100644
index 000000000..92c5d9558
--- /dev/null
+++ b/npc/pre-re/guides/guides_veins.txt
@@ -0,0 +1,129 @@
+//===== rAthena Script =======================================
+//= Veins Guide
+//===== By: ==================================================
+//= L0ne_W0lf
+//===== Current Version: =====================================
+//= 1.2
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Official Conversion]
+//= Veins City guide
+//===== Additional Comments: =================================
+//= 1.0 First version. [L0ne_W0lf]
+//= 1.1 Added second Veins guide NPC. [L0ne_W0lf]
+//= 1.2 Fixed a few small typos. [L0ne_W0lf]
+//============================================================
+
+veins,210,345,5 script Veins Guide#1::ve_guide 934,{
+ mes "[Veins Guide]";
+ mes "Desert City Veins welcomes adventurers seeking shelter from harsh sandstorms.";
+ mes "If this is the first time for you to use the guide services, why don't you check the...";
+ set .@loop1,1;
+ while(.@loop1) {
+ next;
+ switch(select("Village Guide:Remove Marks from Mini-Map:Notice:Cancel")) {
+ case 1:
+ mes "[Veins Guide]";
+ mes "I can tell you any building location as long as it is in Veins.";
+ mes "So where do you want to go?";
+ if (.@compass_check == 0) {
+ mes "Would you like me";
+ mes "to mark locations";
+ mes "on your Mini-Map?";
+ next;
+ if (select("Yes:No") == 1) set .@compass_check,1;
+ }
+ set .@loop2,1;
+ while(.@loop2) {
+ if (.@wait_button_chk == 0) set .@wait_button_chk,1;
+ else next;
+
+ switch(select("Temple:Inn:Weapon Shop:Tool Shop:Airship:Tavern:Geological Research Institute:Cancel")) {
+ case 1:
+ mes "[Veins Guide]";
+ mes "Our temple is located north,";
+ mes "and always crowded with sincere followers of Goddess Freya.";
+ if (.@compass_check == 1) viewpoint 1,196,258,1,0xFF0000;
+ break;
+ case 2:
+ mes "[Veins Guide]";
+ mes "You can rest your fatigue of the journey in the Inn.";
+ mes "The left building next to me is the Inn of Veins.";
+ if (.@compass_check == 1) viewpoint 1,128,266,2,0xFF00FF;
+ break;
+ case 3:
+ mes "[Veins Guide]";
+ mes "Yes, you should protect yourself from danger on your own.";
+ mes "Purchase high quality weapons at affordable prices.";
+ mes "The Veins Weapon Shop is located to the West.";
+ if (.@compass_check == 1) viewpoint 1,150,175,3,0x99FFFF;
+ break;
+ case 4:
+ mes "[Veins Guide]";
+ mes "Have you packed enough necessities for your adventure?";
+ mes "If not, I suggest you check what the Veins in the Center can offer you.";
+ if (.@compass_check == 1) viewpoint 1,230,161,4,0x0000FF;
+ break;
+ case 5:
+ mes "[Veins Guide]";
+ mes "Please be aware that Veins only operates cargo airships.";
+ if (.@compass_check == 1) viewpoint 1,273,285,5,0x00FF00;
+ break;
+ case 6:
+ mes "[Veins Guide]";
+ mes "If you'd like to make friends with";
+ mes "the townspeople, I suggest you";
+ mes "go have a drink at the tavern to";
+ mes "the west.";
+ if (.@compass_check == 1) viewpoint 1,150,217,6,0x00FF00;
+ break;
+ case 7:
+ mes "[Veins Guide]";
+ mes "Are you interested in studying geology?";
+ mes "Then you'd better go check out the";
+ mes "Geological Research Institute on";
+ mes "the 2nd floor of the weapon shop.";
+ if (.@compass_check == 1) viewpoint 1,150,175,7,0x00FF00;
+ break;
+ case 8:
+ mes "[Veins Guide]";
+ mes "If you like to get rid of all the location marks on your Mini-Map,";
+ mes "just ask me again, and choose 'Remove Marks from Mini-Map' menu.";
+ set .@loop2,0;
+ break;
+ }
+ }
+ break;
+
+ case 2:
+ viewpoint 2,196,258,1,0xFF0000;
+ viewpoint 2,128,266,2,0xFF00FF;
+ viewpoint 2,150,175,3,0x99FFFF;
+ viewpoint 2,230,161,4,0x0000FF;
+ viewpoint 2,273,285,5,0x00FF00;
+ viewpoint 2,150,217,6,0x00FF00;
+ viewpoint 2,150,175,7,0x00FF00;
+ mes "[Veins Guide]";
+ mes "Okay, they are gone now. If you have more locations to ask, just let me know.";
+ mes "Enjoy your stay in Veins.";
+ break;
+ case 3:
+ mes "[Veins Guide]";
+ mes "When you are using the ''Village Guide'' menu,";
+ mes "make sure that building locations will be marked on your mini-map at the upper right side of your screen.";
+ mes "If you cannot see your mini-map, use the short cut key ''ctrl+tab'' or press the ''Map'' button on your basic information windows, okay?";
+ mes "And you can also zoom out your mini-map by using the ''-'' button in case you cannot view the entire map of the village.";
+ break;
+ case 4:
+ mes "[Veins Guide]";
+ mes "Enjoy your stay in Veins.";
+ close2;
+ set .@loop1,0;
+ break;
+ }
+ }
+ close;
+}
+
+veins,189,101,5 duplicate(ve_guide) Veins Guide#2 934
diff --git a/npc/pre-re/jobs/1-1/acolyte.txt b/npc/pre-re/jobs/1-1/acolyte.txt
new file mode 100644
index 000000000..841a96524
--- /dev/null
+++ b/npc/pre-re/jobs/1-1/acolyte.txt
@@ -0,0 +1,470 @@
+//===== rAthena Script =======================================
+//= Acolyte Job Quest
+//===== By: ==================================================
+//= kobra_k88; L0ne_W0lf
+//===== Current Version: =====================================
+//= 2.2
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Official Conversion]
+//= Job quest for Acolyte classes
+//===== Additional Comments: =================================
+//= 1.0 Fully working.
+//= 1.1 Added function calls for Priest Quest.
+//= 1.2 Fixed Marthilda, Yosuke bugs. [Lupus]
+//= 1.2a Added instant job change for High Novice [Lupus]
+//= 1.3 Added Baby Class support [Lupus]
+//= 1.4 Optimised and moved first checker to Jfunc1-1 [massdriller]
+//= 1.5 Now saves/restores all quest skills [Lupus]
+//= 1.6 Merged back JFunc [Lupus]
+//= 1.7 Rescripted to Aegis 10.3 stadards. [L0ne_W0lf]
+//= No longer uses function "F_ToHigh"
+//= Proper dialog for Priest job quest is unused (for now.)
+//= 1.7a Functions now make use of proper priest quest dialog [L0ne_W0lf]
+//= 1.8 Removed an Unnecessary "set job_acolyte_q,0;" [Samuray22]
+//= 1.8a More bug fixes care of Crashy. [L0ne_W0lf]
+//= 1.9 Changed Marthilda to Mathilda. [L0ne_W0llf]
+//= 2.0 Fixed High Acolytesnot being given holy light. [L0ne_W0lf]
+//= 2.1 Added Quest Log commands. [L0ne_W0lf]
+//= 2.2 Fixed an issue with completequest by adding checkquest. [Kisuka]
+//============================================================
+
+prt_church,184,41,4 script Cleric#aco 60,{
+ if (Upper == 1) {
+ if (ADVJOB == Job_High_Priest || ADVJOB == Job_Champion) {
+ if (Class == Job_Novice_High) {
+ mes "[Father Mareusis]";
+ mes "Ah, I sense you have endured";
+ mes "a past life experience. You must have learned many things before entering Valhalla.";
+ next;
+ if (getskilllv("NV_BASIC") < 9) {
+ mes "[Father Mareusis]";
+ mes "Unfortunately, I don't think you're ready to become an Acolyte yet. Please finish learning all of the Basic Skills first.";
+ next;
+ mes "[Father Mareusis]";
+ mes "In the meantime,";
+ mes "I will wait until";
+ mes "you are ready.";
+ mes "May God be";
+ mes "with you.";
+ close;
+ }
+ mes "[Father Mareusis]";
+ mes "Well, I welcome you";
+ mes "back from Valhalla and";
+ mes "wish you luck on your";
+ mes "new life's journey.";
+ next;
+ skill 143,0,0;
+ jobchange Job_Acolyte_High;
+ skill 156,1,0;
+ mes "[Father Mareusis]";
+ mes "Now, venture forth and seek those who need your help. May God light your path.";
+ close;
+ }
+ else {
+ mes "[Father Mareusis]";
+ mes "Now, venture forth to seek people who need your help. May God enlighten your way.";
+ close;
+ }
+ }
+ else {
+ mes "[Father Mareusis]";
+ mes "I sense that you have endured a past life experience. You must have learned many things before entering Valhalla.";
+ next;
+ mes "[Father Mareusis]";
+ mes "However, I can tell that you are not suited to be an Acolyte. Please remember who you were in your past life and find your path.";
+ close;
+ }
+ }
+ mes "[Father Mareusis]";
+ mes "What is it that you seek?";
+ next;
+ switch(select("Father, I want to be a Acolyte.:Acolyte Requirements.:Just looking around.")) {
+ case 1:
+ mes "[Father Mareusis]";
+ if (BaseJob == Job_Acolyte) {
+ mes "Are you feeling okay today? I can tell by your attire that you are already an Acolyte. You're not joking around, are you?";
+ close;
+ }
+ else if (BaseJob != Job_Novice) {
+ mes "I'm sorry, but we can only accept Novices as applicants for the job change to Acolyte.";
+ close;
+ }
+ if (job_acolyte_q == 0) {
+ mes "Do you truly";
+ mes "wish to become";
+ mes "a servant of God?";
+ next;
+ if (select("Yes Father, I do.:Nope, I lied.") == 1) {
+ mes "[Father Mareusis]";
+ mes "Good. I accept " + strcharinfo(0) + "'s will to become an Acolyte. You understand that you must do penance before you can become a servant of God, right?";
+ next;
+ mes "[Father Mareusis]";
+ mes "Well, I will";
+ mes "give you a mission...";
+ switch(rand(3)) {
+ default:
+ set job_acolyte_q,2;
+ mes "Please visit ^000077Father Rubalkabara^000000, a member of the Prontera Parish, and return here. He has been practicing asceticism in the ^000077Relics NorthEast of Prontera City^000000.";
+ setquest 1001;
+ break;
+ case 1:
+ set job_acolyte_q,3;
+ mes "Please visit ^000077Mother Mathilda^000000 and then return to me. She has been practicing asceticism near ^000077Morroc Town, SouthWest of Prontera City^000000.";
+ setquest 1002;
+ break;
+ case 2:
+ set job_acolyte_q,4;
+ mes "Please visit ^000077Father Yosuke^000000 and return here. He has been practicing asceticism around ^000077a bridge somewhere NorthWest of Prontera^000000.";
+ setquest 1003;
+ break;
+ }
+ next;
+ mes "[Father Mareusis]";
+ mes "May the grace of God light your path and guide you during your journey of penance.";
+ close;
+ }
+ mes "[Father Mareusis]";
+ mes "You lied?";
+ mes "It is good that you";
+ mes "have confessed your";
+ mes "wrongdoing. Go in";
+ mes "peace, my son.";
+ close;
+ }
+ mes "Oh, you've come back. Let me check and see if you are ready to serve God. Let's see...";
+ next;
+ mes "[Father Mareusis]";
+ if (getskilllv("NV_BASIC") < 9) {
+ mes "Good Lord! Haven't you accomplished the Basic Training yet?! It's important that you finish that!";
+ next;
+ mes "[Father Mareusis]";
+ mes "You should have trained more! Go back and make sure you reach Novice Job Level 9 and learn all of the Basic Skills!";
+ close;
+ }
+ if (job_acolyte_q < 5) {
+ mes "Oh? I can't find your name on the Registration List.";
+ next;
+ switch(job_acolyte_q) {
+ case 2:
+ mes "[Father Mareusis]";
+ mes "Please visit ^000077Father Rubalkabara^000000, a member of the Prontera Parish, and return here.";
+ next;
+ mes "[Father Mareusis]";
+ mes "He has been practicing asceticism in the ^000077Relics at the NorthEast of Prontera City^000000.";
+ break;
+ case 3:
+ mes "[Father Mareusis]";
+ mes "Please Visit ^000077Mother Mathilda^000000 and return here to me.";
+ next;
+ mes "[Father Mareusis]";
+ mes "She has been practicing asceticism near ^000077Morroc Town, located SouthWest of Prontera City^000000.";
+ break;
+ case 4:
+ mes "[Father Mareusis]";
+ mes "Please visit ^000077 Father Yosuke ^000000 and return here to me.";
+ next;
+ mes "[Father Mareusis]";
+ mes "He has been practicing asceticism near a ^000077bridge somewhere to the NorthWest of Prontera^000000.";
+ break;
+ }
+ next;
+ mes "[Father Mareusis]";
+ mes "May the grace of God brighten your path and guide you on your journey of penance.";
+ close;
+ }
+ mes "Hmm...";
+ mes "Your name is on the list and you've proven your qualification.";
+ next;
+ mes "[Father Mareusis]";
+ mes "I am proud to say that you are now ready to become an Acolyte!";
+ next;
+ skill 143,0,0;
+ callfunc "Job_Change",Job_Acolyte;
+ callfunc "F_ClearJobVar";
+ if(checkquest(1001) != -1) {
+ completequest 1001;
+ }
+ else if(checkquest(1002) != -1) {
+ completequest 1002;
+ }
+ else {
+ completequest 1003;
+ }
+ mes "[Father Mareusis]";
+ mes "Always remember to be thankful to God, who is taking care of us all the time.";
+ next;
+ mes "[Father Mareusis]";
+ mes "Always use your gifts to serve Him by helping others. In chaos and times of difficulty, face your hardships with unwavering faith.";
+ next;
+ mes "[Father Mareusis]";
+ mes "Lastly, I want to sincerely congratulate you on persevering through your trial of penance.";
+ close;
+ case 2:
+ mes "[Father Mareusis]";
+ mes "Do you wish to become an Acolyte? You must fulfill two requirements.";
+ next;
+ mes "[Father Mareusis]";
+ mes "First, you have to reach at least Novice Job Level 9 and learn all of the Basic Skills. Second, you will be given a trial of penance to overcome.";
+ next;
+ mes "[Father Mareusis]";
+ if (job_acolyte_q != 0) {
+ switch(job_acolyte_q) {
+ case 2:
+ mes "For your trial, please visit ^000077Father Rubalkabara ^000000 and then return here to me.";
+ next;
+ mes "[Father Mareusis]";
+ mes "He is practicing asceticism in the ^000077Relics at the NorthEast of Prontera City^000000.";
+ break;
+ case 3:
+ mes "For your trial, please visit ^000077Mother Mathilda^000000 and return here to me.";
+ next;
+ mes "[Father Mareusis]";
+ mes "She has been practicing asceticism near ^000077Morroc, located to the SouthWest of Prontera City^000000.";
+ break;
+ default:
+ mes "For your trial, please visit ^000077Father Yosuke^000000 and return here to me.";
+ next;
+ mes "[Father Mareusis]";
+ mes "He has been practicing asceticism around a bridge somewhere ^000077NorthWest of Prontera^000000.";
+ break;
+ }
+ next;
+ mes "[Father Mareusis]";
+ mes "May the grace of God light your path and guide you on your journey of penance.";
+ }
+ else {
+ mes "The destination for this trial will be decided once you fill the application form.";
+ }
+ next;
+ mes "[Father Mareusis]";
+ mes "Please come back after fulfilling the two requirements I've asked of you. As long as your desire to serve God and others is sincere, you will be able to make it.";
+ close;
+ case 3:
+ close;
+ }
+}
+
+prt_fild03,365,255,2 script Ascetic#aco 89,{
+ mes "[Father Rubalkabara]";
+ if (BaseJob == Job_Novice) {
+ if (job_acolyte_q == 6) {
+ mes "Please take care. They should know that you've met me by the time you arrive at the Prontera Sanctuary.";
+ next;
+ mes "[Father Rubalkabara]";
+ mes "I've sent a carrier pigeon with a message. I hope it will arrive there safely...";
+ close;
+ }
+ if (job_acolyte_q != 0) {
+ if (job_acolyte_q == 2) {
+ mes "Oh...? You must be the one who aspires to become an Acolyte. I've already received news from the Sanctuary that you might be coming.";
+ next;
+ mes "[Father Rubalkabara]";
+ mes "Now, your name was " + strcharinfo(0) + ", right? Excellent, thank you for visiting me.";
+ next;
+ mes "[Father Rubalkabara]";
+ mes "I believe you've been told much about Acolytes from Friar Mareusis. Plus, there's plenty of helpful people in the Prontera Sanctuary.";
+ next;
+ mes "[Father Rubalkabara]";
+ mes "I guess there's really no need for me to teach you much. Besides, I'm sure your someone from your generation may have trouble listening to an old man like me. Hahaha~";
+ next;
+ mes "[Father Rubalkabara]";
+ mes "Still, lessons may come from the places you'd least expect. God loves to teach his children in strange ways. You'll see.";
+ next;
+ mes "[Father Rubalkabara]";
+ mes "Well, I'll send the message telling them that you've come to visit me. So, you may now return to the Prontera Sanctuary.";
+ next;
+ mes "[Father Rubalkabara]";
+ mes "Farewell.";
+ close2;
+ savepoint "prt_fild03",361,255;
+ set job_acolyte_q,6;
+ end;
+ }
+ else {
+ mes "Oh...";
+ mes "Are you one of the";
+ mes "Acolyte applicants...?";
+ mes "Let's see...";
+ next;
+ mes "[Father Rubalkabara]";
+ mes "Your name is " + strcharinfo(0) + "?";
+ mes "I don't think your name";
+ mes "is on my list. Hmmm...";
+ next;
+ mes "[Father Rubalkabara]";
+ mes "Why don't you go back to the Prontera Sanctuary and check again?";
+ close;
+ }
+ }
+ else {
+ mes "Huh? What brings you here? This is a very dangerous place for a Novice like yourself!";
+ close;
+ }
+ }
+ else if (BaseJob == Job_Acolyte) callfunc "F_FatherRub";
+ else {
+ if (BaseJob == Job_Priest) {
+ mes "Greetings.";
+ next;
+ mes "[Father Rubalkabara]";
+ mes "Welcome to the Deep. Feel free to sit and contemplate God's message with me. This place is beautiful, even if danger accompanies its sense of serenity...";
+ close;
+ }
+ else {
+ mes "Oh ho...";
+ mes "Have you come into the Deep here for training? Or are you just a Wanderer?";
+ next;
+ mes "[Father Rubalkabara]";
+ mes "Whoever you are, please take care of yourself. The monsters in here are shockingly strong, contrary to their cute appearance.";
+ close;
+ }
+ }
+}
+
+moc_fild07,41,355,4 script Ascetic#2aco 95,{
+ mes "[Mother Mathilda]";
+ if (BaseJob == Job_Novice) {
+ if (job_acolyte_q == 7) {
+ mes "I will send a carrier pigeon to the Prontera Sanctuary. When you return, the Priest there should already have received my message.";
+ next;
+ mes "[Mother Mathilda]";
+ mes "I will pray to God, and hope that you become an Acolyte soon.";
+ close;
+ }
+ if (job_acolyte_q != 0) {
+ if (job_acolyte_q == 3) {
+ mes "Ah, you must be one of the Acolyte applicants. I sincerely welcome you.";
+ next;
+ mes "[Mother Mathilda]";
+ mes "What is your name? " + strcharinfo(0) + "? Let's see... Ah, you're on my list.";
+ next;
+ mes "[Mother Mathilda]";
+ mes "I will send a message to the Sanctuary confirming that you, " + strcharinfo(0) + " visited me and completed your penance.";
+ next;
+ mes "[Mother Mathilda]";
+ mes "Please return to the Prontera Sanctuary and speak to the Priest in charge.";
+ close2;
+ savepoint "moc_fild07",35,355;
+ set job_acolyte_q,7;
+ end;
+ }
+ else {
+ mes "Ah...!";
+ mes "You must be one";
+ mes "of the Acolyte applicants.";
+ mes "I sincerely welcome you.";
+ next;
+ mes "[Mother Mathilda]";
+ mes "Now, what is your name?";
+ mes "" + strcharinfo(0) + "? Let's see...";
+ next;
+ mes "[Mother Mathilda]";
+ mes "Hmm...";
+ mes "It seems your name";
+ mes "is not on my list...";
+ next;
+ mes "[Mother Mathilda]";
+ mes "Perhaps you should return to the Prontera Sanctuary and check the destination for your penance trial once again.";
+ close;
+ }
+ }
+ else {
+ mes "...";
+ close;
+ }
+ }
+ else if (BaseJob == Job_Acolyte) callfunc "F_MotherMart";
+ else {
+ if (BaseJob == Job_Priest) {
+ mes "Hello there~";
+ next;
+ mes "[Mother Mathilda]";
+ mes "How is your practice coming along? I certainly hope you're enjoying living in the grace of God.";
+ close;
+ }
+ else {
+ mes "May God";
+ mes "be with you...";
+ close;
+ }
+ }
+}
+
+prt_fild00,208,218,6 script Ascetic#3aco 98,{
+ mes "[Father Yosuke]";
+ if (BaseJob == Job_Novice) {
+ if (job_acolyte_q == 8) {
+ mes "What?";
+ next;
+ mes "[Father Yosuke]";
+ mes "Have you any more business with me?! You don't! Go back to the Sanctuary now!";
+ close;
+ }
+ if (job_acolyte_q != 0) {
+ if (job_acolyte_q == 4) {
+ mes "Hey.";
+ mes "Whatever you are,";
+ mes "you look like an";
+ mes "Acolyte applicant.";
+ mes "Right?";
+ next;
+ mes "[Father Yosuke]";
+ mes "Not bad, not bad. You withstood the penance trial pretty well.";
+ mes "So what's your name?";
+ next;
+ mes "[Father Yosuke]";
+ mes "" + strcharinfo(0) + ", huh?";
+ next;
+ mes "[Father Yosuke]";
+ mes "Okay. I'll send a message to the Sanctuary that you, " + strcharinfo(0) + ", came to visit me.";
+ next;
+ mes "[Father Yosuke]";
+ mes "Now go back to the Santuary and finish becoming an Acolyte, kid.";
+ close2;
+ savepoint "prt_fild00",206,230;
+ set job_acolyte_q,8;
+ end;
+ }
+ else {
+ mes "Hey.";
+ mes "You look like an Acolyte Applicant. Am I right?";
+ next;
+ mes "[Father Yosuke]";
+ mes "Not bad at all, you've made it all the way here from Prontera. So what's your name, kid?";
+ next;
+ mes "[Father Yosuke]";
+ mes "" + strcharinfo(0) + ", huh? Why isn't your name on my list?";
+ next;
+ mes "[Father Yosuke]";
+ mes "You probably made a mistake. Go back to the Santuary, and check with the Bishop.";
+ close;
+ }
+ }
+ else {
+ mes "You...";
+ mes "Novice.";
+ mes "There something";
+ mes "you wanna tell me?";
+ close;
+ }
+ }
+ else if (BaseJob == Job_Acolyte) callfunc "F_FatherYos";
+ else {
+ if (BaseJob == Job_Priest) {
+ mes "Hey...";
+ next;
+ mes "[Father Yosuke]";
+ mes "If you like, come sit here with me and meditate the great truths. God's majesty is truly inspiring...";
+ close;
+ }
+ else {
+ mes "Do you have anything to say? Because unfortunately for you,";
+ mes "I don't any replies.";
+ close;
+ }
+ }
+}
+
diff --git a/npc/pre-re/jobs/1-1/archer.txt b/npc/pre-re/jobs/1-1/archer.txt
new file mode 100644
index 000000000..a4a96fff0
--- /dev/null
+++ b/npc/pre-re/jobs/1-1/archer.txt
@@ -0,0 +1,246 @@
+//===== rAthena Script =======================================
+//= Archer Job Quest
+//===== By: ==================================================
+//= kobra_k88; L0ne_W0lf
+//===== Current Version: =====================================
+//= 1.9
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Official Conversion]
+//= Job quest for Archer classes
+//===== Additional Comments: =================================
+//= 1.0 Fully working.
+//= 1.1 Added instant job change for High Novice [Lupus]
+//= 1.3 Added Baby Class support [Lupus]
+//= 1.4 Optimised and moved first checker to Jfunc1-1 [massdriller]
+//= 1.5 Now saves/restores all quest skills [Lupus]
+//= 1.6 Merged back JFunc [Lupus]
+//= 1.7 Rescripted to Aegis 10.3 stadards. [L0ne_W0lf]
+//= Arrow reward is now equal to the type sof trunks brought.
+//= No longer uses function "F_ToHigh"
+//= 1.7a Fixed minor dialogue bug at Grade==25 [Lupus]
+//= 1.8 Fixed mistake in condition check. [L0ne_W0lf]
+//= 1.9 Added Quest Log commands. [L0ne_W0lf]
+//============================================================
+
+payon_in02,64,71,4 script Archer Guildsman#archer 85,{
+ if (Upper == 1) {
+ if (Class == Job_Novice_High && (ADVJOB == Job_Sniper || ADVJOB == Job_Clown || ADVJOB == Job_Gypsy)) {
+ mes "[Archer Guildsman]";
+ mes "Hey, I know you.";
+ mes "You took this test";
+ mes "before, didn't you?";
+ next;
+ mes "[Archer Guildsman]";
+ mes "Ah, you must have been";
+ mes "to Valhalla and been reborn.";
+ mes "Wow, that's so impressive!";
+ next;
+ if (getskilllv("NV_BASIC") < 9) {
+ mes "[Archer Guildsman]";
+ mes "Err...";
+ mes "You'd better learn all the Basic Skills first before you can become an Archer.";
+ next;
+ mes "[Archer Guildsman]";
+ mes "Alright, see you later.";
+ close;
+ }
+ mes "[Archer Guildsman]";
+ mes "Well then. I don't";
+ mes "need to say anything else.";
+ mes "I know you'll make a great Archer...";
+ next;
+ skill 143,0,0;
+ jobchange Job_Archer_high;
+ skill 147,1,0;
+ skill 148,1,0;
+ mes "[Archer Guildsman]";
+ mes "Although there's no special";
+ mes "reward for you this time, I hope you understand. Take care of yourself.";
+ close;
+ }
+ else {
+ mes "[Archer Guildsman]";
+ mes "Oh...?";
+ mes "Hey, what are";
+ mes "you doing here...?";
+ next;
+ mes "[Archer Guildsman]";
+ mes "I can tell that you're not cut out to be an Archer. It sort of feels like you're meant to do";
+ mes "something else...";
+ close;
+ }
+ }
+ mes "[Archer Guildsman]";
+ mes "Good day. How may I help you?";
+ next;
+ switch(select("I want to be an Archer.:I need the requirements, please.:Nothing, thanks.")) {
+ case 1:
+ if (BaseJob == Job_Archer) {
+ mes "[Archer Guildsman]";
+ mes "You've already become an Archer...";
+ close;
+ }
+ else if (BaseJob != Job_Archer && BaseJob != Job_Novice) {
+ mes "[Archer Guildsman]";
+ mes "Hmm...";
+ mes "You don't look much like a Novice at all...";
+ next;
+ mes "[Archer Guildsman]";
+ mes "Anyway, whatever you are, you can't choose a job as an Archer because you have a job already.";
+ close;
+ }
+ if (job_archer_q == 0) {
+ mes "[Archer Guildsman]";
+ mes "Do you want to be an Archer?";
+ mes "If so, you need to fill out this application form.";
+ next;
+ if (select("Apply.:Cancel") == 1) {
+ set job_archer_q,1;
+ setquest 1004;
+ mes "[Archer Guildsman]";
+ mes "Okay, sign here. Alright, um, I'll promote you once you meet the requirements.";
+ next;
+ mes "[Archer Guildsman]";
+ mes "If you think you've met them already, we can check that now.";
+ mes "Are you ready?";
+ next;
+ if (select("Yes, I am.:No, not yet.") == 1) {
+ mes "[Archer Guildsman]";
+ mes "Alright, let me check.";
+ next;
+ }
+ else {
+ mes "[Archer Guildsman]";
+ mes "I understand. Be my guest if you want to look at the requirements.";
+ close;
+ }
+ }
+ mes "[Archer Guildsman]";
+ mes "Well, alright.";
+ mes "See you next time.";
+ close;
+ }
+ mes "[Archer Guildsman]";
+ mes "Are you..." + strcharinfo(0) + "?";
+ next;
+ if (getskilllv("NV_BASIC") < 9) {
+ mes "[Archer Guildsman]";
+ mes "Well, you're not at the right job level. Please check the requirements again.";
+ next;
+ mes "[Archer Guildsman]";
+ mes "Your job level must be at least 10, and don't forget you should learn all of the Basic Skills. Once you've done that, come back.";
+ close;
+ }
+ if (job_archer_q == 1) {
+ set .@archer_item1,countitem(1066) * 5;
+ set .@archer_item2,countitem(1067) * 3;
+ set .@archer_item3,countitem(1068) * 2;
+ set .@archer_item4,countitem(1019);
+ set .@total_archer,.@archer_item1 + .@archer_item2 + .@archer_item3 + .@archer_item4;
+ set .@total_archer2,(((.@archer_item2 + .@archer_item3) * 2) + .@archer_item4);
+ mes "[Archer Guildsman]";
+ mes "Excellent!";
+ mes "Now then,";
+ mes "let's see...";
+ next;
+ mes "[Archer Guildsman]";
+ mes "I will appraise the value of the various types of Trunks, needed to produce a Bow, that you've brought.";
+ next;
+ if (countitem(1066) == 0 && countitem(1067) == 0 && countitem(1068) == 0 && countitem(1019) == 0) {
+ mes "[Archer Guildsman]";
+ mes "Um...";
+ mes "Unfortunately you didn't bring any of the required items. There's nothing for me to appraise.";
+ close;
+ }
+ mes "[Archer Guildsman]";
+ if (countitem(1066) != 0) mes " Grade S : " + countitem(1066) + " ea, Grade: " + .@archer_item1 + " . ";
+ if (countitem(1067) != 0) mes " Grade A : " + countitem(1067) + " ea, Grade : " + .@archer_item2 + " . ";
+ if (countitem(1068) != 0) mes " Grade B : " + countitem(1068) + " ea, Grade : " + .@archer_item3 + " . ";
+ if (countitem(1019) != 0) mes " Grade C : " + countitem(1019) + " ea, Grade : " + .@archer_item4 + " . ";
+ if (.@total_archer < 25) {
+ mes "Total Grades: ^FF0000" + .@total_archer + "^000000 / 40";
+ next;
+ mes "[Archer Guildsman]";
+ mes "Less than 25!? You have to get a grade of at least 25! Come on, try harder!";
+ close;
+ }
+ else {
+ mes "Total Grades: ^0000FF" + .@total_archer + "^000000 / 40";
+ next;
+ mes "[Archer Guildsman]";
+ if (.@total_archer > 40) {
+ mes "Wow! More than 40!";
+ mes "Excellent! Congratulations!";
+ }
+ else if (.@total_archer > 30) {
+ mes "More than 30! Nice job!";
+ mes "Congratulations!";
+ }
+ else {
+ mes "*Sigh* Well, you just barely passed... Anyway, well done.";
+ }
+ }
+ next;
+ mes "[Archer Guildsman]";
+ mes "I'll transfer these Trunks to our Bow Production Department. Now that you've met the requirements, let me promote you right away!";
+ if (countitem(1066) != 0) delitem 1066,countitem(1066); //Tree_Of_Archer_1
+ if (countitem(1067) != 0) delitem 1067,countitem(1067); //Tree_Of_Archer_2
+ if (countitem(1068) != 0) delitem 1068,countitem(1068); //Tree_Of_Archer_3
+ if (countitem(1019) != 0) delitem 1019,countitem(1019); //Wooden_Block
+ }
+ next;
+ callfunc "Job_Change",Job_Archer;
+ callfunc "F_ClearJobVar";
+ completequest 1004;
+ mes "[Archer Guildsman]";
+ mes "Congratulations!";
+ mes "You are now an Archer!";
+ next;
+ mes "[Archer Guildsman]";
+ mes "Of course, we expect that you will help contribute towards the future of the Archer Guild with your efforts.";
+ next;
+ mes "[Archer Guildsman]";
+ mes "Ah, your bow has arrived from the Bow Production Department. Here, take it! It's yours~";
+ getitem 1702,1; //Bow_
+ getitem 1750,.@total_archer2; //Arrow
+ next;
+ mes "[Archer Guildsman]";
+ mes "Now, off you go. Hunt with pride, knowing you were trained by one of the best!";
+ close;
+ case 2:
+ mes "[Archer Guildsman]";
+ mes "I will explain the requirements for being an Archer.";
+ if (BaseJob != Job_Novice) {
+ if (BaseJob == Job_Archer) {
+ next;
+ mes "[Archer Guildsman]";
+ mes "But...";
+ mes "You're already an Archer. You should know these already...";
+ }
+ else {
+ next;
+ mes "[Archer Guildsman]";
+ mes "Wait a second. You've chosen a different job already. You don't need to know this~";
+ }
+ mes "So...Yeah...no real reason to tell you the requirements...";
+ }
+ next;
+ mes "[Archer Guildsman]";
+ mes "First of all, you have to the Job Level 9 as a Novice, and know all of the Basic Skills.";
+ next;
+ mes "[Archer Guildsman]";
+ mes "An Archer needs extremely high concentration and reflexes, so we do not accept those who have little patience.";
+ next;
+ mes "[Archer Guildsman]";
+ mes "You also have to gather ^FF0000Trunks^000000. There are 4 different types of Trunks, each of differing quality. You'll be given different grades for your Trunks, depending on their quality.";
+ next;
+ mes "[Archer Guildsman]";
+ mes "In order to become an Archer, you must receive a grade of at least ^0000FF25^000000 points out of 40. You can get Trunks from 'Willow,' the tree. Be careful, though. They can be tough monsters.";
+ close;
+ case 3:
+ close;
+ }
+}
+
diff --git a/npc/pre-re/jobs/1-1/mage.txt b/npc/pre-re/jobs/1-1/mage.txt
new file mode 100644
index 000000000..5652260f2
--- /dev/null
+++ b/npc/pre-re/jobs/1-1/mage.txt
@@ -0,0 +1,736 @@
+//===== rAthena Script =======================================
+//= Mage Job Quest
+//===== By: ==================================================
+//= kobra_k88; L0ne_W0lf
+//===== Current Version: =====================================
+//= 1.9
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Official Conversion]
+//= Job quest for Mage classes
+//===== Additional Comments: =================================
+//= 1.0 Fully working.
+//= 1.1 Fixed input ingridients bug [Lupus]
+//= 1.2 Added instant job change for High Novice [Lupus]
+//= 1.3 Added Baby Class support [Lupus]
+//= 1.4 Optimised and moved first checker to Jfunc1-1 [massdriller]
+//= 1.5 Now saves/restores all quest skills [Lupus]
+//= 1.6 Merged back JFunc, CHANGED NUMBERS TO CONSTANTS [Lupus]
+//= 1.7 Rescripted to Aegis 10.3 stadards. [L0ne_W0lf]
+//= No longer uses function "F_ToHigh"
+//= 1.7a Fixed a "If" in the quest. (bugreport:489) [Samuray22]
+//= 1.8 Added Quest Log commands. [L0ne_W0lf]
+//= 1.9 Fixed an issue with completequest by adding checkquest. [Kisuka]
+//============================================================
+
+geffen_in,164,124,4 script Mage Guildsman 123,{
+ if (Upper == 1) {
+ if (ADVJOB == Job_High_Wizard || ADVJOB == Job_Professor) {
+ if (Class == Job_Novice_High) {
+ mes "[Mage Guildsman]";
+ mes "Whoa, long time no see! But weren't you supposed to be dead?";
+ next;
+ mes "[Mage Guildsman]";
+ mes "Ah, you must have been reborn. Well, I'm glad to have you back.";
+ next;
+ if (getskilllv("NV_BASIC") < 9) {
+ mes "[Mage Guildsman]";
+ mes "I'm sorry, but I don't think you're ready to learn magic yet. Why don't you go finish learning the Basic Skills first?";
+ next;
+ mes "[Mage Guildsman]";
+ mes "Take your time. The more you learn, the more ready you'll be to learn magic again.";
+ close;
+ }
+ mes "[Mage Guildsman]";
+ mes "Well, since you have passed the Mage test once, I will not question your qualification. You want to have your magic skills back immediately, don't you?";
+ next;
+ skill 143,0,0;
+ jobchange Job_Mage_High;
+ skill 157,1,0;
+ mes "[Mage Guildsman]";
+ mes "Wow, for some reason, you look way better than you did before. Anyway, I believe you will do a better job being a Mage as well.";
+ close;
+ }
+ else {
+ mes "[Mage Guildsman]";
+ mes "Is there anything more I can help you with? If not, why don't you go test your skills? The world is waiting for you~!";
+ close;
+ }
+ }
+ else {
+ mes "[Mage Guildsman]";
+ mes "What, are you interested in the Mage guild? I didn't want to tell you this, but you don't belong here.";
+ next;
+ mes "[Mage Guildsman]";
+ mes "I am not sure why you're still standing in front of me, but I can tell that you're not meant to be a Mage.";
+ close;
+ }
+ }
+ mes "[Mage Guildsman]";
+ mes "Yo. What's up?";
+ next;
+ switch(select("I want to be a Mage.:Tell me the Requirements.:Pretty much nothing.")) {
+ case 1:
+ mes "[Mage Guildsman]";
+ if (BaseJob == Job_Mage) {
+ mes "Hey, haven't you realized? You're aleady a Mage, silly!";
+ next;
+ mes "[Mage Guildsman]";
+ mes "One of these days you'll realize the power inside of you when you can make Fire with your mind!";
+ close;
+ }
+ if (BaseJob != Job_Novice) {
+ mes "Hey~ C'mon. Quit playing games. You can't be a Mage because you already have another Job.";
+ close;
+ }
+ if (job_magician_q == 0) {
+ mes "Wanna be a Mage, eh...?";
+ if (sex)
+ mes "Hey, look at you! You're kinda cute~! Not my type though...";
+ else {
+ mes "Oooh, you're such a hot babe~!";
+ mes "I like girls like you~";
+ }
+ next;
+ mes "[Mage Guildsman]";
+ mes "Right, you said that you wanna be a Mage? Alright then, please sign the Mage Application.";
+ next;
+ if (select("Sign Up.:Quit.") == 1) {
+ mes "[Mage Guildsman]";
+ mes "Okay. Sign right there. Oh, you're very good at spelling. Alright. So your name is... " + strcharinfo(0) + ".";
+ next;
+ mes "[Mage Guildsman]";
+ mes "Now it's time for";
+ mes "me to give you the test.";
+ switch(rand(3)) {
+ case 1:
+ mes "Make me a ^3355FFMixed Solution No. 1^000000";
+ mes "and bring it back to me.";
+ set job_magician_q,1;
+ break;
+ case 2:
+ mes "Make me a ^3355FFMixed Solution No. 2^000000";
+ mes "and bring it back to me.";
+ set job_magician_q,2;
+ break;
+ case 3:
+ mes "Make me a ^3355FFMixed Solution No. 3^000000";
+ mes "and bring it back to me.";
+ set job_magician_q,3;
+ break;
+ default:
+ mes "Make me a ^3355FFMixed Solution No. 4^000000";
+ mes "and bring it back to me.";
+ set job_magician_q,4;
+ }
+ next;
+ getitem 1092,1; //Empty_Cylinder
+ mes "[Mage Guildsman]";
+ mes "You can find the neccessary ingredients inside the Guide Book in this Guild. So you better look up what you need before you go.";
+ next;
+ mes "[Mage Guildsman]";
+ mes "Once you collect all the ingredients you, use the machine in the center of the room to mix the solution. Good luck!";
+ close;
+ }
+ mes "[Mage Guildsman]";
+ mes "Whaaaaat~?! Right after you tell me that you wanna become a Mage, you change your mind?! Be a bit more decisive!";
+ close;
+ }
+ mes "Yeah? Ready...?";
+ if (getskilllv("NV_BASIC") < 9) {
+ mes "Oh, what a bummer. You haven't met the requirements yet.";
+ next;
+ mes "[Mage Guildsman]";
+ mes "Go back and reach Novice Job level 9 first. Don't forget that you also have to learn all of the Basic Skills before you come back.";
+ close;
+ }
+ mes "" + strcharinfo(0) + "'s test was...";
+ if (job_magician_q == 1)
+ mes "Making Mixed Solution No. 1.";
+ else if (job_magician_q == 2)
+ mes "Making Mixed Solution No. 2.";
+ else if (job_magician_q == 3)
+ mes "Making Mixed Solution No. 3.";
+ else
+ mes "Making Mixed Solution No. 4.";
+ next;
+ mes "[Mage Guildsman]";
+ mes "Okay, let me";
+ mes "check if you made your";
+ mes "solution accurately...";
+ next;
+ mes "[Mage Guildsman]";
+ if (countitem(1071) == 0 && countitem(1085) == 0 && countitem(1086) == 0 && countitem(1087) == 0 && countitem(1090) == 0) {
+ mes "Hey, where's the Solution";
+ mes "I asked for...? I can't check it if you don't show it to me, right?";
+ close;
+ }
+ else {
+ if ((job_magician_q == 1 && countitem(1071) == 0) || (job_magician_q == 2 && countitem(1085) == 0) || (job_magician_q == 3 && countitem(1086) == 0) || (job_magician_q == 4 && countitem(1087) == 0)) {
+ mes "Wait.";
+ mes "This isn't the";
+ mes "Solution I asked for!";
+ next;
+ mes "[Mage Guildsman]";
+ if (job_magician_q == 1)
+ mes "You're supposed to make Mixed Solution No. 1 and bring it back to me. Now go and try it again.";
+ else if (job_magician_q == 2)
+ mes "You're supposed to make Mixed Solution No. 2 and bring it back to me. Now go and try it again.";
+ else if (job_magician_q == 3)
+ mes "You're supposed to make Mixed Solution No. 3 and bring it back to me. Now go and try it again.";
+ else
+ mes "You're supposed to make Mixed Solution No. 4 and bring it back to me. Now go and try it again.";
+
+ if (countitem(1071) != 0) delitem 1071,1; //Mage_Test_1
+ else if (countitem(1085) != 0) delitem 1085,1; //Mage_Test_2
+ else if (countitem(1086) != 0) delitem 1086,1; //Mage_Test_3
+ else if (countitem(1087) != 0) delitem 1087,1; //Mage_Test_4
+ else delitem 1090,1; //Mage_Test_Etc
+ close;
+ }
+ }
+ if (countitem(1071) != 0) delitem 1071,1; //Mage_Test_1
+ else if (countitem(1085) != 0) delitem 1085,1; //Mage_Test_2
+ else if (countitem(1086) != 0) delitem 1086,1; //Mage_Test_3
+ else if (countitem(1087) != 0) delitem 1087,1; //Mage_Test_4
+ else delitem 1090,1; //Mage_Test_Etc
+ mes "Hmm. I can see that you tried really hard. For a beginner's attempt, this is really good.";
+ mes "Great work!";
+ next;
+ mes "[Mage Guildsman]";
+ mes "Alright! I'm pleased to say that you've passed the Mage Test. I will transform you right away!";
+ next;
+ mes "[Mage Guildsman]";
+ mes "*Ahem*";
+ mes "Congratulations!";
+ mes "You are now a Mage!";
+ next;
+ callfunc "Job_Change",Job_Mage;
+ callfunc "F_ClearJobVar";
+ set Zeny,Zeny+50;
+ if(checkquest(1005) != -1) {
+ completequest 1005;
+ }
+ else if(checkquest(1006) != -1) {
+ completequest 1006;
+ }
+ else if(checkquest(1007) != -1) {
+ completequest 1007;
+ }
+ else {
+ completequest 1008;
+ }
+ mes "[Mage Guildsman]";
+ mes "'Welcome to My World~'";
+ mes "Heh heh, I just wanted to say that. You know, it's a quote from a well-known movie~";
+ next;
+ mes "[Mage Guildsman]";
+ mes "Now that you're a Mage just like us, let's be friends, okay?";
+ close;
+ case 2:
+ mes "[Mage Guildsman]";
+ mes "Wanna be a Mage, eh?";
+ if (sex)
+ mes "For a cutie like you, I'd be happy to explain the requirements!";
+ else
+ mes "I'd be happy to explain the requirements for a pretty girl like you!";
+ next;
+ mes "[Mage Guildsman]";
+ mes "First of all, you have to reach Novice Job Level 10 and learn all of the Basic Skills. Then, you'll have to pass the Mage Test.";
+ next;
+ if (job_magician_q != 0) {
+ mes "[Mage Guildsman]";
+ mes "Your test is to";
+ switch(job_magician_q) {
+ case 1:
+ mes "make me a";
+ mes "^3355FFMixed Solution No. 1^000000";
+ mes "and bring it back to me.";
+ setquest 1005;
+ break;
+ case 2:
+ mes "make me a";
+ mes "^3355FFMixed Solution No. 2^000000";
+ mes "and bring it back to me.";
+ setquest 1006;
+ break;
+ case 3:
+ mes "make me a";
+ mes "^3355FFMixed Solution No. 3^000000";
+ mes "and bring it back to me.";
+ setquest 1007;
+ break;
+ default:
+ mes "make me a";
+ mes "^3355FFMixed Solution No. 4^000000";
+ mes "and bring it back to me.";
+ setquest 1008;
+ }
+ next;
+ mes "[Mage Guildsman]";
+ mes "You can look up the ingredients you'll need to make the Solution inside the Guide Book in this Guild.";
+ }
+ else {
+ mes "[Mage Guildsman]";
+ mes "You will be informed as to which Mixed Solution you will need to create after signing the application form.";
+ }
+ next;
+ mes "[Mage Guildsman]";
+ mes "Let me know when you are ready to become a Mage, alright?";
+ close;
+ case 3:
+ mes "[Mage Guildsman]";
+ mes "Nothing...?";
+ close;
+ }
+}
+
+geffen_in,164,112,4 script Mixing Machine 111,{
+ mes "[Mixing Machine]";
+ mes "This machine is the property of the Geffen Mage Guild and is used only for mixing solutions for magic purposes.";
+ next;
+ if (select("Use Machine.:Cancel.") == 1) {
+ mes "[Mixing Machine]";
+ mes "Choose the";
+ mes "Solvent for";
+ mes "the Solution.";
+ next;
+ switch(select("Payon Solution.:Morroc Solution.:No Solvent.")) {
+ case 1:
+ if (countitem(1089) == 0) {
+ mes "[Mixing Machine]";
+ mes "Error.";
+ mes "Cannot find the item.";
+ mes "Please check again.";
+ mes "Process Halting.";
+ close;
+ }
+ set .@mixitem2,1;
+ break;
+ case 2:
+ if (countitem(1088) == 0) {
+ mes "[Mixing Machine]";
+ mes "Error.";
+ mes "Cannot find the item.";
+ mes "Please check again.";
+ mes "Process Halting.";
+ close;
+ }
+ set .@mixitem2,2;
+ break;
+ case 3:
+ set .@mixitem2,0;
+ break;
+ }
+ while (1) {
+ if (.@progress == 2) {
+ mes "[Mixing Machine]";
+ if (.@mixitem1_1 != 0) mes "Jellopy: " + .@mixitem1_1 + " ea.";
+ if (.@mixitem1_2 != 0) mes "Fluff: " + .@mixitem1_2 + " ea.";
+ if (.@mixitem1_3 != 0) mes "Milk: " + .@mixitem1_3 + " ea.";
+ if (.@mixitem2 == 0) mes "Solvent: None.";
+ if (.@mixitem2 == 1) mes "Solvent: Payon Solution.";
+ if (.@mixitem2 == 2) mes "Solvent: Morroc Solution.";
+ next;
+ mes "[Mixing Machine]";
+ mes "Please choose if you wish to begin mixing, or to re-enter the number of items to be mixed.";
+ next;
+ switch(select("Begin Mixing.:Re-Enter Number of Items.:Reset.")) {
+ case 1:
+ mes "[Mixing Machine]";
+ mes "Please place the items into the Mixing Receptacle. Make sure the item amounts are correct.";
+ next;
+ mes "[Mixing Machine]";
+ mes "You cannot adjust or restore items once they are placed into the Mixing Receptacle.";
+ next;
+ mes "[Mixing Machine]";
+ mes "If everything is correct, press the 'Mix' button when you are ready. Otherwise, press the 'Cancel' button.";
+ next;
+ if (select("Press 'Mix' Button.:Press 'Cancel' Button.") == 1) {
+ mes "[Mixing Machine]";
+ mes "Place items into the Mixing Receptacle now. Please wait.";
+ next;
+ mes "[Mixing Machine]";
+ if (countitem(909) < .@mixitem1_1) {
+ mes "Insufficient Jellopy.";
+ mes "Please Check again.";
+ mes "Process Halted.";
+ close;
+ }
+ else if (countitem(914) < .@mixitem1_2) {
+ mes "Insufficient Fluff.";
+ mes "Please Check again.";
+ mes "Process Halted.";
+ close;
+ }
+ else if (countitem(519) < .@mixitem1_3) {
+ mes "Insufficient Milk.";
+ mes "Please Check again.";
+ mes "Process Halted.";
+ close;
+ }
+ else if (.@mixitem2 == 1 || .@mixitem2 == 2) {
+ if (countitem(1089) == 0 && countitem(1088) == 0) {
+ mes "Solution not found.";
+ mes "Please Check again.";
+ mes "Process Halted.";
+ close;
+ }
+ }
+ if (.@mixitem1_1 != 0) delitem 909,.@mixitem1_1; //Jellopy
+ if (.@mixitem1_2 != 0) delitem 914,.@mixitem1_2; //Fluff
+ if (.@mixitem1_3 != 0) delitem 519,.@mixitem1_3; //Milk
+ if (.@mixitem2 == 1) delitem 1089,1; //Payon_Potion
+ if (.@mixitem2 == 2) delitem 1088,1; //Morocc_Potion
+ mes "Items are Ready.";
+ mes "Close the Lid.";
+ set .@progress,3;
+ next;
+ }
+ break;
+ case 2:
+ set .@continue,0;
+ next;
+ break;
+ case 3:
+ set .@mixitem1_1,0;
+ set .@mixitem1_2,0;
+ set .@mixitem1_3,0;
+ set .@progress,0;
+ set .@continue,0;
+ mes "[Mixing Machine]";
+ mes "Reset Complete.";
+ mes "Initiate again?";
+ next;
+ if (select("Yes.:No.") == 1)
+ break;
+ mes "[Mixing Machine]";
+ mes "Process Halted.";
+ mes "Thank you.";
+ close;
+ }
+ if (.@progress == 3) break;
+ }
+ else if (.@progress == 1) {
+ mes "[Mixing Machine]";
+ mes "Nothing found.";
+ next;
+ }
+ mes "[Mixing Machine]";
+ mes "Select items to mix.";
+ while(1) {
+ switch(select("Jellopy.:Fluff.:Milk.:Ready to Mix.")) {
+ case 1:
+ while(1) {
+ input .@input;
+ if (.@input > 10000) {
+ next;
+ mes "[Mixing Machine]";
+ mes "Error: Item limit exceeded. Please enter values less than 10,000 try again.";
+ next;
+ }
+ else {
+ if (countitem(909) > 0) set .@mixitem1_1,.@mixitem1_1 + .@input;
+ set .@progress,2;
+ break;
+ }
+ }
+ break;
+ case 2:
+ while(1) {
+ input .@input;
+ if (.@input > 10000) {
+ next;
+ mes "[Mixing Machine]";
+ mes "Error: Item limit exceeded. Please enter values less than 10,000 try again.";
+ next;
+ }
+ else {
+ if (countitem(914) > 0) set .@mixitem1_2,.@mixitem1_2 + .@input;
+ set .@progress,2;
+ break;
+ }
+ }
+ break;
+ case 3:
+ while(1) {
+ input .@input;
+ if (.@input > 10000) {
+ next;
+ mes "[Mixing Machine]";
+ mes "Error: Item limit exceeded. Please enter values less than 10,000 try again.";
+ next;
+ }
+ else {
+ if (countitem(519) > 0) set .@mixitem1_3,.@mixitem1_3 + .@input;
+ set .@progress,2;
+ break;
+ }
+ }
+ break;
+
+ case 4:
+ if (.@progress != 2)
+ set .@progress,1;
+ set .@continue,1;
+ next;
+ }
+ if (.@continue) break;
+ }
+ }
+ mes "[Mixing Machine]";
+ mes "Please enter the ";
+ mes "Serial Number of";
+ mes "the Magic Powder.";
+ next;
+ while(1) {
+ input .@input;
+ if (.@input < 1000 || .@input > 9999) {
+ mes "[Mixing Machine]";
+ if (.@input == 0) {
+ mes "Do you want to skip this Menu?";
+ next;
+ if (select("Yes.:No.") == 1) {
+ break;
+ }
+ }
+ else {
+ mes "Invalid Serial Number.";
+ mes "Please try again.";
+ next;
+ }
+ }
+ else {
+ mes "[Mixing Machine]";
+ mes "The Serial Number is #" + .@input + ", correct?";
+ next;
+ if (select("Confirm.:Cancel.") == 1) {
+ if (.@input == 8472)
+ set .@magic_powder,1;
+ else if (.@input == 3735)
+ set .@magic_powder,2;
+ else if (.@input == 2750)
+ set .@magic_powder,3;
+ else if (.@input == 5429)
+ set .@magic_powder,4;
+ else
+ set .@magic_powder,5;
+ }
+ break;
+ }
+ }
+ mes "[Mixing Machine]";
+ mes "Choose a";
+ mes "Catalyst Stone.";
+ next;
+ switch(select("Yellow Gemstone.:Red Gemstone.:Blue Gemstone.:1carat Diamond.:Skip.")) {
+ case 1: set .@mixitem3,1; break;
+ case 2: set .@mixitem3,2; break;
+ case 3: set .@mixitem3,3; break;
+ case 4: set .@mixitem3,4; break;
+ case 5: break;
+ }
+ mes "[Mixing Machine]";
+ mes "All Set.";
+ mes "Initiating";
+ mes "Mixing process.";
+ mes "Please Wait.";
+ next;
+ mes "[Mixing Machine]";
+ mes "- Proverb of the Day -";
+ switch(rand(1,5)) {
+ case 1:
+ mes "An Eye for an Eye: When you take from a person, you must replace or repay in some way.";
+ break;
+ case 2:
+ mes "Credibility is a Man's Currency: There's a value in genuine trust that cannot be measured.";
+ break;
+ case 3:
+ mes "What Goes Around Comes Around: Ultimately, you will be treated in the way you treat others.";
+ mes "It means 'When you harm Another you will be harmed by him in an unavoidable situation'.";
+ break;
+ case 4:
+ mes "A good neighbor is better than a distant brother: When you need help, you can count on those close to you.";
+ break;
+ default:
+ mes "Birds of a Feather Flock Together: You can look at a person's friends as an indicator of their character.";
+ }
+ next;
+ if (.@mixitem1_1 == 2 && .@mixitem1_2 == 3 && .@mixitem1_3 == 1 && .@mixitem2 == 1 && .@mixitem3 == 1 && .@magic_powder == 1) {
+ mes "[Mixing Machine]";
+ mes "Mage Test Solution No. 1.";
+ getitem 1071,1; //Mage_Test_1
+ next;
+ }
+ else if (.@mixitem1_1 == 3 && .@mixitem1_2 == 1 && .@mixitem1_3 == 1 && .@mixitem2 == 0 && .@mixitem3 == 2 && .@magic_powder == 2) {
+ mes "[Mixing Machine]";
+ mes "Mage Test Solution No. 2.";
+ getitem 1085,1; //Mage_Test_2
+ next;
+ }
+ else if (.@mixitem1_1 == 6 && .@mixitem1_2 == 1 && .@mixitem1_3 == 0 && .@mixitem2 == 1 && .@mixitem3 == 3 && .@magic_powder == 3) {
+ mes "[Mixing Machine]";
+ mes "Mage Test Solution No. 3.";
+ getitem 1086,1; //Mage_Test_3
+ next;
+ }
+ else if (.@mixitem1_1 == 2 && .@mixitem1_2 == 3 && .@mixitem1_3 == 0 && .@mixitem2 == 2 && .@mixitem3 == 4 && .@magic_powder == 4) {
+ mes "[Mixing Machine]";
+ mes "Mage Test Solution No. 4.";
+ getitem 1087,1; //Mage_Test_4
+ next;
+ }
+ else {
+ mes "[Mixing Machine]";
+ mes "Unexpected";
+ mes "Error Occurred.";
+ getitem 1090,1; //Mage_Test_Etc
+ next;
+ }
+ mes "[Mixing Machine]";
+ mes "Mixing Complete.";
+ mes "Thank you.";
+ close;
+ }
+ close;
+}
+
+pay_arche,122,100,0 script Dollshoi 88,{
+ mes "[Mage Guildsman]";
+ mes "You want a Solution? Hmm, give me 50 Zeny and at least 1 Empty Test Tube.";
+ next;
+ if (select("Alright, Deal.:Nah, forget it.") == 1) {
+ mes "[Mage Guildsman]";
+ if (Zeny < 50) {
+ mes "Hey! You don't have enough money to cover my 50 Zeny charge.";
+ close;
+ }
+ if (countitem(1092) == 0) {
+ mes "You can't carry solutions without a bottle! Bring me an Empty Test Tube.";
+ close;
+ }
+ delitem 1092,1; //Empty_Cylinder
+ set zeny,zeny-50;
+ getitem 1089,1; //Payon_Potion
+ }
+ close;
+}
+
+moc_ruins,91,150,0 script Ponka-Hontas 93,{
+ mes "[Mage Guildsman]";
+ mes "Would you like a Solution? Then please give me 50 Zeny and at least 1 Empty Testtube.";
+ next;
+ if (select("Alright, Deal.:Nah, forget it.") == 1) {
+ mes "[Mage Guildsman]";
+ if (zeny < 50) {
+ mes "I'm sorry, but you don't have enough money to cover the 50 Zeny fee.";
+ close;
+ }
+ if (countitem(1092) == 0) {
+ mes "You can't carry liquids without using a bottle. Bring an Empty Test Tube the next time you see me.";
+ close;
+ }
+ delitem 1092,1; //Empty_Cylinder
+ set zeny,zeny-50;
+ getitem 1088,1; //Morocc_Potion
+ }
+ close;
+}
+
+geffen_in,177,112,4 script Bookshelf 111,{
+ mes "[Guide Book]";
+ mes "This Guide Book is the property of the Geffen Mage Association. Please handle with care.";
+ next;
+ switch(select("Solution No. 1.:Solution No. 2.:Solution No. 3.:Solution No. 4.:Close.")) {
+ case 1:
+ mes "[Mage Test Solution No. 1]";
+ mes "* Ingredients List *";
+ mes "2 Jellopy";
+ mes "3 Fluff";
+ mes "1 Milk";
+ next;
+ mes "[Mage Test Solution No. 1]";
+ mes "* Solvent Agent *";
+ mes "Payon Solution";
+ mes "Where to Find:";
+ mes "A small spring in Payon, the Archer Village.";
+ next;
+ mes "[Mage Test Solution No. 1]";
+ mes "* Magic Power Serial Code *";
+ mes "8472";
+ next;
+ mes "[Mage Test Solution No. 1]";
+ mes "* Catalyst *";
+ mes "Yellow Gemstone";
+ mes "(Provided by";
+ mes "Mixing Machine)";
+ close;
+ case 2:
+ mes "[Mage Test Solution No. 2]";
+ mes "* Ingredients List *";
+ mes "3 Jellopy";
+ mes "1 Fluff";
+ mes "1 Milk";
+ next;
+ mes "[Mage Test Solution No. 2]";
+ mes "* Solvent Agent *";
+ mes "None";
+ next;
+ mes "[Mage Test Solution No. 2]";
+ mes "* Magic Power Serial Code *";
+ mes "3735";
+ next;
+ mes "[Mage Test Solution No. 2]";
+ mes "* Catalyst *";
+ mes "Red Gemstone";
+ mes "(Provided by";
+ mes "Mixing Machine)";
+ close;
+ case 3:
+ mes "[Mage Test Solution No. 3]";
+ mes "* Ingredients List *";
+ mes "6 Jellopy";
+ mes "1 Fluff";
+ next;
+ mes "[Mage Test Solution No. 3]";
+ mes "* Solvent Agent *";
+ mes "Payon Solution";
+ mes "Where to Find:";
+ mes "A small spring in Payon, the Archer Village.";
+ next;
+ mes "[Mage Test Solution No. 3]";
+ mes "* Magic Power Serial Code *";
+ mes "2750";
+ next;
+ mes "[Mage Test Solution No. 3]";
+ mes "* Catalyst *";
+ mes "Blue Gemstone";
+ mes "(Provided by";
+ mes "Mixing Machine)";
+ close;
+ case 4:
+ mes "[Mage Test Solution No. 4]";
+ mes "* Ingredients List *";
+ mes "2 Jellopy";
+ mes "3 Fluff";
+ next;
+ mes "[Mage Test Solution No. 4]";
+ mes "* Solvent Agent *";
+ mes "Morroc Solution";
+ mes "Where to Find:";
+ mes "A small spring near entrance of pyramid in Morroc.";
+ next;
+ mes "[Mage Test Solution No. 4]";
+ mes "* Magic Power Serial Code *";
+ mes "5429";
+ next;
+ mes "[Mage Test Solution No. 4]";
+ mes "* Catalyst *";
+ mes "1 carat Diamond";
+ mes "(Provided by";
+ mes "Mixing Machine)";
+ close;
+ }
+ close;
+}
diff --git a/npc/pre-re/jobs/1-1/merchant.txt b/npc/pre-re/jobs/1-1/merchant.txt
new file mode 100644
index 000000000..93d502794
--- /dev/null
+++ b/npc/pre-re/jobs/1-1/merchant.txt
@@ -0,0 +1,1172 @@
+//===== rAthena Script =======================================
+//= Merchant Job Quest
+//===== By: ==================================================
+//= kobra_k88; L0ne_W0lf
+//===== Current Version: =====================================
+//= 2.3
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Official Conversion]
+//= Job quest for Merchant classes
+//===== Additional Comments: =================================
+//= 1.0 Fully working.
+//= 1.1 Added instant job change for High Novice [Lupus]
+//= 1.3 Added Baby Class support [Lupus]
+//= 1.4 Optimised and moved first checker to Jfunc1-1 [massdriller]
+//= 1.5 Changed Prontera->Izlude teleport price to 600 [Lupus]
+//= 1.5.1 Removed Duplicates [Silent]
+//= 1.5.2 Now saves/restores all quest skills [Lupus]
+//= 1.6 Merged back JFunc, CHANGED NUMBERS TO CONSTANTS [Lupus]
+//= 1.7 Updated to use Free Ticket for Kafra [Lupus]
+//= 1.8 Rescripted to Aegis 10.3 stadards. [L0ne_W0lf]
+//= No longer uses function "F_ToHigh"
+//= 1.9 Bugfixes, thanks to Barron-Monster. [L0ne_W0lf]
+//= 1.9a Added a missing next; (Barron-Monster) [L0ne_W0lf]
+//= 1.9b Typo. "nextl" -> "next;" (Barron-Monster) [L0ne_W0lf]
+//= 2.0 Should "fix" the problem with the Biliban Kafra. [L0ne_W0lf]
+//= 2.1 Fixed mistake in condition check. [L0ne_W0lf]
+//= 2.2 Added Quest Log commands. [L0ne_W0lf]
+//= 2.3 Fixed an issue with completequest by adding checkquest. [Kisuka]
+//============================================================
+
+alberta_in,53,43,6 script Merchant#mer 86,{
+ if (Upper == 1) {
+ if (Class == Job_Novice_High && (ADVJOB == Job_Whitesmith || ADVJOB == Job_Creator)) {
+ mes "[Chief Mahnsoo]";
+ mes "Long time no see!";
+ mes "Hey, you didn't quit";
+ mes "your business, did you?";
+ mes "What happened?";
+ next;
+ mes "[Chief Mahnsoo]";
+ mes "Whoa...";
+ mes "You've actually been to Valhalla?! Wow, you've come a long way...";
+ next;
+ if (getskilllv("NV_BASIC") < 9) {
+ mes "[Chief Mahnsoo]";
+ mes "Hmmm...";
+ mes "It seems that you're not ready to become a Merchant again. Go finish learning the Basic Novice Skills first.";
+ next;
+ mes "[Chief Mahnsoo]";
+ mes "Don't worry, we'll always have a Merchant position open for you. Just come back when you're ready, okay?";
+ close;
+ }
+ mes "[Chief Mahnsoo]";
+ mes "I guess it's destiny that we meet like this once more. Alright. Once again, let me change you into a Merchant!";
+ next;
+ skill 143,0,0;
+ jobchange Job_Merchant_High;
+ skill 153,1,0;
+ skill 154,1,0;
+ skill 155,1,0;
+ mes "[Chief Mahnsoo]";
+ mes "Ah~ How nostalgic. Just like old times! Alright, do your best!";
+ close;
+ }
+ else {
+ mes "[Chief Mahnsoo]";
+ mes "^333333*Sigh*^000000";
+ mes "I'm so bored...";
+ mes "When will I hear from my lovely Blossom?";
+ close;
+ }
+ }
+ if (BaseJob == Job_Merchant) {
+ mes "[Chief Mahnsoo]";
+ mes "Hello there!";
+ mes "How do you like";
+ mes "being a Merchant?";
+ next;
+ mes "[Chief Mahnsoo]";
+ mes "Having a way with";
+ mes "money certainly";
+ mes "has its perks,";
+ mes "does it not?";
+ close;
+ }
+ else if (BaseJob != Job_Merchant && BaseJob != Job_Novice) {
+ mes "[Chief Mahnsoo]";
+ mes "We Merchants hate people who are two faced. It's bad for business.";
+ next;
+ mes "[Chief Mahnsoo]";
+ mes "People who always try to take advantage of other people by selling things at a ridiculous price just so they can make money that they'll waste are the worst.";
+ next;
+ mes "[Chief Mahnsoo]";
+ mes "Well, in any case, we only accept Novices for job changes to the Merchant class. But I appreciate your interest in what we do.";
+ close;
+ }
+ else if (job_merchant_q == 9) {
+ mes "[Chief Mahnsoo]";
+ mes "Hello there,";
+ mes ""+ strcharinfo(0) +".";
+ set job_merchant_q,0;
+ set job_merchant_q2,0;
+ set quest_alb_01,0;
+ mes "Unfortunately, you failed to earn your Merchant License this time.";
+ next;
+ mes "[Chief Mahnsoo]";
+ mes "I'll erase your records, so come back anytime when you want to reapply.";
+ close;
+ }
+ else if (job_merchant_q == 8 || job_merchant_q == 7) {
+ mes "[Chief Mahnsoo]";
+ mes "Hello there,";
+ mes ""+ strcharinfo(0) +".";
+ mes "I'm pleased to tell you";
+ mes "that I have good news!";
+ next;
+ mes "[Chief Mahnsoo]";
+ mes "The Merchant Guild accepted your application. You've proven that you are fully qualified to become a Merchant.";
+ if (job_merchant_q == 7) {
+ next;
+ mes "[Chief Mahnsoo]";
+ mes "The only thing to take care of is your Membership Fee.";
+ mes "Are you ready?";
+ next;
+ switch(select("Pay the rest of the 500 Zeny:Quit")) {
+ case 1:
+ mes "[Chief Mahnsoo]";
+ if (Zeny < 500) {
+ mes "Hmmm...";
+ mes "I suppose you currently don't have enough zeny to pay the rest of your Membership fee right now.";
+ next;
+ mes "[Chief Mahnsoo]";
+ mes "Please return when you have earned the 500 zeny that you need to become a Merchant.";
+ close;
+ }
+ set zeny,zeny-500;
+ mes "Ah yes...!";
+ mes "Now your";
+ mes "membership";
+ mes "is paid in full.";
+ break;
+ case 2:
+ mes "[Chief Mahnsoo]";
+ mes "I suppose you need some time to gather some zeny to pay your membership fee. Please come";
+ mes "back as soon as you're ready.";
+ close;
+ }
+ }
+ next;
+ mes "[Chief Mahnsoo]";
+ mes "Congratulations!";
+ callfunc "Job_Change",Job_Merchant;
+ callfunc "F_ClearJobVar";
+ if(checkquest(1009) != -1) {
+ completequest 1009;
+ }
+ else if(checkquest(1010) != -1) {
+ completequest 1010;
+ }
+ else if(checkquest(1011) != -1) {
+ completequest 1011;
+ }
+ else {
+ completequest 1012;
+ }
+ mes "I'm very pleased that you are joining the Merchant Guild and hope that you will play an active part in Rune-Midgarts' economy.";
+ next;
+ if (quest_alb_01 == 1) {
+ mes "[Chief Mahnsoo]";
+ mes "*Ahem* Aaaaand let me give you a little bit of money for delivering that message to Blossom for me.";
+ mes "I hope you'll help me again next time~";
+ set zeny,zeny+200;
+ set quest_alb_01,2;
+ }
+ else {
+ mes "[Chief Mahnsoo]";
+ mes "The message you were supposed to deliver as per my request? You've forgotten about that? Oh well. Good work!";
+ }
+ next;
+ mes "[Chief Mahnsoo]";
+ mes "Our goal is to control 20 % of the world's income! We're going to need young, eager people like you!";
+ next;
+ mes "[Chief Mahnsoo]";
+ mes "But overall, we'll also be happy just to make loads of money.";
+ mes "But we all know that~";
+ close;
+ }
+ else if (job_merchant_q <= 6 && job_merchant_q != 0) {
+ mes "[Chief Mahnsoo]";
+ if (job_merchant_q2 == 1 || job_merchant_q2 == 2) {
+ mes "First, get the delivery package from the storehouse, and then take it to the former Swordman's Association in Prontera.";
+ next;
+ mes "[Chief Mahnsoo]";
+ mes "When you get there, give the package to the Kafra Employee stationed near there. Her name is Blossom. Did you get all that?";
+ next;
+ if (job_merchant_q2 == 1) {
+ mes "[Chief Mahnsoo]";
+ mes "Remember, the Serial Number of the package is ^3355FF2485741^000000.";
+ setquest 1009;
+ }
+ else {
+ mes "[Chief Mahnsoo]";
+ mes "Remember, the Serial Number of the package is ^3355FF2328137^000000.";
+ setquest 1009;
+ }
+ }
+ else if (job_merchant_q2 == 3 || job_merchant_q2 == 4) {
+ mes "First, get the delivery package from the storehouse, and then take it to the Mage Guild in Geffen.";
+ next;
+ if (job_merchant_q2 == 3) {
+ mes "[Chief Mahnsoo]";
+ mes "When you get there, give the package to the Mage Guildsman in charge. Remember, the packages Serial Number is ^3355FF2989396^000000.";
+ setquest 1010;
+ }
+ else {
+ mes "[Chief Mahnsoo]";
+ mes "When you get there, give the package to the Mage Guildsman in charge. Remember, the packages Serial Number is ^3355FF2191737^000000.";
+ setquest 1010;
+ }
+ }
+ else if (job_merchant_q2 == 5 || job_merchant_q2 == 6) {
+ mes "First, get the delivery package from the storehouse, and then take it to Morroc.";
+ next;
+ mes "[Chief Mahnsoo]";
+ mes "You'll have to find Java Dullihan, the Dyemaker, so that you can deliver the product he ordered.";
+ next;
+ if (job_merchant_q2 == 5) {
+ mes "[Chief Mahnsoo]";
+ mes "But he's a little forgetful, so give it to one of his students. Remember, the package's Serial Number is ^3355FF3012685^000000.";
+ setquest 1011;
+ }
+ else {
+ mes "[Chief Mahnsoo]";
+ mes "But he's a little forgetful, give it to one of his students. Remember, the package's Serial Number is ^3355FF3487372^000000.";
+ setquest 1011;
+ }
+ }
+ else if (job_merchant_q2 == 7 || job_merchant_q2 == 8) {
+ mes "First, get the package from the storehouse, and then give it to the Kafra Employee stationed on Byalan Island. Her name is Blossom.";
+ next;
+ if (job_merchant_q2 == 7) {
+ mes "[Chief Mahnsoo]";
+ mes "Remember, the package's Serial Number is ^3355FF3318702^000000.";
+ setquest 1012;
+ }
+ else {
+ mes "[Chief Mahnsoo]";
+ mes "Remember, the package's Serial Number is ^3355FF3543625^000000.";
+ setquest 1012;
+ }
+ }
+ if (job_merchant_q2 == 7 || job_merchant_q2 == 8) {
+ next;
+ mes "[Chief Mahnsoo]";
+ mes "Aaaannnnd...";
+ mes "Don't forget to deliver that message for me~";
+ }
+ next;
+ mes "[Chief Mahnsoo]";
+ mes "Don't forget your destination and the package's Serial Number.";
+ mes "You'll need to tell them";
+ mes "to the storekeeper.";
+ next;
+ mes "[Chief Mahnsoo]";
+ mes "The storehouse is in the room";
+ mes "to my right. There, you can talk";
+ mes "to the storekeeper, and he'll";
+ mes "help you out.";
+ next;
+ mes "[Chief Mahnsoo]";
+ mes "After you make the delivery, return to the storehouse and give the receipt to the storekeeper.";
+ mes "Then, come back";
+ mes "and see me.";
+ next;
+ mes "[Chief Mahnsoo]";
+ mes "Is that clear?";
+ mes "Alright, that's";
+ mes "the spirit.";
+ mes "Take care!";
+ close;
+ }
+ else if (job_merchant_q == 0) {
+ mes "[Chief Mahnsoo]";
+ mes "So, what brings you to";
+ mes "the Merchant Association?";
+ mes "Is there anything";
+ mes "I can help you with?";
+ next;
+ switch(select("I want to be a Merchant.:Tell me about Merchants.:Tell me the requirements.:Nope.")) {
+ case 1:
+ mes "[Chief Mahnsoo]";
+ mes "Do you want to";
+ mes "be a Merchant?";
+ mes "Well...";
+ next;
+ if (getskilllv("NV_BASIC") < 9) {
+ mes "[Chief Mahnsoo]";
+ mes "First, you have to be a Novice with Job Level 10. Once you do that, make sure you learn all of the Basic Skills.";
+ next;
+ mes "[Chief Mahnsoo]";
+ mes "We're not just";
+ mes "simple money makers!";
+ mes "We pride ourselves on having standards and only accepting qualified applicants!";
+ close;
+ }
+ mes "[Chief Mahnsoo]";
+ mes "Alright, you'll need to fill out this application and prepare 1,000 Zeny for your Membership Fee.";
+ next;
+ mes "[Chief Mahnsoo]";
+ mes "Oh...!";
+ mes "If you don't have all the money,";
+ mes "I can just take 500 Zeny now.";
+ mes "You can pay the rest after you";
+ mes "pass the test and earn your";
+ mes "Merchant Guild License.";
+ next;
+ mes "[Chief Mahnsoo]";
+ mes "So what do you think?";
+ mes "Are you ready to join now?";
+ next;
+ if (select("Yes, I will.:Ummm, maybe later...") ==1 ) {
+ mes "[Chief Mahnsoo]";
+ mes "Let me check if you";
+ mes "filled out everything";
+ mes "on your application form...";
+ next;
+ mes "[Chief Mahnsoo]";
+ mes "Hmm... ";
+ mes "" + strcharinfo(0) + "...";
+ mes "That's a nice name.";
+ next;
+ mes "[Chief Mahnsoo]";
+ mes "This application will";
+ mes "only be registered once";
+ mes "the Membership Fee is paid.";
+ mes "How do you wish to";
+ mes "handle the fee?";
+ next;
+ switch(select("Pay all 1,000 Zeny now!:Two payments of 500 Zeny.:Quit")) {
+ case 1:
+ mes "[Chief Mahnsoo]";
+ if (Zeny >= 1000) {
+ set job_merchant_q,2;
+ set zeny,zeny-1000;
+ mes "Alright~";
+ mes "That's 1,000 zeny.";
+ mes "Excellent, excellent.";
+ }
+ else {
+ mes "It seems don't have enough zeny to pay all of the fee right now. Why don't you just pay 500 zeny now? Think about it.";
+ close;
+ }
+ break;
+ case 2:
+ mes "[Chief Mahnsoo]";
+ if (Zeny >= 500) {
+ set job_merchant_q,1;
+ set zeny,zeny-500;
+ mes "Let's see...";
+ mes "That's 500 Zeny. Although I don't think splitting payment is a good idea for any Merchant, it's alright since you're still learning.";
+ }
+ else {
+ mes "Hmm...";
+ mes "It seems you don't have the funds to pay half of the membership fee. Please come back once you collect the zeny that you need.";
+ close;
+ }
+ break;
+ case 3:
+ mes "[Chief Mahnsoo]";
+ mes "Feel free to return anytime";
+ mes "when you are ready, alright?";
+ close;
+ }
+ }
+ else {
+ mes "[Chief Mahnsoo]";
+ mes "You don't have enough zeny now? That's no problem. Take your time and come back when you're";
+ mes "ready, okay?";
+ close;
+ }
+ next;
+ mes "[Chief Mahnsoo]";
+ mes "Alright, you're now on the list of applicants. Ah, before I get started let me say just one thing.";
+ next;
+ mes "[Chief Mahnsoo]";
+ mes "There are some dumb and greedy people out there who do not know what it means to be a Merchant.";
+ mes "I hope you won't turn out to be like them, will you?";
+ next;
+ mes "[Chief Mahnsoo]";
+ mes "Now, let me";
+ mes "explain what you";
+ mes "need to do for the";
+ mes "Merchant License Test.";
+ next;
+ mes "[Chief Mahnsoo]";
+ switch(rand(1,4)) {
+ case 1:
+ mes "First, get the delivery package from the storehouse, then go to the former Swordman's Association in Prontera.";
+ next;
+ mes "[Chief Mahnsoo]";
+ mes "When you get there, visit the Kafra Employee stationed there. Her name is Blossom. Did you get";
+ mes "all of that?";
+ callsub S_GiveSerial,2485741,1,2328137,2;
+ break;
+ case 2:
+ mes "First, get the delivery package from the storehouse, and then go to the Mage Guild in Geffen. When you get there, visit the Mage Guildsman in charge.";
+ callsub S_GiveSerial,2989396,3,2191737,4;
+ break;
+ case 3:
+ mes "First, get the delivery package from the storehouse, and then go to Morroc. There you must find Java Dullihan, the dyemaker.";
+ next;
+ mes "[Chief Mahnsoo]";
+ mes "He's a bit forgetful, so you should probably give the package to one of his students.";
+ callsub S_GiveSerial,3012685,5,3487372,6;
+ break;
+ case 4:
+ mes "First, get the delivery package from the storehouse, and then give it to the Kafra Employee stationed on Byalan Island.";
+ callsub S_GiveSerial,3318702,7,3543625,8;
+ next;
+ mes "[Chief Mahnsoo]";
+ mes "Ummmm...";
+ mes "And I also have";
+ mes "a bit of a personal";
+ mes "request for you.";
+ next;
+ mes "[Chief Mahnsoo]";
+ mes "Would you please give her this message when you deliver the package? Please~";
+ getitem 1072,1; //Delivery_Message
+ break;
+ }
+ next;
+ mes "[Chief Mahnsoo]";
+ mes "Don't forget your destination and the package's Serial Number. You will need to tell those to the storekeeper in the storehouse to the right of me.";
+ next;
+ mes "[Chief Mahnsoo]";
+ mes "After the delivery, give the receipt to the storekeeper, and then come back and see me.";
+ next;
+ mes "[Chief Mahnsoo]";
+ mes "Is that clear?";
+ mes "Alright, that's";
+ mes "the spirit.";
+ mes "Take care!";
+ close;
+ case 2:
+ mes "[Chief Mahnsoo]";
+ mes "Merchant?";
+ mes "Well, we basically sell goods to make money. That is the way";
+ mes "of the Merchant.";
+ next;
+ mes "[Chief Mahnsoo]";
+ mes "I guess we may not be the best at fighting, and we don't have many special attacks. We've got no healing skills...";
+ next;
+ mes "[Chief Mahnsoo]";
+ mes "But we can buy goods at lower prices from NPC shops and sell them at a higher price to other people~";
+ next;
+ mes "[Chief Mahnsoo]";
+ mes "Our ultimate attack skill is 'Mammonite.' The strength of Mammonite comes from the anger";
+ mes "when we're forced to throw away perfectly good zeny.";
+ next;
+ mes "[Chief Mahnsoo]";
+ mes "Throwing away zeny like that";
+ mes "causes a deadly rage to well up in the heart of any Merchant!";
+ mes "Just thinking about it";
+ mes "makes my blood boil!";
+ next;
+ mes "[Chief Mahnsoo]";
+ mes "Anyway, we can use most";
+ mes "weapons except Bows, Rods, and Two-Handed Swords. But we can always sell those.";
+ next;
+ mes "[Chief Mahnsoo]";
+ mes "Yes...";
+ mes "We Merchants generally";
+ mes "have money on our minds...";
+ close;
+ case 3:
+ mes "[Chief Mahnsoo]";
+ mes "There are three conditions that must be fulfilled before you can become a Merchant.";
+ next;
+ mes "[Chief Mahnsoo]";
+ mes "First, You have to be a Novice with Job Level 10, and have learned all of the Basic Skills.";
+ next;
+ mes "[Chief Mahnsoo]";
+ mes "Second, You have to pay a 1,000 Zeny Membership Fee. I believe any Merchant candidate should be able to earn 1,000 Zeny with ease.";
+ next;
+ mes "[Chief Mahnsoo]";
+ mes "Third, there is a License Test to test your physical strength and sense of direction. You will deliver a package to a specific person in a specific location.";
+ close;
+ case 4:
+ close;
+ }
+ }
+
+S_GiveSerial:
+ next;
+ mes "[Chief Mahnsoo]";
+ mes "Remember...";
+ if (rand(1)) {
+ mes "The package's";
+ mes "Serial Number is";
+ mes "^3355FF"+getarg(0)+"^000000.";
+ set job_merchant_q2,getarg(1);
+ }
+ else {
+ mes "The package's";
+ mes "Serial Number is";
+ mes "^3355FF"+getarg(2)+"^000000.";
+ set job_merchant_q2,getarg(3);
+ }
+ return;
+}
+
+alberta_in,28,29,2 script Merchant Guildsman#mer 83,{
+ if (BaseJob == Job_Merchant) {
+ mes "[Union Staff Kay]";
+ mes "Heya pal.";
+ mes "How ya doin'?";
+ close;
+ }
+ else if (BaseJob != Job_Merchant && BaseJob != Job_Novice) {
+ mes "[Union Staff Kay]";
+ mes "Hey you. We don't have any open positions for part time work. If you wanna earn some zeny, you'll hafta look elsewhere.";
+ close;
+ }
+ else if (job_merchant_q == 9) {
+ mes "[Union Staff Kay]";
+ mes "Hey you. Yeah, you.";
+ mes "If you wanna restart the test, go visit Mahnsoo in the other room. Then we can talk.";
+ close;
+ }
+ else if (job_merchant_q == 8 || job_merchant_q == 7) {
+ mes "[Union Staff Kay]";
+ mes "Alright! Everything looks perfect! I'll report your success to the guildmaster. Now go talk to Chief Mahnsoo, yeah?";
+ close;
+ }
+ else if (job_merchant_q == 6 || job_merchant_q == 5) {
+ mes " [Union Staff Kay] ";
+ mes "Oh, yeah? Okay, lemme check. Your name is " + strcharinfo(0) + "? Alright, your destination was...";
+ next;
+ mes "[Union Staff Kay]";
+ if (job_merchant_q2 == 1 || job_merchant_q2 == 2)
+ mes "Wow! You met the Kafra babe in Prontera?! Lucky you~ ...Receipt?";
+ else if (job_merchant_q2 == 3 || job_merchant_q2 == 4)
+ mes "Geffen Magic Academy. Okay, receipt?";
+ else if (job_merchant_q2 == 5 || job_merchant_q2 == 6)
+ mes "The dyemaker in Morroc. Not bad. Receipt?";
+ else if (job_merchant_q2 == 7 || job_merchant_q2 == 8)
+ mes "Oh hohohoho~! The Kafra Babe on Byalan Island?! Awesome! Anyway, did you bring the receipt?";
+
+ if (job_merchant_q2 == 1 && countitem(1073) != 0)
+ delitem 1073,1; //Merchant_Voucher_1
+ else if (job_merchant_q2 == 2 && countitem(1074) != 0)
+ delitem 1074,1; //Merchant_Voucher_2
+ else if (job_merchant_q2 == 3 && countitem(1075) != 0)
+ delitem 1075,1; //Merchant_Voucher_3
+ else if (job_merchant_q2 == 4 && countitem(1076) != 0)
+ delitem 1076,1; //Merchant_Voucher_4
+ else if (job_merchant_q2 == 5 && countitem(1077) != 0)
+ delitem 1077,1; //Merchant_Voucher_5
+ else if (job_merchant_q2 == 6 && countitem(1078) != 0)
+ delitem 1078,1; //Merchant_Voucher_6
+ else if (job_merchant_q2 == 7 && countitem(1079) != 0)
+ delitem 1079,1; //Merchant_Voucher_7
+ else if (job_merchant_q2 == 8 && countitem(1080) != 0)
+ delitem 1080,1; //Merchant_Voucher_8
+ else {
+ next;
+ set job_merchant_q,9;
+ mes " [Union Staff Kay] ";
+ mes "Wait a sec.";
+ mes "Where's the receipt?";
+ mes "What happened?";
+ next;
+ mes " [Union Staff Kay] ";
+ mes "If you don't have the receipt, you fail the test! You better talk to Mahnsoo if you wanna retake it, alright? Pay attention next time!";
+ close;
+ }
+ next;
+ mes " [Union Staff Kay] ";
+ mes "...Great! Everything's perfect! I'll report your success to the Guildmaster. You should talk to Chief Mahnsoo now, alright?";
+ close2;
+ if (job_merchant_q == 6)
+ set job_merchant_q,8;
+ else if (job_merchant_q == 5)
+ set job_merchant_q,7;
+ end;
+ }
+ else if (job_merchant_q == 4 || job_merchant_q == 3 && countitem(1081) == 0 && countitem(1082) == 0 && countitem(1091) == 0) {
+ mes " [Union Staff Kay] ";
+ mes "Huh?";
+ mes "You're back?";
+ mes "So how did";
+ mes "the delivery go?";
+ next;
+ if (select("*Sob* I lost the package.:Fine.") == 1) {
+ set job_merchant_q,9;
+ mes "[Union Staff Kay]";
+ mes "Are you kidding me? You'll fail the test if you lose the package!";
+ next;
+ mes "[Union Staff Kay]";
+ mes "Awwww man. Well, if you wanna restart the test, talk to Mahnsoo, okay? You're lucky you're getting another chance!";
+ close;
+ }
+ mes "[Union Staff Kay]";
+ mes "Huh...";
+ mes "Okay...";
+ close;
+ }
+ else if (job_merchant_q == 4 || job_merchant_q == 3 && countitem(1081) != 0 || countitem(1082) != 0 || countitem(1091) != 0) {
+ mes "[Union Staff Kay]";
+ mes "Hey, what are you still doing here? Shouldn't you be on your way already?";
+ next;
+ if (select("I need a new package.:Oh, yeah. You're right!") == 1) {
+ if (countitem(1081) == 0 && countitem(1082) == 0 && countitem(1083) == 0 && countitem(1091) == 0) {
+ mes "[Union Staff Kay]";
+ mes "Wha--?";
+ mes "So where did";
+ mes "the package go?";
+ mes "Where is it?!";
+ next;
+ if (select("*Sob* I lost it!:I have it right here.") == 1) {
+ set job_merchant_q,9;
+ mes "[Union Staff Kay]";
+ mes "You...";
+ mes "Lost it?!";
+ mes "You failed the test!";
+ next;
+ mes "[Union Staff Kay]";
+ mes "*Sigh* If you want to restart the test, go visit Mahnsoo in the other room, alright?";
+ close;
+ }
+ mes "[Union Staff Kay]";
+ mes "Huh.";
+ mes "I thought";
+ mes "you lost it.";
+ mes "You don't";
+ mes "need a new one.";
+ close;
+ }
+ mes "[Union Staff Kay]";
+ mes "*Sigh* Man, you're starting to become a pain in the ass. Hold on, lemme cancel your record...";
+ if (countitem(1081) != 0)
+ delitem 1081,1; //Merchant_Box_1
+ else if (countitem(1082) != 0)
+ delitem 1082,1; //Merchant_Box_2
+ else if (countitem(1091) != 0)
+ delitem 1091,1; //Merchant_Box_Etc
+ if (job_merchant_q == 4)
+ set job_merchant_q,2;
+ else if (job_merchant_q == 3)
+ set job_merchant_q,1;
+ next;
+ mes "[Union Staff Kay]";
+ mes "I need some time to get everything in order, so come back later.";
+ close;
+ }
+ mes "[Union Staff Kay]";
+ mes "What a bummer...";
+ close;
+ }
+ else if ((job_merchant_q == 0 || job_merchant_q == 1 || job_merchant_q == 2)) {
+ set where_village,0;
+ mes "[Union Staff Kay]";
+ mes "Hey there.";
+ mes "what brings";
+ mes "you here?";
+ next;
+ switch(select("My Merchant License test.:I'm looking for part time work.:Nothing.")) {
+ case 1:
+ mes "[Union Staff Kay]";
+ mes "I see.";
+ mes "Alright.";
+ mes "So what's";
+ mes "your name?";
+ mes "" + strcharinfo(0) + "...?";
+ next;
+ if (job_merchant_q == 0) {
+ mes "[Union Staff Kay]";
+ mes "Huh. Your name's not on my list. Did you apply for the job change quest or what?";
+ next;
+ mes "[Union Staff Kay]";
+ mes "You gotta apply first by talking to Chief Mahnsoo in the center";
+ mes "of this building, okay?";
+ close;
+ }
+ mes "[Union Staff Kay]";
+ mes "Alright, there you go. Lemme give you the package. Now, choose the destination of the delivery.";
+ next;
+ switch(select("Prontera.:Geffen.:Morocc.:Byalan Island.")) {
+ case 1: set .@where_village,1; break;
+ case 2: set .@where_village,2; break;
+ case 3: set .@where_village,3; break;
+ case 4: set .@where_village,4; break;
+ }
+ mes "[Union Staff Kay]";
+ mes "Okay, now you need to give me the package's Serial Number. If you wanna cancel, just enter '0', alright?";
+ next;
+ while(1) {
+ while(1) {
+ input .@input;
+ if (.@input == 0) {
+ mes "[Union Staff Kay]";
+ mes "Are you sure that you wanna cancel?";
+ if (select("Yes.:Let me try again.") == 1) {
+ mes "Alright, we'll cancel for now.";
+ close;
+ }
+ next;
+ }
+ else if (.@input < 1000000 || .@input > 5000000) {
+ mes "[Union Staff Kay]";
+ mes "Hey hey. That number's not valid! Enter a value from 1000000 to 5000000. got it?";
+ next;
+ }
+ else
+ break;
+ }
+ mes "[Union Staff Kay]";
+ if (.@where_village == 1)
+ mes "Destination is Prontera. The Serial Number is " + .@input + ". Are you positive?";
+ else if (.@where_village == 2)
+ mes "Destination is Geffen. Phew! That's really far! The Serial Number is " + .@input + ". Are you positive?";
+ else if (.@where_village == 3)
+ mes "Destination is Morocc. That's pretty far away! The Serial Number is " + .@input + ". Are you positive?";
+ else
+ mes "Lucky you! Your destination is Byalan Island. The Serial Number is " + .@input + ". Are you positive?";
+ next;
+ if (select("Positive.:Whoops! Wrong number!") == 1) {
+ break;
+ }
+ }
+ if (.@where_village == 1) {
+ if (job_merchant_q2 == 1 && .@input == 2485741)
+ getitem 1081,1; //Merchant_Box_1
+ else if (job_merchant_q2 == 2 && .@input == 2328137)
+ getitem 1082,1; //Merchant_Box_2
+ else
+ getitem 1091,1; //Merchant_Box_Etc
+ }
+ else if (.@where_village == 2) {
+ if (job_merchant_q2 == 3 && .@input == 2989396)
+ getitem 1081,1; //Merchant_Box_1
+ else if (job_merchant_q2 == 4 && .@input == 2191737)
+ getitem 1082,1; //Merchant_Box_2
+ else
+ getitem 1091,1; //Merchant_Box_Etc
+ }
+ else if (.@where_village == 3) {
+ if (job_merchant_q2 == 5 && .@input == 3012685)
+ getitem 1081,1; //Merchant_Box_1
+ else if (job_merchant_q2 == 6 && .@input == 3487372)
+ getitem 1082,1; //Merchant_Box_2
+ else
+ getitem 1091,1; //Merchant_Box_Etc
+ }
+ else {
+ if (job_merchant_q2 == 7 && .@input == 3318702)
+ getitem 1081,1; //Merchant_Box_1
+ else if (job_merchant_q2 == 8 && .@input == 3543625)
+ getitem 1082,1; //Merchant_Box_2
+ else
+ getitem 1091,1; //Merchant_Box_Etc
+ }
+ if (job_merchant_q == 2)
+ set job_merchant_q,4;
+ else if (job_merchant_q == 1)
+ set job_merchant_q,3;
+ mes "[Union Staff Kay]";
+ mes "Alright. Take this package and guard it with your life until it's safely delivered to the customer. Don't lose this thing, got it?";
+ next;
+ mes "[Union Staff Kay]";
+ mes "Well then, I wish you luck. Remember, you gotta bring me";
+ mes "a receipt once you finish the delivery, okay?";
+ close;
+ case 2:
+ mes "[Union Staff Kay]";
+ mes "Part time job? Sorry pal, no jobs yet. The Paymaster's department can never balance our budget...";
+ close;
+ case 3:
+ mes "[Union Staff Kay]";
+ mes "Nothing, eh?";
+ mes "I guess you enjoy";
+ mes "bothering people for";
+ mes "no reason then, yeah?";
+ close;
+ }
+ }
+}
+
+morocc_in,140,102,4 script Student#mer 86,{
+ if ((job_merchant_q == 4) || (job_merchant_q == 3)) {
+ mes "[Dyer's Student]";
+ mes "You're from";
+ mes "the Merchant Guild?";
+ mes "Yes! You've come to";
+ mes "the right place.";
+ next;
+ mes "[Dyer's Student]";
+ if (countitem(1081) == 1 || countitem(1082) == 1 || countitem(1091) == 1) {
+ mes "Okay~";
+ mes "Please set the";
+ mes "package down";
+ mes "over there.";
+ }
+ else {
+ mes "But...";
+ mes "Where's the";
+ mes "package I ordered?";
+ mes "That's strange...";
+ close;
+ }
+ next;
+ mes "[Dyer's Student]";
+ mes "Let me check the Serial Number of the package so I can give you the receipt, okay?";
+ next;
+ mes "[Dyer's Student]";
+ if (job_merchant_q2 == 5 && countitem(1081) != 0) {
+ mes "3012685...";
+ mes "That's right.";
+ mes "Here's your";
+ mes "receipt.";
+ delitem 1081,1; //Merchant_Box_1
+ getitem 1077,1; //Merchant_Voucher_5
+ }
+ else if (job_merchant_q2 == 6 && countitem(1082) != 0) {
+ mes "3487372...";
+ mes "That's right.";
+ mes "Here's your";
+ mes "receipt.";
+ delitem 1082,1; //Merchant_Box_2
+ getitem 1078,1; //Merchant_Voucher_6
+ }
+ else {
+ mes "Excuse me, but...";
+ if (job_merchant_q2 == 5)
+ mes "I don't think this is the package we ordered. The Serial Number should be 3012685. See?";
+ else if (job_merchant_q2 == 6)
+ mes "I don't think this is the package we ordered. The Serial Number should be 3487372. See?";
+ else
+ mes "I don't think this is the package we ordered. The Serial Number should be 3012685 or 3487372. Well, one of those two...";
+ close;
+ }
+ if (job_merchant_q == 4)
+ set job_merchant_q,6;
+ else if (job_merchant_q == 3)
+ set job_merchant_q,5;
+ next;
+ mes "[Dyer's Student]";
+ mes "Thanks a lot!";
+ mes "See you again";
+ mes "sometime!";
+ close;
+ }
+ else if (job_merchant_q == 6 || job_merchant_q == 5 && job_merchant_q2 == 6 || job_merchant_q2 == 5) {
+ mes "[Dyer's Student]";
+ mes "Oh...";
+ mes "You're gonna";
+ mes "go back? Okay";
+ mes "then, take care!";
+ close;
+ }
+ else {
+ mes "[Dyer's Student]";
+ mes "Mr. Java Dullihan is the one and only, the best dye maker on the Rune-Midgard continent.";
+ next;
+ mes "[Dyer's Student]";
+ mes "Aaaand I'm proud to say that I'm his student! Someday, I'll be able to make really beautiful dyes too!";
+ next;
+ mes "[Dyer's Student]";
+ mes "Of course, I'm still learning the basics right now, but someday...";
+ close;
+ }
+}
+
+geffen_in,155,122,4 script Guild Staff#mer 47,{
+ if (job_merchant_q == 4 || job_merchant_q == 3) {
+ mes "[Guild Staff]";
+ mes "Ah, you must be with the Merchant Guild. Finally, my package has arrived! Alright...!";
+ next;
+ mes "[Guild Staff]";
+ if (countitem(1081) == 1 || countitem(1082) == 1 || countitem(1091) == 1) {
+ mes "You must be very tired";
+ mes "from having to travel";
+ mes "in this kind";
+ mes "of weather...";
+ }
+ else {
+ mes "Wait...";
+ mes "Where's the";
+ mes "package?";
+ close;
+ }
+ next;
+ mes "[Guild Staff]";
+ mes "Alright, let me";
+ mes "check the Serial Number...";
+ if (job_merchant_q2 == 3 && countitem(1081) != 0) {
+ mes "2989396. Yes, this is what we ordered. Here is your receipt.";
+ delitem 1081,1; //Merchant_Box_1
+ getitem 1075,1; //Merchant_Voucher_3
+ }
+ else if (job_merchant_q2 == 4 && countitem(1082) != 0) {
+ mes "2191737. Yes, this is what we ordered. Here is your receipt.";
+ delitem 1082,1; //Merchant_Box_2
+ getitem 1076,1; //Merchant_Voucher_4
+ }
+ else {
+ mes "Uh oh, this is the wrong number. This isn't what we ordered...";
+ next;
+ mes "[Guild Staff]";
+ if (job_merchant_q2 == 3) {
+ mes "The Serial Number";
+ mes "should be 2989396.";
+ }
+ else if (job_merchant_q2 == 4) {
+ mes "The Serial Number";
+ mes "should be 2191737.";
+ }
+ else {
+ mes "The Serial Number";
+ mes "should be 2989396";
+ mes "or 2191737, one of";
+ mes "those two.";
+ }
+ mes "Look here!";
+ mes "Don't you see";
+ mes "something";
+ mes "is wrong?";
+ close;
+ }
+ if (job_merchant_q == 4)
+ set job_merchant_q,6;
+ else if (job_merchant_q == 3)
+ set job_merchant_q,5;
+ next;
+ mes "[Guild Staff]";
+ mes "Heh heh~";
+ mes "Thank you!";
+ mes "Bye bye!";
+ close;
+ }
+ else if (job_merchant_q == 6 || job_merchant_q == 5 && job_merchant_q2 == 4 || job_merchant_q2 == 3) {
+ mes "[Guild Staff]";
+ mes "Hello,";
+ mes "Merchant Guildsman~";
+ mes "I give you my thanks.";
+ close;
+ }
+ else {
+ mes "[Guild Staff]";
+ mes "My package should have arrived by now. Huh. I guess the Merchant Guild might be running a little late...";
+ close;
+ }
+}
+
+prontera,248,42,0 script Kafra Employee#mer 116,{
+ cutin "kafra_02",2;
+ if (job_merchant_q == 6 || job_merchant_q == 5) && (job_merchant_q2 == 2 || job_merchant_q2 == 1) {
+ mes "[Kafra Employee]";
+ mes "Oh! Thank you for";
+ mes "traveling such a long";
+ mes "way to come over here~";
+ close2;
+ cutin "",255;
+ end;
+ }
+ else if (job_merchant_q == 4 || job_merchant_q == 3) {
+ mes "[Kafra Employee]";
+ mes "A delivery from";
+ mes "the Merchant Guild?";
+ mes "Oh, yes, please set";
+ mes "it down right over there...";
+ if (countitem(1081) == 1 || countitem(1082) == 1 || countitem(1091) == 1) {
+ mes "You must be really tired";
+ mes "after carrying it for so long!";
+ }
+ else {
+ mes "W-wait. Didn't you bring it?";
+ mes "Where's the package?";
+ close2;
+ cutin "",255;
+ end;
+ }
+ next;
+ mes "[Kafra Employee]";
+ mes "Now, let me check";
+ mes "the serial number...";
+ if (job_merchant_q2 == 1 && countitem(1081) != 0) {
+ mes "2485741. Right, this is";
+ mes "the one we ordered. Oh,";
+ mes "and don't forget this receipt!";
+ next;
+ delitem 1081,1; //Merchant_Box_1
+ getitem 1073,1; //Merchant_Voucher_1
+ }
+ else if (job_merchant_q2 == 2 && countitem(1082) != 0) {
+ mes "2328137. Right, this is";
+ mes "the one we ordered. Oh,";
+ mes "and don't forget this receipt!";
+ next;
+ delitem 1082,1; //Merchant_Box_2
+ getitem 1074,1; //Merchant_Voucher_2
+ }
+ else {
+ mes "Mmmm? Hold on. This is";
+ mes "the wrong package. What we";
+ if (job_merchant_q2 == 1)
+ mes "ordered had the serial number 2485741. I'm sure it's not this.";
+ else if (job_merchant_q2 == 2)
+ mes "ordered had the serial number 2328137. I'm sure it's not this.";
+ else
+ mes "ordered had the serial number 2328137 or 2328137.";
+ next;
+ mes "[Kafra Employee]";
+ mes "I'm afraid there";
+ mes "must be some kind";
+ mes "of mistake. Perhaps";
+ mes "you should go back to";
+ mes "the Merchant Guild to";
+ mes "clear up this situation?";
+ close2;
+ cutin "",255;
+ end;
+ }
+ if (job_merchant_q == 4)
+ set job_merchant_q,6;
+ else if (job_merchant_q == 3)
+ set job_merchant_q,5;
+ mes "[Kafra Employee]";
+ mes "Thanks again";
+ mes "for going through";
+ mes "all of that trouble~";
+ close2;
+ cutin "",255;
+ end;
+ }
+ else {
+ mes "[Kafra Employee]";
+ mes "Welcome to the";
+ mes "Kafra Corportation,";
+ mes "where the service is";
+ mes "always on your side~";
+ next;
+ mes "[Kafra Employee]";
+ mes "As you can see, the";
+ mes "Swordman Assocation";
+ mes "has moved to Izlude, a";
+ mes "satellite city of Prontera.";
+ mes "Currently, we offer a Teleport";
+ mes "Service to Izlude for 600 zeny.";
+ next;
+ if (select("Use:Cancel") == 1) {
+ if (Zeny < 600) {
+ mes "[Kafra Employee]";
+ mes "I'm sorry, but you";
+ mes "don't have enough zeny";
+ mes "for this Teleport Service.";
+ close2;
+ cutin "",255;
+ end;
+ }
+ set zeny,zeny-600;
+ set RESRVPTS, RESRVPTS + 37;
+ cutin "",255;
+ warp "izlude",94,103;
+ end;
+ }
+ close2;
+ cutin "",255;
+ end;
+ }
+}
+
+//izlu2dun,106,58,4 script Kafra Employee#mer 116,{
+function script F_MercKafra {
+ if ((job_merchant_q == 6 || job_merchant_q == 5) && (job_merchant_q2 == 8 || job_merchant_q2 == 7)) {
+ mes "[Kafra Employee]";
+ mes "Oh hello~";
+ mes "Um, is there";
+ mes "some special reason";
+ mes "as to why you're here?";
+ close2;
+ cutin "",255;
+ end;
+ }
+ else if (job_merchant_q == 4 || job_merchant_q == 3) {
+ mes "[Kafra Employee]";
+ mes "A delivery from";
+ mes "the Merchant Guild?";
+ mes "Oh, yes, please set";
+ mes "it down right over there...";
+ if (countitem(1081) == 1 || countitem(1082) == 1 || countitem(1091) == 1) {
+ mes "You must be really tired";
+ mes "after carrying it for so long!";
+ }
+ else {
+ mes "W-wait. Didn't you bring it?";
+ mes "Where's the package?";
+ close2;
+ cutin "",255;
+ end;
+ }
+ next;
+ mes "[Kafra Employee]";
+ mes "Now, let me check";
+ mes "the serial number...";
+ if (job_merchant_q2 == 7 && countitem(1081) != 0) {
+ mes "3318702. Right, this is";
+ mes "the one we ordered. Oh,";
+ mes "and don't forget this receipt!";
+ delitem 1081,1; //Merchant_Box_1
+ getitem 1079,1; //Merchant_Voucher_7
+ }
+ else if (job_merchant_q2 == 8 && countitem(1082) != 0) {
+ mes "3543625. Right, this is";
+ mes "the one we ordered. Oh,";
+ mes "and don't forget this receipt!";
+ delitem 1082,1; //Merchant_Box_2
+ getitem 1080,1; //Merchant_Voucher_8
+ }
+ else {
+ mes "Mmmm? Hold on. This is";
+ mes "the wrong package. What we";
+ if (job_merchant_q2 == 7)
+ mes "ordered had the serial number 3318702. I'm sure it's not this.";
+ else if (job_merchant_q2 == 8)
+ mes "ordered had the serial number 3543625. I'm sure it's not this.";
+ else
+ mes "ordered had the serial number 3318702 or 3543625.";
+ close2;
+ cutin "",255;
+ end;
+ }
+ if (job_merchant_q == 4)
+ set job_merchant_q,6;
+ else if (job_merchant_q == 3)
+ set job_merchant_q,5;
+ next;
+ if (countitem(1072) != 0 && quest_alb_01 == 0) {
+ select("This is from Chief Mahnsoo of the Merchant Guild...");
+ delitem 1072,1; //Delivery_Message
+ set quest_alb_01,1;
+ mes "[Kafra Employee]";
+ mes "Oh~! A letter from";
+ mes "Mahnsoo! Thank you";
+ mes "so much, I've been dying";
+ mes "to hear from him. How is";
+ mes "he doing, is he alright?";
+ mes "I can't wait to read it...";
+ next;
+ mes "[Kafra Employee]";
+ mes "Oh, thank you for";
+ mes "going through all the";
+ mes "trouble of delivering all";
+ mes "of this. This isn't anything";
+ mes "special, but please take it.";
+ mes "Well, see you again~";
+ getitem 513,3; //Banana
+ }
+ else {
+ mes "[Kafra Employee]";
+ mes "Thanks again";
+ mes "for going through";
+ mes "all of that trouble~";
+ }
+ close2;
+ cutin "",255;
+ end;
+ }
+ return;
+}
diff --git a/npc/pre-re/jobs/1-1/swordman.txt b/npc/pre-re/jobs/1-1/swordman.txt
new file mode 100644
index 000000000..36ddc9d21
--- /dev/null
+++ b/npc/pre-re/jobs/1-1/swordman.txt
@@ -0,0 +1,642 @@
+//===== rAthena Script =======================================
+//= Swordsman Job Quest
+//===== By: ==================================================
+//= kobra_k88; L0ne_W0lf
+//===== Current Version: =====================================
+//= 2.3
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Official Conversion]
+//= Job quest for Swordman classes
+//= Uses Job_sword1 as opposed to sword_1-1 -> sword_3-1.
+//= EXPLOITABLE in a sense because while the sword_x-1 maps
+//= are marked as "inside" by the client, job_sword1 is not.
+//= giving players FREE camera rotation while doing the job quest.
+//===== Additional Comments: =================================
+//= 1.0 Fully working.
+//= 1.1 Added instant job change for High Novice [Lupus]
+//= 1.3 Added Baby Class support [Lupus]
+//= 1.4 Changed the timing system to initnpctimer, now you do get warnings about time
+//= and are limited to 7min to complete the quest [Fredzilla]
+//= 1.5 Optimised and moved first checker to Jfunc1-1 [massdriller]
+//= 1.5.1 Fixed possible EXP abuse [Lupus]
+//= 1.5.2 Now saves/restores all quest skills [Lupus]
+//= 1.5.3 Removed Duplicates [Silent]
+//= 1.6 Merged back JFunc, CHANGED NUMBERS TO CONSTANTS [Lupus]
+//= 1.7 changed location from its clone to the original [Lupus]
+//= 1.7.1 Fixed warp on timeout [KarLaeda]
+//= 1.8 Rescripted to Aegis 10.3 stadards. [L0ne_W0lf]
+//= Removed "green" traps, quest is no longer timed.
+//= No longer uses function "F_ToHigh"
+//= 1.9 Dialog is official, but the Script is now custom as far as maps go. [L0ne_W0lf]
+//= 1.9b Fixed usage of wrong jobchange func messing up baby classes [ultramage]
+//= 2.0 Corrected NPC names to fall within proper resctrictions. [L0ne_W0lf]
+//= 2.1 Fixed mistake in condition check. [L0ne_W0lf]
+//= 2.2 Warp portals dont end with ; [Yommy]
+//= 2.3 Added Quest Log commands. [L0ne_W0lf]
+//============================================================
+
+izlude_in,74,172,4 script Swordman#swd_1 119,{
+ if (Upper == 1) {
+ if (Class == Job_Novice_High && (ADVJOB == Job_Lord_Knight || ADVJOB == Job_Paladin)) {
+ mes "[Swordman]";
+ mes "It...";
+ mes "Can't be...";
+ mes "You've been reborn, haven't you?";
+ next;
+ mes "[Swordman]";
+ mes "I see you're retreading the path of the Swordman! Once you've gotten used to brandishing a sword, you can never go back!!";
+ next;
+ if (getskilllv("NV_BASIC") < 9) {
+ mes "[Swordman]";
+ mes "Hmm? Ah, you must first master the Basic Skills before you are ready to become a Swordman.";
+ next;
+ mes "[Swordman]";
+ mes "Come back to me when you have finished learning the Basic Novice Skills.";
+ close;
+ }
+ mes "[Swordman]";
+ mes "Excellent! Let me promote you to a Swordman right away!";
+ next;
+ skill 143,0,0;
+ jobchange Job_Swordman_High;
+ skill 144,1,0;
+ skill 145,1,0;
+ skill 146,1,0;
+ mes "[Swordman]";
+ mes "Hmm... You look like a well-experienced Swordman. Still, I'm sure that you must train to improve your skills and gain strength!";
+ close;
+ }
+ else {
+ mes "[Swordman]";
+ mes "Hm...?";
+ mes "You're a reborn";
+ mes "warrior, aren't you?";
+ next;
+ mes "[Swordman]";
+ mes "Hmmm...";
+ mes "It seems that being";
+ mes "a Swordman is not part";
+ mes "of your destiny. I'm sorry,";
+ mes "but it seems there is nothing";
+ mes "I can do for you.";
+ close;
+ }
+ }
+ mes "[Swordman]";
+ mes "Welcome to the";
+ mes "Swordman Association!";
+ next;
+ mes "[Swordman]";
+ mes "So...";
+ mes "What business";
+ mes "brings you to us?";
+ next;
+ switch(select("Job Change:About Swordman.:About the Job requirements.:Cancel.")) {
+ case 1:
+ if (BaseJob == Job_Swordman) {
+ mes "[Swordman]";
+ mes "Job change? Muhahaha! But you're already a Swordman! Be proud and be strong!";
+ close;
+ }
+ else if (BaseJob != Job_Novice) {
+ mes "[Swordman]";
+ mes "Haha! Oh boy. I'm flattered, but you already have another job! Still, I can't blame you...";
+ close;
+ }
+ if (job_sword_q == 0) {
+ mes "[Swordman]";
+ mes "So you wish to become a proud Swordman? By all means, please sign up!";
+ next;
+ if (select("Sign up.:Cancel.") == 1) {
+ savepoint "izlude_in",65,165;
+ set job_sword_q,1;
+ setquest 1014;
+ mes "[Swordman]";
+ mes "Ah, yes. Your application will be reviewed as soon as possible.";
+ next;
+ mes "[Swordman]";
+ mes "If you have already met the requirements, you can take an interview right now. Would you like to?";
+ next;
+ if (select("Yes.:No.") == 1) {
+ mes "[Swordman]";
+ mes "Good, good.";
+ mes "Now, let's see...";
+ next;
+ }
+ else {
+ mes "[Swordman]";
+ mes "Alright then. Feel free to come back whenever you are ready. All you ahve to do now is meet our requirements. Good luck to you.";
+ close;
+ }
+ }
+ else {
+ mes "[Swordman]";
+ mes "Hm? Alright, come back whenever you change your mind. The world can always use another Swordman!";
+ close;
+ }
+ }
+ mes "[Swordman]";
+ if (getskilllv("NV_BASIC") < 9) {
+ mes "Hm, you still haven't learned all of the Basic Skills. You need to do that before you can become a Swordman.";
+ next;
+ mes "[Swordman]";
+ mes "Check the requirements for job change again, and come back when you are ready.";
+ close;
+ }
+ else if (job_sword_q <= 3) {
+ mes "Hm, you've learned all of the Basic Skills but didn't take the test yet. You must first pass the exam before you can change your job to Swordman.";
+ next;
+ mes "[Swordman]";
+ mes "Enter the room to my right so that you can take the test. You'll need to speak to my right so you can enter the examination area.";
+ close;
+ }
+ else if (job_sword_q == 4) {
+ mes "Hahaha! Congratulations! Now you are fully qualified to be a real Swordman! I will transform you right away!";
+ next;
+ callfunc "Job_Change",Job_Swordman;
+ set job_sword_q,0;
+ completequest 1014;
+ mes "[Swordman]";
+ mes "Once again, congratulations. I expect that you will be a good representative of the Swordman Association.";
+ close;
+ }
+ case 2:
+ mes "[Swordman]";
+ mes "So you wish to know more about the mighty Swordman job? Well, then...";
+ next;
+ mes "[Swordman]";
+ mes "Amongst the First Class jobs, the Swordman is the best melee fighter for three reasons.";
+ mes "There are 3 reasons why Swordy is the best to approch a fight!";
+ next;
+ mes "[Swordman]";
+ mes "First, Swordman has the benefit of additional HP. Second, Swordman generally have access to a wider selection fo weapons than the other First Class jobs.";
+ next;
+ mes "[Swordman]";
+ mes "And third, most of the Swordman skills are crushing physical attacks! In my opinion, being a Swordman is the best job ever!";
+ close;
+ case 3:
+ mes "[Swordman]";
+ mes "Hmmm...";
+ if (BaseJob != Job_Novice) {
+ if (BaseJob == Job_Swordman)
+ mes "But there's no need to tell you the requirements. You've met them and already became a Swordman! Well, anyway...";
+ else
+ mes "It's too late for you to become a Swordman. You already have another job. Still, there's no harm in telling you...";
+ }
+ next;
+ mes "[Swordman]";
+ mes "First, you must learn all 9 of the Basic Skills. If you can't complete this requirement, you won't be able to change to any job.";
+ next;
+ mes "[Swordman]";
+ mes "Second, you must pass the Swordman Test. Inquire the Test Manager located in the waiting room of the Swordman Test.";
+ next;
+ mes "[Swordman]";
+ mes "If you can complete these 2 requirements, you can change to a Swordman anytime you want.";
+ close;
+ case 4:
+ mes "[Swordman]";
+ mes "Ha ha ha!";
+ mes "Ah, youth!";
+ close;
+ }
+}
+
+izlude_in,62,170,6 script Swordman#swd_2 85,{
+ mes "[Swordman]";
+ if (BaseJob == Job_Swordman) {
+ mes "Sorry guy, but I can only allow Novices to enter the Test Hall.";
+ close;
+ }
+ else if (BaseJob != Job_Novice) {
+ mes "Who the hell are you?! Nobody, other than Novices, is permitted to come in here!";
+ close;
+ }
+ else if (getskilllv("NV_BASIC") < 9) {
+ mes "Stop! I can't let you in until you learn all of the Basic Skills. The Test Hall isn't for goofing off!";
+ close;
+ }
+ else if (job_sword_q == 4) {
+ mes "Hey. You need to talk to the Swordman in the center of the room, not me.";
+ close;
+ }
+ else if (job_sword_q == 0) {
+ mes "Stop! If you want to take the Swordman Test, you'll need to fill out an application first.";
+ next;
+ mes "[Swordman]";
+ mes "The Swordman in the center of the room can help you with that, got it?";
+ close;
+ }
+ else {
+ savepoint "izlude_in",65,165;
+ warp "izlude_in",39,170;
+ end;
+ }
+}
+
+izlude_in,30,175,4 script Swordman#swd_3 92,{
+ mes "[Swordman]";
+ mes "I will tell you about the Test! Listen carefully, I won't repeat myself.";
+ next;
+ mes "[Swordman]";
+ mes "The purpose of this test is to confirm whether or not you are qualified to be a Swordman. As you know, a Swordman needs physical strength and spirit!";
+ next;
+ mes "[Swordman]";
+ mes "Without those, you won't be able to become a Swordman. Now, the conditions for completing this test are very simple.";
+ next;
+ mes "[Swordman]";
+ mes "You will travel through three courses and must reach the final checkpoint within ^FF000010 minutes^000000.";
+ next;
+ mes "[Swordman]";
+ mes "If you choose to 'Surrender,' or if you run out of time, you will not pass the test.";
+ next;
+ mes "[Swordman]";
+ mes "If you find that you are not strong enough to pass the test, head to the entrance of the course and talk to the checkpoint manager.";
+ next;
+ mes "[Swordman]";
+ mes "As you travel through the three courses, you may fall to a random, underground area. The course is designed so that you can still find your way back.";
+ next;
+ mes "[Swordman]";
+ mes "However, be careful, as this will waste your time! Godspeed to you.";
+ close;
+}
+
+izlude_in,30,163,0 script Test Hall Staff#swd_1 105,{
+ mes "[Test Hall Staff]";
+ if (BaseJob == Job_Swordman) {
+ mes "Hm? How did you get inside? You're not supposed to be in here, so please leave now.";
+ close2;
+ warp "izlude_in",66,170;
+ end;
+ }
+ else if (BaseJob != Job_Novice) {
+ mes "Who are you?! This place is for the Swordman Test! You're not allowed to be in here! Leave now!";
+ close2;
+ warp "izlude_in",66,170;
+ end;
+ }
+ if (job_sword_q == 1) {
+ mes "So are you the one who wants to be a Swordman? Alright! You look reliable!";
+ next;
+ mes "[Test Hall Staff]";
+ mes "Try to relax and do your best. This course isn't so difficult.";
+ set job_sword_q,2;
+ }
+ else if (job_sword_q == 2) {
+ mes "Retesting? Try not to worry about it. It's good that you don't back down from a challenge! Here, take these and cheer up!";
+ getitem 512,5; //Apple
+ set job_sword_q,3;
+ }
+ else if (job_sword_q == 3)
+ mes "Don't ever give up! Now retesting!";
+ close2;
+ warp "job_sword1",10,245;
+ end;
+}
+
+// Examination Courses NPCs
+//============================================================
+// 1-1
+job_sword1,230,245,2 script Medic#swd_1 105,{
+ callfunc "F_JobSwdMedic","1st";
+}
+job_sword1,230,242,2 script Test Hall Staff#swd_2 105,{
+ callfunc "F_JobSwdStaff",1;
+}
+job_sword1,230,207,2 script Medic#2swd_2 105,{
+ callfunc "F_JobSwdMedic","2nd";
+}
+job_sword1,230,204,2 script Test Hall Staff#2swd_3 105,{
+ callfunc "F_JobSwdStaff",1;
+}
+job_sword1,223,167,2 script Mae#swd_1_success 92,{
+ mapannounce "job_sword1","Applicant " + strcharinfo(0) + ". You successfully passed the test.",bc_map;
+ set job_sword_q,4;
+ mes "[Mae]";
+ mes "I sencerely congratulate you for passing the test!";
+ mes "I already sent your test result to the Job Department.Please inquire at the Officer in Centre.Thank you.";
+ close2;
+ warp "izlude_in",66,173;
+ end;
+}
+
+// Examination Course Functions
+//============================================================
+function script F_JobSwdMedic {
+ percentheal 100,0;
+ mes "[Medic]";
+ mes "This is the "+getarg(0)+" check point!Cheer up!";
+ close;
+}
+
+function script F_JobSwdStaff {
+ mes "[Test Hall Staff]";
+ mes "Do you surrender?";
+ next;
+ if (select("Yes.:No.") == 1) {
+ mapannounce "job_sword1","Applicant " + strcharinfo(0) + " quit the test.",bc_map;
+ warp "izlude_in",65,165;
+ end;
+ }
+ mes "[Test Hall Staff]";
+ mes "Bravo! Go for it again!";
+ close;
+}
+
+function script F_JobSwdTestStaff {
+OnTouch:
+ mes "[Test Hall Staff]";
+ mes "Applicant " + strcharinfo(0) + ". Do you surrender??";
+ next;
+ if (select("Yes.:No.") == 1) {
+ mapannounce "job_sword1","Applicant " + strcharinfo(0) + " quit the test..",bc_map;
+ warp "izlude_in",65,165;
+ end;
+ }
+ warp "job_sword1",getarg(0),getarg(1);
+ end;
+}
+
+function script F_JobSwdTestStaff2 {
+OnTouch:
+ mapannounce "job_sword1","Applicant " + strcharinfo(0) + ". Pass the "+getarg(0)+" course.",bc_map;
+ warp "job_sword1",getarg(1),getarg(2);
+ end;
+}
+
+// Examination Course 1
+//============================================================
+job_sword1,223,243,0 warp checkp1-2#swd_1 1,1,job_sword1,11,206
+job_sword1,223,205,0 warp checkp2-3#swd_1 1,1,job_sword1,11,168
+
+job_sword1,7,245,0 script Test Hall Staff#swd_4 45,1,3,{
+ callfunc "F_JobSwdTestStaff",10,245;
+}
+
+job_sword1,8,207,0 script Test Hall Staff#swd_5 45,1,6,{
+ callfunc "F_JobSwdTestStaff",11,207;
+}
+
+job_sword1,8,169,0 script Test Hall Staff#swd_6 45,1,6,{
+ callfunc "F_JobSwdTestStaff",11,169;
+}
+
+job_sword1,192,244,0 script Test Hall Staff#swd_7 45,1,3,{
+ callfunc "F_JobSwdTestStaff2","1st",215,244;
+}
+
+job_sword1,193,207,0 script Test Hall Staff#swd_8 45,1,3,{
+ callfunc "F_JobSwdTestStaff2","2nd",215,205;
+ warp "job_sword1",215,205;
+}
+
+job_sword1,193,168,0 script Test Hall Staff#swd_9 45,1,3,{
+ callfunc "F_JobSwdTestStaff2","3rd",215,167;
+}
+
+// Pitfalls (Set 1)
+//============================================================
+job_sword1,65,117,0 warp pitfall01-01 1,1,job_sword1,10,245
+job_sword1,98,27,0 warp pitfall02-01 1,1,job_sword1,11,207
+job_sword1,161,27,0 warp pitfall02-02 1,1,job_sword1,11,207
+job_sword1,239,117,0 warp pitfall03-01 1,1,job_sword1,11,169
+
+job_sword1,16,251,0 script 1_blank_1_a::SwdTrap1 -1,0,1,{
+OnTouch:
+ switch(rand(1,5)) {
+ case 1: warp "job_sword1",65,56; end;
+ case 2: warp "job_sword1",29,26; end;
+ case 3: warp "job_sword1",43,16; end;
+ case 4: warp "job_sword1",23,112; end;
+ case 5: warp "job_sword1",58,83; end;
+ }
+}
+job_sword1,19,251,0 duplicate(SwdTrap1) 1_blank_1_b -1,0,1
+job_sword1,17,250,0 duplicate(SwdTrap1) 1_blank_1_c -1,1,0
+job_sword1,16,238,0 duplicate(SwdTrap1) 1_blank_2_a -1,0,1
+job_sword1,19,238,0 duplicate(SwdTrap1) 1_blank_2_b -1,0,1
+job_sword1,17,239,0 duplicate(SwdTrap1) 1_blank_2_c -1,0,1
+job_sword1,28,247,0 duplicate(SwdTrap1) 1_blank_3_a -1,4,0
+job_sword1,33,245,0 duplicate(SwdTrap1) 1_blank_3_b -1,0,2
+job_sword1,29,242,0 duplicate(SwdTrap1) 1_blank_3_c -1,4,0
+job_sword1,24,244,0 duplicate(SwdTrap1) 1_blank_3_d -1,0,2
+job_sword1,38,251,0 duplicate(SwdTrap1) 1_blank_4_a -1,0,1
+job_sword1,41,251,0 duplicate(SwdTrap1) 1_blank_4_b -1,0,1
+job_sword1,39,250,0 duplicate(SwdTrap1) 1_blank_4_c -1,1,0
+job_sword1,38,238,0 duplicate(SwdTrap1) 1_blank_5_a -1,0,1
+job_sword1,41,238,0 duplicate(SwdTrap1) 1_blank_5_b -1,0,1
+job_sword1,39,239,0 duplicate(SwdTrap1) 1_blank_5_c -1,1,0
+job_sword1,54,251,0 duplicate(SwdTrap1) 1_blank_6_a -1,0,1
+job_sword1,71,251,0 duplicate(SwdTrap1) 1_blank_6_b -1,0,1
+job_sword1,62,250,0 duplicate(SwdTrap1) 1_blank_6_c -1,9,0
+job_sword1,62,247,0 duplicate(SwdTrap1) 1_blank_7_a -1,8,0
+job_sword1,71,244,0 duplicate(SwdTrap1) 1_blank_7_b -1,0,2
+job_sword1,63,242,0 duplicate(SwdTrap1) 1_blank_7_c -1,8,0
+job_sword1,54,244,0 duplicate(SwdTrap1) 1_blank_7_d -1,0,2
+job_sword1,54,238,0 duplicate(SwdTrap1) 1_blank_8_a -1,0,1
+job_sword1,71,238,0 duplicate(SwdTrap1) 1_blank_8_b -1,0,1
+job_sword1,62,239,0 duplicate(SwdTrap1) 1_blank_8_c -1,9,0
+job_sword1,102,247,0 duplicate(SwdTrap1) 1_blank_9_a -1,2,0
+job_sword1,105,245,0 duplicate(SwdTrap1) 1_blank_9_b -1,0,2
+job_sword1,103,242,0 duplicate(SwdTrap1) 1_blank_9_c -1,2,0
+job_sword1,100,244,0 duplicate(SwdTrap1) 1_blank_9_d -1,0,2
+job_sword1,156,249,0 duplicate(SwdTrap1) 1_blank_10_a -1,14,0
+job_sword1,156,248,0 duplicate(SwdTrap1) 1_blank_10_b -1,14,0
+job_sword1,170,249,0 duplicate(SwdTrap1) 1_blank_10_c -1,1,0
+job_sword1,170,248,0 duplicate(SwdTrap1) 1_blank_10_d -1,1,0
+job_sword1,156,245,0 duplicate(SwdTrap1) 1_blank_11_a -1,14,0
+job_sword1,156,244,0 duplicate(SwdTrap1) 1_blank_11_b -1,14,0
+job_sword1,170,245,0 duplicate(SwdTrap1) 1_blank_11_c -1,1,0
+job_sword1,170,244,0 duplicate(SwdTrap1) 1_blank_11_d -1,1,0
+job_sword1,156,241,0 duplicate(SwdTrap1) 1_blank_12_a -1,14,0
+job_sword1,156,240,0 duplicate(SwdTrap1) 1_blank_12_b -1,14,0
+job_sword1,170,241,0 duplicate(SwdTrap1) 1_blank_12_c -1,1,0
+job_sword1,170,240,0 duplicate(SwdTrap1) 1_blank_12_d -1,1,0
+job_sword1,180,251,0 duplicate(SwdTrap1) 1_blank_13_a -1,0,1
+job_sword1,183,251,0 duplicate(SwdTrap1) 1_blank_13_b -1,0,1
+job_sword1,181,250,0 duplicate(SwdTrap1) 1_blank_13_c -1,1,0
+job_sword1,180,238,0 duplicate(SwdTrap1) 1_blank_14_a -1,0,1
+job_sword1,183,238,0 duplicate(SwdTrap1) 1_blank_14_b -1,0,1
+job_sword1,181,239,0 duplicate(SwdTrap1) 1_blank_14_c -1,1,0
+
+job_sword1,193,245,0 warp 1_rest 1,3,job_sword1,215,244
+
+// Pitfalls (Set 2)
+//============================================================
+job_sword1,56,212,0 script 2_blank_1_a::SwdTrap2 -1,40,0,{
+OnTouch:
+ switch(rand(1,5)) {
+ case 1: warp "job_sword1",162,120; end;
+ case 2: warp "job_sword1",94,120; end;
+ case 3: warp "job_sword1",94,85; end;
+ case 4: warp "job_sword1",162,85; end;
+ case 5: warp "job_sword1",130,47; end;
+ }
+}
+
+job_sword1,95,212,0 duplicate(SwdTrap2) 2_blank_1_b -1,2,0
+job_sword1,56,210,0 duplicate(SwdTrap2) 2_blank_2_a -1,40,0
+job_sword1,95,210,0 duplicate(SwdTrap2) 2_blank_2_b -1,2,0
+job_sword1,16,206,0 duplicate(SwdTrap2) 2_blank_2_c -1,0,3
+job_sword1,97,206,0 duplicate(SwdTrap2) 2_blank_2_d -1,0,3
+job_sword1,56,203,0 duplicate(SwdTrap2) 2_blank_2_e -1,40,0
+job_sword1,95,203,0 duplicate(SwdTrap2) 2_blank_2_f -1,2,0
+job_sword1,56,201,0 duplicate(SwdTrap2) 2_blank_3_a -1,40,0
+job_sword1,95,201,0 duplicate(SwdTrap2) 2_blank_3_b -1,2,0
+
+job_sword1,113,212,0 duplicate(SwdTrap2) 2_blank_4_a -1,14,0
+job_sword1,125,212,0 duplicate(SwdTrap2) 2_blank_4_b -1,2,0
+job_sword1,113,210,0 duplicate(SwdTrap2) 2_blank_5_a -1,14,0
+job_sword1,125,210,0 duplicate(SwdTrap2) 2_blank_5_b -1,2,0
+job_sword1,100,206,0 duplicate(SwdTrap2) 2_blank_5_c -1,0,3
+job_sword1,127,206,0 duplicate(SwdTrap2) 2_blank_5_d -1,0,3
+job_sword1,113,203,0 duplicate(SwdTrap2) 2_blank_5_e -1,14,0
+job_sword1,125,210,0 duplicate(SwdTrap2) 2_blank_5_f -1,2,0
+job_sword1,113,201,0 duplicate(SwdTrap2) 2_blank_6_a -1,14,0
+job_sword1,113,201,0 duplicate(SwdTrap2) 2_blank_6_b -1,2,0
+
+job_sword1,155,212,0 duplicate(SwdTrap2) 2_blank_7_a -1,21,0
+job_sword1,181,212,0 duplicate(SwdTrap2) 2_blank_7_b -1,2,0
+job_sword1,155,210,0 duplicate(SwdTrap2) 2_blank_8_a -1,21,0
+job_sword1,181,210,0 duplicate(SwdTrap2) 2_blank_8_b -1,2,0
+job_sword1,130,206,0 duplicate(SwdTrap2) 2_blank_8_c -1,0,3
+job_sword1,183,206,0 duplicate(SwdTrap2) 2_blank_8_d -1,0,3
+job_sword1,155,203,0 duplicate(SwdTrap2) 2_blank_8_e -1,21,0
+job_sword1,181,203,0 duplicate(SwdTrap2) 2_blank_8_f -1,2,0
+job_sword1,155,201,0 duplicate(SwdTrap2) 2_blank_9_a -1,40,0
+job_sword1,181,201,0 duplicate(SwdTrap2) 2_blank_9_b -1,2,0
+
+// Pitfalls (Set 3)
+//============================================================
+job_sword1,17,174,0 script 3_blank_1_a::SwdTrap3 -1,2,0,{
+OnTouch:
+ switch(rand(1,5)) {
+ case 1: warp "job_sword1",195,15; end;
+ case 2: warp "job_sword1",195,38; end;
+ case 3: warp "job_sword1",231,30; end;
+ case 4: warp "job_sword1",198,65; end;
+ case 5: warp "job_sword1",196,116; end;
+ }
+}
+
+job_sword1,17,163,0 duplicate(SwdTrap3) 3_blank_2_a -1,2,0
+job_sword1,29,171,0 duplicate(SwdTrap3) 3_blank_3_a -1,2,0
+job_sword1,31,168,0 duplicate(SwdTrap3) 3_blank_3_b -1,0,2
+job_sword1,28,166,0 duplicate(SwdTrap3) 3_blank_3_c -1,2,0
+job_sword1,26,168,0 duplicate(SwdTrap3) 3_blank_3_d -1,0,2
+job_sword1,36,169,0 duplicate(SwdTrap3) 3_blank_4_a -1,0,0
+job_sword1,37,169,0 duplicate(SwdTrap3) 3_blank_4_b -1,0,0
+job_sword1,37,168,0 duplicate(SwdTrap3) 3_blank_4_c -1,0,0
+job_sword1,36,168,0 duplicate(SwdTrap3) 3_blank_4_c2 -1,0,0
+job_sword1,40,175,0 duplicate(SwdTrap3) 3_blank_5_a -1,0,1
+job_sword1,41,175,0 duplicate(SwdTrap3) 3_blank_5_b -1,0,1
+job_sword1,41,171,0 duplicate(SwdTrap3) 3_blank_6_a -1,1,0
+job_sword1,41,170,0 duplicate(SwdTrap3) 3_blank_6_b -1,1,0
+job_sword1,41,167,0 duplicate(SwdTrap3) 3_blank_6_c -1,1,0
+job_sword1,41,166,0 duplicate(SwdTrap3) 3_blank_6_d -1,1,0
+job_sword1,42,169,0 duplicate(SwdTrap3) 3_blank_6_e -1,0,1
+job_sword1,43,170,0 duplicate(SwdTrap3) 3_blank_6_f -1,0,1
+job_sword1,43,167,0 duplicate(SwdTrap3) 3_blank_6_g -1,0,1
+job_sword1,40,162,0 duplicate(SwdTrap3) 3_blank_7_a -1,0,1
+job_sword1,41,162,0 duplicate(SwdTrap3) 3_blank_7_b -1,0,1
+job_sword1,46,175,0 duplicate(SwdTrap3) 3_blank_8_a -1,0,1
+job_sword1,51,175,0 duplicate(SwdTrap3) 3_blank_8_b -1,0,1
+job_sword1,47,174,0 duplicate(SwdTrap3) 3_blank_8_c -1,1,0
+job_sword1,50,174,0 duplicate(SwdTrap3) 3_blank_8_d -1,1,0
+job_sword1,48,173,0 duplicate(SwdTrap3) 3_blank_8_e -1,0,1
+job_sword1,49,173,0 duplicate(SwdTrap3) 3_blank_8_f -1,0,1
+job_sword1,46,162,0 duplicate(SwdTrap3) 3_blank_9_a -1,0,1
+job_sword1,51,162,0 duplicate(SwdTrap3) 3_blank_9_b -1,0,1
+job_sword1,47,163,0 duplicate(SwdTrap3) 3_blank_9_c -1,1,0
+job_sword1,50,163,0 duplicate(SwdTrap3) 3_blank_9_d -1,1,0
+job_sword1,48,164,0 duplicate(SwdTrap3) 3_blank_9_e -1,0,1
+job_sword1,49,164,0 duplicate(SwdTrap3) 3_blank_9_f -1,0,1
+job_sword1,54,170,0 duplicate(SwdTrap3) 3_blank_10_a -1,0,1
+job_sword1,55,170,0 duplicate(SwdTrap3) 3_blank_10_b -1,0,1
+job_sword1,54,167,0 duplicate(SwdTrap3) 3_blank_10_c -1,0,1
+job_sword1,55,167,0 duplicate(SwdTrap3) 3_blank_10_d -1,0,1
+job_sword1,53,169,0 duplicate(SwdTrap3) 3_blank_10_e -1,1,0
+job_sword1,53,168,0 duplicate(SwdTrap3) 3_blank_10_f -1,1,0
+job_sword1,56,169,0 duplicate(SwdTrap3) 3_blank_10_g -1,1,0
+job_sword1,56,168,0 duplicate(SwdTrap3) 3_blank_10_h -1,1,0
+job_sword1,58,175,0 duplicate(SwdTrap3) 3_blank_11_a -1,0,1
+job_sword1,59,174,0 duplicate(SwdTrap3) 3_blank_11_b -1,1,0
+job_sword1,60,173,0 duplicate(SwdTrap3) 3_blank_11_c -1,0,1
+job_sword1,61,172,0 duplicate(SwdTrap3) 3_blank_11_d -1,1,0
+job_sword1,58,162,0 duplicate(SwdTrap3) 3_blank_12_a -1,0,1
+job_sword1,59,163,0 duplicate(SwdTrap3) 3_blank_12_b -1,1,0
+job_sword1,60,164,0 duplicate(SwdTrap3) 3_blank_12_c -1,0,1
+job_sword1,61,165,0 duplicate(SwdTrap3) 3_blank_12_d -1,1,0
+job_sword1,76,172,0 duplicate(SwdTrap3) 3_blank_13_a -1,1,0
+job_sword1,77,173,0 duplicate(SwdTrap3) 3_blank_13_b -1,0,1
+job_sword1,78,174,0 duplicate(SwdTrap3) 3_blank_13_c -1,1,0
+job_sword1,79,175,0 duplicate(SwdTrap3) 3_blank_13_d -1,0,1
+job_sword1,76,165,0 duplicate(SwdTrap3) 3_blank_14_a -1,1,0
+job_sword1,77,164,0 duplicate(SwdTrap3) 3_blank_14_b -1,0,1
+job_sword1,78,163,0 duplicate(SwdTrap3) 3_blank_14_c -1,1,0
+job_sword1,79,162,0 duplicate(SwdTrap3) 3_blank_14_d -1,0,1
+job_sword1,94,175,0 duplicate(SwdTrap3) 3_blank_15_a -1,0,1
+job_sword1,95,174,0 duplicate(SwdTrap3) 3_blank_15_b -1,1,0
+job_sword1,98,174,0 duplicate(SwdTrap3) 3_blank_15_c -1,1,0
+job_sword1,99,175,0 duplicate(SwdTrap3) 3_blank_16_d -1,0,1
+job_sword1,96,169,0 duplicate(SwdTrap3) 3_blank_17_a -1,0,0
+job_sword1,97,169,0 duplicate(SwdTrap3) 3_blank_17_b -1,0,0
+job_sword1,97,168,0 duplicate(SwdTrap3) 3_blank_17_c -1,0,0
+job_sword1,96,168,0 duplicate(SwdTrap3) 3_blank_17_d -1,0,0
+job_sword1,94,162,0 duplicate(SwdTrap3) 3_blank_18_a -1,0,1
+job_sword1,95,163,0 duplicate(SwdTrap3) 3_blank_18_b -1,1,0
+job_sword1,98,163,0 duplicate(SwdTrap3) 3_blank_18_c -1,1,0
+job_sword1,99,162,0 duplicate(SwdTrap3) 3_blank_18_d -1,0,1
+job_sword1,114,175,0 duplicate(SwdTrap3) 3_blank_19_a -1,0,1
+job_sword1,115,175,0 duplicate(SwdTrap3) 3_blank_19_b -1,0,1
+job_sword1,114,162,0 duplicate(SwdTrap3) 3_blank_20_a -1,0,1
+job_sword1,115,162,0 duplicate(SwdTrap3) 3_blank_20_b -1,0,1
+job_sword1,126,175,0 duplicate(SwdTrap3) 3_blank_21_a -1,0,1
+job_sword1,127,175,0 duplicate(SwdTrap3) 3_blank_21_b -1,0,1
+job_sword1,126,162,0 duplicate(SwdTrap3) 3_blank_23_a -1,0,1
+job_sword1,127,162,0 duplicate(SwdTrap3) 3_blank_23_b -1,0,1
+job_sword1,160,174,0 duplicate(SwdTrap3) 3_blank_24_a -1,0,2
+job_sword1,161,174,0 duplicate(SwdTrap3) 3_blank_24_b -1,0,2
+job_sword1,160,163,0 duplicate(SwdTrap3) 3_blank_25_a -1,0,2
+job_sword1,161,163,0 duplicate(SwdTrap3) 3_blank_25_b -1,0,2
+job_sword1,168,175,0 duplicate(SwdTrap3) 3_blank_26_a -1,0,2
+job_sword1,169,175,0 duplicate(SwdTrap3) 3_blank_26_b -1,0,2
+job_sword1,168,162,0 duplicate(SwdTrap3) 3_blank_27_a -1,0,2
+job_sword1,169,162,0 duplicate(SwdTrap3) 3_blank_27_b -1,0,2
+job_sword1,176,174,0 duplicate(SwdTrap3) 3_blank_28_a -1,0,2
+job_sword1,177,174,0 duplicate(SwdTrap3) 3_blank_28_b -1,0,2
+job_sword1,178,173,0 duplicate(SwdTrap3) 3_blank_28_c -1,1,0
+job_sword1,178,172,0 duplicate(SwdTrap3) 3_blank_28_d -1,1,0
+job_sword1,181,174,0 duplicate(SwdTrap3) 3_blank_28_e -1,2,0
+job_sword1,179,169,0 duplicate(SwdTrap3) 3_blank_29_a -1,3,0
+job_sword1,179,168,0 duplicate(SwdTrap3) 3_blank_29_b -1,3,0
+job_sword1,182,169,0 duplicate(SwdTrap3) 3_blank_29_c -1,0,2
+job_sword1,183,169,0 duplicate(SwdTrap3) 3_blank_29_d -1,0,2
+job_sword1,181,167,0 duplicate(SwdTrap3) 3_blank_29_e -1,1,0
+job_sword1,181,166,0 duplicate(SwdTrap3) 3_blank_29_f -1,1,0
+job_sword1,183,167,0 duplicate(SwdTrap3) 3_blank_29_g -1,0,1
+job_sword1,176,163,0 duplicate(SwdTrap3) 3_blank_30_a -1,0,2
+job_sword1,177,163,0 duplicate(SwdTrap3) 3_blank_30_b -1,0,2
+job_sword1,181,163,0 duplicate(SwdTrap3) 3_blank_30_c -1,2,0
+
+// Monsters (all three courses)
+//============================================================
+job_sword1,0,0,0,0 monster Chonchon 1183,20,0,0,0
+job_sword1,35,79,0,0 monster Fabre 1184,3,60000,30000,0
+job_sword1,50,108,0,0 monster Fabre 1184,3,60000,30000,0
+job_sword1,61,28,0,0 monster Fabre 1184,3,60000,30000,0
+job_sword1,61,92,0,0 monster Fabre 1184,3,60000,30000,0
+job_sword1,110,112,0,0 monster Fabre 1184,2,60000,30000,0
+job_sword1,161,94,0,0 monster Fabre 1184,2,60000,30000,0
+job_sword1,130,76,0,0 monster Fabre 1184,2,60000,30000,0
+job_sword1,103,58,0,0 monster Fabre 1184,2,60000,30000,0
+job_sword1,130,24,0,0 monster Fabre 1184,5,60000,30000,0
+job_sword1,201,36,0,0 monster Fabre 1184,2,60000,30000,0
+job_sword1,201,16,0,0 monster Fabre 1184,2,60000,30000,0
+job_sword1,239,44,0,0 monster Fabre 1184,3,60000,30000,0
+job_sword1,239,76,0,0 monster Fabre 1184,2,60000,30000,0
+job_sword1,231,101,0,0 monster Fabre 1184,2,60000,30000,0
+job_sword1,234,117,0,0 monster Fabre 1184,2,60000,30000,0
+job_sword1,198,91,0,0 monster Fabre 1184,2,60000,30000,0
+job_sword1,200,63,0,0 monster Fabre 1184,2,60000,30000,0
diff --git a/npc/pre-re/jobs/1-1/thief.txt b/npc/pre-re/jobs/1-1/thief.txt
new file mode 100644
index 000000000..aa5c6a108
--- /dev/null
+++ b/npc/pre-re/jobs/1-1/thief.txt
@@ -0,0 +1,539 @@
+//===== rAthena Script =======================================
+//= Thief Job Quest
+//===== By: ==================================================
+//= rAthena Dev Team
+//===== Current Version: =====================================
+//= 1.8
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Official Conversion]
+//= Job quest for Thief classes
+//===== Additional Comments: =================================
+//= 1.0 Fully working.
+//= 1.1 Added instant job change for High Novice [Lupus]
+//= 1.3 Added Baby Class support [Lupus]
+//= 1.4 Optimised and moved first checker to Jfunc1-1 [massdriller]
+//= Fixed possible EXP abuse [Lupus]
+//= 1.5 Now saves/restores all quest skills [Lupus]
+//= 1.6 Merged back JFunc [Lupus] 1.6a typos
+//= 1.7 Rescripted to Aegis 10.3 stadards. [L0ne_W0lf]
+//= No longer uses function "F_ToHigh"
+//= 1.8 Added Quest Log commands. [L0ne_W0lf]
+//============================================================
+
+moc_prydb1,39,129,2 script Thief Guide 69,{
+ if (Upper == 1) {
+ if (ADVJOB == Job_Assassin_Cross || ADVJOB == Job_Stalker) {
+ if (Class == Job_Novice_High) {
+ mes "[Thief Guide]";
+ mes "Huh? Do I know you? It's creepy that you seem so familiar. You don't have a twin, do you?";
+ next;
+ if (getskilllv("NV_BASIC") < 9) {
+ mes "[Thief Guide]";
+ mes "What, do you want to be a Thief? I'm sorry, but you look like you need more training.";
+ next;
+ mes "[Thief Guide]";
+ mes "Take your time and learn all the Basic Skills, will you? Well then, see you later~!";
+ close;
+ }
+ mes "[Thief Guide]";
+ mes "Well, I got this feeling like you've been through a lifetime of fighting, so I'm promoting you to a Thief right this minute. I better give you tough guys what you want...";
+ next;
+ skill 143,0,0;
+ jobchange Job_Thief_High;
+ skill 149,1,0;
+ skill 150,1,0;
+ skill 151,1,0;
+ skill 152,1,0;
+ mes "[Thief Guide]";
+ mes "Since you've become a Thief, live as a Thief. Now, go for it! Next~";
+ close;
+ }
+ else {
+ mes "[Thief Guide]";
+ if (sex)
+ mes "Hey, dude.";
+ else
+ mes "Hey, baby~";
+ close;
+ }
+ }
+ else {
+ mes "[Thief Guide]";
+ if (sex)
+ mes "Hey, dude.";
+ else
+ mes "Hey, baby.";
+ mes "...Hey! You look too goody-goody to want to be a Thief!! Now scram, I'm busy. Next!";
+ close;
+ }
+ }
+ if (BaseJob == Job_Thief) {
+ mes "[Thief Guide]";
+ mes "If you have a problem, feel free to speak to me anytime, alright?";
+ close;
+ }
+ else if (BaseJob != Job_Novice && BaseJob != Job_Thief) {
+ mes "[Thief Guide]";
+ mes "What the heck...?";
+ switch(Class) {
+ case 1:
+ mes "Huh.";
+ mes "Now, that's";
+ mes "a big sword.";
+ next;
+ mes "[Thief Guide]";
+ mes "So...";
+ mes "Trying to make";
+ mes "up for something";
+ mes "...Buddy?";
+ break;
+ case 2:
+ mes "What's a Mage doin' here? Shouldn't you be doing card tricks elsewhere? Oh well, it's a free country...";
+ next;
+ mes "[Thief Guide]";
+ mes "Oh wait,";
+ mes "it's not...";
+ mes "Get outta here!";
+ break;
+ case 3:
+ mes "Man, shouldn't you";
+ mes "Archers be playing";
+ mes "in the forest";
+ mes "or something?";
+ break;
+ case 4:
+ mes "You know we all steal for a living, right? What are you doing in this kinda place, Acolyte?";
+ break;
+ case 5:
+ mes "You're a Merchant,";
+ mes "right? Why are you";
+ mes "walking into a den";
+ mes "of Thieves?!";
+ next;
+ mes "[Thief Guide]";
+ mes "It's like you're begging";
+ mes "us to steal from you!";
+ mes "Come on, hurry and";
+ mes "get outta here~";
+ break;
+ case 8:
+ mes "Oh my God...";
+ mes "Am I dying?";
+ next;
+ mes "[Thief Guide]";
+ mes "Why else would a Priest come here? I guess I better start confessing all of my misdeeds.";
+ close;
+ case 12:
+ mes "Didn't you use to be one of us?! Man, you changed. You seem real dangerous now...";
+ close;
+ case 17:
+ mes "Man, you got real cool all of a sudden! You must have some skills I can only dream of!";
+ close;
+ }
+ next;
+ mes "[Thief Guide]";
+ mes "*Sigh* Look, there's really no need for you to be in this kind of place. You oughta go where you ought to go.";
+ close;
+ }
+ if (job_thief_q == 3 && countitem(1069) > 0 || countitem(1070) > 0) {
+ mes "[Thief Guide]";
+ mes "Hmmm?";
+ mes "You gathered Mushrooms for";
+ mes "the Thief test, right?";
+ next;
+ mes "[Thief Guide]";
+ mes "Here, talk to the other guy right next to me. He's the one in charge of checking your Mushrooms.";
+ close;
+ }
+ else if (job_thief_q == 3) {
+ mes "[Thief Guide]";
+ mes "So how was the";
+ mes "Mushroom Farm?";
+ mes "Have any fun?";
+ next;
+ if (select("Yeah, kinda Cool.:It was horrible.") == 1) {
+ mes "[Thief Guide]";
+ mes "Heh heh! That's a good attitude. In our line of work, you gotta enjoy getting your hands dirty, one way or another.";
+ close;
+ }
+ mes "[Thief Guide]";
+ mes "Yeah? I've been there too, so I can see why that place isn't everyone's cup of tea. Still, being a Thief isn't all glamour and trendy night life.";
+ close;
+ }
+ if (job_thief_q == 2) {
+ mes "[Thief Guide]";
+ mes "Hey, whaddya doin' here? Aren't you supposed to be gathering Mushrooms? Or did you need it explained to you again?";
+ next;
+ if (select("Yes.:No, that's okay.") == 1) {
+ mes "[Thief Guide]";
+ mes "*Sigh* Well, there's always one in the bunch. Alright, listen carefully.";
+ next;
+ mes "[Thief Guide]";
+ mes "Alright, for your test, you gotta steal Mushrooms from a farm. Don't worry, the guy who owns the farm deserves to be robbed.";
+ next;
+ mes "[Thief Guide]";
+ mes "Anyway, you gotta gather two kinds of Mushrooms: ^0000FFOrange Net Mushrooms^000000 and ^0000FFOrange Gooey Mushrooms^000000.";
+ next;
+ mes "[Thief Guide]";
+ mes "Be careful, since there are monsters are the farm that are there to protect the Mushrooms. So this will be no walk in the park.";
+ next;
+ mes "[Thief Guide]";
+ mes "When you come back here after gathering Mushrooms, you'll be graded on the Mushrooms you've collected.";
+ next;
+ mes "[Thief Guide]";
+ mes "Each Orange Net Mushroom gets you 3 points, and you get 1 point for each Orange Gooey Mushroom. You need a total of 25 points to pass the test.";
+ next;
+ mes "[Thief Guide]";
+ mes "Go outside and keep going ahead toward the Eastern Field of the Pyramids. Then you will see one of our comrades between two columns.";
+ next;
+ mes "[Thief Guide]";
+ mes "Speak to that guy, and he'll take you to the farm through the backdoor.";
+ next;
+ mes "[Thief Guide]";
+ mes "On that field, I think his coordinates are '^FF0000141, 125^000000.' Just type ^3355FF/where^000000 in the right side of your chat box to check your present coordinates.";
+ close;
+ }
+ mes "[Thief Guide]";
+ mes "Huh. For a second there, I thought you had something really important to tell me.";
+ close;
+ }
+ mes "[Thief Guide]";
+ if (job_thief_q == 0) {
+ mes "What brings you down";
+ mes "here to this rathole?";
+ }
+ else {
+ mes "Ah...";
+ mes "You came back.";
+ mes "Are you sure you're";
+ mes "ready to try again?";
+ }
+ next;
+ if (select("Hey, I came here to be a Thief!:Nah, I'm just looking around.") == 1) {
+ if (job_thief_q == 0) {
+ mes "[Thief Guide]";
+ mes "Heh, I like your confidence. Still, you know being a Thief isn't all what it's cracked up to be.";
+ next;
+ mes "[Thief Guide]";
+ mes "Still...";
+ mes "Do you really";
+ mes "want to be";
+ mes "a Thief?";
+ next;
+ switch(select("Yeah.:No, just wasting your time.:Why did you become a Thief?")) {
+ case 1:
+ mes "[Thief Guide]";
+ mes "Really...";
+ break;
+ case 2:
+ mes "[Thief Guide]";
+ mes "Yeah...";
+ mes "I can see that.";
+ break;
+ case 3:
+ mes "[Thief Guide]";
+ mes "Me...?";
+ mes "I had no choice at the time. It was either steal or starve. But it's not like I need to give you my life story.";
+ break;
+ }
+ next;
+ mes "[Thief Guide]";
+ mes "So do you want to";
+ mes "apply to become";
+ mes "a Thief or not?";
+ next;
+ switch(select("Yes, I will.:I'm too scared to be a Thief!")) {
+ case 1:
+ mes "[Thief Guide]";
+ mes "Alright, tell";
+ mes "me your name.";
+ next;
+ mes "[Thief Guide]";
+ mes "" + strcharinfo(0) + "?";
+ mes "What kind of name is " + strcharinfo(0) + "? Anyway, give me a second.";
+ set job_thief_q,1;
+ next;
+ mes "[Thief Guide]";
+ mes "Alright, your registration has been processed. Okay, you can begin your test if you're ready.";
+ next;
+ switch(select("Yeah, I'm ready.:No, I'm not ready yet.")) {
+ case 1:
+ break;
+ case 2:
+ mes "[Thief Guide]";
+ mes "Not ready?";
+ mes "How can you";
+ mes "not be ready?!";
+ close;
+ }
+ break;
+ case 2:
+ mes "[Thief Guide]";
+ mes "Too scared?!?";
+ mes "Hahahahahahah!";
+ mes "Oh, please...!";
+ mes "That's hilarious!";
+ close;
+ }
+ }
+ else {
+ mes "[Thief Guide]";
+ mes "Okay...";
+ mes "Give me";
+ mes "one second.";
+ next;
+ }
+ mes "[Thief Guide]";
+ mes "Your name is...";
+ mes strcharinfo(0) + "? Um, where is it? Ah, here it is. Let's see...";
+ next;
+ mes "[Thief Guide]";
+ if (getskilllv("NV_BASIC") < 9) {
+ mes "Isn't that cute? I can see you're ambitious, but you gotta learn all of the Basic Skills before you can become a Thief.";
+ close;
+ }
+ mes "Alright. I looked at your Felony Record, and you seem to have a very interesting history. You might have what it takes to be a Thief.";
+ next;
+ mes "[Thief Guide]";
+ mes "Because I feel like it, I now decree that you have passed this interview. Good work!";
+ set job_thief_q,2;
+ setquest 1013;
+ next;
+ mes "[Thief Guide]";
+ mes "Now, your actual abilities will need to be tested. Do you know anything about the test?";
+ next;
+ switch(select("Yes, I do.:Sorry, I don't.")) {
+ case 1:
+ mes "[Thief Guide]";
+ mes "Oh yeah? Well, this makes things a lot easier.";
+ break;
+ case 2:
+ mes "[Thief Guide]";
+ mes "Alright, let me inform you then. Listen carefully. This test decides if you are worthy of becoming a Thief.";
+ next;
+ mes "[Thief Guide]";
+ mes "You will be sneaking to Shibu's Farm. He is the worst Merchant, in terms of character, in Morroc.";
+ next;
+ mes "[Thief Guide]";
+ mes "Alright, for your test, you gotta steal Mushrooms from his farm. Don't worry, that guy deserves to be robbed.";
+ next;
+ mes "[Thief Guide]";
+ mes "Anyway, you gotta gather two kinds of Mushrooms: ^0000FFOrange Net Mushrooms^000000 and ^0000FFOrange Gooey Mushrooms^000000.";
+ next;
+ mes "[Thief Guide]";
+ mes "Be careful, since there are monsters are the farm that are there to protect the Mushrooms. So this will be no walk in the park.";
+ next;
+ mes "[Thief Guide]";
+ mes "When you come back here after gathering Mushrooms, you'll be graded on the Mushrooms you've collected.";
+ next;
+ mes "[Thief Guide]";
+ mes "Each Orange Net Mushroom gets you 3 points, and you get 1 point for each Orange Gooey Mushroom. You need a total of 25 points to pass the test.";
+ next;
+ mes "[Thief Guide]";
+ mes "Go outside and keep going ahead toward the Eastern Field of the Pyramids. Then you will see one of our comrades between two columns.";
+ next;
+ mes "[Thief Guide]";
+ mes "Speak to that guy, and he'll take you to the farm through the backdoor.";
+ next;
+ mes "[Thief Guide]";
+ mes "On that field, I think his coordinates are '^FF0000141, 125^000000.' Just type ^3355FF/where^000000 in the right side of your chat box to check your present coordinates.";
+ }
+ next;
+ mes "[Thief Guide]";
+ mes "Don't forget to make plans and prepare yourself before you go inside the Mushroom Farm. Move as quickly as you can and try not to get killed, alright?";
+ close;
+ }
+ close;
+}
+
+moc_prydb1,42,133,2 script Comrade 118,{
+ if (BaseJob == Job_Thief) {
+ mes "[Brad]";
+ mes "We don't have any special events yet. Come some other time when there's news, alright?";
+ close;
+ }
+ else if (BaseJob != Job_Novice && BaseJob != Job_Thief) {
+ mes "[Comrade]";
+ mes "Um...";
+ mes "You don't look";
+ mes "like a Thief.";
+ next;
+ mes "[Comrade]";
+ mes "What the heck are";
+ mes "you doing here anyway?";
+ close;
+ }
+ if (job_thief_q == 0 || job_thief_q == 1) {
+ mes "[Comrade]";
+ mes "What's the matter? If you want to be a Thief, speak to the girl beside me.";
+ close;
+ }
+ else if (job_thief_q == 2) {
+ mes "[Comrade]";
+ mes "Did you pass the interview?";
+ mes "Then what are you waiting for?";
+ close;
+ }
+ else if (job_thief_q == 3) {
+ mes "[Comrade]";
+ mes "Ah, the guide told me about you. So, let me check your mushrooms...";
+ if (countitem(1069) == 0 && countitem(1070) == 0) {
+ next;
+ mes "[Comrade]";
+ mes "What the hell...";
+ mes "You don't have any Mushrooms at all! Go back and get them. Otherwise, you won't pass the test and become a Thief!";
+ close;
+ }
+ next;
+ set .@thief_item1,countitem(1069) * 3;
+ set .@thief_item2,countitem(1070);
+ set .@total_thief,.@thief_item1 + .@thief_item2;
+ set .@money_thief,((.@thief_item1 * 5) + (.@thief_item2 * 2)) + 200;
+ mes "[Comrade]";
+ if (countitem(1069) != 0) {
+ mes "First, let me check the Orange Net Mushrooms you got.";
+ mes "Huh, " + countitem(1069) + " of them.";
+ }
+ if (countitem(1070) != 0)
+ mes "Now I'll just check your Orange Gooey Mushrooms. That's " + countitem(1070) + " you gathered.";
+ next;
+ mes "[Comrade]";
+ mes "So that would";
+ mes "bring your total to...";
+ next;
+ mes "[Comrade]";
+ mes "Hmmm. " + .@total_thief + " degrees, multiplied by the speed of light, divided by the integral of pi times height plus the absolute value of politics...";
+ next;
+ mes "[Comrade]";
+ mes "Okay!";
+ mes "I got it.";
+ next;
+ mes "[Comrade]";
+ if (.@total_thief > 25) {
+ mes "You got more";
+ mes "than 25 points!";
+ mes "Awesome!";
+ }
+ else if (.@total_thief == 25) {
+ mes "Exactly 25 points!";
+ mes "You did it! Badass!";
+ }
+ else {
+ mes "Definitely less than the 25 points you need to pass. Go out there and get me more Mushrooms!";
+ close;
+ }
+ next;
+ mes "[Comrade]";
+ mes strcharinfo(0) + "...";
+ mes "You have passed the official Thief Test. You are now one of us.";
+ if (countitem(1069) != 0) delitem 1069,countitem(1069); //Mushroom_Of_Thief_1
+ if (countitem(1070) != 0) delitem 1070,countitem(1070); //Mushroom_Of_Thief_2
+ callfunc "Job_Change",Job_Thief;
+ callfunc "F_ClearJobVar";
+ completequest 1013;
+ next;
+ mes "[Comrade]";
+ mes "Congratulations on becoming a Thief! From now, be an honorable representative of the Thief's Guild.";
+ next;
+ mes "[Comrade]";
+ mes "If you bring disgrace to our guild, you will be killed. I expect you to bring our comrades pride.";
+ next;
+ mes "[Brad]";
+ mes "*Ahem* Welcome to the Guild, comrade! I'm Brad, and I'm in charge of human resources here.";
+ next;
+ mes "[Brad]";
+ mes "Here is a small subsidy for a Newbie like you. Spend it whereever you want. Alright then, I'll see you around~";
+ set zeny,zeny+.@money_thief;
+ close;
+ }
+}
+
+moc_ruins,141,125,3 script Mr. Irrelevant 83,{
+ if (BaseJob == Job_Thief) {
+ mes "[Mr. Irrelevant]";
+ mes "Ah, I see that you are now a Thief. I always knew you'd join us.";
+ next;
+ mes "[Mr. Irrelevant]";
+ mes "Stealing from a Mushroom farm is too easy for you now. You should build up your skills and master our craft.";
+ close;
+ }
+ else if (BaseJob != Job_Novice && BaseJob != Job_Thief) {
+ mes "[Mr. Irrelevant]";
+ switch(rand(4)) {
+ case 1:
+ mes "I could use a good, hard drink.";
+ close;
+ case 2:
+ mes "Gimme your money.";
+ next;
+ mes "[Mr. Irrelevant]";
+ mes "Kidding, I'm off the clock.";
+ close;
+ case 3:
+ mes "WHO YOU CALLING A PSYCHO?!?!";
+ close;
+ case 4:
+ mes "I've got nothing to say to you. Would you mind leaving me alone?";
+ close;
+ default:
+ mes "Today looks like a good day to go to the pyramids and hunt with some of my friends.";
+ close;
+ }
+ }
+ if (job_thief_q == 3) {
+ mes "[Mr. Irrelevant]";
+ mes "Hahahahaha~!";
+ mes "You haven't";
+ mes "passed the test yet?";
+ mes "Alright, I'll let you in...";
+ close2;
+ switch(rand(5)) {
+ case 1: warp "job_thief1",228,106; end;
+ case 2: warp "job_thief1",38,50; end;
+ case 3: warp "job_thief1",66,331; end;
+ case 4: warp "job_thief1",196,331; end;
+ default: warp "job_thief1",309,234; end;
+ }
+ }
+ else if (job_thief_q == 2) {
+ mes "[Mr. Irrelevant]";
+ mes "Hmm...";
+ mes "You've come to take the test, right? I can see in your eyes that you know something.";
+ next;
+ mes "[Mr. Irrelevant]";
+ mes "Your name is " + strcharinfo(0) + "? Ah, it's on the list. Alright, I'll let you into the Mushroom Farm , but I can't guarantee your safety...";
+ close2;
+ set job_thief_q,3;
+ switch(rand(5)) {
+ case 1: warp "job_thief1",228,106; end;
+ case 2: warp "job_thief1",38,50; end;
+ case 3: warp "job_thief1",66,331; end;
+ case 4: warp "job_thief1",196,331; end;
+ default: warp "job_thief1",309,234; end;
+ }
+ }
+ else if (job_thief_q == 1) {
+ mes "[Mr. Irrelevant]";
+ mes "There is this strange smell coming from... You. Now why would that be?";
+ close;
+ }
+ mes "[Mr. Irrelevant]";
+ mes "Hey Novice! Why don't you join the ranks of the Thief Guild? You newbies are always welcome to join us and our selfish cause.";
+ next;
+ mes "[Mr. Irrelevant]";
+ mes "You can get more information in the Underground Room in the Pyramid 1 BF.";
+ close;
+}
+
+// Monsters
+//============================================================
+job_thief1,0,0,0,0 monster Orange Mushroom 1182,180,0,0,0
+job_thief1,0,0,0,0 monster Fabre 1184,50,0,0,0
+job_thief1,0,0,0,0 monster Chonchon 1183,50,0,0,0
+job_thief1,0,0,0,0 monster Spore 1014,30,0,0,0
+
+//============================================================
+// mapflag
+//============================================================
diff --git a/npc/pre-re/jobs/novice/novice.txt b/npc/pre-re/jobs/novice/novice.txt
new file mode 100644
index 000000000..c88795463
--- /dev/null
+++ b/npc/pre-re/jobs/novice/novice.txt
@@ -0,0 +1,4299 @@
+//===== rAthena Script =======================================
+//= Ep 10+ Novice Training Grounds
+//===== By: ==================================================
+//= Dr.Evil & MasterOfMuppets
+//===== Current Version: =====================================
+//= 2.4
+//===== Compatible With: =====================================
+//= rAthena SVN 3422+(Requires jA Script System)
+//===== Description: =========================================
+//= [Official Conversion]
+//= Novice Training Grounds
+//===== Additional Comments: =================================
+//= 1.7D Added confirm character name thing on receptionist. [Kisuka]
+//= 1.8 Rescripted to Aegis 10.3 standards. [L0ne_W0lf]
+//= NPCs are not backwards compatable, and will remove
+//= old variables used in the previous novice grounds.
+//= 1.9 Fixed problem with Hanson's dialog. (bugreport:1703) [L0ne_W0lf]
+//= Fixed Entrance Guard clearing vars. (bugreport:1695)
+//= Added duplicate NPCs to combat training maps.
+//= 2.0 Fixed savepoint not being changed sometimes. [L0ne_W0lf]
+//= 2.1 Corrected spacing issue in welcome message. [L0ne_W0lf]
+//= 2.2 Corrected Leo's endless dialog. [L0ne_W0lf]
+//= 2.3 Added fix to Hanson from GM-windsor- and Saithis. [L0ne_W0lf]
+//= 2.3a Correct a wrong variable name. (bugreport:2293) [Samuray22]
+//= 2.4 Corrected an error in Hanson. (bugreport:2374) [L0ne_W0lf]
+//============================================================
+
+// Bulletin Board
+new_1-1,66,114,4 script Bulletin Board#nv 111,{
+ mes "^FF0000=================================^000000";
+ mes "^FF0000 ^000000 ^E40CAA[Welcome]^CC0000 to ^FF9000Novice^7FFF00 Training ^00FF00Grounds ^E40CAA[Welcome]^FF0000^000000";
+ mes "^FF0000=================================^000000";
+ close;
+}
+
+new_1-1,144,116,2 script Guard#nv1 105,{
+ mes "[Training Grounds Guard]";
+ mes "Welcome to the Training Grounds.";
+ mes "You are now in the outer court yard. Please go inside the castle to begin your training.";
+ close;
+}
+
+new_1-1,144,107,2 script Guard#nv2 105,{
+ mes "[Training Grounds Guard]";
+ if(rand(2)) {
+ mes "Come in!";
+ mes "I would like";
+ mes "to welcome you to";
+ mes "the Training Grounds!";
+ next;
+ mes "[Training Grounds Guard]";
+ mes "In here, you can prepare";
+ mes "yourself for your future";
+ mes "adventures throughout the";
+ mes "Ragnarok world!";
+ }
+ else {
+ mes "Go, Novice, go!";
+ mes "Fight, and grow stronger! Look towards a brighter tomorrow!";
+ }
+ close;
+}
+
+// Receptionist
+new_1-2,100,29,4 script Receptionist#nv1 86,{
+ mes "[Training Grounds Receptionist]";
+ mes "Hello, you look to be new here.";
+ mes "What is your name?";
+ next;
+ input .@charname$;
+ if (.@charname$!=strcharinfo(0)) {
+ mes "[Training Grounds Receptionist]";
+ mes "Sorry, but I don't think I heard";
+ mes "you correctly";
+ close;
+ }
+ mes "[Training Grounds Receptionist]";
+ mes "Welcome!";
+ mes "You are at the entrance";
+ mes "of the ^3355FFTraining Grounds^000000.";
+ next;
+ mes "[Training Grounds Receptionist]";
+ mes "If you're new";
+ mes "to the Ragnarok world,";
+ mes "please choose the";
+ mes "^3355FFTraining Grounds Introduction^000000";
+ mes "menu for more information.";
+ next;
+ while (1) {
+ switch(select("Apply for training.:Direct access to Ragnarok Online.:^3355FFTraining Grounds Introduction.^000000:I need a moment to think.")) {
+ case 1:
+ mes "[Training Grounds Receptionist]";
+ mes "Thank you for applying for Novice training. For detailed information of each training course, please inquire the Guides for assistance.";
+ next;
+ mes "[Training Grounds Receptionist]";
+ mes "When you have questions about the training course process, please feel free to ask any of the Tutors.";
+ next;
+ mes "[Training Grounds Receptionist]";
+ mes "You will now be transferred";
+ mes "to the Training Grounds.";
+ close2;
+ warp "new_1-2",100,70;
+ end;
+ case 2:
+ mes "[Training Grounds Receptionist]";
+ mes "I understand.";
+ mes "Please do your";
+ mes "best, and I wish you";
+ mes "the best of luck!";
+ close2;
+ set nov_1st_cos,0;
+ set nov_2nd_cos,0;
+ set nov_3_swordman,0;
+ set nov_3_archer,0;
+ set nov_3_thief,0;
+ set nov_3_magician,0;
+ set nov_3_acolyte,0;
+ set nov_3_merchant,0;
+ switch(rand(6)) {
+ case 0:
+ savepoint "prontera",273,354;
+ warp "prontera",273,354;
+ break;
+ case 1:
+ savepoint "morocc",160,94;
+ warp "morocc",160,94;
+ break;
+ case 2:
+ savepoint "geffen",120,100;
+ warp "geffen",120,100;
+ break;
+ case 3:
+ savepoint "payon",70,100;
+ warp "payon",70,100;
+ break;
+ case 4:
+ savepoint "alberta",116,57;
+ warp "alberta",116,57;
+ break;
+ case 5:
+ savepoint "izlude",94,103;
+ warp "izlude",94,103;
+ }
+ end;
+ case 3:
+ mes "[Training Grounds Receptionist]";
+ mes "This training grounds was established in order to provide useful information to new players of Ragnarok Online by the Rune-Midgarts Kingdom's Board of Education.";
+ next;
+ mes "[Training Grounds Receptionist]";
+ mes "The training course is organized into two parts: the Basic Knowledge classes, and Field Combat training.";
+ next;
+ mes "[Training Grounds Receptionist]";
+ mes "Through the first course, players will learn the necessary knowledge for a smoother gaming experience.";
+ next;
+ mes "[Training Grounds Receptionist]";
+ mes "In Field Combat Training,";
+ mes "players will engage in actual battle with weak monsters so they can learn the basics of fighting.";
+ next;
+ mes "[Training Grounds Receptionist]";
+ mes "With this battle practice,";
+ mes "players will be able to gain more experience before they enter the real world.";
+ next;
+ mes "[Training Grounds Receptionist]";
+ mes "At the end of the training, we will provide an introduction to the 1st Job Classes. This will help players decide which job class is best for them.";
+ next;
+ mes "[Training Grounds Receptionist]";
+ mes "If you wish to participate in the training grounds, please choose '^3355FFApply for training^000000' in the menu.";
+ next;
+ mes "[Training Grounds Receptionist]";
+ mes "Otherwise, if you want to skip the basic training and immediately enter the world of Ragnarok Online, please choose '^3355FFDirect access to Ragnarok Online^000000.'";
+ next;
+ break;
+ case 4:
+ mes "[Training Grounds Receptionist]";
+ mes "I understand.";
+ mes "Please, take your time.";
+ close;
+ }
+ }
+}
+
+new_1-1,53,114,4 script Shion#nv1 727,{
+ if (nov_get_item04 > 9 || nov_get_item05 > 9) {
+ mes "[Shion]";
+ mes "Hm...?";
+ mes "What are you";
+ mes "still doing here?";
+ mes "Oh, you used a ^3355FFButterfly Wing^000000, didn't you?";
+ next;
+ mes "[Shion]";
+ mes "No, no, no~";
+ mes "You're supposed to use the Butterfly Wing when you want to go back to a town ^666666after^000000 completing your training here, alright?";
+ next;
+ mes "[Shion]";
+ mes "Now, let me send";
+ mes "you back to the";
+ mes "Training Grounds.";
+ close2;
+ warp "new_1-2",99,99;
+ end;
+ }
+ else if (nov_1st_cos > 2) {
+ mes "[Shion]";
+ mes "The Training Grounds";
+ mes "are located just past";
+ mes "the bridge located";
+ mes "to the right.";
+ next;
+ mes "[Shion]";
+ mes "Although you'll";
+ mes "be sitting through";
+ mes "some classes, you";
+ mes "won't regret it.";
+ mes "Now, go for it!";
+ close;
+ }
+ else if (nov_1st_cos == 2) {
+ mes "[Shion]";
+ mes "Hey...";
+ mes "You little rascal!";
+ next;
+ mes "[Shion]";
+ mes "Wait...";
+ mes "Calm down Shion.";
+ mes "You're a professional";
+ mes "trainer! Don't get all";
+ mes "upset at a Novice!";
+ next;
+ mes "[Shion]";
+ mes "Go and cross the bridge to the right, right now! ^666666*Ahem*^000000 You'll see and castle, and inside you can meet all sorts of tutors.";
+ next;
+ mes "[Shion]";
+ mes "If you can't see the entrance, just change your in-game camera angle by holding down the ^3355FFright Mouse button^000000 and dragging your mouse. Easy, right?";
+ next;
+ mes "[Shion]";
+ mes "To reset your camera angle,";
+ mes "just double-click the right Mouse button. Okay then, take care!";
+ next;
+ mes "[Shion]";
+ mes "Oh, and before you leave,";
+ mes "learn how to treat a lady nice, okay? Then they might give you gifts like this!";
+ set nov_1st_cos,3;
+ getexp 9,0;
+ close;
+ }
+ else if (nov_1st_cos == 1) {
+ mes "[Shion]";
+ mes "Huh...?";
+ mes "Why are you";
+ mes "still here?";
+ mes "^666666*Sigh...*^000000";
+ next;
+ mes "[Shion]";
+ mes "Hey, when you enter the Training Grounds, you'll learn all sorts of things that will help you play the game. You'll even have the chance to get zeny and other rewards.";
+ next;
+ mes "[Shion]";
+ mes "You can even gain";
+ mes "experience like this!";
+ set nov_1st_cos,3;
+ getexp 9,0;
+ next;
+ mes "[Shion]";
+ mes "Everything you'll learn here in the Training Grounds will benefit your gameplay. So just think positive, okay?";
+ close;
+ }
+ else {
+ mes "[Shion]";
+ mes "Hello there~";
+ mes "Welcome to the";
+ mes "Training Grounds!";
+ next;
+ mes "[Shion]";
+ mes "Let's see.";
+ mes "Your name is...";
+ mes "" + strcharinfo(0) + ".";
+ next;
+ mes "[Shion]";
+ mes "My name is Shion.";
+ mes "Yes, this is the first time we've met, of course. Hahahaha~!";
+ next;
+ mes "[Shion]";
+ mes "Now that we've met, is there anything I can help you with?";
+ mes "I'm here for your questions~";
+ next;
+ switch(select("Where should I go?:About Basic Interfaces.:Who the crap are you?")) {
+ case 1:
+ mes "[Shion]";
+ mes "Do you see the bridge to your";
+ mes "right side? Just cross the bridge and you'll arrive at a castle. All you have to do is walk inside!";
+ next;
+ mes "[Shion]";
+ mes "The entrance of the castle";
+ mes "is a ^4D4DFFspinning white light^000000. These portals are what allow you to move from one zone to another.";
+ next;
+ mes "[Shion]";
+ mes "Do you know how to move?";
+ mes "Left click on a spot, and you'll walk over to that spot. Piece of cake, huh?";
+ next;
+ mes "[Shion]";
+ mes "So go for it!";
+ mes "Basically, you must enter the castle in order to start your adventures.";
+ next;
+ mes "[Shion]";
+ mes "There are soldiers";
+ mes "at the entrance, so don't";
+ mes "worry about getting lost.";
+ mes "Take care now~!";
+ set nov_1st_cos,1;
+ close;
+ case 2:
+ mes "[Shion]";
+ mes "Basic Interfaces...";
+ mes "Do you know what Click, Double-click and Drag mean?";
+ next;
+ mes "[Shion]";
+ mes "When you press the";
+ mes "left Mouse button once,";
+ mes "that is a click. When you press the mouse button twice in a row, that's a double-click.";
+ next;
+ mes "[Shion]";
+ mes "Dragging is when you move your Mouse while holding down the";
+ mes "Mouse button after clicking on something.";
+ next;
+ mes "[Shion]";
+ mes "Before we start talking about";
+ mes "the Basic Interfaces, you should remember these terms, just because we'll be using them frequently.";
+ next;
+ mes "[Shion]";
+ mes "Inside the castle, there is a Basic Interfaces Tutor who can teach you the basics more clearly, okay? Enter the castle to start your training.";
+ next;
+ mes "[Shion]";
+ mes "The entrance";
+ mes "of the castle is";
+ mes "a ^4D4DFFspinning white light^000000.";
+ next;
+ mes "[Shion]";
+ mes "There are soldiers";
+ mes "at the entrance, so don't";
+ mes "worry about getting lost.";
+ mes "Take care now~!";
+ set nov_1st_cos,1;
+ close;
+ case 3:
+ mes "[Shion]";
+ mes "Me? I'm Shion!";
+ mes "But that's a rude way of asking! I'm volunteering my time and effort here, so you've got to show me a little bit of respect at least!";
+ set nov_1st_cos,2;
+ close;
+ }
+ }
+}
+
+// Interfaces Tutor
+new_1-2,99,105,3 script Interfaces Tutor#nv1 751,{
+ if (nov_get_item02 > 9 && nov_get_item03 > 9 && nov_get_item04 > 9) {
+ mes "[Kris]";
+ mes "You've completed all the essential courses. Have you spoken to the assistant tutors already? The field combat training will be your next course. Would you like to proceed?";
+ next;
+ switch(select("Sure!:No, I'll come back later.:Send me to a town!")) {
+ case 1:
+ mes "[Kris]";
+ mes "Your next course is Field Combat training. Please listen carefully to your next trainer, and I hope you pass the course. Godspeed.";
+ close2;
+ warp "new_1-2",28,178;
+ end;
+ case 2:
+ mes "[Kris]";
+ mes "Alright then. In the meantime, you might want to speak to the assistant tutors, as the basic information taught in the essential courses may not be enough for new adventurers.";
+ next;
+ mes "[Kris]";
+ mes "Feel free to come back any time when you need my assistance.";
+ close;
+ case 3:
+ mes "[Kris]";
+ mes "So, would you like to be sent to a town? If you're confident that you've learned enough, head over to the right and speak to the ^3355FFKafra Employee^000000.";
+ next;
+ mes "[Kris]";
+ mes "The Kafra Services are very convenient once you get out into the real world. Their Teleport Service can be used to travel from town to town, and you can keep your items safe in the Kafra Storage.";
+ next;
+ mes "[Kris]";
+ mes "We may never meet again, but I hope you grow stronger and become a great adventurer. Godspeed.";
+ close;
+ }
+ }
+ else if (nov_get_item02 < 10) {
+ mes "[Kris]";
+ mes "Hello, may I see your";
+ mes "proof of registration?";
+ next;
+ if (NEW_MES_FLAG0) {
+ mes "[Kris]";
+ mes "Ah, " + strcharinfo(0) + ", you've applied for an old training course that we no longer provide for our trainees. Let me issue a new proof of registration for you.";
+ set NEW_MES_FLAG0,0;
+ set NEW_MES_FLAG1,0;
+ set NEW_MES_FLAG2,0;
+ set NEW_MES_FLAG3,0;
+ set NEW_MES_FLAG4,0;
+ set NEW_MES_FLAG5,0;
+ set NEW_LVUP0,0;
+ set NEW_LVUP1,0;
+ set NEW_JOBLVUP,0;
+ next;
+ }
+ mes "[Kris]";
+ mes "Okay, now";
+ mes "you're ready to go.";
+ mes "In my class, I teach the";
+ mes "use of the most basic";
+ mes "interfaces.";
+ next;
+ mes "[Kris]";
+ mes strcharinfo(0)+".";
+ mes "would you like to learn";
+ mes "more about interface";
+ mes "fundamentals?";
+ next;
+ switch(select("Yes.:Nah, I'm a pro~:Cancel.")) {
+ case 1:
+ mes "[Kris]";
+ mes "First, it's possible to move every interface window on your screen by dragging the window. Just click on the window, hold down the mouse button and move your mouse.";
+ next;
+ mes "[Kris]";
+ mes "Now, let me explain each interface window according to their default positions on your screen.";
+ next;
+ mes "[Kris]";
+ mes "At the upper left side of your screen, you will see a window with your character name and level. This is the ^3355FFBasic Information Window^000000.";
+ next;
+ mes "[Kris]";
+ if (BaseLevel < 8) {
+ mes "Let me give you";
+ mes "some experience points.";
+ mes "Keep an eye on your Basic Info Window and observe the change in your Base Level experience gauge.";
+ next;
+ mes "[Kris]";
+ mes "Did you see...?";
+ mes "As you gain experience,";
+ mes "the experience gauge fills up.";
+ mes "Once it is 100 % full, you gain an experience level, and the gauge is reset to 0.";
+ set nov_get_item02,10;
+ switch (BaseLevel) {
+ case 1: getexp 10,0; break;
+ case 2: getexp 17,0; break;
+ case 3: getexp 26,0; break;
+ case 4: getexp 37,0; break;
+ case 5: getexp 78,0; break;
+ case 6: getexp 115,0; break;
+ case 7: getexp 155,0; break;
+ }
+ }
+ else {
+ mes "But...";
+ mes "I guess you're already familiar with the Base Level experience gauge.";
+ }
+ next;
+ mes "[Kris]";
+ mes "At the bottom of the Basic Info Window, you will see two different experience gauge bars. The top bar is for your current Base Level, and the bottom one displays experience for your current Job Level.";
+ next;
+ mes "[Kris]";
+ mes "When the Job Level";
+ mes "Experience bar is filled, you will earn a Job Level, and a ^3355FFSkill Point^000000. Skill Points are spent to learn skills for your character.";
+ next;
+ mes "[Kris]";
+ mes "On the right side";
+ mes "of the Basic Info window,";
+ mes "you will see various";
+ mes "Menu buttons.";
+ next;
+ mes "[Kris]";
+ mes "Clicking these Menu buttons will open other Interface Windows, such as the Inventory Window";
+ mes "or Party Window.";
+ next;
+ mes "[Kris]";
+ mes "Now...";
+ mes "The ^3355FFChat Window^000000 is";
+ mes "located at the bottom";
+ mes "of your screen.";
+ next;
+ mes "[Kris]";
+ mes "At the bottom right of the Chat Window, you should see 2 blue buttons. The left button allows you to change your chatting options.";
+ next;
+ mes "[Kris]";
+ mes "The '^3355FFSend to All^000000' option";
+ mes "allows you to chat with";
+ mes "everyone on your screen.";
+ next;
+ mes "[Kris]";
+ mes "The '^3355FFSend to Party^000000' and '^3355FFSend to Guild^000000' options allows you to send messages to only members of your party or guild, regardless of how far they are.";
+ next;
+ mes "[Kris]";
+ mes "You can drag the Scroll Bar";
+ mes "on the right side of the Chat Window to review a conversation. Since the Chat Window is always active, you won't have any problem communicating with other players.";
+ next;
+ mes "[Kris]";
+ mes "Now, one of the most important interfaces is the ^3355FFMini-Map^000000, located at the upper-right of your screen.";
+ next;
+ mes "[Kris]";
+ mes "The red dots on the Mini-Map indicate locations of ^3355FFWarp Portals^000000 which connect to different zones.";
+ next;
+ mes "[Kris]";
+ mes "If you've joined a party or a guild, the Mini-Map will also show you the location of your party or guild members if they are on the same map.";
+ next;
+ mes "[Kris]";
+ mes "Please click the Menu buttons";
+ mes "on the right side of your Basic Info window and familiarize yourself with the other interfaces.";
+ next;
+ mes "[Kris]";
+ mes "Well, that was my brief overview on in-game interfaces. It might seem like a lot of information now, but it will soon become second nature.";
+ if (JobLevel < 7) {
+ next;
+ mes "[Kris]";
+ mes "Let me give you a little bit of Job experience points. Open your Skill Window and distribute your Skill Points into ^3355FFBasic Skills^000000.";
+ set nov_get_item02,11;
+ switch (JobLevel) {
+ case 1: getexp 0,10; break;
+ case 2: getexp 0,18; break;
+ case 3: getexp 0,28; break;
+ case 4: getexp 0,40; break;
+ case 5: getexp 0,91; break;
+ case 6: getexp 0,151; break;
+ }
+ }
+ else {
+ mes "[Kris]";
+ mes "Your Job Level is much higher than I had expected. You must already know the basic information by now.";
+ }
+ next;
+ mes "[Kris]";
+ mes "Now, why don't you speak to Edwin? He will teach you more regarding the basic use of Skills. Ah, and let me give you a small present: a Tattered Novice Ninja Suit!";
+ set nov_get_item02,12;
+ getitem 2352,1; //Novice_Plate
+ close;
+ case 2:
+ mes "[Kris]";
+ mes "Let me guide you";
+ mes "to the Field Combat";
+ mes "Training Course.";
+ mes "You can come back any time if you feel that you need a review.";
+ close2;
+ warp "new_1-2",28,178;
+ end;
+ case 3:
+ emotion e_swt2;
+ close;
+ }
+ }
+ else if (nov_get_item03 < 10) {
+ mes "[Kris]";
+ mes "How may I help you?";
+ mes "Can I see your proof of registration?";
+ next;
+ mes "[Kris]";
+ mes "It seems that you haven't attended the Skill Information class yet. Please talk to a tutor to the very left of this room to attend his class.";
+ next;
+ switch(select("Thank you!:I'm tired of classes~:Cancel")) {
+ case 1:
+ mes "[Kris]";
+ mes "When you attend the Skill Information class, you'll gain a better understanding of the use of skills.";
+ next;
+ mes "[Kris]";
+ mes "Since the use of skills is integral to survival in Rune-Midgard, I strongly suggest that you attend the class. Come, I shall guide you there.";
+ close2;
+ warp "new_1-2",84,107;
+ end;
+ case 2:
+ mes "[Kris]";
+ mes "I see. In that case, you must be ready for the Field Combat Training Course. Shall I send you there right away?";
+ next;
+ if (select("No! W-wait!:Please do~!") == 1) {
+ mes "[Kris]";
+ mes "...?!";
+ mes "O...kay then.";
+ mes "Please come back";
+ mes "when you're ready.";
+ close;
+ }
+ else {
+ mes "[Kris]";
+ mes "Godspeed,";
+ mes "young Novice.";
+ close2;
+ warp "new_1-2",28,178;
+ end;
+ }
+ case 3:
+ emotion e_swt2;
+ close;
+ }
+ }
+ else if (nov_get_item04 < 10) {
+ mes "[Kris]";
+ mes "How may I help you?";
+ mes "Can I see your proof of registration?";
+ next;
+ mes "[Kris]";
+ mes "It looks like you still haven't attended the Item Information class yet. Please speak to the tutor to the very right of this room to attend her class.";
+ next;
+ switch(select("Thank you.:I'm tired of classes~:Cancel")) {
+ case 1:
+ mes "[Kris]";
+ mes "The Item Information class is very useful for you to learn how to use your Hot keys and Hot key bars. Come, let me guide you there.";
+ close2;
+ warp "new_1-2",115,107;
+ end;
+ case 2:
+ mes "[Kris]";
+ mes "I see. In that case, you must be ready for the Field Combat Training Course. Shall I send you there right away?";
+ next;
+ if (select("No! W-wait!:Please do~!") == 1) {
+ mes "[Kris]";
+ mes "...?!";
+ mes "O...kay then.";
+ mes "Please come back";
+ mes "when you're ready.";
+ close;
+ }
+ else {
+ mes "[Kris]";
+ mes "Godspeed,";
+ mes "young Novice.";
+ close2;
+ warp "new_1-2",28,178;
+ end;
+ }
+ case 3:
+ emotion e_swt2;
+ close;
+ }
+ }
+}
+
+new_1-2,83,111,3 script Skill Tutor#nv 753,{
+ if (nov_get_item02 > 9 && nov_get_item03 > 9 && nov_get_item04 > 9) {
+ mes "[Cecil]";
+ mes "Huh...?";
+ mes "Did you need more help?";
+ mes "I see that you've completed all the essential courses. Did you speak to the assistant tutors too?";
+ next;
+ switch(select("Send me to the next course!:Assistant tutors?:Take me to a town!")) {
+ case 1:
+ mes "[Cecil]";
+ mes "Ah! Right, right.";
+ mes "You've got to take on the Field Combat Training Course sometime, I suppose.";
+ next;
+ mes "[Cecil]";
+ mes "Man, I'm so jealous of the instructors in the Field Combat Training Course. Teaching basic information is just soooo not as cool as beating stuff up.";
+ next;
+ mes "[Cecil]";
+ mes "Ah, right.";
+ mes "Field Combat.";
+ mes "I'm sending you now.";
+ mes "Good luck, kid!";
+ close2;
+ warp "new_1-2",28,178;
+ end;
+ case 2:
+ mes "[Cecil]";
+ mes "You know about the";
+ mes "assistant tutors, don't you?";
+ next;
+ mes "[Cecil]";
+ mes "Listen. The three of tutors in this room only teach the most basic information. The courses we teach are meant to be passed quickly.";
+ next;
+ mes "[Cecil]";
+ mes "But some people might benefit a little bit more if they learned some more detailed information.";
+ next;
+ mes "[Cecil]";
+ mes "If you're completely new to Ragnarok, it couldn't hurt to attend the classes held by the assistant tutors at least once.";
+ next;
+ mes "[Cecil]";
+ mes "A guy named Leo Handerson seems to know a lot about skills, so I think his knowledge would be useful to you.";
+ close;
+ case 3:
+ mes "[Cecil]";
+ mes "A town...?";
+ mes "What do I look like, your own personal Peco Peco?";
+ next;
+ mes "[Cecil]";
+ mes "That's right, you might be too young to know about that. Listen, if you want to move to a town, speak to the Kafra Lady to the right, okay?";
+ close;
+ }
+ }
+ if (nov_get_item03 < 10) {
+ mes "[Cecil]";
+ mes ""+strcharinfo(0)+"";
+ mes "Heh, I like your name!";
+ if (NEW_MES_FLAG0) {
+ mes "By the way, your proof of registration has expired, so let me give you a new one.";
+ mes "Let me give you a new one.";
+ set NEW_MES_FLAG0,0;
+ set NEW_MES_FLAG1,0;
+ set NEW_MES_FLAG2,0;
+ set NEW_MES_FLAG3,0;
+ set NEW_MES_FLAG4,0;
+ set NEW_MES_FLAG5,0;
+ set NEW_LVUP0,0;
+ set NEW_LVUP1,0;
+ set NEW_JOBLVUP,0;
+ }
+ mes "Then, shall we begin the class?";
+ next;
+ switch(select("What do you teach?:I want Field Combat Training now!:Cancel")) {
+ case 1:
+ mes "[Cecil]";
+ mes "I live for power";
+ mes "and die for power!";
+ mes "I shall teach you";
+ mes "my famous fatal blow!";
+ next;
+ mes "[Cecil]";
+ mes "I'm just pulling your chain!";
+ mes "I actually just teach you how to use your skills. I still live for power, though.";
+ next;
+ mes "[Cecil]";
+ mes "In your Basic Info Window, click the ^3355FFSkill^000000 button to open your Skill Window. You can also press the '^3355FFAlt^000000' and '^3355FFS^000000' keys at the same time.";
+ next;
+ mes "[Cecil]";
+ mes "When your";
+ mes "Skill Window is open,";
+ mes "you'll see an icon labeled";
+ mes "'^3355FFBasic Skill^000000.'";
+ if (JobLevel < 7) {
+ next;
+ mes "[Cecil]";
+ mes "Now, at the bottom of the Skill Window, the number of remaining Skill Points that you have is displayed.";
+ next;
+ mes "[Cecil]";
+ mes "Open your Skill Window ('Alt' + 'S') and click the '^3355FFLv Up^000000' button next to the Basic Skill icon to allocate a Skill Point to your Basic Skills.";
+ set nov_get_item03,10;
+ switch (JobLevel) {
+ case 1: getexp 0,10; break;
+ case 2: getexp 0,18; break;
+ case 3: getexp 0,28; break;
+ case 4: getexp 0,40; break;
+ case 5: getexp 0,91; break;
+ case 6: getexp 0,151; break;
+ }
+ }
+ else {
+ next;
+ mes "[Cecil]";
+ mes "Huh. Actually, your Job Level is higher that I thought. I guess you already know the basics about skills then.";
+ }
+ next;
+ mes "[Cecil]";
+ mes "So did you distribute the skill points to your Basic Skills? You'll need to master the Basic Skills eventually, so it's a good idea.";
+ next;
+ mes "[Cecil]";
+ mes "For more detailed information on skills, go speak to Leo Handerson, one of the assistant tutors.";
+ next;
+ mes "[Cecil]";
+ mes "Oh, I almost forgot!";
+ mes "Let me teach you the ^3355FFFirst Aid^000000 skill. This skill will help you out a lot when you're in danger.";
+ next;
+ mes "^3355FFYou have learned";
+ mes "the ^4A708BFirst Aid^3355FF skill.^000000";
+ skill 142,1,0; //NV_FIRSTAID
+ set NOV_SK,3;
+ set nov_get_item03,11;
+ next;
+ if (JobLevel < 7) {
+ mes "^3355FFYou have gained a small";
+ mes "amount of Job experience.^000000";
+ set nov_get_item03,12;
+ switch (JobLevel) {
+ case 1: getexp 0,10; break;
+ case 2: getexp 0,18; break;
+ case 3: getexp 0,28; break;
+ case 4: getexp 0,40; break;
+ case 5: getexp 0,91; break;
+ case 6: getexp 0,151; break;
+ }
+ }
+ next;
+ mes "[Cecil]";
+ mes "Now, open your Skill Window";
+ mes "and check if you have the ^3355FFFirst Aid^000000 skill icon. To use it, you need to double-click that skill icon.";
+ mes "Now, try it!";
+ percentheal -50,0;
+ next;
+ mes "[Cecil]";
+ mes "Active skills, like First Aid, require a certain amount of SP to use them. The First Aid skill is useful for Novices, since it refills a little bit of HP.";
+ next;
+ mes "[Cecil]";
+ mes "You've been";
+ mes "a good student,";
+ mes "so let me reward you!";
+ if (BaseLevel < 8) {
+ mes "Behold: bonus experience!";
+ set nov_get_item03,13;
+ switch (BaseLevel) {
+ case 1: getexp 10,0; break;
+ case 2: getexp 17,0; break;
+ case 3: getexp 26,0; break;
+ case 4: getexp 37,0; break;
+ case 5: getexp 78,0; break;
+ case 6: getexp 115,0; break;
+ case 7: getexp 155,0; break;
+ }
+ }
+ else {
+ next;
+ mes "[Cecil]";
+ mes "Oh wait. You're much higher in level than I thought. Still, I'm proud of you!";
+ }
+ next;
+ mes "[Cecil]";
+ mes "Well, that's it for the essential fundamentals. If you want a more comprehensive lesson, you gotta speak to the assistant tutors.";
+ next;
+ switch(select("Okay.:Send me to Field Combat Training, now!:Cancel")) {
+ case 1:
+ mes "[Cecil]";
+ mes "Everyone in the";
+ mes "Training Grounds is";
+ mes "more than willing to";
+ mes "help you. Good luck!";
+ close;
+ case 2:
+ mes "[Cecil]";
+ mes "Heh heh~!";
+ mes "Alright, practice makes perfect! Let me send you to the guys at Field Combat Training. Take care!";
+ close2;
+ warp "new_1-2",28,178;
+ end;
+ case 3:
+ emotion e_omg;
+ close;
+ }
+ case 2:
+ mes "[Cecil]";
+ mes "Heh heh~!";
+ mes "Alright, practice makes perfect! Let me send you to the guys at Field Combat Training. Take care!";
+ close2;
+ warp "new_1-2",28,178;
+ end;
+ case 3:
+ emotion e_omg;
+ close;
+ }
+ }
+ else if (nov_get_item02 < 10) {
+ mes "[Cecil]";
+ mes "So how may";
+ mes "I help you?";
+ mes "Whoa, you haven't attended the Basic Interface class yet? Oh well, I know that class is kinda boring~";
+ next;
+ switch(select("Oh, I better take that class.:Send me to Field Combat Training.:Cancel")) {
+ case 1:
+ mes "[Cecil]";
+ mes "Yeah, that's a good idea. After all, you'll gain experience and items while you take that class. Alright then, the Interfaces Tutor is in the center of this room. Go for it~";
+ close;
+ case 2:
+ mes "[Cecil]";
+ mes "Heh heh~!";
+ mes "Alright, practice makes perfect! Let me send you to the guys at Field Combat Training. Take care!";
+ close2;
+ warp "new_1-2",28,178;
+ end;
+ case 3:
+ emotion e_omg;
+ close;
+ }
+ }
+ else if (nov_get_item04 < 10) {
+ mes "[Cecil]";
+ mes "So how may";
+ mes "I help you?";
+ mes "Whoa, you haven't attended the Item Information class yet? Oh well, I know that class is kinda boring~";
+ next;
+ switch(select("Oh, I better take that class.:Send me to Field Combat Training.:Cancel")) {
+ case 1:
+ mes "[Cecil]";
+ mes "Yeah, that's a good idea. After all, you'll gain experience and items while you take that class. Alright then, the Item Tutor is on the far right side of this room. Go for it~";
+ close;
+ case 2:
+ mes "[Cecil]";
+ mes "Heh heh~!";
+ mes "Alright, practice makes perfect! Let me send you to the guys at Field Combat Training. Take care!";
+ close2;
+ warp "new_1-2",28,178;
+ end;
+ case 3:
+ emotion e_omg;
+ close;
+ }
+ }
+}
+
+new_1-2,115,111,3 script Item Tutor#nv 726,{
+ if (nov_get_item02 > 9 && nov_get_item03 > 9 && nov_get_item04 > 9) {
+ mes "[Alice]";
+ mes "Huh...?";
+ mes "Do you need help looking for someone? You seem to have completed all of the essential courses. Where do you need to go?";
+ next;
+ switch(select("I'm not sure~!:Send me to a town.:Cancel")) {
+ case 1:
+ mes "[Alice]";
+ mes "Hmm...";
+ mes "You've learned everything else,";
+ mes "so I guess the only thing left is Field Combat Training. Did you want to attend that class now?";
+ next;
+ switch(select("Yes.:Oh, w-wait.")) {
+ case 1:
+ mes "[Alice]";
+ mes "Make sure you keep the items I've given you handy, and that you equip all of your armor, alright? Now, take care.";
+ close2;
+ warp "new_1-2",28,178;
+ end;
+ case 2:
+ mes "[Alice]";
+ mes "Okay, no problem.";
+ mes "Come to me when you";
+ mes "need any help.";
+ close;
+ }
+ case 2:
+ mes "[Alice]";
+ mes "Ah, I see.";
+ mes "If you want to move to a town, the Kafra Lady to the right of me will teleport you. Take care now~";
+ close;
+ case 3:
+ mes "[Alice]";
+ mes "Hmpf...!";
+ close;
+ }
+ }
+ else if (nov_get_item04 < 10) {
+ enable_items;
+ mes "[Alice]";
+ mes "^666666*Yawn~*^000000";
+ mes "This is so boring.";
+ mes "Oh! Hello, you're new here.";
+ if (NEW_MES_FLAG0) {
+ mes "Ooh, your proof of registration was expired. But that's okay, I'll just give you a new one! There you go.";
+ set NEW_MES_FLAG0,0;
+ set NEW_MES_FLAG1,0;
+ set NEW_MES_FLAG2,0;
+ set NEW_MES_FLAG3,0;
+ set NEW_MES_FLAG4,0;
+ set NEW_MES_FLAG5,0;
+ set NEW_LVUP0,0;
+ set NEW_LVUP1,0;
+ set NEW_JOBLVUP,0;
+ }
+ mes "So, have you come to attend";
+ mes "my Item Information class?";
+ next;
+ switch(select("Yes!:No, thanks.:How do I get to a town?")) {
+ case 1:
+ mes "[Alice]";
+ mes "Don't worry, it'll be short.";
+ mes "Open your Inventory Window";
+ mes "through either the '^3355FFitems^000000' button in the Basic Info window, or by pressing the '^3355FFAlt^000000' and '^3355FFE^000000' keys at the same time.";
+ next;
+ mes "[Alice]";
+ mes "In the Inventory Window, you'll see 3 tabs labeled ^3355FFitem^000000, ^3355FFequip^000000 and ^3355FFetc^000000. Items that can be consumed are under the ^4A708Bitem^000000 tab.";
+ next;
+ mes "[Alice]";
+ mes "Now, would you click the ^4A708Bitem^000000 tab in the Inventory Window? I just gave you a Novice Potion. You can drink it by double-clicking it. Go ahead, try it!";
+ set nov_get_item04,10;
+ getitem 569,1; //Novice_Potion
+ percentheal -50,0;
+ next;
+ mes "[Alice]";
+ if (countitem(569) < 1) {
+ if (BaseLevel < 8) {
+ mes "Nice~!";
+ mes "And here's";
+ mes "a little reward";
+ mes "just for listening.";
+ set nov_get_item04,11;
+ switch (BaseLevel) {
+ case 1: getexp 10,0; break;
+ case 2: getexp 17,0; break;
+ case 3: getexp 26,0; break;
+ case 4: getexp 37,0; break;
+ case 5: getexp 78,0; break;
+ case 6: getexp 115,0; break;
+ case 7: getexp 155,0; break;
+ }
+ }
+ else {
+ mes "Good job! I'd reward you with some more experience if your level weren't already this high.";
+ }
+ }
+ else {
+ mes "Um...";
+ mes "Well, you can drink";
+ mes "it later I guess.";
+ }
+ next;
+ mes "[Alice]";
+ mes "Let me explain about";
+ mes "items in the ^4A708Bequip^000000 tab";
+ mes "of the Inventory Window.";
+ next;
+ mes "[Alice]";
+ mes "When you click on the ^4A708Bequip^000000 tab, you can view every item in your inventory that you can equip. Let me give you some equipment so that you can try them on.";
+ next;
+ mes "[Alice]";
+ mes "Got them? Good.";
+ mes "Now, double-click";
+ mes "on the Novice Slippers";
+ mes "I just gave you to";
+ mes "put them on.";
+ set nov_get_item04,12;
+ getitem 2510,1; //Novice_Hood
+ getitem 2414,1; //Novice_Boots
+ getitem 5055,1; //Novice_Egg_Cap
+ next;
+ mes "[Alice]";
+ if (isequipped(2414)) {
+ if (BaseLevel < 8) {
+ mes "Hooray~!";
+ mes "You did it!";
+ mes "You deserve a reward!";
+ set nov_get_item04,13;
+ switch (BaseLevel) {
+ case 1: getexp 10,0; break;
+ case 2: getexp 17,0; break;
+ case 3: getexp 26,0; break;
+ case 4: getexp 37,0; break;
+ case 5: getexp 78,0; break;
+ case 6: getexp 115,0; break;
+ case 7: getexp 155,0; break;
+ }
+ }
+ else {
+ mes "Good job! I'd reward you with some more experience if your level weren't already this high.";
+ }
+ }
+ else {
+ mes "Er...";
+ mes "You've got to";
+ mes "double-click";
+ mes "equipment to";
+ mes "wear it. Just";
+ mes "remember that, okay?";
+ }
+ disable_items;
+ next;
+ mes "[Alice]";
+ mes "Would you";
+ mes "press the '^3355FFF12^000000' key?";
+ mes "This will summon your";
+ mes "Hotkey bar on your screen.";
+ next;
+ mes "[Alice]";
+ mes "You can assign hotkeys to your items, skills and equipment using the Hotkey bar. Just drag skill icons from the Skill Window or items from the Inventory Window into the Hotkey bar.";
+ next;
+ mes "[Alice]";
+ mes "The Hotkeys are '^3355FFF1^000000' to '^3355FFF9^000000.'";
+ mes "If you have attended the Skill Class, you must have been given the First Aid skill. Drag and drop the First Aid skill icon into the Hotkey bar.";
+ next;
+ mes "[Alice]";
+ mes "For your information, only";
+ mes "active skills can be assigned to a Hotkey and dragged to the Hotkey bar. Active Skills have colored, square shaped icons that can be double-clicked and used.";
+ next;
+ mes "[Alice]";
+ mes "Passive Skills, such as the aptly named 'Basic Skill,' cannot be dragged into the Hotkey bar because Passive Skills are always in effect and don't need to be activated.";
+ set nov_get_item04,14;
+ if (JobLevel < 7) {
+ switch (JobLevel) {
+ case 1: getexp 0,10; break;
+ case 2: getexp 0,18; break;
+ case 3: getexp 0,28; break;
+ case 4: getexp 0,40; break;
+ case 5: getexp 0,91; break;
+ case 6: getexp 0,151; break;
+ }
+ }
+ next;
+ mes "[Alice]";
+ mes "Well, that's it!";
+ mes "Let me supply you with some items";
+ mes "that will help you during the Field Combat Training.";
+ next;
+ mes "[Alice]";
+ mes "However, ^ff0000do not use the Fly Wing or Butterfly Wing^000000 in these Training Grounds or you could be stuck here forever. Those items are for when you graduate, okay?";
+ set nov_get_item04,15;
+ getitem 601,10; //Wing_Of_Fly
+ getitem 602,2; //Wing_Of_Butterfly
+ getitem 569,50; //Novice_Potion
+ next;
+ mes "[Alice]";
+ mes "And lastly...";
+ if (JobLevel < 7) {
+ mes "I will give";
+ mes "you some Job experience!";
+ set nov_get_item04,16;
+ switch (JobLevel) {
+ case 1: getexp 0,10; break;
+ case 2: getexp 0,18; break;
+ case 3: getexp 0,28; break;
+ case 4: getexp 0,40; break;
+ case 5: getexp 0,91; break;
+ case 6: getexp 0,151; break;
+ }
+ }
+ else {
+ mes "I was gonna give you some job experience points, but I think you have enough job experience for now.";
+ }
+ next;
+ switch(select("Now what?:Send me to the actual fighting class!:Cancel")) {
+ case 1:
+ mes "[Alice]";
+ mes "Why don't you walk around";
+ mes "and talk to other tutors if you haven't already?";
+ next;
+ mes "[Alice]";
+ mes "Everyone in this training grounds is more than willing to help you.";
+ mes "Maybe you can venture around";
+ mes "this area if you're bored.";
+ next;
+ mes "[Alice]";
+ mes "The assistant tutors in the room to the right possess useful knowledge. There are also a few interesting places hidden within this area. Good luck!";
+ close;
+ case 2:
+ mes "[Alice]";
+ mes "What an enthusiastic Novice you are! Okay, I'll send you to the folks in charge of Field Combat Training. Make sure that you listen carefully to the trainers.";
+ next;
+ mes "[Alice]";
+ mes "After all...";
+ mes "When you're fighting monsters, it's a matter of life and death! Alright then, take care~";
+ close2;
+ warp "new_1-2",28,178;
+ end;
+ case 3:
+ mes "[Alice]";
+ mes "Hmpf!";
+ close;
+ }
+ case 2:
+ mes "[Alice]";
+ mes "Are you sure you really want to go into Field Combat Training? Have you spoken to every tutor? You better do that beforehand.";
+ next;
+ switch(select("No, no! Send me to the actual fight class!:Oh, wait!")) {
+ case 1:
+ mes "[Alice]";
+ mes "What an enthusiastic Novice you are! Okay, I'll send you to the folks in charge of Field Combat Training. Make sure that you listen carefully to the trainers.";
+ next;
+ mes "[Alice]";
+ mes "After all...";
+ mes "When you're fighting monsters, it's a matter of life and death! Alright then, take care~";
+ close2;
+ warp "new_1-2",28,178;
+ end;
+ case 2:
+ mes "[Alice]";
+ mes "Now, that's a good decision. You won't get any many chances to get free stuff and experience in the future. You better make the most of this opportunity while you can!";
+ close;
+ }
+ case 3:
+ mes "[Alice]";
+ mes "If you want to go to a town, ask the Kafra Employee to the right. Alright then, take care~";
+ close;
+ }
+ }
+ else if (nov_get_item02 < 10) {
+ mes "[Alice]";
+ mes "So how may";
+ mes "I help you?";
+ mes "Hmm, it seems that you haven't attended the Basic Interfaces class yet. Would you like to attend that class first?";
+ next;
+ switch(select("I am going to attend that class.:Send me to Field Combat Training.:Cancel")) {
+ case 1:
+ mes "[Cecil]";
+ mes "Excellent~";
+ mes "You'll learn some essential stuff and gain experience and items as you take that class. The tutor for Basic Interfaces is in the center of this room. Now, go for it~";
+ close;
+ case 2:
+ mes "[Alice]";
+ mes "Are you sure you really want to go into Field Combat Training? Have you spoken to every tutor? You better do that beforehand.";
+ next;
+ switch(select("I want Field Combat Training~!:Oh, wait!")) {
+ case 1:
+ mes "[Alice]";
+ mes "What an enthusiastic Novice you are! Okay, I'll send you to the folks in charge of Field Combat Training. Make sure that you listen carefully to the trainers.";
+ next;
+ mes "[Alice]";
+ mes "After all...";
+ mes "When you're fighting monsters, it's a matter of life and death! Alright then, take care~";
+ close2;
+ warp "new_1-2",28,178;
+ end;
+ case 2:
+ mes "[Alice]";
+ mes "Now, that's a good decision. You won't get any many chances to get free stuff and experience in the future. You better make the most of this opportunity while you can!";
+ close;
+ }
+ case 3:
+ mes "[Alice]";
+ mes "If you want to go to a town, ask the Kafra Employee to the right. Alright then, take care~";
+ close;
+ }
+ }
+ else if (nov_get_item03 < 10) {
+ mes "[Alice]";
+ mes "So how may";
+ mes "I help you?";
+ mes "It looks like you still haven't attended the ^4d4dffthe Skill information class^000000 yet. Would you like to attend that class first?";
+ next;
+ switch(select("I'll attend that class.:Send me to Field Combat Training.:Cancel")) {
+ case 1:
+ mes "[Alice]";
+ mes "Now, that's a good idea. Please talk to Cecil, the tutor at the far left side of this room, okay?";
+ close2;
+ warp "new_1-2",84,107;
+ end;
+ case 2:
+ mes "[Alice]";
+ mes "Are you sure you really want to go into Field Combat Training? Have you spoken to every tutor? You better do that beforehand.";
+ next;
+ switch(select("I want Field Combat Training~!:Oh, wait!")) {
+ case 1:
+ mes "[Alice]";
+ mes "What an enthusiastic Novice you are! Okay, I'll send you to the folks in charge of Field Combat Training. Make sure that you listen carefully to the trainers.";
+ next;
+ mes "[Alice]";
+ mes "After all...";
+ mes "When you're fighting monsters, it's a matter of life and death! Alright then, take care~";
+ close2;
+ warp "new_1-2",28,178;
+ end;
+ case 2:
+ mes "[Alice]";
+ mes "Now, that's a good decision. You won't get any many chances to get free stuff and experience in the future. You better make the most of this opportunity while you can!";
+ close;
+ }
+ case 3:
+ mes "[Alice]";
+ mes "If you want to go to a town, ask the Kafra Employee to the right. Alright then, take care~";
+ close;
+ }
+ }
+}
+
+new_1-2,118,108,3 script Kafra Employee#nv1 117,{
+ mes "[Kafra Employee]";
+ mes "Welcome to";
+ mes "Kafra Corporation.";
+ mes "The Kafra services are";
+ mes "always on your side.";
+ if (NEW_MES_FLAG0) {
+ set NEW_MES_FLAG0,0;
+ set NEW_MES_FLAG1,0;
+ set NEW_MES_FLAG2,0;
+ set NEW_MES_FLAG3,0;
+ set NEW_MES_FLAG4,0;
+ set NEW_MES_FLAG5,0;
+ set NEW_LVUP0,0;
+ set NEW_LVUP1,0;
+ set NEW_JOBLVUP,0;
+ }
+ next;
+ mes "[Kafra Employee]";
+ mes "I've been dispatched from Kafra Corporation Headquarters to assist new players such as yourself.";
+ next;
+ mes "[Kafra Employee]";
+ mes "Please, take heed!";
+ mes "If you move to a town";
+ mes "^4d4dffyou will be unable to return to the Training Grounds ever again^000000.";
+ next;
+ if ( select("Teleport Service","About Kafra services") == 1 ) {
+ if (nov_get_item02 < 10 && nov_get_item03 < 10 && nov_get_item04 < 10) {
+ mes "[Kafra Employee]";
+ mes "I see, you must want to teleport to a town in Rune-Midgard imediately. First, let me briefly inform you about the different towns and cities in Ragnarok.";
+ next;
+ mes "[Kafra Employee]";
+ mes "Prontera is the capital of the Rune-Midgarts kingdom, and its satellite, Izlude, is closeby.";
+ next;
+ mes "[Kafra Employee]";
+ mes "^996633Morroc^000000 is in the desert. It's the town where you can change your job to the Thief and Assassin classes.";
+ next;
+ mes "[Kafra Employee]";
+ mes "^006600Payon^000000 is in the mountains, and is famous for its Archer Village, where Novices can change their jobs to Archers.";
+ next;
+ mes "[Kafra Employee]";
+ mes "The city of magic, ^993300Geffen^000000, is where people go to become Mages and Wizards.";
+ next;
+ mes "[Kafra Employee]";
+ mes "^003399Alberta^000000, the port city, is where the Merchant Guild is located. You must also go to Alberta if you wish to travel by sea.";
+ next;
+ mes "[Kafra Employee]";
+ mes "Please choose";
+ mes "your destination.";
+ next;
+ switch(select("Prontera:Morroc:Payon:Alberta:Geffen")) {
+ case 1:
+ set .@dest$,"Prontera";
+ set .@mapn$,"prontera";
+ set .@saveX,117; set .@saveY,72;
+ set .@warpX,150; set .@warpY,50;
+ break;
+ case 2:
+ set .@dest$,"Morroc";
+ set .@mapn$,"morocc";
+ set .@saveX,150; set .@saveY,99;
+ set .@warpX,155; set .@warpY,110;
+ break;
+ case 3:
+ set .@dest$,"Payon";
+ set .@mapn$,"payon";
+ set .@saveX,70; set .@saveY,100;
+ set .@warpX,166; set .@warpY,67;
+ break;
+ case 4:
+ set .@dest$,"Alberta";
+ set .@mapn$,"alberta";
+ set .@saveX,30; set .@saveY,232;
+ set .@warpX,114; set .@warpY,58;
+ break;
+ case 5:
+ set .@dest$,"Geffen";
+ set .@mapn$,"geffen";
+ set .@saveX,119; set .@saveY,37;
+ set .@warpX,122; set .@warpY,65;
+ break;
+ }
+ mes "[Kafra Employee]";
+ mes "You have decided";
+ mes "to go to "+.@dest$+".";
+ mes "May God be with you.";
+ close2;
+ if (nov_get_item05 < 11) {
+ set nov_get_item05,11;
+ getitem 569,100; //Novice_Potion
+ getitem 1243,1; //Novice_Knife
+ getitem 2414,1; //Novice_Boots
+ getitem 2510,1; //Novice_Hood
+ getitem 2352,1; //Novice_Plate
+ getitem 2112,1; //Novice_Guard
+ getitem 601,10; //Wing_Of_Fly
+ getitem 602,2; //Wing_Of_Butterfly
+ getitem 7059,5; //Cargo_Free_Ticket
+ getitem 7060,5; //Warp_Free_Ticket
+ }
+ set nov_1st_cos,0;
+ set nov_2nd_cos,0;
+ set nov_3_swordman,0;
+ set nov_3_archer,0;
+ set nov_3_thief,0;
+ set nov_3_magician,0;
+ set nov_3_acolyte,0;
+ set nov_3_merchant,0;
+ savepoint .@mapn$,.@saveX,.@saveY;
+ warp .@mapn$,.@warpX,.@warpY;
+ end;
+ }
+ else {
+ switch(select("Field Combat Course:Prontera:Morroc:Payon:Alberta:Geffen")) {
+ case 1:
+ mes "[Kafra Employee]";
+ mes "Thank you, let";
+ mes "me send you to the";
+ mes "Field Combat Training Course.";
+ close2;
+ warp "new_1-2",28,178;
+ end;
+ case 2:
+ set .@dest$,"Prontera";
+ set .@mapn$,"prontera";
+ set .@saveX,117; set .@saveY,72;
+ set .@warpX,150; set .@warpY,50;
+ break;
+ case 3:
+ set .@dest$,"Morroc";
+ set .@mapn$,"morocc";
+ set .@saveX,150; set .@saveY,99;
+ set .@warpX,155; set .@warpY,110;
+ break;
+ case 4:
+ set .@dest$,"Payon";
+ set .@mapn$,"payon";
+ set .@saveX,70; set .@saveY,100;
+ set .@warpX,166; set .@warpY,67;
+ break;
+ case 5:
+ set .@dest$,"Alberta";
+ set .@mapn$,"alberta";
+ set .@saveX,30; set .@saveY,232;
+ set .@warpX,114; set .@warpY,58;
+ break;
+ case 6:
+ set .@dest$,"Geffen";
+ set .@mapn$,"geffen";
+ set .@saveX,119; set .@saveY,37;
+ set .@warpX,122; set .@warpY,65;
+ break;
+ }
+ mes "[Kafra Employee]";
+ mes "You have decided";
+ mes "to go to "+.@dest$+".";
+ mes "May God be with you.";
+ close2;
+ if (nov_get_item05 < 11) {
+ set nov_get_item05,11;
+ getitem 7059,5; //Cargo_Free_Ticket
+ getitem 7060,5; //Warp_Free_Ticket
+ }
+ set nov_1st_cos,0;
+ set nov_2nd_cos,0;
+ set nov_3_swordman,0;
+ set nov_3_archer,0;
+ set nov_3_thief,0;
+ set nov_3_magician,0;
+ set nov_3_acolyte,0;
+ set nov_3_merchant,0;
+ savepoint .@mapn$,.@saveX,.@saveY;
+ warp .@mapn$,.@warpX,.@warpY;
+ end;
+ }
+ }
+ else {
+ mes "[Kafra Employee]";
+ mes "Let me introduce you";
+ mes "to the Kafra Services.";
+ mes "In the menu, please choose";
+ mes "the service you'd like to";
+ mes "learn more about.";
+ next;
+ while(1) {
+ switch(select("Save service:Storage service:Teleport service:Cart rental service:Cancel")) {
+ case 1:
+ mes "[Kafra Employee]";
+ mes "When you talk to a Kafra Employee and ask for the Save Service, the location of where you will revive, after being defeated in battle, will be changed.";
+ next;
+ mes "[Kafra Employee]";
+ mes "Your Respawn Point is always the last place where you have saved. Using a Butterfly Wing will return you to the place where you";
+ mes "last saved.";
+ next;
+ mes "[Kafra Employoee]";
+ mes "The Save Service";
+ mes "is also provided by";
+ mes "the Kafra Corporation";
+ mes "free of charge~!";
+ if (nov_1st_cos < 20) {
+ set nov_1st_cos,20;
+ switch (BaseLevel) {
+ case 1: getexp 10,0; break;
+ case 2: getexp 17,0; break;
+ case 3: getexp 26,0; break;
+ case 4: getexp 37,0; break;
+ case 5: getexp 78,0; break;
+ case 6: getexp 115,0; break;
+ case 7: getexp 155,0; break;
+ }
+ }
+ next;
+ break;
+ case 2:
+ mes "[Kafra Employee]";
+ mes "The Kafra Corporation is the world's largest company with a long and distinguished history on the Rune-Midgard continent.";
+ next;
+ mes "[Kafra Employee]";
+ mes "You can store and retrieve";
+ mes "your items in any town at your convenience. This Storage is shared by every character on one account.";
+ next;
+ mes "[Kafra Employee]";
+ mes "It's unreasonable to carry all of your items with you when you don't need them right away. Please use our Storage and keep your items safe and secure.";
+ next;
+ mes "[Kafra Employee]";
+ mes "Our convenient Storage Service";
+ mes "is provided to our customers for a small fee which is different from town to town.";
+ next;
+ mes "[Kafra Employee]";
+ mes "However, you must be";
+ mes "at least ^3355FFBasic Skill Level 6^000000";
+ mes "to use the Storage.";
+ next;
+ mes "[Kafra Employee]";
+ mes "There are 3 different item sections of the Storage into which items are organized: Consumable, Equipment and Etc.";
+ next;
+ mes "[Kafra Employee]";
+ mes "There are a maximum of 300 Inventory Slots in Kafra Storage, meaning you can have up to 300 different kinds of items in Storage.";
+ next;
+ mes "[Kafra Employee]";
+ mes "Remember though, that in the case of Equipment, each item takes up one Inventory Slot. The maximum number of items that can be placed in Kafra Storage is 30,000.";
+ if (nov_3_archer < 20) {
+ if (JobLevel < 7) {
+ set nov_3_archer,20;
+ switch (JobLevel) {
+ case 1: getexp 0,10; break;
+ case 2: getexp 0,18; break;
+ case 3: getexp 0,28; break;
+ case 4: getexp 0,40; break;
+ case 5: getexp 0,91; break;
+ case 6: getexp 0,151; break;
+ }
+ }
+ }
+ next;
+ break;
+ case 3:
+ mes "[Kafra Employee]";
+ mes "The Kafra Corporation";
+ mes "provides our valued customers with a convenient Teleport Service which greatly cuts down on your";
+ mes "traveling time.";
+ next;
+ mes "[Kafra Employee]";
+ mes "Our Teleport Service is safe and comfortable, and will allow you to fully explore the various lands of the Rune-Midgard continent.";
+ next;
+ mes "[Kafra Employee]";
+ mes "We thank our valued customers for their great support and continue to provide them with the best";
+ mes "of service.";
+ next;
+ break;
+ case 4:
+ mes "[Kafra Employee]";
+ mes "The Kafra Corporation";
+ mes "provides a Cart Rental Service to Merchants, as well as Blacksmiths and Alchemists.";
+ next;
+ mes "[Kafra Employee]";
+ mes "The flamboyantly mysterious";
+ mes "^CE6300Super Novice^000000 can use Carts, but we officially don't have a contract with that class. Still, somehow...";
+ next;
+ mes "[Kafra Employee]";
+ mes "Anyway, Merchants, Blacksmiths and Alchemists must also learn the ^3355FFPush Cart^000000 skill in order to be able to rent a cart.";
+ next;
+ mes "[Kafra Employee]";
+ mes "The Cart Rental service";
+ mes "charge will differ from";
+ mes "town to town.";
+ next;
+ break;
+ case 5:
+ mes "[Kafra Employee]";
+ mes "Thank you.";
+ close;
+ }
+
+ }
+ }
+}
+
+//Interface Assistant
+new_1-2,161,182,5 script Instructor#nv 92,{
+ mes "[Edwin]";
+ mes "Welcome to my class.";
+ mes "Choose the subject you";
+ mes "wish to learn more about.";
+ mes "";
+ next;
+ while(1) {
+ switch(select("Basic Info Window:Party Window:Item Window:Option Window:Equipment Window:Cancel")) {
+ case 1:
+ mes "[Edwin]";
+ mes "Let's take a look at";
+ mes "the Basic Info Window,";
+ mes "shall we?";
+ next;
+ mes "[Edwin]";
+ mes "Your name, job, Basic Level,";
+ mes "and your Job Level are displayed in this window. ^800FFFBase level^000000 is your character's level.";
+ next;
+ mes "[Edwin]";
+ mes "The ^800fffJob Level^000000 shown under the";
+ mes "Base Level displays the Job level of your character. When you just start a job, you will be at";
+ mes "Job Level 1.";
+ next;
+ mes "[Edwin]";
+ mes "In the Basic Info window, your current experience points are displayed in the Base Level experience bar.";
+ next;
+ mes "[Edwin]";
+ mes "Experience points in Ragnarok Online are indicated by percentage. Base and Job experience are separate from each other.";
+ next;
+ mes "[Edwin]";
+ mes "When the Base Level or";
+ mes "Job Level bar reaches 100 it will be raised by one level and the bar will then reset to 0 for the next level.";
+ next;
+ mes "[Edwin]";
+ mes "HP stands for 'health points.'";
+ mes "When your HP is reduced to 0, you will faint and be unable to fight. You can either return to your spawn point, or wait for someone to revive you.";
+ next;
+ mes "[Edwin]";
+ mes "If you die in the fields or dungeons, you will receive";
+ mes "a ^FF0000-1 % EXP penalty^000000, so be careful.";
+ next;
+ mes "[Edwin]";
+ mes "SP stands for 'spell points.'";
+ mes "When you become a 1st class, you will learn unique class skills of the class that will require SP to use. Your skill instructor can teach you more about skills.";
+ next;
+ mes "[Edwin]";
+ mes "If you want to check the weight limit of the items you can carry, check the bottom left of the";
+ mes "Basic Info window.";
+ next;
+ mes "[Edwin]";
+ mes "The current weight of the items you are carrying will be displayed next to your maximum weight limit.";
+ next;
+ mes "[Edwin]";
+ mes "If you carry over 50 % of your maximum weight limit, your HP and SP will not be restored by resting, so be careful.";
+ next;
+ mes "[Edwin]";
+ mes "The numerical value next to the weight limit shows the current amount of Zeny, the currency of Rune-Midgard, that you possess.";
+ next;
+ mes "[Edwin]";
+ mes "On the right side of the";
+ mes "Basic Info Window is a series of buttons that will open other interface windows. Click them one by one, and check what you can do with them.";
+ next;
+ mes "[Edwin]";
+ mes "The shortcut for minimizing and maximizing the Basic Info Window";
+ mes "is '^3355FFAlt^000000 + ^3355FFV^000000.'";
+ next;
+ break;
+ case 2:
+ mes "[Edwin]";
+ mes "You can open the Party Window";
+ mes "by clicking the ^3355FFfriend^000000 button in the Basic Info window. The shortcut for the Party Window is '^3355FFAlt^000000 + ^3355FFZ^000000.' You can use this window to check on the members of your party.";
+ next;
+ mes "[Edwin]";
+ mes "The Party master can determine";
+ mes "the distribution of EXP and items to the party. You can also check the location of your party members on the Mini-Map.";
+ next;
+ mes "[Edwin]";
+ mes "In the Party Window, you can click on the ^3355FFFriend^000000 button to see your Friend List. You can use the";
+ mes "Friend List to send whispers";
+ mes "to your friends.";
+ next;
+ mes "[Edwin]";
+ mes "You can ask your skill instructor to learn more about organizing parties. But I guess you can also just try that on your own.";
+ next;
+ break;
+ case 3:
+ mes "[Edwin]";
+ mes "The item window is divided into";
+ mes "3 sections: consumable items, equipment and other items.";
+ next;
+ mes "[Edwin]";
+ mes "Your weight limit does limit the amount of items you can carry with you. When you're carrying too many things, place your extra stuff in Kafra Storage.";
+ next;
+ mes "[Edwin]";
+ mes "Also, equipment and consumable items can also be assigned to a Hotkey through the Hotkey bar.";
+ next;
+ mes "[Edwin]";
+ mes "The Hotkey window is opened by pressing ^3355FFF12^000000 key. The F1 to F9 keys are the designated hotkeys.";
+ next;
+ mes "[Edwin]";
+ mes "There are total of 3 sets";
+ mes "of Hotkeys. You can toggle";
+ mes "between Hotkey sets by";
+ mes "pressing the F12 button.";
+ next;
+ break;
+ case 4:
+ mes "[Edwin]";
+ mes "You can open the Option Window";
+ mes "by pressing the ^3355FFoption^000000 button in the Basic Info window. You can also press the '^3355FFAlt^000000 + ^3355FFO^000000' keys as well.";
+ next;
+ mes "[Edwin]";
+ mes "In the Option Window, you can adjust sound, GUI skin, and the transparency of the skin.";
+ next;
+ mes "[Edwin]";
+ mes "With the sound button, you can turn the background music on or off, as well as adjust the volume. The same can be done for the sound effects.";
+ next;
+ mes "[Edwin]";
+ mes "With the Skin option, you can change the GUI skin for the in-game windows. Scroll through the list of the skins you have and choose";
+ mes "a skin.";
+ next;
+ mes "[Edwin]";
+ mes "You can also download official skins from our official website:";
+ mes "^0000FFhttp://iro.ragnarokonline.com^000000";
+ next;
+ mes "[Edwin]";
+ mes "The Snap option allows your mouse cursor to automatically be placed on a target once it hovers within the target's vicinity.";
+ next;
+ mes "[Edwin]";
+ mes "When you click to attack, your mouse cursor will automatically change into a sword shape. Skill and item targeting also work with the Snap function.";
+ next;
+ mes "[Edwin]";
+ mes "It might be useful or awkward if you're not used to it. But once you're familiar with the Snap function, you will be able to adjust your own snap options.";
+ next;
+ mes "[Edwin]";
+ mes "Well, it all depends on your experience. That's all for the Option Window.";
+ next;
+ break;
+ case 5:
+ mes "[Edwin]";
+ mes "Click the ^3355FFequip^000000 button";
+ mes "in your Basic Info Window,";
+ mes "or just press the '^3355FFAlt^000000 + ^3355FFQ^000000' keys.";
+ next;
+ mes "[Edwin]";
+ mes "In the Equipment Window,";
+ mes "you will see the items currently equipped on your character. In the very beginning, every character is equipped with a Knife and";
+ mes "a Cotton Shirt.";
+ next;
+ mes "[Edwin]";
+ mes "There are 2 ways to change your equipment. Double-click equipment in the Inventory Window or click and drag an item into the";
+ mes "Equipment Window.";
+ next;
+ mes "[Edwin]";
+ mes "You can also assign equipment to Hotkeys. This can be down when you drag equipment from the Inventory into the Hotkey Window.";
+ mes "('^3355FFF12^000000' key).";
+ next;
+ break;
+ case 6:
+ mes "[Edwin]";
+ mes "If you have";
+ mes "any questions,";
+ mes "feel free to ask me~";
+ close;
+ }
+ }
+}
+
+new_1-2,182,182,3 script Somatology Instructor 754,{
+ mes "[Jare Riotte]";
+ mes "Welcome, new adventurer.";
+ mes "I, Jare Riotte will help you to learn about the fundamental";
+ mes "rules of your Character Statuses.";
+ next;
+ mes "[Jare Riotte]";
+ mes "Also known as 'Stats,'";
+ mes "your statuses are the fundamental building blocks of your character.";
+ next;
+ mes "[Jare Riotte]";
+ mes "I am willing to help you learn about the statuses more than anything else, so feel free to ask me about character statuses you";
+ mes "may be wondering about.";
+ next;
+ mes "[Jare Riotte]";
+ mes "In Ragnarok Online,";
+ mes "the Character Statuses are Strength, Agility, Vitality, Intelligence, Dexterity and Luck.";
+ next;
+ mes "[Jare Riotte]";
+ mes "I want my class to proceed";
+ mes "according to your personal needs, so ask about the Status you wish to better understand. First, open your Status Window by using the '^3355FFAlt^000000 + ^3355FFA^000000' keys.";
+ next;
+ while(1) {
+ switch(select("Strength and Agility:Vitality and Intelligence:Dexterity and Luck:I do not wish to continue.")) {
+ case 1:
+ mes "[Jare Riotte]";
+ mes "Let me explain Strength first.";
+ mes "^4D4DFFStrength (STR)^000000 increases";
+ mes "^4D4DFFphysical attack damage (ATK) ^000000";
+ mes "and your ^4D4DFF maximum weight limit^000000.";
+ next;
+ mes "[Jare Riotte]";
+ mes "1 STR increases your physical attack damage by 1 point. A certain amount of attack damage bonus is given when the STR stat is increased to a multiple of 10.";
+ next;
+ mes "[Jare Riotte]";
+ mes "The way the attack damage bonus is calculated is by taking the total strength value, removing the very last digit, and squaring the number you have left.";
+ next;
+ mes "[Jare Riotte]";
+ mes "Let's say your attack is displayed as '48 + 1.' That's a total of 49 strength. When you remove the last digit, '9,' we are left with the number '4.' 4 multiplied by itself equals 16.";
+ next;
+ mes "[Jare Riotte]";
+ mes "So the physical attack bonus is 16. Now, if you had a total of 50 STR, the attack bonus would be 25. And if your STR is 100, your attack bonus would be 100.";
+ next;
+ mes "[Jare Riotte]";
+ mes "Okay, now let's move";
+ mes "on to Agility (AGI).";
+ mes "Agility affects your Flee Rate and Attack Speed. The higher your Flee Rate, the better chance you have of avoiding enemy attacks.";
+ next;
+ mes "[Jare Riotte]";
+ mes "Your Flee Rate";
+ mes "is equal to the number";
+ mes "of your Base Level added";
+ mes "to your AGI.";
+ next;
+ mes "[Jare Riotte]";
+ mes "So if you have 40 AGI and you're at Base Level 30, your Flee Rate would be 70. It's so simple! Following the Flee Rate formula, your flee rate will be a total of 70.";
+ next;
+ mes "[Jare Riotte]";
+ mes "Now, AGI only relates to normal Flee Rate. Perfect Dodge is another factor that determines success in dodging attacks, but we'll talk about that when we discuss";
+ mes "the LUK stat.";
+ next;
+ mes "[Jare Riotte]";
+ mes "Another benefit to increasing AGI is that your Attack Speed (ASPD) will also increase, meaning the time between your melee attacks will be reduced.";
+ next;
+ mes "[Jare Riotte]";
+ mes "ASPD, however,";
+ mes "differs by Job Class,";
+ mes "so please remember that.";
+ next;
+ mes "[Jare Riotte]";
+ mes "^666666*Whew!*^000000";
+ mes "That's almost too";
+ mes "much excitement for";
+ mes "one day. Shall we move";
+ mes "on to the next subject?";
+ next;
+ break;
+ case 2:
+ mes "[Jare Riotte]";
+ mes "Our next subject";
+ mes "will be Vitality (VIT)";
+ mes "and Intelligence (INT).";
+ next;
+ mes "[Jare Riotte]";
+ mes "^4D4DFFVitality^000000 affects the ^4D4DFFmaximum HP, amount of HP restoration and defense^000000. The amount of HP increased by VIT is differs by your job class.";
+ next;
+ mes "[Jare Riotte]";
+ mes "Out of all the Job Classes, the Swordman class benefits most";
+ mes "from increases in VIT.";
+ next;
+ mes "[Jare Riotte]";
+ mes "Let's check defense.";
+ mes "On your stat window, your defense is displayed as DEF. Two numerical values are shown, and the second number reflects the addition to your defense by your VIT.";
+ next;
+ mes "[Jare Riotte]";
+ mes "Now, the first number";
+ mes "displayed in your Defense is the defense calculated from your Equipment and Armor.";
+ next;
+ mes "[Jare Riotte]";
+ mes "Now, the equipment you wear reduces damage from enemies by a percentage of the total damage, where VIT reduces by a set amount. That's why Defense is displayed with two numbers.";
+ next;
+ mes "[Jare Riotte]";
+ mes "The next subject";
+ mes "is Intelligence (INT).";
+ next;
+ mes "[Jare Riotte]";
+ mes "INT affects your maximum amount of ^4D4DFFSP^000000, ^4D4DFFSP restoration^000000, the ^4D4DFF damage of your magic attack (MATK)^000000 and your ^4D4DFFdefense against magic attack (MDEF)^000000.";
+ next;
+ mes "[Jare Riotte]";
+ mes "The SP amount and MATK increased";
+ mes "by 1 INT is dependent on Job Class, just like VIT. This means that some Jobs will naturally benefit more from having more INT than others.";
+ next;
+ mes "[Jare Riotte]";
+ mes "Just like normal DEF, your Magic Defense (MDEF) shows as 2 different numerical values. The MDEF contributed by INT is the second MDEF value displayed.";
+ next;
+ mes "[Jare Riotte]";
+ mes "In order to study manipulation of the natural elements, you should prioritize on having intelligence. Therefore, Sages and Wizards";
+ mes "focus on the INT stat.";
+ next;
+ break;
+ case 3:
+ mes "[Jare Riotte]";
+ mes "Our last subject";
+ mes "is Dexterity (DEX)";
+ mes "and Luck (LUK).";
+ next;
+ mes "[Jare Riotte]";
+ mes "Dexterity mainly affects your accuracy, attack speed (ASPD)";
+ mes "and your average attack strength.";
+ next;
+ mes "[Jare Riotte]";
+ mes "Let me explain...";
+ mes "If you have low DEX, the difference between the minimum damage and";
+ mes "the maximum damage you can inflict becomes huge. The damage of your attacks becomes unstable.";
+ next;
+ mes "[Jare Riotte]";
+ mes "If you are using a ^4D4DFFBow^000000 as your";
+ mes "main weapon, your attack strength will be based on^4D4DFFDEX^000000. So Archers should focus on increasing their DEX.";
+ next;
+ mes "[Jare Riotte]";
+ mes "The amount of DEX that you";
+ mes "have will also affect your attack accuracy. Attack accuracy is calculated by the number of your Base Level added to your DEX.";
+ next;
+ mes "[Jare Riotte]";
+ mes "For example, if you are at";
+ mes "Base Level 40 and have 20 DEX,";
+ mes "your attack accuracy would be 60.";
+ next;
+ mes "[Jare Riotte]";
+ mes "Finally, DEX also reduces the casting time of spells and skills. Therefore, having some DEX would";
+ mes "be handy for Mages and Wizards.";
+ next;
+ mes "[Jare Riotte]";
+ mes "Now, let me tell";
+ mes "you about the LUK stat.";
+ next;
+ mes "[Jare Riotte]";
+ mes "Luck (LUK) affects the chance";
+ mes "for a critical attack, the Flee Rate and a small amount of damage you deal to monsters.";
+ next;
+ mes "[Jare Riotte]";
+ mes "For a critical attack, the start value is 1 for everyone and it's increased by^4d4dff 1^000000 for every ^4d4dff3 LUK^000000.";
+ next;
+ mes "[Jare Riotte]";
+ mes "With more LUK, you have an increased change of inflicting ^3355FFcritical attacks^000000 to your enemies. Critical attacks are useful to you, as they pierce your enemy's defense.";
+ next;
+ mes "[Jare Riotte]";
+ mes "You can tell you've performed a critical attack when an attack has inflicted more damage than usual to an enemy, and the damage number is displayed with an explosive red visual effect.";
+ next;
+ mes "[Jare Riotte]";
+ mes "For every 10 LUK, you add 1 point to your Perfect Dodge rate. Perfect Dodge is sort of like your Flee Rate. When you perform a Perfect Dodge, the word '^FF7F00Lucky^000000' will appear over your head.";
+ next;
+ mes "[Jare Riotte]";
+ mes "Although similar to your Flee Rate, Perfect Dodge is a separate factor in attack evasion that is calculated differently.";
+ next;
+ mes "[Jare Riotte]";
+ mes "Well, I must say,";
+ mes "Luck is a good thing to have, but that doesn't mean you need it before everything else.";
+ next;
+ break;
+ case 4:
+ mes "[Jare Riotte]";
+ mes "Do you have any";
+ mes "other questions?";
+ mes "I hope my class";
+ mes "was helpful to you.";
+ close;
+ }
+ }
+}
+
+new_1-2,184,172,1 script Understandings of Skills 47,{
+ mes "[Leo Handerson]";
+ mes "Welcome~";
+ mes "Oh look at this";
+ mes "cute little Novice~!";
+ next;
+ mes "[Leo Handerson]";
+ mes "I, Leo Handerson,";
+ mes "feel so responsible for your performance and will be teaching you to the best of my ability. Now, please select the subject you wish to learn.";
+ emotion e_kis;
+ next;
+ while(1) {
+ switch(select("Passive and Active skills:Basic Skills:Use of Emoticons:Cancel.")) {
+ case 1:
+ mes "[Leo Handerson]";
+ mes "First, let me explain";
+ mes "about the Passive Skills.";
+ mes "Would please you open";
+ mes "your Skill Window?";
+ mes "('^3355FFAlt^000000' + '^3355FFS^000000')";
+ next;
+ mes "[Leo Handerson]";
+ mes "Now, you know that whenever";
+ mes "your Job Level goes up, you earn";
+ mes "a ^3355FFSkill Point^000000, right? Skill Points are used to learn your skills~";
+ next;
+ mes "[Leo Handerson]";
+ mes "Do you see your Basic Skill icon? It's at the very top of the Skill Window. Click on the 'Lv Up' button next to the Basic Skill icon to use a Skill Point on Basic Skills.";
+ next;
+ mes "[Leo Handerson]";
+ mes "You'll see to the word 'Passive'";
+ mes "to the right of the Basic Skill icon. That means this skill is Passive, and doesn't use any SP.";
+ next;
+ mes "[Leo Handerson]";
+ mes "Now, please right-click the Basic Skill icon. You will then be able to read a brief description of the Basic Skills.";
+ next;
+ mes "[Leo Handerson]";
+ mes "Active Skills, unlike Passive Skills which don't use any SP, require SP each time that";
+ mes "they are used.";
+ next;
+ mes "[Leo Handerson]";
+ mes "You can use an Active Skill by double-clicking its icon in your Skill Window.";
+ next;
+ mes "[Leo Handerson]";
+ mes "You can also drag a skill icon from your Skill Window, and drop it into your Hotkey bar ('^3355FFF12^000000' key) to assign a Hotkey to that skill.";
+ next;
+ mes "[Leo Handerson]";
+ mes "The amount of SP required";
+ mes "to use an Active Skill will be displayed to the right of that skill's icon.";
+ next;
+ mes "[Leo Handerson]";
+ mes "Generally, Passive Skills are skills related to mental or physical training and conditioning. The use of special abilities or attacks are Active Skills.";
+ next;
+ mes "[Leo Handerson]";
+ mes "If you're still not";
+ mes "sure about my lesson,";
+ mes "I'm willing to go over";
+ mes "it once again.";
+ next;
+ break;
+ case 2:
+ mes "[Leo Handerson]";
+ mes "The Basic Skills are";
+ mes "purely Passive Skills";
+ mes "that you need to play";
+ mes "Ragnarok Online.";
+ mes "Don't worry,";
+ mes "they're easy to learn.";
+ next;
+ mes "[Leo Handerson]";
+ mes "When you right-click with your mouse in your Skill Window";
+ mes "('^3355FFAlt^000000' + '^3355FFS^000000'), you can check the descriptions of the skills, but I've prepared this lesson for";
+ mes "your better understanding.";
+ next;
+ while(1) {
+ switch(select("Trade and Exchange:Organizing & Joining party:Opening Chat Room:Storage Use:No thanks, I know this already.")) {
+ case 1:
+ mes "[Leo Handerson]";
+ mes "When you go visit our official website at ^0000FFiro.ragnarokonline.com^000000, you can find a full explanation about trading, illustrated with pictures.";
+ next;
+ mes "[Leo Handerson]";
+ mes "In order to trade items";
+ mes "or zeny with other people,";
+ mes "you must learn at least ^3355FFBasic Skill Level 1^000000.";
+ next;
+ mes "[Leo Handerson]";
+ mes "When you trade, you must be";
+ mes "located close to the person with which you wish to exchange items or zeny. Otherwise, the trade will not work if that person is more than 2 cells away.";
+ next;
+ mes "[Leo Handerson]";
+ mes "Right-click on the person";
+ mes "once and a small menu will appear.";
+ mes "From this menu, choose:";
+ mes "^800fffRequest a deal with^000000.";
+ next;
+ mes "[Leo Handerson]";
+ mes "Afterwards, that person will";
+ mes "choose whether or not to accept your request. If your trade request is accepted, the Trade Window will appear.";
+ next;
+ mes "[Leo Handerson]";
+ mes "To trade items, drag items from your Inventory Window ('^3355FFAlt^000000' + '^3355FFE^000000') and drop them into the left side of the Trade Window.";
+ next;
+ mes "[Leo Handerson]";
+ mes "Items given by the other person will appear in the right side of the Trade Window. Always check";
+ mes "if the other person is trading the items you have agreed to exchange.";
+ next;
+ mes "[Leo Handerson]";
+ mes "To trade Zeny, you can enter the amount of Zeny you want to trade. After placing items or Zeny into the Trade Window, press the 'OK' button at the bottom of the Window to confirm the trade.";
+ next;
+ mes "[Leo Handerson]";
+ mes "Once the trade is confirmed,";
+ mes "press the 'Trade' button to finish the trade. If either of the traders do not press the 'OK' button, the trade cannot be completed.";
+ next;
+ mes "[Leo Handerson]";
+ mes "If either of the traders presses the 'Cancel' button to the right of the window, the trade will be cancelled.";
+ next;
+ break;
+ case 2:
+ mes "[Leo Handerson]";
+ mes "Now, let me explain";
+ mes "about the Party System.";
+ next;
+ mes "[Leo Handerson]";
+ mes "The Party system allows";
+ mes "you to organize a small group with people in order to cooperatively hunt monsters, or just to have fun together.";
+ next;
+ mes "[Leo Handerson]";
+ mes "You can organize";
+ mes "a party by typing";
+ mes "the command:";
+ mes "^4F4FFF//organize ''Party Name''^000000";
+ mes "in your Chat Window.";
+ next;
+ mes "[Leo Handerson]";
+ mes "Of course, you";
+ mes "must be at least";
+ mes "^4d4dffBasic Skill Level 7^000000";
+ mes "or above to use the Party System.";
+ next;
+ mes "[Leo Handerson]";
+ mes "I could explain more about";
+ mes "the distribution of items or the distribution of experience which party members have gained together, but it's that you try that out on your own later on.";
+ next;
+ mes "[Leo Handerson]";
+ mes "That's all for";
+ mes "the Party System~";
+ mes "An adorable Novice";
+ mes "like you should pick";
+ mes "on this really quickly~";
+ emotion e_kis;
+ next;
+ break;
+ case 3:
+ mes "[Leo Handerson]";
+ mes "When you have";
+ mes "^4D4DFFLevel 4 Basic Skill^000000";
+ mes "or above, you can open your own Chat Room. You can either click";
+ mes "the ^3355FFchat^000000 button in the Basic Info Window or just press '^3355FFAlt^000000' + '^3355FFC^000000.'";
+ next;
+ mes "[Leo Handerson]";
+ mes "Once you open a Chat Room,";
+ mes "you can check the chat room members' information by right-clicking on a character name.";
+ next;
+ mes "[Leo Handerson]";
+ mes "Also you can register that character as your friend in the same way. If you are the master";
+ mes "of the room, you can change";
+ mes "the room setup.";
+ next;
+ mes "[Leo Handerson]";
+ mes "While in the Chat Room,";
+ mes "you cannot hear any chat from outside of the Chat Room. Please remember that, okay?";
+ next;
+ break;
+ case 4:
+ mes "[Leo Handerson]";
+ mes "Kafra Employees of the";
+ mes "Kafra Corporation are scattered throughout the world, providing their convenient services and Storage.";
+ next;
+ mes "[Leo Handerson]";
+ mes "In fact, there's a Kafra Employee just outside of this room. Talk to her, and she'll be more than happy to fully explain Kafra's Services.";
+ next;
+ mes "[Leo Handerson]";
+ mes "Anyway, you are";
+ mes "allowed to use your";
+ mes "^4d4dffpersonal Kafra Storage^000000";
+ mes "at ^4D4DFFBasic Skill Level 6^000000 or above.";
+ next;
+ mes "[Leo Handerson]";
+ mes "When you carry too many items with you, your weight becomes too heavy and you won't be able to restore HP or SP by resting, or even fight monsters! So store what you don't need into Kafra Storage.";
+ next;
+ break;
+ case 5:
+ mes "[Leo Handerson]";
+ mes "Oh, do you?";
+ mes "As I expected,";
+ mes "you're as smart";
+ mes "as you are cute~!";
+ mes "I, Leo, am very impressed.";
+ next;
+ set .@end,1;
+ }
+ if (.@end) break;
+ }
+ mes "[Leo Handerson]";
+ mes "Do you wish to";
+ mes "learn more about";
+ mes "a different subject?";
+ next;
+ break;
+ case 3:
+ mes "[Leo Handerson]";
+ mes "^4d4dffEmoticons^000000 are commonly used";
+ mes "online for ^4D4DFFdisplaying your feelings^000000. It's a fun way of communicating!";
+ next;
+ mes "[Leo Handerson]";
+ mes "You must first be at";
+ mes "^4D4DFFBasic Skill Level 2^000000";
+ mes "or above to use emoticons.";
+ next;
+ mes "[Leo Handerson]";
+ mes "You can check the";
+ mes "Emotion icon List";
+ mes "('^3355FFAlt^000000' + '^3355FFL^000000') and click each icon to see the command to display";
+ mes "the emoticon.";
+ next;
+ mes "[Leo Handerson]";
+ mes "You can also register";
+ mes "emoticons into your Shortcut List ('^3355FFAlt^000000' + '^3355FFM^000000') so you can just use a Shortcut to use an emoticon. This is also fully explained on our official website as well.";
+ next;
+ mes "[Leo Handerson]";
+ mes "Ah~ I must say,";
+ mes "the honest expression";
+ mes "of one's feelings is essential";
+ mes "for a relationship.";
+ next;
+ mes "[Leo Handerson]";
+ mes "You can play";
+ mes "Rock, Paper, Scissors";
+ mes "by pressing the '^4D4DFFCtrl^000000' and the '^4D4DFF - ^000000,' '^4D4DFF = ^000000,' or '^4D4DFF \\ ^000000' keys.";
+ next;
+ mes "[Leo Handerson]";
+ mes "Of course, you can type ^4D4DFF//bawi^000000, ^4D4DFF//bo^000000 and ^4D4DFF//gawi^000000, which mean rock, paper, scissors in Korean, into your Chat Window.";
+ next;
+ mes "[Leo Handerson]";
+ mes "To check out the commands for even more emoticons, type the command ^4d4dff//emotion^000000 into your Chat Window to see the list~";
+ emotion e_lv;
+ next;
+ break;
+ case 4:
+ mes "[Leo Handerson]";
+ mes "I see...";
+ mes "You don't need me";
+ mes "anymore! Oh! They";
+ mes "grow up so fast";
+ mes "nowadays!";
+ close;
+ }
+ }
+}
+
+new_1-2,121,101,2 script Guide Soldier#nv1 105,{
+ mes "[Guide Soldier]";
+ mes "We Guide Soldiers provide location information at the entrance of every town. You can easily find us by our special uniforms.";
+ next;
+ mes "[Guide Soldier]";
+ mes "Whenever you visit a town";
+ mes "for the first time, we would like to recommend that you check the locations of notable places in town with us.";
+ next;
+ mes "[Guide Soldier]";
+ mes "If you wish to take an Informative class, please walk around and speak to the various tutors in these Training Grounds. Have a good day.";
+ close;
+}
+
+new_1-2,17,182,5 script Helper#nv 84,{
+ if (nov_2nd_cos < 11) {
+ mes "[Elmeen]";
+ mes "Congratulations!";
+ mes "You have passed the 1st training course! Wow~ I guess now you understand a little bit more about Ragnarok Online.";
+ next;
+ mes "[Elmeen]";
+ mes "You will learn the fundamentals of actual battle through this class. If you did your best through the Informative class, you are supposed to have been given some starting equipment.";
+ next;
+ mes "[Elmeen]";
+ mes "Please check your";
+ mes "equipment before you engaging in battle. Are you sure you've equipped all of your equipment, your weapons and armor?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Elmeen]";
+ mes "First, you place the cursor on a monster. When you left click, you will hit the monster once.";
+ next;
+ mes "[Elmeen]";
+ mes "If you are too lazy to keep left clicking, left click on the monster while holding the '^4D4DFFCtrl^000000' key. You will then continue attacking the monster until one of you is dead, or you run away.";
+ next;
+ mes "[Elmeen]";
+ mes "You can also just hold down the left mouse button while the cursor is on the monster. Still, there are some people who are even too lazy to use the '^4D4DFFCtrl^000000' key every time they attack a monster.";
+ next;
+ mes "[Elmeen]";
+ mes "If you're one of them, type the command ^E79E29//nc^000000 in your Chat Window. Then, when you left click";
+ mes "a monster, you'll just continuously attack it!";
+ next;
+ mes "[Elmeen]";
+ mes "If a monster happens to have the Undead property, you can use the 'Heal' skill to attack if you happen to have it.";
+ next;
+ mes "[Elmeen]";
+ mes "When you use the Heal skill while holding down the '^4D4DFFShift^000000' key, you can target the monster with the Heal skill to damage it.";
+ next;
+ mes "[Elmeen]";
+ mes "Of course for this skill, we do have a very convenient option for lazy people too. Type the command ^E79E29//ns^000000 in your Chat Window.";
+ next;
+ mes "[Elmeen]";
+ mes "This will allow you to attack monsters by using the Heal skill without holding the shift key. Handy, huh?";
+ next;
+ mes "[Elmeen]";
+ mes "Do you understand these battle commands? Now, I will teaching you about monster behaviors and properties, experience gained through battle, and items you can earn from dead monsters.";
+ next;
+ mes "[Elmeen]";
+ mes "Field Combat Training can be actually be pretty dangerous for new adventurers. Let me give you";
+ mes "a little more strength through the power of my magic.";
+ next;
+ mes "[Elmeen]";
+ mes "Haaaaaaa~!";
+ if (nov_2nd_cos < 1) {
+ if (BaseLevel == 1) {
+ set nov_2nd_cos,12;
+ getexp 9,0;
+ }
+ else if (BaseLevel == 2) {
+ set nov_2nd_cos,13;
+ getexp 16,0;
+ }
+ else if (BaseLevel == 3) {
+ set nov_2nd_cos,14;
+ getexp 25,0;
+ }
+ else if (BaseLevel == 4) {
+ set nov_2nd_cos,15;
+ getexp 36,0;
+ }
+ else if (BaseLevel == 5) {
+ set nov_2nd_cos,16;
+ getexp 77,0;
+ }
+ else if (BaseLevel == 6) {
+ set nov_2nd_cos,17;
+ getexp 112,0;
+ }
+ else if (BaseLevel >= 7) {
+ set nov_2nd_cos,18;
+ getexp 153,0;
+ }
+ }
+ next;
+ mes "[Elmeen]";
+ mes "Which subject";
+ mes "should I cover";
+ mes "first for you?";
+ next;
+ while(1) {
+ switch(select("Monsters:Experience:Items:Quit.")) {
+ case 1:
+ mes "[Elmeen]";
+ mes "There are many aggressive monsters that will attack you first before you even approach them. ";
+ next;
+ mes "[Elmeen]";
+ mes "There are also a few monsters that will cooperate with others of their kind. Attack one of them, and the whole pack of them will swarm around you, seeking revenge.";
+ next;
+ mes "[Elmeen]";
+ mes "Every monster can be specified by their types, sizes and properties. For example, there are Demi-human, Brute, Holy and Demon property monsters out there.";
+ next;
+ mes "[Elmeen]";
+ mes "When you're aware of what property a monster is, you can use that knowledge to help you in battle.";
+ next;
+ mes "[Elmeen]";
+ mes "If you manage to get cards for that increase your damage upon certain monster properties, or reduce damage from specific monster properties, you'll have a much easier time in battle.";
+ next;
+ mes "[Elmeen]";
+ mes "Monsters are separated by their size: small, medium and large. There are a few cards that allow you to do more damage to";
+ mes "a specific monster size.";
+ next;
+ mes "[Elmeen]";
+ mes "Also, each weapon has its strengths and weaknesses. The size of the weapon will affect the damage it will deal to monsters.";
+ next;
+ mes "[Elmeen]";
+ mes "For example, Dagger class weapons do 100 % damage on small sized monsters but only inflict 50 % on large monsters.";
+ next;
+ mes "[Elmeen]";
+ mes "Common monster properties include Water, Wind, Earth, Fire, Shadow, Ghost and Holy. If you attack a monster with an opposing property, you can inflict additional damage~";
+ next;
+ mes "[Elmeen]";
+ mes "But if you attack a monster with";
+ mes "a skill or weapon that inflicts damage of the same property as the monster, the damage will be greatly reduced, or completely negated. You might even heal the monster!";
+ next;
+ mes "[Elmeen]";
+ mes "In the case of Ghost property monsters, normal weapons cannot do any harm. However, a weapon with any other property will be able to deal out some damage.";
+ next;
+ break;
+ case 2:
+ mes "[Elmeen]";
+ mes "Basically, a character who deals the most damage on a monster receives the most experience points from the monster.";
+ next;
+ mes "[Elmeen]";
+ mes "Therefore, you receive a certain percentage of experience points in proportion to the damage you've inflicted on the monster, compared to its total HP.";
+ next;
+ mes "[Elmeen]";
+ mes "Let's say, there is a character named 'Z.' Z does 65 damage on a monster that has 100 total HP and gives 1000 experience points when it's dead. So, Z will receive 650 experience points.";
+ next;
+ mes "[Elmeen]";
+ mes "However, this rule applies differently following certain situations.";
+ next;
+ mes "[Elmeen]";
+ mes "If there are two people who both did 65 damage on the same monster, the experience points that each will receive differs, depending on the monster's remaining HP.";
+ next;
+ mes "[Elmeen]";
+ mes "For instance, somebody does damage to a monster while you're already hitting it, and he did the same amount of damage you did.";
+ next;
+ mes "[Elmeen]";
+ mes "In this case, you will receive 2//3 of the whole experience points that monster can give you, the other one will receive 1//3.";
+ next;
+ mes "[Elmeen]";
+ mes "However, attacking a monster that somebody already started to hit is not suggested in Ragnarok Online. That action is regarded as ill-mannered behavior.";
+ next;
+ mes "[Elmeen]";
+ mes "For party play, the party master can set the experience distribution to the equally share option.";
+ next;
+ mes "[Elmeen]";
+ mes "With this method, party members can share their experience according to the their character levels, and the number of members in the party.";
+ next;
+ mes "[Elmeen]";
+ mes "Also, there is the experience benefit for party play which allows you to gain more experience points than playing solo. You can take advantage of this system for faster leveling.";
+ next;
+ break;
+ case 3:
+ mes "[Elmeen]";
+ mes "When you kill monsters,";
+ mes "you can obtain items by chance. Furthermore, certain characters can use the 'Steal' skill in order to steal items from monsters.";
+ next;
+ mes "[Elmeen]";
+ mes "Don't you worry about the Steal skill causing you to not find any items after you kill them. Using the Steal skill does not at all affect the item drop rate for monsters once they're killed.";
+ next;
+ mes "[Elmeen]";
+ mes "When a group of people kill a monster, the person who did the most damage receives priority in picking up item drops.";
+ next;
+ break;
+ case 4:
+ mes "[Elmeen]";
+ mes "Feel free to";
+ mes "ask me if you";
+ mes "have any questions.";
+ close;
+ }
+ }
+ case 2:
+ mes "[Elmeen]";
+ mes "Please take care of the equipment you've received through the training courses. Once you lose the equipment, you can never get them back.";
+ close;
+ }
+ }
+ else {
+ mes "[Elmeen]";
+ mes "Which subject";
+ mes "shall I expain?";
+ next;
+ while(1) {
+ switch(select("Monsters:Experience:Items:Quit.")) {
+ case 1:
+ mes "[Elmeen]";
+ mes "There are many aggressive monsters that will attack you first before you even approach them. ";
+ next;
+ mes "[Elmeen]";
+ mes "There are also a few monsters that will cooperate with others of their kind. Attack one of them, and the whole pack of them will swarm around you, seeking revenge.";
+ next;
+ mes "[Elmeen]";
+ mes "Every monster can be specified by their types, sizes and properties. For example, there are Demi-human, Brute, Holy and Demon property monsters out there.";
+ next;
+ mes "[Elmeen]";
+ mes "When you're aware of what property a monster is, you can use that knowledge to help you in battle.";
+ next;
+ mes "[Elmeen]";
+ mes "If you manage to get cards for that increase your damage upon certain monster properties, or reduce damage from specific monster properties, you'll have a much easier time in battle.";
+ next;
+ mes "[Elmeen]";
+ mes "Monsters are separated by their size: small, medium and large. There are a few cards that allow you to do more damage to a specific monster size.";
+ next;
+ mes "[Elmeen]";
+ mes "Also, each weapon has its strengths and weaknesses. The size of the weapon will affect the damage it will deal to monsters.";
+ next;
+ mes "[Elmeen]";
+ mes "For example, Dagger class weapons do 100 % damage on small sized monsters but only inflict 50 % on large monsters.";
+ next;
+ mes "[Elmeen]";
+ mes "Common monster properties include Water, Wind, Earth, Fire, Shadow, Ghost and Holy. If you attack a monster with an opposing property, you can inflict additional damage~";
+ next;
+ mes "[Elmeen]";
+ mes "But if you attack a monster with";
+ mes "a skill or weapon that inflicts damage of the same property as the monster, the damage will be greatly reduced, or completely negated. You might even heal the monster!";
+ next;
+ mes "[Elmeen]";
+ mes "In the case of Ghost property monsters, normal weapons cannot do any harm. However, a weapon with any other property will be able to deal out some damage.";
+ next;
+ break;
+ case 2:
+ mes "[Elmeen]";
+ mes "Basically, a character who deals the most damage on a monster receives the most experience points from the monster.";
+ next;
+ mes "[Elmeen]";
+ mes "Therefore, you receive a certain percentage of experience points in proportion to the damage you've inflicted on the monster, compared to its total HP.";
+ next;
+ mes "[Elmeen]";
+ mes "Let's say, there is a character named 'Z.' Z does 65 damage on a monster that has 100 total HP and gives 1000 experience points when it's dead. So, Z will receive 650 experience points.";
+ next;
+ mes "[Elmeen]";
+ mes "However, this rule applies differently following certain situations.";
+ next;
+ mes "[Elmeen]";
+ mes "If there are two people who both did 65 damage on the same monster, the experience points that each will receive differs, depending on the monster's remaining HP.";
+ next;
+ mes "[Elmeen]";
+ mes "For instance, somebody does damage to a monster while you're already hitting it, and he did the same amount of damage you did.";
+ next;
+ mes "[Elmeen]";
+ mes "In this case, you will receive 2//3 of the whole experience points that monster can give you, the other one will receive 1//3.";
+ next;
+ mes "[Elmeen]";
+ mes "However, attacking a monster that somebody already started to hit is not suggested in Ragnarok Online. That action is regarded as ill-mannered behavior.";
+ next;
+ mes "[Elmeen]";
+ mes "For party play, the party master can set the experience distribution to the equally share option.";
+ next;
+ mes "[Elmeen]";
+ mes "With this method, party members can share their experience according to the their character levels, and the number of members in the party.";
+ next;
+ mes "[Elmeen]";
+ mes "Also, there is the experience benefit for party play which allows you to gain more experience points than playing solo. You can take advantage of this system for faster leveling.";
+ next;
+ break;
+ case 3:
+ mes "[Elmeen]";
+ mes "When you kill monsters,";
+ mes "you can obtain items by chance. Furthermore, certain characters can use the 'Steal' skill in order to steal items from monsters.";
+ next;
+ mes "[Elmeen]";
+ mes "Don't you worry about the Steal skill causing you to not find any items after you kill them. Using the Steal skill does not at all affect the item drop rate for monsters once they're killed.";
+ next;
+ mes "[Elmeen]";
+ mes "When a group of people kill a monster, the person who did the most damage receives priority in picking up item drops.";
+ next;
+ break;
+ case 4:
+ mes "[Elmeen]";
+ mes "Feel free to";
+ mes "ask me if you";
+ mes "have any questions.";
+ close;
+ }
+ }
+ }
+}
+
+new_1-2,38,182,3 script Entrance Guard#nv 92,{
+ if (nov_2nd_cos == 0) {
+ mes "[Muriel]";
+ mes "I'm sorry, but I can't let anybody who hasn't been instructed on fighting enter the Field Combat Training Grounds.";
+ next;
+ mes "[Muriel]";
+ mes "Why don't you speak to the Helper to the left side of this room first, so that you can receive some battle instruction?";
+ close;
+ }
+ else if (nov_2nd_cos > 0 && nov_2nd_cos < 21) {
+ mes "[Muriel]";
+ mes "Field Combat Training is an actual fight class where you can gain basic fighting skills that you can use to defend yourself in Rune-Midgard.";
+ next;
+ mes "[Muriel]";
+ mes "Please kill as many monsters as you can to increase your base level at least 2 times.";
+ next;
+ mes "[Muriel]";
+ mes "Gaining 2 base levels is required to complete your Field Combat Training. Although the monsters are all weak and easy to kill, I hope you will be careful.";
+ next;
+ mes "[Muriel]";
+ mes "Do you wish";
+ mes "to take the test";
+ mes "right away?";
+ next;
+ switch(select("Yes:I need more time.")) {
+ case 1:
+ mes "[Muriel]";
+ mes "Please make sure you";
+ mes "talk to the staff at the North after you increase your base level by 2 levels through battle.";
+ next;
+ mes "[Muriel]";
+ mes "I'm going to give you some useful supplies, so please use them in case of an emergency.";
+ if (nov_2nd_cos == 12) {
+ set nov_2nd_cos,22;
+ }
+ else if (nov_2nd_cos == 13) {
+ set nov_2nd_cos,23;
+ }
+ else if (nov_2nd_cos == 14) {
+ set nov_2nd_cos,24;
+ }
+ else if (nov_2nd_cos == 15) {
+ set nov_2nd_cos,25;
+ }
+ else if (nov_2nd_cos == 16) {
+ set nov_2nd_cos,26;
+ }
+ else if (nov_2nd_cos == 17) {
+ set nov_2nd_cos,27;
+ }
+ else if (nov_2nd_cos == 18) {
+ set nov_2nd_cos,28;
+ }
+ else {
+ set nov_2nd_cos,29;
+ }
+ getitem 602,1; //Wing_Of_Butterfly
+ getitem 601,9; //Wing_Of_Fly
+ getitem 1243,1; //Novice_Knife
+ getitem 2112,1; //Novice_Guard
+ getitem 611,2; //Spectacles
+ getitem 569,300; //Novice_Potion
+ close2;
+ savepoint "new_1-2",23,188;
+ warp "new_1-3",96,21;
+ end;
+ case 2:
+ mes "[Muriel]";
+ mes "No problem.";
+ mes "If you're not sure if you can pass the test or not, why don't you go talk to the Helper to the left one more time? Please come back";
+ mes "when you're ready.";
+ close;
+ }
+ close;
+ }
+ else if ((nov_2nd_cos > 20) && (nov_2nd_cos < 31)) {
+ mes "[Muriel]";
+ mes "Oh well, I told you to be careful. Cheer up! It's not a big deal.";
+ mes " ";
+ mes "Failure teaches success.";
+ mes "You have many chances";
+ mes "to re-take the test.";
+ next;
+ mes "[Muriel]";
+ mes "Do you wish";
+ mes "to try again?";
+ next;
+ switch(select("Yes.:Can I have more time?")) {
+ case 1:
+ mes "[Muriel]";
+ mes "I will give you";
+ mes "some supplies again.";
+ mes "Please be careful!";
+ if (nov_2nd_cos == 22) {
+ set nov_2nd_cos,33;
+ getexp 16,0;
+ }
+ else if (nov_2nd_cos == 23) {
+ set nov_2nd_cos,34;
+ getexp 25,0;
+ }
+ else if (nov_2nd_cos == 24) {
+ set nov_2nd_cos,35;
+ getexp 36,0;
+ }
+ else if (nov_2nd_cos == 25) {
+ set nov_2nd_cos,36;
+ getexp 77,0;
+ }
+ else if (nov_2nd_cos == 26) {
+ set nov_2nd_cos,37;
+ getexp 112,0;
+ }
+ else if (nov_2nd_cos == 27) {
+ set nov_2nd_cos,38;
+ getexp 153,0;
+ }
+ else if (nov_2nd_cos == 28) {
+ set nov_2nd_cos,39;
+ getexp 200,0;
+ }
+ else if (nov_2nd_cos == 29) {
+ set nov_2nd_cos,40;
+ getexp 200,0;
+ }
+ percentheal 100,0;
+ getitem 569,50; //Novice_Potion
+ close2;
+ warp "new_1-3",96,21;
+ end;
+ case 2:
+ mes "[Muriel]";
+ mes "No problem.";
+ mes "If you're not sure if you can pass the test or not, why don't you go talk to the Helper to the left one more time? Please come back";
+ mes "when you're ready.";
+ close;
+ }
+ }
+ else if (nov_2nd_cos > 30) {
+ mes "[Muriel]";
+ mes "Oh well, I told you to be careful. Cheer up! It's not a big deal.";
+ mes " ";
+ mes "Failure teaches success.";
+ mes "You have many chances to re-take the test.";
+ next;
+ mes "[Muriel]";
+ mes "Do you wish to try again?";
+ next;
+ switch(select("Yes:Can I have more time?")) {
+ case 1:
+ mes "[Muriel]";
+ mes "I will restore";
+ mes "your HP. Please";
+ mes "be careful!";
+ percentheal 100,0;
+ close2;
+ warp "new_1-3",96,21;
+ end;
+ case 2:
+ mes "[Muriel]";
+ mes "No problem.";
+ mes "If you're not sure if you can pass the test or not, why don't you go talk to the Helper to the left one more time? Please come back when you're ready.";
+ close;
+ }
+ }
+}
+
+//Teleport NPC
+new_1-3,95,30,4 script Trainer#nv1::NovHoffman 84,{
+ mes "[Hoffman]";
+ mes "Hey there~";
+ mes "I'm here to provide";
+ mes "you with a little instruction.";
+ next;
+ mes "[Hoffman]";
+ mes "These monsters are all weak";
+ mes "and easy to kill. But be careful,";
+ mes "a lot of them are aggressive";
+ mes "and out for blood!";
+ next;
+ mes "[Hoffman]";
+ mes "If you think monsters here are too weak for you, I can send you to another training ground where the monsters are stronger than the ones over here.";
+ next;
+ mes "[Hoffman]";
+ mes "But don't worry so much,";
+ mes "They're not impossible for";
+ mes "Novices. So would you";
+ mes "like to try?";
+ next;
+ switch(select("I do want more of a challenge~:I wanna fight tough monsters!:Cancel")) {
+ case 1:
+ mes "[Hoffman]";
+ mes "I see, then let me guide";
+ mes "you to a training ground that has stronger monsters. May God be with you...";
+ next;
+ if (strnpcinfo(2) == "nv1") {
+ if (rand(2)) {
+ warp "new_2-3",96,21;
+ }
+ else {
+ warp "new_3-3",96,21;
+ }
+ }
+ else {
+ warp "new_1-3",96,21;
+ }
+ end;
+ case 2:
+ mes "[Hoffman]";
+ mes "You must like ";
+ mes "rough challenges,";
+ mes "don't you? Please";
+ mes "be careful, it can get";
+ mes "pretty difficult...";
+ next;
+ if (strnpcinfo(2) == "nv1" || strnpcinfo(2) == "nv2" || strnpcinfo(2) == "nv3") {
+ if (rand(2)) {
+ warp "new_4-3",96,21;
+ }
+ else {
+ warp "new_5-3",96,21;
+ }
+ }
+ else {
+ if (rand(2)) {
+ warp "new_2-3",96,21;
+ }
+ else {
+ warp "new_3-3",96,21;
+ }
+ }
+ end;
+ case 3:
+ mes "[Hoffman]";
+ mes "Hmm...?";
+ mes "Are you worried about going";
+ mes "to more challenging places? That's understandable, since you're still a new adventurer. Good luck~";
+ close;
+ }
+}
+
+new_2-3,95,30,4 duplicate(NovHoffman) Trainer#nv2 84
+new_3-3,95,30,4 duplicate(NovHoffman) Trainer#nv3 84
+new_4-3,95,30,4 duplicate(NovHoffman) Trainer#nv4 84
+new_5-3,95,30,4 duplicate(NovHoffman) Trainer#nv5 84
+
+new_1-3,96,174,3 script Test Examiner#nv1::NovKeyman 85,{
+ mes "[Keyman]";
+ mes "Good!!";
+ mes "Now you know how to fight";
+ mes "against monsters, don't you?";
+ mes "Would you like to move";
+ mes "to the next course?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Keyman]";
+ mes "I hope you will be";
+ mes "a good fighter in the";
+ mes "future. Bon voyage.";
+ close2;
+ warp "new_1-4",99,10;
+ return
+ end;
+ case 2:
+ mes "[Keyman]";
+ mes "I see...";
+ mes "It can't hurt to practice until you're more comfortable with the basics of battle.";
+ close;
+ }
+}
+
+new_2-3,96,174,3 duplicate(NovKeyman) Test Examiner#nv2 85
+new_3-3,96,174,3 duplicate(NovKeyman) Test Examiner#nv3 85
+new_4-3,96,174,3 duplicate(NovKeyman) Test Examiner#nv4 85
+new_5-3,96,174,3 duplicate(NovKeyman) Test Examiner#nv5 85
+
+//Potato Merchant
+new_1-2,28,185,4 shop Potato Merchant 90,516:15
+
+new_1-4,100,29,1 script Hanson#nv 46,{
+ if (checkweight(909,400) == 0) {
+ mes "[Hanson]";
+ mes "All of the items you are carrying must be quite a burden. Where did you get so much things? Please lighten your weight by getting rid of things you don't need.";
+ close;
+ }
+ if (nov_3_swordman == 20) {
+ mes "[Hanson]";
+ mes "Good day,";
+ mes "^A62A2A" + strcharinfo(0) + "'^000000.";
+ mes "You've made quite";
+ mes "an effort to come here.";
+ next;
+ mes "[Hanson]";
+ mes "This final test in the Training Grounds is a personality test,";
+ mes "but it's not a mandatory course.";
+ next;
+ mes "[Hanson]";
+ mes "However, there are some benefits";
+ mes "to taking this test. When you take this test, you'll receive many health items which will help you when you join the Ragnarok Online community.";
+ next;
+ mes "[Hanson]";
+ mes "Secondly, after you finish the course we will suggest the job class that seems best suited to your personality and teleport you to a town where you can change into the job we suggested.";
+ next;
+ mes "[Hanson]";
+ mes "Now...";
+ mes "What would";
+ mes "you like to do?";
+ next;
+ mes "[Hanson]";
+ mes "Do you wish to start Ragnarok Online immediately, or take this personality test course first?";
+ next;
+ switch(select("I'll take the course.:Let me start Ragnarok Online please.")) {
+ case 1:
+ mes "[Hanson]";
+ mes "Excellent choice!";
+ mes "You're supposed to take every training course if you really want to be a well-prepared player!";
+ next;
+ mes "[Hanson]";
+ mes "Alright, let me start the 1st personality test. Please relax";
+ mes "and take it easy.";
+ next;
+ mes "[Hanson]";
+ mes "Remember, this test is only to check your personality, there is no set standard for right and wrong. Now! Let's begin the test!";
+ next;
+ mes "[Hanson]";
+ mes "Please choose the word";
+ mes "that best matches you from";
+ mes "among the following.";
+ next;
+ switch(select("Study:Exercise:Public service:Violence")) {
+ case 1:
+ set .@magician_p,.@magician_p+1;
+ break;
+ case 2:
+ set .@thief_p,.@thief_p+1;
+ set .@swordman_p,.@swordman_p+1;
+ break;
+ case 3:
+ set .@acolyte_p,.@acolyte_p+1;
+ break;
+ case 4:
+ set .@thief_p,.@thief_p+1;
+ break;
+ }
+ switch(select("Change:Conserve")) {
+ case 1:
+ set .@magician_p,.@magician_p+1;
+ break;
+ case 2:
+ set .@acolyte_p,.@acolyte_p+1;
+ break;
+ }
+ switch(select("Consumer:Seller:Producer")) {
+ case 1:
+ set .@swordman_p,.@swordman_p+1;
+ set .@thief_p,.@thief_p+1;
+ set .@acolyte_p,.@acolyte_p+1;
+ break;
+ case 2:
+ set .@merchant_p,.@merchant_p+1;
+ break;
+ case 3:
+ set .@magician_p,.@magician_p+1;
+ break;
+ }
+ switch(select("Celebrity:Prudence")) {
+ case 1:
+ set .@thief_p,.@thief_p+1;
+ break;
+ case 2:
+ set .@archer_p,.@archer_p+1;
+ break;
+ }
+ switch(select("Theory:Experience")) {
+ case 1:
+ set .@magician_p,.@magician_p+1;
+ break;
+ case 2:
+ set .@swordman_p,.@swordman_p+1;
+ break;
+ }
+ switch(select("The Past:Reality:The Future")) {
+ case 1:
+ set .@archer_p,.@archer_p+1;
+ break;
+ case 2:
+ set .@merchant_p,.@merchant_p+1;
+ set .@thief_p,.@thief_p+1;
+ break;
+ case 3:
+ set .@magician_p,.@magician_p+1;
+ break;
+ }
+ mes "[Hanson]";
+ mes "Please answer";
+ mes "'Yes' or 'No' to";
+ mes "the following questions.";
+ next;
+ mes "[Hanson]";
+ mes "I'd rather die";
+ mes "than live submissively.";
+ next;
+ switch(select("Yes.:No.")) {
+ case 1:
+ set .@swordman_p,.@swordman_p+1;
+ break;
+ case 2:
+ set .@thief_p,.@thief_p+1;
+ set .@merchant_p,.@merchant_p+1;
+ break;
+ }
+ mes "[Hanson]";
+ mes "You are often upset";
+ mes "to see someone better";
+ mes "than you.";
+ next;
+ switch(select("Yes.:No.")) {
+ case 1:
+ set .@merchant_p,.@merchant_p+1;
+ break;
+ case 2:
+ set .@acolyte_p,.@acolyte_p+1;
+ break;
+ }
+ mes "[Hanson]";
+ mes "You don't mind";
+ mes "exploring dangerous";
+ mes "places.";
+ next;
+ switch(select("Yes.:No.")) {
+ case 1:
+ set .@swordman_p,.@swordman_p+1;
+ break;
+ case 2:
+ set .@magician_p,.@magician_p+1;
+ break;
+ }
+ mes "[Hanson]";
+ mes "You are";
+ mes "a leader-type";
+ mes "person.";
+ next;
+ switch(select("Yes.:No.")) {
+ case 1:
+ set .@swordman_p,.@swordman_p+1;
+ break;
+ case 2:
+ set .@archer_p,.@archer_p+1;
+ break;
+ }
+ mes "[Hanson]";
+ mes "While exploring";
+ mes "a dungeon, you run";
+ mes "into a dead end.";
+ next;
+ mes "[Hanson]";
+ mes "However, there is a sign that reads 'Do Not Push' next to a stone that looks strangely like a button on the wall next to you.";
+ next;
+ mes "[Hanson]";
+ mes "Do you give in";
+ mes "to the urge to push";
+ mes "this button?";
+ next;
+ switch(select("Yes.:No.")) {
+ case 1:
+ set .@thief_p,.@thief_p+1;
+ break;
+ case 2:
+ set .@swordman_p,.@swordman_p+1;
+ break;
+ }
+ mes "[Hanson]";
+ mes "You often see";
+ mes "things that don't exist.";
+ next;
+ switch(select("Yes.:No.")) {
+ case 1:
+ set .@acolyte_p,.@acolyte_p+1;
+ break;
+ case 2:
+ set .@magician_p,.@magician_p+1;
+ break;
+ }
+ mes "[Hanson]";
+ mes "If you fell off";
+ mes "a cliff, you'd feel";
+ mes "like you were flying.";
+ next;
+ switch(select("Yes.:No.")) {
+ case 1:
+ set .@acolyte_p,.@acolyte_p+1;
+ break;
+ case 2:
+ set .@magician_p,.@magician_p+1;
+ break;
+ }
+ mes "[Hanson]";
+ mes "Money talks.";
+ next;
+ switch(select("Yes.:No.")) {
+ case 1:
+ set .@merchant_p,.@merchant_p+1;
+ break;
+ case 2:
+ set .@archer_p,.@archer_p+1;
+ break;
+ }
+ mes "[Hanson]";
+ mes "Now, let me give you some different questions. Please relax and take it easy, and choose the answer that suits you best.";
+ next;
+ mes "[Hanson]";
+ mes "As you check";
+ mes "your tight schedule....";
+ next;
+ switch(select("You feel like a robot.:You are proud and satisfied.:Schedule? What schedule?")) {
+ case 1:
+ set .@swordman_p,.@swordman_p+1;
+ set .@thief_p,.@thief_p+1;
+ break;
+ case 2:
+ set .@acolyte_p,.@acolyte_p+1;
+ set .@magician_p,.@magician_p+1;
+ break;
+ case 3:
+ set .@archer_p,.@archer_p+1;
+ set .@merchant_p,.@merchant_p+1;
+ break;
+ }
+ mes "[Hanson]";
+ mes "As you go window shopping,";
+ mes "you find a really interesting item in a store, debating whether or not to buy it. Before making";
+ mes "a purchase, the first thing";
+ mes "you do is...";
+ next;
+ switch(select("Consider if you need it.:Check the price.:Don't think twice, just buy it!")) {
+ case 1:
+ set .@archer_p,.@archer_p+1;
+ break;
+ case 2:
+ set .@merchant_p,.@merchant_p+1;
+ break;
+ case 3:
+ set .@thief_p,.@thief_p+1;
+ break;
+ }
+ mes "[Hanson]";
+ mes "Fill in the blank:";
+ mes "You ^3355FF_____^000000";
+ mes "competing with other people...";
+ mes "";
+ next;
+ switch(select("don't mind...:don't like...:don't care about...")) {
+ case 1:
+ set .@merchant_p,.@merchant_p+1;
+ break;
+ case 2:
+ set .@thief_p,.@thief_p+1;
+ break;
+ case 3:
+ set .@acolyte_p,.@acolyte_p+1;
+ set .@swordman_p,.@swordman_p+1;
+ break;
+ }
+ mes "[Hanson]";
+ mes "You're responsible for a task that requires you to cooperate with many people. If you handle it alone, it will take a lot of effort and time.";
+ next;
+ mes "[Hanson]";
+ mes "But if you cooperate with others, it will be simple and an enjoyable task. You would... ";
+ next;
+ switch(select("Handle it myself, even if it's hard.:Ask friends to help.")) {
+ case 1:
+ set .@magician_p,.@magician_p+1;
+ break;
+ case 2:
+ set .@merchant_p,.@merchant_p+1;
+ break;
+ }
+ mes "[Hanson]";
+ mes "You happen to";
+ mes "find a girl who";
+ mes "fainted on the street.";
+ mes "What would you do?";
+ next;
+ switch(select("Carry her to a hospital.:Assess the situation before taking action.:Just ignore it.")) {
+ case 1:
+ set .@acolyte_p,.@acolyte_p+1;
+ break;
+ case 2:
+ set .@swordman_p,.@swordman_p+1;
+ set .@archer_p,.@archer_p+1;
+ break;
+ case 3:
+ set .@magician_p,.@magician_p+1;
+ set .@thief_p,.@thief_p+1;
+ set .@merchant_p,.@merchant_p+1;
+ break;
+ }
+ mes "[Hanson]";
+ mes "You happen to";
+ mes "pick up 'Clothing.'";
+ mes "What would you do?";
+ next;
+ switch(select("Check the brand.:Wonder who lost it.:Finder's keepers!:Leave it where it was.")) {
+ case 1:
+ set .@merchant_p,.@merchant_p+1;
+ break;
+ case 2:
+ set .@acolyte_p,.@acolyte_p+1;
+ break;
+ case 3:
+ set .@merchant_p,.@merchant_p+1;
+ set .@thief_p,.@thief_p+1;
+ break;
+ case 4:
+ set .@magician_p,.@magician_p+1;
+ break;
+ }
+ mes "[Hanson]";
+ mes "You happened to accidentally slip your tongue in the middle of a conversation. How do you cope with this situation?";
+ next;
+ switch(select("Pretend it's a joke.:Change the subject.:Analyze it.:Apologize honestly.")) {
+ case 1:
+ set .@thief_p,.@thief_p+1;
+ break;
+ case 2:
+ set .@swordman_p,.@swordman_p+1;
+ break;
+ case 3:
+ set .@magician_p,.@magician_p+1;
+ break;
+ case 4:
+ set .@acolyte_p,.@acolyte_p+1;
+ break;
+ }
+ mes "[Hanson]";
+ mes "You're on a trip with your beloved. Your significant other then asks you to buy a souvenir that's not particularly good. What do you do?";
+ next;
+ switch(select("Buy the item for her/him.:Say 'no.':Promise it for next time.")) {
+ case 1:
+ set .@swordman_p,.@swordman_p+1;
+ break;
+ case 2:
+ set .@merchant_p,.@merchant_p+1;
+ break;
+ case 3:
+ set .@thief_p,.@thief_p+1;
+ break;
+ }
+ mes "[Hanson]";
+ mes "Okay~! That's all for the test. You've finished all the Training Grounds courses. Congratulations!";
+ next;
+ mes "[Hanson]";
+ mes "I've prepared some items for you since you passed the personality test. Please take them, you've earned it.";
+ next;
+ //---------------------------------------------------------------------------------------------------------------------------------------------------
+ set nov_3_swordman,40;
+ getitem 501,4; //Red_Potion
+ getitem 503,2; //Yellow_Potion
+ getitem 506,2; //Green_Potion
+ //-------------------------------------------------------------------------------------------------------------------------------------------------
+ next;
+ mes "[Hanson]";
+ mes "Now, we will recommend a suitable job for you after analyzing the results of your personality test. Please wait a moment.";
+ next;
+ mes "[Hanson]";
+ mes "...";
+ next;
+ mes "[Hanson]";
+ mes "...";
+ mes "......";
+ next;
+ mes "[Hanson]";
+ mes "Here's the";
+ mes "final result";
+ mes "of your test.";
+ next;
+ if (.@swordman_p > .@magician_p) {
+ if (.@swordman_p > .@merchant_p) {
+ if (.@swordman_p > .@thief_p) {
+ if (.@swordman_p > .@archer_p) {
+ if (.@swordman_p > .@acolyte_p) {
+ set .@job_c,1;
+ }
+ else {
+ set .@job_c,6;
+ }
+ }
+ else {
+ if (.@archer_p > .@acolyte_p) {
+ set .@job_c,5;
+ }
+ else {
+ set .@job_c,6;
+ }
+ }
+ }
+ else {
+ if (.@thief_p > .@archer_p) {
+ if (.@thief_p > .@acolyte_p) {
+ set .@job_c,4;
+ }
+ else {
+ set .@job_c,6;
+ }
+ }
+ else {
+ if (.@archer_p > .@acolyte_p) {
+ set .@job_c,5;
+ }
+ else {
+ set .@job_c,6;
+ }
+ }
+ }
+ }
+ else {
+ if (.@merchant_p > .@thief_p) {
+ if (.@merchant_p > .@archer_p) {
+ if (.@merchant_p > .@acolyte_p) {
+ set .@job_c,3;
+ }
+ else {
+ set .@job_c,6;
+ }
+ }
+ else {
+ if (.@archer_p > .@acolyte_p) {
+ set .@job_c,5;
+ }
+ else {
+ set .@job_c,6;
+ }
+ }
+ }
+ else {
+ if (.@thief_p > .@archer_p) {
+ if (.@thief_p > .@acolyte_p) {
+ set .@job_c,4;
+ }
+ else {
+ set .@job_c,6;
+ }
+ }
+ else {
+ if (.@archer_p > .@acolyte_p) {
+ set .@job_c,5;
+ }
+ else {
+ set .@job_c,6;
+ }
+ }
+ }
+ }
+ }
+ else {
+ if (.@magician_p > .@merchant_p) {
+ if (.@magician_p > .@thief_p) {
+ if (.@magician_p > .@archer_p) {
+ if (.@magician_p > .@acolyte_p) {
+ set .@job_c,2;
+ }
+ else {
+ set .@job_c,6;
+ }
+ }
+ else {
+ if (.@archer_p > .@acolyte_p) {
+ set .@job_c,5;
+ }
+ else {
+ set .@job_c,6;
+ }
+ }
+ }
+ else {
+ if (.@thief_p > .@archer_p) {
+ if (.@thief_p > .@acolyte_p) {
+ set .@job_c,4;
+ }
+ else {
+ set .@job_c,6;
+ }
+ }
+ else {
+ if (.@archer_p > .@acolyte_p) {
+ set .@job_c,5;
+ }
+ else {
+ set .@job_c,6;
+ }
+ }
+ }
+ }
+ else {
+ if (.@merchant_p > .@thief_p) {
+ if (.@merchant_p > .@archer_p) {
+ if (.@merchant_p > .@acolyte_p) {
+ set .@job_c,3;
+ }
+ else {
+ set .@job_c,6;
+ }
+ }
+ else {
+ if (.@archer_p > .@acolyte_p) {
+ set .@job_c,5;
+ }
+ else {
+ set .@job_c,6;
+ }
+ }
+ }
+ else {
+ if (.@thief_p > .@archer_p) {
+ if (.@thief_p > .@acolyte_p) {
+ set .@job_c,4;
+ }
+ else {
+ set .@job_c,6;
+ }
+ }
+ else {
+ if (.@archer_p > .@acolyte_p) {
+ set .@job_c,5;
+ }
+ else {
+ set .@job_c,6;
+ }
+ }
+ }
+ }
+ }
+ if (.@job_c == 1) {
+ mes "[Hanson]";
+ mes "Although you're very straight forward and simple minded, you";
+ mes "have a strong will and want to be an important person for this world.";
+ next;
+ mes "[Hanson]";
+ mes "You're also always";
+ mes "trying to protect the weak.";
+ next;
+ mes "[Hanson]";
+ mes "For you, who has your own will, ^696969Swordman^000000 class is the most suitable job.";
+ next;
+ mes "[Hanson]";
+ mes "So would you like to accept our recommendation, or would you like to choose a job on your own?";
+ next;
+ switch(select("Swordman!:My own choice!")) {
+ case 1:
+ mes "[Hanson]";
+ mes "That's a great choice!";
+ mes "After you receive all the supplies, I will teleport you to the Swordman Association.";
+ next;
+ mes "^660000List of Supplies^000000";
+ mes "^0000335 Free Ticket for Kafra Storage^000000";
+ mes "^0000335 Free Ticket for Kafra Transportation^000000";
+ ////mes "^000099100 zeny^000000";
+ mes "^0000331 Falchion^000000";
+ mes "^0000337 Phracon^000000";
+ next;
+ set nov_3_swordman,40;
+ getitem 7059,5; //Cargo_Free_Ticket
+ getitem 7060,5; //Warp_Free_Ticket
+ getitem 1104,1; //Falchion
+ getitem 1010,7; //Phracon
+ ////getgold 100
+ mes "[Hanson]";
+ mes "Please check your inventory to see if you have received all the supplies listed. Let me briefly inform you about the items you've received.";
+ next;
+ mes "[Hanson]";
+ mes "Free tickets for Kafra storage and transportation can be used for Kafra storage and teleport services.";
+ next;
+ mes "[Hanson]";
+ mes "'Zeny' is the currency of Rune-Midgard. 'Falchion' is a weapon that will be very useful once you become a Swordman.";
+ next;
+ mes "[Hanson]";
+ mes "'Phracon' is an ore which can be used to upgrade lvl 1 weapons. To strengthen your Falchion with this Phracon, please visit a forge in one of the towns.";
+ next;
+ mes "[Hanson]";
+ mes "The town you will be sent to is called Izlude which is a satellite of Prontera. The Swordman Association is located in the West of town. Please remember this.";
+ next;
+ mes "[Hanson]";
+ mes "You will now";
+ mes "be teleported.";
+ mes "Good luck,";
+ mes "^A62A2A" + strcharinfo(0) + "^000000";
+ mes "and farewell.";
+ close2;
+ set nov_1st_cos,0;
+ set nov_2nd_cos,0;
+ set nov_3_swordman,0;
+ set nov_3_archer,0;
+ set nov_3_thief,0;
+ set nov_3_magician,0;
+ set nov_3_acolyte,0;
+ set nov_3_merchant,0;
+ savepoint "izlude",93,104;
+ warp "izlude_in",74,167;
+ end;
+ case 2:
+ callsub S_UserJobchoice,"Swordsman";
+ end;
+ }
+ }
+ else if (.@job_c == 2) {
+ mes "[Hanson]";
+ mes "You enjoy analyzing things around you, and you're very independent. You have use insightful judgment and you can be very shy and logical.";
+ next;
+ mes "[Hanson]";
+ mes "For you, the observative intellectual, ^696969Mage^000000 is the most suitable job.";
+ next;
+ mes "[Hanson]";
+ mes "So, would you like to accept our recommendation or would you like to choose a job on your own?";
+ next;
+ switch(select("Mage!:My own choice!")) {
+ case 1:
+ mes "[Hanson]";
+ mes "That's a great choice!";
+ mes "After you receive all the supplies, I'll teleport you to the Mage town.";
+ next;
+ mes "^660000List of Supplies^000000";
+ mes "^0000335 Free Ticket for Kafra Storage^000000";
+ mes "^0000335 Free Ticket for Kafra Transportation^000000";
+ ////mes "^000099100 zeny^000000";
+ mes "^0000331 Rod^000000";
+ mes "^0000331 Cutter^000000";
+ mes "^0000337 Phracon^000000";
+ next;
+ //---------------------------------------------------------------------------------------------------------------------------------------------------
+ set nov_3_swordman,40;
+ getitem 7059,5; //Cargo_Free_Ticket
+ getitem 7060,5; //Warp_Free_Ticket
+ getitem 1601,1; //Rod
+ getitem 1204,1; //Cutter
+ getitem 1010,7; //Phracon
+ ////getgold 100
+ //---------------------------------------------------------------------------------------------------------------------------------------------------
+ mes "[Hanson]";
+ mes "Please check your inventory to see if you have received all the supplies listed. Let me briefly inform you about the items you've received.";
+ next;
+ mes "[Hanson]";
+ mes "Free tickets for Kafra storage and transportation can be used for Kafra storage and teleport services.";
+ next;
+ mes "[Hanson]";
+ mes "'Zeny' is the currency of Rune-Midgard. That 'Cutter' has been given to you so that you can fight monsters before you become a Mage.";
+ next;
+ mes "[Hanson]";
+ mes "Once you become a Mage, you can use the 'Rod' that has been given to you. It will be very useful during your early days as a Mage.";
+ next;
+ mes "[Hanson]";
+ mes "'Phracon' is an ore which can be used to upgrade lvl 1 weapons. To strengthen your Level 1 weapons with this Phracon, please visit a forge in one of the towns.";
+ next;
+ mes "[Hanson]";
+ mes "The town you will arrive is named 'Geffen'.";
+ mes "";
+ mes "The mage academy is located in the Northwest part in town. Please remember this.";
+ next;
+ mes "[Hanson]";
+ mes "You'll now be teleported.";
+ mes "Good luck, ^A62A2A" + strcharinfo(0) + "^000000 and farewell.";
+ close2;
+ set nov_1st_cos,0;
+ set nov_2nd_cos,0;
+ set nov_3_swordman,0;
+ set nov_3_archer,0;
+ set nov_3_thief,0;
+ set nov_3_magician,0;
+ set nov_3_acolyte,0;
+ set nov_3_merchant,0;
+ savepoint "geffen",119,37;
+ warp "geffen_in",163,98;
+ end;
+ case 2:
+ callsub S_UserJobchoice,"Mage";
+ end;
+ }
+ }
+ else if (.@job_c == 3) {
+ mes "[Hanson]";
+ mes "You're very willful and very well organized. You've already set a goal in life and have become very responsible for your actions.";
+ next;
+ mes "[Hanson]";
+ mes "Because of your drive and desire to succeed, ^696969Merchant^000000 is the most suitable job for you.";
+ next;
+ mes "[Hanson]";
+ mes "So, would you like to accept our recommendation or would you like to choose a job on your own?";
+ next;
+ switch(select("Merchant!:My own choice!")) {
+ case 1:
+ mes "[Hanson]";
+ mes "That's a great choice!";
+ mes "After you receive all the supplies, I will teleport you to the merchant town.";
+ next;
+ mes "^660000List of Supplies^000000";
+ mes "^0000334 Free Ticket for Kafra Storage^000000";
+ mes "^0000334 Free Ticket for Kafra Transportation^000000";
+ mes "^0000334 Free Ticket for the Cart Service^000000";
+ ////mes "^000099100 zeny^000000";
+ mes "^0000331 Battle Axe^000000";
+ mes "^0000337 Phracon^000000";
+ next;
+ //---------------------------------------------------------------------------------------------------------------------------------------------------
+ set nov_3_swordman,40;
+ getitem 7059,4; //Cargo_Free_Ticket
+ getitem 7060,4; //Warp_Free_Ticket
+ getitem 7061,4; //Cart_Free_Ticket
+ getitem 1351,1; //Battle_Axe
+ getitem 1010,7; //Phracon
+ ////getgold 100
+ //---------------------------------------------------------------------------------------------------------------------------------------------------
+ mes "[Hanson]";
+ mes "Please check your inventory to see if you have received all the supplies listed. Let me briefly inform you about the items you've received.";
+ next;
+ mes "[Hanson]";
+ mes "Free tickets for Kafra storage and transportation can be used for Kafra storage and teleport services.";
+ next;
+ mes "[Hanson]";
+ mes "'Zeny' is the currency of Rune-Midgard. 'Battle Axe' will come in handy once you become a Merchant.";
+ next;
+ mes "[Hanson]";
+ mes "'Phracon' is an ore which can be used to upgrade lvl 1 weapons. To strengthen your Battle Axe with this Phracon, please visit a forge in one of the towns.";
+ next;
+ mes "[Hanson]";
+ mes "The town you will be sent to is named Alberta. The Merchant Guild is located to the SouthWest within Alberta. Please remember this.";
+ next;
+ mes "[Hanson]";
+ mes "You will now";
+ mes "be teleported.";
+ mes "Good luck,";
+ mes "^A62A2A" + strcharinfo(0) + "^000000";
+ mes "and farewell.";
+ close2;
+ set nov_1st_cos,0;
+ set nov_2nd_cos,0;
+ set nov_3_swordman,0;
+ set nov_3_archer,0;
+ set nov_3_thief,0;
+ set nov_3_magician,0;
+ set nov_3_acolyte,0;
+ set nov_3_merchant,0;
+ savepoint "alberta",30,232;
+ warp "alberta_in",62,44;
+ end;
+ case 2:
+ callsub S_UserJobchoice,"Merchant";
+ end;
+ }
+ }
+ else if (.@job_c == 4) {
+ mes "[Hanson]";
+ mes "Carpe diem:";
+ mes "Seize the day.";
+ mes "That's how you live.";
+ next;
+ mes "[Hanson]";
+ mes "From your natural curiosity";
+ mes "comes a happy-go-lucky sense of adventure, and a desire to explore.";
+ next;
+ mes "[Hanson]";
+ mes "For someone like you,";
+ mes "^696969Thief^000000 is the most suitable job.'";
+ next;
+ mes "[Hanson]";
+ mes "So, would you like to accept our recommendation or would you like to choose a job on your own?";
+ next;
+ switch(select("Thief!:My own choice!")) {
+ case 1:
+ mes "[Hanson]";
+ mes "That's a great choice!";
+ mes "After you receive all the supplies, I'll teleport you to the Thief town.";
+ next;
+ mes "^660000List of Supplies^000000";
+ mes "^0000335 Free Ticket for Kafra Storage^000000";
+ mes "^0000335 Free Ticket for Kafra Transportation^000000";
+ ////mes "^000099100 Zeny^000000";
+ mes "^0000331 Main Gauche^000000";
+ mes "^0000337 Phracon^000000";
+ next;
+ //---------------------------------------------------------------------------------------------------------------------------------------------------
+ set nov_3_swordman,40;
+ getitem 7059,5; //Cargo_Free_Ticket
+ getitem 7060,5; //Warp_Free_Ticket
+ getitem 1207,1; //Main_Gauche
+ getitem 1010,7; //Phracon
+ ////getgold 100
+ //---------------------------------------------------------------------------------------------------------------------------------------------------
+ mes "[Hanson]";
+ mes "Please check your inventory to see if you have received all the supplies listed. Let me briefly inform you about the items you've received.";
+ next;
+ mes "[Hanson]";
+ mes "Free tickets for Kafra storage and transportation can be used for Kafra storage and teleport services.";
+ next;
+ mes "[Hanson]";
+ mes "'Zeny' is the currency of Rune-Midgard. 'Main Gauche' is a weapon that will be very useful once you become a Thief.";
+ next;
+ mes "[Hanson]";
+ mes "'Phracon' is an ore which can be used to upgrade lvl 1 weapons. To strengthen your Main Gauche with this Phracon, please visit a forge in one of the towns.";
+ next;
+ mes "[Hanson]";
+ mes "The town you will be sent to is named Morroc. The Thief Guild is in the first underground floor of the pyramid NorthWest of Morroc. Remember this.";
+ next;
+ mes "[Hanson]";
+ mes "You will now";
+ mes "be teleported.";
+ mes "Good luck,";
+ mes "^A62A2A" + strcharinfo(0) + "^000000";
+ mes "and farewell.";
+ close2;
+ savepoint "morocc",150,99;
+ warp "moc_ruins",155,44;
+ end;
+ case 2:
+ callsub S_UserJobchoice,"Thief";
+ end;
+ }
+ }
+ else if (.@job_c == 5) {
+ mes "[Hanson]";
+ mes "You always try to understand other people, even though they are strange. You expect others to try to understand you.";
+ next;
+ mes "[Hanson]";
+ mes "You refuse to be a ordinary person as you persue your dream. As a person sensitive to nature, ^696969Archer^000000 is the most suitable job for you.";
+ next;
+ mes "[Hanson]";
+ mes "So, would you like to accept our recommendation or would you like to choose a job on your own?";
+ next;
+ switch(select("Archer!:My own choice!")) {
+ case 1:
+ mes "[Hanson]";
+ mes "That's a great choice!";
+ mes "After you receive all the supplies, I'll teleport you to the Archer town.";
+ next;
+ mes "^660000List of Supplies^000000";
+ mes "^0000335 Free Ticket for Kafra Storage^000000";
+ mes "^0000335 Free Ticket for Kafra Transportation^000000";
+ ////mes "^000099100 Zeny^000000";
+ mes "^0000331 Composite Bow^000000";
+ mes "^0000337 Phracon^000000";
+ next;
+ //---------------------------------------------------------------------------------------------------------------------------------------------------
+ set nov_3_swordman,40;
+ getitem 7059,5; //Cargo_Free_Ticket
+ getitem 7060,5; //Warp_Free_Ticket
+ getitem 1704,1; //Composite_Bow
+ getitem 1010,7; //Phracon
+ ////getgold 100
+ //---------------------------------------------------------------------------------------------------------------------------------------------------
+ mes "[Hanson]";
+ mes "Please check your inventory to see if you have received all the supplies listed. Let me briefly inform you about the items you've received.";
+ next;
+ mes "[Hanson]";
+ mes "Free tickets for Kafra storage and transportation can be used for Kafra storage and teleport services.";
+ next;
+ mes "[Hanson]";
+ mes "'Zeny' is the currency of Rune-Midgard. 'Composite Bow' is a weapon that will be very useful once you become an Archer.";
+ next;
+ mes "[Hanson]";
+ mes "'Phracon' is an ore which can be used to upgrade lvl 1 weapons. To strengthen your Composite Bow with this Phracon, please visit a forge in one of the towns.";
+ next;
+ mes "[Hanson]";
+ mes "The town you will be sent to is named Payon. The Archer Guild is located to the NorthWest in town. Please remember this.";
+ next;
+ mes "[Hanson]";
+ mes "You will now";
+ mes "be teleported.";
+ mes "Good luck,";
+ mes "^A62A2A" + strcharinfo(0) + "^000000";
+ mes "and farewell.";
+ close2;
+ set nov_1st_cos,0;
+ set nov_2nd_cos,0;
+ set nov_3_swordman,0;
+ set nov_3_archer,0;
+ set nov_3_thief,0;
+ set nov_3_magician,0;
+ set nov_3_acolyte,0;
+ set nov_3_merchant,0;
+ savepoint "payon",70,100;
+ warp "payon_in02",64,65;
+ end;
+ case 2:
+ callsub S_UserJobchoice,"Archer";
+ end;
+ }
+ }
+ else if (.@job_c == 6) {
+ mes "[Hanson]";
+ mes "You are very warm hearted and considerate, and you're willing to sacrifice your well being for the sake of others.";
+ next;
+ mes "[Hanson]";
+ mes "You're always eager to help others, which is why you're so well liked.";
+ next;
+ mes "[Hanson]";
+ mes "For you who are kind of heart, ^696969Acolyte^000000 is the most suitable job.";
+ next;
+ mes "[Hanson]";
+ mes "So, would you like to accept our recommendation or would you like to choose a job on your own?";
+ next;
+ switch(select("Acolyte!:My own choice!")) {
+ case 1:
+ mes "[Hanson]";
+ mes "That's a great choice!";
+ mes "After you receive all the supplies, I'll teleport you behind the Sanctuary.";
+ next;
+ mes "^660000List of Supplies^000000";
+ mes "^0000335 Free Ticket for Kafra Storage^000000";
+ mes "^0000335 Free Ticket for Kafra Transportation^000000";
+ ////mes "^000099100 Zeny^000000";
+ mes "^0000331 Mace^000000";
+ mes "^0000337 Phracon^000000";
+ next;
+ //---------------------------------------------------------------------------------------------------------------------------------------------------
+ set nov_3_swordman,40;
+ getitem 7059,5; //Cargo_Free_Ticket
+ getitem 7060,5; //Warp_Free_Ticket
+ getitem 1504,1; //Mace
+ getitem 1010,7; //Phracon
+ ////getgold 100
+ //---------------------------------------------------------------------------------------------------------------------------------------------------
+ mes "[Hanson]";
+ mes "Please check your inventory to see if you have received all the supplies listed. Let me briefly inform you about the items you've received.";
+ next;
+ mes "[Hanson]";
+ mes "Free tickets for Kafra storage and transportation can be used for Kafra storage and teleport services.";
+ next;
+ mes "[Hanson]";
+ mes "'Zeny' is the currency of Rune-Midgard. 'Mace' is a weapon that will be very useful once you become an Acolyte.";
+ next;
+ mes "[Hanson]";
+ mes "'Phracon' is an ore which can be used to upgrade lvl 1 weapons. To strengthen your Mace with this Phracon, please visit a forge in one of the towns.";
+ next;
+ mes "[Hanson]";
+ mes "You have chosen to be an Acolyte. The town you will be sent to is named Prontera. The Sanctuary is NorthEast in Prontera. Please remember this.";
+ next;
+ mes "[Hanson]";
+ mes "You will now";
+ mes "be teleported.";
+ mes "Good luck,";
+ mes "^A62A2A" + strcharinfo(0) + "^000000";
+ mes "and farewell.";
+ close2;
+ set nov_1st_cos,0;
+ set nov_2nd_cos,0;
+ set nov_3_swordman,0;
+ set nov_3_archer,0;
+ set nov_3_thief,0;
+ set nov_3_magician,0;
+ set nov_3_acolyte,0;
+ set nov_3_merchant,0;
+ savepoint "prontera",117,72;
+ warp "prt_church",172,19;
+ end;
+ case 2:
+ callsub S_UserJobchoice,"Acolyte";
+ end;
+ }
+ }
+ case 2:
+ mes "[Hanson]";
+ mes "I understand.";
+ mes "Let me transport";
+ mes "you to the world of";
+ mes "Ragnarok Online";
+ mes "immediately.";
+ next;
+ mes "[Hanson]";
+ mes "For more information and knowledge, I hope you will obtain your own experiences in Rune-Midgard.";
+ next;
+ mes "[Hanson]";
+ mes "Lastly...";
+ mes "I hope you will";
+ mes "become a nice player,";
+ mes ""+ strcharinfo(0) +".";
+ mes "Fare well.";
+ next;
+ set nov_3_swordman,40;
+ set nov_1st_cos,0;
+ set nov_2nd_cos,0;
+ set nov_3_swordman,0;
+ set nov_3_archer,0;
+ set nov_3_thief,0;
+ set nov_3_magician,0;
+ set nov_3_acolyte,0;
+ set nov_3_merchant,0;
+ set .@startmap,rand(1,6);
+ if ((.@startmap > 0) && (.@startmap < 2)) {
+ savepoint "prontera",117,72;
+ warp "prt_fild08",170,371;
+ }
+ else if ((.@startmap > 1) && (.@startmap < 3)) {
+ savepoint "geffen",119,37;
+ warp "gef_fild07",327,188;
+ }
+ else if ((.@startmap > 2) && (.@startmap < 4)) {
+ savepoint "alberta",30,232;
+ warp "pay_fild03",388,70;
+ }
+ else if ((.@startmap > 3) && (.@startmap < 5)) {
+ savepoint "morocc",150,99;
+ warp "moc_fild07",198,39;
+ }
+ else if ((.@startmap > 4) && (.@startmap < 6)) {
+ savepoint "payon",256,242;
+ warp "pay_fild01",334,354;
+ }
+ else if ((.@startmap > 5) && (.@startmap < 7)) {
+ savepoint "izlude",93,104;
+ warp "prt_fild08",357,212;
+ }
+ end;
+ }
+ }
+ else if (nov_3_swordman == 40) {
+ mes "[Hanson]";
+ mes "Hmmm...?";
+ mes "Why are you";
+ mes "still here?";
+ next;
+ mes "[Hanson]";
+ mes "You didn't say anything, so";
+ mes "I assumed you were already gone. Since you have already finished the final test and I gave you all the supplies...";
+ next;
+ mes "[Hanson]";
+ mes "The only thing";
+ mes "left to do is to lead";
+ mes "you to Rune-Midgard~";
+ next;
+ set nov_1st_cos,0;
+ set nov_2nd_cos,0;
+ set nov_3_swordman,0;
+ set nov_3_archer,0;
+ set nov_3_thief,0;
+ set nov_3_magician,0;
+ set nov_3_acolyte,0;
+ set nov_3_merchant,0;
+ set .@startmap,rand(1,6);
+ if ((.@startmap > 0) && (.@startmap < 2)) {
+ savepoint "prontera",117,72;
+ warp "prt_fild08",170,371;
+ }
+ else if ((.@startmap > 1) && (.@startmap < 3)) {
+ savepoint "geffen",119,37;
+ warp "gef_fild07",327,188;
+ }
+ else if ((.@startmap > 2) && (.@startmap < 4)) {
+ savepoint "alberta",30,232;
+ warp "pay_fild03",388,70;
+ }
+ else if ((.@startmap > 3) && (.@startmap < 5)) {
+ savepoint "morocc",150,99;
+ warp "moc_fild07",198,39;
+ }
+ else if ((.@startmap > 4) && (.@startmap < 6)) {
+ savepoint "payon",70,100;
+ warp "pay_fild01",334,354;
+ }
+ else if ((.@startmap > 5) && (.@startmap < 7)) {
+ savepoint "izlude",93,104;
+ warp "prt_fild08",357,212;
+ }
+ end;
+ }
+ else {
+ mes "[Hanson]";
+ mes "Hello, you";
+ mes "must be "+ strcharinfo(0) +".";
+ next;
+ mes "[Hanson]";
+ mes "I am Hanson,";
+ mes "the person in";
+ mes "charge of the";
+ mes "personality test.";
+ next;
+ mes "[Hanson]";
+ mes "Please speak";
+ mes "to Bruce for";
+ mes "'Class Explanation'";
+ mes "before we begin your";
+ mes "test. Thank you.";
+ close;
+ }
+
+S_UserJobchoice:
+ mes "[Hanson]";
+ mes "I see. It's your choice.";
+ mes "There is no obligation to change to the job we recommend. Please choose the job you wish to become.";
+ next;
+ select( "Swordsman:Mage:Merchant:Thief:Archer:Acolyte" );
+ // @menu is already set by Core.
+ setarray .@Jobs$[1],"Swordsman","Mage","Merchant","Thief","Archer","Acolyte";
+
+ mes "[Hanson]";
+ mes "You have chosen";
+ if (@menu == 1) {
+ mes "to become a Swordsman.";
+ mes "You will be sent to";
+ mes "the town of Izlude.";
+ next;
+ mes "[Hanson]";
+ mes "The Swordman Association is located to the Northwest in Izlude. Please remember this.";
+ }
+ else if (@menu == 2) {
+ mes "to become a Mage.";
+ mes "You will be sent to";
+ mes "the town of Geffen.";
+ next;
+ mes "[Hanson]";
+ mes "The Mage Academy is located in the NorthWest in town. Please remember this.";
+ }
+ else if (@menu == 3) {
+ mes "to become a Merchant.";
+ mes "You will be sent to";
+ mes "the town of Alberta.";
+ }
+ else if (@menu == 4) {
+ mes "to become a Thief.";
+ mes "You will be sent to";
+ mes "the town of Morroc.";
+ next;
+ mes "[Hanson]";
+ mes "The Thief guild is in the underground 1st floor of a pyramid which is NorthWest of town. Please remember this.";
+ }
+ else if (@menu == 5) {
+ mes "to become an Archer.";
+ mes "You will be sent to";
+ mes "the town of Payon.";
+ next;
+ mes "[Hanson]";
+ mes "The Archer Guild is located to the NorthWest in Payon. Please remember this.";
+ }
+ else {
+ mes "to become an Acolyte.";
+ mes "You will be sent to";
+ mes "the town of Prontera.";
+ next;
+ mes "[Hanson]";
+ mes "The Prontera Sanctuary is located to the NorthEast in Prontera. Please remember this.";
+ }
+ next;
+ mes "[Hanson]";
+ mes "Let me give you";
+ mes "some supplies. Then";
+ mes "you will transported";
+ mes "to the chosen town.";
+ next;
+ mes "^660000List of Supplies^000000";
+ mes "^0000335 Free Ticket for Kafra Storage^000000";
+ mes "^0000335 Free Ticket for Kafra Transportation^000000";
+ mes "^0000331 Adventurer's Suit^000000";
+ ////mes "^000099100 Zeny^000000";
+ next;
+ //------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ set nov_3_swordman,40;
+ getitem 7059,5; //Cargo_Free_Ticket
+ getitem 7060,5; //Warp_Free_Ticket
+ getitem 2305,1; //Adventure_Suit
+ ////getgold 100
+ //------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ mes "[Hanson]";
+ mes "Please check your inventory";
+ mes "to see if you have received all the supplies listed. Let me briefly inform you about the items you've received.";
+ next;
+ mes "[Hanson]";
+ mes "Free tickets for Kafra storage and transportation can be used for Kafra storage and teleport services.";
+ next;
+ mes "[Hanson]";
+ mes "'Zeny' is the currency of Rune-Midgard. The 'Adventurer's Suit' will come in handy once you become a " + .@Jobs$[@menu] + ".";
+ next;
+ mes "[Hanson]";
+ mes "You will now";
+ mes "be teleported.";
+ mes "Good luck,";
+ mes "^A62A2A" + strcharinfo(0) + "^000000";
+ mes "and farewell.";
+ next;
+ set nov_1st_cos,0;
+ set nov_2nd_cos,0;
+ set nov_3_swordman,0;
+ set nov_3_archer,0;
+ set nov_3_thief,0;
+ set nov_3_magician,0;
+ set nov_3_acolyte,0;
+ set nov_3_merchant,0;
+ if(@menu == 1) {
+ savepoint "izlude",93,104;
+ warp "izlude_in",74,167;
+ }
+ else if (@menu == 2) {
+ savepoint "geffen",119,37;
+ warp "geffen_in",163,98;
+ }
+ else if (@menu == 3) {
+ savepoint "alberta",30,232;
+ warp "alberta_in",62,44;
+ }
+ else if (@menu == 4) {
+ savepoint "morocc",150,99;
+ warp "moc_ruins",155,44;
+ }
+ else if (@menu == 5) {
+ savepoint "payon",70,100;
+ warp "payon_in02",64,65;
+ }
+ else {
+ savepoint "prontera",117,72;
+ warp "prt_church",172,19;
+ }
+ return;
+}
+
+//Novice Instructor
+new_1-4,91,22,4 script Bruce#nv 57,{
+ if (Class == Job_Novice) {
+ if (nov_3_swordman == 20) {
+ mes "[Bruce]";
+ mes "Let me explain the";
+ mes "First Job Classes";
+ mes "to you once again.";
+ mes "Which job did you";
+ mes "have in mind?";
+ next;
+ while(1) {
+ switch(select("Swordman:Mage:Archer:Merchant:Thief:Acolyte:End conversation.")) {
+ case 1:
+ mes "[Bruce]";
+ mes "As the name implies, the";
+ mes "Swordman is an expert in wielding Swords. They can also use Spear weapons, but typically you don't see Spear wielding Swordmen very often.";
+ next;
+ mes "[Bruce]";
+ mes "Swordman possess strong physical strength, allowing them to equip heavy armor and weapons. Most weapon classes, except for bows and rods, can be equipped by the Swordman class.";
+ next;
+ mes "[Bruce]";
+ mes "The only weakness of the Swordman class is that they cannot use magic spells. However, this can be compensated by using weapons with an elemental attribute.";
+ next;
+ mes "[Bruce]";
+ mes "One of the greatest benefits of being a Swordman is having an enormous amount of HP, meaning they can more easily withstand damage from their enemies.";
+ next;
+ mes "[Bruce]";
+ mes "After learning some strong attack skills, the Swordman is almost unbeatable in a melee fight.";
+ next;
+ mes "[Bruce]";
+ mes "In Ragnarok Online, Swordman generally takes the position of tanker, protecting characters of other classes from being attacked or hurt.";
+ next;
+ mes "[Bruce]";
+ mes "A Swordman is the ideal character to take the position of party leader. When advancing to the Second Job Class, Swordmen can change their jobs to ^8E2323Knights^000000 or ^8E2323Crusaders^000000.";
+ set nov_3_swordman,20;
+ next;
+ break;
+ case 2:
+ mes "[Bruce]";
+ mes "The Mage class specializes in using the forces of Fire, Water, Earth and Lightning to attack their enemies.";
+ next;
+ mes "[Bruce]";
+ mes "However, due to their weak physical strength, they are only allowed to equip Rods and Knives as weapons, and wear light armor for defense.";
+ next;
+ mes "[Bruce]";
+ mes "Despite their physical weakness, they are able to do massive damage with their powerful spells. This fact alone attracts many people to join this class.";
+ next;
+ mes "[Bruce]";
+ mes "In Ragnarok Online, the Mage takes a heavily offensive role in parties and is depended upon to deal great damage to enemies.";
+ next;
+ mes "[Bruce]";
+ mes "When advancing to the Second Job Class, Mages can change their jobs to ^8E2323Wizards^000000 or ^8E2323Sages^000000.";
+ set nov_3_swordman,20;
+ next;
+ break;
+ case 3:
+ mes "[Bruce]";
+ mes "The Archer class are experts in using Bow weapons, and are useful in parties for their long range attacks.";
+ next;
+ mes "[Bruce]";
+ mes "Despite being physically weaker, Archers possess high accuracy with powerful long range bows. This allows them to attack and kill monsters from a safe distance.";
+ next;
+ mes "[Bruce]";
+ mes "In Ragnarok Online, Archers have relatively little HP, but their long range attacks allow them to easily dispatch enemies before the enemy gets close enough to hurt them.";
+ next;
+ mes "[Bruce]";
+ mes "When advancing to the Second Job Class, every Archer may advance to the ^8E2323Hunter^000000 class. Alternatively, male Archers may advance to become ^8E2323Bards^000000, and female Archers may become ^8E2323Dancers^000000.";
+ set nov_3_swordman,20;
+ next;
+ break;
+ case 4:
+ mes "[Bruce]";
+ mes "The Merchant class specializes in commerce. Due to the strong influence of the Merchant Guild, the Merchant class is attractive to those who wish to focus on earning Zeny.";
+ next;
+ mes "[Bruce]";
+ mes "In Ragnarok Online, the Merchant class possesses various economic abilities. Merchants can learn to sell items to NPCs for higher prices, as well as receive discounts from NPCs.";
+ next;
+ mes "[Bruce]";
+ mes "In addition, Merchants may rent";
+ mes "a Cart that greatly expands their carrying capacity and allows them to open shops with their own items and prices.";
+ next;
+ mes "[Bruce]";
+ mes "When advancing to the Second Job Class, Merchants can change their jobs to ^8E2323Blacksmiths^000000 or ^8E2323Alchemists^000000.";
+ set nov_3_swordman,20;
+ next;
+ break;
+ case 5:
+ mes "[Bruce]";
+ mes "Thieves are experts at using Dagger class weapons. They strike quickly and easily evade attacks from their enemies.";
+ next;
+ mes "[Bruce]";
+ mes "Thieves can learn skills that allow them to hide from their enemies, or steal items from monsters. They are also feared for their use of poison, which slowly weakens";
+ mes "their enemies.";
+ next;
+ mes "[Bruce]";
+ mes "When advancing to the Second Job Class, Thieves can change their jobs to ^8E2323Assassins^000000 or ^8E2323Rogues^000000.";
+ set nov_3_swordman,20;
+ next;
+ break;
+ case 6:
+ mes "[Bruce]";
+ mes "In Ragnarok Online, Acolytes act as messengers of God in Rune-Midgard. They possess skills that support their allies, as well as the life saving Heal ability.";
+ next;
+ mes "[Bruce]";
+ mes "The Acolyte's support abilities make them a welcome addition to any party. In difficult situations, the Acolyte's skills will ensure the survival of the party, allowing other members to focus on offense.";
+ next;
+ mes "[Bruce]";
+ mes "When advancing to the Second Job Class, Acolytes can change their jobs to ^8E2323Priests^000000 or ^8E2323Monks^000000.";
+ mes "";
+ set nov_3_swordman,20;
+ next;
+ break;
+ case 7:
+ mes "[Bruce]";
+ mes "For more information,";
+ mes "please visit the official";
+ mes "Ragnarok Online website:";
+ mes " ";
+ mes "^0000FFiro.ragnarokonline.com^000000.";
+ next;
+ mes "[Bruce]";
+ mes "Hanson is waiting";
+ mes "for you now. Good luck";
+ mes "out there, young Novice.";
+ close;
+ }
+ }
+ }
+ else if (nov_3_swordman == 40) {
+ mes "[Bruce]";
+ mes "I'm sorry, but";
+ mes "there's nothing";
+ mes "more I can teach you.";
+ next;
+ mes "[Bruce]";
+ mes "Hanson is waiting";
+ mes "for you now. Good luck";
+ mes "out there, young Novice.";
+ close;
+ }
+ else {
+ mes "[Bruce]";
+ mes "You've gone";
+ mes "through quite";
+ mes "a bit of trouble";
+ mes "to finish all the";
+ mes "training courses.";
+ next;
+ mes "[Bruce]";
+ mes "Hello there,";
+ mes "^A62A2A" + strcharinfo(0) + "'^000000,";
+ mes "pleased to meet you.";
+ mes "I am Bruce of the";
+ mes "Rune-Midgarts Kingdom.";
+ next;
+ mes "[Bruce]";
+ mes "My duty is to assist you by teaching information about each First Job Class, so that you can decide which job you want to be.";
+ next;
+ mes "[Bruce]";
+ mes "The First Job Classes are";
+ mes "^0000FFSwordman, Mage, Archer, Merchant, Thief and Acolyte^000000.";
+ next;
+ mes "[Bruce]";
+ mes "So...";
+ mes "Which job did";
+ mes "you have in mind?";
+ next;
+ while(1) {
+ switch(select("Swordman:Mage:Archer:Merchant:Thief:Acolyte:End conversation.")) {
+ case 1:
+ mes "[Bruce]";
+ mes "As the name implies, the";
+ mes "Swordman is an expert in wielding Swords. They can also use Spear weapons, but typically you don't see Spear wielding Swordmen";
+ mes "very often.";
+ next;
+ mes "[Bruce]";
+ mes "Swordmen possess strong physical strength, allowing them to equip heavy armor and weapons. Most weapon classes, except for bows and rods, can be equipped by the Swordman class.";
+ next;
+ mes "[Bruce]";
+ mes "The only weakness of the Swordman class is that they cannot use magic spells. However, this can be compensated by using weapons with an elemental attribute.";
+ next;
+ mes "[Bruce]";
+ mes "One of the greatest benefits of being a Swordman is having an enormous amount of HP, meaning they can more easily withstand damage from their enemies.";
+ next;
+ mes "[Bruce]";
+ mes "After learning some strong attack skills, the Swordman is almost unbeatable in a melee fight.";
+ next;
+ mes "[Bruce]";
+ mes "In Ragnarok Online, Swordman generally takes the position of tanker, protecting characters of other classes from being attacked or hurt.";
+ next;
+ mes "[Bruce]";
+ mes "A Swordman is the ideal character to take the position of party leader. When advancing to the Second Job Class, Swordmen can change their jobs to ^8E2323Knights^000000 or ^8E2323Crusaders^000000.";
+ set nov_3_swordman,20;
+ next;
+ break;
+ case 2:
+ mes "[Bruce]";
+ mes "The Mage class specializes in using the forces of Fire, Water, Earth and Lightning to attack their enemies.";
+ next;
+ mes "[Bruce]";
+ mes "However, due to their weak physical strength, they are only allowed to equip Rods and Knives as weapons, and wear light armor for defense.";
+ next;
+ mes "[Bruce]";
+ mes "Despite their physical weakness, they are able to do massive damage with their powerful spells. This fact alone attracts many people to join this class.";
+ next;
+ mes "[Bruce]";
+ mes "In Ragnarok Online, the Mage takes a heavily offensive role in parties and is depended upon to deal great damage to enemies.";
+ next;
+ mes "[Bruce]";
+ mes "When advancing to the Second Job Class, Mages can change their jobs to ^8E2323Wizards^000000 or ^8E2323Sages^000000.";
+ set nov_3_swordman,20;
+ next;
+ break;
+ case 3:
+ mes "[Bruce]";
+ mes "The Archer class are experts in using Bow weapons, and are useful in parties for their long range attacks.";
+ next;
+ mes "[Bruce]";
+ mes "Despite being physically weaker, Archers possess high accuracy with powerful long range bows. This allows them to attack and kill monsters from a safe distance.";
+ next;
+ mes "[Bruce]";
+ mes "In Ragnarok Online, Archers have relatively little HP, but their long range attacks allow them to easily dispatch enemies before the enemy gets close enough to hurt them.";
+ next;
+ mes "[Bruce]";
+ mes "When advancing to the Second Job Class, every Archer may advance to the ^8E2323Hunter^000000 class. Alternatively, male Archers may advance to become ^8E2323Bards^000000, and female Archers may become ^8E2323Dancers^000000.";
+ set nov_3_swordman,20;
+ next;
+ break;
+ case 4:
+ mes "[Bruce]";
+ mes "The Merchant class specializes in commerce. Due to the strong influence of the Merchant Guild, the Merchant class is attractive to those who wish to focus on earning Zeny.";
+ next;
+ mes "[Bruce]";
+ mes "In Ragnarok Online, the Merchant class possesses various economic abilities. Merchants can learn to sell items to NPCs for higher prices, as well as receive discounts from NPCs.";
+ next;
+ mes "[Bruce]";
+ mes "In addition, Merchants may rent";
+ mes "a Cart that greatly expands their carrying capacity and allows them to open shops with their own items and prices.";
+ next;
+ mes "[Bruce]";
+ mes "When advancing to the Second Job Class, Merchants can change their jobs to ^8E2323Blacksmiths^000000 or ^8E2323Alchemists^000000.";
+ set nov_3_swordman,20;
+ next;
+ break;
+ case 5:
+ mes "[Bruce]";
+ mes "Thieves are experts at using Dagger class weapons. They strike quickly and easily evade attacks from their enemies.";
+ next;
+ mes "[Bruce]";
+ mes "Thieves can learn skills that allow them to hide from their enemies, or steal items from monsters. They are also feared for their use of poison, which slowly weakens";
+ mes "their enemies.";
+ next;
+ mes "[Bruce]";
+ mes "When advancing to the Second Job Class, Thieves can change their jobs to ^8E2323Assassins^000000 or ^8E2323Rogues^000000.";
+ set nov_3_swordman,20;
+ next;
+ break;
+ case 6:
+ mes "[Bruce]";
+ mes "In Ragnarok Online, Acolytes act as messengers of God in Rune-Midgard. They possess skills that support their allies, as well as the life saving Heal ability.";
+ next;
+ mes "[Bruce]";
+ mes "The Acolyte's support abilities make them a welcome addition to any party. In difficult situations, the Acolyte's skills will ensure the survival of the party, allowing other members to focus on offense.";
+ next;
+ mes "[Bruce]";
+ mes "When advancing to the Second Job Class, Acolytes can change their jobs to ^8E2323Priests^000000 or ^8E2323Monks^000000.";
+ mes "";
+ set nov_3_swordman,20;
+ next;
+ break;
+ case 7:
+ mes "[Bruce]";
+ mes "For more information,";
+ mes "please visit the official";
+ mes "Ragnarok Online website:";
+ mes " ";
+ mes "^0000FFiro.ragnarokonline.com^000000.";
+ next;
+ mes "[Bruce]";
+ mes "Hanson is waiting";
+ mes "for you now. Good luck";
+ mes "out there, young Novice.";
+ close;
+ }
+ }
+
+ }
+ }
+}
+
+// Training Ground Mobs
+new_1-3,0,0,0,0 monster Poring 1002,10,0,0,0
+new_1-3,0,0,0,0 monster Drops 1113,10,0,0,0
+new_1-3,0,0,0,0 monster Lunatic 1063,10,0,0,0
+new_1-3,0,0,0,0 monster ChonChon 1011,10,0,0,0
+new_2-3,0,0,0,0 monster Condor 1009,10,0,0,0
+new_2-3,0,0,0,0 monster Picky 1050,10,0,0,0
+new_2-3,0,0,0,0 monster Willow 1010,10,0,0,0
+new_2-3,0,0,0,0 monster Roda Frog 1012,10,0,0,0
+new_3-3,0,0,0,0 monster Condor 1009,10,0,0,0
+new_3-3,0,0,0,0 monster Picky 1050,10,0,0,0
+new_3-3,0,0,0,0 monster Willow 1010,10,0,0,0
+new_3-3,0,0,0,0 monster Roda Frog 1012,10,0,0,0
+new_4-3,0,0,0,0 monster Rocker 1052,10,0,0,0
+new_4-3,0,0,0,0 monster Thief Bug 1051,10,0,0,0
+new_4-3,0,0,0,0 monster Thief Bug 1053,10,0,0,0
+new_4-3,0,0,0,0 monster Spore 1014,10,0,0,0
+new_5-3,0,0,0,0 monster Rocker 1052,10,0,0,0
+new_5-3,0,0,0,0 monster Thief Bug 1051,1,0,0,0
+new_5-3,0,0,0,0 monster Thief Bug 1053,1,0,0,0
+new_5-3,0,0,0,0 monster Spore 1014,1,0,0,0
+new_1-3,0,0,0,0 monster Fabre 1184,5,0,0,0
+new_2-3,0,0,0,0 monster Fabre 1184,5,0,0,0
+new_3-3,0,0,0,0 monster Fabre 1184,5,0,0,0
+new_4-3,0,0,0,0 monster Fabre 1184,5,0,0,0
+new_5-3,0,0,0,0 monster Fabre 1184,5,0,0,0
+
+//============================================================
+// Old changelog
+//============================================================
+//= 1.0 Added the New Novice Training Grounds, a big thanks [MasterOfMuppets]
+//= to Dr.Evil who did 90% of the work =)
+//= 1.0b Temp measure to stop exploits. [Vicious]
+//= 1.2 Removed Duplicates [Silent]
+//= 1.3 Removed Duplicates [Toms]
+//= 1.4 Added Kafra Free Cart Tickets, as in official one [Lupus]
+//= 1.5 Fixed warps, removed map duplicates, typos [Lupus]
+//= 1.6 Changed clone maps new_1-? -> new_zone0? [Lupus]
+//= 1.7 Now Kafra Tickets are given at correct NPC/Actions [Lupus]
+//= 1.7a a bit of optimization [Lupus]
+//= 1.7b Corrected a little Typo Error. (bugreport:728) [Samuray22]
+//= 1.7C Corrected another Typo Error. (bugreport:740) [Samuray22]
+//============================================================
diff --git a/npc/pre-re/kafras/kafras_izl.txt b/npc/pre-re/kafras/kafras_izl.txt
new file mode 100644
index 000000000..ba2081fd6
--- /dev/null
+++ b/npc/pre-re/kafras/kafras_izl.txt
@@ -0,0 +1,15 @@
+//===== rAthena Script =======================================
+//= Izlude Kafras
+//===== By: ==================================================
+//= Daegaladh
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= Izlude Kafras.
+//===== Additional Comments: =================================
+//= 1.0 First version.
+//============================================================
+
+izlude,134,87,3 duplicate(kaf_izlude) Kafra Employee 117
diff --git a/npc/pre-re/merchants/shops.txt b/npc/pre-re/merchants/shops.txt
new file mode 100644
index 000000000..d8fd1d96a
--- /dev/null
+++ b/npc/pre-re/merchants/shops.txt
@@ -0,0 +1,21 @@
+//===== rAthena Script =======================================
+//= Shops
+//===== By: ==================================================
+//= Daegaladh
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= Pre-renewal-specific town shop NPCs.
+//===== Additional Comments: =================================
+//= 1.0 First version.
+//============================================================
+
+//=======================================================
+// Izlude
+//=======================================================
+izlude,105,99,0 shop Butcher#iz 54,517:-1
+izlude,94,98,4 shop Fruit Gardener#iz 53,512:-1,513:-1,515:-1,516:-1
+izlude,105,92,7 shop Vendor from Milk Ranch#i 90,519:-1
+izlude,164,138,4 shop Pet Groomer#iz 124,537:-1,643:-1,10013:-1,10014:-1,554:-1,6113:-1,6114:-1,6115:-1
diff --git a/npc/pre-re/mobs/dungeons/abbey.txt b/npc/pre-re/mobs/dungeons/abbey.txt
new file mode 100644
index 000000000..922356452
--- /dev/null
+++ b/npc/pre-re/mobs/dungeons/abbey.txt
@@ -0,0 +1,129 @@
+//===== rAthena Script ========================================
+//= Abbey Dungeon Monster Spawn Script
+//===== By: ==================================================
+//= $ephiroth
+//===== Current Version: =====================================
+//= 1.2
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.0 Initial version [$ephiroth]
+//= 1.1 Updated spawns [Playtester]
+//= 1.2 More official spawns [Playtester]
+//============================================================
+
+// Nameless Island
+nameless_n,93,211,51,62 monster Zombie Slaughter 1864,3,15000,0,1
+nameless_n,93,211,51,62 monster Ragged Zombie 1865,3,15000,0,1
+nameless_n,93,211,51,62 monster Hell Poodle 1866,5,15000,0,1
+nameless_n,93,211,51,62 monster Banshee 1867,4,15000,0,1
+nameless_n,93,211,51,62 monster Flame Skull 1869,1,30000,0,1
+nameless_n,93,211,51,62 monster Ghoul 1036,10,30000,0,1
+nameless_n,204,225,57,70 monster Zombie Slaughter 1864,5,15000,0,1
+nameless_n,204,225,57,70 monster Ragged Zombie 1865,5,15000,0,1
+nameless_n,204,225,57,70 monster Hell Poodle 1866,5,15000,0,1
+nameless_n,204,225,57,70 monster Banshee 1867,4,15000,0,1
+nameless_n,204,225,57,70 monster Flame Skull 1869,1,30000,0,1
+nameless_n,204,225,57,70 monster Ghoul 1036,10,30000,0,1
+nameless_n,127,103,59,46 monster Zombie Slaughter 1864,2,15000,0,1
+nameless_n,127,103,59,46 monster Ragged Zombie 1865,2,15000,0,1
+nameless_n,127,103,59,46 monster Hell Poodle 1866,5,15000,0,1
+nameless_n,127,103,59,46 monster Banshee 1867,4,15000,0,1
+nameless_n,127,103,59,46 monster Flame Skull 1869,1,30000,0,1
+nameless_n,127,103,59,46 monster Ghoul 1036,10,30000,0,1
+nameless_n,234,95,40,58 monster Zombie Slaughter 1864,2,15000,0,1
+nameless_n,234,95,40,58 monster Ragged Zombie 1865,2,15000,0,1
+nameless_n,234,95,40,58 monster Hell Poodle 1866,2,15000,0,1
+nameless_n,234,95,40,58 monster Banshee 1867,4,15000,0,1
+nameless_n,234,95,40,58 monster Ghoul 1036,10,30000,0,1
+
+// Cursed Abbey Dungeon 1
+abbey01,0,0,0,0 monster Banshee 1867,30,0,0,1
+abbey01,97,270,87,87 monster Banshee 1867,30,0,0,1
+abbey01,97,270,87,87 monster Hell Poodle 1866,15,0,0,1
+abbey01,97,270,87,87 monster Zombie Slaughter 1864,10,0,0,1
+abbey01,97,270,87,87 monster Ragged Zombie 1865,10,0,0,1
+abbey01,97,270,87,87 monster Flame Skull 1869,9,0,0,1
+abbey01,97,270,87,87 monster Ghoul 1036,10,0,0,1
+abbey01,250,370,49,50 monster Banshee 1867,3,0,0,1
+abbey01,250,370,49,50 monster Hell Poodle 1866,2,0,0,1
+abbey01,250,370,49,50 monster Zombie Slaughter 1864,3,0,0,1
+abbey01,250,370,49,50 monster Ragged Zombie 1865,3,0,0,1
+abbey01,250,370,49,50 monster Flame Skull 1869,2,0,0,1
+abbey01,250,370,49,50 monster Ghoul 1036,4,0,0,1
+abbey01,374,207,39,100 monster Banshee 1867,3,0,0,1
+abbey01,374,207,39,100 monster Hell Poodle 1866,1,0,0,1
+abbey01,374,207,39,100 monster Zombie Slaughter 1864,1,0,0,1
+abbey01,374,207,39,100 monster Ragged Zombie 1865,2,0,0,1
+abbey01,374,207,39,100 monster Flame Skull 1869,1,0,0,1
+abbey01,374,207,39,100 monster Ghoul 1036,4,0,0,1
+abbey01,283,283,99,100 monster Banshee 1867,10,0,0,1
+abbey01,283,283,99,100 monster Hell Poodle 1866,5,0,0,1
+abbey01,283,283,99,100 monster Zombie Slaughter 1864,7,0,0,1
+abbey01,283,283,99,100 monster Ragged Zombie 1865,7,0,0,1
+abbey01,283,283,99,100 monster Flame Skull 1869,3,0,0,1
+abbey01,283,283,99,100 monster Ghoul 1036,10,0,0,1
+abbey01,71,67,64,58 monster Banshee 1867,3,0,0,1
+abbey01,71,67,64,58 monster Zombie Slaughter 1864,3,0,0,1
+abbey01,71,67,64,58 monster Ragged Zombie 1865,3,0,0,1
+abbey01,71,67,64,58 monster Flame Skull 1869,1,0,0,1
+abbey01,71,67,64,58 monster Ghoul 1036,10,0,0,1
+abbey01,71,67,64,58 monster Zombie Slaughter 1864,4,0,0,1
+abbey01,71,67,64,58 monster Ragged Zombie 1865,4,0,0,1
+abbey01,71,67,64,58 monster Flame Skull 1869,3,0,0,1
+abbey01,71,67,64,58 monster Ghoul 1036,10,0,0,1
+abbey01,260,70,35,30 monster Banshee 1867,7,0,0,1
+abbey01,260,70,35,30 monster Hell Poodle 1866,1,0,0,1
+abbey01,260,70,35,30 monster Zombie Slaughter 1864,1,0,0,1
+abbey01,260,70,35,30 monster Ragged Zombie 1865,2,0,0,1
+abbey01,260,70,35,30 monster Flame Skull 1869,1,0,0,1
+abbey01,260,70,35,30 monster Ghoul 1036,4,0,0,1
+abbey01,260,100,35,30 monster Banshee 1867,7,0,0,1
+abbey01,260,100,35,30 monster Hell Poodle 1866,1,0,0,1
+abbey01,260,100,35,30 monster Zombie Slaughter 1864,1,0,0,1
+abbey01,260,100,35,30 monster Ragged Zombie 1865,2,0,0,1
+abbey01,260,100,35,30 monster Flame Skull 1869,1,0,0,1
+abbey01,260,100,35,30 monster Ghoul 1036,4,0,0,1
+
+// Cursed Abbey Dungeon 2
+abbey02,150,66,36,64 monster Zombie Slaughter 1864,30,60000,0,1
+abbey02,150,66,36,64 monster Ragged Zombie 1865,10,0,0,1
+abbey02,150,66,36,64 monster Flame Skull 1869,3,0,0,1
+abbey02,150,66,36,64 monster Necromancer 1870,1,0,0,1
+abbey02,67,75,46,54 monster Zombie Slaughter 1864,30,124000,0,1
+abbey02,67,75,46,54 monster Ragged Zombie 1865,10,0,0,1
+abbey02,67,75,46,54 monster Flame Skull 1869,3,0,0,1
+abbey02,67,75,46,54 monster Necromancer 1870,1,0,0,1
+abbey02,232,76,46,54 monster Zombie Slaughter 1864,30,63000,0,1
+abbey02,232,76,46,54 monster Ragged Zombie 1865,10,0,0,1
+abbey02,232,76,46,54 monster Flame Skull 1869,3,0,0,1
+abbey02,232,76,46,54 monster Necromancer 1870,1,0,0,1
+abbey02,236,78,21,18 boss_monster Fallen Bishop Hibram 1871,1,7200000,600000,1
+abbey02,150,153,142,23 monster Zombie Slaughter 1864,30,122000,0,1
+abbey02,150,153,142,23 monster Ragged Zombie 1865,10,0,0,1
+abbey02,150,153,142,23 monster Flame Skull 1869,3,0,0,1
+abbey02,150,153,142,23 monster Necromancer 1870,1,0,0,1
+abbey02,68,220,46,58 monster Zombie Slaughter 1864,30,6000,0,1
+abbey02,68,220,46,58 monster Ragged Zombie 1865,10,0,0,1
+abbey02,68,220,46,58 monster Flame Skull 1869,3,0,0,1
+abbey02,68,220,46,58 monster Necromancer 1870,1,0,0,1
+abbey02,150,240,35,44 monster Zombie Slaughter 1864,30,120000,0,1
+abbey02,150,240,35,44 monster Ragged Zombie 1865,10,0,0,1
+abbey02,150,240,35,44 monster Flame Skull 1869,3,0,0,1
+abbey02,150,240,35,44 monster Necromancer 1870,1,0,0,1
+abbey02,232,220,46,58 monster Zombie Slaughter 1864,30,60000,0,1
+abbey02,232,220,46,58 monster Ragged Zombie 1865,10,0,0,1
+abbey02,232,220,46,58 monster Flame Skull 1869,3,0,0,1
+abbey02,232,220,46,58 monster Necromancer 1870,1,0,0,1
+
+// Cursed Abbey Dungeon 3
+abbey03,0,0,0,0 boss_monster Beelzebub 1873,1,43200000,600000,1
+abbey03,120,212,116,24 monster Necromancer 1870,10,0,0,1
+abbey03,120,212,116,24 monster Banshee 1867,10,0,0,1
+abbey03,120,212,116,24 monster Flame Skull 1869,5,0,0,1
+abbey03,122,152,111,36 monster Necromancer 1870,20,0,0,1
+abbey03,122,152,111,36 monster Banshee 1867,10,0,0,1
+abbey03,122,152,111,36 monster Flame Skull 1869,10,0,0,1
+abbey03,120,64,117,53 monster Necromancer 1870,30,0,0,1
+abbey03,120,64,117,53 monster Banshee 1867,10,0,0,1
+abbey03,120,64,117,53 monster Flame Skull 1869,10,0,0,1
diff --git a/npc/pre-re/mobs/dungeons/abyss.txt b/npc/pre-re/mobs/dungeons/abyss.txt
new file mode 100644
index 000000000..6bce6bcbc
--- /dev/null
+++ b/npc/pre-re/mobs/dungeons/abyss.txt
@@ -0,0 +1,62 @@
+//===== rAthena Script =======================================
+//= Abyss Lake Dungeon Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.3
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.0 Real spawns by Poki#3 [Nexon]
+//= 1.1 More official spawns [Playtester]
+//= 1.2 Official X.3 spawns [Playtester]
+//= 1.3 Corrected MVP spawn variance. [L0ne_W0lf]
+//============================================================
+
+//==================================================
+// abyss_01 - Abyss Lakes Underground Cave F1
+//==================================================
+abyss_01,0,0,0,0 monster Mimic 1191,10,600000,0,0
+abyss_01,0,0,0,0 monster Ancient Mimic 1699,10,600000,0,0
+abyss_01,152,205,130,70 monster Ferus 1714,10,0,0,0
+abyss_01,152,205,130,70 monster Ferus 1717,25,300000,0,0
+abyss_01,152,205,130,70 monster Novus 1715,3,0,0,0
+abyss_01,152,205,130,70 monster Novus 1718,3,0,0,0
+abyss_01,103,93,85,70 monster Ferus 1714,10,0,0,0
+abyss_01,103,93,85,70 monster Ferus 1717,15,300000,0,0
+abyss_01,103,93,85,70 monster Novus 1715,3,0,0,0
+abyss_01,103,93,85,70 monster Novus 1718,3,0,0,0
+abyss_01,195,102,85,70 monster Ferus 1714,10,0,0,0
+abyss_01,195,102,85,70 monster Ferus 1717,15,300000,0,0
+abyss_01,195,102,85,70 monster Novus 1715,3,0,0,0
+abyss_01,195,102,85,70 monster Novus 1718,3,0,0,0
+abyss_01,110,170,15,15 monster Penomena 1216,15,660000,300000,0
+abyss_01,195,147,5,10 monster Penomena 1216,5,720000,300000,0
+abyss_01,140,100,15,5 monster Penomena 1216,10,780000,300000,0
+abyss_01,260,40,14,14 monster Dragon Egg 1721,3,1200000,600000,0
+abyss_01,150,160,50,50 monster Dragon Egg 1721,5,1800000,600000,0
+
+//==================================================
+// abyss_02 - Abyss Lakes Underground Cave F2
+//==================================================
+abyss_02,0,0,0,0 monster Mimic 1191,10,900000,0,0
+abyss_02,0,0,0,0 monster Ancient Mimic 1699,10,900000,0,0
+abyss_02,0,0,0,0 monster Ferus 1714,50,300000,0,0
+abyss_02,0,0,0,0 monster Acidus 1713,10,600000,0,0
+abyss_02,0,0,0,0 monster Acidus 1716,60,300000,0,0
+abyss_02,0,0,0,0 monster Novus 1715,5,0,0,0
+abyss_02,0,0,0,0 monster Novus 1718,5,0,0,0
+abyss_02,0,0,0,0 monster Dragon Egg 1721,10,1800000,600000,0
+
+//==================================================
+// abyss_03 - Abyss Lakes Underground Cave F3
+//==================================================
+abyss_03,0,0,0,0 monster Mimic 1191,10,300000,0,0
+abyss_03,0,0,0,0 monster Ancient Mimic 1699,10,300000,0,0
+abyss_03,0,0,0,0 monster Acidus 1713,60,600000,0,0
+abyss_03,0,0,0,0 monster Acidus 1716,10,300000,0,0
+abyss_03,0,0,0,0 monster Ferus 1714,10,300000,0,0
+abyss_03,0,0,0,0 monster Ferus 1717,10,300000,0,0
+abyss_03,0,0,0,0 monster Dragon Egg 1721,10,1800000,600000,0
+abyss_03,0,0,0,0 monster Hydrolancer 1720,3,3000000,2400000,0
+abyss_03,0,0,0,0 boss_monster Detardeurus 1719,1,10800000,600000,0
diff --git a/npc/pre-re/mobs/dungeons/alde_dun.txt b/npc/pre-re/mobs/dungeons/alde_dun.txt
new file mode 100644
index 000000000..e78f2d6ff
--- /dev/null
+++ b/npc/pre-re/mobs/dungeons/alde_dun.txt
@@ -0,0 +1,64 @@
+//===== rAthena Script =======================================
+//= Al De Baran Dungeon Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.3
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.1 Official kRO 10.1 spawns [Playtester]
+//= 1.2 More accurate spawns [Playtester]
+//= 1.3 Moved Clock Tower spawns to their own file. [L0ne_W0lf]
+//============================================================
+
+//==================================================
+// alde_dun01 - Clock Tower B1
+//==================================================
+alde_dun01,0,0,0,0 monster Arclouze 1194,50,0,0,0
+alde_dun01,0,0,0,0 monster Drainliar 1111,40,0,0,0
+
+//==================================================
+// alde_dun02 - Clock Tower B2
+//==================================================
+alde_dun02,0,0,0,0 monster High Orc 1213,50,0,0,0
+alde_dun02,0,0,0,0 monster Orc Archer 1189,20,0,0,0
+alde_dun02,0,0,0,0 monster Brilight 1211,20,0,0,0
+alde_dun02,0,0,0,0 monster Arclouze 1194,20,0,0,0
+
+//==================================================
+// alde_dun03 - Clock Tower B3
+//==================================================
+alde_dun03,0,0,0,0 monster Cramp 1209,25,0,0,0
+alde_dun03,0,0,0,0 monster Drainliar 1111,20,0,0,0
+alde_dun03,77,28,5,5 monster Cramp 1209,3,40000,20000,0
+alde_dun03,0,0,0,0 monster Penomena 1216,45,180000,120000,0
+alde_dun03,184,61,30,30 monster Cramp 1209,10,300000,150000,0
+alde_dun03,184,61,30,30 monster Drainliar 1111,10,300000,150000,0
+alde_dun03,163,56,10,10 monster Penomena 1216,3,600000,300000,0
+alde_dun03,168,42,6,6 monster Penomena 1216,2,600000,300000,0
+alde_dun03,147,30,8,8 monster Penomena 1216,2,600000,300000,0
+alde_dun03,126,53,20,20 monster Cramp 1209,5,300000,150000,0
+alde_dun03,126,53,20,20 monster Drainliar 1111,5,300000,150000,0
+alde_dun03,102,40,10,10 monster Penomena 1216,4,600000,300000,0
+alde_dun03,130,220,40,40 monster Cramp 1209,10,300000,150000,0
+alde_dun03,130,220,40,40 monster Drainliar 1111,10,300000,150000,0
+alde_dun03,155,201,25,25 monster Penomena 1216,7,600000,300000,0
+alde_dun03,160,181,8,8 monster Penomena 1216,2,600000,300000,0
+alde_dun03,179,166,6,6 monster Penomena 1216,4,600000,300000,0
+alde_dun03,127,204,9,9 monster Penomena 1216,5,600000,300000,0
+alde_dun03,127,204,9,9 monster Cramp 1209,3,300000,150000,0
+alde_dun03,142,157,8,8 monster Penomena 1216,5,600000,300000,0
+alde_dun03,135,140,8,8 monster Penomena 1216,3,600000,300000,0
+alde_dun03,120,157,8,8 monster Penomena 1216,3,600000,300000,0
+alde_dun03,120,157,8,8 monster Drainliar 1111,10,300000,150000,0
+
+//==================================================
+// alde_dun04 - Clock Tower B4
+//==================================================
+alde_dun04,0,0,0,0 monster Bathory 1102,50,0,0,0
+alde_dun04,0,0,0,0 monster Joker 1131,10,0,0,0
+alde_dun04,0,0,0,0 monster Executioner 1205,1,3600000,1800000,1
+alde_dun04,0,0,0,0 monster Mysteltainn 1203,1,3600000,1800000,1
+alde_dun04,0,0,0,0 monster Ogretooth 1204,1,3600000,1800000,1
+alde_dun04,0,0,0,0 monster Whisper 1179,10,0,0,0
diff --git a/npc/pre-re/mobs/dungeons/ama_dun.txt b/npc/pre-re/mobs/dungeons/ama_dun.txt
new file mode 100644
index 000000000..7f3504d06
--- /dev/null
+++ b/npc/pre-re/mobs/dungeons/ama_dun.txt
@@ -0,0 +1,42 @@
+//===== rAthena Script =======================================
+//= Amatsu Dungeon Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.2
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.1 Official kRO 10.1 spawns [Playtester]
+//= 1.2 Corrected MVP spawn variance. [L0ne_W0lf]
+//============================================================
+
+//==================================================
+// ama_dun01 - Tatami Maze
+//==================================================
+ama_dun01,0,0,0,0 monster Miyabi Doll 1404,65,0,0,0
+ama_dun01,0,0,0,0 monster Firelock Soldier 1403,45,0,0,0
+ama_dun01,0,0,0,0 monster Shinobi 1401,2,180000,90000,0
+
+//==================================================
+// ama_dun02 - Battle Field in the Underground Forest
+//==================================================
+ama_dun02,0,0,0,0 monster Poison Toad 1402,35,180000,90000,0
+ama_dun02,0,0,0,0 monster Firelock Soldier 1403,20,60000,30000,0
+ama_dun02,0,0,0,0 monster Miyabi Doll 1404,5,120000,60000,0
+ama_dun02,0,0,0,0 monster Shinobi 1401,2,180000,90000,0
+ama_dun02,0,0,0,0 monster Horong 1129,10,0,0,0
+ama_dun02,0,0,0,0 monster The Paper 1375,1,180000,90000,0
+
+//==================================================
+// ama_dun03 - Amatsu Underground Shrine
+//==================================================
+ama_dun03,0,0,0,0 monster Shinobi 1401,35,600000,300000,0
+ama_dun03,0,0,0,0 monster Firelock Soldier 1403,25,0,0,0
+ama_dun03,0,0,0,0 monster Miyabi Doll 1404,1,0,0,0
+ama_dun03,0,0,0,0 monster Tengu 1405,40,600000,300000,0
+ama_dun03,0,0,0,0 monster Mimic 1191,5,0,0,0
+ama_dun03,0,0,0,0 monster The Paper 1375,20,600000,300000,0
+ama_dun03,0,0,0,0 boss_monster Samurai Specter 1492,1,5460000,600000,0
+ama_dun03,0,0,0,0 monster Shinobi 1401,20,5450000,3600000,0
+ama_dun03,0,0,0,0 monster Tengu 1405,15,5440000,3600000,0
diff --git a/npc/pre-re/mobs/dungeons/anthell.txt b/npc/pre-re/mobs/dungeons/anthell.txt
new file mode 100644
index 000000000..3df4faca1
--- /dev/null
+++ b/npc/pre-re/mobs/dungeons/anthell.txt
@@ -0,0 +1,122 @@
+//===== rAthena Script =======================================
+//= Ant Hell Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.2
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.1 Official kRO 10.1 spawns [Playtester]
+//= 1.2 Corrected MVP spawn variance. [L0ne_W0lf]
+//============================================================
+
+//==================================================
+// anthell01 - Ant Hell F1
+//==================================================
+anthell01,0,0,0,0 monster Familiar 1005,20,0,0,0
+anthell01,0,0,0,0 monster Andre 1095,15,0,0,0
+anthell01,0,0,0,0 monster Piere 1160,50,0,0,0
+anthell01,0,0,0,0 monster Deniro 1105,40,0,0,0
+anthell01,0,0,0,0 monster Vitata 1176,10,0,0,0
+anthell01,0,0,0,0 monster Giearth 1121,1,0,0,0
+anthell01,0,0,0,0 monster Maya Purple 1289,1,7200000,3600000,1
+anthell01,28,266,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,29,266,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,28,265,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,28,264,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,28,263,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,28,262,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,29,265,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,29,264,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,29,263,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,29,262,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,30,265,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,30,264,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,30,263,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,30,262,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,30,261,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,31,264,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,31,263,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,31,262,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,32,263,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,40,270,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,40,269,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,40,268,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,40,267,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,40,266,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,40,265,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,41,269,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,41,268,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,41,267,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,41,266,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,41,265,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,30,198,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,31,198,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,32,197,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,32,196,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,31,195,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,30,195,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,31,194,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,33,195,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,33,196,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,30,190,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,31,190,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,32,189,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,32,198,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,32,187,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,32,186,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,31,186,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,40,168,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,41,168,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,42,168,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,42,167,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,42,166,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,42,165,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,41,165,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,43,165,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,44,165,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,45,165,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,44,166,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,43,166,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,30,187,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,29,186,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,38,186,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,37,186,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,36,186,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,35,186,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,36,187,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,38,184,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,38,183,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,37,183,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,99,127,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,98,127,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,97,127,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,97,126,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,97,125,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,97,124,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,97,123,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,98,121,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,99,121,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,100,121,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,101,121,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,102,121,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,104,123,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,104,122,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,104,120,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,103,120,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,103,121,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,102,121,0,0 monster Ant Egg 1097,1,60000,30000,0
+anthell01,105,124,0,0 monster Ant Egg 1097,1,60000,30000,0
+
+//==================================================
+// anthell02 - Ant Hell F2
+//==================================================
+anthell02,0,0,0,0 monster Ant Egg 1097,15,0,0,0
+anthell02,0,0,0,0 monster Familiar 1005,20,0,0,0
+anthell02,0,0,0,0 monster Andre 1095,50,0,0,0
+anthell02,0,0,0,0 monster Piere 1160,15,0,0,0
+anthell02,0,0,0,0 monster Deniro 1105,15,0,0,0
+anthell02,0,0,0,0 monster Vitata 1176,30,0,0,0
+anthell02,0,0,0,0 monster Giearth 1121,3,0,0,0
+anthell02,0,0,0,0 boss_monster Maya 1147,1,7200000,600000,1
diff --git a/npc/pre-re/mobs/dungeons/ayo_dun.txt b/npc/pre-re/mobs/dungeons/ayo_dun.txt
new file mode 100644
index 000000000..b3c9c7fa4
--- /dev/null
+++ b/npc/pre-re/mobs/dungeons/ayo_dun.txt
@@ -0,0 +1,31 @@
+//===== rAthena Script =======================================
+//= Ayothaya Dungeon Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.5
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.1 Using euRO data [Ishizu]
+//= 1.2 Moved Tao Gunka to west cave of Comodo [Lupus]
+//= 1.3 Official jRO 10.3 spawns [Playtester]
+//= 1.4 More accurate spawns [Playtester]
+//= 1.5 Corrected MVP spawn variance. [L0ne_W0lf]
+//============================================================
+
+//==================================================
+// ayo_dun01 - Ancient Shrine Maze
+//==================================================
+ayo_dun01,0,0,0,0 monster Leaf Cat 1586,65,0,0,0
+ayo_dun01,0,0,0,0 monster Whisper 1179,10,0,0,0
+ayo_dun01,0,0,0,0 monster Kraben 1587,5,0,0,0
+ayo_dun01,0,0,0,0 monster Ghoul 1036,30,0,0,0
+
+//==================================================
+// ayo_dun02 - Inside Ancient Shrine
+//==================================================
+ayo_dun02,0,0,0,0 monster Tamruan 1584,100,0,0,0
+ayo_dun02,0,0,0,0 monster Whisper 1179,20,0,0,0
+ayo_dun02,0,0,0,0 monster Kraben 1587,20,0,0,0
+ayo_dun02,150,90,15,30 boss_monster Lady Tanee 1688,1,25200000,600000,0
diff --git a/npc/pre-re/mobs/dungeons/beach_dun.txt b/npc/pre-re/mobs/dungeons/beach_dun.txt
new file mode 100644
index 000000000..5ecd025b1
--- /dev/null
+++ b/npc/pre-re/mobs/dungeons/beach_dun.txt
@@ -0,0 +1,40 @@
+//===== rAthena Script =======================================
+//= Beach Dungeon Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.4
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.1 Official kRO 10.1 spawns [Playtester]
+//= 1.2 Small 11.1 spawn update [Playtester]
+//= 1.3 More accurate spawns [Playtester]
+//= 1.4 Corrected MVP spawn variance. [L0ne_W0lf]
+//============================================================
+
+//==================================================
+// beach_dun - Karu, the West Cave
+//==================================================
+beach_dun,0,0,0,0 monster Medusa 1148,60,0,0,0
+beach_dun,0,0,0,0 monster Merman 1264,3,10000,5000,0
+beach_dun,0,0,0,0 monster Nereid 1255,20,0,0,0
+beach_dun,0,0,0,0 monster Pest 1256,20,0,0,0
+beach_dun,0,0,0,0 boss_monster Tao Gunka 1583,1,18000000,600000,0
+
+//==================================================
+// beach_dun2 - Ruande, the North Cave
+//==================================================
+beach_dun2,0,0,0,0 monster Megalith 1274,15,0,0,0
+beach_dun2,0,0,0,0 monster Nereid 1255,10,0,0,0
+beach_dun2,0,0,0,0 monster Stalactic Golem 1278,65,5000,0,0
+beach_dun2,0,0,0,0 monster Tri Joint 1279,20,0,0,0
+beach_dun2,0,0,0,0 monster Hydra 1068,10,0,0,0
+
+//==================================================
+// beach_dun3 - Mao, the East Cave
+//==================================================
+beach_dun3,0,0,0,0 monster Nereid 1255,1,200000,100000,0
+beach_dun3,0,0,0,0 monster Thara Frog 1034,50,0,0,0
+beach_dun3,0,0,0,0 monster Hydra 1068,30,0,0,0
+beach_dun3,0,0,0,0 monster Megalodon 1064,30,0,0,0
diff --git a/npc/pre-re/mobs/dungeons/c_tower.txt b/npc/pre-re/mobs/dungeons/c_tower.txt
new file mode 100644
index 000000000..a6bc486e2
--- /dev/null
+++ b/npc/pre-re/mobs/dungeons/c_tower.txt
@@ -0,0 +1,101 @@
+//===== rAthena Script =======================================
+//= Clock Tower Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.0 Split from combined Alde and CT spawn file. [L0ne_W0lf]
+//============================================================
+
+//==================================================
+// c_tower1 - Clock Tower F1
+//==================================================
+c_tower1,0,0,0,0 monster Punk 1199,70,0,0,0
+c_tower1,0,0,0,0 monster Rideword 1195,70,0,0,0
+c_tower1,0,0,0,0 monster Clock Tower Manager 1270,1,0,0,0
+c_tower1,0,0,0,0 monster Bathory 1102,1,0,0,0
+
+//==================================================
+// c_tower2 - Clock Tower F2
+//==================================================
+c_tower2,0,0,0,0 monster Punk 1199,40,0,0,0
+c_tower2,0,0,0,0 monster Clock 1269,40,0,0,0
+c_tower2,0,0,0,0 monster Rideword 1195,7,0,0,0
+c_tower2,128,100,10,10 monster Rideword 1195,1,60000,30000,0
+c_tower2,149,199,10,10 monster Rideword 1195,1,120000,60000,0
+c_tower2,149,199,10,10 monster Rideword 1195,1,300000,120000,0
+c_tower2,273,286,20,20 monster Rideword 1195,1,120000,60000,0
+c_tower2,273,286,20,20 monster Rideword 1195,1,300000,120000,0
+c_tower2,0,0,0,0 monster Mimic 1191,3,0,0,0
+c_tower2,0,0,0,0 monster Clock Tower Manager 1270,1,0,0,0
+c_tower2,0,0,0,0 monster Elder 1377,1,3600000,1800000,0
+c_tower2,0,0,0,0 monster Elder 1377,1,3600000,1800000,0
+
+//==================================================
+// c_tower3 - Clock Tower F3
+//==================================================
+c_tower3,0,0,0,0 monster Alarm 1193,80,0,0,0
+c_tower3,0,0,0,0 monster Rideword 1195,5,0,0,0
+c_tower3,153,220,10,10 monster Rideword 1195,1,126000,100000,0
+c_tower3,0,0,0,0 monster Mimic 1191,7,0,0,0
+c_tower3,0,0,0,0 monster Clock Tower Manager 1270,3,0,0,0
+
+//==================================================
+// c_tower4 - Clock Tower F4
+//==================================================
+c_tower4,0,0,0,0 monster Clock Tower Manager 1270,2,1800000,0,0
+c_tower4,0,0,0,0 monster Clock Tower Manager 1270,1,3600000,0,0
+c_tower4,0,0,0,0 monster Whisper 1179,5,0,0,0
+c_tower4,0,0,0,0 monster Elder 1377,1,3600000,1800000,0
+c_tower4,0,0,0,0 monster Elder 1377,1,1800000,600000,0
+c_tower4,108,198,100,10 monster Alarm 1193,6,0,0,0
+c_tower4,108,178,100,10 monster Alarm 1193,6,0,0,0
+c_tower4,108,158,100,10 monster Alarm 1193,6,0,0,0
+c_tower4,108,138,100,10 monster Alarm 1193,6,0,0,0
+c_tower4,108,118,100,10 monster Alarm 1193,6,0,0,0
+c_tower4,108,98,100,10 monster Clock 1269,7,0,0,0
+c_tower4,108,78,100,10 monster Clock 1269,7,0,0,0
+c_tower4,108,58,100,10 monster Clock 1269,7,0,0,0
+c_tower4,108,38,100,10 monster Clock 1269,7,0,0,0
+c_tower4,108,18,100,10 monster Clock 1269,7,0,0,0
+c_tower4,108,198,100,10 monster Owl Duke 1320,3,0,0,0
+c_tower4,108,178,100,10 monster Owl Duke 1320,3,0,0,0
+c_tower4,108,158,100,10 monster Owl Duke 1320,3,0,0,0
+c_tower4,108,138,100,10 monster Owl Duke 1320,3,0,0,0
+c_tower4,108,118,100,10 monster Owl Duke 1320,3,0,0,0
+c_tower4,108,98,100,10 monster Owl Duke 1320,3,0,0,0
+c_tower4,108,78,100,10 monster Owl Duke 1320,3,0,0,0
+c_tower4,108,58,100,10 monster Owl Duke 1320,3,0,0,0
+c_tower4,108,38,100,10 monster Owl Duke 1320,3,0,0,0
+c_tower4,108,18,100,10 monster Owl Duke 1320,3,0,0,0
+c_tower4,98,180,0,0 monster Rideword 1195,1,300000,150000,1
+c_tower4,97,180,0,0 monster Rideword 1195,1,240000,150000,1
+c_tower4,96,180,0,0 monster Rideword 1195,1,350000,150000,1
+c_tower4,95,180,0,0 monster Rideword 1195,1,410000,150000,1
+c_tower4,94,180,0,0 monster Rideword 1195,1,320000,150000,1
+c_tower4,93,180,0,0 monster Rideword 1195,1,260000,150000,1
+c_tower4,92,180,0,0 monster Rideword 1195,1,280000,150000,1
+c_tower4,91,180,0,0 monster Rideword 1195,1,330000,150000,1
+c_tower4,87,180,0,0 monster Rideword 1195,1,400000,150000,1
+c_tower4,86,180,0,0 monster Rideword 1195,1,380000,150000,1
+c_tower4,80,179,0,0 monster Rideword 1195,1,360000,150000,1
+c_tower4,80,180,0,0 monster Rideword 1195,1,350000,150000,1
+c_tower4,80,181,0,0 monster Rideword 1195,1,290000,150000,1
+c_tower4,80,182,0,0 monster Rideword 1195,1,300000,150000,1
+c_tower4,80,183,0,0 monster Rideword 1195,1,340000,150000,1
+c_tower4,128,194,0,0 monster Mimic 1191,1,1800000,900000,1
+c_tower4,38,193,0,0 monster Mimic 1191,1,1800000,900000,1
+c_tower4,37,159,0,0 monster Mimic 1191,1,1800000,900000,1
+c_tower4,31,139,0,0 monster Mimic 1191,1,1800000,900000,1
+c_tower4,104,14,0,0 monster Mimic 1191,1,1800000,900000,1
+c_tower4,104,27,0,0 monster Mimic 1191,1,900000,400000,1
+c_tower4,105,24,0,0 monster Mimic 1191,1,900000,400000,1
+c_tower4,205,105,0,0 monster Mimic 1191,1,1800000,900000,1
+c_tower4,0,0,0,0 monster Mimic 1191,1,1800000,900000,1
+c_tower4,148,85,0,0 monster Mimic 1191,1,1800000,900000,1
+c_tower4,189,51,0,0 monster Mimic 1191,1,1800000,900000,1
+c_tower4,170,34,0,0 monster Mimic 1191,1,1800000,900000,1
+c_tower4,42,41,0,0 monster Executioner 1205,1,7200000,3600000,1
diff --git a/npc/pre-re/mobs/dungeons/ein_dun.txt b/npc/pre-re/mobs/dungeons/ein_dun.txt
new file mode 100644
index 000000000..755e6d7ab
--- /dev/null
+++ b/npc/pre-re/mobs/dungeons/ein_dun.txt
@@ -0,0 +1,40 @@
+//===== rAthena Script =======================================
+//= Einbech Mine Dungeon Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.5
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.0 spawn N and spawn delays aren't yet correct, so I set
+//= respawn delays quite big for now [Lupus]
+//= 1.1 Fixed monsters spawn places
+//= 1.2 Update monster spawn numbers according to info on emperium.org [MasterOfMuppets]
+//= 1.3 Official kRO 10.1 spawns [Playtester]
+//= 1.4 More accurate spawns [Playtester]
+//= 1.5 Corrected MVP spawn variance. [L0ne_W0lf]
+//============================================================
+
+//==================================================
+// ein_dun01 - Mine Dungeon F1
+//==================================================
+ein_dun01,0,0,0,0 monster Pitman 1616,70,0,0,0
+ein_dun01,0,0,0,0 monster Noxious 1620,30,300000,0,0
+ein_dun01,0,0,0,0 monster Porcellio 1619,30,0,0,0
+ein_dun01,0,0,0,0 monster Venomous 1621,10,300000,0,0
+ein_dun01,0,0,0,0 monster Old Stove 1617,1,1800000,600000,0
+ein_dun01,0,0,0,0 monster Ungoliant 1618,1,3600000,3000000,0
+
+//==================================================
+// ein_dun02 - Mine Dungeon F2
+//==================================================
+ein_dun02,0,0,0,0 monster Obsidian 1615,10,0,0,0
+ein_dun02,0,0,0,0 monster Mineral 1614,15,0,0,0
+ein_dun02,75,151,60,133 monster Obsidian 1615,30,300000,0,0
+ein_dun02,230,155,63,140 monster Mineral 1614,35,300000,0,0
+ein_dun02,0,0,0,0 monster Teddy Bear 1622,10,0,0,0
+ein_dun02,155,230,140,55 monster Teddy Bear 1622,20,480000,0,0
+ein_dun02,0,0,0,0 monster Old Stove 1617,10,0,0,0
+ein_dun02,154,80,134,55 monster Old Stove 1617,20,480000,0,0
+ein_dun02,0,0,0,0 boss_monster RSX-0806 1623,1,7500000,600000,0
diff --git a/npc/pre-re/mobs/dungeons/gef_dun.txt b/npc/pre-re/mobs/dungeons/gef_dun.txt
new file mode 100644
index 000000000..70d0661e3
--- /dev/null
+++ b/npc/pre-re/mobs/dungeons/gef_dun.txt
@@ -0,0 +1,98 @@
+//===== rAthena Script =======================================
+//= Geffen Dungeon Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.4
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.2 Official kRO 10.1 spawns [Playtester]
+//= 1.3 More accurate spawns [Playtester]
+//= 1.4 Corrected MVP spawn variance. [L0ne_W0lf]
+//============================================================
+
+//==================================================
+// gef_dun00 - Geffen Dungeon F1
+//==================================================
+gef_dun00,0,0,0,0 monster Hunter Fly 1035,30,60000,30000,0
+gef_dun00,0,0,0,0 monster Poporing 1031,15,0,0,0
+gef_dun00,0,0,0,0 monster Poison Spore 1077,25,0,0,0
+gef_dun00,91,106,0,0 monster Red Plant 1078,1,300000,150000,0
+gef_dun00,92,108,0,0 monster Yellow Plant 1081,1,300000,150000,0
+gef_dun00,114,106,0,0 monster Green Plant 1080,1,300000,150000,0
+gef_dun00,0,0,0,0 monster Red Plant 1078,1,300000,150000,0
+gef_dun00,0,0,0,0 monster Shining Plant 1083,1,3000000,1500000,0
+gef_dun00,0,0,0,0 monster Red Plant 1078,10,180000,90000,1
+gef_dun00,89,111,3,3 monster Black Mushroom 1084,3,180000,90000,1
+gef_dun00,121,109,3,3 monster Black Mushroom 1084,3,180000,90000,1
+
+//==================================================
+// gef_dun01 - Geffen Dungeon F2
+//==================================================
+gef_dun01,0,0,0,0 monster Drainliar 1111,20,0,0,0
+gef_dun01,0,0,0,0 monster Nightmare 1061,30,0,0,0
+gef_dun01,0,0,0,0 monster Ogretooth 1204,1,1800000,1200000,0
+gef_dun01,0,0,0,0 monster Zombie 1015,25,0,0,0
+gef_dun01,0,0,0,0 monster Ghoul 1036,40,0,0,0
+gef_dun01,0,0,0,0 monster Jakk 1130,40,300000,100000,0
+gef_dun01,234,121,0,0 monster Blue Plant 1079,1,300000,100000,0
+gef_dun01,0,0,0,0 boss_monster Dracula 1389,1,3600000,600000,1
+gef_dun01,0,0,0,0 monster Black Mushroom 1084,5,180000,90000,1
+gef_dun01,188,104,10,10 monster White Plant 1082,3,180000,90000,1
+gef_dun01,263,115,10,10 monster White Plant 1082,3,180000,90000,1
+gef_dun01,48,67,10,10 monster White Plant 1082,2,180000,90000,1
+gef_dun01,150,237,10,10 monster White Plant 1082,2,180000,90000,1
+
+//==================================================
+// gef_dun02 - Geffenia
+//==================================================
+gef_dun02,0,0,0,0 monster Ghoul 1036,10,0,0,0
+gef_dun02,0,0,0,0 monster Whisper 1179,20,0,0,0
+gef_dun02,0,0,0,0 monster Hunter Fly 1035,10,0,0,0
+gef_dun02,0,0,0,0 monster Marionette 1143,20,0,0,0
+gef_dun02,0,0,0,0 monster Deviruchi 1109,35,0,0,0
+gef_dun02,0,0,0,0 monster Nightmare 1061,40,60000,0,0
+gef_dun02,0,0,0,0 boss_monster Doppelganger 1046,1,7200000,600000,1
+gef_dun02,214,212,10,10 monster White Plant 1082,3,180000,90000,1
+gef_dun02,215,67,10,10 monster White Plant 1082,3,180000,90000,1
+gef_dun02,72,210,20,20 monster White Plant 1082,3,180000,90000,1
+gef_dun02,106,151,20,7 monster White Plant 1082,3,180000,90000,1
+gef_dun02,58,167,10,10 monster Shining Plant 1083,1,1800000,900000,1
+gef_dun02,185,83,3,3 monster Shining Plant 1083,1,1800000,900000,1
+
+//==================================================
+// gef_dun03 - Geffenia (Event Map)
+//==================================================
+gef_dun03,0,0,0,0 monster Hellion Revenant 1626,1,600000,300000,0
+gef_dun03,0,0,0,0 monster Wraith 1192,8,60000,30000,0
+gef_dun03,0,0,0,0 monster Wraith Dead 1291,2,60000,30000,0
+gef_dun03,0,0,0,0 monster Wind Ghost 1263,3,60000,30000,0
+gef_dun03,0,0,0,0 monster Shining Plant 1083,3,1800000,900000,1
+gef_dun03,0,0,0,0 monster White Plant 1082,10,180000,90000,1
+
+//==================================================
+// Old Event Spawn in case you want to use them
+//==================================================
+//gef_dun03,0,0,0,0 monster Baphomet 1039,1,7200000,7200000,1
+//gef_dun03,0,0,0,0 monster Doppelganger 1046,1,7200000,7200000,1
+//gef_dun03,0,0,0,0 monster Deviruchi 1109,8,0,0,0
+//gef_dun03,0,0,0,0 monster Joker 1131,5,300000,100000,0
+//gef_dun03,0,0,0,0 monster Khalitzburg 1132,2,0,0,0
+//gef_dun03,0,0,0,0 monster Knight of Abyss 1219,2,300000,0,0
+//gef_dun03,0,0,0,0 monster Gryphon 1259,1,7200000,3600000,1
+//gef_dun03,0,0,0,0 monster Blood Knight 1268,2,300000,0,0
+//gef_dun03,0,0,0,0 monster Dark Lord 1272,1,7200000,7200000,1
+//gef_dun03,0,0,0,0 monster Alice 1275,3,0,0,0
+//gef_dun03,0,0,0,0 monster Chimera 1283,1,7200000,7200000,1
+//gef_dun03,0,0,0,0 monster Mini Demon 1292,2,300000,0,0
+//gef_dun03,0,0,0,0 monster Dark Illusion 1302,2,300000,0,0
+//gef_dun03,0,0,0,0 monster Apocalypse 1365,2,300000,0,0
+//gef_dun03,0,0,0,0 monster Succubus 1370,10,0,0,0
+//gef_dun03,0,0,0,0 monster Fake Angel 1371,8,0,0,0
+//gef_dun03,0,0,0,0 monster Lord of Death 1373,1,7200000,7200000,1
+//gef_dun03,0,0,0,0 monster Incubus 1374,10,0,0,0
+//gef_dun03,0,0,0,0 monster Nightmare Terror 1379,3,0,0,0
+//gef_dun03,0,0,0,0 monster Violy 1390,10,0,0,0
+//gef_dun03,0,0,0,0 monster Shining Plant 1083,3,1800000,900000,1
+//gef_dun03,0,0,0,0 monster White Plant 1082,10,180000,90000,1
diff --git a/npc/pre-re/mobs/dungeons/gefenia.txt b/npc/pre-re/mobs/dungeons/gefenia.txt
new file mode 100644
index 000000000..a3b1214f6
--- /dev/null
+++ b/npc/pre-re/mobs/dungeons/gefenia.txt
@@ -0,0 +1,129 @@
+//===== rAthena Script =======================================
+//= Geffenia Dungeon Monster Spawn Script
+//===== By: ==================================================
+//= Muad_Dib, rAthena dev team
+//===== Current Version: =====================================
+//= 1.1
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= Added 1st Version. [Muad_Dib]
+//= Conversion to eA [MasterOfMuppets]
+//= Updated spawns, information from emperium.org [MasterOfMuppets]
+//= Kept the old spawns incase someone would want them.
+//= Aegis ep 10.1 spawns [MasterOfMuppets]
+//============================================================
+
+//==================================================
+// gefenia01 - Geffenia
+//==================================================
+gefenia01,0,0,0,0 monster False Angel 1371,60,0,0,0
+gefenia01,0,0,0,0 monster Succubus 1370,10,0,0,0
+gefenia01,0,0,0,0 monster Incubus 1374,10,0,0,0
+gefenia01,0,0,0,0 monster Violy 1390,30,0,0,0
+gefenia01,0,0,0,0 monster Mini Demon 1292,20,0,0,0
+gefenia01,0,0,0,0 monster Abysmal Knight 1219,10,0,0,0
+gefenia01,0,0,0,0 monster Bloody Knight 1268,1,3600000,3000000,0
+gefenia01,0,0,0,0 monster Mysteltainn 1203,1,10800000,7200000,0
+gefenia01,0,0,0,0 monster Executioner 1205,1,18000000,14400000,0
+gefenia01,0,0,0,0 monster Ogretooth 1204,1,18000000,14400000,0
+
+//==================================================
+// gefenia02 - Geffenia
+//==================================================
+gefenia02,0,0,0,0 monster False Angel 1371,30,0,0,0
+gefenia02,0,0,0,0 monster Succubus 1370,20,0,0,0
+gefenia02,0,0,0,0 monster Incubus 1374,10,0,0,0
+gefenia02,0,0,0,0 monster Violy 1390,40,0,0,0
+gefenia02,0,0,0,0 monster Mini Demon 1292,30,0,0,0
+gefenia02,0,0,0,0 monster Abysmal Knight 1219,10,0,0,0
+gefenia02,0,0,0,0 monster Bloody Knight 1268,1,3600000,3000000,0
+gefenia02,0,0,0,0 monster Mysteltainn 1203,1,18000000,14400000,0
+gefenia02,0,0,0,0 monster Executioner 1205,1,18000000,14400000,0
+gefenia02,0,0,0,0 monster Ogretooth 1204,1,10800000,7200000,0
+
+//==================================================
+// gefenia03 - Geffenia
+//==================================================
+gefenia03,0,0,0,0 monster False Angel 1371,40,0,0,0
+gefenia03,0,0,0,0 monster Succubus 1370,10,0,0,0
+gefenia03,0,0,0,0 monster Incubus 1374,20,0,0,0
+gefenia03,0,0,0,0 monster Violy 1390,40,0,0,0
+gefenia03,0,0,0,0 monster Mini Demon 1292,30,0,0,0
+gefenia03,0,0,0,0 monster Abysmal Knight 1219,10,0,0,0
+gefenia03,0,0,0,0 monster Bloody Knight 1268,1,3600000,3000000,0
+gefenia03,0,0,0,0 monster Mysteltainn 1203,1,18000000,14400000,0
+gefenia03,0,0,0,0 monster Executioner 1205,1,10800000,7200000,0
+gefenia03,0,0,0,0 monster Ogretooth 1204,1,18000000,14400000,0
+
+//==================================================
+// gefenia04 - Geffenia
+//==================================================
+gefenia04,0,0,0,0 monster False Angel 1371,30,0,0,0
+gefenia04,0,0,0,0 monster Succubus 1370,10,600000,300000,0
+gefenia04,0,0,0,0 monster Incubus 1374,10,600000,300000,0
+gefenia04,0,0,0,0 monster Violy 1390,30,0,0,0
+gefenia04,0,0,0,0 monster Mini Demon 1292,20,0,0,0
+gefenia04,0,0,0,0 monster Abysmal Knight 1219,10,0,0,0
+gefenia04,0,0,0,0 monster Bloody Knight 1268,1,3600000,3000000,0
+gefenia04,0,0,0,0 monster Mysteltainn 1203,1,18000000,14400000,0
+gefenia04,0,0,0,0 monster Executioner 1205,1,18000000,14400000,0
+gefenia04,0,0,0,0 monster Ogretooth 1204,1,18000000,14400000,0
+
+
+//The spawns bellow, are old ones that were used in events.
+//==================================================
+// gefenia01 - Geffenia (Old)
+//==================================================
+//gefenia01,0,0,0,0 monster Fake Angel 1371,10,0,0,0
+//gefenia01,0,0,0,0 monster Mini Demon 1292,6,300000,0,0
+//gefenia01,0,0,0,0 monster Apolcalips 1365,4,300000,0,0
+//gefenia01,0,0,0,0 monster Elder 1377,10,300000,0,1
+//gefenia01,0,0,0,0 monster Abyssmal Knight 1219,3,1800000,900000,1
+//gefenia01,0,0,0,0 monster Bloody Knight 1268,2,300000,0,0
+//gefenia01,0,0,0,0 monster Poring 1502,1,0,0,0
+//gefenia01,0,0,0,0 monster Executioner 1205,1,3600000,1800000,0
+//gefenia01,0,0,0,0 monster Mysteltainn 1203,1,7200000,3600000,1
+
+//==================================================
+// gefenia02 - Geffenia (Old)
+//==================================================
+//gefenia02,0,0,0,0 monster Fake Angel 1371,10,0,0,0
+//gefenia02,0,0,0,0 monster Succubus 1370,6,0,0,0
+//gefenia02,0,0,0,0 monster Incubus 1374,6,0,0,0
+//gefenia02,0,0,0,0 monster Mini Demon 1292,10,300000,0,0
+//gefenia02,0,0,0,0 monster Apolcalips 1365,8,300000,0,0
+//gefenia02,0,0,0,0 monster Abyssmal Knight 1219,2,1800000,900000,1
+//gefenia02,0,0,0,0 monster Bloody Knight 1268,5,300000,0,0
+//gefenia02,0,0,0,0 monster Poring 1502,1,0,0,0
+//gefenia02,0,0,0,0 monster Gryphon 1259,1,3600000,1800000,0
+//gefenia02,0,0,0,0 monster Chimera 1283,1,7200000,3600000,1
+
+//==================================================
+// gefenia03 - Geffenia (Old)
+//==================================================
+//gefenia03,0,0,0,0 monster Fake Angel 1371,4,0,0,0
+//gefenia03,0,0,0,0 monster Succubus 1370,5,0,0,0
+//gefenia03,0,0,0,0 monster Incubus 1374,5,0,0,0
+//gefenia03,0,0,0,0 monster Mini Demon 1292,10,300000,0,0
+//gefenia03,0,0,0,0 monster Apolcalips 1365,6,300000,0,0
+//gefenia03,0,0,0,0 monster Elder 1377,10,300000,0,1
+//gefenia03,0,0,0,0 monster Abyssmal Knight 1219,3,1800000,900000,1
+//gefenia03,0,0,0,0 monster Bloody Knight 1268,2,300000,0,0
+//gefenia03,0,0,0,0 monster Poring 1502,1,0,0,0
+//gefenia03,0,0,0,0 monster Dark Illusion 1302,1,300000,0,0
+//gefenia03,0,0,0,0 monster Owl Baron 1295,1,0,0,0
+
+//==================================================
+// gefenia04 - Geffenia (Old)
+//==================================================
+//gefenia04,0,0,0,0 monster Fake Angel 1371,10,0,0,0
+//gefenia04,0,0,0,0 monster Succubus 1370,5,0,0,0
+//gefenia04,0,0,0,0 monster Incubus 1374,3,0,0,0
+//gefenia04,0,0,0,0 monster Apolcalips 1365,4,300000,0,0
+//gefenia04,0,0,0,0 monster Abyssmal Knight 1219,5,1800000,900000,1
+//gefenia04,0,0,0,0 monster Bloody Knight 1268,2,300000,0,0
+//gefenia04,0,0,0,0 monster Poring 1502,1,0,0,0
+//gefenia04,0,0,0,0 monster Archangeling 1388,1,3600000,1800000,1
+//gefenia04,0,0,0,0 monster Maya Purple 1289,1,1200000,0,0
+//gefenia04,0,0,0,0 monster Cat O' Nine Tail 1307,1,0,0,0
diff --git a/npc/pre-re/mobs/dungeons/glastheim.txt b/npc/pre-re/mobs/dungeons/glastheim.txt
new file mode 100644
index 000000000..508de0239
--- /dev/null
+++ b/npc/pre-re/mobs/dungeons/glastheim.txt
@@ -0,0 +1,232 @@
+//===== rAthena Script =======================================
+//= Glast Heim Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.5
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.1 [Lupus]
+//= 1.2 Updated to ep 8.5 aegis spawns [MasterOfMuppets]
+//= 1.3 Official 10.1 kRO spawns [Playtester]
+//= 1.4 More accurate spawns [Playtester]
+//= 1.5 Corrected MVP spawn variance. [L0ne_W0lf]
+//============================================================
+
+//==================================================
+// gl_cas01 - Glast Heim F1
+//==================================================
+gl_cas01,0,0,0,0 monster Sage Worm 1281,10,0,0,0
+gl_cas01,0,0,0,0 monster Carat 1267,50,0,0,0
+gl_cas01,0,0,0,0 monster Rideword 1195,15,0,0,0
+gl_cas01,0,0,0,0 monster Dark Frame 1260,20,0,0,0
+gl_cas01,0,0,0,0 monster Whisper 1179,10,0,0,0
+gl_cas01,0,0,0,0 monster Alice 1275,1,0,0,0
+gl_cas01,0,0,0,0 monster Ogretooth 1204,1,7200000,3600000,1
+gl_cas01,0,0,0,0 monster Owl Baron 1295,6,0,0,1
+gl_cas01,0,0,0,0 monster Owl Duke 1320,20,0,0,1
+
+//==================================================
+// gl_cas02 - Glast Heim F2
+//==================================================
+gl_cas02,0,0,0,0 monster Wanderer 1208,40,0,0,0
+gl_cas02,0,0,0,0 monster Raydric 1163,30,0,0,0
+gl_cas02,0,0,0,0 monster Rideword 1195,10,0,0,0
+gl_cas02,0,0,0,0 monster Raydric Archer 1276,19,0,0,0
+gl_cas02,0,0,0,0 monster Chimera 1283,2,1800000,900000,1
+gl_cas02,0,0,0,0 monster Abysmal Knight 1219,3,1800000,900000,1
+gl_cas02,193,167,5,5 monster Raydric 1163,3,300000,120000,0
+gl_cas02,193,135,5,5 monster Raydric 1163,3,300000,120000,0
+gl_cas02,104,145,5,5 monster Mysteltainn 1203,1,7200000,3600000,1
+gl_cas02,102,180,0,0 monster Whisper 1185,1,1800000,900000,1
+gl_cas02,105,180,0,0 monster Whisper 1185,1,1800000,900000,1
+gl_cas02,182,12,3,3 monster Chimera 1283,1,3600000,1800000,1
+gl_cas02,185,11,8,8 monster Rideword 1195,4,120000,60000,1
+gl_cas02,174,11,8,8 monster Evil Druid 1117,4,120000,60000,1
+gl_cas02,104,38,4,4 monster Abysmal Knight 1219,1,1800000,900000,1
+gl_cas02,24,35,4,4 monster Abysmal Knight 1219,1,1800000,900000,1
+gl_cas02,46,124,15,15 monster Rideword 1195,15,360000,180000,1
+gl_cas02,16,186,10,10 monster Evil Druid 1117,5,360000,180000,1
+gl_cas02,133,83,3,3 monster Khalitzburg 1132,1,360000,180000,1
+gl_cas02,45,177,3,3 monster Khalitzburg 1132,1,360000,180000,1
+gl_cas02,182,65,3,3 monster Khalitzburg 1132,1,360000,180000,1
+gl_cas02,173,127,3,3 monster Khalitzburg 1132,1,360000,180000,1
+gl_cas02,173,167,3,3 monster Khalitzburg 1132,1,360000,180000,1
+gl_cas02,93,177,3,3 monster Abysmal Knight 1219,1,1800000,900000,1
+gl_cas02,115,177,3,3 monster Abysmal Knight 1219,1,1800000,900000,1
+gl_cas02,83,84,2,2 monster Mimic 1191,1,360000,180000,1
+gl_cas02,83,80,2,2 monster Mimic 1191,1,360000,180000,1
+gl_cas02,0,0,0,0 monster Ogretooth 1204,1,7200000,3600000,1
+gl_cas02,0,0,0,0 monster Alice 1275,1,0,0,0
+gl_cas02,189,20,1,1 monster Khalitzburg 1132,1,360000,180000,0
+gl_cas02,190,23,1,1 monster Wanderer 1208,1,360000,180000,0
+gl_cas02,190,38,1,1 monster Raydric Archer 1276,1,360000,180000,0
+
+//==================================================
+// gl_in01 - Inside Glast Heim
+//==================================================
+gl_in01,41,155,40,45 monster Marionette 1143,5,0,0,0
+gl_in01,156,147,34,42 monster Marionette 1143,5,0,0,0
+gl_in01,42,48,41,32 monster Marionette 1143,5,0,0,0
+gl_in01,154,44,36,33 monster Marionette 1143,5,0,0,0
+gl_in01,42,154,40,45 monster Rideword 1195,2,0,0,0
+gl_in01,155,143,34,42 monster Rideword 1195,1,0,0,0
+gl_in01,41,47,41,32 monster Rideword 1195,3,0,0,0
+gl_in01,152,44,36,33 monster Rideword 1195,2,0,0,0
+gl_in01,0,0,0,0 monster Wanderer 1208,1,0,0,0
+gl_in01,0,0,0,0 monster Alice 1275,1,0,0,0
+gl_in01,40,150,40,45 monster Dark Frame 1260,3,0,0,0
+gl_in01,153,146,34,42 monster Dark Frame 1260,2,0,0,0
+gl_in01,43,45,41,32 monster Dark Frame 1260,2,0,0,0
+gl_in01,153,44,36,33 monster Dark Frame 1260,3,0,0,0
+gl_in01,41,154,40,45 monster Sage Worm 1281,3,0,0,0
+gl_in01,155,147,34,42 monster Sage Worm 1281,5,0,0,0
+gl_in01,42,47,41,32 monster Sage Worm 1281,3,0,0,0
+gl_in01,153,44,36,33 monster Sage Worm 1281,3,0,0,0
+
+//==================================================
+// gl_prison - Glast Heim Underprison F1
+//==================================================
+gl_prison,0,0,0,0 monster Injustice 1257,20,0,0,0
+gl_prison,0,0,0,0 monster Hunter Fly 1035,10,0,0,0
+gl_prison,0,0,0,0 monster Zombie Prisoner 1197,30,0,0,0
+gl_prison,0,0,0,0 monster Rybio 1201,15,0,0,0
+
+//==================================================
+// gl_prison1 - Glast Heim Underprison F2
+//==================================================
+gl_prison1,0,0,0,0 monster Skeleton Prisoner 1196,30,0,0,0
+gl_prison1,0,0,0,0 monster Cramp 1209,5,0,0,0
+gl_prison1,0,0,0,0 monster Hunter Fly 1035,10,0,0,0
+gl_prison1,0,0,0,0 monster Injustice 1257,40,0,0,0
+gl_prison1,0,0,0,0 monster Zealotus 1200,1,3600000,1800000,1
+gl_prison1,0,0,0,0 monster Rybio 1201,10,0,0,0
+gl_prison1,0,0,0,0 monster Phendark 1202,10,0,0,0
+
+//==================================================
+// glast_01 - Glast Heim
+//==================================================
+glast_01,0,0,0,0 monster Abysmal Knight 1219,2,600000,300000,1
+glast_01,0,0,0,0 monster Gargoyle 1253,10,0,0,1
+glast_01,233,209,15,15 monster Green Plant 1080,8,360000,180000,1
+glast_01,233,209,15,15 monster Blue Plant 1079,2,900000,450000,1
+glast_01,233,209,15,15 monster Shining Plant 1083,1,1800000,900000,1
+
+//==================================================
+// gl_church - Glast Heim St. Abbey
+//==================================================
+gl_church,0,0,0,0 monster Wraith 1192,5,0,0,0
+gl_church,0,0,0,0 monster Evil Druid 1117,60,0,0,0
+gl_church,0,0,0,0 monster Ghoul 1036,50,0,0,0
+gl_church,0,0,0,0 monster Dark Illusion 1302,1,3600000,1800000,0
+gl_church,0,0,0,0 monster Mimic 1191,5,0,0,0
+gl_church,155,92,10,10 monster Mimic 1191,1,30000,15000,0
+gl_church,155,75,10,10 monster Mimic 1191,2,60000,30000,0
+gl_church,155,54,10,10 monster Mimic 1191,1,30000,15000,0
+
+//==================================================
+// gl_chyard - Glast Heim Churchyard
+//==================================================
+gl_chyard,0,0,0,0 monster Ghoul 1036,35,0,0,0
+gl_chyard,0,0,0,0 monster Zombie 1015,20,0,0,0
+gl_chyard,0,0,0,0 monster Wraith 1192,45,0,0,0
+gl_chyard,0,0,0,0 monster Evil Druid 1117,10,0,0,0
+gl_chyard,0,0,0,0 monster Hunter Fly 1035,3,0,0,0
+gl_chyard,0,0,0,0 monster Mimic 1191,3,0,0,0
+gl_chyard,0,0,0,0 boss_monster Dark Lord 1272,1,3600000,600000,1
+
+//==================================================
+// gl_sew01 - Glast Heim Culvert F1
+//==================================================
+gl_sew01,0,0,0,0 monster Gargoyle 1253,30,0,0,0
+gl_sew01,0,0,0,0 monster Arclouze 1194,10,0,0,0
+gl_sew01,0,0,0,0 monster Whisper 1179,40,0,0,0
+
+//==================================================
+// gl_sew02 - Glast Heim Culvert F2
+//==================================================
+gl_sew02,0,0,0,0 monster Gargoyle 1253,55,0,0,0
+gl_sew02,0,0,0,0 monster Cramp 1209,15,0,0,0
+
+//==================================================
+// gl_sew03 - Glast Heim Culvert F3
+//==================================================
+gl_sew03,0,0,0,0 monster Sting 1207,70,0,0,0
+gl_sew03,0,0,0,0 monster Gargoyle 1253,37,0,0,0
+gl_sew03,147,7,5,1 monster Gargoyle 1253,1,2400000,1800000,0
+gl_sew03,140,7,5,1 monster Gargoyle 1253,1,3600000,1800000,0
+gl_sew03,158,7,5,1 monster Gargoyle 1253,1,3600000,1800000,0
+
+//==================================================
+// gl_sew04 - Glast Heim Culvert F4
+//==================================================
+gl_sew04,0,0,0,0 monster Anolian 1206,100,120000,0,0
+gl_sew04,0,0,0,0 monster Gargoyle 1253,20,0,0,0
+gl_sew04,0,0,0,0 monster Drainliar 1111,10,0,0,0
+
+//==================================================
+// gl_step - Glast Heim Staircase Dungeon
+//==================================================
+gl_step,0,0,0,0 monster Mimic 1191,5,60000,30000,0
+gl_step,0,0,0,0 monster Raydric Archer 1276,10,0,0,0
+gl_step,0,0,0,0 monster Wind Ghost 1263,100,120000,0,0
+
+//==================================================
+// gl_knt01 - Inside Glast Heim Chivalry F1
+//==================================================
+gl_knt01,0,0,0,0 monster Raydric 1163,60,0,0,0
+gl_knt01,0,0,0,0 monster Raydric Archer 1276,20,0,0,0
+gl_knt01,0,0,0,0 monster Khalitzburg 1132,10,0,0,0
+gl_knt01,0,0,0,0 monster Abysmal Knight 1219,10,0,0,0
+gl_knt01,0,0,0,0 monster Alice 1275,1,0,0,0
+gl_knt01,21,278,0,0 monster Giant Whisper 1186,1,3600000,1800000,1
+gl_knt01,122,266,0,0 monster Rideword 1195,1,120000,60000,1
+gl_knt01,33,120,30,30 monster Rideword 1195,10,120000,60000,1
+gl_knt01,26,223,20,20 monster Rideword 1195,10,120000,60000,1
+gl_knt01,9,184,0,0 monster Black Mushroom 1084,1,3600000,1800000,1
+gl_knt01,8,184,0,0 monster Black Mushroom 1084,1,3600000,1800000,1
+gl_knt01,7,184,0,0 monster Black Mushroom 1084,1,3600000,1800000,1
+gl_knt01,6,184,0,0 monster Black Mushroom 1084,1,3600000,1800000,1
+gl_knt01,5,184,0,0 monster Black Mushroom 1084,1,3600000,1800000,1
+gl_knt01,4,184,0,0 monster Black Mushroom 1084,1,3600000,1800000,1
+gl_knt01,9,185,0,0 monster Black Mushroom 1084,1,3600000,1800000,1
+gl_knt01,8,185,0,0 monster Black Mushroom 1084,1,3600000,1800000,1
+gl_knt01,7,185,0,0 monster Black Mushroom 1084,1,3600000,1800000,1
+gl_knt01,6,185,0,0 monster Black Mushroom 1084,1,3600000,1800000,1
+gl_knt01,5,185,0,0 monster Black Mushroom 1084,1,3600000,1800000,1
+gl_knt01,4,185,0,0 monster Black Mushroom 1084,1,3600000,1800000,1
+
+//==================================================
+// gl_knt02 - Inside Glast Heim Chivalry F2
+//==================================================
+gl_knt02,0,0,0,0 monster Raydric 1163,50,0,0,0
+gl_knt02,0,0,0,0 monster Raydric Archer 1276,20,0,0,0
+gl_knt02,0,0,0,0 monster Khalitzburg 1132,30,0,0,0
+gl_knt02,0,0,0,0 monster Bloody Knight 1268,1,3600000,1800000,1
+gl_knt02,0,0,0,0 monster Alice 1275,1,0,0,0
+gl_knt02,0,0,0,0 monster Mysteltainn 1203,1,1800000,1200000,0
+gl_knt02,0,0,0,0 monster Abysmal Knight 1219,5,0,0,0
+gl_knt02,149,26,5,5 monster Abysmal Knight 1219,1,3600000,1800000,1
+gl_knt02,99,49,5,5 monster Khalitzburg 1132,1,1800000,900000,1
+gl_knt02,62,80,5,5 monster Khalitzburg 1132,1,1800000,900000,1
+gl_knt02,82,134,5,5 monster Khalitzburg 1132,1,1800000,900000,1
+gl_knt02,60,242,5,5 monster Khalitzburg 1132,1,1800000,900000,1
+gl_knt02,118,241,5,5 monster Khalitzburg 1132,1,1800000,900000,1
+gl_knt02,114,194,5,5 monster Khalitzburg 1132,1,1800000,900000,1
+gl_knt02,196,239,5,5 monster Khalitzburg 1132,1,1800000,900000,1
+gl_knt02,208,45,5,5 monster Khalitzburg 1132,1,1800000,900000,1
+gl_knt02,243,74,5,5 monster Khalitzburg 1132,1,1800000,900000,1
+gl_knt02,232,132,5,5 monster Khalitzburg 1132,1,1800000,900000,1
+
+//==================================================
+// gl_dun01 - The Lowest Cave in Glast Heim F1
+//==================================================
+gl_dun01,0,0,0,0 monster Arclouze 1194,50,0,0,0
+gl_dun01,0,0,0,0 monster Sting 1207,40,0,0,0
+
+//==================================================
+// gl_dun02 - The Lowest Cave in Glast Heim F2
+//==================================================
+gl_dun02,0,0,0,0 monster Majoruros 1310,45,0,0,0
+gl_dun02,0,0,0,0 monster Gargoyle 1253,15,0,0,0
diff --git a/npc/pre-re/mobs/dungeons/gld_dun.txt b/npc/pre-re/mobs/dungeons/gld_dun.txt
new file mode 100644
index 000000000..048f43681
--- /dev/null
+++ b/npc/pre-re/mobs/dungeons/gld_dun.txt
@@ -0,0 +1,52 @@
+//===== rAthena Script =======================================
+//= Guild Dungeons Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.3
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.2 Official kRO 10.1 spawns [Playtester]
+//= 1.3 Corrected MVP spawn variance. [Gepard]
+//============================================================
+
+//==================================================
+// gld_dun01 - Baldur Guild Dungeon
+//==================================================
+gld_dun01,0,0,0,0 monster Skeleton General 1290,10,0,0,0
+gld_dun01,0,0,0,0 monster Am Mut 1301,20,0,0,0
+gld_dun01,0,0,0,0 monster Cat o' Nine Tails 1307,3,1200000,0,0
+gld_dun01,0,0,0,0 monster Gajomart 1309,10,0,0,0
+gld_dun01,0,0,0,0 boss_monster Eddga 1115,1,28800000,600000,1
+gld_dun01,0,0,0,0 monster Vagabond Wolf 1092,1,14400000,7200000,1
+
+//==================================================
+// gld_dun02 - Luina Guild Dungeon
+//==================================================
+gld_dun02,0,0,0,0 monster Owl Baron 1295,3,0,0,0
+gld_dun02,0,0,0,0 monster Giant Spider 1304,10,240000,120000,0
+gld_dun02,0,0,0,0 monster Ancient Worm 1305,5,120000,60000,0
+gld_dun02,0,0,0,0 monster Killer Mantis 1294,5,120000,60000,0
+gld_dun02,0,0,0,0 monster Giant Hornet 1303,10,120000,60000,0
+gld_dun02,0,0,0,0 boss_monster Doppelganger 1046,1,28800000,600000,1
+
+//==================================================
+// gld_dun03 - Valkyrie Guild Dungeon
+//==================================================
+gld_dun03,0,0,0,0 monster Maya Purple 1289,3,1200000,600000,0
+gld_dun03,0,0,0,0 monster Caterpillar 1300,20,0,0,0
+gld_dun03,0,0,0,0 monster Gullinbursti 1311,10,0,0,0
+gld_dun03,0,0,0,0 monster Creamy Fear 1293,20,0,0,0
+gld_dun03,0,0,0,0 monster Leib Olmai 1306,20,0,0,0
+gld_dun03,0,0,0,0 boss_monster Maya 1147,1,28800000,600000,1
+
+//==================================================
+// gld_dun04 - Britoniah Guild Dungeon
+//==================================================
+gld_dun04,0,0,0,0 monster Wraith Dead 1291,20,0,0,0
+gld_dun04,0,0,0,0 monster Mini Demon 1292,20,0,0,0
+gld_dun04,0,0,0,0 monster Zombie Master 1298,20,0,0,0
+gld_dun04,0,0,0,0 monster Dark Illusion 1302,1,1200000,0,0
+gld_dun04,0,0,0,0 boss_monster Dark Lord 1272,1,28800000,600000,1
+gld_dun04,0,0,0,0 monster Ghostring 1120,1,14400000,7200000,1
diff --git a/npc/pre-re/mobs/dungeons/gld_dunSE.txt b/npc/pre-re/mobs/dungeons/gld_dunSE.txt
new file mode 100644
index 000000000..abff62d33
--- /dev/null
+++ b/npc/pre-re/mobs/dungeons/gld_dunSE.txt
@@ -0,0 +1,29 @@
+//===== rAthena Script =======================================
+//= Guild Dungeons Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.1
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.0 First version
+//= 1.1 Updated spawns to official. [L0ne_W0lf]
+//============================================================
+
+//==================================================
+// arug_dun01 - Arunafeltz Guild Dungeon
+//==================================================
+arug_dun01,0,0,0,0 monster Banshee Master 1974,22,0,0,0
+arug_dun01,0,0,0,0 monster Necromancer 1870,18,0,0,0
+arug_dun01,0,0,0,0 monster Beholder Master 1975,17,0,0,0
+arug_dun01,0,0,0,0 monster Fanat 1797,17,0,0,0
+arug_dun01,0,0,0,0 monster Aunoe 1796,17,0,0,0
+
+//==================================================
+// schg_dun01 - Schwartzvald Guild Dungeon
+//==================================================
+schg_dun01,0,0,0,0 monster Hell Apocalypse 1978,20,0,0,0
+schg_dun01,0,0,0,0 monster Zakudam 1979,20,0,0,0
+schg_dun01,0,0,0,0 monster Heavy Metaling 1977,15,0,0,0
+schg_dun01,0,0,0,0 monster Cobalt Mineral 1976,15,0,0,0
diff --git a/npc/pre-re/mobs/dungeons/gon_dun.txt b/npc/pre-re/mobs/dungeons/gon_dun.txt
new file mode 100644
index 000000000..347ad6174
--- /dev/null
+++ b/npc/pre-re/mobs/dungeons/gon_dun.txt
@@ -0,0 +1,44 @@
+//===== rAthena Script =======================================
+//= Gonryun Dungeon Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.2
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.1 Official kRO 10.1 spawns [Playtester]
+//= 1.2 Corrected MVP spawn variance. [L0ne_W0lf]
+//============================================================
+
+//==================================================
+// gon_dun01 - Shrine of Gonryun Queen
+//==================================================
+gon_dun01,0,0,0,0 monster Bloody Butterfly 1408,55,650000,350000,0
+gon_dun01,0,0,0,0 monster Enchanted Peach Tree 1410,35,0,0,0
+gon_dun01,0,0,0,0 monster Zipper Bear 1417,30,0,0,0
+gon_dun01,0,0,0,0 monster Red Plant 1078,5,0,0,0
+gon_dun01,0,0,0,0 monster Yellow Plant 1081,10,0,0,0
+gon_dun01,0,0,0,0 monster White Plant 1082,10,0,0,0
+
+//==================================================
+// gon_dun02 - Hermit's Checkers
+//==================================================
+gon_dun02,241,226,15,20 monster Enchanted Peach Tree 1410,2,300000,150000,0
+gon_dun02,241,226,15,20 monster Baby Leopard 1415,4,600000,300000,0
+gon_dun02,241,226,15,20 monster Enchanted Peach Tree 1410,3,120000,60000,0
+gon_dun02,33,115,10,15 monster Enchanted Peach Tree 1410,1,300000,150000,0
+gon_dun02,33,115,10,15 monster Baby Leopard 1415,2,600000,300000,0
+gon_dun02,0,0,0,0 monster Taoist Hermit 1412,20,690000,390000,0
+gon_dun02,0,0,0,0 monster Bloody Butterfly 1408,20,0,0,0
+gon_dun02,0,0,0,0 monster Enchanted Peach Tree 1410,15,0,0,0
+gon_dun02,0,0,0,0 monster Yellow Plant 1081,10,0,0,0
+
+//==================================================
+// gon_dun03 - Arcadia
+//==================================================
+gon_dun03,0,0,0,0 monster White Plant 1082,10,0,0,0
+gon_dun03,0,0,0,0 monster Hermit Plant 1413,20,600000,300000,0
+gon_dun03,0,0,0,0 monster Evil Nymph 1416,50,600000,300000,0
+gon_dun03,0,0,0,0 monster Taoist Hermit 1412,30,0,0,0
+gon_dun03,0,0,0,0 boss_monster Evil Snake Lord 1418,1,5650000,600000,0
diff --git a/npc/pre-re/mobs/dungeons/ice_dun.txt b/npc/pre-re/mobs/dungeons/ice_dun.txt
new file mode 100644
index 000000000..35a5090f8
--- /dev/null
+++ b/npc/pre-re/mobs/dungeons/ice_dun.txt
@@ -0,0 +1,69 @@
+//===== rAthena Script =======================================
+//= Ice Dungeon Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.2
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.0 First version from jAthena [Playtester]
+//= 1.1 More accurate spawns [Playtester]
+//= 1.2 Removed Ktullanux spawn, quest implemented [L0ne_W0lf]
+//============================================================
+
+//==================================================
+// ice_dun01 - Ice Cave
+//==================================================
+ice_dun01,0,0,0,0 monster Siroma 1776,75,0,0,0
+ice_dun01,0,0,0,0 monster Roween 1782,5,0,0,0
+ice_dun01,0,0,0,0 monster Gazeti 1778,2,0,0,0
+ice_dun01,0,0,0,0 monster Muscipular 1780,5,0,0,0
+
+//==================================================
+// ice_dun02 - Ice Cave
+//==================================================
+ice_dun02,0,0,0,0 monster Snowier 1775,70,0,0,0
+ice_dun02,0,0,0,0 monster Siroma 1776,30,0,0,0
+ice_dun02,0,0,0,0 monster Gazeti 1778,15,240000,0,0
+ice_dun02,0,0,0,0 monster Ice Titan 1777,7,0,0,0
+ice_dun02,33,271,4,4 monster Iceicle 1789,1,1320000,300000,0
+ice_dun02,110,242,5,5 monster Iceicle 1789,2,1020000,300000,0
+ice_dun02,150,280,4,4 monster Iceicle 1789,1,900000,300000,0
+ice_dun02,270,268,4,4 monster Iceicle 1789,1,1020000,300000,0
+ice_dun02,46,207,3,3 monster Iceicle 1789,1,1080000,300000,0
+ice_dun02,134,214,4,4 monster Iceicle 1789,1,840000,300000,0
+ice_dun02,102,178,4,4 monster Iceicle 1789,1,1020000,300000,0
+ice_dun02,207,165,5,5 monster Iceicle 1789,2,1080000,300000,0
+ice_dun02,206,222,4,4 monster Iceicle 1789,1,1020000,300000,0
+ice_dun02,270,136,3,3 monster Iceicle 1789,1,960000,300000,0
+ice_dun02,20,150,4,4 monster Iceicle 1789,1,960000,300000,0
+ice_dun02,46,103,5,5 monster Iceicle 1789,2,1320000,300000,0
+ice_dun02,172,90,3,3 monster Iceicle 1789,1,840000,300000,0
+ice_dun02,20,20,5,5 monster Iceicle 1789,1,960000,300000,0
+ice_dun02,143,28,3,3 monster Iceicle 1789,1,1020000,300000,0
+ice_dun02,280,20,5,5 monster Iceicle 1789,1,960000,300000,0
+
+//==================================================
+// ice_dun03 - Ice Cave
+//==================================================
+ice_dun03,0,0,0,0 monster Ice Titan 1777,12,0,0,0
+ice_dun03,0,0,0,0 monster Ice Titan 1777,10,7200000,3600000,0
+ice_dun03,0,0,0,0 monster Gazeti 1778,10,120000,0,0
+ice_dun03,0,0,0,0 monster Snowier 1775,15,0,0,0
+ice_dun03,113,239,85,50 monster Ice Titan 1777,12,180000,0,0
+ice_dun03,113,239,85,50 monster Gazeti 1778,8,300000,0,0
+ice_dun03,63,110,50,82 monster Ice Titan 1777,12,180000,0,0
+ice_dun03,63,110,50,82 monster Gazeti 1778,8,300000,0,0
+ice_dun03,189,66,80,40 monster Ice Titan 1777,12,180000,0,0
+ice_dun03,189,66,80,40 monster Gazeti 1778,8,300000,0,0
+ice_dun03,235,185,44,80 monster Ice Titan 1777,12,180000,0,0
+ice_dun03,235,185,44,80 monster Gazeti 1778,8,300000,0,0
+ice_dun03,50,243,10,10 monster Iceicle 1789,2,720000,300000,0
+ice_dun03,149,247,10,43 monster Iceicle 1789,5,1080000,300000,0
+ice_dun03,247,241,24,24 monster Iceicle 1789,3,960000,300000,0
+ice_dun03,255,150,25,20 monster Iceicle 1789,3,840000,300000,0
+ice_dun03,45,150,25,20 monster Iceicle 1789,3,960000,300000,0
+ice_dun03,61,59,33,33 monster Iceicle 1789,7,1080000,300000,0
+ice_dun03,150,55,24,36 monster Iceicle 1789,6,1080000,300000,0
+ice_dun03,247,54,24,28 monster Iceicle 1789,3,840000,300000,0
diff --git a/npc/pre-re/mobs/dungeons/in_sphinx.txt b/npc/pre-re/mobs/dungeons/in_sphinx.txt
new file mode 100644
index 000000000..1d3a4ad32
--- /dev/null
+++ b/npc/pre-re/mobs/dungeons/in_sphinx.txt
@@ -0,0 +1,56 @@
+//===== rAthena Script =======================================
+//= Morocc Sphinx Dungeon Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.4
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.1 Official kRO 10.1 spawns [Playtester]
+//= 1.2 Replaced Marduk with Anubis on F4 and F5 [Playtester]
+//= 1.3 More accurate spawns [Playtester]
+//= 1.4 Corrected MVP spawn variance. [L0ne_W0lf]
+//============================================================
+
+//==================================================
+// In_sphinx1 - Sphinx F1
+//==================================================
+in_sphinx1,0,0,0,0 monster Drainliar 1111,40,0,0,0
+in_sphinx1,0,0,0,0 monster Requiem 1164,20,0,0,0
+in_sphinx1,0,0,0,0 monster Zerom 1178,20,0,0,0
+in_sphinx1,0,0,0,0 monster Matyr 1146,10,0,0,0
+
+//==================================================
+// In_sphinx2 - Sphinx F2
+//==================================================
+in_sphinx2,0,0,0,0 monster Drainliar 1111,15,0,0,0
+in_sphinx2,0,0,0,0 monster Requiem 1164,50,0,0,0
+in_sphinx2,0,0,0,0 monster Zerom 1178,50,0,0,0
+in_sphinx2,0,0,0,0 monster Matyr 1146,20,0,0,0
+
+//==================================================
+// In_sphinx3 - Sphinx F3
+//==================================================
+in_sphinx3,0,0,0,0 monster Matyr 1146,15,0,0,0
+in_sphinx3,0,0,0,0 monster Pasana 1154,5,0,0,0
+in_sphinx3,0,0,0,0 monster Marduk 1140,65,0,0,0
+in_sphinx3,0,0,0,0 monster Mimic 1191,5,600000,300000,1
+
+//==================================================
+// In_sphinx4 - Sphinx F4
+//==================================================
+in_sphinx4,0,0,0,0 monster Minorous 1149,50,0,0,0
+in_sphinx4,0,0,0,0 monster Anubis 1098,15,0,0,0
+in_sphinx4,0,0,0,0 monster Mimic 1191,4,600000,300000,1
+in_sphinx4,0,0,0,0 monster Pasana 1154,20,0,0,0
+
+//==================================================
+// In_sphinx5 - Sphinx F5
+//==================================================
+in_sphinx5,0,0,0,0 monster Pasana 1154,70,0,0,0
+in_sphinx5,0,0,0,0 monster Matyr 1146,10,0,0,0
+in_sphinx5,0,0,0,0 monster Side Winder 1037,20,0,0,0
+in_sphinx5,0,0,0,0 monster Anubis 1098,10,0,0,0
+in_sphinx5,0,0,0,0 monster Mimic 1191,7,600000,300000,1
+in_sphinx5,0,0,0,0 boss_monster Pharaoh 1157,1,3600000,600000,1
diff --git a/npc/pre-re/mobs/dungeons/iz_dun.txt b/npc/pre-re/mobs/dungeons/iz_dun.txt
new file mode 100644
index 000000000..fc1b282bb
--- /dev/null
+++ b/npc/pre-re/mobs/dungeons/iz_dun.txt
@@ -0,0 +1,114 @@
+//===== rAthena Script =======================================
+//= Byalan Dungeon Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.2
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.1 Official kRO 10.1 spawns for 1-4 [Playtester]
+//= 1.2 More accurate spawns [Playtester]
+//============================================================
+
+//==================================================
+// iz_dun00 - Undersea Tunnel F1
+//==================================================
+iz_dun00,0,0,0,0 monster Plankton 1161,65,0,0,0
+iz_dun00,0,0,0,0 monster Marina 1141,45,0,0,0
+iz_dun00,0,0,0,0 monster Kukre 1070,15,0,0,0
+iz_dun00,0,0,0,0 monster Hydra 1068,15,0,0,0
+iz_dun00,0,0,0,0 monster Vadon 1066,15,0,0,0
+iz_dun00,0,0,0,0 monster Black Mushroom 1084,5,180000,90000,1
+
+//==================================================
+// iz_dun01 - Undersea Tunnel F2
+//==================================================
+iz_dun01,0,0,0,0 monster Plankton 1161,10,0,0,0
+iz_dun01,0,0,0,0 monster Marina 1141,15,0,0,0
+iz_dun01,0,0,0,0 monster Kukre 1070,50,0,0,0
+iz_dun01,0,0,0,0 monster Hydra 1068,30,0,0,0
+iz_dun01,0,0,0,0 monster Vadon 1066,60,0,0,0
+iz_dun01,0,0,0,0 monster Cornutus 1067,15,300000,150000,1
+iz_dun01,0,0,0,0 monster Black Mushroom 1084,10,180000,90000,1
+
+//==================================================
+// iz_dun02 - Undersea Tunnel F3
+//==================================================
+iz_dun02,0,0,0,0 monster Hydra 1068,40,0,0,0
+iz_dun02,0,0,0,0 monster Cornutus 1067,60,0,0,0
+iz_dun02,0,0,0,0 monster Marse 1144,40,0,0,0
+iz_dun02,0,0,0,0 monster Obeaune 1044,40,0,0,0
+iz_dun02,0,0,0,0 monster Merman 1264,1,1800000,1200000,0
+iz_dun02,0,0,0,0 monster Black Mushroom 1084,15,180000,90000,1
+
+//==================================================
+// iz_dun03 - Undersea Tunnel F4
+//==================================================
+iz_dun03,0,0,0,0 monster Hydra 1068,10,0,0,0
+iz_dun03,0,0,0,0 monster Phen 1158,45,0,0,0
+iz_dun03,0,0,0,0 monster Marine Sphere 1142,20,0,0,0
+iz_dun03,0,0,0,0 monster Swordfish 1069,40,0,0,0
+iz_dun03,0,0,0,0 monster Marc 1045,40,0,0,0
+iz_dun03,203,59,0,0 monster Hydra 1068,1,312000,150000,0
+iz_dun03,203,56,0,0 monster Hydra 1068,1,323000,150000,0
+iz_dun03,203,53,0,0 monster Hydra 1068,1,317000,150000,0
+iz_dun03,203,50,0,0 monster Hydra 1068,1,323000,150000,0
+iz_dun03,203,47,0,0 monster Hydra 1068,1,305000,150000,0
+iz_dun03,204,60,0,0 monster Hydra 1068,1,304000,150000,0
+iz_dun03,204,57,0,0 monster Hydra 1068,1,302000,150000,0
+iz_dun03,204,54,0,0 monster Hydra 1068,1,310000,150000,0
+iz_dun03,204,51,0,0 monster Hydra 1068,1,309000,150000,0
+iz_dun03,204,48,0,0 monster Hydra 1068,1,313000,150000,0
+iz_dun03,191,144,0,0 monster Hydra 1068,1,321000,150000,0
+iz_dun03,194,144,0,0 monster Hydra 1068,1,316000,150000,0
+iz_dun03,197,144,0,0 monster Hydra 1068,1,296000,150000,0
+iz_dun03,200,144,0,0 monster Hydra 1068,1,282000,150000,0
+iz_dun03,203,144,0,0 monster Hydra 1068,1,310000,150000,0
+iz_dun03,206,144,0,0 monster Hydra 1068,1,305000,150000,0
+iz_dun03,209,144,0,0 monster Hydra 1068,1,308000,150000,0
+iz_dun03,212,144,0,0 monster Hydra 1068,1,321000,150000,0
+iz_dun03,193,143,0,0 monster Hydra 1068,1,300000,150000,0
+iz_dun03,196,143,0,0 monster Hydra 1068,1,300000,150000,0
+iz_dun03,199,143,0,0 monster Hydra 1068,1,300000,150000,0
+iz_dun03,202,143,0,0 monster Hydra 1068,1,300000,150000,0
+iz_dun03,205,143,0,0 monster Hydra 1068,1,300000,150000,0
+iz_dun03,208,143,0,0 monster Hydra 1068,1,300000,150000,0
+iz_dun03,211,143,0,0 monster Hydra 1068,1,300000,150000,0
+iz_dun03,176,260,0,0 monster Hydra 1068,1,300000,150000,0
+iz_dun03,180,251,0,0 monster Hydra 1068,1,300000,150000,0
+iz_dun03,178,253,0,0 monster Hydra 1068,1,300000,150000,0
+iz_dun03,108,249,0,0 monster Hydra 1068,1,300000,150000,0
+iz_dun03,80,163,0,0 monster Hydra 1068,1,300000,150000,0
+iz_dun03,0,0,0,0 monster Merman 1264,3,1800000,1200000,0
+
+//==================================================
+// iz_dun04 - Undersea Tunnel F5
+//==================================================
+iz_dun04,0,0,0,0 monster Marine Sphere 1142,10,0,0,0
+iz_dun04,0,0,0,0 monster Swordfish 1069,10,0,0,0
+iz_dun04,0,0,0,0 monster Merman 1264,40,0,0,0
+iz_dun04,0,0,0,0 monster Strouf 1065,50,600000,300000,1
+iz_dun04,58,135,0,0 monster Hydra 1068,1,305000,150000,0
+iz_dun04,61,135,0,0 monster Hydra 1068,1,300000,150000,0
+iz_dun04,42,129,0,0 monster Hydra 1068,1,312000,150000,0
+iz_dun04,42,116,0,0 monster Hydra 1068,1,306000,150000,0
+iz_dun04,38,129,0,0 monster Hydra 1068,1,300000,150000,0
+iz_dun04,33,129,0,0 monster Hydra 1068,1,308000,150000,0
+iz_dun04,38,115,0,0 monster Hydra 1068,1,300000,150000,0
+iz_dun04,33,115,0,0 monster Hydra 1068,1,321000,150000,0
+iz_dun04,79,246,0,0 monster Hydra 1068,1,300000,150000,0
+iz_dun04,80,246,0,0 monster Hydra 1068,1,294000,150000,0
+iz_dun04,79,234,0,0 monster Hydra 1068,1,302000,150000,0
+iz_dun04,80,233,0,0 monster Hydra 1068,1,318000,150000,0
+iz_dun04,111,41,0,0 monster Hydra 1068,1,300000,150000,0
+iz_dun04,111,38,0,0 monster Hydra 1068,1,303000,150000,0
+iz_dun04,111,35,0,0 monster Hydra 1068,1,300000,150000,0
+iz_dun04,69,243,0,0 monster Hydra 1068,1,321000,150000,0
+iz_dun04,124,233,0,0 monster Hydra 1068,1,300000,150000,0
+iz_dun04,134,233,0,0 monster Hydra 1068,1,305000,150000,0
+iz_dun04,0,0,0,0 monster Deviace 1108,3,0,0,0
+iz_dun04,103,231,10,10 monster Merman 1264,3,150000,0,0
+iz_dun04,160,231,10,10 monster Merman 1264,3,170000,0,0
+iz_dun04,95,147,10,10 monster Merman 1264,3,150000,0,0
+iz_dun04,130,216,15,15 monster Merman 1264,3,160000,0,0
diff --git a/npc/pre-re/mobs/dungeons/juperos.txt b/npc/pre-re/mobs/dungeons/juperos.txt
new file mode 100644
index 000000000..67c9f4395
--- /dev/null
+++ b/npc/pre-re/mobs/dungeons/juperos.txt
@@ -0,0 +1,60 @@
+//===== rAthena Script =======================================
+//= Juperos Dungeon Monster Spawn Script
+//===== By: ==================================================
+// The Prometheus Project, rAthena dev team
+//===== Current Version: =====================================
+//= 1.4
+//===== Compatible With: =====================================
+//= Any Athena/Freya Version
+//===== Additional Comments: =================================
+//= 0.1 Added 1st version. [Muad_Dib]
+//= 0.2 Updated the spawns according to current info [MasterOfMuppets]
+//= 0.3 Updated the spawns according to own info from iRO [MasterOfMuppets]
+//= 1.0 More exact numbers thanks to Tharis [Playtester]
+//= 1.1 Official X.3 spawns [Playtester]
+//= 1.2 Some 11.1 spawn changes [Playtester]
+//= 1.3 More accurate spawns [Playtester]
+//= 1.4 Corrected MVP spawn variance. [L0ne_W0lf]
+//============================================================
+
+//========================================================================================
+// - Juperos 01
+//========================================================================================
+
+juperos_01,100,180,60,70 monster Venatu 1679,15,300000,0,1
+juperos_01,100,180,60,70 monster Venatu 1676,25,300000,0,1
+juperos_01,100,180,60,70 monster Venatu 1677,20,300000,0,1
+juperos_01,100,180,60,70 monster Venatu 1678,25,300000,0,1
+juperos_01,192,132,60,80 monster Venatu 1679,35,300000,0,1
+juperos_01,192,132,60,80 monster Venatu 1676,45,300000,0,1
+juperos_01,192,132,60,80 monster Venatu 1677,50,300000,0,1
+juperos_01,192,132,60,80 monster Venatu 1678,45,300000,0,1
+juperos_01,0,0,0,0 monster Dimik 1670,5,0,0,1
+juperos_01,0,0,0,0 monster Dimik 1671,5,0,0,1
+juperos_01,0,0,0,0 monster Dimik 1672,5,0,0,1
+juperos_01,0,0,0,0 monster Dimik 1673,5,0,0,1
+juperos_01,232,202,25,25 monster Dimik 1670,5,420000,0,0
+
+//========================================================================================
+// - Juperos 02
+//========================================================================================
+
+juperos_02,0,0,0,0 monster Venatu 1679,50,0,0,1
+juperos_02,0,0,0,0 monster Venatu 1676,65,0,0,1
+juperos_02,0,0,0,0 monster Venatu 1677,65,0,0,1
+juperos_02,0,0,0,0 monster Venatu 1678,65,0,0,1
+juperos_02,0,0,0,0 monster Apocalypse 1365,70,0,0,1
+
+//========================================================================================
+// - Juperos Core
+//========================================================================================
+
+jupe_core,0,0,0,0 monster Venatu 1676,25,0,0,1
+jupe_core,0,0,0,0 monster Venatu 1677,25,0,0,1
+jupe_core,0,0,0,0 monster Venatu 1678,25,0,0,1
+jupe_core,0,0,0,0 monster Dimik 1670,40,0,0,1
+jupe_core,0,0,0,0 monster Dimik 1671,40,0,0,1
+jupe_core,0,0,0,0 monster Dimik 1672,40,0,0,1
+jupe_core,0,0,0,0 monster Dimik 1673,40,0,0,1
+jupe_core,0,0,0,0 monster Archdam 1668,40,0,0,1
+jupe_core,0,0,0,0 boss_monster Vesper 1685,1,7200000,600000,1
diff --git a/npc/pre-re/mobs/dungeons/kh_dun.txt b/npc/pre-re/mobs/dungeons/kh_dun.txt
new file mode 100644
index 000000000..1960a958a
--- /dev/null
+++ b/npc/pre-re/mobs/dungeons/kh_dun.txt
@@ -0,0 +1,62 @@
+//===== rAthena Script =======================================
+//= Kiel Dungeon Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.3
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.0 First version [MasterOfMuppets]
+//= 1.1 Added official mob types [Playtester]
+//= 1.2 Updated amounts [Playtester]
+//= 1.3 More accurate spawns [Playtester]
+//============================================================
+
+//==================================================
+// kh_kiehl01
+//==================================================
+kh_kiehl01,0,0,0,0 monster Constant 1745,10,0,0,0
+kh_kiehl01,80,22,3,3 monster Aliot 1740,1,180000,120000,0
+kh_kiehl01,105,40,3,3 monster Aliza 1746,1,180000,120000,0
+kh_kiehl01,105,40,3,3 monster Aliza 1737,1,180000,120000,0
+kh_kiehl01,135,24,3,3 monster Alicel 1739,1,180000,120000,0
+kh_kiehl01,173,90,3,3 monster Aliot 1740,1,180000,120000,0
+kh_kiehl01,156,101,3,3 monster Aliza 1746,1,180000,120000,0
+kh_kiehl01,128,102,3,3 monster Alicel 1739,1,180000,120000,0
+kh_kiehl01,128,102,3,3 monster Aliot 1740,1,180000,120000,0
+kh_kiehl01,37,110,3,3 monster Alicel 1739,1,180000,120000,0
+kh_kiehl01,37,110,3,3 monster Alicel 1735,1,180000,120000,0
+kh_kiehl01,32,124,3,3 monster Aliot 1740,1,180000,120000,0
+kh_kiehl01,67,171,5,5 monster Aliot 1740,1,180000,120000,0
+kh_kiehl01,67,171,5,5 monster Aliot 1736,1,180000,120000,0
+kh_kiehl01,85,154,3,3 monster Alicel 1739,1,180000,120000,0
+kh_kiehl01,85,154,3,3 monster Aliot 1740,1,180000,120000,0
+kh_kiehl01,106,154,3,3 monster Aliza 1746,1,180000,120000,0
+kh_kiehl01,122,155,3,3 monster Aliot 1740,1,180000,120000,0
+kh_kiehl01,122,155,3,3 monster Aliot 1736,1,180000,120000,0
+kh_kiehl01,122,155,3,3 monster Alicel 1739,1,180000,120000,0
+kh_kiehl01,122,155,3,3 monster Aliza 1746,1,180000,120000,0
+
+//==================================================
+// kh_dun01 - Machine doll factory, 1st floor
+//==================================================
+kh_dun01,83,179,70,40 monster Alice 1275,9,1800000,1200000,0
+kh_dun01,83,179,30,20 monster Aliza 1737,15,300000,240000,0
+kh_dun01,83,179,70,40 monster Constant 1738,3,0,0,0
+kh_dun01,120,104,105,80 monster Alice 1275,16,1800000,1200000,0
+kh_dun01,120,104,105,80 monster Aliza 1737,30,300000,240000,0
+kh_dun01,120,104,105,80 monster Constant 1738,5,0,0,0
+kh_dun01,0,0,0,0 monster Constant 1745,5,0,0,0
+kh_dun01,0,0,0,0 monster Aliot 1736,3,600000,300000,0
+kh_dun01,0,0,0,0 monster Alicel 1735,3,600000,300000,0
+
+//==================================================
+// kh_dun02 - Machine doll factory, 2nd floor
+//==================================================
+kh_dun02,0,0,0,0 monster Aliot 1736,25,0,0,0
+kh_dun02,0,0,0,0 monster Alicel 1735,30,0,0,0
+kh_dun02,0,0,0,0 monster Aliza 1737,10,0,0,0
+kh_dun02,0,0,0,0 monster Constant 1738,15,1800000,1200000,0
+kh_dun02,0,0,0,0 monster Constant 1745,5,0,0,0
+kh_dun02,0,0,0,0 boss_monster Kiel D-01 1734,1,7200000,3600000,0
diff --git a/npc/pre-re/mobs/dungeons/lhz_dun.txt b/npc/pre-re/mobs/dungeons/lhz_dun.txt
new file mode 100644
index 000000000..58e079138
--- /dev/null
+++ b/npc/pre-re/mobs/dungeons/lhz_dun.txt
@@ -0,0 +1,311 @@
+//===== rAthena Script =======================================
+//= Lighthalzen Dungeon(Biolabs) Monster Spawn Script
+//===== By: ==================================================
+// The Prometheus Project, rAthena dev team
+//===== Current Version: =====================================
+//= 1.8
+//===== Compatible With: =====================================
+//= Any Athena
+//===== Additional Comments: =================================
+//= 08/24/05 : Added 1st version. [Muad_Dib]
+//= 1.1: Some corrections to level 1, 2 as pointed out by
+//= MasterofMuppets. [Skotlex]
+//= 1.3: Some fixes based on kRO's "RO Map" [Poki#3]
+//= I also made the place more Moby ^^
+//= 1.4: Adjusted spawns according to own info from iRO [MasterOfMuppets]
+//= 1.5: More accurate spawn numbers and iRO names thanks to Tharis [Playtester]
+//= 1.6: Official X.3 spawns [Playtester]
+//= 1.7 Corrected MVP spawn function to be standard to iRO. [L0ne_W0lf]
+//= - A random 99 will now be spawned when the MVP spawns.
+//= - Spare spawn and MVP spawn now spawn in official locations.
+//= - Expandeded timer to allow for varying spawn times.
+//= 1.7a Added dummy event to keep from causnig warnings. [L0ne_W0lf]
+//= 1.8 Corrected MVP spawn variance (Labs2 MVP). [L0ne_W0lf]
+//============================================================
+
+
+//========================================================================================
+// lhz_dun01 - Bio-life Labs 1F
+//========================================================================================
+
+lhz_dun01,0,0,0,0 monster Metaling 1613,50,0,0,0
+lhz_dun01,0,0,0,0 monster Anopheles 1627,70,0,0,0
+lhz_dun01,0,0,0,0 monster Remover 1682,100,0,0,0
+lhz_dun01,0,0,0,0 monster Egnigem Cenia 1652,1,0,0,0
+lhz_dun01,0,0,0,0 monster Wickebine Tres 1653,1,0,0,0
+lhz_dun01,0,0,0,0 monster Armeyer Dinze 1654,1,0,0,0
+lhz_dun01,0,0,0,0 monster Errende Ebecee 1655,1,0,0,0
+lhz_dun01,0,0,0,0 monster Kavach Icarus 1656,1,0,0,0
+lhz_dun01,0,0,0,0 monster Laurell Weinder 1657,1,0,0,0
+lhz_dun01,150,50,16,18 monster Egnigem Cenia 1652,1,900000,800000,1
+lhz_dun01,150,50,16,18 monster Wickebine Tres 1653,1,900000,800000,1
+lhz_dun01,150,50,16,18 monster Armeyer Dinze 1654,1,900000,800000,1
+lhz_dun01,150,50,16,18 monster Errende Ebecee 1655,5,900000,800000,1
+lhz_dun01,150,50,16,18 monster Kavach Icarus 1656,5,600000,300000,1
+lhz_dun01,150,50,16,18 monster Laurell Weinder 1657,5,600000,300000,1
+lhz_dun01,250,150,18,30 monster Egnigem Cenia 1652,4,900000,800000,1
+lhz_dun01,250,150,18,30 monster Wickebine Tres 1653,4,600000,300000,1
+lhz_dun01,250,150,18,30 monster Armeyer Dinze 1654,4,900000,800000,1
+lhz_dun01,250,150,18,30 monster Errende Ebecee 1655,2,900000,800000,1
+lhz_dun01,250,150,18,30 monster Kavach Icarus 1656,2,900000,800000,1
+lhz_dun01,250,150,18,30 monster Laurell Weinder 1657,2,600000,300000,1
+lhz_dun01,50,150,11,35 monster Egnigem Cenia 1652,1,600000,300000,1
+lhz_dun01,50,150,11,35 monster Wickebine Tres 1653,4,900000,800000,1
+lhz_dun01,50,150,11,35 monster Armeyer Dinze 1654,1,900000,800000,1
+lhz_dun01,50,150,11,35 monster Errende Ebecee 1655,4,900000,800000,1
+lhz_dun01,50,150,11,35 monster Kavach Icarus 1656,4,900000,800000,1
+lhz_dun01,50,150,11,35 monster Laurell Weinder 1657,2,600000,300000,1
+lhz_dun01,192,61,18,30 monster Egnigem Cenia 1652,1,900000,800000,1
+lhz_dun01,192,61,18,30 monster Wickebine Tres 1653,1,900000,800000,1
+lhz_dun01,192,61,18,30 monster Armeyer Dinze 1654,1,900000,800000,1
+lhz_dun01,192,61,18,30 monster Errende Ebecee 1655,1,900000,800000,1
+lhz_dun01,192,61,18,30 monster Kavach Icarus 1656,1,900000,800000,1
+lhz_dun01,192,61,18,30 monster Laurell Weinder 1657,1,900000,800000,1
+lhz_dun01,0,0,0,0 monster Gemini-S58 1681,1,7200000,5400000,0
+
+//========================================================================================
+// lhz_dun02 - Bio-life Labs 2F
+//========================================================================================
+
+lhz_dun02,0,0,0,0 monster Egnigem Cenia 1652,26,0,0,0
+lhz_dun02,0,0,0,0 monster Wickebine Tres 1653,26,0,0,0
+lhz_dun02,0,0,0,0 monster Armeyer Dinze 1654,26,0,0,0
+lhz_dun02,0,0,0,0 monster Errende Ebecee 1655,26,0,0,0
+lhz_dun02,0,0,0,0 monster Kavach Icarus 1656,26,0,0,0
+lhz_dun02,0,0,0,0 monster Laurell Weinder 1657,26,0,0,0
+lhz_dun02,150,150,56,54 monster Egnigem Cenia 1652,4,120000,60000,1
+lhz_dun02,150,150,56,54 monster Wickebine Tres 1653,4,120000,60000,1
+lhz_dun02,150,150,56,54 monster Armeyer Dinze 1654,4,120000,60000,1
+lhz_dun02,150,150,56,54 monster Errende Ebecee 1655,4,120000,60000,1
+lhz_dun02,150,150,56,54 monster Kavach Icarus 1656,4,120000,60000,1
+lhz_dun02,150,150,56,54 monster Laurell Weinder 1657,4,120000,60000,1
+lhz_dun02,150,150,105,90 monster Egnigem Cenia 1652,10,120000,60000,1
+lhz_dun02,150,150,105,90 monster Wickebine Tres 1653,10,120000,60000,1
+lhz_dun02,150,150,105,90 monster Armeyer Dinze 1654,10,120000,60000,1
+lhz_dun02,150,150,105,90 monster Errende Ebecee 1655,10,120000,60000,1
+lhz_dun02,150,150,105,90 monster Kavach Icarus 1656,10,120000,60000,1
+lhz_dun02,150,150,105,90 monster Laurell Weinder 1657,10,120000,60000,1
+lhz_dun02,0,0,0,0 monster Egnigem Cenia 1652,10,300000,150000,1
+lhz_dun02,0,0,0,0 monster Wickebine Tres 1653,10,300000,150000,1
+lhz_dun02,0,0,0,0 monster Armeyer Dinze 1654,10,300000,150000,1
+lhz_dun02,0,0,0,0 monster Errende Ebecee 1655,10,300000,150000,1
+lhz_dun02,0,0,0,0 monster Kavach Icarus 1656,10,300000,150000,1
+lhz_dun02,0,0,0,0 monster Laurell Weinder 1657,10,300000,150000,1
+lhz_dun02,0,0,0,0 monster Remover 1682,20,300000,150000,1
+lhz_dun02,0,0,0,0 monster Eremes Guile 1635,1,180000,120000,0
+lhz_dun02,0,0,0,0 monster Gemini-S58 1681,10,5400000,180000,0
+lhz_dun02,0,0,0,0 boss_monster Egnigem Cenia 1658,1,7200000,600000,1
+
+//========================================================================================
+// lhz_dun03 - Bio-life Labs 3F
+//========================================================================================
+
+lhz_dun03,140,235,116,30 monster Seyren Windsor 1634,4,180000,120000,0
+lhz_dun03,140,235,116,30 monster Eremes Guile 1635,4,180000,120000,0
+lhz_dun03,140,235,116,30 monster Howard Alt-Eisen 1636,4,180000,120000,0
+lhz_dun03,140,235,116,30 monster Margaretha Sorin 1637,4,180000,120000,0
+lhz_dun03,140,235,116,30 monster Cecil Damon 1638,4,180000,120000,0
+lhz_dun03,140,235,116,30 monster Kathryne Keyron 1639,4,180000,120000,0
+
+lhz_dun03,40,214,16,16 monster Seyren Windsor 1634,1,120000,60000,0
+lhz_dun03,40,214,16,16 monster Eremes Guile 1635,1,120000,60000,0
+lhz_dun03,40,214,16,16 monster Howard Alt-Eisen 1636,1,120000,60000,0
+lhz_dun03,40,214,16,16 monster Margaretha Sorin 1637,1,120000,60000,0
+lhz_dun03,40,214,16,16 monster Cecil Damon 1638,1,120000,60000,0
+lhz_dun03,40,214,16,16 monster Kathryne Keyron 1639,1,120000,60000,0
+
+lhz_dun03,240,213,16,17 monster Seyren Windsor 1634,1,120000,60000,0
+lhz_dun03,240,213,16,17 monster Eremes Guile 1635,1,120000,60000,0
+lhz_dun03,240,213,16,17 monster Howard Alt-Eisen 1636,1,120000,60000,0
+lhz_dun03,240,213,16,17 monster Margaretha Sorin 1637,1,120000,60000,0
+lhz_dun03,240,213,16,17 monster Cecil Damon 1638,1,120000,60000,0
+lhz_dun03,240,213,16,17 monster Kathryne Keyron 1639,1,120000,60000,0
+
+lhz_dun03,140,65,108,38 monster Seyren Windsor 1634,7,120000,160000,0
+lhz_dun03,140,65,108,38 monster Eremes Guile 1635,7,120000,160000,0
+lhz_dun03,140,65,108,38 monster Howard Alt-Eisen 1636,7,120000,160000,0
+lhz_dun03,140,65,108,38 monster Margaretha Sorin 1637,7,120000,160000,0
+lhz_dun03,140,65,108,38 monster Cecil Damon 1638,7,120000,60000,0
+lhz_dun03,140,65,108,38 monster Kathryne Keyron 1639,7,120000,60000,0
+
+lhz_dun03,140,31,8,15 monster Seyren Windsor 1634,1,600000,540000,0
+lhz_dun03,140,31,8,15 monster Eremes Guile 1635,1,540000,480000,0
+lhz_dun03,140,31,8,15 monster Howard Alt-Eisen 1636,1,600000,540000,0
+lhz_dun03,140,31,8,15 monster Margaretha Sorin 1637,1,540000,480000,0
+lhz_dun03,140,31,8,15 monster Cecil Damon 1638,1,600000,540000,0
+lhz_dun03,140,31,8,15 monster Kathryne Keyron 1639,1,540000,480000,0
+
+lhz_dun03,40,66,16,16 monster Seyren Windsor 1634,1,120000,60000,0
+lhz_dun03,40,66,16,16 monster Eremes Guile 1635,1,120000,60000,0
+lhz_dun03,40,66,16,16 monster Howard Alt-Eisen 1636,1,120000,60000,0
+lhz_dun03,40,66,16,16 monster Margaretha Sorin 1637,1,120000,60000,0
+lhz_dun03,40,66,16,16 monster Cecil Damon 1638,1,120000,60000,0
+lhz_dun03,40,66,16,16 monster Kathryne Keyron 1639,1,120000,60000,0
+
+lhz_dun03,240,66,16,16 monster Seyren Windsor 1634,1,120000,60000,0
+lhz_dun03,240,66,16,16 monster Eremes Guile 1635,1,120000,60000,0
+lhz_dun03,240,66,16,16 monster Howard Alt-Eisen 1636,1,120000,60000,0
+lhz_dun03,240,66,16,16 monster Margaretha Sorin 1637,1,120000,60000,0
+lhz_dun03,240,66,16,16 monster Cecil Damon 1638,1,120000,60000,0
+lhz_dun03,240,66,16,16 monster Kathryne Keyron 1639,1,120000,60000,0
+
+lhz_dun03,54,131,35,39 monster Seyren Windsor 1634,5,180000,120000,0
+lhz_dun03,54,131,35,39 monster Eremes Guile 1635,5,180000,120000,0
+lhz_dun03,54,131,35,39 monster Howard Alt-Eisen 1636,5,180000,120000,0
+lhz_dun03,54,131,35,39 monster Margaretha Sorin 1637,5,180000,120000,0
+lhz_dun03,54,131,35,39 monster Cecil Damon 1638,5,120000,60000,0
+lhz_dun03,54,131,35,39 monster Kathryne Keyron 1639,5,120000,60000,0
+
+lhz_dun03,228,137,35,39 monster Seyren Windsor 1634,5,180000,120000,0
+lhz_dun03,228,137,35,39 monster Eremes Guile 1635,5,180000,120000,0
+lhz_dun03,228,137,35,39 monster Howard Alt-Eisen 1636,5,180000,120000,0
+lhz_dun03,228,137,35,39 monster Margaretha Sorin 1637,5,180000,120000,0
+lhz_dun03,228,137,35,39 monster Cecil Damon 1638,5,120000,60000,0
+lhz_dun03,228,137,35,39 monster Kathryne Keyron 1639,5,120000,60000,0
+
+lhz_dun03,138,138,36,34 monster Seyren Windsor 1634,3,120000,60000,0
+lhz_dun03,138,138,36,34 monster Eremes Guile 1635,3,120000,60000,0
+lhz_dun03,138,138,36,34 monster Howard Alt-Eisen 1636,3,120000,60000,0
+lhz_dun03,138,138,36,34 monster Margaretha Sorin 1637,3,180000,120000,0
+lhz_dun03,138,138,36,34 monster Cecil Damon 1638,4,0,0,0
+lhz_dun03,138,138,36,34 monster Kathryne Keyron 1639,4,0,0,0
+
+lhz_dun03,140,192,66,21 monster Seyren Windsor 1634,7,120000,60000,0
+lhz_dun03,140,192,66,21 monster Eremes Guile 1635,7,180000,120000,0
+lhz_dun03,140,192,66,21 monster Howard Alt-Eisen 1636,7,120000,60000,0
+lhz_dun03,140,192,66,21 monster Margaretha Sorin 1637,7,180000,120000,0
+lhz_dun03,140,192,66,21 monster Cecil Damon 1638,7,120000,60000,0
+lhz_dun03,140,192,66,21 monster Kathryne Keyron 1639,7,120000,60000,0
+
+lhz_dun03,89,164,4,8 monster Kathryne Keyron 1639,1,120000,60000,0
+lhz_dun03,89,164,4,8 monster Cecil Damon 1638,3,120000,60000,0
+lhz_dun03,107,167,4,5 monster Kathryne Keyron 1639,1,120000,60000,0
+lhz_dun03,107,167,4,5 monster Cecil Damon 1638,3,120000,60000,0
+lhz_dun03,171,167,4,5 monster Kathryne Keyron 1639,1,120000,60000,0
+lhz_dun03,171,167,4,5 monster Cecil Damon 1638,3,120000,60000,0
+lhz_dun03,189,164,4,8 monster Kathryne Keyron 1639,1,120000,60000,0
+lhz_dun03,189,164,4,8 monster Cecil Damon 1638,3,120000,60000,0
+lhz_dun03,89,113,4,9 monster Kathryne Keyron 1639,1,120000,60000,0
+lhz_dun03,89,113,4,9 monster Cecil Damon 1638,3,120000,60000,0
+lhz_dun03,107,109,4,5 monster Kathryne Keyron 1639,1,120000,60000,0
+lhz_dun03,107,109,4,5 monster Cecil Damon 1638,3,120000,60000,0
+lhz_dun03,171,109,4,5 monster Kathryne Keyron 1639,1,120000,60000,0
+lhz_dun03,171,109,4,5 monster Cecil Damon 1638,3,120000,60000,0
+lhz_dun03,189,113,4,9 monster Kathryne Keyron 1639,1,120000,60000,0
+lhz_dun03,189,113,4,9 monster Cecil Damon 1638,3,120000,60000,0
+
+lhz_dun03,96,164,13,8 monster Seyren Windsor 1634,2,300000,120000,0
+lhz_dun03,96,164,13,8 monster Eremes Guile 1635,2,300000,120000,0
+lhz_dun03,96,164,13,8 monster Margaretha Sorin 1637,2,300000,120000,0
+lhz_dun03,96,164,13,8 monster Cecil Damon 1638,5,0,0,0
+lhz_dun03,96,164,13,8 monster Kathryne Keyron 1639,3,0,0,0
+lhz_dun03,180,164,13,8 monster Seyren Windsor 1634,2,300000,120000,0
+lhz_dun03,180,164,13,8 monster Howard Alt-Eisen 1636,2,300000,120000,0
+lhz_dun03,180,164,13,8 monster Margaretha Sorin 1637,2,300000,120000,0
+lhz_dun03,180,164,13,8 monster Cecil Damon 1638,5,0,0,0
+lhz_dun03,180,164,13,8 monster Kathryne Keyron 1639,3,0,0,0
+lhz_dun03,98,113,13,9 monster Seyren Windsor 1634,2,300000,120000,0
+lhz_dun03,98,113,13,9 monster Eremes Guile 1635,2,300000,120000,0
+lhz_dun03,98,113,13,9 monster Howard Alt-Eisen 1636,2,300000,120000,0
+lhz_dun03,98,113,13,9 monster Cecil Damon 1638,5,0,0,0
+lhz_dun03,98,113,13,9 monster Kathryne Keyron 1639,3,0,0,0
+lhz_dun03,180,113,13,9 monster Eremes Guile 1635,2,300000,120000,0
+lhz_dun03,180,113,13,9 monster Howard Alt-Eisen 1636,2,300000,120000,0
+lhz_dun03,180,113,13,9 monster Margaretha Sorin 1637,2,300000,120000,0
+lhz_dun03,180,113,13,9 monster Cecil Damon 1638,5,0,0,0
+lhz_dun03,180,113,13,9 monster Kathryne Keyron 1639,3,0,0,0
+
+lhz_dun03,114,138,12,16 monster Lord Knight Seyren 1640,1,2700000,2400000,1
+lhz_dun03,163,138,12,16 monster Whitesmith Howard 1642,1,3000000,2700000,1
+lhz_dun03,139,158,20,11 monster Assassin Cross Eremes 1641,1,2580000,2340000,1
+lhz_dun03,139,117,20,11 monster Sniper Cecil 1644,1,2700000,2500000,1
+lhz_dun03,138,138,36,34 monster High Priest Margaretha 1643,1,3300000,3000000,1
+lhz_dun03,138,138,36,34 monster High Wizard Kathryne 1645,1,2580000,2460000,1
+
+lhz_dun03,2,2,0 script summon_boss_lt -1,{
+OnInit:
+ initnpctimer;
+ end;
+
+OnTimer6000000:
+ if (rand(1,6) == 1) {
+ donpcevent "summon_boss_lt::Onsummon";
+ stopnpctimer;
+ }
+ end;
+
+OnTimer6300000:
+ if (rand(1,6) == 2) {
+ donpcevent "summon_boss_lt::Onsummon";
+ stopnpctimer;
+ }
+ end;
+
+OnTimer6600000:
+ if (rand(1,6) == 3) {
+ donpcevent "summon_boss_lt::Onsummon";
+ stopnpctimer;
+ }
+ end;
+
+OnTimer6900000:
+ if (rand(1,6) == 4) {
+ donpcevent "summon_boss_lt::Onsummon";
+ stopnpctimer;
+ }
+ end;
+
+OnTimer7200000:
+ if (rand(1,6) == 5) {
+ donpcevent "summon_boss_lt::Onsummon";
+ stopnpctimer;
+ }
+ end;
+
+OnTimer7500000:
+ if (rand(1,6) == 6) {
+ donpcevent "summon_boss_lt::Onsummon";
+ stopnpctimer;
+ }
+ end;
+
+OnTimer7800000:
+ donpcevent "summon_boss_lt::Onsummon";
+ stopnpctimer;
+ end;
+
+Onsummon:
+ // Select Coordinates to summon a random MVP on
+ switch(rand(1,6)) {
+ case 1: set .@x,140; set .@y,232; break;
+ case 2: set .@x,75; set .@y,138; break;
+ case 3: set .@x,140; set .@y,87; break;
+ case 4: set .@x,205; set .@y,140; break;
+ case 5: set .@x,123; set .@y,137; break;
+ case 6: set .@x,175; set .@y,137; break;
+ }
+ set .@mob,rand(1646,1651);
+ monster "lhz_dun03",.@x,.@y,strmobinfo(1,.@mob),.@mob,1,"summon_boss_lt::OnMyMvPDead";
+
+ // Select Coordinates to summon a random 99 on
+ switch(rand(1,6)) {
+ case 1: set .@x2,183; set .@y2,97; break;
+ case 2: set .@x2,97; set .@y2,96; break;
+ case 3: set .@x2,47; set .@y2,139; break;
+ case 4: set .@x2,231; set .@y2,140; break;
+ case 5: set .@x2,139; set .@y2,211; break;
+ case 6: set .@x2,139; set .@y2,259; break;
+ }
+ set .@mob2,rand(1640,1645);
+ monster "lhz_dun03",.@x2,.@y2,strmobinfo(1,.@mob2),.@mob2,1,"summon_boss_lt::OnMVP";
+ end;
+
+OnMyMvPDead:
+ killmonster "lhz_dun03","summon_boss_lt::OnMVP";
+ initnpctimer;
+ end;
+
+//Required to keep from erroring
+OnMVP:
+ end;
+}
diff --git a/npc/pre-re/mobs/dungeons/lou_dun.txt b/npc/pre-re/mobs/dungeons/lou_dun.txt
new file mode 100644
index 000000000..bc4a264dd
--- /dev/null
+++ b/npc/pre-re/mobs/dungeons/lou_dun.txt
@@ -0,0 +1,43 @@
+//===== rAthena Script =======================================
+//= Louyang Dungeon Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.3
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.1 Updated by MasterOfMuppets
+//= 1.2 Added Bacsojin and Chung E [MasterOfMuppets]
+//= 1.3 Corrected MVP spawn variance. [L0ne_W0lf]
+//============================================================
+
+//==================================================
+// lou_dun01 - The Royal Tomb
+//==================================================
+lou_dun01,0,0,0,0 monster Horong 1129,15,0,0,0
+lou_dun01,0,0,0,0 monster Mi Gao 1516,15,0,0,0
+lou_dun01,215,159,40,80 monster Side Winder 1037,10,300000,120000,0
+lou_dun01,215,159,40,80 monster Jing Guai 1517,25,300000,120000,0
+lou_dun01,0,0,0,0 monster Jing Guai 1517,20,0,0,0
+lou_dun01,0,0,0,0 monster Grizzly 1381,15,0,0,0
+lou_dun01,0,0,0,0 monster Leib Olmai 1306,1,300000,120000,0
+lou_dun01,197,77,10,10 monster Black Mushroom 1084,5,0,0,0
+lou_dun01,0,0,0,0 monster Shining Plant 1083,5,0,0,0
+
+//==================================================
+// lou_dun02 - Inside the Royal Tomb
+//==================================================
+lou_dun02,0,0,0,0 monster Yao Jun 1512,40,300000,120000,0
+lou_dun02,0,0,0,0 monster Munak 1026,25,0,0,0
+lou_dun02,0,0,0,0 monster Zhu Po Long 1514,5,0,0,0
+lou_dun02,0,0,0,0 monster Mimic 1191,5,0,0,0
+
+//==================================================
+// lou_dun03 - Suei Long Gon
+//==================================================
+lou_dun03,0,0,0,0 monster Yao Jun 1512,25,120000,60000,0
+lou_dun03,0,0,0,0 monster Zhu Po Long 1514,25,120000,60000,0
+lou_dun03,0,0,0,0 monster Mao Guai 1513,15,0,0,0
+lou_dun03,0,0,0,0 monster Green Maiden 1631,5,3000000,1800000,1
+lou_dun03,0,0,0,0 boss_monster White Lady 1630,1,7000000,600000,1
diff --git a/npc/pre-re/mobs/dungeons/mag_dun.txt b/npc/pre-re/mobs/dungeons/mag_dun.txt
new file mode 100644
index 000000000..e568a0f54
--- /dev/null
+++ b/npc/pre-re/mobs/dungeons/mag_dun.txt
@@ -0,0 +1,43 @@
+//===== rAthena Script =======================================
+//= Magma Dungeon Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.3
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.1 fixed 2,3,4 tabs instead of 1... and wrong mob names [Lupus]
+//= 1.2 Official jRO 10.3 spawns [Playtester]
+//= 1.3 More accurate spawns [Playtester]
+//============================================================
+
+//==================================================
+// mag_dun01 - Nogg Road F1
+//==================================================
+mag_dun01,0,0,0,0 monster Blazer 1367,20,0,0,0
+mag_dun01,0,0,0,0 monster Lava Golem 1366,20,600000,300000,0
+mag_dun01,0,0,0,0 monster Kaho 1072,20,0,0,0
+mag_dun01,0,0,0,0 monster Explosion 1383,30,0,0,0
+mag_dun01,0,0,0,0 monster Grizzly 1381,10,0,0,0
+
+//==================================================
+// mag_dun02 - Nogg Road F2
+//==================================================
+mag_dun02,0,0,0,0 monster Gig 1387,10,0,0,0
+mag_dun02,0,0,0,0 monster Deleter 1384,25,0,0,0
+mag_dun02,0,0,0,0 monster Deleter 1385,25,0,0,0
+mag_dun02,0,0,0,0 monster Diabolic 1382,10,120000,30000,0
+mag_dun02,0,0,0,0 monster Nightmare Terror 1379,15,0,0,0
+mag_dun02,0,0,0,0 monster Nightmare Terror 1379,10,60000,30000,0
+mag_dun02,110,190,50,20 monster Blazer 1367,5,300000,150000,0
+mag_dun02,110,190,50,20 monster Nightmare Terror 1379,4,180000,150000,0
+mag_dun02,200,120,40,40 monster Blazer 1367,15,300000,150000,0
+mag_dun02,103,102,58,59 monster Nightmare Terror 1379,10,300000,150000,0
+mag_dun02,120,202,20,20 monster Deleter 1384,3,300000,150000,0
+mag_dun02,184,170,43,55 monster Deleter 1384,7,300000,150000,0
+mag_dun02,184,170,43,55 monster Deleter 1385,10,300000,150000,0
+mag_dun02,184,170,43,55 monster Nightmare Terror 1379,7,300000,150000,0
+mag_dun02,197,59,50,37 monster Deleter 1384,3,300000,150000,0
+mag_dun02,197,59,50,37 monster Deleter 1385,5,300000,150000,0
+mag_dun02,197,59,50,37 monster Diabolic 1382,5,300000,30000,0
diff --git a/npc/pre-re/mobs/dungeons/mjo_dun.txt b/npc/pre-re/mobs/dungeons/mjo_dun.txt
new file mode 100644
index 000000000..12a0e9dee
--- /dev/null
+++ b/npc/pre-re/mobs/dungeons/mjo_dun.txt
@@ -0,0 +1,36 @@
+//===== rAthena Script =======================================
+//= Coal Mine(Dead pit) Dungeon Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.1
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.1 Official kRO 10.1 spawns [Playtester]
+//============================================================
+
+//==================================================
+// mjo_dun01 - Mjolnir Dead Pit F1
+//==================================================
+mjo_dun01,0,0,0,0 monster Familiar 1005,30,0,0,0
+mjo_dun01,0,0,0,0 monster Tarou 1175,60,0,0,0
+mjo_dun01,0,0,0,0 monster Martin 1145,20,0,0,0
+
+//==================================================
+// mjo_dun02 - Mjolnir Dead Pit F2
+//==================================================
+mjo_dun02,0,0,0,0 monster Martin 1145,60,0,0,0
+mjo_dun02,0,0,0,0 monster Drainliar 1111,20,0,0,0
+mjo_dun02,0,0,0,0 monster Skeleton Worker 1169,20,0,0,0
+mjo_dun02,0,0,0,0 monster Giearth 1121,35,30000,10000,0
+
+//==================================================
+// mjo_dun03 - Mjolnir Dead Pit F3
+//==================================================
+mjo_dun03,0,0,0,0 monster Martin 1145,5,0,0,0
+mjo_dun03,0,0,0,0 monster Skeleton Worker 1169,70,0,0,0
+mjo_dun03,0,0,0,0 monster Giearth 1121,5,0,0,0
+mjo_dun03,0,0,0,0 monster Myst 1151,35,0,0,0
+mjo_dun03,0,0,0,0 monster Cramp 1209,2,300000,150000,0
+mjo_dun03,0,0,0,0 monster Cramp 1209,1,50000,25000,0
diff --git a/npc/pre-re/mobs/dungeons/moc_pryd.txt b/npc/pre-re/mobs/dungeons/moc_pryd.txt
new file mode 100644
index 000000000..4a8bf8e0b
--- /dev/null
+++ b/npc/pre-re/mobs/dungeons/moc_pryd.txt
@@ -0,0 +1,64 @@
+//===== rAthena Script =======================================
+//= Morocc Pryamid Dungeon Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.3
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.1 Official kRO 10.1 spawns [Playtester]
+//= 1.2 More accurate spawns [Playtester]
+//= 1.3 Corrected MVP spawn variance. [L0ne_W0lf]
+//============================================================
+
+//==================================================
+// moc_pryd01 - Inside Pyramid F1
+//==================================================
+moc_pryd01,0,0,0,0 monster Familiar 1005,50,0,0,0
+moc_pryd01,0,0,0,0 monster Poporing 1031,20,0,0,0
+
+//==================================================
+// moc_pryd02 - Inside Pyramid F2
+//==================================================
+moc_pryd02,0,0,0,0 monster Poporing 1031,20,0,0,0
+moc_pryd02,0,0,0,0 monster Drainliar 1111,20,0,0,0
+moc_pryd02,0,0,0,0 monster Mummy 1041,30,0,0,0
+moc_pryd02,0,0,0,0 monster Isis 1029,5,0,0,0
+moc_pryd02,0,0,0,0 monster Soldier Skeleton 1028,30,0,0,0
+moc_pryd02,0,0,0,0 monster Archer Skeleton 1016,30,0,0,0
+
+//==================================================
+// moc_pryd03 - Inside Pyramid F3
+//==================================================
+moc_pryd03,0,0,0,0 monster Drainliar 1111,5,0,0,0
+moc_pryd03,0,0,0,0 monster Mimic 1191,5,0,0,0
+moc_pryd03,0,0,0,0 monster Matyr 1146,10,0,0,0
+moc_pryd03,0,0,0,0 monster Mummy 1041,70,0,0,0
+moc_pryd03,0,0,0,0 monster Verit 1032,20,600000,300000,1
+
+//==================================================
+// moc_pryd04 - Inside Pyramid F4
+//==================================================
+moc_pryd04,0,0,0,0 monster Mummy 1041,25,0,0,0
+moc_pryd04,0,0,0,0 monster Ancient Mummy 1297,3,0,0,0
+moc_pryd04,0,0,0,0 monster Isis 1029,50,150000,75000,0
+moc_pryd04,0,0,0,0 monster Mimic 1191,15,600000,300000,1
+moc_pryd04,0,0,0,0 boss_monster Osiris 1038,1,3600000,600000,0
+moc_pryd04,0,0,0,0 monster Matyr 1146,20,0,0,0
+
+//==================================================
+// moc_pryd05 - Inside Pyramid B1
+//==================================================
+moc_pryd05,0,0,0,0 monster Minorous 1149,60,0,0,0
+moc_pryd05,0,0,0,0 monster Mummy 1041,10,0,0,0
+moc_pryd05,0,0,0,0 monster Verit 1032,50,0,0,0
+
+//==================================================
+// moc_pryd06 - Inside Pyramid B2
+//==================================================
+moc_pryd06,0,0,0,0 monster Verit 1032,10,0,0,0
+moc_pryd06,0,0,0,0 monster Arclouze 1194,20,0,0,0
+moc_pryd06,100,90,80,50 monster Ancient Mummy 1297,20,0,0,0
+moc_pryd06,100,90,80,50 monster Mimic 1191,20,0,0,0
+moc_pryd06,102,85,1,1 boss_monster Amon Ra 1511,1,3600000,600000,0
diff --git a/npc/pre-re/mobs/dungeons/mosk_dun.txt b/npc/pre-re/mobs/dungeons/mosk_dun.txt
new file mode 100644
index 000000000..d3c416948
--- /dev/null
+++ b/npc/pre-re/mobs/dungeons/mosk_dun.txt
@@ -0,0 +1,49 @@
+//===== rAthena Script =======================================
+//= Moscovia Dungeon Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.3
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.0 Added spawns [Playtester]
+//= 1.1 Swapped named according to mob db. [L0ne_W0lf]
+//= 1.2 Fixed the mob names (iRO names) [Playtester]
+//= 1.2 Updated spawns kinda. [Kisuka]
+//============================================================
+
+//==================================================
+// mosk_dun01 - Moscovia Dungeon 1
+//==================================================
+mosk_dun01,64,236,100,100 monster Wood Goblin 1880,15,10000,0,1
+mosk_dun01,64,236,100,100 monster Les 1881,7,10000,0,1
+mosk_dun01,99,162,100,100 monster Wood Goblin 1880,15,10000,0,1
+mosk_dun01,99,162,100,100 monster Les 1881,7,10000,0,1
+mosk_dun01,150,80,100,5 monster Wood Goblin 1880,30,10000,0,1
+mosk_dun01,150,80,100,5 monster Les 1881,15,10000,0,1
+mosk_dun01,241,177,10,10 monster Wood Goblin 1880,3,10000,0,1
+mosk_dun01,241,177,10,10 monster Les 1881,2,10000,0,1
+mosk_dun01,198,223,10,10 monster Wood Goblin 1880,3,10000,0,1
+mosk_dun01,198,223,10,10 monster Les 1881,2,10000,0,1
+mosk_dun01,0,0,0,0 monster Poporing 1031,20,10000,0,1
+mosk_dun01,0,0,0,0 monster Mantis 1139,10,20000,0,0
+
+//==================================================
+// mosk_dun02 - Moscovia Dungeon 2
+//==================================================
+mosk_dun02,0,0,0,0 monster Wood Goblin 1880,30,10000,10000,1
+mosk_dun02,0,0,0,0 monster Les 1881,40,10000,10000,1
+mosk_dun02,0,0,0,0 monster Baba Yaga 1882,20,20000,10000,1
+mosk_dun02,0,0,0,0 monster Uzhas 1883,5,20000,10000,1
+
+//==================================================
+// mosk_dun03 - Moscovia Dungeon 3
+//==================================================
+mosk_dun03,0,0,0,0 monster Baba Yaga 1882,60,10000,10000,1
+mosk_dun03,0,0,0,0 monster Uzhas 1883,35,20000,10000,1
+mosk_dun03,0,0,0,0 monster Mavka 1884,15,20000,10000,1
+mosk_dun03,0,0,0,0 monster Yellow Plant 1081,10,0,0,0
+mosk_dun03,0,0,0,0 monster White Plant 1082,10,0,0,0
+mosk_dun03,0,0,0,0 monster Shining Plant 1083,5,10000,0,0
+mosk_dun03,207,221,5,5 boss_monster Gopinich 1885,1,7200000,600000,1
diff --git a/npc/pre-re/mobs/dungeons/nyd_dun.txt b/npc/pre-re/mobs/dungeons/nyd_dun.txt
new file mode 100644
index 000000000..19a7e783e
--- /dev/null
+++ b/npc/pre-re/mobs/dungeons/nyd_dun.txt
@@ -0,0 +1,21 @@
+//===== rAthena Script =======================================
+//= Yggdrasil Root Dungeon
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.0 First version
+//============================================================
+
+//==================================================
+// nyd_dun01 - Yggdrasil Root Dungeon
+//==================================================
+nyd_dun01,0,0,0,0 monster Draco 2013,40,0,0,0
+nyd_dun01,0,0,0,0 monster Draco's Egg 2014,10,0,0,0
+nyd_dun01,0,0,0,0 monster Aqua Elemental 2016,20,0,0,0
+nyd_dun01,0,0,0,0 monster Dark Pinguicula 2015,10,0,0,0
+nyd_dun01,0,0,0,0 monster Rata 2017,2,900000,0,0
+nyd_dun01,0,0,0,0 monster Duneyrr 2018,2,900000,0,0
diff --git a/npc/pre-re/mobs/dungeons/odin.txt b/npc/pre-re/mobs/dungeons/odin.txt
new file mode 100644
index 000000000..48f7f465f
--- /dev/null
+++ b/npc/pre-re/mobs/dungeons/odin.txt
@@ -0,0 +1,67 @@
+//===== rAthena Script =======================================
+//= Odin Temple Monster Spawn Script
+//===== By: ==================================================
+//= Poki#3 (0.1)
+//===== Current Version: =====================================
+//= 1.2
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.0 Updated by using Tharis' Homun AI, by Tharis [Vicious]
+//= 1.1 More accurate spawns [Playtester]
+//= 1.2 Corrected MVP spawn variance. [L0ne_W0lf]
+//============================================================
+
+//==================================================
+// odin_tem01 - Odin Temple F1
+//==================================================
+odin_tem01,0,0,0,0 monster Breeze 1692,10,300000,240000,0
+odin_tem01,0,0,0,0 monster Plasma 1697,3,900000,300000,0
+odin_tem01,0,0,0,0 monster Plasma 1695,3,900000,300000,0
+odin_tem01,0,0,0,0 monster Plasma 1696,3,900000,300000,0
+odin_tem01,0,0,0,0 monster Plasma 1694,3,900000,300000,0
+odin_tem01,0,0,0,0 monster Plasma 1693,10,900000,300000,0
+odin_tem01,0,0,0,0 monster Frus 1753,5,0,0,0
+odin_tem01,0,0,0,0 monster Skogul 1752,5,0,0,0
+odin_tem01,0,0,0,0 monster Green Plant 1080,5,60000,30000,1
+odin_tem01,0,0,0,0 monster Yellow Plant 1081,5,60000,30000,1
+odin_tem01,0,0,0,0 monster Blue Plant 1079,5,600000,300000,1
+
+//==================================================
+// odin_tem02 - Odin Temple F2
+//==================================================
+odin_tem02,0,0,0,0 monster Plasma 1693,15,900000,300000,0
+odin_tem02,0,0,0,0 monster Skeggiold 1754,1,1800000,0,0
+odin_tem02,0,0,0,0 monster Skeggiold 1755,1,1800000,0,0
+odin_tem02,0,0,0,0 monster Frus 1753,30,0,0,0
+odin_tem02,0,0,0,0 monster Skogul 1752,30,0,0,0
+odin_tem02,160,330,3,3 monster Frus 1762,1,30000,15000,0
+odin_tem02,172,292,3,3 monster Skogul 1761,1,30000,15000,0
+odin_tem02,182,263,3,3 monster Frus 1762,1,30000,15000,0
+odin_tem02,190,236,3,3 monster Skogul 1761,1,30000,15000,0
+odin_tem02,205,198,3,3 monster Frus 1762,1,30000,15000,0
+odin_tem02,0,0,0,0 monster Valkyrie 1765,1,5400000,1800000,0
+odin_tem02,0,0,0,0 monster Blue Plant 1079,10,1800000,900000,1
+
+//==================================================
+// odin_tem03 - Odin Temple F3
+//==================================================
+odin_tem03,0,0,0,0 monster Plasma 1693,20,900000,300000,0
+odin_tem03,0,0,0,0 monster Skeggiold 1754,16,0,0,0
+odin_tem03,0,0,0,0 monster Skeggiold 1755,16,0,0,0
+odin_tem03,0,0,0,0 monster Frus 1753,4,0,0,0
+odin_tem03,0,0,0,0 monster Skogul 1752,4,0,0,0
+odin_tem03,116,65,3,3 monster Frus 1762,1,30000,15000,0
+odin_tem03,100,110,3,3 monster Skogul 1761,1,30000,15000,0
+odin_tem03,94,132,3,3 monster Frus 1762,1,30000,15000,0
+odin_tem03,90,173,3,3 monster Frus 1762,1,30000,15000,0
+odin_tem03,111,188,3,3 monster Skogul 1761,1,30000,15000,0
+odin_tem03,151,210,3,3 monster Skogul 1761,1,30000,15000,0
+odin_tem03,178,224,3,3 monster Skogul 1761,1,30000,15000,0
+odin_tem03,205,240,3,3 monster Frus 1762,1,30000,15000,0
+odin_tem03,238,265,3,3 monster Skogul 1761,1,30000,15000,0
+odin_tem03,256,271,3,3 monster Frus 1762,1,30000,15000,0
+odin_tem03,0,0,0,0 monster Valkyrie 1765,2,1800000,1200000,0
+odin_tem03,0,0,0,0 boss_monster Valkyrie Randgris 1751,1,28800000,600000,1
+odin_tem03,0,0,0,0 monster Blue Plant 1079,15,1800000,900000,1
+odin_tem03,0,0,0,0 monster Shining Plant 1083,15,1800000,900000,1
diff --git a/npc/pre-re/mobs/dungeons/orcsdun.txt b/npc/pre-re/mobs/dungeons/orcsdun.txt
new file mode 100644
index 000000000..be6e7bfc1
--- /dev/null
+++ b/npc/pre-re/mobs/dungeons/orcsdun.txt
@@ -0,0 +1,41 @@
+//===== rAthena Script =======================================
+//= Orc Dungeon Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.2
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.2 Official kRO 10.1 spawns [Playtester]
+//============================================================
+
+//==================================================
+// orcsdun01 - Orc Dungeon F1
+//==================================================
+orcsdun01,0,0,0,0 monster Steel Chonchon 1042,10,0,0,0
+orcsdun01,0,0,0,0 monster Familiar 1005,15,0,0,0
+orcsdun01,0,0,0,0 monster Drainliar 1111,5,0,0,0
+orcsdun01,0,0,0,0 monster Orc Zombie 1153,10,3000,5000,0
+orcsdun01,0,0,0,0 monster Orc Zombie 1153,30,60000,30000,0
+orcsdun01,0,0,0,0 monster Orc Zombie 1153,40,120000,60000,0
+orcsdun01,0,0,0,0 monster Orc Skeleton 1152,10,180000,60000,0
+orcsdun01,167,133,5,5 monster Black Mushroom 1084,5,900000,450000,1
+orcsdun01,67,34,5,5 monster Black Mushroom 1084,5,900000,450000,1
+orcsdun01,83,50,5,5 monster White Plant 1082,2,180000,90000,1
+orcsdun01,58,67,10,10 monster White Plant 1082,3,180000,90000,1
+
+//==================================================
+// orcsdun02 - Orc Dungeon F2
+//==================================================
+orcsdun02,0,0,0,0 monster Steel Chonchon 1042,20,0,0,0
+orcsdun02,0,0,0,0 monster Drainliar 1111,20,0,0,0
+orcsdun02,0,0,0,0 monster Orc Skeleton 1152,10,3000,5000,0
+orcsdun02,0,0,0,0 monster Orc Skeleton 1152,20,60000,30000,0
+orcsdun02,0,0,0,0 monster Orc Skeleton 1152,20,120000,60000,0
+orcsdun02,0,0,0,0 monster Zenorc 1177,30,3000,5000,0
+orcsdun02,0,0,0,0 monster Zenorc 1177,20,60000,30000,0
+orcsdun02,0,0,0,0 monster Orc Archer 1189,5,1800000,900000,1
+orcsdun02,0,0,0,0 monster Black Mushroom 1084,5,180000,90000,1
+orcsdun02,105,37,10,10 monster White Plant 1082,2,180000,90000,1
+orcsdun02,37,44,10,10 monster White Plant 1082,3,180000,90000,1
diff --git a/npc/pre-re/mobs/dungeons/pay_dun.txt b/npc/pre-re/mobs/dungeons/pay_dun.txt
new file mode 100644
index 000000000..481edea80
--- /dev/null
+++ b/npc/pre-re/mobs/dungeons/pay_dun.txt
@@ -0,0 +1,162 @@
+//===== rAthena Script =======================================
+//= Payon Cave Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.3
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.1 Official kRO 10.1 spawns [Playtester]
+//= 1.2 Small spawn update [Playtester]
+//= 1.3 Corrected MVP spawn variance. [L0ne_W0lf]
+//============================================================
+
+//==================================================
+// pay_dun00 - Payon Cave F1
+//==================================================
+pay_dun00,0,0,0,0 monster Familiar 1005,15,0,0,0
+pay_dun00,0,0,0,0 monster Zombie 1015,20,0,0,0
+pay_dun00,0,0,0,0 monster Skeleton 1076,35,0,0,0
+pay_dun00,0,0,0,0 monster Poporing 1031,15,0,0,0
+pay_dun00,0,0,0,0 monster Red Plant 1078,15,180000,90000,1
+pay_dun00,140,140,5,5 monster Black Mushroom 1084,3,360000,180000,1
+
+//==================================================
+// pay_dun01 - Payon Cave F2
+//==================================================
+pay_dun01,0,0,0,0 monster Drainliar 1111,5,0,0,0
+pay_dun01,0,0,0,0 monster Eggyra 1116,15,0,0,0
+pay_dun01,0,0,0,0 monster Soldier Skeleton 1028,50,300000,150000,1
+pay_dun01,0,0,0,0 monster Archer Skeleton 1016,30,300000,150000,1
+pay_dun01,235,54,10,10 monster Black Mushroom 1084,7,900000,450000,1
+pay_dun01,0,0,0,0 monster Red Plant 1078,10,180000,90000,1
+
+//==================================================
+// pay_dun02 - Payon Cave F3
+//==================================================
+pay_dun02,0,0,0,0 monster Soldier Skeleton 1028,15,180000,90000,1
+pay_dun02,0,0,0,0 monster Munak 1026,40,0,0,0
+pay_dun02,0,0,0,0 monster Bongun 1188,30,0,0,0
+pay_dun02,0,0,0,0 monster Poporing 1031,10,0,0,0
+pay_dun02,0,0,0,0 monster Archer Skeleton 1016,20,180000,90000,1
+pay_dun02,116,205,0,0 monster Hydra 1068,1,345000,100000,1
+pay_dun02,116,199,0,0 monster Hydra 1068,1,306000,100000,1
+pay_dun02,116,196,0,0 monster Hydra 1068,1,300000,100000,1
+pay_dun02,116,190,0,0 monster Hydra 1068,1,326000,100000,1
+pay_dun02,117,206,0,0 monster Hydra 1068,1,302000,100000,1
+pay_dun02,117,200,0,0 monster Hydra 1068,1,275000,100000,1
+pay_dun02,117,197,0,0 monster Hydra 1068,1,314000,100000,1
+pay_dun02,117,191,0,0 monster Hydra 1068,1,300000,100000,1
+pay_dun02,118,207,0,0 monster Hydra 1068,1,332000,100000,1
+pay_dun02,118,201,0,0 monster Hydra 1068,1,300000,100000,1
+pay_dun02,118,198,0,0 monster Hydra 1068,1,312000,100000,1
+pay_dun02,118,192,0,0 monster Hydra 1068,1,285000,100000,1
+pay_dun02,119,205,0,0 monster Hydra 1068,1,324000,100000,1
+pay_dun02,119,199,0,0 monster Hydra 1068,1,300000,100000,1
+pay_dun02,119,196,0,0 monster Hydra 1068,1,315000,100000,1
+pay_dun02,120,203,0,0 monster Hydra 1068,1,300000,100000,1
+pay_dun02,120,200,0,0 monster Hydra 1068,1,303000,100000,1
+pay_dun02,120,194,0,0 monster Hydra 1068,1,300000,100000,1
+pay_dun02,121,200,0,0 monster Hydra 1068,1,333000,100000,1
+pay_dun02,122,200,0,0 monster Hydra 1068,1,300000,100000,1
+pay_dun02,122,197,0,0 monster Hydra 1068,1,321000,100000,1
+pay_dun02,110,194,0,0 monster Hydra 1068,1,300000,100000,1
+pay_dun02,113,194,0,0 monster Hydra 1068,1,319000,100000,1
+pay_dun02,109,193,0,0 monster Hydra 1068,1,300000,100000,1
+pay_dun02,113,193,0,0 monster Hydra 1068,1,300000,100000,1
+pay_dun02,109,192,0,0 monster Hydra 1068,1,374000,100000,1
+pay_dun02,112,192,0,0 monster Hydra 1068,1,300000,100000,1
+pay_dun02,108,191,0,0 monster Hydra 1068,1,332000,100000,1
+pay_dun02,111,191,0,0 monster Hydra 1068,1,300000,100000,1
+pay_dun02,107,190,0,0 monster Hydra 1068,1,320000,100000,1
+pay_dun02,110,190,0,0 monster Hydra 1068,1,300000,100000,1
+pay_dun02,227,185,0,0 monster Mandragora 1020,1,300000,100000,1
+pay_dun02,227,184,0,0 monster Mandragora 1020,1,300000,100000,1
+pay_dun02,229,183,0,0 monster Mandragora 1020,1,300000,100000,1
+pay_dun02,214,266,0,0 monster Red Plant 1078,1,600000,300000,1
+pay_dun02,37,243,0,0 monster Black Mushroom 1084,1,600000,300000,1
+pay_dun02,37,243,0,0 monster Nine Tail 1180,1,3600000,1800000,1
+pay_dun02,111,199,10,10 monster Black Mushroom 1084,7,900000,450000,1
+pay_dun02,110,216,20,10 monster White Plant 1082,3,180000,90000,1
+pay_dun02,132,84,10,10 monster White Plant 1082,3,180000,90000,1
+pay_dun02,197,113,10,10 monster Red Plant 1078,4,180000,90000,1
+pay_dun02,55,254,10,10 monster Red Plant 1078,4,180000,90000,1
+
+//==================================================
+// pay_dun03 - Payon Cave F4
+//==================================================
+pay_dun03,0,0,0,0 monster Sohee 1170,50,0,0,0
+pay_dun03,0,0,0,0 monster Munak 1026,3,0,0,0
+pay_dun03,0,0,0,0 monster Bongun 1188,3,0,0,0
+pay_dun03,0,0,0,0 monster Nine Tail 1180,1,0,0,0
+pay_dun03,0,0,0,0 monster Nine Tail 1180,1,3600000,1800000,0
+pay_dun03,154,112,0,0 monster Whisper 1185,1,1800000,0,1
+pay_dun03,161,117,0,0 monster Whisper 1185,1,1800000,0,1
+pay_dun03,81,61,0,0 monster Whisper 1185,1,1800000,0,1
+pay_dun03,84,63,0,0 monster Whisper 1185,1,1800000,0,1
+pay_dun03,89,147,0,0 monster Giant Whisper 1186,1,14400000,0,1
+pay_dun03,66,73,0,0 monster Hydra 1068,1,600000,300000,1
+pay_dun03,68,72,0,0 monster Hydra 1068,1,600000,300000,1
+pay_dun03,67,71,0,0 monster Hydra 1068,1,600000,300000,1
+pay_dun03,63,70,0,0 monster Hydra 1068,1,600000,300000,1
+pay_dun03,58,69,0,0 monster Hydra 1068,1,600000,300000,1
+pay_dun03,67,69,0,0 monster Hydra 1068,1,600000,300000,1
+pay_dun03,60,68,0,0 monster Hydra 1068,1,600000,300000,1
+pay_dun03,69,68,0,0 monster Hydra 1068,1,600000,300000,1
+pay_dun03,62,67,0,0 monster Hydra 1068,1,600000,300000,1
+pay_dun03,71,67,0,0 monster Hydra 1068,1,600000,300000,1
+pay_dun03,64,66,0,0 monster Hydra 1068,1,600000,300000,1
+pay_dun03,57,65,0,0 monster Hydra 1068,1,600000,300000,1
+pay_dun03,66,65,0,0 monster Hydra 1068,1,600000,300000,1
+pay_dun03,59,64,0,0 monster Hydra 1068,1,600000,300000,1
+pay_dun03,68,64,0,0 monster Hydra 1068,1,600000,300000,1
+pay_dun03,71,64,0,0 monster Hydra 1068,1,600000,300000,1
+pay_dun03,66,63,0,0 monster Hydra 1068,1,600000,300000,1
+pay_dun03,71,243,0,0 monster Sohee 1170,2,300000,100000,1
+pay_dun03,86,248,0,0 monster Sohee 1170,2,300000,100000,1
+pay_dun03,85,178,0,0 monster Sohee 1170,2,300000,100000,1
+pay_dun03,115,190,0,0 monster Sohee 1170,2,300000,100000,1
+pay_dun03,230,244,0,0 monster Sohee 1170,2,300000,100000,1
+pay_dun03,240,244,0,0 monster Sohee 1170,2,300000,100000,1
+pay_dun03,219,244,0,0 monster Sohee 1170,2,300000,100000,1
+pay_dun03,243,220,0,0 monster Sohee 1170,2,300000,100000,1
+pay_dun03,219,185,0,0 monster Sohee 1170,2,300000,100000,1
+pay_dun03,228,185,0,0 monster Sohee 1170,2,300000,100000,1
+pay_dun03,228,61,0,0 monster Red Plant 1078,1,600000,300000,1
+pay_dun03,138,42,0,0 monster Blue Plant 1079,1,600000,300000,1
+pay_dun03,120,186,0,0 monster Green Plant 1080,1,600000,300000,1
+pay_dun03,88,35,0,0 monster Yellow Plant 1081,1,600000,300000,1
+pay_dun03,126,135,0,0 monster Mandragora 1020,1,300000,100000,1
+pay_dun03,126,134,0,0 monster Mandragora 1020,1,300000,100000,1
+pay_dun03,126,133,0,0 monster Mandragora 1020,1,300000,100000,1
+pay_dun03,126,132,0,0 monster Mandragora 1020,1,300000,100000,1
+pay_dun03,126,131,0,0 monster Mandragora 1020,1,300000,100000,1
+pay_dun03,179,134,0,0 monster Mandragora 1020,1,300000,100000,1
+pay_dun03,179,133,0,0 monster Mandragora 1020,1,300000,100000,1
+pay_dun03,179,132,0,0 monster Mandragora 1020,1,300000,100000,1
+pay_dun03,179,131,0,0 monster Mandragora 1020,1,300000,100000,1
+pay_dun03,179,130,0,0 monster Mandragora 1020,1,300000,100000,1
+pay_dun03,0,0,0,0 monster Greatest General 1277,3,0,0,0
+pay_dun03,0,0,0,0 monster Red Plant 1078,15,180000,90000,1
+pay_dun03,246,56,20,20 monster White Plant 1082,3,180000,90000,1
+pay_dun03,52,262,10,4 monster White Plant 1082,2,180000,90000,1
+
+//==================================================
+// pay_dun04 - Payon Cave F5
+//==================================================
+pay_dun04,0,0,0,0 monster Dokebi 1110,40,0,0,0
+pay_dun04,0,0,0,0 monster Horong 1129,30,0,0,0
+pay_dun04,120,115,0,0 boss_monster Moonlight Flower 1150,1,3600000,600000,1
+pay_dun04,0,0,0,0 monster Greatest General 1277,15,0,0,0
+pay_dun04,0,0,0,0 monster Archer Skeleton 1016,15,0,0,0
+pay_dun04,0,0,0,0 monster Nine Tail 1180,30,60000,30000,0
+pay_dun04,0,0,0,0 monster Skeleton General 1290,1,0,0,0
+pay_dun04,0,0,0,0 monster Am Mut 1301,1,0,0,0
+pay_dun04,120,115,0,0 monster Cat o' Nine Tails 1307,1,3600000,7200000,1
+pay_dun04,120,120,10,10 monster Shining Plant 1083,1,1800000,900000,1
+pay_dun04,28,110,5,5 monster Shining Plant 1083,1,1800000,900000,1
+pay_dun04,0,0,0,0 monster Red Plant 1078,10,180000,90000,1
+pay_dun04,107,206,5,5 monster White Plant 1082,2,180000,90000,1
+pay_dun04,28,110,10,10 monster White Plant 1082,2,180000,90000,1
+pay_dun04,190,207,5,5 monster White Plant 1082,2,180000,90000,1
diff --git a/npc/pre-re/mobs/dungeons/prt_maze.txt b/npc/pre-re/mobs/dungeons/prt_maze.txt
new file mode 100644
index 000000000..47d79efac
--- /dev/null
+++ b/npc/pre-re/mobs/dungeons/prt_maze.txt
@@ -0,0 +1,103 @@
+//===== rAthena Script =======================================
+//= Prontera Maze(Hidden Temple) Dungeon Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.4
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.2 Official kRO 10.1 spawns [Playtester]
+//= 1.3 Some small fixes [Playtester]
+//= 1.4 Corrected MVP spawn variance. [L0ne_W0lf]
+//============================================================
+
+//==================================================
+// prt_maze01 - Labyrinth Forest F1
+//==================================================
+
+prt_maze01,179,20,21,21 monster Poring 1002,5,120000,40000,1
+prt_maze01,139,20,21,21 monster Lunatic 1063,5,120000,40000,1
+prt_maze01,99,20,21,21 monster Fabre 1007,5,120000,40000,1
+prt_maze01,99,20,21,21 monster Creamy 1018,1,120000,40000,1
+prt_maze01,59,20,21,21 monster Pupa 1008,5,120000,40000,1
+prt_maze01,19,20,21,21 monster Poporing 1031,5,120000,40000,1
+prt_maze01,179,60,21,21 monster Rocker 1052,5,120000,40000,1
+prt_maze01,139,60,21,21 monster Bigfoot 1060,5,120000,40000,1
+prt_maze01,99,60,21,21 monster Smokie 1056,5,120000,40000,1
+prt_maze01,59,60,21,21 monster Boa 1025,5,120000,40000,1
+prt_maze01,19,60,21,21 monster Wolf 1013,5,120000,40000,1
+prt_maze01,179,100,21,21 monster Argiope 1099,3,120000,40000,1
+prt_maze01,139,100,21,21 monster Argos 1100,3,120000,40000,1
+prt_maze01,99,100,21,21 monster Chonchon 1011,5,120000,40000,1
+prt_maze01,59,100,21,21 monster Horn 1128,5,120000,40000,1
+prt_maze01,19,100,21,21 monster Hunter Fly 1035,3,120000,40000,1
+prt_maze01,179,140,21,21 monster Mantis 1139,3,120000,40000,1
+prt_maze01,139,140,21,21 monster Stainer 1174,5,120000,40000,1
+prt_maze01,99,140,21,21 monster Side Winder 1037,3,120000,40000,1
+prt_maze01,59,140,21,21 monster Yoyo 1057,4,120000,40000,1
+prt_maze01,59,140,21,21 monster Choco 1214,2,120000,40000,1
+prt_maze01,19,140,21,21 monster Steel Chonchon 1042,5,120000,40000,1
+prt_maze01,179,180,21,21 monster Coco 1104,5,120000,40000,1
+prt_maze01,139,180,21,21 monster Caramel 1103,5,120000,40000,1
+prt_maze01,99,180,21,21 monster Dustiness 1114,5,120000,40000,1
+prt_maze01,59,180,21,21 monster Martin 1145,5,120000,40000,1
+prt_maze01,19,180,21,21 monster Savage 1166,3,120000,40000,1
+prt_maze01,19,180,21,21 monster Savage 1166,5,120000,40000,1
+prt_maze01,0,0,0,0 monster Hunter Fly 1035,1,0,0,0
+prt_maze01,0,0,0,0 monster Vagabond Wolf 1092,1,3600000,1800000,0
+prt_maze01,101,138,5,5 monster Shining Plant 1083,1,1800000,900000,1
+prt_maze01,101,138,5,5 monster White Plant 1082,1,1800000,900000,1
+prt_maze01,99,181,5,5 monster White Plant 1082,2,1800000,900000,1
+prt_maze01,60,140,10,15 monster Blue Plant 1079,1,1800000,900000,1
+prt_maze01,61,101,10,10 monster Yellow Plant 1081,1,1800000,900000,1
+prt_maze01,141,100,10,10 monster Shining Plant 1083,1,1800000,900000,1
+prt_maze01,141,100,10,10 monster Blue Plant 1079,1,1800000,900000,1
+prt_maze01,0,0,0,0 monster Red Plant 1078,5,180000,90000,1
+prt_maze01,100,100,10,10 monster Blue Plant 1079,1,1800000,900000,1
+prt_maze01,100,100,10,10 monster Yellow Plant 1081,1,1800000,900000,1
+prt_maze01,176,132,5,5 monster Black Mushroom 1084,3,180000,90000,1
+prt_maze01,181,149,3,3 monster Black Mushroom 1084,2,180000,90000,1
+prt_maze01,178,60,10,10 monster Red Mushroom 1085,3,180000,90000,1
+prt_maze01,168,60,3,3 monster Red Mushroom 1085,2,180000,90000,1
+
+//==================================================
+// prt_maze02 - Labyrinth Forest F2
+//==================================================
+prt_maze02,0,0,0,0 monster Poporing 1031,25,0,0,0
+prt_maze02,0,0,0,0 monster Bigfoot 1060,5,0,0,0
+prt_maze02,0,0,0,0 monster Sasquatch 1243,1,900000,40000,0
+prt_maze02,0,0,0,0 monster Leib Olmai 1306,1,1800000,900000,0
+
+//==================================================
+// prt_maze03 - Labyrinth Forest F3
+//==================================================
+prt_maze03,0,0,0,0 monster Poporing 1031,45,0,0,0
+prt_maze03,0,0,0,0 monster Side Winder 1037,10,0,0,0
+prt_maze03,0,0,0,0 monster Hunter Fly 1035,30,0,0,0
+prt_maze03,0,0,0,0 monster Ghostring 1120,1,6800000,3400000,1
+prt_maze03,0,0,0,0 monster Killer Mantis 1294,1,0,0,0
+prt_maze03,150,50,70,70 monster Side Winder 1037,20,300000,150000,0
+prt_maze03,150,50,70,70 monster Vocal 1088,1,1920000,1500000,1
+prt_maze03,50,150,70,70 monster Stem Worm 1215,20,300000,150000,0
+prt_maze03,50,150,70,70 monster Vagabond Wolf 1092,1,1920000,150000,1
+prt_maze03,170,170,70,70 monster Mantis 1139,30,60000,30000,0
+prt_maze03,170,170,70,70 monster Eclipse 1093,1,1920000,150000,1
+prt_maze03,23,23,70,70 monster Mastering 1090,1,1920000,150000,1
+prt_maze03,100,100,80,80 monster Baphomet Jr. 1101,25,0,0,0
+prt_maze03,0,0,0,0 boss_monster Baphomet 1039,1,7200000,600000,1
+prt_maze03,61,98,10,10 monster Shining Plant 1083,1,1800000,900000,1
+prt_maze03,61,98,10,10 monster Blue Plant 1079,1,1800000,900000,1
+prt_maze03,61,98,10,10 monster Yellow Plant 1081,1,1800000,900000,1
+prt_maze03,57,56,10,10 monster Shining Plant 1083,1,1800000,900000,1
+prt_maze03,15,15,10,10 monster Shining Plant 1083,1,1800000,900000,1
+prt_maze03,137,140,3,3 monster Shining Plant 1083,1,1800000,900000,1
+prt_maze03,17,58,10,10 monster Shining Plant 1083,1,1800000,900000,1
+prt_maze03,17,58,10,10 monster Blue Plant 1079,1,1800000,900000,1
+prt_maze03,99,141,10,10 monster Blue Plant 1079,2,1800000,900000,1
+prt_maze03,99,21,10,10 monster Blue Plant 1079,1,1800000,900000,1
+prt_maze03,0,0,0,0 monster Red Plant 1078,5,180000,90000,1
+prt_maze03,99,21,10,10 monster Black Mushroom 1084,3,180000,90000,1
+prt_maze03,54,15,10,10 monster Black Mushroom 1084,3,180000,90000,1
+prt_maze03,171,180,3,3 monster Red Mushroom 1085,2,180000,90000,1
+prt_maze03,174,187,3,3 monster Red Mushroom 1085,3,180000,90000,1
diff --git a/npc/pre-re/mobs/dungeons/prt_sew.txt b/npc/pre-re/mobs/dungeons/prt_sew.txt
new file mode 100644
index 000000000..f907feb38
--- /dev/null
+++ b/npc/pre-re/mobs/dungeons/prt_sew.txt
@@ -0,0 +1,53 @@
+//===== rAthena Script =======================================
+//= Prontera Sewers(Culvert) Dungeon Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.2
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.1 Official kRO 10.1 spawns [Playtester]
+//= 1.2 Corrected MVP spawn variance. [L0ne_W0lf]
+//============================================================
+
+//==================================================
+// prt_sewb1 - Prontera Culvert F1
+//==================================================
+prt_sewb1,0,0,0,0 monster Thief Bug Egg 1048,80,0,0,0
+prt_sewb1,0,0,0,0 monster Thief Bug 1051,30,0,0,0
+prt_sewb1,0,0,0,0 monster Familiar 1005,10,0,0,0
+prt_sewb1,0,0,0,0 monster Tarou 1175,10,0,0,0
+
+//==================================================
+// prt_sewb2 - Prontera Culvert F2
+//==================================================
+prt_sewb2,0,0,0,0 monster Thief Bug Egg 1048,20,0,0,0
+prt_sewb2,0,0,0,0 monster Thief Bug 1051,70,0,0,0
+prt_sewb2,0,0,0,0 monster Familiar 1005,10,0,0,0
+prt_sewb2,0,0,0,0 monster Spore 1014,20,0,0,0
+prt_sewb2,0,0,0,0 monster Plankton 1161,30,0,0,0
+prt_sewb2,0,0,0,0 monster Thief Bug Female 1053,10,0,0,0
+prt_sewb2,0,0,0,0 monster Tarou 1175,60,0,0,0
+
+//==================================================
+// prt_sewb3 - Prontera Culvert F3
+//==================================================
+prt_sewb3,0,0,0,0 monster Thief Bug Egg 1048,10,0,0,0
+prt_sewb3,0,0,0,0 monster Thief Bug 1051,20,0,0,0
+prt_sewb3,0,0,0,0 monster Thief Bug Female 1053,65,0,0,0
+prt_sewb3,0,0,0,0 monster Thief Bug Male 1054,65,0,0,0
+prt_sewb3,0,0,0,0 monster Tarou 1175,15,0,0,0
+prt_sewb3,0,0,0,0 monster Poison Spore 1077,15,0,0,0
+prt_sewb3,0,0,0,0 monster Familiar 1005,20,0,0,0
+
+//==================================================
+// prt_sewb4 - Prontera Culvert F4
+//==================================================
+prt_sewb4,0,0,0,0 monster Thief Bug Egg 1048,10,0,0,0
+prt_sewb4,0,0,0,0 monster Thief Bug 1051,20,0,0,0
+prt_sewb4,0,0,0,0 monster Thief Bug Female 1053,20,0,0,0
+prt_sewb4,0,0,0,0 monster Thief Bug Male 1054,70,0,0,0
+prt_sewb4,0,0,0,0 monster Drainliar 1111,20,0,0,0
+prt_sewb4,0,0,0,0 monster Cramp 1209,5,0,0,0
+prt_sewb4,0,0,0,0 boss_monster Golden Thief Bug 1086,1,3600000,600000,1
diff --git a/npc/pre-re/mobs/dungeons/ra_san.txt b/npc/pre-re/mobs/dungeons/ra_san.txt
new file mode 100644
index 000000000..ffb79459e
--- /dev/null
+++ b/npc/pre-re/mobs/dungeons/ra_san.txt
@@ -0,0 +1,82 @@
+//===== rAthena Script =======================================
+//= Rachel Sanctuary Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.2
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.0 First version with guessed amounts [Playtester]
+//= 1.1 More accurate spawns [Playtester]
+//= 1.2 Corrected MVP spawn variance. [L0ne_W0lf]
+//============================================================
+
+//==================================================
+// ra_san01
+//==================================================
+ra_san01,0,0,0,0 monster Vanberk 1771,20,180000,0,1
+ra_san01,0,0,0,0 monster Isilla 1772,10,0,0,1
+ra_san01,61,141,58,98 monster Vanberk 1771,20,300000,0,1
+ra_san01,61,141,58,98 monster Isilla 1772,10,180000,0,1
+ra_san01,61,141,58,98 monster Gremlin 1632,5,60000,0,1
+ra_san01,61,141,58,98 monster Hodremlin 1773,2,60000,0,1
+ra_san01,218,141,58,98 monster Vanberk 1771,20,300000,0,1
+ra_san01,218,141,58,98 monster Isilla 1772,10,180000,0,1
+ra_san01,218,141,58,98 monster Gremlin 1632,5,60000,0,1
+ra_san01,218,141,58,98 monster Hodremlin 1773,2,60000,0,1
+ra_san01,140,63,38,59 monster Vanberk 1771,7,180000,0,1
+ra_san01,140,63,38,59 monster Isilla 1772,3,180000,0,1
+ra_san01,140,63,38,59 monster Beholder 1633,3,60000,0,1
+ra_san01,140,63,38,59 monster Hodremlin 1773,1,60000,0,1
+ra_san01,140,226,50,51 monster Vanberk 1771,7,180000,0,1
+ra_san01,140,226,50,51 monster Isilla 1772,3,180000,0,1
+ra_san01,140,226,50,51 monster Beholder 1633,3,60000,0,1
+ra_san01,140,226,50,51 monster Hodremlin 1773,1,60000,0,1
+ra_san01,64,215,23,23 monster Vanberk 1771,2,420000,0,1
+ra_san01,215,215,23,23 monster Vanberk 1771,2,420000,0,1
+ra_san01,64,65,23,23 monster Vanberk 1771,2,420000,0,1
+ra_san01,215,65,23,23 monster Vanberk 1771,2,420000,0,1
+
+//==================================================
+// ra_san02
+//==================================================
+ra_san02,0,0,0,0 monster Isilla 1772,35,0,0,0
+ra_san02,100,150,92,140 monster Isilla 1772,25,0,0,0
+ra_san02,240,147,50,145 monster Isilla 1772,25,0,0,0
+ra_san02,0,0,0,0 monster Vanberk 1771,10,0,0,0
+ra_san02,100,150,92,140 monster Vanberk 1771,10,0,0,0
+ra_san02,240,147,50,145 monster Vanberk 1771,10,0,0,0
+ra_san02,0,0,0,0 monster Gremlin 1632,10,0,0,0
+ra_san02,0,0,0,0 monster Hodremlin 1773,3,0,0,0
+ra_san02,0,0,0,0 monster Beholder 1633,10,0,0,0
+ra_san02,0,0,0,0 monster Seeker 1774,2,0,0,0
+
+//==================================================
+// ra_san03
+//==================================================
+ra_san03,0,0,0,0 monster Beholder 1633,5,0,0,0
+ra_san03,0,0,0,0 monster Gremlin 1632,5,0,0,0
+ra_san03,148,221,145,71 monster Seeker 1774,40,0,0,0
+ra_san03,0,0,0,0 monster Hodremlin 1773,20,0,0,0
+ra_san03,148,79,146,71 monster Hodremlin 1773,40,0,0,0
+
+//==================================================
+// ra_san04
+//==================================================
+ra_san04,0,0,0,0 monster Echio 1770,60,0,0,0
+ra_san04,0,0,0,0 monster Agav 1769,20,0,0,0
+ra_san04,0,0,0,0 monster Seeker 1774,10,0,0,0
+ra_san04,0,0,0,0 monster Hodremlin 1773,10,0,0,0
+
+//==================================================
+// ra_san05
+//==================================================
+ra_san05,0,0,0,0 monster Agav 1769,70,0,0,0
+ra_san05,0,0,0,0 monster Echio 1770,20,0,0,0
+ra_san05,0,0,0,0 monster Isilla 1772,10,0,0,0
+ra_san05,0,0,0,0 monster Seeker 1774,20,0,0,0
+ra_san05,0,0,0,0 monster Hodremlin 1773,20,0,0,0
+ra_san05,0,0,0,0 monster Agav 1769,10,18000000,14400000,0
+ra_san05,0,0,0,0 monster Echio 1770,10,18000000,14400000,0
+ra_san05,0,0,0,0 boss_monster Gloom Under Night 1768,1,18000000,600000,0
diff --git a/npc/pre-re/mobs/dungeons/tha_t.txt b/npc/pre-re/mobs/dungeons/tha_t.txt
new file mode 100644
index 000000000..c42f0e59b
--- /dev/null
+++ b/npc/pre-re/mobs/dungeons/tha_t.txt
@@ -0,0 +1,182 @@
+//===== rAthena Script =======================================
+//= Thanatos Tower Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.3
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.0 Real spawns by Poki#3 [Nexon]
+//= 1.1 More official spawns [Playtester]
+//= 1.2 Updated by using Tharis' Homun AI, by Tharis [Vicious]
+//= 1.3 Official Aegis X.3 spawns [Playtester]
+//============================================================
+
+//==================================================
+// tha_t01 - Thanatos Tower F1
+//==================================================
+tha_t01,0,0,0,0 monster Alice 1275,5,0,0,0
+tha_t01,0,0,0,0 monster Plasma 1695,20,0,0,0
+tha_t01,0,0,0,0 monster Rideword 1195,20,0,0,0
+tha_t01,0,0,0,0 monster Mimic 1191,20,0,0,0
+tha_t01,0,0,0,0 monster Lady Solace 1703,4,1800000,1200000,0
+
+//==================================================
+// tha_t02 - Thanatos Tower F2
+//==================================================
+tha_t02,0,0,0,0 monster Alice 1275,10,0,0,0
+tha_t02,0,0,0,0 monster Plasma 1697,20,0,0,0
+tha_t02,0,0,0,0 monster Mimic 1191,30,0,0,0
+tha_t02,0,0,0,0 monster Ancient Mimic 1699,80,0,0,0
+tha_t02,0,0,0,0 monster Rideword 1195,10,0,0,0
+tha_t02,0,0,0,0 monster Death Word 1698,10,0,0,0
+tha_t02,0,0,0,0 monster Elder 1377,10,0,0,0
+tha_t02,0,0,0,0 monster Baroness of Retribution 1702,4,1800000,1200000,0
+
+//==================================================
+// tha_t03 - Thanatos Tower F3
+//==================================================
+tha_t03,0,0,0,0 monster Plasma 1696,20,0,0,0
+tha_t03,0,0,0,0 monster Rideword 1195,30,0,0,0
+tha_t03,0,0,0,0 monster Death Word 1698,80,0,0,0
+tha_t03,0,0,0,0 monster Mimic 1191,10,0,0,0
+tha_t03,0,0,0,0 monster Ancient Mimic 1699,10,0,0,0
+tha_t03,0,0,0,0 monster Elder 1377,10,0,0,0
+tha_t03,0,0,0,0 monster Mistress of Shelter 1701,4,1800000,1200000,0
+
+//==================================================
+// tha_t04 - Thanatos Tower F4
+//==================================================
+tha_t04,0,0,0,0 monster Plasma 1694,20,0,0,0
+tha_t04,0,0,0,0 monster Rideword 1195,20,0,0,0
+tha_t04,0,0,0,0 monster Death Word 1698,20,0,0,0
+tha_t04,0,0,0,0 monster Mimic 1191,20,0,0,0
+tha_t04,0,0,0,0 monster Ancient Mimic 1699,20,0,0,0
+tha_t04,0,0,0,0 monster Elder 1377,20,0,0,0
+tha_t04,0,0,0,0 monster Owl Baron 1295,10,0,0,0
+tha_t04,0,0,0,0 monster Owl Duke 1320,10,0,0,0
+tha_t04,0,0,0,0 monster Dame of Sentinel 1700,4,1800000,1200000,0
+
+//==================================================
+// tha_t05 - Thanatos Tower F5
+//==================================================
+tha_t05,61,179,55,55 monster Elder 1377,5,0,0,0
+tha_t05,61,179,55,55 monster Plasma 1697,10,0,0,0
+tha_t05,61,179,55,55 monster Death Word 1698,10,0,0,0
+tha_t05,61,179,55,55 monster Ancient Mimic 1699,10,0,0,0
+tha_t05,61,179,55,55 monster Owl Duke 1320,20,300000,120000,0
+tha_t05,61,179,55,55 monster Owl Baron 1295,5,300000,120000,0
+tha_t05,178,178,55,55 monster Elder 1377,5,0,0,0
+tha_t05,178,178,55,55 monster Plasma 1695,10,0,0,0
+tha_t05,178,178,55,55 monster Death Word 1698,10,0,0,0
+tha_t05,178,178,55,55 monster Ancient Mimic 1699,10,0,0,0
+tha_t05,178,178,55,55 monster Owl Duke 1320,20,300000,120000,0
+tha_t05,178,178,55,55 monster Owl Baron 1295,5,300000,120000,0
+tha_t05,178,63,55,5 monster Elder 1377,5,0,0,0
+tha_t05,178,63,55,55 monster Plasma 1696,10,0,0,0
+tha_t05,178,63,55,55 monster Death Word 1698,10,0,0,0
+tha_t05,178,63,55,55 monster Ancient Mimic 1699,10,0,0,0
+tha_t05,178,63,55,55 monster Owl Duke 1320,20,300000,120000,0
+tha_t05,178,63,55,55 monster Owl Baron 1295,5,300000,120000,0
+tha_t05,62,63,55,55 monster Elder 1377,5,0,0,0
+tha_t05,62,63,55,55 monster Plasma 1694,10,0,0,0
+tha_t05,62,63,55,55 monster Death Word 1698,10,0,0,0
+tha_t05,62,63,55,55 monster Ancient Mimic 1699,10,0,0,0
+tha_t05,62,63,55,55 monster Owl Duke 1320,20,300000,120000,0
+tha_t05,62,63,55,55 monster Owl Baron 1295,5,300000,120000,0
+tha_t05,0,0,0,0 monster Dolor of Thanatos 1707,2,1800000,1200000,0
+
+//==================================================
+// tha_t06 - Thanatos Tower F6
+//==================================================
+tha_t06,61,179,55,55 monster Elder 1377,5,0,0,0
+tha_t06,61,179,55,55 monster Plasma 1697,10,0,0,0
+tha_t06,61,179,55,55 monster Death Word 1698,10,0,0,0
+tha_t06,61,179,55,55 monster Ancient Mimic 1699,10,0,0,0
+tha_t06,61,179,55,55 monster Owl Baron 1295,10,300000,120000,0
+tha_t06,61,179,55,55 monster Owl Duke 1320,10,300000,120000,0
+tha_t06,178,178,55,55 monster Elder 1377,5,0,0,0
+tha_t06,178,178,55,55 monster Plasma 1695,10,0,0,0
+tha_t06,178,178,55,55 monster Death Word 1698,10,0,0,0
+tha_t06,178,178,55,55 monster Ancient Mimic 1699,10,0,0,0
+tha_t06,178,178,55,55 monster Owl Baron 1295,10,300000,120000,0
+tha_t06,178,178,55,55 monster Owl Duke 1320,10,300000,120000,0
+tha_t06,178,63,55,55 monster Elder 1377,5,0,0,0
+tha_t06,178,63,55,55 monster Plasma 1696,10,0,0,0
+tha_t06,178,63,55,55 monster Death Word 1698,10,0,0,0
+tha_t06,178,63,55,55 monster Ancient Mimic 1699,10,0,0,0
+tha_t06,178,63,55,55 monster Owl Baron 1295,10,300000,120000,0
+tha_t06,178,63,55,55 monster Owl Duke 1320,10,300000,120000,0
+tha_t06,62,63,55,55 monster Elder 1377,5,0,0,0
+tha_t06,62,63,55,55 monster Plasma 1694,10,0,0,0
+tha_t06,62,63,55,55 monster Death Word 1698,10,0,0,0
+tha_t06,62,63,55,55 monster Ancient Mimic 1699,10,0,0,0
+tha_t06,62,63,55,55 monster Owl Baron 1295,10,300000,120000,0
+tha_t06,62,63,55,55 monster Owl Duke 1320,10,300000,120000,0
+tha_t06,0,0,0,0 monster Maero of Thanatos 1706,2,1800000,1200000,0
+
+//==================================================
+// tha_t07 - Thanatos Tower F7
+//==================================================
+tha_t07,70,105,40,75 monster Death Word 1698,10,300000,120000,0
+tha_t07,70,105,40,75 monster Ancient Mimic 1699,10,300000,120000,0
+tha_t07,70,105,40,75 monster Lady Solace 1703,7,300000,120000,0
+tha_t07,70,105,40,75 monster Mistress of Shelter 1701,7,300000,120000,0
+tha_t07,70,105,40,75 monster Baroness of Retribution 1702,15,0,0,0
+tha_t07,70,105,40,75 monster Dame of Sentinel 1700,7,300000,120000,0
+tha_t07,70,105,40,75 monster Despero of Thanatos 1705,2,1800000,1200000,0
+
+//==================================================
+// tha_t08 - Thanatos Tower F8
+//==================================================
+tha_t08,70,105,40,80 monster Death Word 1698,10,300000,120000,0
+tha_t08,70,105,40,80 monster Ancient Mimic 1699,10,300000,120000,0
+tha_t08,70,105,40,80 monster Lady Solace 1703,5,0,0,0
+tha_t08,70,105,40,80 monster Mistress of Shelter 1701,5,0,0,0
+tha_t08,70,105,40,80 monster Baroness of Retribution 1702,20,300000,120000,0
+tha_t08,70,105,40,80 monster Dame of Sentinel 1700,5,0,0,0
+tha_t08,70,105,40,80 monster Odium of Thanatos 1704,2,1800000,1200000,0
+
+//==================================================
+// tha_t09 - Thanatos Tower F9
+//==================================================
+tha_t09,50,129,35,35 monster Plasma 1694,5,0,0,0
+tha_t09,50,129,35,35 monster Lady Solace 1703,20,600000,0,0
+tha_t09,50,129,35,35 monster Baroness of Retribution 1702,5,420000,0,0
+tha_t09,50,129,35,35 monster Mistress of Shelter 1701,5,420000,0,0
+tha_t09,50,129,35,35 monster Dame of Sentinel 1700,5,420000,0,0
+tha_t09,50,129,35,35 monster Dolor of Thanatos 1707,1,1800000,1200000,0
+tha_t09,50,129,35,35 monster Dolor of Thanatos 1712,3,1800000,1200000,0
+
+//==================================================
+// tha_t10 - Thanatos Tower F10
+//==================================================
+tha_t10,129,129,35,35 monster Plasma 1697,5,0,0,0
+tha_t10,129,129,35,35 monster Baroness of Retribution 1702,20,600000,0,0
+tha_t10,129,129,35,35 monster Lady Solace 1703,5,420000,0,0
+tha_t10,129,129,35,35 monster Mistress of Shelter 1701,5,420000,0,0
+tha_t10,129,129,35,35 monster Dame of Sentinel 1700,5,420000,0,0
+tha_t10,129,129,35,35 monster Maero of Thanatos 1706,1,1800000,1200000,0
+tha_t10,129,129,35,35 monster Maero of Thanatos 1711,3,1800000,1200000,0
+
+//==================================================
+// tha_t11 - Thanatos Tower F11
+//==================================================
+tha_t11,50,51,35,35 monster Plasma 1695,5,0,0,0
+tha_t11,50,51,35,35 monster Mistress of Shelter 1701,20,600000,0,0
+tha_t11,50,51,35,35 monster Lady Solace 1703,5,420000,0,0
+tha_t11,50,51,35,35 monster Baroness of Retribution 1702,5,420000,0,0
+tha_t11,50,51,35,35 monster Dame of Sentinel 1700,5,420000,0,0
+tha_t11,50,51,35,35 monster Despero of Thanatos 1705,1,1800000,1200000,0
+tha_t11,50,51,35,35 monster Despero of Thanatos 1710,3,1800000,1200000,0
+
+//==================================================
+// tha_t12 - Thanatos Tower F12
+//==================================================
+tha_t12,129,51,35,35 monster Plasma 1693,5,0,0,0
+tha_t12,129,51,35,35 monster Dame of Sentinel 1700,13,600000,0,0
+tha_t12,129,51,35,35 monster Lady Solace 1703,5,420000,0,0
+tha_t12,129,51,35,35 monster Mistress of Shelter 1701,5,420000,0,0
+tha_t12,129,51,35,35 monster Baroness of Retribution 1702,5,420000,0,0
+tha_t12,129,51,35,35 monster Odium of Thanatos 1709,4,1800000,1200000,0
diff --git a/npc/pre-re/mobs/dungeons/thor_v.txt b/npc/pre-re/mobs/dungeons/thor_v.txt
new file mode 100644
index 000000000..f72abc90c
--- /dev/null
+++ b/npc/pre-re/mobs/dungeons/thor_v.txt
@@ -0,0 +1,68 @@
+//===== rAthena Script ========================================
+//= Thor Volcano Monster Spawn Script
+//===== By: ==================================================
+//= Playtester
+//===== Current Version: =====================================
+//= 1.4
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Description: =========================================
+//= Official monster spawn in Thor Volcano Dungeon.
+//===== Additional Comments: =================================
+//= 1.0 Spawns according to RO Monthly and Doddler [Playtester]
+//= 1.1 Added Byorgue and Ifrit [Playtester]
+//= 1.2 Updated spawns according to RODE [Playtester]
+//= 1.3 More official spawns [Playtester]
+//= 1.4 Corrected MVP spawn variance. [L0ne_W0lf]
+//============================================================
+
+// ================= [Thor Volcano - 01] =====================
+thor_v01,0,0,0,0 monster Magmaring 1836,10,0,0,0
+thor_v01,0,0,0,0 monster Fire Imp 1837,5,0,0,0
+thor_v01,0,0,0,0 monster Fire Imp 1837,12,1800000,0,0
+thor_v01,80,255,65,35 monster Fire Imp 1837,2,0,0,0
+thor_v01,240,250,50,30 monster Fire Imp 1837,2,0,0,0
+thor_v01,90,100,50,50 monster Fire Imp 1837,2,0,0,0
+thor_v01,210,110,50,30 monster Fire Imp 1837,2,0,0,0
+thor_v01,0,0,0,0 monster Kasa 1833,25,0,0,0
+thor_v01,80,255,65,35 monster Kasa 1833,5,0,0,0
+thor_v01,240,250,50,30 monster Kasa 1833,5,0,0,0
+thor_v01,90,100,50,50 monster Kasa 1833,5,0,0,0
+thor_v01,210,110,50,30 monster Kasa 1833,5,0,0,0
+thor_v01,0,0,0,0 monster Sword Master 1829,5,420000,0,0
+thor_v01,0,0,0,0 monster Bow Master 1830,5,420000,0,0
+thor_v01,0,0,0,0 monster Salamander 1831,5,3600000,0,0
+thor_v01,0,0,0,0 monster Byorgue 1839,1,3600000,0,0
+
+// ================= [Thor Volcano - 02] =====================
+thor_v02,0,0,0,0 monster Magmaring 1836,10,0,0,0
+thor_v02,0,0,0,0 monster Fire Imp 1837,5,0,0,0
+thor_v02,75,125,50,85 monster Fire Imp 1837,3,0,0,0
+thor_v02,168,162,50,50 monster Fire Imp 1837,2,0,0,0
+thor_v02,0,0,0,0 monster Kaho 1072,5,0,0,0
+thor_v02,75,125,50,85 monster Kaho 1072,3,0,0,0
+thor_v02,168,162,50,50 monster Kaho 1072,2,0,0,0
+thor_v02,0,0,0,0 monster Knocker 1838,20,0,0,0
+thor_v02,75,125,50,85 monster Knocker 1838,20,0,0,0
+thor_v02,168,162,50,50 monster Knocker 1838,15,0,0,0
+thor_v02,0,0,0,0 monster Salamander 1831,1,18000000,0,0
+thor_v02,0,0,0,0 monster Sword Master 1829,1,7200000,0,0
+thor_v02,0,0,0,0 monster Bow Master 1830,1,7200000,0,0
+
+// ================= [Thor Volcano - 03] =====================
+thor_v03,0,0,0,0 monster Kasa 1833,16,0,0,0
+thor_v03,95,220,64,55 monster Kasa 1833,6,0,0,0
+thor_v03,223,224,65,60 monster Kasa 1833,6,0,0,0
+thor_v03,80,90,60,60 monster Kasa 1833,6,0,0,0
+thor_v03,218,81,60,60 monster Kasa 1833,6,0,0,0
+thor_v03,0,0,0,0 monster Salamander 1831,20,0,0,0
+thor_v03,95,220,64,55 monster Salamander 1831,10,0,0,0
+thor_v03,223,224,65,60 monster Salamander 1831,10,0,0,0
+thor_v03,80,90,60,60 monster Salamander 1831,10,0,0,0
+thor_v03,218,81,60,60 monster Salamander 1831,10,0,0,0
+thor_v03,0,0,0,0 monster Sword Master 1829,5,0,0,0
+thor_v03,0,0,0,0 monster Sword Master 1829,5,1800000,0,0
+thor_v03,0,0,0,0 monster Bow Master 1830,5,0,0,0
+thor_v03,0,0,0,0 monster Bow Master 1830,5,1800000,0,0
+thor_v03,0,0,0,0 monster Byorgue 1839,5,1800000,0,0
+thor_v03,0,0,0,0 boss_monster Ifrit 1832,1,39600000,600000,0
diff --git a/npc/pre-re/mobs/dungeons/treasure.txt b/npc/pre-re/mobs/dungeons/treasure.txt
new file mode 100644
index 000000000..7cc99c9a1
--- /dev/null
+++ b/npc/pre-re/mobs/dungeons/treasure.txt
@@ -0,0 +1,158 @@
+//===== rAthena Script =======================================
+//= Sunken Ship Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.3
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.1 Official kRO 10.1 spawns [Playtester]
+//= 1.2 More accurate spawns [Playtester]
+//= 1.3 Corrected MVP spawn variance. [L0ne_W0lf]
+//============================================================
+
+//==================================================
+// treasure01 - Sunken Ship F1
+//==================================================
+treasure01,0,0,0,0 monster Kukre 1070,20,0,0,1
+treasure01,0,0,0,0 monster Whisper 1179,5,0,0,1
+treasure01,0,0,0,0 monster Whisper 1179,5,120000,60000,1
+treasure01,107,39,15,15 monster Poison Spore 1077,3,180000,90000,1
+treasure01,107,39,15,15 monster Hydra 1068,1,180000,90000,1
+treasure01,29,38,15,15 monster Poison Spore 1077,3,180000,90000,1
+treasure01,68,66,13,11 monster Hydra 1068,4,180000,90000,1
+treasure01,34,112,17,11 monster Pirate Skeleton 1071,5,180000,90000,1
+treasure01,106,111,9,9 monster Pirate Skeleton 1071,5,180000,90000,1
+treasure01,106,111,9,9 monster Pirate Skeleton 1071,5,180000,90000,1
+treasure01,67,161,0,0 monster Hydra 1068,1,263000,100000,1
+treasure01,67,160,0,0 monster Hydra 1068,1,293000,100000,1
+treasure01,68,161,0,0 monster Hydra 1068,1,317000,100000,1
+treasure01,68,160,0,0 monster Hydra 1068,1,300000,100000,1
+treasure01,69,161,0,0 monster Hydra 1068,1,305000,100000,1
+treasure01,69,160,0,0 monster Hydra 1068,1,290000,100000,1
+treasure01,70,161,0,0 monster Hydra 1068,1,302000,100000,1
+treasure01,70,160,0,0 monster Hydra 1068,1,306000,100000,1
+treasure01,48,161,0,0 monster Hydra 1068,1,316000,100000,1
+treasure01,48,160,0,0 monster Hydra 1068,1,300000,100000,1
+treasure01,49,161,0,0 monster Hydra 1068,1,310000,100000,1
+treasure01,49,160,0,0 monster Hydra 1068,1,300000,100000,1
+treasure01,50,161,0,0 monster Hydra 1068,1,308000,100000,1
+treasure01,50,160,0,0 monster Hydra 1068,1,301000,100000,1
+treasure01,51,161,0,0 monster Hydra 1068,1,314000,100000,1
+treasure01,51,160,0,0 monster Hydra 1068,1,270000,100000,1
+treasure01,86,161,0,0 monster Hydra 1068,1,285000,100000,1
+treasure01,86,160,0,0 monster Hydra 1068,1,310000,100000,1
+treasure01,87,161,0,0 monster Hydra 1068,1,300000,100000,1
+treasure01,87,160,0,0 monster Hydra 1068,1,268000,100000,1
+treasure01,88,161,0,0 monster Hydra 1068,1,281000,100000,1
+treasure01,88,160,0,0 monster Hydra 1068,1,296000,100000,1
+treasure01,89,161,0,0 monster Hydra 1068,1,300000,100000,1
+treasure01,89,160,0,0 monster Hydra 1068,1,305000,100000,1
+treasure01,60,182,0,0 monster Hydra 1068,1,313000,100000,1
+treasure01,76,182,0,0 monster Hydra 1068,1,269000,100000,1
+treasure01,82,154,11,9 monster Poison Spore 1077,3,100000,100000,1
+treasure01,54,154,11,9 monster Poison Spore 1077,3,100000,100000,1
+treasure01,58,165,5,5 monster Pirate Skeleton 1071,2,300000,100000,1
+treasure01,69,165,5,5 monster Pirate Skeleton 1071,2,300000,100000,1
+treasure01,79,165,5,5 monster Pirate Skeleton 1071,2,300000,100000,1
+treasure01,150,162,5,5 monster Pirate Skeleton 1071,3,300000,100000,1
+treasure01,150,162,5,5 monster Hydra 1068,1,300000,100000,1
+treasure01,163,161,5,5 monster Pirate Skeleton 1071,3,300000,100000,1
+treasure01,163,161,5,5 monster Hydra 1068,1,300000,100000,1
+treasure01,163,151,5,5 monster Pirate Skeleton 1071,3,300000,100000,1
+treasure01,163,151,5,5 monster Hydra 1068,1,300000,100000,1
+treasure01,163,141,5,5 monster Pirate Skeleton 1071,3,300000,100000,1
+treasure01,163,141,5,5 monster Hydra 1068,1,300000,100000,1
+treasure01,162,71,0,0 monster Hydra 1068,1,273000,100000,1
+treasure01,162,70,0,0 monster Hydra 1068,1,314000,100000,1
+treasure01,163,71,0,0 monster Hydra 1068,1,300000,100000,1
+treasure01,163,70,0,0 monster Hydra 1068,1,300000,100000,1
+treasure01,164,71,0,0 monster Hydra 1068,1,305000,100000,1
+treasure01,164,70,0,0 monster Hydra 1068,1,300000,100000,1
+treasure01,165,71,0,0 monster Hydra 1068,1,307000,100000,1
+treasure01,165,70,0,0 monster Hydra 1068,1,293000,100000,1
+treasure01,164,59,12,10 monster Whisper 1179,5,300000,100000,1
+treasure01,158,63,0,0 monster Hydra 1068,1,300000,100000,1
+treasure01,159,63,0,0 monster Hydra 1068,1,300000,100000,1
+treasure01,158,62,0,0 monster Hydra 1068,1,300000,100000,1
+treasure01,159,62,0,0 monster Hydra 1068,1,300000,100000,1
+treasure01,160,60,27,19 monster Pirate Skeleton 1071,10,300000,100000,1
+treasure01,158,45,0,0 monster Hydra 1068,1,302000,100000,1
+treasure01,158,44,0,0 monster Hydra 1068,1,300000,100000,1
+treasure01,158,43,0,0 monster Hydra 1068,1,305000,100000,1
+treasure01,158,42,0,0 monster Hydra 1068,1,300000,100000,1
+treasure01,158,41,0,0 monster Hydra 1068,1,300000,100000,1
+treasure01,158,40,0,0 monster Hydra 1068,1,307000,100000,1
+treasure01,159,45,0,0 monster Hydra 1068,1,285000,100000,1
+treasure01,159,44,0,0 monster Hydra 1068,1,312000,100000,1
+treasure01,159,43,0,0 monster Hydra 1068,1,318000,100000,1
+treasure01,159,42,0,0 monster Hydra 1068,1,300000,100000,1
+treasure01,159,41,0,0 monster Hydra 1068,1,306000,100000,1
+treasure01,159,40,0,0 monster Hydra 1068,1,290000,100000,1
+treasure01,168,45,0,0 monster Hydra 1068,1,300000,100000,1
+treasure01,168,44,0,0 monster Hydra 1068,1,314000,100000,1
+treasure01,168,43,0,0 monster Hydra 1068,1,300000,100000,1
+treasure01,168,42,0,0 monster Hydra 1068,1,306000,100000,1
+treasure01,168,41,0,0 monster Hydra 1068,1,290000,100000,1
+treasure01,168,40,0,0 monster Hydra 1068,1,322000,100000,1
+treasure01,169,45,0,0 monster Hydra 1068,1,300000,100000,1
+treasure01,169,44,0,0 monster Hydra 1068,1,302000,100000,1
+treasure01,169,43,0,0 monster Hydra 1068,1,305000,100000,1
+treasure01,169,42,0,0 monster Hydra 1068,1,300000,100000,1
+treasure01,169,41,0,0 monster Hydra 1068,1,313000,100000,1
+treasure01,169,40,0,0 monster Hydra 1068,1,300000,100000,1
+
+//==================================================
+// treasure02 - Sunken Ship F2
+//==================================================
+treasure02,0,0,0,0 monster Ghostring 1120,1,1980000,1200000,1
+treasure02,0,0,0,0 monster Whisper 1179,5,0,0,0
+treasure02,0,0,0,0 monster Wanderer 1208,1,600000,300000,1
+treasure02,0,0,0,0 monster Penomena 1216,22,300000,120000,1
+treasure02,0,0,0,0 monster Kukre 1070,20,0,0,1
+treasure02,0,0,0,0 monster Pirate Skeleton 1071,5,0,0,1
+treasure02,0,0,0,0 monster Mimic 1191,3,0,0,1
+treasure02,95,57,0,0 monster Hydra 1068,1,300000,100000,1
+treasure02,96,57,0,0 monster Hydra 1068,1,300000,100000,1
+treasure02,101,57,0,0 monster Hydra 1068,1,300000,100000,1
+treasure02,102,57,0,0 monster Hydra 1068,1,300000,100000,1
+treasure02,107,57,0,0 monster Hydra 1068,1,300000,100000,1
+treasure02,108,57,0,0 monster Hydra 1068,1,300000,100000,1
+treasure02,101,50,10,10 monster Penomena 1216,5,300000,100000,1
+treasure02,102,68,13,13 monster Whisper 1179,1,300000,100000,1
+treasure02,102,80,5,5 monster Whisper 1179,1,300000,100000,1
+treasure02,102,88,5,5 monster Whisper 1179,1,300000,100000,1
+treasure02,100,85,0,0 monster Hydra 1068,1,300000,100000,1
+treasure02,101,85,0,0 monster Hydra 1068,1,300000,100000,1
+treasure02,102,85,0,0 monster Hydra 1068,1,300000,100000,1
+treasure02,103,85,0,0 monster Hydra 1068,1,300000,100000,1
+treasure02,100,136,0,0 monster Hydra 1068,1,300000,100000,1
+treasure02,101,136,0,0 monster Hydra 1068,1,300000,100000,1
+treasure02,102,136,0,0 monster Hydra 1068,1,300000,100000,1
+treasure02,103,136,0,0 monster Hydra 1068,1,300000,100000,1
+treasure02,100,143,0,0 monster Hydra 1068,1,300000,100000,1
+treasure02,101,143,0,0 monster Hydra 1068,1,300000,100000,1
+treasure02,102,143,0,0 monster Hydra 1068,1,300000,100000,1
+treasure02,103,143,0,0 monster Hydra 1068,1,300000,100000,1
+treasure02,101,150,15,10 monster Whisper 1179,2,200000,100000,1
+treasure02,101,151,8,8 boss_monster Drake 1112,1,7200000,600000,1
+treasure02,101,151,10,10 monster Mimic 1191,3,500000,200000,1
+treasure02,101,151,10,10 monster Mimic 1191,2,100000,100000,1
+treasure02,101,151,10,10 monster Penomena 1216,4,100000,100000,1
+treasure02,101,126,2,2 monster Penomena 1216,1,1200000,600000,1
+treasure02,101,135,2,2 monster Penomena 1216,1,60000,200000,1
+treasure02,38,74,9,9 monster Pirate Skeleton 1071,3,300000,100000,1
+treasure02,38,74,9,9 monster Penomena 1216,5,300000,100000,1
+treasure02,170,71,1,1 monster Pirate Skeleton 1071,1,100000,100000,1
+treasure02,168,77,1,1 monster Pirate Skeleton 1071,1,100000,100000,1
+treasure02,164,67,1,1 monster Pirate Skeleton 1071,1,100000,100000,1
+treasure02,155,43,21,13 monster Pirate Skeleton 1071,6,300000,100000,1
+treasure02,178,143,1,1 monster Pirate Skeleton 1071,1,300000,100000,1
+treasure02,178,140,1,1 monster Pirate Skeleton 1071,1,300000,100000,1
+treasure02,184,143,1,1 monster Pirate Skeleton 1071,1,300000,100000,1
+treasure02,157,143,1,1 monster Whisper 1179,1,100000,100000,1
+treasure02,151,138,1,1 monster Whisper 1179,1,100000,100000,1
+treasure02,45,144,1,1 monster Whisper 1179,1,200000,100000,1
+treasure02,52,139,1,1 monster Whisper 1179,1,200000,100000,1
+treasure02,23,142,1,1 monster Marionette 1143,1,200000,100000,1
diff --git a/npc/pre-re/mobs/dungeons/tur_dun.txt b/npc/pre-re/mobs/dungeons/tur_dun.txt
new file mode 100644
index 000000000..3905c4616
--- /dev/null
+++ b/npc/pre-re/mobs/dungeons/tur_dun.txt
@@ -0,0 +1,72 @@
+//===== rAthena Script =======================================
+//= Turtle Island Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.2
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.2 Official kRO 10.1 spawns [Playtester]
+//============================================================
+
+//==================================================
+// tur_dun01 - Turtle Island
+//==================================================
+tur_dun01,0,0,0,0 monster Dragon Tail 1321,25,0,0,0
+tur_dun01,0,0,0,0 monster Spring Rabbit 1322,25,0,0,0
+tur_dun01,0,0,0,0 monster Thara Frog 1034,10,0,0,0
+tur_dun01,0,0,0,0 monster Permeter 1314,10,0,0,0
+tur_dun01,0,0,0,0 monster Pest 1256,15,0,0,0
+
+//==================================================
+// tur_dun02 - Turtle Island Dungeon
+//==================================================
+tur_dun02,0,0,0,0 monster Permeter 1314,40,0,0,0
+tur_dun02,0,0,0,0 monster Solider 1316,40,0,0,0
+tur_dun02,0,0,0,0 monster Freezer 1319,20,0,0,0
+tur_dun02,0,0,0,0 monster Pest 1256,15,0,0,0
+
+//==================================================
+// tur_dun03 - Good Turtles Village
+//==================================================
+tur_dun03,0,0,0,0 monster Permeter 1314,15,0,0,0
+tur_dun03,0,0,0,0 monster Freezer 1319,40,0,0,0
+tur_dun03,0,0,0,0 monster Assaulter 1315,35,0,0,0
+tur_dun03,0,0,0,0 monster Heater 1318,10,50000,0,0
+
+//==================================================
+// tur_dun04 - Turtle Palace
+//==================================================
+tur_dun04,99,92,10,10 monster Wanderer 1208,1,60000,30000,0
+tur_dun04,99,93,20,20 boss_monster Turtle General 1312,1,3600000,600000,0
+tur_dun04,100,93,20,20 monster Heater 1318,3,120000,60000,0
+tur_dun04,100,93,20,20 monster Assaulter 1315,10,120000,60000,0
+tur_dun04,100,93,20,20 monster Freezer 1319,5,120000,60000,0
+tur_dun04,171,159,3,3 monster Wanderer 1208,1,300000,150000,0
+tur_dun04,171,155,3,3 monster Assaulter 1315,1,310000,160000,0
+tur_dun04,171,149,3,3 monster Assaulter 1315,1,320000,170000,0
+tur_dun04,28,159,3,3 monster Wanderer 1208,1,300000,150000,0
+tur_dun04,28,155,3,3 monster Assaulter 1315,1,310000,160000,0
+tur_dun04,28,149,3,3 monster Assaulter 1315,1,320000,170000,0
+tur_dun04,174,26,3,3 monster Wanderer 1208,1,300000,150000,0
+tur_dun04,174,29,3,3 monster Assaulter 1315,1,310000,160000,0
+tur_dun04,174,32,3,3 monster Assaulter 1315,1,320000,170000,0
+tur_dun04,26,26,3,3 monster Wanderer 1208,1,300000,150000,0
+tur_dun04,26,29,3,3 monster Assaulter 1315,1,310000,160000,0
+tur_dun04,26,32,3,3 monster Assaulter 1315,1,320000,170000,0
+tur_dun04,0,0,0,0 monster Wanderer 1208,2,0,0,0
+tur_dun04,0,0,0,0 monster Heater 1318,10,300000,150000,0
+tur_dun04,0,0,0,0 monster Heater 1318,20,620000,310000,0
+tur_dun04,0,0,0,0 monster Assaulter 1315,23,0,0,0
+tur_dun04,0,0,0,0 monster Freezer 1319,5,300000,150000,0
+tur_dun04,0,0,0,0 monster Freezer 1319,5,600000,300000,0
+tur_dun04,0,0,0,0 monster Permeter 1314,2,300000,150000,0
+tur_dun04,0,0,0,0 monster Permeter 1314,2,640000,320000,0
+
+//==================================================
+// tur_dun05 - Underground swamp zone
+//==================================================
+tur_dun05,0,0,0,0 monster Permeter 1314,3,20000,0,0
+tur_dun05,0,0,0,0 monster Freezer 1319,5,30000,0,0
+tur_dun05,0,0,0,0 monster Assaulter 1315,1,20000,0,0
diff --git a/npc/pre-re/mobs/dungeons/um_dun.txt b/npc/pre-re/mobs/dungeons/um_dun.txt
new file mode 100644
index 000000000..e245c6d88
--- /dev/null
+++ b/npc/pre-re/mobs/dungeons/um_dun.txt
@@ -0,0 +1,56 @@
+//===== rAthena Script =======================================
+//= Umbala Dungeon Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.4
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.2 Official kRO 10.1 spawns [Playtester]
+//= 1.3 Some 11.1 spawn updates [Playtester]
+//= 1.4 More accurate spawns [Playtester]
+//============================================================
+
+//==================================================
+// um_dun01 - Carpenter's Shop in the Tree
+//==================================================
+um_dun01,0,0,0,0 monster Stone Shooter 1495,70,0,0,0
+um_dun01,0,0,0,0 monster Wootan Fighter 1499,10,0,0,0
+um_dun01,0,0,0,0 monster Wootan Shooter 1498,10,0,0,0
+um_dun01,0,0,0,0 monster Yellow Plant 1081,5,180000,90000,1
+um_dun01,0,0,0,0 monster Green Plant 1080,5,180000,90000,1
+
+//==================================================
+// um_dun02 - Passage to a Foreign World
+//==================================================
+um_dun02,0,0,0,0 monster Wooden Golem 1497,50,0,0,0
+um_dun02,79,227,10,10 monster Wooden Golem 1497,2,240000,60000,0
+um_dun02,87,189,10,10 monster Wooden Golem 1497,2,240000,60000,0
+um_dun02,170,145,10,10 monster Wooden Golem 1497,2,240000,60000,0
+um_dun02,196,131,14,14 monster Wooden Golem 1497,2,240000,60000,0
+um_dun02,244,129,15,15 monster Wooden Golem 1497,2,360000,60000,0
+um_dun02,90,97,10,15 monster Wooden Golem 1497,2,360000,60000,0
+um_dun02,90,97,10,15 monster Wooden Golem 1497,2,240000,60000,0
+um_dun02,32,83,10,15 monster Wooden Golem 1497,2,360000,60000,0
+um_dun02,32,83,10,15 monster Wooden Golem 1497,2,240000,60000,0
+um_dun02,180,238,15,15 monster Wooden Golem 1497,2,180000,60000,0
+um_dun02,144,277,15,15 monster Wooden Golem 1497,2,360000,60000,0
+um_dun02,144,277,15,15 monster Wooden Golem 1497,2,180000,60000,0
+um_dun02,272,163,15,15 monster Wooden Golem 1497,2,360000,60000,0
+um_dun02,272,163,15,15 monster Wooden Golem 1497,2,180000,60000,0
+um_dun02,232,156,15,15 monster Wooden Golem 1497,2,300000,60000,0
+um_dun02,232,156,15,15 monster Wooden Golem 1497,2,180000,60000,0
+um_dun02,0,0,0,0 monster Driller 1380,5,0,0,0
+um_dun02,0,0,0,0 monster Wootan Shooter 1498,10,0,0,0
+um_dun02,213,217,15,15 monster Wootan Shooter 1498,2,120000,60000,0
+um_dun02,72,258,15,15 monster Wootan Shooter 1498,3,120000,60000,0
+um_dun02,79,227,10,10 monster Wootan Shooter 1498,1,120000,60000,0
+um_dun02,170,145,10,10 monster Wootan Shooter 1498,1,120000,60000,0
+um_dun02,209,34,15,15 monster Wootan Shooter 1498,1,120000,60000,0
+um_dun02,272,163,15,15 monster Wootan Shooter 1498,1,120000,60000,0
+um_dun02,232,156,15,15 monster Wootan Shooter 1498,1,120000,60000,0
+um_dun02,0,0,0,0 monster Dryad 1493,25,0,0,0
+um_dun02,0,0,0,0 monster Yellow Plant 1081,5,180000,90000,1
+um_dun02,0,0,0,0 monster Red Plant 1078,5,180000,90000,1
+um_dun02,0,0,0,0 monster Shining Plant 1083,6,180000,90000,1
diff --git a/npc/pre-re/mobs/dungeons/xmas_dun.txt b/npc/pre-re/mobs/dungeons/xmas_dun.txt
new file mode 100644
index 000000000..420efcdf9
--- /dev/null
+++ b/npc/pre-re/mobs/dungeons/xmas_dun.txt
@@ -0,0 +1,38 @@
+//===== rAthena Script =======================================
+//= Toy Factory Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.4
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.1 added Garm Baby according to May 10 patch
+//= 1.2 Official kRO 10.1 spawns [Playtester]
+//= 1.3 Small spawn update [Playtester]
+//= 1.4 Corrected MVP spawn variance. [L0ne_W0lf]
+//============================================================
+
+//==================================================
+// xmas_dun01 - Toy Factory Warehouse
+//==================================================
+xmas_dun01,0,0,0,0 monster Marin 1242,20,0,0,0
+xmas_dun01,0,0,0,0 monster Poring 1002,10,0,0,0
+xmas_dun01,0,0,0,0 monster Drops 1113,10,0,0,0
+xmas_dun01,0,0,0,0 monster Poporing 1031,20,0,0,0
+xmas_dun01,0,0,0,0 monster Cookie 1265,40,0,0,0
+xmas_dun01,0,0,0,0 monster Christmas Cookie 1246,40,0,0,0
+xmas_dun01,0,0,0,0 monster Myst Case 1249,5,0,0,0
+xmas_dun01,0,0,0,0 monster Chepet 1250,1,1200000,900000,0
+xmas_dun01,0,0,0,0 monster Mastering 1090,1,1800000,900000,0
+xmas_dun01,0,0,0,0 monster Angeling 1096,1,3600000,1800000,0
+
+//==================================================
+// xmas_dun02 - Toy Monitoring Room
+//==================================================
+xmas_dun02,0,0,0,0 monster Christmas Cookie 1246,20,0,0,0
+xmas_dun02,0,0,0,0 monster Cookie 1265,20,0,0,0
+xmas_dun02,0,0,0,0 monster Cruiser 1248,35,0,0,0
+xmas_dun02,0,0,0,0 monster Myst Case 1249,50,0,0,0
+xmas_dun02,0,0,0,0 monster Garm Baby 1515,1,1800000,0,0
+xmas_dun02,0,0,0,0 boss_monster Stormy Knight 1251,1,3600000,600000,0
diff --git a/npc/pre-re/mobs/dungeons/yggdrasil.txt b/npc/pre-re/mobs/dungeons/yggdrasil.txt
new file mode 100644
index 000000000..b3d401ac5
--- /dev/null
+++ b/npc/pre-re/mobs/dungeons/yggdrasil.txt
@@ -0,0 +1,35 @@
+//===== rAthena Script =======================================
+//= Yggdrasil Tree Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.1
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.0 Splitted from Nifflheim fields [DracoRPG]
+//= 1.1 Official kRO 10.1 spawns [Playtester]
+//============================================================
+
+//==================================================
+// yggdrasil01 - Hvergelmir's Fountain (Trunk of Yggdrasil)
+//==================================================
+yggdrasil01,234,256,10,10 monster Blue Plant 1079,5,1800000,600000,0
+yggdrasil01,273,234,3,3 monster Shining Plant 1083,1,1800000,600000,0
+yggdrasil01,143,257,20,10 monster Shining Plant 1083,5,1200000,600000,0
+yggdrasil01,98,238,20,15 monster Yellow Plant 1081,5,1200000,600000,0
+yggdrasil01,98,238,20,15 monster White Plant 1082,5,1200000,600000,0
+yggdrasil01,47,207,20,20 monster Blue Plant 1079,5,1200000,600000,0
+yggdrasil01,61,258,3,3 monster Shining Plant 1083,1,1800000,600000,0
+yggdrasil01,132,199,20,5 monster Blue Plant 1079,5,1200000,600000,0
+yggdrasil01,209,218,2,2 monster Shining Plant 1083,1,1200000,600000,0
+yggdrasil01,192,186,2,2 monster Shining Plant 1083,1,1800000,1200000,0
+yggdrasil01,169,176,3,3 monster Shining Plant 1083,1,1200000,600000,0
+yggdrasil01,169,176,3,3 monster Green Plant 1080,1,60000,30000,0
+yggdrasil01,94,111,5,2 monster Shining Plant 1083,1,1200000,600000,0
+yggdrasil01,51,118,10,3 monster Shining Plant 1083,1,1200000,600000,0
+yggdrasil01,133,54,3,3 monster Shining Plant 1083,1,1200000,600000,0
+yggdrasil01,257,63,10,10 monster Shining Plant 1083,3,1800000,1200000,0
+yggdrasil01,0,0,0,0 monster Shining Plant 1083,10,3600000,2300000,0
+yggdrasil01,0,0,0,0 monster Green Plant 1080,25,60000,30000,0
+yggdrasil01,0,0,0,0 monster Red Plant 1078,15,60000,30000,0
diff --git a/npc/pre-re/mobs/fields/amatsu.txt b/npc/pre-re/mobs/fields/amatsu.txt
new file mode 100644
index 000000000..a59e48b64
--- /dev/null
+++ b/npc/pre-re/mobs/fields/amatsu.txt
@@ -0,0 +1,42 @@
+//===== rAthena Script =======================================
+//= Amatsu Fields Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.3
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.1 replaced Hydra -> G_Hydra (to fix drops exploit) [Lupus]
+//= 1.2 Official kRO 10.1 spawns [Playtester]
+//= 1.3 Small update [Playtester]
+//============================================================
+
+//==================================================
+// ama_fild01 - Amatsu Field
+//==================================================
+ama_fild01,0,0,0,0 monster Karakasa 1400,50,0,0,0
+ama_fild01,174,207,20,20 monster Kapha 1406,5,1200000,600000,0
+ama_fild01,241,310,10,10 monster Kapha 1406,5,600000,300000,0
+ama_fild01,114,230,10,10 monster Kapha 1406,5,600000,300000,0
+ama_fild01,174,253,10,10 monster Kapha 1406,5,600000,300000,0
+ama_fild01,177,315,0,0 monster Hydra 1068,1,60000,30000,0
+ama_fild01,175,315,0,0 monster Hydra 1068,1,63000,31500,0
+ama_fild01,173,315,0,0 monster Hydra 1068,1,66000,33000,0
+ama_fild01,171,315,0,0 monster Hydra 1068,1,69000,34500,0
+ama_fild01,169,315,0,0 monster Hydra 1068,1,72000,39000,0
+ama_fild01,177,314,0,0 monster Hydra 1068,1,66000,33000,0
+ama_fild01,175,314,0,0 monster Hydra 1068,1,72000,39000,0
+ama_fild01,173,314,0,0 monster Hydra 1068,1,60000,30000,0
+ama_fild01,171,314,0,0 monster Hydra 1068,1,69000,34500,0
+ama_fild01,169,314,0,0 monster Hydra 1068,1,63000,31500,0
+ama_fild01,171,313,0,0 monster Hydra 1068,1,66000,33000,0
+ama_fild01,173,313,0,0 monster Hydra 1068,1,60000,30000,0
+ama_fild01,175,313,0,0 monster Hydra 1068,1,66000,33000,0
+ama_fild01,173,310,0,0 monster Hydra 1068,1,60000,30000,0
+ama_fild01,0,0,0,0 monster Kapha 1406,20,60000,30000,0
+ama_fild01,174,306,20,20 monster Kapha 1406,10,300000,150000,0
+ama_fild01,0,0,0,0 monster Miyabi Doll 1404,2,180000,90000,0
+ama_fild01,0,0,0,0 monster Poison Toad 1402,1,180000,90000,0
+ama_fild01,0,0,0,0 monster Poporing 1031,15,0,0,0
+ama_fild01,0,0,0,0 monster Bigfoot 1060,15,60000,30000,0
diff --git a/npc/pre-re/mobs/fields/ayothaya.txt b/npc/pre-re/mobs/fields/ayothaya.txt
new file mode 100644
index 000000000..cb6d9a869
--- /dev/null
+++ b/npc/pre-re/mobs/fields/ayothaya.txt
@@ -0,0 +1,31 @@
+//===== rAthena Script =======================================
+//= Ayothaya Fields Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.4
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.1 Using EuRO data [Ishizu]
+//= 1.2 According the guide book, added a Choco [Lupus&VP]
+//= 1.3 Removed Choco [Lupus]
+//= 1.4 Official kRO 10.1 spawns [Playtester]
+//============================================================
+
+//==================================================
+// ayo_fild01 - Ayothaya Field
+//==================================================
+ayo_fild01,0,0,0,0 monster Coco 1104,30,0,0,0
+ayo_fild01,0,0,0,0 monster Yoyo 1057,30,0,0,0
+ayo_fild01,0,0,0,0 monster Smokie 1056,30,0,0,0
+ayo_fild01,0,0,0,0 monster Leaf Cat 1586,3,3600000,1800000,0
+ayo_fild01,0,0,0,0 monster Green Plant 1080,10,0,0,0
+
+//==================================================
+// ayo_fild02 - Ayothaya Field
+//==================================================
+ayo_fild02,0,0,0,0 monster Leaf Cat 1586,50,0,0,0
+ayo_fild02,0,0,0,0 monster Wootan Fighter 1499,20,0,0,0
+ayo_fild02,0,0,0,0 monster Beetle King 1494,30,0,0,0
+ayo_fild02,0,0,0,0 monster Yellow Plant 1081,10,0,0,0
diff --git a/npc/pre-re/mobs/fields/comodo.txt b/npc/pre-re/mobs/fields/comodo.txt
new file mode 100644
index 000000000..e9d37da80
--- /dev/null
+++ b/npc/pre-re/mobs/fields/comodo.txt
@@ -0,0 +1,200 @@
+//===== rAthena Script =======================================
+//= Comodo Fields Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.3
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.2 Official kRO 10.1 spawns [Playtester]
+//= 1.3 More accurate spawns [Playtester]
+//============================================================
+
+//==================================================
+// cmd_fild01 - Papuchicha Forest
+//==================================================
+cmd_fild01,0,0,0,0 monster Alligator 1271,60,0,0,0
+cmd_fild01,0,0,0,0 monster Savage 1166,30,0,0,0
+cmd_fild01,0,0,0,0 monster Poporing 1031,30,0,0,0
+cmd_fild01,0,0,0,0 monster Poison Spore 1077,20,0,0,0
+cmd_fild01,313,213,10,10 monster Shining Plant 1083,1,1800000,900000,1
+cmd_fild01,313,213,10,10 monster Blue Plant 1079,1,1800000,900000,1
+cmd_fild01,171,339,10,10 monster Blue Plant 1079,2,1800000,900000,1
+cmd_fild01,72,78,10,10 monster Blue Plant 1079,2,1800000,900000,1
+cmd_fild01,194,176,20,20 monster Blue Plant 1079,1,1800000,900000,1
+cmd_fild01,0,0,0,0 monster Green Plant 1080,5,1800000,900000,1
+
+//==================================================
+// cmd_fild02 - Kokomo Beach
+//==================================================
+cmd_fild02,73,100,40,100 monster Aster 1266,5,0,0,0
+cmd_fild02,200,130,150,50 monster Aster 1266,5,0,0,0
+cmd_fild02,0,0,0,0 monster Crab 1073,20,0,0,0
+cmd_fild02,0,0,0,0 monster Alligator 1271,10,0,0,0
+cmd_fild02,0,0,0,0 monster Raggler 1254,30,0,0,0
+cmd_fild02,94,85,40,80 monster Raggler 1254,2,60000,0,0
+cmd_fild02,95,89,40,80 monster Cornutus 1067,5,180000,0,0
+cmd_fild02,279,78,100,20 monster Cornutus 1067,10,60000,0,0
+cmd_fild02,0,0,0,0 monster Shellfish 1074,35,0,0,0
+cmd_fild02,93,82,40,80 monster Shellfish 1074,5,180000,0,0
+cmd_fild02,0,0,0,0 monster Mobster 1313,1,0,0,0
+cmd_fild02,200,130,150,40 monster Seal 1317,18,0,0,0
+cmd_fild02,93,82,40,80 monster Seal 1317,2,180000,0,0
+cmd_fild02,0,0,0,0 monster Galapago 1391,20,0,0,0
+
+//==================================================
+// cmd_fild03 - Zenhai Marsh
+//==================================================
+cmd_fild03,0,0,0,0 monster Mutant Dragonoid 1262,1,0,0,1
+cmd_fild03,0,0,0,0 monster Pest 1256,30,0,0,0
+cmd_fild03,0,0,0,0 monster Poporing 1031,10,0,0,0
+cmd_fild03,0,0,0,0 monster Anolian 1206,90,0,0,0
+cmd_fild03,0,0,0,0 monster Toad 1089,1,3600000,1800000,1
+cmd_fild03,356,232,3,3 monster Shining Plant 1083,1,1800000,900000,1
+cmd_fild03,262,289,3,3 monster Shining Plant 1083,1,1800000,900000,1
+cmd_fild03,145,191,3,3 monster Shining Plant 1083,1,1800000,900000,1
+
+//==================================================
+// cmd_fild04 - Kokomo Beach
+//==================================================
+cmd_fild04,221,120,120,40 monster Aster 1266,45,0,0,0
+cmd_fild04,0,0,0,0 monster Alligator 1271,40,0,0,0
+cmd_fild04,0,0,0,0 monster Crab 1073,20,0,0,0
+cmd_fild04,0,0,0,0 monster Raggler 1254,20,0,0,0
+cmd_fild04,0,0,0,0 monster Shellfish 1074,20,0,0,0
+cmd_fild04,221,120,120,40 monster Sea Otter 1323,20,0,0,0
+
+//==================================================
+// cmd_fild05 - Border of Papuchica Forest
+//==================================================
+cmd_fild05,0,0,0,0 monster Frilldora 1119,45,0,0,0
+cmd_fild05,0,0,0,0 monster Alligator 1271,20,0,0,0
+cmd_fild05,0,0,0,0 monster Stem Worm 1215,5,0,0,0
+cmd_fild05,0,0,0,0 monster Poporing 1031,10,0,0,0
+cmd_fild05,0,0,0,0 monster Pest 1256,5,0,0,0
+cmd_fild05,63,158,10,10 monster Shining Plant 1083,1,1800000,900000,1
+cmd_fild05,318,277,10,10 monster Yellow Plant 1081,3,1800000,900000,1
+cmd_fild05,282,49,20,20 monster Yellow Plant 1081,3,1800000,900000,1
+cmd_fild05,0,0,0,0 monster Green Plant 1080,5,1800000,900000,1
+
+//==================================================
+// cmd_fild06 - Fortress Saint Darmain (West)
+//==================================================
+cmd_fild06,0,0,0,0 monster Kobold Archer 1282,5,0,0,0
+cmd_fild06,0,0,0,0 monster Kobold Archer 1282,5,300000,0,0
+cmd_fild06,357,299,80,70 monster Kobold Archer 1282,2,0,0,0
+cmd_fild06,357,299,80,70 monster Kobold Archer 1282,2,120000,0,0
+cmd_fild06,318,146,120,80 monster Kobold Archer 1282,4,0,0,0
+cmd_fild06,318,146,120,80 monster Kobold Archer 1282,4,120000,0,0
+cmd_fild06,244,113,0,0 monster Kobold Archer 1282,1,180000,0,0
+cmd_fild06,290,164,0,0 monster Kobold Archer 1282,1,190000,0,0
+cmd_fild06,284,197,0,0 monster Kobold Archer 1282,1,180000,0,0
+cmd_fild06,286,289,0,0 monster Kobold Archer 1282,1,180000,0,0
+cmd_fild06,314,267,0,0 monster Kobold Archer 1282,1,180000,0,0
+cmd_fild06,0,0,0,0 monster Goblin Archer 1258,10,0,0,0
+cmd_fild06,0,0,0,0 monster Goblin Archer 1258,10,30000,0,0
+cmd_fild06,355,294,80,70 monster Goblin Archer 1258,3,0,0,0
+cmd_fild06,355,294,80,70 monster Goblin Archer 1258,3,120000,0,0
+cmd_fild06,307,97,70,200 monster Goblin Archer 1258,4,0,0,0
+cmd_fild06,307,97,70,200 monster Goblin Archer 1258,4,120000,0,0
+cmd_fild06,100,265,10,40 monster Goblin Archer 1258,3,130000,0,0
+cmd_fild06,244,110,0,0 monster Goblin Archer 1258,1,180000,0,0
+cmd_fild06,292,169,0,0 monster Goblin Archer 1258,1,180000,0,0
+cmd_fild06,284,129,0,0 monster Goblin Archer 1258,1,180000,0,0
+cmd_fild06,184,126,0,0 monster Goblin Archer 1258,1,180000,0,0
+cmd_fild06,279,199,0,0 monster Goblin Archer 1258,1,180000,0,0
+cmd_fild06,277,186,0,0 monster Goblin Archer 1258,1,180000,0,0
+cmd_fild06,284,186,0,0 monster Goblin Archer 1258,1,180000,0,0
+cmd_fild06,354,342,0,0 monster Goblin Archer 1258,1,180000,0,0
+cmd_fild06,365,342,0,0 monster Goblin Archer 1258,1,180000,0,0
+cmd_fild06,340,334,0,0 monster Goblin Archer 1258,1,180000,0,0
+cmd_fild06,0,0,0,0 monster Drops 1113,20,0,0,0
+cmd_fild06,0,0,0,0 monster Harpy 1376,1,1500000,1000000,0
+cmd_fild06,293,235,5,5 monster Yellow Plant 1081,2,1800000,900000,1
+cmd_fild06,84,375,10,10 monster Yellow Plant 1081,3,1800000,900000,1
+
+//==================================================
+// cmd_fild07 - Beacon Island, Pharos
+//==================================================
+cmd_fild07,242,108,40,90 monster Aster 1266,2,60000,0,0
+cmd_fild07,102,177,60,90 monster Aster 1266,3,60000,0,0
+cmd_fild07,240,107,40,90 monster Crab 1073,3,60000,0,0
+cmd_fild07,100,175,60,90 monster Crab 1073,2,60000,0,0
+cmd_fild07,101,176,60,90 monster Raggler 1254,1,180000,0,0
+cmd_fild07,241,106,40,90 monster Raggler 1254,1,180000,0,0
+cmd_fild07,204,317,60,60 monster Raggler 1254,1,60000,0,0
+cmd_fild07,323,310,60,60 monster Raggler 1254,1,60000,0,0
+cmd_fild07,0,0,0,0 monster Drops 1113,20,0,0,0
+cmd_fild07,239,105,40,90 monster Shellfish 1074,2,60000,0,0
+cmd_fild07,104,180,40,90 monster Shellfish 1074,3,60000,0,0
+
+//==================================================
+// cmd_fild08 - Fortress Saint Darmain (East)
+//==================================================
+cmd_fild08,127,279,30,50 monster Kobold Archer 1282,5,60000,0,0
+cmd_fild08,130,192,110,150 monster Kobold Archer 1282,5,0,0,0
+cmd_fild08,146,136,30,80 monster Kobold Archer 1282,5,0,0,0
+cmd_fild08,73,132,40,100 monster Kobold Archer 1282,5,0,0,0
+cmd_fild08,146,136,30,90 monster Kobold Archer 1282,5,0,0,0
+cmd_fild08,157,329,0,0 monster Kobold Archer 1282,1,190000,0,0
+cmd_fild08,150,320,0,0 monster Kobold Archer 1282,1,190000,0,0
+cmd_fild08,195,174,0,0 monster Kobold Archer 1282,1,190000,0,0
+cmd_fild08,173,168,0,0 monster Kobold Archer 1282,1,190000,0,0
+cmd_fild08,178,363,0,0 monster Kobold Archer 1282,1,190000,0,0
+cmd_fild08,175,367,0,0 monster Kobold Archer 1282,1,190000,0,0
+cmd_fild08,53,248,0,0 monster Kobold Archer 1282,1,190000,0,0
+cmd_fild08,52,238,0,0 monster Kobold Archer 1282,1,190000,0,0
+cmd_fild08,272,175,40,2 monster Kobold Archer 1282,2,60000,0,0
+cmd_fild08,190,115,100,80 monster Kobold Archer 1282,10,0,0,0
+cmd_fild08,130,192,110,150 monster Kobold Archer 1282,7,0,0,0
+cmd_fild08,72,131,40,100 monster Kobold Archer 1282,8,0,0,0
+cmd_fild08,319,177,0,0 monster Kobold Archer 1282,1,180000,0,0
+cmd_fild08,319,172,0,0 monster Kobold Archer 1282,1,180000,0,0
+cmd_fild08,139,71,0,0 monster Kobold Archer 1282,1,180000,0,0
+cmd_fild08,136,64,0,0 monster Kobold Archer 1282,1,180000,0,0
+cmd_fild08,67,80,0,0 monster Kobold Archer 1282,1,180000,0,0
+cmd_fild08,132,149,0,0 monster Kobold Archer 1282,1,180000,0,0
+cmd_fild08,97,144,0,0 monster Kobold Archer 1282,1,180000,0,0
+cmd_fild08,79,140,0,0 monster Kobold Archer 1282,1,180000,0,0
+cmd_fild08,28,102,0,0 monster Kobold Archer 1282,1,180000,0,0
+cmd_fild08,80,348,60,40 monster Goblin Archer 1258,5,0,0,0
+cmd_fild08,130,192,110,150 monster Goblin Archer 1258,5,0,0,0
+cmd_fild08,194,291,25,40 monster Goblin Archer 1258,5,0,0,0
+cmd_fild08,73,132,40,100 monster Goblin Archer 1258,5,0,0,0
+cmd_fild08,182,205,0,0 monster Goblin Archer 1258,1,150000,0,0
+cmd_fild08,177,210,0,0 monster Goblin Archer 1258,1,150000,0,0
+cmd_fild08,58,40,0,0 monster Goblin Archer 1258,1,150000,0,0
+cmd_fild08,55,45,0,0 monster Goblin Archer 1258,1,150000,0,0
+cmd_fild08,104,313,0,0 monster Goblin Archer 1258,1,150000,0,0
+cmd_fild08,98,307,0,0 monster Goblin Archer 1258,1,150000,0,0
+cmd_fild08,41,126,0,0 monster Goblin Archer 1258,1,150000,0,0
+cmd_fild08,37,129,0,0 monster Goblin Archer 1258,1,150000,0,0
+cmd_fild08,66,252,40,30 monster Stem Worm 1215,5,30000,0,0
+cmd_fild08,130,192,110,150 monster Stem Worm 1215,10,0,0,0
+cmd_fild08,70,130,40,90 monster Stem Worm 1215,2,0,0,0
+cmd_fild08,189,64,30,30 monster Stem Worm 1215,3,180000,0,0
+cmd_fild08,174,172,0,0 monster Stem Worm 1215,1,180000,0,0
+cmd_fild08,266,175,0,0 monster Stem Worm 1215,1,180000,0,0
+cmd_fild08,127,273,0,0 monster Stem Worm 1215,1,180000,0,0
+cmd_fild08,92,141,0,0 monster Stem Worm 1215,1,180000,0,0
+cmd_fild08,85,135,0,0 monster Stem Worm 1215,1,180000,0,0
+cmd_fild08,0,0,0,0 monster Drops 1113,10,0,0,0
+cmd_fild08,326,258,50,110 monster Sandman 1165,15,0,0,0
+cmd_fild08,326,258,50,110 monster Kobold Archer 1282,10,0,0,0
+cmd_fild08,326,258,50,110 monster Side Winder 1037,2,0,0,0
+cmd_fild08,0,0,0,0 monster Side Winder 1037,3,0,0,0
+cmd_fild08,130,192,110,150 monster Side Winder 1037,15,0,0,0
+cmd_fild08,0,0,0,0 monster Gryphon 1259,1,3600000,1800000,1
+cmd_fild08,60,143,10,10 monster Yellow Plant 1081,4,1800000,900000,1
+cmd_fild08,130,201,10,10 monster Yellow Plant 1081,4,1800000,900000,1
+
+//==================================================
+// cmd_fild09 - Fortress Saint Darmain (South)
+//==================================================
+cmd_fild09,0,0,0,0 monster Steel Chonchon 1042,20,0,0,0
+cmd_fild09,0,0,0,0 monster Drops 1113,20,0,0,0
+cmd_fild09,0,0,0,0 monster Anacondaq 1030,60,0,0,0
+cmd_fild09,0,0,0,0 monster Condor 1009,20,0,0,0
+cmd_fild09,142,325,40,50 monster Hode 1127,3,150000,0,0
+cmd_fild09,140,323,40,50 monster Gargoyle 1253,2,150000,0,0
diff --git a/npc/pre-re/mobs/fields/einbroch.txt b/npc/pre-re/mobs/fields/einbroch.txt
new file mode 100644
index 000000000..bdaaf59da
--- /dev/null
+++ b/npc/pre-re/mobs/fields/einbroch.txt
@@ -0,0 +1,148 @@
+//===== rAthena Script =======================================
+//= Einbroch Fields Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.6
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.1 correct spawn maps, but not yet exact amount of
+//= monsters [Lupus]
+//= maps, marked with * are correct
+//= 1.2 Updated to correct mobs. Many thanks to vicious_pucca
+//= again for providing the information [MasterOfMuppets]
+//= 1.2a Fixed missing tabs [Lupus]
+//= 1.3 Updated after Episode 10.4 - Hugel [Poki#3]
+//= Mob quantity is custom.
+//= 1.3b Changed the spawn numbers a bit. [Poki#3]
+//= Thanks to Playtester and Emperium.org
+//= 1.4 Updated by using Tharis' Homun AI, by Tharis [Vicious]
+//= 1.5 Adjusted some spawns according to official info [Playtester]
+//= 1.6 More accurate spawns [Playtester]
+//============================================================
+
+//==================================================
+// ein_fild01 - Einbroch Field
+//==================================================
+ein_fild01,115,190,80,150 monster Demon Pungus 1378,30,0,0,0
+ein_fild01,264,318,70,60 monster Demon Pungus 1378,20,0,0,0
+ein_fild01,232,100,25,60 monster Demon Pungus 1378,5,300000,60000,0
+ein_fild01,115,190,80,150 monster Punk 1199,25,0,0,0
+ein_fild01,264,318,70,60 monster Punk 1199,20,0,0,0
+ein_fild01,232,100,25,60 monster Punk 1199,5,300000,60000,0
+
+//==================================================
+// ein_fild02 - Einbroch Field
+//==================================================
+ein_fild02,105,250,70,80 monster Driller 1380,10,0,0,0
+ein_fild02,259,269,90,70 monster Driller 1380,15,0,0,0
+ein_fild02,287,117,55,70 monster Driller 1380,10,0,0,0
+ein_fild02,108,88,60,60 monster Driller 1380,10,0,0,0
+ein_fild02,0,0,0,0 monster Demon Pungus 1378,30,0,0,0
+ein_fild02,0,0,0,0 monster Ungoliant 1618,1,75600000,75000000,0
+
+//==================================================
+// ein_fild03 - Einbroch Field
+//==================================================
+ein_fild03,0,0,0,0 monster Metaling 1613,30,0,0,0
+ein_fild03,0,0,0,0 monster Geographer 1368,5,0,0,0
+ein_fild03,0,0,0,0 monster Holden 1628,40,0,0,0
+ein_fild03,153,328,100,35 monster Geographer 1368,10,0,0,0
+ein_fild03,260,190,45,25 monster Geographer 1368,5,0,0,0
+ein_fild03,88,143,25,70 monster Caramel 1103,10,60000,30000,1
+ein_fild03,155,40,35,20 monster Horn 1128,5,60000,30000,1
+ein_fild03,0,0,0,0 monster Yellow Plant 1081,15,60000,30000,0
+ein_fild03,0,0,0,0 monster Green Plant 1080,15,60000,30000,0
+
+//==================================================
+// ein_fild04 - Einbroch Field
+//==================================================
+ein_fild04,0,0,0,0 monster Metaling 1613,50,0,0,0
+ein_fild04,0,0,0,0 monster Geographer 1368,30,60000,30000,0
+ein_fild04,0,0,0,0 monster Holden 1628,5,0,0,0
+ein_fild04,200,295,125,65 monster Geographer 1368,40,60000,30000,0
+ein_fild04,125,135,40,40 monster Geographer 1368,5,60000,30000,0
+ein_fild04,260,70,20,30 monster Geographer 1368,5,60000,30000,0
+ein_fild04,285,240,35,90 monster Giearth 1121,10,3600000,3000000,0
+ein_fild04,106,284,60,60 monster Holden 1628,15,0,0,0
+ein_fild04,106,284,60,60 monster Mineral 1614,5,3600000,3000000,0
+ein_fild04,0,0,0,0 monster Red Plant 1078,10,60000,30000,0
+ein_fild04,0,0,0,0 monster Yellow Plant 1081,10,60000,30000,0
+ein_fild04,0,0,0,0 monster Green Plant 1080,10,60000,30000,0
+
+//==================================================
+// ein_fild05 - Einbroch Field
+//==================================================
+ein_fild05,205,300,50,50 monster Mineral 1614,10,600000,360000,0
+ein_fild05,299,189,55,55 monster Mineral 1614,15,600000,360000,0
+ein_fild05,145,195,30,50 monster Mineral 1614,10,600000,360000,0
+ein_fild05,205,300,50,50 monster Obsidian 1615,5,420000,360000,0
+ein_fild05,299,189,55,55 monster Obsidian 1615,7,420000,360000,0
+ein_fild05,145,195,30,50 monster Obsidian 1615,5,420000,360000,0
+ein_fild05,0,0,0,0 monster Anopheles 1627,30,0,0,0
+ein_fild05,0,0,0,0 monster Demon Pungus 1378,10,0,0,0
+ein_fild05,0,0,0,0 monster Geographer 1368,10,0,0,0
+
+//==================================================
+// ein_fild06 - Einbroch Field
+//==================================================
+ein_fild06,0,0,0,0 monster Goat 1372,55,0,0,0
+ein_fild06,0,0,0,0 monster Pupa 1008,10,0,0,0
+ein_fild06,0,0,0,0 monster Harpy 1376,5,1800000,1200000,0
+ein_fild06,0,0,0,0 monster Giearth 1121,2,3600000,3000000,0
+ein_fild06,0,0,0,0 monster Red Plant 1078,10,120000,60000,0
+ein_fild06,0,0,0,0 monster Yellow Plant 1081,10,120000,60000,0
+ein_fild06,0,0,0,0 monster Black Mushroom 1084,5,120000,60000,0
+
+//==================================================
+// ein_fild07 - Einbroch Field
+//==================================================
+ein_fild07,0,0,0,0 monster Poring 1002,40,0,0,0
+ein_fild07,0,0,0,0 monster Poporing 1031,20,0,0,0
+ein_fild07,0,0,0,0 monster Metaling 1613,60,0,0,0
+ein_fild07,0,0,0,0 monster Flora 1118,20,0,0,0
+ein_fild07,0,0,0,0 monster Geographer 1368,20,0,0,0
+ein_fild07,0,0,0,0 monster Red Plant 1078,10,120000,60000,0
+ein_fild07,0,0,0,0 monster Yellow Plant 1081,10,120000,60000,0
+ein_fild07,0,0,0,0 monster Red Mushroom 1085,10,120000,60000,0
+ein_fild07,0,0,0,0 monster Ungoliant 1618,1,86400000,86000000,0
+
+//==================================================
+// ein_fild08 - Einbroch Field
+//==================================================
+ein_fild08,0,0,0,0 monster Poring 1002,25,0,0,0
+ein_fild08,0,0,0,0 monster Drops 1113,25,0,0,0
+ein_fild08,0,0,0,0 monster Poporing 1031,25,0,0,0
+ein_fild08,0,0,0,0 monster Metaling 1613,25,0,0,0
+ein_fild08,0,0,0,0 monster Porcellio 1619,10,0,0,0
+ein_fild08,0,0,0,0 monster Thief Bug 1051,30,0,0,0
+ein_fild08,0,0,0,0 monster Red Plant 1078,10,120000,60000,0
+ein_fild08,0,0,0,0 monster Yellow Plant 1081,10,120000,60000,0
+ein_fild08,0,0,0,0 monster Red Mushroom 1085,10,120000,60000,0
+
+//==================================================
+// ein_fild09 - Einbroch Field
+//==================================================
+ein_fild09,0,0,0,0 monster Metaling 1613,10,0,0,0
+ein_fild09,0,0,0,0 monster Porcellio 1619,70,0,0,0
+ein_fild09,0,0,0,0 monster Thief Bug 1051,20,0,0,0
+ein_fild09,100,260,2,2 monster Thief Bug Egg 1048,3,600000,300000,0
+ein_fild09,0,0,0,0 monster Red Plant 1078,10,120000,60000,0
+ein_fild09,0,0,0,0 monster Yellow Plant 1081,10,120000,60000,0
+ein_fild09,0,0,0,0 monster Red Mushroom 1085,10,120000,60000,0
+ein_fild09,260,85,50,20 monster Flora 1118,5,300000,120000,0
+
+//==================================================
+// ein_fild10 - Einbroch Field
+//==================================================
+ein_fild10,0,0,0,0 monster Geographer 1368,5,0,0,0
+ein_fild10,0,0,0,0 monster Porcellio 1619,20,0,0,1
+ein_fild10,152,314,130,30 monster Porcellio 1619,10,0,0,1
+ein_fild10,0,0,0,0 monster Red Plant 1078,20,120000,60000,0
+ein_fild10,0,0,0,0 monster Yellow Plant 1081,20,120000,60000,0
+ein_fild10,0,0,0,0 monster Blue Plant 1079,20,600000,300000,0
+ein_fild10,225,95,30,45 monster Yoyo 1057,6,30000,10000,0
+ein_fild10,320,130,40,40 monster Yoyo 1057,4,30000,10000,0
+ein_fild10,225,95,30,45 monster Flora 1118,10,300000,120000,0
+ein_fild10,320,130,40,40 monster Flora 1118,10,300000,120000,0
diff --git a/npc/pre-re/mobs/fields/geffen.txt b/npc/pre-re/mobs/fields/geffen.txt
new file mode 100644
index 000000000..813e745e7
--- /dev/null
+++ b/npc/pre-re/mobs/fields/geffen.txt
@@ -0,0 +1,230 @@
+//===== rAthena Script =======================================
+//= Geffen Fields Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.5
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.2 Map names typos fix [Lupus]
+//= 1.3 Official kRO 10.1 spawns + future changes [Playtester]
+//= 1.4 More accurate spawns [Playtester]
+//= 1.5 Corrected MVP spawn variance. [L0ne_W0lf]
+//============================================================
+
+//==================================================
+// gef_fild00 - Geffen Field
+//==================================================
+gef_fild00,0,0,0,0 monster Poring 1002,50,0,0,0
+gef_fild00,0,0,0,0 monster Fabre 1007,50,0,0,0
+gef_fild00,0,0,0,0 monster Pupa 1008,20,0,0,0
+gef_fild00,0,0,0,0 monster Poporing 1031,10,0,0,0
+gef_fild00,95,128,0,0 monster Blue Plant 1079,1,900000,450000,1
+gef_fild00,124,321,0,0 monster Blue Plant 1079,1,900000,450000,1
+gef_fild00,54,212,5,5 monster Green Plant 1080,3,360000,180000,1
+gef_fild00,54,186,5,5 monster Green Plant 1080,3,360000,180000,1
+
+//==================================================
+// gef_fild01 - Geffen Field
+//==================================================
+gef_fild01,0,0,0,0 monster Roda Frog 1012,50,0,0,0
+gef_fild01,0,0,0,0 monster Poporing 1031,20,0,0,0
+gef_fild01,0,0,0,0 monster Toad 1089,1,3600000,1800000,1
+gef_fild01,215,225,10,10 monster Green Plant 1080,5,360000,180000,1
+
+//==================================================
+// gef_fild02 - Geffen Field
+//==================================================
+gef_fild02,0,0,0,0 monster Yoyo 1057,10,0,0,0
+gef_fild02,0,0,0,0 monster Orc Warrior 1023,60,0,0,0
+gef_fild02,0,0,0,0 monster Coco 1104,10,0,0,0
+gef_fild02,0,0,0,0 monster Smokie 1056,10,0,0,0
+gef_fild02,0,0,0,0 monster Choco 1214,1,0,0,0
+gef_fild02,0,0,0,0 boss_monster Orc Hero 1087,1,86400000,600000,1
+gef_fild02,227,316,6,6 monster Green Plant 1080,8,360000,180000,1
+gef_fild02,87,48,6,6 monster Red Mushroom 1085,5,360000,180000,1
+gef_fild02,215,209,2,1 monster Blue Plant 1079,2,360000,180000,1
+gef_fild02,207,214,1,1 monster Blue Plant 1079,1,360000,180000,1
+gef_fild02,220,214,1,1 monster Blue Plant 1079,1,360000,180000,1
+gef_fild02,164,194,1,1 monster Shining Plant 1083,1,1800000,900000,1
+
+//==================================================
+// gef_fild03 - Geffen Field
+//==================================================
+gef_fild03,0,0,0,0 monster Orc Warrior 1023,60,0,0,0
+gef_fild03,0,0,0,0 monster High Orc 1213,1,0,0,0
+gef_fild03,0,0,0,0 monster Savage 1166,40,0,0,0
+gef_fild03,0,0,0,0 monster Poporing 1031,20,0,0,0
+gef_fild03,45,350,3,3 monster Green Plant 1080,1,180000,90000,1
+gef_fild03,66,300,3,3 monster Green Plant 1080,1,180000,90000,1
+gef_fild03,80,252,3,3 monster Green Plant 1080,1,180000,90000,1
+gef_fild03,118,281,3,3 monster Green Plant 1080,1,180000,90000,1
+gef_fild03,135,344,3,3 monster Green Plant 1080,1,180000,90000,1
+gef_fild03,210,363,3,3 monster Green Plant 1080,1,180000,90000,1
+gef_fild03,215,345,3,3 monster Green Plant 1080,1,180000,90000,1
+gef_fild03,359,316,3,3 monster Green Plant 1080,1,180000,90000,1
+gef_fild03,350,247,3,3 monster Green Plant 1080,1,180000,90000,1
+gef_fild03,304,202,3,3 monster Green Plant 1080,1,180000,90000,1
+gef_fild03,285,223,3,3 monster Green Plant 1080,1,180000,90000,1
+gef_fild03,282,192,3,3 monster Green Plant 1080,1,180000,90000,1
+gef_fild03,316,143,3,3 monster Green Plant 1080,1,180000,90000,1
+gef_fild03,337,104,3,3 monster Green Plant 1080,1,180000,90000,1
+gef_fild03,348,42,3,3 monster Green Plant 1080,1,180000,90000,1
+gef_fild03,326,79,3,3 monster Green Plant 1080,1,180000,90000,1
+gef_fild03,280,92,3,3 monster Green Plant 1080,1,180000,90000,1
+gef_fild03,216,135,3,3 monster Green Plant 1080,1,180000,90000,1
+gef_fild03,169,92,3,3 monster Green Plant 1080,1,180000,90000,1
+gef_fild03,45,93,3,3 monster Green Plant 1080,1,180000,90000,1
+gef_fild03,44,133,3,3 monster Green Plant 1080,1,180000,90000,1
+
+//==================================================
+// gef_fild04 - Geffen Field
+//==================================================
+gef_fild04,0,0,0,0 monster Poring 1002,30,0,0,0
+gef_fild04,0,0,0,0 monster Chonchon 1011,30,0,0,0
+gef_fild04,0,0,0,0 monster Pupa 1008,60,0,0,0
+gef_fild04,0,0,0,0 monster Fabre 1007,20,0,0,0
+gef_fild04,0,0,0,0 monster Roda Frog 1012,20,0,0,0
+gef_fild04,224,82,5,2 monster Green Plant 1080,3,360000,180000,1
+gef_fild04,152,82,5,2 monster Green Plant 1080,3,360000,180000,1
+
+//==================================================
+// gef_fild05 - Geffen Field
+//==================================================
+gef_fild05,0,0,0,0 monster Poring 1002,30,0,0,0
+gef_fild05,0,0,0,0 monster Kobold Archer 1282,10,0,0,0
+gef_fild05,0,0,0,0 monster Wild Rose 1261,50,0,0,0
+gef_fild05,0,0,0,0 monster Dustiness 1114,30,0,0,0
+gef_fild05,235,322,0,0 monster Red Plant 1078,1,180000,90000,1
+gef_fild05,238,326,0,0 monster Red Plant 1078,1,180000,90000,1
+gef_fild05,170,337,0,0 monster Red Plant 1078,1,180000,90000,1
+gef_fild05,108,317,0,0 monster Red Plant 1078,1,180000,90000,1
+gef_fild05,56,285,0,0 monster Red Plant 1078,1,180000,90000,1
+gef_fild05,65,256,0,0 monster Red Plant 1078,1,180000,90000,1
+gef_fild05,74,228,0,0 monster Red Plant 1078,1,180000,90000,1
+gef_fild05,50,189,0,0 monster Red Plant 1078,1,180000,90000,1
+gef_fild05,51,166,0,0 monster Red Plant 1078,1,180000,90000,1
+gef_fild05,146,161,0,0 monster Red Plant 1078,1,180000,90000,1
+gef_fild05,153,180,0,0 monster Red Plant 1078,1,180000,90000,1
+gef_fild05,124,207,0,0 monster Red Plant 1078,1,180000,90000,1
+gef_fild05,187,249,0,0 monster Red Plant 1078,1,180000,90000,1
+gef_fild05,187,265,0,0 monster Red Plant 1078,1,180000,90000,1
+gef_fild05,130,293,0,0 monster Red Plant 1078,1,180000,90000,1
+
+//==================================================
+// gef_fild06 - Geffen Field
+//==================================================
+gef_fild06,0,0,0,0 monster Kobold 1133,20,0,0,0
+gef_fild06,0,0,0,0 monster Kobold 1134,10,0,0,0
+gef_fild06,0,0,0,0 monster Kobold 1135,10,0,0,0
+gef_fild06,0,0,0,0 monster Petite 1156,50,0,0,0
+gef_fild06,0,0,0,0 monster Poporing 1031,10,0,0,0
+gef_fild06,0,0,0,0 monster Mantis 1139,20,0,0,0
+gef_fild06,0,0,0,0 monster Shining Plant 1083,4,1800000,900000,1
+
+//==================================================
+// gef_fild07 - Geffen Field
+//==================================================
+gef_fild07,0,0,0,0 monster Poring 1002,20,0,0,0
+gef_fild07,0,0,0,0 monster Chonchon 1011,30,0,0,0
+gef_fild07,0,0,0,0 monster Pupa 1008,10,0,0,0
+gef_fild07,0,0,0,0 monster Fabre 1007,60,0,0,0
+gef_fild07,122,221,0,0 monster Green Plant 1080,3,360000,180000,1
+gef_fild07,185,247,0,0 monster Shining Plant 1083,1,1800000,900000,1
+gef_fild07,269,289,0,0 monster Blue Plant 1079,1,900000,450000,1
+gef_fild07,269,289,3,3 monster Green Plant 1080,3,360000,180000,1
+
+//==================================================
+// gef_fild08 - Geffen Field
+//==================================================
+gef_fild08,0,0,0,0 monster Kobold 1133,20,0,0,0
+gef_fild08,0,0,0,0 monster Kobold 1134,40,0,0,0
+gef_fild08,0,0,0,0 monster Kobold 1135,20,0,0,0
+gef_fild08,0,0,0,0 monster Golem 1040,40,0,0,0
+gef_fild08,0,0,0,0 monster Steel Chonchon 1042,20,0,0,0
+gef_fild08,0,0,0,0 monster Poison Spore 1077,20,0,0,0
+gef_fild08,65,341,0,0 monster Blue Plant 1079,1,900000,450000,1
+gef_fild08,111,319,0,0 monster Blue Plant 1079,1,900000,450000,1
+gef_fild08,59,91,0,0 monster Blue Plant 1079,1,900000,450000,1
+gef_fild08,70,80,0,0 monster Blue Plant 1079,1,900000,450000,1
+gef_fild08,144,140,0,0 monster Blue Plant 1079,1,900000,450000,1
+gef_fild08,344,78,0,0 monster Blue Plant 1079,1,900000,450000,1
+gef_fild08,325,311,0,0 monster Blue Plant 1079,1,900000,450000,1
+gef_fild08,162,247,0,0 monster Blue Plant 1079,1,900000,450000,1
+
+//==================================================
+// gef_fild09 - Geffen Field
+//==================================================
+gef_fild09,0,0,0,0 monster Ambernite 1094,60,0,0,0
+gef_fild09,0,0,0,0 monster Poporing 1031,10,0,0,0
+gef_fild09,0,0,0,0 monster Poison Spore 1077,10,0,0,0
+gef_fild09,51,43,0,0 monster Red Mushroom 1085,1,180000,90000,1
+gef_fild09,125,53,0,0 monster Red Mushroom 1085,1,180000,90000,1
+gef_fild09,148,74,0,0 monster Red Mushroom 1085,1,180000,90000,1
+gef_fild09,184,66,0,0 monster Red Mushroom 1085,1,180000,90000,1
+gef_fild09,207,54,0,0 monster Red Mushroom 1085,1,180000,90000,1
+gef_fild09,245,62,0,0 monster Red Mushroom 1085,1,180000,90000,1
+gef_fild09,268,45,0,0 monster Red Mushroom 1085,1,180000,90000,1
+gef_fild09,258,24,0,0 monster Red Mushroom 1085,1,180000,90000,1
+gef_fild09,325,36,0,0 monster Red Mushroom 1085,1,180000,90000,1
+gef_fild09,344,51,0,0 monster Red Mushroom 1085,1,180000,90000,1
+gef_fild09,277,201,5,5 monster Blue Plant 1079,3,900000,450000,1
+
+//==================================================
+// gef_fild10 - Geffen Field
+//==================================================
+gef_fild10,0,0,0,0 boss_monster Orc Lord 1190,1,7200000,600000,0
+gef_fild10,0,0,0,0 monster Orc Warrior 1023,20,0,0,0
+gef_fild10,0,0,0,0 monster Orc Lady 1273,70,0,0,0
+gef_fild10,0,0,0,0 monster Poporing 1031,15,0,0,0
+gef_fild10,0,0,0,0 monster Orc Baby 1686,5,0,0,0
+gef_fild10,46,350,5,5 monster Blue Plant 1079,3,900000,450000,1
+gef_fild10,287,61,5,5 monster Blue Plant 1079,3,900000,450000,1
+gef_fild10,300,253,5,5 monster Green Plant 1080,3,360000,180000,1
+
+//==================================================
+// gef_fild11 - Geffen Field
+//==================================================
+gef_fild11,0,0,0,0 monster Goblin Leader 1299,1,1800000,1200000,0
+gef_fild11,0,0,0,0 monster Goblin 1122,30,0,0,0
+gef_fild11,0,0,0,0 monster Goblin 1123,20,0,0,0
+gef_fild11,0,0,0,0 monster Goblin 1124,20,0,0,0
+gef_fild11,0,0,0,0 monster Goblin 1125,20,0,0,0
+gef_fild11,0,0,0,0 monster Goblin 1126,20,0,0,0
+gef_fild11,0,0,0,0 monster Goblin Archer 1258,20,0,0,0
+gef_fild11,0,0,0,0 monster Poporing 1031,15,0,0,0
+gef_fild11,0,0,0,0 monster Rotar Zairo 1392,10,0,0,0
+gef_fild11,101,277,4,1 monster Black Mushroom 1084,3,360000,180000,1
+gef_fild11,176,288,1,4 monster Black Mushroom 1084,3,360000,180000,1
+gef_fild11,253,357,1,4 monster Black Mushroom 1084,3,360000,180000,1
+gef_fild11,247,249,1,4 monster Black Mushroom 1084,3,360000,180000,1
+gef_fild11,257,209,1,4 monster Black Mushroom 1084,3,360000,180000,1
+gef_fild11,174,240,1,3 monster Black Mushroom 1084,3,360000,180000,1
+gef_fild11,283,100,4,1 monster Black Mushroom 1084,3,360000,180000,1
+
+//==================================================
+// gef_fild12 - Kordt Forest
+//==================================================
+gef_fild12,0,0,0,0 monster Kobold 1133,20,0,0,0
+gef_fild12,0,0,0,0 monster Kobold 1134,30,0,0,0
+gef_fild12,0,0,0,0 monster Kobold 1135,30,0,0,0
+gef_fild12,0,0,0,0 monster Kobold Archer 1282,40,0,0,0
+gef_fild12,0,0,0,0 monster Poporing 1031,20,0,0,0
+gef_fild12,0,0,0,0 monster Kobold Leader 1296,1,1800000,1200000,0
+
+//==================================================
+// gef_fild13 - Britoniah
+//==================================================
+gef_fild13,0,0,0,0 monster Poporing 1031,20,0,0,0
+gef_fild13,0,0,0,0 monster Creamy 1018,40,0,0,0
+gef_fild13,0,0,0,0 monster Ambernite 1094,30,0,0,0
+
+//==================================================
+// gef_fild14 - West Orc Village
+//==================================================
+gef_fild14,0,0,0,0 monster Orc Lady 1273,20,0,0,0
+gef_fild14,0,0,0,0 boss_monster Orc Hero 1087,1,3600000,600000,1
+gef_fild14,0,0,0,0 monster Orc Warrior 1023,10,0,0,0
+gef_fild14,0,0,0,0 monster Orc Archer 1189,30,0,0,0
+gef_fild14,0,0,0,0 monster High Orc 1213,70,0,0,0
diff --git a/npc/pre-re/mobs/fields/gonryun.txt b/npc/pre-re/mobs/fields/gonryun.txt
new file mode 100644
index 000000000..eab2227ef
--- /dev/null
+++ b/npc/pre-re/mobs/fields/gonryun.txt
@@ -0,0 +1,22 @@
+//===== rAthena Script =======================================
+//= Gon Ryun Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.1
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.1 Official kRO 10.1 spawns [Playtester]
+//============================================================
+
+//==================================================
+// gon_fild01 - Gonryun Field
+//==================================================
+gon_fild01,0,0,0,0 monster Baby Leopard 1415,40,600000,300000,0
+gon_fild01,0,0,0,0 monster Zipper Bear 1417,20,0,0,0
+gon_fild01,0,0,0,0 monster Poporing 1031,20,0,0,0
+gon_fild01,0,0,0,0 monster Dumpling Child 1409,30,0,0,0
+gon_fild01,0,0,0,0 monster Hermit Plant 1413,2,630000,330000,0
+gon_fild01,0,0,0,0 monster Green Plant 1080,5,0,0,0
+gon_fild01,0,0,0,0 monster Shining Plant 1083,1,0,0,0
diff --git a/npc/pre-re/mobs/fields/hugel.txt b/npc/pre-re/mobs/fields/hugel.txt
new file mode 100644
index 000000000..0946379ce
--- /dev/null
+++ b/npc/pre-re/mobs/fields/hugel.txt
@@ -0,0 +1,136 @@
+//===== rAthena Script =======================================
+//= Hugel Fields Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.3
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= Spawns for hu_fild05 and hu_fild04, numbers may not be correct [MasterOfMuppets]
+//= 0.2 Fixed Petit ID
+//= 0.3 Updated the spawns using kRO's website as info, [MasterOfMuppets]
+//= thanks to battousai90
+//= 0.4 Updated after Episode 10.4 - Hugel [Poki#3]
+//= Mob quantity is custom.
+//= 1.0 Updated by using Tharis' Homun AI, by Tharis [Vicious]
+//= 1.1 Official X.3 spawns [Playtester]
+//= 1.2 Some 11.1 spawn updates [Playtester]
+//= 1.3 More accurate spawns [Playtester]
+//============================================================
+
+//==================================================
+// hu_fild01 - Hugel Field
+//==================================================
+hu_fild01,0,0,0,0 monster Breeze 1692,5,900000,300000,0
+hu_fild01,0,0,0,0 monster Plasma 1697,5,900000,300000,0
+hu_fild01,0,0,0,0 monster Plasma 1695,5,900000,300000,0
+hu_fild01,0,0,0,0 monster Plasma 1696,5,900000,300000,0
+hu_fild01,0,0,0,0 monster Plasma 1694,5,900000,300000,0
+hu_fild01,0,0,0,0 monster Plasma 1693,5,900000,300000,0
+hu_fild01,0,0,0,0 monster Geographer 1368,30,300000,0,0
+hu_fild01,0,0,0,0 monster Demon Pungus 1378,30,1200000,600000,0
+
+//==================================================
+// hu_fild02 - Hugel Field
+//==================================================
+hu_fild02,0,0,0,0 monster Anopheles 1627,30,0,0,0
+hu_fild02,0,0,0,0 monster Novus 1715,20,0,0,0
+hu_fild02,0,0,0,0 monster Novus 1718,40,0,0,0
+hu_fild02,0,0,0,0 monster Breeze 1692,10,0,0,0
+hu_fild02,0,0,0,0 monster Geographer 1368,10,600000,120000,0
+hu_fild02,0,0,0,0 monster Grove 1687,20,600000,120000,0
+hu_fild02,85,85,53,47 monster Demon Pungus 1378,3,300000,120000,0
+hu_fild02,85,85,37,47 monster Novus 1715,1,300000,120000,0
+hu_fild02,85,85,37,47 monster Novus 1718,1,300000,120000,0
+
+//==================================================
+// hu_fild03 - Hugel Field
+//==================================================
+hu_fild03,0,0,0,0 monster Grove 1687,70,0,0,0
+hu_fild03,0,0,0,0 monster Novus 1715,30,0,0,0
+hu_fild03,0,0,0,0 monster Poporing 1031,20,0,0,0
+hu_fild03,0,0,0,0 monster Thief Bug 1051,10,0,0,0
+hu_fild03,40,157,3,3 monster Red Mushroom 1085,2,300000,0,0
+hu_fild03,219,211,7,5 monster Red Mushroom 1085,3,300000,0,0
+hu_fild03,285,230,5,4 monster Red Mushroom 1085,2,300000,0,0
+hu_fild03,247,118,9,4 monster Red Mushroom 1085,3,300000,0,0
+hu_fild03,96,156,5,5 monster Black Mushroom 1084,3,300000,0,0
+hu_fild03,170,220,5,4 monster Black Mushroom 1084,3,300000,0,0
+hu_fild03,212,328,5,4 monster Black Mushroom 1084,2,300000,0,0
+hu_fild03,231,151,3,3 monster Black Mushroom 1084,2,300000,0,0
+
+//==================================================
+// hu_fild04 - Hugel Field
+//==================================================
+hu_fild04,0,0,0,0 monster Breeze 1692,20,0,0,0
+hu_fild04,0,0,0,0 monster Deleter 1384,10,420000,24000,0
+hu_fild04,0,0,0,0 monster Deleter 1385,10,420000,240000,0
+hu_fild04,0,0,0,0 monster Petite 1155,10,0,0,0
+hu_fild04,0,0,0,0 monster Petite 1156,60,0,0,0
+hu_fild04,0,0,0,0 monster Novus 1715,20,0,0,0
+hu_fild04,0,0,0,0 monster Novus 1718,10,0,0,0
+hu_fild04,0,0,0,0 monster Anopheles 1627,30,0,0,0
+hu_fild04,0,0,0,0 monster Grove 1687,20,0,0,0
+hu_fild04,60,149,35,122 monster Sleeper 1386,7,600000,300000,0
+hu_fild04,0,0,0,0 monster Green Plant 1080,10,0,0,0
+hu_fild04,0,0,0,0 monster Yellow Plant 1081,10,0,0,0
+hu_fild04,206,210,30,18 monster Blue Plant 1079,4,120000,600000,0
+hu_fild04,206,120,10,10 monster Blue Plant 1079,2,120000,600000,0
+
+//==================================================
+// hu_fild05 - Hugel Field
+//==================================================
+hu_fild05,185,208,15,24 monster Anopheles 1627,3,42000,30000,0
+hu_fild05,112,272,62,82 monster Grove 1687,15,0,0,0
+hu_fild05,112,272,62,82 monster Novus 1715,2,0,0,0
+hu_fild05,112,272,62,82 monster Novus 1718,2,0,0,0
+hu_fild05,112,272,62,82 monster Anopheles 1627,10,0,0,0
+hu_fild05,112,272,62,82 monster Mutant Dragonoid 1262,1,24000000,1800000,0
+hu_fild05,276,302,93,60 monster Grove 1687,15,0,0,0
+hu_fild05,276,302,93,60 monster Novus 1715,2,0,0,0
+hu_fild05,276,302,93,60 monster Novus 1718,1,0,0,0
+hu_fild05,276,302,93,60 monster Anopheles 1627,10,0,0,0
+hu_fild05,276,302,93,60 monster Mutant Dragonoid 1262,1,24000000,1800000,0
+hu_fild05,286,144,82,90 monster Grove 1687,15,0,0,0
+hu_fild05,286,144,82,90 monster Novus 1715,2,0,0,0
+hu_fild05,286,144,82,90 monster Novus 1718,2,0,0,0
+hu_fild05,286,144,82,90 monster Anopheles 1627,10,0,0,0
+hu_fild05,286,144,82,90 monster Mutant Dragonoid 1262,1,24000000,1800000,0
+hu_fild05,118,106,80,70 monster Grove 1687,15,0,0,0
+hu_fild05,118,106,80,70 monster Novus 1715,2,0,0,0
+hu_fild05,118,106,80,70 monster Novus 1718,1,0,0,0
+hu_fild05,118,106,80,70 monster Anopheles 1627,10,0,0,0
+hu_fild05,118,106,80,70 monster Mutant Dragonoid 1262,1,24000000,1800000,0
+hu_fild05,0,0,0,0 monster Anopheles 1627,10,0,0,0
+hu_fild05,0,0,0,0 monster Dragon Egg 1721,1,7200000,1800000,0
+hu_fild05,196,196,5,5 monster Dragon Egg 1721,1,7200000,1800000,0
+hu_fild05,340,50,10,10 monster Dragon Egg 1721,1,7200000,1800000,0
+hu_fild05,320,325,5,5 monster Dragon Egg 1721,1,7200000,1800000,0
+
+//==================================================
+// hu_fild06 - Hugel Field
+//==================================================
+hu_fild06,0,0,0,0 monster Holden 1628,50,0,0,0
+hu_fild06,0,0,0,0 monster Caramel 1103,20,0,0,0
+hu_fild06,0,0,0,0 monster Poring 1002,10,0,0,0
+hu_fild06,0,0,0,0 monster Poporing 1031,10,0,0,0
+hu_fild06,0,0,0,0 monster Metaling 1613,10,0,0,0
+hu_fild06,234,251,14,120 monster Green Plant 1080,10,600000,0,0
+hu_fild06,234,251,14,120 monster Yellow Plant 1081,10,600000,0,0
+
+//==================================================
+// hu_fild07 - Hugel Field
+//==================================================
+hu_fild07,0,0,0,0 monster Breeze 1692,10,0,0,0
+hu_fild07,0,0,0,0 monster Deleter 1384,10,420000,24000,0
+hu_fild07,0,0,0,0 monster Deleter 1385,10,420000,240000,0
+hu_fild07,0,0,0,0 monster Petite 1155,60,0,0,0
+hu_fild07,0,0,0,0 monster Petite 1156,20,0,0,0
+hu_fild07,0,0,0,0 monster Novus 1715,10,0,0,0
+hu_fild07,0,0,0,0 monster Novus 1718,10,0,0,0
+hu_fild07,0,0,0,0 monster Anopheles 1627,30,0,0,0
+hu_fild07,0,0,0,0 monster Grove 1687,10,0,0,0
+hu_fild07,0,0,0,0 monster Geographer 1368,20,0,0,0
+hu_fild07,0,0,0,0 monster Demon Pungus 1378,10,0,0,0
+hu_fild07,0,0,0,0 monster Yellow Plant 1081,20,0,0,0
diff --git a/npc/pre-re/mobs/fields/jawaii.txt b/npc/pre-re/mobs/fields/jawaii.txt
new file mode 100644
index 000000000..194a64b84
--- /dev/null
+++ b/npc/pre-re/mobs/fields/jawaii.txt
@@ -0,0 +1,29 @@
+//===== rAthena Script =======================================
+//= Jawaii the honeymoon Island Monster Spawn Script
+//===== By: ==================================================
+//= MasterOfMuppets (1.0)
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.0 First version [MasterOfMuppets]
+//============================================================
+
+//==================================================
+// jawaii - Jawaii, the Honeymoon Island
+//==================================================
+jawaii,207,290,10,10 monster Phen 1158,3,3600000,1800000,0
+jawaii,221,220,30,30 monster Aster 1266,2,3600000,2400000,0
+jawaii,276,163,20,20 monster Aster 1266,1,7200000,3600000,0
+jawaii,221,220,30,30 monster Shellfish 1074,1,4800000,3000000,0
+jawaii,276,163,20,30 monster Shellfish 1074,2,4200000,2400000,0
+
+//==================================================
+// jawaii_in - Inside Jawaii
+//==================================================
+jawaii_in,128,121,1,4 monster Red Mushroom 1085,1,3000000,1200000,0
+jawaii_in,124,76,1,1 monster Black Mushroom 1084,1,3600000,1200000,0
+jawaii_in,72,74,5,1 monster Black Mushroom 1084,2,3000000,1200000,0
+jawaii_in,73,117,4,4 monster Thief Bug 1051,1,5400000,3000000,0
+jawaii_in,83,117,5,5 monster Thief Bug 1051,1,4800000,2400000,0
diff --git a/npc/pre-re/mobs/fields/lighthalzen.txt b/npc/pre-re/mobs/fields/lighthalzen.txt
new file mode 100644
index 000000000..45d9c5f02
--- /dev/null
+++ b/npc/pre-re/mobs/fields/lighthalzen.txt
@@ -0,0 +1,51 @@
+//===== rAthena Script =======================================
+//= Lighthalzen Fields Monster Spawn Script
+//===== By: ==================================================
+//= Muad_Dib, rAthena dev team
+//===== Current Version: =====================================
+//= 1.5
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.0 by Muad_Dib (Prometheus Project)
+//= 1.1 Added Porcellio by MasterOfMuppets
+//= 1.2 Corrected monsters. Many thanks to vicious_pucca for
+//= the information [MasterOfMuppets]
+//= 1.3 Updated acordingly to Episode 10.4 [Poki#3]
+//= 1.4 Fully updated X.4 spawns [Playtester]
+//= 1.5 More accurate spawns [Playtester]
+//============================================================
+
+//==================================================
+// lhz_fild01 - Lighthalzen Field
+//==================================================
+lhz_fild01,0,0,0,0 monster Metaling 1613,70,0,0,0
+lhz_fild01,0,0,0,0 monster Holden 1628,30,0,0,0
+lhz_fild01,0,0,0,0 monster Caramel 1103,20,0,0,0
+lhz_fild01,0,0,0,0 monster Red Plant 1078,10,60000,30000,0
+lhz_fild01,0,0,0,0 monster Yellow Plant 1081,10,60000,30000,0
+lhz_fild01,0,0,0,0 monster Green Plant 1080,10,60000,30000,0
+
+//==================================================
+// lhz_fild02 - Lighthalzen Field (Grim Ripper's Valley)
+//==================================================
+lhz_fild02,0,0,0,0 monster Metaling 1613,50,0,0,0
+lhz_fild02,0,0,0,0 monster Caramel 1103,30,0,0,0
+lhz_fild02,0,0,0,0 monster Horn 1128,10,0,0,0
+lhz_fild02,0,0,0,0 monster Holden 1628,10,0,0,0
+lhz_fild02,0,0,0,0 monster Anopheles 1627,10,0,0,0
+lhz_fild02,0,0,0,0 monster Yellow Plant 1081,15,60000,30000,0
+lhz_fild02,0,0,0,0 monster Green Plant 1080,15,60000,30000,0
+
+//==================================================
+// lhz_fild03 - Lighthalzen Field
+//==================================================
+lhz_fild03,262,233,74,140 monster Stem Worm 1215,50,600000,0,0
+lhz_fild03,262,233,74,140 monster Metaling 1613,20,0,0,0
+lhz_fild03,127,248,45,140 monster Caramel 1103,20,0,0,0
+lhz_fild03,127,248,45,140 monster Horn 1128,10,0,0,0
+lhz_fild03,127,248,45,140 monster Rafflesia 1162,5,0,0,0
+lhz_fild03,0,0,0,0 monster Anopheles 1627,20,0,0,1
+lhz_fild03,0,0,0,0 monster Hill Wind 1680,10,0,0,1
+lhz_fild03,0,0,0,0 monster Red Plant 1078,10,60000,30000,0
+lhz_fild03,0,0,0,0 monster Green Plant 1080,10,60000,30000,0
diff --git a/npc/pre-re/mobs/fields/louyang.txt b/npc/pre-re/mobs/fields/louyang.txt
new file mode 100644
index 000000000..e7254f8dd
--- /dev/null
+++ b/npc/pre-re/mobs/fields/louyang.txt
@@ -0,0 +1,33 @@
+//===== rAthena Script =======================================
+//= Louyang Fields Monster Spawn Script
+//===== By: ==================================================
+//= Evera/Lorri
+//===== Current Version: =====================================
+//= 1.2
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.1 updated by MasterOfMuppets
+//= 1.2 Official kRO 10.1 spawns [Playtester]
+//============================================================
+
+//==================================================
+// lou_fild01 - Louyang Field
+//==================================================
+lou_fild01,224,315,100,50 monster Bigfoot 1060,7,0,0,0
+lou_fild01,203,225,110,35 monster Bigfoot 1060,4,60000,30000,1
+lou_fild01,273,128,75,50 monster Bigfoot 1060,4,0,0,0
+lou_fild01,224,315,100,50 monster Caramel 1103,7,0,0,0
+lou_fild01,203,225,110,35 monster Caramel 1103,7,0,0,0
+lou_fild01,273,128,75,50 monster Caramel 1103,7,0,0,0
+lou_fild01,224,315,100,50 monster Mantis 1139,10,0,0,0
+lou_fild01,203,225,110,35 monster Mantis 1139,10,0,0,0
+lou_fild01,273,128,75,50 monster Mantis 1139,10,0,0,0
+lou_fild01,224,315,100,50 monster Mi Gao 1516,8,0,0,0
+lou_fild01,203,225,110,35 monster Mi Gao 1516,15,60000,30000,1
+lou_fild01,273,128,75,50 monster Mi Gao 1516,7,0,0,0
+lou_fild01,224,315,100,50 monster Anacondaq 1030,2,0,0,0
+lou_fild01,203,225,110,35 monster Anacondaq 1030,1,0,0,0
+lou_fild01,273,128,75,50 monster Anacondaq 1030,2,0,0,0
+lou_fild01,0,0,0,0 monster Black Mushroom 1084,5,0,0,0
+lou_fild01,0,0,0,0 monster Yellow Plant 1081,10,0,0,0
diff --git a/npc/pre-re/mobs/fields/lutie.txt b/npc/pre-re/mobs/fields/lutie.txt
new file mode 100644
index 000000000..7918ed45b
--- /dev/null
+++ b/npc/pre-re/mobs/fields/lutie.txt
@@ -0,0 +1,21 @@
+//===== rAthena Script =======================================
+//= Lutie Fields Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.3
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.1 added Garm Baby according to May 10 patch
+//= 1.2 Official kRO 10.1 spawns [Playtester]
+//= 1.3 Corrected MVP spawn variance. [L0ne_W0lf]
+//============================================================
+
+//==================================================
+// xmas_fild01 - Lutie Field
+//==================================================
+xmas_fild01,0,0,0,0 monster Marin 1242,35,0,0,0
+xmas_fild01,0,0,0,0 monster Sasquatch 1243,20,0,0,0
+xmas_fild01,0,0,0,0 monster Garm Baby 1515,1,1800000,0,0
+xmas_fild01,0,0,0,0 boss_monster Garm 1252,1,7200000,600000,1
diff --git a/npc/pre-re/mobs/fields/manuk.txt b/npc/pre-re/mobs/fields/manuk.txt
new file mode 100644
index 000000000..6bf0ba600
--- /dev/null
+++ b/npc/pre-re/mobs/fields/manuk.txt
@@ -0,0 +1,36 @@
+//===== rAthena Script =======================================
+//= Manuk Fields Monster Spawn Script
+//===== By: ==================================================
+//= alexx, MaC
+//===== Current Version: =====================================
+//= 1.1a
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.0 Official spawn ammounts from Aegis script [alexx]
+//= 1.1 Added 13.2 mob spawn update [scriptor]
+//= 1.1a Corrected fild2 mobs spawning on fild1. (bugreport:4248)
+//============================================================
+
+//============================================================
+// man_fild01 - Manuk Field
+//============================================================
+man_fild01,0,0,0,0 monster Nepenthes 1988,105,0,0,0
+man_fild01,0,0,0,0 monster Hillthion 1989,10,0,0,0
+man_fild01,0,0,0,0 monster Centipede Larva 1999,30,0,0,0
+man_fild01,0,0,0,0 monster Centipede 1987,2,0,0,0
+
+//============================================================
+// man_fild02 - Manuk Field
+//============================================================
+man_fild02,0,0,0,0 monster Bradium Golem 2024,50,0,0,0
+man_fild02,0,0,0,0 monster Centipede 1987,35,0,0,0
+man_fild02,0,0,0,0 monster Tatacho 1986,25,0,0,0
+
+//============================================================
+// man_fild03 - Manuk Field
+//============================================================
+man_fild03,0,0,0,0 monster Hillthion 1989,25,0,0,0
+man_fild03,0,0,0,0 monster Tatacho 1986,25,0,0,0
+man_fild03,0,0,0,0 monster Centipede 1987,25,0,0,0
+man_fild03,0,0,0,0 monster Hardrock Mammoth 1990,1,14400000,0,0
diff --git a/npc/pre-re/mobs/fields/mjolnir.txt b/npc/pre-re/mobs/fields/mjolnir.txt
new file mode 100644
index 000000000..2f6508b8e
--- /dev/null
+++ b/npc/pre-re/mobs/fields/mjolnir.txt
@@ -0,0 +1,250 @@
+//===== rAthena Script =======================================
+//= Mt. Mjolnir Fields Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.2
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.2 Official kRO 10.1 spawns [Playtester]
+//============================================================
+
+//==================================================
+// mjolnir_01 - Mt.Mjolnir
+//==================================================
+mjolnir_01,0,0,0,0 monster Horn 1128,20,0,0,0
+mjolnir_01,0,0,0,0 monster Creamy 1018,20,0,0,0
+mjolnir_01,0,0,0,0 monster Coco 1104,70,0,0,0
+mjolnir_01,0,0,0,0 monster Stainer 1174,20,0,0,0
+mjolnir_01,0,0,0,0 monster Caramel 1103,40,0,0,0
+mjolnir_01,75,85,25,25 monster Shining Plant 1083,1,1800000,900000,1
+mjolnir_01,78,219,25,25 monster Shining Plant 1083,1,1800000,900000,1
+mjolnir_01,75,85,25,25 monster Green Plant 1080,5,180000,90000,1
+mjolnir_01,78,219,25,25 monster Green Plant 1080,5,180000,90000,1
+mjolnir_01,311,271,25,25 monster Blue Plant 1079,5,360000,180000,1
+
+//==================================================
+// mjolnir_02 - Mt.Mjolnir
+//==================================================
+mjolnir_02,0,0,0,0 monster Hornet 1004,30,0,0,0
+mjolnir_02,0,0,0,0 monster Creamy 1018,20,0,0,0
+mjolnir_02,0,0,0,0 monster Petite 1155,50,0,0,0
+mjolnir_02,0,0,0,0 monster Poporing 1031,10,0,0,0
+mjolnir_02,0,0,0,0 monster Flora 1118,30,0,0,0
+mjolnir_02,86,270,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_02,80,211,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_02,86,270,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_02,86,180,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_02,107,128,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_02,79,49,0,0 monster Blue Plant 1079,1,360000,180000,1
+mjolnir_02,133,80,0,0 monster Red Plant 1078,1,180000,90000,1
+mjolnir_02,191,71,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_02,237,55,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_02,292,49,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_02,349,45,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_02,282,101,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_02,325,146,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_02,318,205,0,0 monster Red Plant 1078,1,180000,90000,1
+mjolnir_02,275,199,0,0 monster Blue Plant 1079,1,360000,180000,1
+mjolnir_02,335,301,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_02,312,342,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_02,325,146,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_02,257,292,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_02,204,263,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_02,193,304,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_02,145,282,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_02,156,254,0,0 monster Red Plant 1078,1,180000,90000,1
+mjolnir_02,112,268,0,0 monster Blue Plant 1079,1,360000,180000,1
+mjolnir_02,122,195,0,0 monster Red Plant 1078,1,180000,90000,1
+mjolnir_02,167,160,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_02,325,146,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_02,223,110,0,0 monster Red Plant 1078,1,180000,90000,1
+mjolnir_02,273,74,0,0 monster Blue Plant 1079,1,360000,180000,1
+mjolnir_02,254,155,0,0 monster Red Plant 1078,1,180000,90000,1
+mjolnir_02,243,208,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_02,273,240,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_02,289,276,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_02,188,192,10,10 monster Blue Plant 1079,2,360000,180000,1
+
+//==================================================
+// mjolnir_03 - Mt.Mjolnir
+//==================================================
+mjolnir_03,0,0,0,0 monster Mantis 1139,30,0,0,0
+mjolnir_03,0,0,0,0 monster Creamy 1018,10,0,0,0
+mjolnir_03,0,0,0,0 monster Petite 1156,70,0,0,0
+mjolnir_03,0,0,0,0 monster Poporing 1031,10,0,0,0
+mjolnir_03,0,0,0,0 monster Flora 1118,10,0,0,0
+mjolnir_03,0,0,0,0 monster Argos 1100,20,0,0,0
+mjolnir_03,211,216,10,10 monster Shining Plant 1083,1,1800000,900000,1
+mjolnir_03,280,252,10,10 monster Shining Plant 1083,1,1800000,900000,1
+mjolnir_03,135,94,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_03,199,97,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_03,262,98,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_03,322,144,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_03,356,213,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_03,352,288,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_03,324,355,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_03,255,349,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_03,168,341,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_03,128,319,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_03,77,271,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_03,66,219,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_03,91,161,0,0 monster Green Plant 1080,1,180000,90000,1
+
+//==================================================
+// mjolnir_04 - Mt.Mjolnir
+//==================================================
+mjolnir_04,0,0,0,0 monster Mantis 1139,20,0,0,0
+mjolnir_04,0,0,0,0 monster Hornet 1004,70,0,0,0
+mjolnir_04,0,0,0,0 monster Poporing 1031,10,0,0,0
+mjolnir_04,0,0,0,0 monster Flora 1118,30,0,0,0
+mjolnir_04,0,0,0,0 monster Argiope 1099,20,0,0,0
+mjolnir_04,0,0,0,0 boss_monster Mistress 1059,1,7200000,600000,1
+mjolnir_04,200,200,30,30 monster Shining Plant 1083,3,1800000,900000,1
+mjolnir_04,177,34,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_04,122,28,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_04,76,53,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_04,72,99,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_04,177,34,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_04,43,143,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_04,31,194,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_04,42,252,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_04,64,323,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_04,107,357,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_04,173,369,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_04,286,357,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_04,356,292,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_04,362,201,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_04,332,122,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_04,269,39,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_04,205,33,0,0 monster Green Plant 1080,1,180000,90000,1
+
+//==================================================
+// mjolnir_05 - Mt.Mjolnir
+//==================================================
+mjolnir_05,0,0,0,0 monster Mantis 1139,40,0,0,0
+mjolnir_05,0,0,0,0 monster Poporing 1031,10,0,0,0
+mjolnir_05,0,0,0,0 monster Flora 1118,20,0,0,0
+mjolnir_05,0,0,0,0 monster Argiope 1099,70,0,0,0
+mjolnir_05,0,0,0,0 monster Argos 1100,20,0,0,0
+mjolnir_05,200,240,40,40 monster Blue Plant 1079,3,360000,180000,1
+mjolnir_05,200,240,40,40 monster Shining Plant 1083,1,1800000,900000,1
+mjolnir_05,134,103,20,20 monster Blue Plant 1079,3,360000,180000,1
+mjolnir_05,261,100,20,10 monster Blue Plant 1079,3,360000,180000,1
+mjolnir_05,0,0,0,0 monster Red Plant 1078,10,180000,90000,1
+
+//==================================================
+// mjolnir_06 - Mt.Mjolnir
+//==================================================
+mjolnir_06,0,0,0,0 monster Stainer 1174,70,0,0,0
+mjolnir_06,0,0,0,0 monster Horn 1128,20,0,0,0
+mjolnir_06,0,0,0,0 monster Coco 1104,20,0,0,0
+mjolnir_06,0,0,0,0 monster Poporing 1031,20,0,0,0
+mjolnir_06,0,0,0,0 monster Caramel 1103,30,0,0,0
+mjolnir_06,162,285,0,0 monster Blue Plant 1079,1,360000,180000,1
+mjolnir_06,162,255,0,0 monster Blue Plant 1079,1,360000,180000,1
+mjolnir_06,304,98,0,0 monster Red Mushroom 1085,1,180000,90000,1
+mjolnir_06,279,174,0,0 monster Red Mushroom 1085,1,180000,90000,1
+mjolnir_06,339,168,0,0 monster Red Mushroom 1085,1,180000,90000,1
+mjolnir_06,296,317,0,0 monster Red Mushroom 1085,1,180000,90000,1
+mjolnir_06,45,345,0,0 monster Red Mushroom 1085,1,180000,90000,1
+mjolnir_06,73,339,0,0 monster Red Mushroom 1085,1,180000,90000,1
+mjolnir_06,69,225,0,0 monster Red Mushroom 1085,1,180000,90000,1
+mjolnir_06,55,276,0,0 monster Red Mushroom 1085,1,180000,90000,1
+
+//==================================================
+// mjolnir_07 - Mt.Mjolnir
+//==================================================
+mjolnir_07,0,0,0,0 monster Poison Spore 1077,60,0,0,0
+mjolnir_07,0,0,0,0 monster Ambernite 1094,30,0,0,0
+mjolnir_07,0,0,0,0 monster Coco 1104,20,0,0,0
+mjolnir_07,0,0,0,0 monster Horn 1128,20,0,0,0
+mjolnir_07,0,0,0,0 monster Poporing 1031,20,0,0,0
+mjolnir_07,0,0,0,0 monster Hornet 1004,20,0,0,0
+mjolnir_07,314,133,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_07,299,145,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_07,272,152,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_07,273,181,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_07,245,168,0,0 monster Red Mushroom 1085,1,180000,90000,1
+mjolnir_07,217,185,0,0 monster Red Mushroom 1085,1,180000,90000,1
+mjolnir_07,181,173,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_07,140,179,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_07,97,210,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_07,249,214,0,0 monster Blue Plant 1079,2,360000,180000,1
+
+//==================================================
+// mjolnir_08 - Mt.Mjolnir
+//==================================================
+mjolnir_08,0,0,0,0 monster Mantis 1139,60,0,0,0
+mjolnir_08,0,0,0,0 monster Argiope 1099,30,0,0,0
+mjolnir_08,0,0,0,0 monster Argos 1100,20,0,0,0
+mjolnir_08,0,0,0,0 monster Poporing 1031,20,0,0,0
+mjolnir_08,0,0,0,0 monster Poring 1002,10,0,0,0
+mjolnir_08,280,280,20,40 monster Blue Plant 1079,2,360000,180000,1
+mjolnir_08,207,83,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_08,176,153,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_08,169,204,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_08,207,232,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_08,180,282,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_08,149,328,0,0 monster Green Plant 1080,1,180000,90000,1
+
+//==================================================
+// mjolnir_09 - Mt.Mjolnir
+//==================================================
+mjolnir_09,0,0,0,0 monster Coco 1104,10,0,0,0
+mjolnir_09,0,0,0,0 monster Stainer 1174,20,0,0,0
+mjolnir_09,0,0,0,0 monster Horn 1128,70,0,0,0
+mjolnir_09,0,0,0,0 monster Poporing 1031,20,0,0,0
+mjolnir_09,0,0,0,0 monster Wolf 1013,30,0,0,0
+mjolnir_09,205,352,0,0 monster Red Mushroom 1085,1,180000,90000,1
+mjolnir_09,199,344,0,0 monster Red Mushroom 1085,1,180000,90000,1
+mjolnir_09,210,331,0,0 monster Red Mushroom 1085,1,180000,90000,1
+mjolnir_09,204,321,0,0 monster Red Mushroom 1085,1,180000,90000,1
+mjolnir_09,212,312,0,0 monster Red Mushroom 1085,1,180000,90000,1
+mjolnir_09,198,297,0,0 monster Red Mushroom 1085,1,180000,90000,1
+mjolnir_09,73,122,0,0 monster Red Mushroom 1085,1,180000,90000,1
+mjolnir_09,89,141,0,0 monster Red Mushroom 1085,1,180000,90000,1
+mjolnir_09,120,126,0,0 monster Red Mushroom 1085,1,180000,90000,1
+mjolnir_09,139,84,0,0 monster Red Mushroom 1085,1,180000,90000,1
+mjolnir_09,125,82,0,0 monster Red Mushroom 1085,1,180000,90000,1
+
+//==================================================
+// mjolnir_10 - Mt.Mjolnir
+//==================================================
+mjolnir_10,0,0,0,0 monster Mantis 1139,20,0,0,0
+mjolnir_10,0,0,0,0 monster Flora 1118,30,0,0,0
+mjolnir_10,0,0,0,0 monster Argos 1100,60,0,0,0
+mjolnir_10,0,0,0,0 monster Poporing 1031,20,0,0,0
+mjolnir_10,0,0,0,0 monster Petite 1155,10,0,0,0
+mjolnir_10,123,331,10,10 monster Shining Plant 1083,1,1800000,900000,1
+mjolnir_10,0,0,0,0 monster Green Plant 1080,10,180000,90000,1
+
+//==================================================
+// mjolnir_11 - Mt.Mjolnir
+//==================================================
+mjolnir_11,0,0,0,0 monster Argiope 1099,10,0,0,0
+mjolnir_11,0,0,0,0 monster Mandragora 1020,50,0,0,0
+mjolnir_11,0,0,0,0 monster Flora 1118,60,0,0,0
+mjolnir_11,0,0,0,0 monster Poporing 1031,10,0,0,0
+mjolnir_11,0,0,0,0 monster Thief Bug Male 1054,30,0,0,0
+mjolnir_11,112,276,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_11,159,283,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_11,116,240,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_11,146,215,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_11,145,177,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_11,129,135,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_11,126,93,0,0 monster Blue Plant 1079,1,360000,180000,1
+mjolnir_11,197,123,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_11,198,210,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_11,231,277,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_11,332,327,0,0 monster Blue Plant 1079,1,360000,180000,1
+mjolnir_11,282,300,0,0 monster Green Plant 1080,1,180000,90000,1
+mjolnir_11,295,271,0,0 monster Green Plant 1080,1,180000,90000,1
+
+//==================================================
+// mjolnir_12 - Mt.Mjolnir
+//==================================================
+mjolnir_12,0,0,0,0 monster Stem Worm 1215,20,0,0,0
+mjolnir_12,0,0,0,0 monster Dustiness 1114,50,0,0,0
+mjolnir_12,0,0,0,0 monster Thief Bug Female 1053,20,0,0,0
diff --git a/npc/pre-re/mobs/fields/morocc.txt b/npc/pre-re/mobs/fields/morocc.txt
new file mode 100644
index 000000000..8d3fef338
--- /dev/null
+++ b/npc/pre-re/mobs/fields/morocc.txt
@@ -0,0 +1,325 @@
+//===== rAthena Script =======================================
+//= Morocc Fields Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.7
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.1 Official kRO 10.1 spawns [Playtester]
+//= 1.2 More accurate spawns [Playtester]
+//= 1.3 Added Morroc field 20, 21, and 22 spawns, as [L0ne_W0lf]
+//= 1.4 Updated spawns to reflect episode 12.1. [L0ne_W0lf]
+//= 1.5 Fixed Pheeroni spawn location. [Kisuka]
+//= 1.6 Added Satan MOrroc static spawn. [L0ne_W0lf]
+//= Added 30s spawn time for all Morroc Shadows.
+//= 1.7 Corrected MVP spawn variance. [L0ne_W0lf]
+//============================================================
+
+//==================================================
+// moc_fild01 - Sograt Desert
+//==================================================
+moc_fild01,0,0,0,0 monster Baby Desert Wolf 1107,70,0,0,0
+moc_fild01,0,0,0,0 monster Ant Egg 1097,20,0,0,0
+moc_fild01,0,0,0,0 monster Peco Peco Egg 1047,20,0,0,0
+moc_fild01,0,0,0,0 monster Picky 1049,10,0,0,0
+moc_fild01,0,0,0,0 monster Drops 1113,30,0,0,0
+moc_fild01,0,0,0,0 monster Poring 1002,10,0,0,0
+moc_fild01,194,51,10,10 monster Yellow Plant 1081,10,900000,450000,1
+
+//==================================================
+// moc_fild02 - Sograt Desert
+//==================================================
+moc_fild02,0,0,0,0 monster Peco Peco 1019,70,0,0,0
+moc_fild02,0,0,0,0 monster Ant Egg 1097,10,0,0,0
+moc_fild02,0,0,0,0 monster Peco Peco Egg 1047,40,0,0,0
+moc_fild02,0,0,0,0 monster Picky 1049,10,0,0,0
+moc_fild02,0,0,0,0 monster Drops 1113,30,0,0,0
+moc_fild02,89,315,0,0 monster Yellow Plant 1081,1,180000,90000,1
+moc_fild02,99,261,0,0 monster Yellow Plant 1081,1,180000,90000,1
+moc_fild02,94,195,0,0 monster Yellow Plant 1081,1,180000,90000,1
+moc_fild02,139,222,0,0 monster Yellow Plant 1081,1,180000,90000,1
+moc_fild02,132,307,0,0 monster Yellow Plant 1081,1,180000,90000,1
+moc_fild02,194,294,0,0 monster Yellow Plant 1081,1,180000,90000,1
+moc_fild02,275,241,0,0 monster Yellow Plant 1081,1,180000,90000,1
+moc_fild02,342,267,0,0 monster Green Plant 1080,1,180000,90000,1
+moc_fild02,359,215,0,0 monster Green Plant 1080,1,180000,90000,1
+moc_fild02,313,149,0,0 monster Green Plant 1080,1,180000,90000,1
+moc_fild02,230,62,0,0 monster Green Plant 1080,1,180000,90000,1
+moc_fild02,299,61,0,0 monster Green Plant 1080,1,180000,90000,1
+moc_fild02,353,103,0,0 monster Green Plant 1080,1,180000,90000,1
+moc_fild02,337,35,0,0 monster Green Plant 1080,1,180000,90000,1
+
+//==================================================
+// moc_fild03 - Sograt Desert
+//==================================================
+moc_fild03,0,0,0,0 monster Elder Willow 1033,70,0,0,0
+moc_fild03,0,0,0,0 monster Greatest General 1277,30,0,0,0
+moc_fild03,0,0,0,0 monster Poporing 1031,20,0,0,0
+moc_fild03,0,0,0,0 monster Eggyra 1116,10,0,0,0
+moc_fild03,0,0,0,0 monster Willow 1010,20,0,0,0
+moc_fild03,0,0,0,0 monster Vagabond Wolf 1092,1,1800000,1200000,0
+moc_fild03,77,311,5,5 monster Green Plant 1080,2,180000,90000,1
+moc_fild03,108,199,5,5 monster Green Plant 1080,2,180000,90000,1
+moc_fild03,96,65,5,5 monster Green Plant 1080,2,180000,90000,1
+moc_fild03,216,69,5,5 monster Green Plant 1080,2,180000,90000,1
+moc_fild03,261,161,5,5 monster Green Plant 1080,2,180000,90000,1
+moc_fild03,213,201,5,5 monster Green Plant 1080,2,180000,90000,1
+moc_fild03,200,263,5,5 monster Green Plant 1080,2,180000,90000,1
+
+//==================================================
+// moc_fild04 - Sograt Desert
+//==================================================
+//moc_fild04,0,0,0,0 monster Desert Wolf 1106,20,0,0,0
+//moc_fild04,0,0,0,0 monster Scorpion 1001,30,0,0,0
+//moc_fild04,0,0,0,0 monster Metaller 1058,20,0,0,0
+//moc_fild04,0,0,0,0 monster Magnolia 1138,40,0,0,0
+//moc_fild04,0,0,0,0 monster Ant Egg 1097,10,0,0,0
+//moc_fild04,0,0,0,0 monster Andre 1095,20,0,0,0
+//moc_fild04,0,0,0,0 monster Deniro 1105,20,0,0,0
+//moc_fild04,0,0,0,0 monster Piere 1160,20,0,0,0
+//moc_fild04,313,84,10,10 monster Yellow Plant 1081,10,900000,450000,1
+
+//==================================================
+// moc_fild05 - Sograt Desert
+//==================================================
+//moc_fild05,0,0,0,0 monster Magnolia 1138,30,0,0,0
+//moc_fild05,0,0,0,0 monster Metaller 1058,20,0,0,0
+//moc_fild05,0,0,0,0 monster Golem 1040,70,0,0,0
+//moc_fild05,0,0,0,0 monster Ant Egg 1097,10,0,0,0
+//moc_fild05,208,233,10,10 monster Yellow Plant 1081,5,360000,180000,1
+
+//==================================================
+// moc_fild06 - Sograt Desert
+//==================================================
+//moc_fild06,0,0,0,0 monster Peco Peco 1019,85,0,0,0
+//moc_fild06,0,0,0,0 monster Muka 1055,30,0,0,0
+//moc_fild06,0,0,0,0 monster Condor 1009,50,0,0,0
+//moc_fild06,0,0,0,0 monster Magnolia 1138,10,0,0,0
+//moc_fild06,0,0,0,0 monster Ant Egg 1097,10,0,0,0
+//moc_fild06,193,203,10,10 monster Yellow Plant 1081,10,900000,450000,1
+
+//==================================================
+// moc_fild07 - Sograt Desert
+//==================================================
+moc_fild07,0,0,0,0 monster Drops 1113,70,0,0,0
+moc_fild07,0,0,0,0 monster Peco Peco Egg 1047,50,0,0,0
+moc_fild07,0,0,0,0 monster Picky 1050,30,0,0,0
+moc_fild07,0,0,0,0 monster Picky 1049,30,0,0,0
+moc_fild07,162,333,12,12 monster Yellow Plant 1081,5,360000,180000,1
+
+//==================================================
+// moc_fild08 - Sograt Desert
+//==================================================
+//moc_fild08,0,0,0,0 monster Magnolia 1138,30,0,0,0
+//moc_fild08,0,0,0,0 monster Scorpion 1001,80,0,0,0
+//moc_fild08,0,0,0,0 monster Desert Wolf 1106,30,0,0,0
+//moc_fild08,0,0,0,0 monster Anacondaq 1030,30,0,0,0
+//moc_fild08,0,0,0,0 monster Baby Desert Wolf 1107,10,0,0,0
+//moc_fild08,0,0,0,0 monster Drops 1113,10,0,0,0
+
+//==================================================
+// moc_fild09 - Sograt Desert
+//==================================================
+//moc_fild09,0,0,0,0 monster Desert Wolf 1106,10,0,0,0
+//moc_fild09,0,0,0,0 monster Metaller 1058,70,0,0,0
+//moc_fild09,0,0,0,0 monster Magnolia 1138,50,0,0,0
+//moc_fild09,0,0,0,0 monster Ant Egg 1097,10,0,0,0
+//moc_fild09,0,0,0,0 monster Andre 1095,5,0,0,0
+//moc_fild09,0,0,0,0 monster Deniro 1105,5,0,0,0
+//moc_fild09,0,0,0,0 monster Piere 1160,5,0,0,0
+//moc_fild09,0,0,0,0 monster Ant Egg 1097,10,0,0,0
+//moc_fild09,0,0,0,0 monster Frilldora 1119,6,0,0,0
+//moc_fild09,332,341,5,5 monster Yellow Plant 1081,2,180000,90000,1
+//moc_fild09,240,313,5,5 monster Yellow Plant 1081,2,180000,90000,1
+//moc_fild09,305,62,5,5 monster Yellow Plant 1081,2,180000,90000,1
+//moc_fild09,64,78,5,5 monster Yellow Plant 1081,2,180000,90000,1
+//moc_fild09,54,325,5,5 monster Yellow Plant 1081,2,180000,90000,1
+
+//==================================================
+// moc_fild10 - Sograt Desert
+//==================================================
+//moc_fild10,0,0,0,0 monster Drops 1113,30,0,0,0
+//moc_fild10,0,0,0,0 monster Peco Peco Egg 1047,70,0,0,0
+//moc_fild10,0,0,0,0 monster Picky 1049,50,0,0,0
+//moc_fild10,0,0,0,0 monster Picky 1050,50,0,0,0
+//moc_fild10,0,0,0,0 monster Magnolia 1138,1,0,0,0
+//moc_fild10,0,0,0,0 monster Ant Egg 1097,10,0,0,0
+//moc_fild10,198,150,40,30 monster Yellow Plant 1081,10,180000,90000,1
+//moc_fild10,198,150,40,30 monster Green Plant 1080,5,180000,90000,1
+
+//==================================================
+// moc_fild11 - Sograt Desert
+//==================================================
+moc_fild11,0,0,0,0 monster Hode 1127,10,0,0,0
+moc_fild11,0,0,0,0 monster Golem 1040,70,0,0,0
+moc_fild11,0,0,0,0 monster Andre 1095,10,0,0,0
+moc_fild11,0,0,0,0 monster Deniro 1105,10,0,0,0
+moc_fild11,0,0,0,0 monster Piere 1160,10,0,0,0
+moc_fild11,0,0,0,0 monster Ant Egg 1097,10,0,0,0
+moc_fild11,0,0,0,0 monster Magnolia 1138,20,0,0,0
+moc_fild11,0,0,0,0 monster Muka 1055,20,0,0,0
+moc_fild11,197,216,0,0 monster Shining Plant 1083,1,1800000,900000,1
+
+//==================================================
+// moc_fild12 - Sograt Desert
+//==================================================
+moc_fild12,0,0,0,0 monster Picky 1050,50,0,0,0
+moc_fild12,0,0,0,0 monster Picky 1049,50,0,0,0
+moc_fild12,0,0,0,0 monster Peco Peco Egg 1047,35,0,0,0
+moc_fild12,0,0,0,0 monster Drops 1113,35,0,0,0
+moc_fild12,181,336,40,20 monster Yellow Plant 1081,10,180000,90000,1
+
+//==================================================
+// moc_fild13 - Sograt Desert
+//==================================================
+moc_fild13,0,0,0,0 monster Desert Wolf 1106,30,0,0,0
+moc_fild13,0,0,0,0 monster Anacondaq 1030,75,0,0,0
+moc_fild13,0,0,0,0 monster Boa 1025,30,0,0,0
+moc_fild13,0,0,0,0 monster Side Winder 1037,5,0,0,0
+moc_fild13,0,0,0,0 monster Poporing 1031,20,0,0,0
+moc_fild13,0,0,0,0 monster Drops 1113,10,0,0,0
+moc_fild13,280,99,0,0 monster Red Mushroom 1085,1,180000,90000,1
+moc_fild13,264,64,0,0 monster Red Mushroom 1085,1,180000,90000,1
+moc_fild13,305,91,0,0 monster Red Mushroom 1085,1,180000,90000,1
+moc_fild13,264,136,0,0 monster Red Mushroom 1085,1,180000,90000,1
+moc_fild13,282,155,0,0 monster Red Mushroom 1085,1,180000,90000,1
+moc_fild13,265,197,0,0 monster Red Mushroom 1085,1,180000,90000,1
+moc_fild13,284,227,0,0 monster Red Mushroom 1085,1,180000,90000,1
+moc_fild13,304,244,0,0 monster Red Mushroom 1085,1,180000,90000,1
+moc_fild13,266,289,0,0 monster Red Mushroom 1085,1,180000,90000,1
+moc_fild13,307,307,0,0 monster Red Mushroom 1085,1,180000,90000,1
+moc_fild13,281,333,0,0 monster Red Mushroom 1085,1,180000,90000,1
+moc_fild13,304,333,0,0 monster Red Mushroom 1085,1,180000,90000,1
+moc_fild13,295,358,0,0 monster Red Mushroom 1085,1,180000,90000,1
+moc_fild13,84,329,0,0 monster Yellow Plant 1081,1,180000,90000,1
+moc_fild13,93,301,0,0 monster Yellow Plant 1081,1,180000,90000,1
+moc_fild13,101,297,0,0 monster Yellow Plant 1081,1,180000,90000,1
+moc_fild13,89,92,0,0 monster Yellow Plant 1081,1,180000,90000,1
+moc_fild13,108,150,0,0 monster Yellow Plant 1081,1,180000,90000,1
+moc_fild13,109,168,0,0 monster Yellow Plant 1081,1,180000,90000,1
+moc_fild13,101,185,5,5 monster Yellow Plant 1081,3,180000,90000,1
+moc_fild13,106,258,5,5 monster Yellow Plant 1081,3,180000,90000,1
+moc_fild13,161,273,5,5 monster Yellow Plant 1081,3,180000,90000,1
+
+//==================================================
+// moc_fild14 - Sograt Desert
+//==================================================
+//moc_fild14,0,0,0,0 monster Desert Wolf 1106,80,0,0,0
+//moc_fild14,0,0,0,0 monster Side Winder 1037,20,0,0,0
+//moc_fild14,0,0,0,0 monster Baby Desert Wolf 1107,40,0,0,0
+//moc_fild14,0,0,0,0 monster Magnolia 1138,25,0,0,0
+//moc_fild14,124,93,5,5 monster Shining Plant 1083,1,1800000,900000,1
+//moc_fild14,85,271,0,0 monster Yellow Plant 1081,1,180000,90000,1
+//moc_fild14,165,282,0,0 monster Yellow Plant 1081,1,180000,90000,1
+//moc_fild14,149,333,0,0 monster Yellow Plant 1081,1,180000,90000,1
+//moc_fild14,64,342,0,0 monster Yellow Plant 1081,1,180000,90000,1
+//moc_fild14,160,366,0,0 monster Yellow Plant 1081,1,180000,90000,1
+
+//==================================================
+// moc_fild15 - Sograt Desert
+//==================================================
+//moc_fild15,0,0,0,0 monster Hode 1127,30,0,0,0
+//moc_fild15,0,0,0,0 monster Scorpion 1001,10,0,0,0
+//moc_fild15,0,0,0,0 monster Desert Wolf 1106,10,0,0,0
+//moc_fild15,0,0,0,0 monster Magnolia 1138,25,0,0,0
+//moc_fild15,0,0,0,0 monster Andre 1095,40,0,0,0
+//moc_fild15,0,0,0,0 monster Ant Egg 1097,10,0,0,0
+//moc_fild15,0,0,0,0 monster Phreeoni 1159,1,7200000,600000,1
+//moc_fild15,40,126,0,0 monster Yellow Plant 1081,1,180000,90000,1
+//moc_fild15,57,39,0,0 monster Yellow Plant 1081,1,180000,90000,1
+//moc_fild15,46,250,0,0 monster Yellow Plant 1081,1,180000,90000,1
+//moc_fild15,104,347,0,0 monster Yellow Plant 1081,1,180000,90000,1
+//moc_fild15,195,373,0,0 monster Yellow Plant 1081,1,180000,90000,1
+//moc_fild15,341,365,0,0 monster Yellow Plant 1081,1,180000,90000,1
+//moc_fild15,353,230,0,0 monster Yellow Plant 1081,1,180000,90000,1
+//moc_fild15,341,164,0,0 monster Yellow Plant 1081,1,180000,90000,1
+//moc_fild15,370,85,0,0 monster Yellow Plant 1081,1,180000,90000,1
+//moc_fild15,158,144,0,0 monster Yellow Plant 1081,1,180000,90000,1
+//moc_fild15,232,126,0,0 monster Yellow Plant 1081,1,180000,90000,1
+//moc_fild15,294,74,0,0 monster Yellow Plant 1081,1,180000,90000,1
+
+//==================================================
+// moc_fild16 - Sograt Desert
+//==================================================
+moc_fild16,0,0,0,0 monster Sandman 1165,70,0,0,0
+moc_fild16,0,0,0,0 monster Hode 1127,30,0,0,0
+moc_fild16,0,0,0,0 monster Magnolia 1138,25,0,0,0
+moc_fild16,0,0,0,0 monster Andre 1095,10,0,0,0
+moc_fild16,0,0,0,0 monster Deniro 1105,20,0,0,0
+moc_fild16,0,0,0,0 monster Ant Egg 1097,10,0,0,0
+
+//==================================================
+// moc_fild17 - Sograt Desert
+//==================================================
+moc_fild17,0,0,0,0 monster Hode 1127,100,0,0,0
+moc_fild17,0,0,0,0 monster Steel Chonchon 1042,30,0,0,0
+moc_fild17,0,0,0,0 monster Magnolia 1138,15,0,0,0
+moc_fild17,0,0,0,0 monster Frilldora 1119,25,0,0,0
+moc_fild17,0,0,0,0 monster Ant Egg 1097,10,0,0,0
+moc_fild17,0,0,0,0 monster Scorpion 1001,5,0,0,0
+moc_fild17,0,0,0,0 boss_monster Phreeoni 1159,1,7200000,600000,1
+moc_fild17,40,258,0,0 monster Yellow Plant 1081,1,180000,90000,1
+moc_fild17,144,151,0,0 monster Yellow Plant 1081,1,180000,90000,1
+moc_fild17,243,138,0,0 monster Yellow Plant 1081,1,180000,90000,1
+moc_fild17,270,106,0,0 monster Blue Plant 1079,1,180000,90000,1
+moc_fild17,335,191,0,0 monster Yellow Plant 1081,1,180000,90000,1
+moc_fild17,347,224,0,0 monster Yellow Plant 1081,1,180000,90000,1
+moc_fild17,359,258,0,0 monster Yellow Plant 1081,1,180000,90000,1
+
+//==================================================
+// moc_fild18 - Sograt Desert
+//==================================================
+moc_fild18,0,0,0,0 monster Steel Chonchon 1042,70,0,0,0
+moc_fild18,0,0,0,0 monster Chonchon 1011,40,0,0,0
+moc_fild18,0,0,0,0 monster Muka 1055,80,0,0,0
+moc_fild18,0,0,0,0 monster Metaller 1058,10,0,0,0
+moc_fild18,0,0,0,0 monster Ant Egg 1097,5,0,0,0
+moc_fild18,0,0,0,0 monster Dragon Fly 1091,1,3600000,1800000,1
+moc_fild18,0,0,0,0 monster Hunter Fly 1035,1,7200000,3600000,1
+moc_fild18,143,352,0,0 monster Yellow Plant 1081,1,180000,90000,1
+moc_fild18,72,333,0,0 monster Yellow Plant 1081,1,180000,90000,1
+moc_fild18,119,285,0,0 monster Yellow Plant 1081,1,180000,90000,1
+moc_fild18,71,210,0,0 monster Yellow Plant 1081,1,180000,90000,1
+moc_fild18,135,119,0,0 monster Yellow Plant 1081,1,180000,90000,1
+moc_fild18,230,144,0,0 monster Yellow Plant 1081,1,180000,90000,1
+moc_fild18,325,207,0,0 monster Yellow Plant 1081,1,180000,90000,1
+moc_fild18,325,272,0,0 monster Yellow Plant 1081,1,180000,90000,1
+
+//==================================================
+// moc_fild20 - Dimensional Gorge
+//==================================================
+moc_fild20,0,0,0,0 monster Ant Egg 1097,10,0,0,0
+moc_fild20,0,0,0,0 monster Andre 1095,20,0,0,0
+moc_fild20,0,0,0,0 monster Deniro 1105,20,0,0,0
+moc_fild20,0,0,0,0 monster Piere 1160,20,0,0,0
+moc_fild20,0,0,0,0 monster Metaller 1058,20,0,0,0
+moc_fild20,0,0,0,0 monster Drops 1113,30,0,0,0
+moc_fild20,0,0,0,0 monster Scorpion 1001,70,0,0,0
+moc_fild20,0,0,0,0 monster Picky 1050,50,0,0,0
+moc_fild20,0,0,0,0 monster Picky 1049,50,0,0,0
+moc_fild20,0,0,0,0 monster Morroc's Shadow 1918,1,30000,0,0
+moc_fild20,0,0,0,0 monster Morroc's Shadow 1919,1,30000,0,0
+moc_fild20,0,0,0,0 monster Morroc's Shadow 1920,1,30000,0,0
+moc_fild20,0,0,0,0 monster Morroc's Shadow 1921,1,30000,0,0
+
+//==================================================
+// moc_fild21 - Dimensional Gorge
+//==================================================
+moc_fild21,0,0,0,0 monster Golem 1040,61,0,0,0
+moc_fild21,0,0,0,0 monster Stalactic Golem 1278,46,0,0,0
+moc_fild21,0,0,0,0 monster Lava Golem 1366,46,0,0,0
+moc_fild21,0,0,0,0 monster Morroc's Shadow 1918,46,30000,0,0
+moc_fild21,0,0,0,0 monster Morroc's Shadow 1919,46,30000,0,0
+moc_fild21,0,0,0,0 monster Morroc's Shadow 1920,46,30000,0,0
+moc_fild21,0,0,0,0 monster Morroc's Shadow 1921,34,30000,0,0
+
+//==================================================
+// moc_fild22 - Dimensional Gorge
+//==================================================
+moc_fild22,0,0,0,0 monster Morroc's Shadow 1918,60,30000,0,0
+moc_fild22,0,0,0,0 monster Morroc's Shadow 1919,60,30000,0,0
+moc_fild22,0,0,0,0 monster Morroc's Shadow 1920,60,30000,0,0
+moc_fild22,0,0,0,0 monster Morroc's Shadow 1921,25,30000,0,0
+moc_fild22,0,0,0,0 monster Wounded Satan Morroc 1917,1,43200000,3600000,1
diff --git a/npc/pre-re/mobs/fields/moscovia.txt b/npc/pre-re/mobs/fields/moscovia.txt
new file mode 100644
index 000000000..d693e79d8
--- /dev/null
+++ b/npc/pre-re/mobs/fields/moscovia.txt
@@ -0,0 +1,20 @@
+//===== rAthena Script =======================================
+//= Moscovia Fields Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.0 Added spawns [Playtester]
+
+//==================================================
+// mosk_fild02 - Moscovia Field
+//==================================================
+mosk_fild02,0,0,0,0 monster Bigfoot 1060,40,0,0,0
+mosk_fild02,0,0,0,0 monster Caramel 1103,20,0,0,0
+mosk_fild02,0,0,0,0 monster Mantis 1139,30,0,0,0
+mosk_fild02,0,0,0,0 monster Poring 1002,10,0,0,0
+mosk_fild02,0,0,0,0 monster Yellow Plant 1081,5,0,0,0
+mosk_fild02,0,0,0,0 monster White Plant 1082,5,10000,0,0
diff --git a/npc/pre-re/mobs/fields/niflheim.txt b/npc/pre-re/mobs/fields/niflheim.txt
new file mode 100644
index 000000000..737d6aa53
--- /dev/null
+++ b/npc/pre-re/mobs/fields/niflheim.txt
@@ -0,0 +1,196 @@
+//===== rAthena Script =======================================
+//= Niflheim Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.6
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.2 updated [shadow],
+//= 1.3 many changes and wrong LOD ID 5373 -> 1373 [Lupus]
+//= 1.4 removed yggdrasil from this file [DracoRPG]
+//= 1.4a Readded Lord of Death, why was it removed anyway? [MasterOfMuppets]
+//= 1.5 Implemented the town invasion. [MasterOfMuppets]
+//= 1.6 Official kRO 10.1 spawns [Playtester]
+//============================================================
+
+//==================================================
+// nif_fild01 - Skellington, a Solitary Village in Niflheim
+//==================================================
+nif_fild01,0,0,0,0 monster Disguise 1506,20,0,0,0
+nif_fild01,0,0,0,0 monster Disguise 1506,30,300000,120000,0
+nif_fild01,227,253,20,20 monster Dullahan 1504,7,1800000,1200000,0
+nif_fild01,0,0,0,0 monster Dullahan 1504,13,0,0,0
+nif_fild01,0,0,0,0 monster Gibbet 1503,10,0,0,0
+nif_fild01,0,0,0,0 monster Heirozoist 1510,10,0,0,0
+nif_fild01,0,0,0,0 monster Quve 1508,30,0,0,0
+
+//==================================================
+// nif_fild02 - Valley of Gyoll
+//==================================================
+nif_fild02,366,236,15,15 monster Lude 1509,10,360000,150000,0
+nif_fild02,356,139,10,10 monster Bloody Murderer 1507,1,1200000,600000,0
+nif_fild02,144,232,10,10 monster Bloody Murderer 1507,1,1200000,600000,0
+nif_fild02,118,282,15,15 monster Bloody Murderer 1507,1,1200000,600000,0
+nif_fild02,62,327,15,15 monster Bloody Murderer 1507,1,1200000,600000,0
+nif_fild02,0,0,0,0 monster Bloody Murderer 1507,7,0,0,0
+nif_fild02,114,136,15,15 monster Loli Ruri 1505,2,1200000,600000,0
+nif_fild02,52,115,10,10 monster Heirozoist 1510,4,1200000,600000,0
+nif_fild02,84,276,15,15 monster Gibbet 1503,5,1200000,600000,0
+nif_fild02,352,273,15,15 monster Gibbet 1503,5,300000,150000,0
+nif_fild02,0,0,0,0 monster Loli Ruri 1505,19,120000,60000,0
+nif_fild02,352,273,15,15 monster Dullahan 1504,5,600000,300000,0
+nif_fild02,0,0,0,0 monster Dullahan 1504,5,0,0,0
+nif_fild02,0,0,0,0 monster Heirozoist 1510,6,0,0,0
+nif_fild02,0,0,0,0 monster Gibbet 1503,10,0,0,0
+
+//==================================================
+// niflheim - Niflheim, Realm of the Dead
+//==================================================
+niflheim,0,0,0,0 monster Dullahan 1504,5,1800000,1200000,0
+niflheim,0,0,0,0 monster Gibbet 1503,10,1200000,600000,0
+niflheim,0,0,0,0 monster Heirozoist 1510,10,1200000,600000,0
+niflheim,0,0,0,0 monster Quve 1508,20,300000,150000,0
+niflheim,0,0,0,0 monster Lude 1509,20,300000,150000,0
+
+niflheim,1,1,0 script NifInvasion -1,{
+OnInit:
+
+ while(1)
+ {
+ initnpctimer;
+ end;
+
+OnTimer7980000:
+ stopnpctimer;
+ switch(rand(6))
+ {
+
+ case 0:
+ monster "niflheim",327,193,"Lord Of Death",1373,1,"NifInvasion::OnLoDDead";
+ monster "niflheim",330,193,"Bloody Murderer",1507,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",324,193,"Bloody Murderer",1507,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",327,196,"Bloody Murderer",1507,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",327,190,"Bloody Murderer",1507,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",324,190,"Loli Ruri",1505,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",330,190,"Loli Ruri",1505,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",324,196,"Loli Ruri",1505,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",330,196,"Loli Ruri",1505,1,"NifInvasion::OnInvasionMonsters";
+ break;
+
+ case 1:
+ monster "niflheim",337,252,"Lord Of Death",1373,1,"NifInvasion::OnLoDDead";
+ monster "niflheim",337,255,"Bloody Murderer",1507,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",337,249,"Bloody Murderer",1507,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",334,252,"Bloody Murderer",1507,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",340,252,"Bloody Murderer",1507,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",334,249,"Loli Ruri",1505,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",340,255,"Loli Ruri",1505,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",340,249,"Loli Ruri",1505,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",334,255,"Loli Ruri",1505,1,"NifInvasion::OnInvasionMonsters";
+ break;
+
+ case 2:
+ monster "niflheim",190,185,"Lord Of Death",1373,1,"NifInvasion::OnLoDDead";
+ monster "niflheim",190,188,"Bloody Murderer",1507,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",190,182,"Bloody Murderer",1507,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",193,185,"Bloody Murderer",1507,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",187,185,"Bloody Murderer",1507,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",187,182,"Loli Ruri",1505,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",193,182,"Loli Ruri",1505,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",193,188,"Loli Ruri",1505,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",187,188,"Loli Ruri",1505,1,"NifInvasion::OnInvasionMonsters";
+ break;
+
+ case 3:
+ monster "niflheim",131,138,"Lord Of Death",1373,1,"NifInvasion::OnLoDDead";
+ monster "niflheim",131,141,"Bloody Murderer",1507,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",131,135,"Bloody Murderer",1507,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",128,138,"Bloody Murderer",1507,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",134,138,"Bloody Murderer",1507,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",134,141,"Loli Ruri",1505,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",128,141,"Loli Ruri",1505,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",134,135,"Loli Ruri",1505,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",128,135,"Loli Ruri",1505,1,"NifInvasion::OnInvasionMonsters";
+ break;
+
+ case 4:
+ monster "niflheim",311,64,"Lord Of Death",1373,1,"NifInvasion::OnLoDDead";
+ monster "niflheim",311,67,"Bloody Murderer",1507,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",311,61,"Bloody Murderer",1507,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",308,64,"Bloody Murderer",1507,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",314,64,"Bloody Murderer",1507,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",314,61,"Loli Ruri",1505,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",314,67,"Loli Ruri",1505,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",308,67,"Loli Ruri",1505,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",308,61,"Loli Ruri",1505,1,"NifInvasion::OnInvasionMonsters";
+ break;
+
+ case 5:
+ monster "niflheim",238,131,"Lord Of Death",1373,1,"NifInvasion::OnLoDDead";
+ monster "niflheim",238,134,"Bloody Murderer",1507,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",238,128,"Bloody Murderer",1507,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",235,131,"Bloody Murderer",1507,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",241,131,"Bloody Murderer",1507,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",235,128,"Loli Ruri",1505,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",235,134,"Loli Ruri",1505,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",241,128,"Loli Ruri",1505,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",241,134,"Loli Ruri",1505,1,"NifInvasion::OnInvasionMonsters";
+ break;
+
+ case 6:
+ monster "niflheim",86,219,"Lord Of Death",1373,1,"NifInvasion::OnLoDDead";
+ monster "niflheim",86,222,"Bloody Murderer",1507,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",86,216,"Bloody Murderer",1507,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",89,219,"Bloody Murderer",1507,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",83,219,"Bloody Murderer",1507,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",89,222,"Loli Ruri",1505,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",89,216,"Loli Ruri",1505,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",83,222,"Loli Ruri",1505,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",83,216,"Loli Ruri",1505,1,"NifInvasion::OnInvasionMonsters";
+ break;
+
+ }
+ monster "niflheim",154,95,"Disguise",1506,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",115,65,"Disguise",1506,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",330,195,"Disguise",1506,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",151,83,"Disguise",1506,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",285,245,"Disguise",1506,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",235,135,"Disguise",1506,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",265,48,"Disguise",1506,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",186,139,"Disguise",1506,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",166,267,"Disguise",1506,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",82,202,"Disguise",1506,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",219,44,"Disguise",1506,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",287,44,"Disguise",1506,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",275,165,"Disguise",1506,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",138,204,"Disguise",1506,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",299,39,"Disguise",1506,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",31,154,"Disguise",1506,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",154,96,"Dullahan",1504,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",116,65,"Dullahan",1504,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",151,84,"Dullahan",1504,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",286,245,"Dullahan",1504,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",330,196,"Dullahan",1504,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",236,135,"Dullahan",1504,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",165,49,"Dullahan",1504,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",167,267,"Dullahan",1504,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",82,203,"Dullahan",1504,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",220,44,"Dullahan",1504,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",287,45,"Dullahan",1504,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",287,44,"Dullahan",1504,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",276,166,"Dullahan",1504,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",139,205,"Dullahan",1504,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",300,39,"Dullahan",1504,1,"NifInvasion::OnInvasionMonsters";
+ monster "niflheim",31,155,"Dullahan",1504,1,"NifInvasion::OnInvasionMonsters";
+ end;
+
+OnInvasionMonsters:
+ end;
+
+OnLoDDead:
+ killmonster "niflheim","NifInvasion::OnInvasionMonsters";
+ }
+
+}
diff --git a/npc/pre-re/mobs/fields/payon.txt b/npc/pre-re/mobs/fields/payon.txt
new file mode 100644
index 000000000..ba6688047
--- /dev/null
+++ b/npc/pre-re/mobs/fields/payon.txt
@@ -0,0 +1,147 @@
+//===== rAthena Script =======================================
+//= Payon Fields Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.4
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.1 Official kRO 10.1 spawns [Playtester]
+//= 1.2 Some 11.1 spawn changes [Playtester]
+//= 1.3 More accurate spawns [Playtester]
+//= 1.4 Corrected MVP spawn variance. [L0ne_W0lf]
+//============================================================
+
+//==================================================
+// pay_fild01 - Payon Forest
+//==================================================
+pay_fild01,0,0,0,0 monster Willow 1010,10,0,0,0
+pay_fild01,0,0,0,0 monster Poporing 1031,10,0,0,0
+pay_fild01,0,0,0,0 monster Poring 1002,10,0,0,0
+pay_fild01,0,0,0,0 monster Spore 1014,100,0,0,0
+pay_fild01,340,89,0,0 monster Black Mushroom 1084,1,180000,90000,1
+pay_fild01,336,116,0,0 monster Black Mushroom 1084,1,180000,90000,1
+pay_fild01,231,258,0,0 monster Black Mushroom 1084,1,180000,90000,1
+pay_fild01,215,323,0,0 monster Black Mushroom 1084,1,180000,90000,1
+pay_fild01,340,89,0,0 monster Black Mushroom 1084,1,180000,90000,1
+pay_fild01,225,310,0,0 monster Black Mushroom 1084,1,180000,90000,1
+pay_fild01,129,288,0,0 monster Black Mushroom 1084,1,180000,90000,1
+pay_fild01,75,269,0,0 monster Black Mushroom 1084,1,180000,90000,1
+pay_fild01,80,226,0,0 monster Black Mushroom 1084,1,180000,90000,1
+pay_fild01,89,177,0,0 monster Black Mushroom 1084,1,180000,90000,1
+pay_fild01,95,85,0,0 monster Black Mushroom 1084,1,180000,90000,1
+pay_fild01,57,85,0,0 monster Black Mushroom 1084,1,180000,90000,1
+pay_fild01,64,113,0,0 monster Black Mushroom 1084,1,180000,90000,1
+pay_fild01,64,190,0,0 monster Black Mushroom 1084,1,180000,90000,1
+pay_fild01,70,246,0,0 monster Black Mushroom 1084,1,180000,90000,1
+pay_fild01,0,0,0,0 monster Green Plant 1080,5,180000,90000,1
+
+//==================================================
+// pay_fild02 - Payon Forest
+//==================================================
+pay_fild02,0,0,0,0 monster Boa 1025,30,0,0,0
+pay_fild02,0,0,0,0 monster Wolf 1013,70,0,0,0
+pay_fild02,0,0,0,0 monster Spore 1014,10,0,0,0
+pay_fild02,0,0,0,0 monster Poporing 1031,20,0,0,0
+pay_fild02,105,256,10,10 monster Green Plant 1080,4,360000,180000,1
+pay_fild02,105,256,10,10 monster Red Mushroom 1085,4,360000,180000,1
+
+//==================================================
+// pay_fild03 - Payon Forest
+//==================================================
+pay_fild03,0,0,0,0 monster Poring 1002,30,0,0,0
+pay_fild03,0,0,0,0 monster Willow 1010,30,0,0,0
+pay_fild03,0,0,0,0 monster Pupa 1008,50,0,0,0
+pay_fild03,0,0,0,0 monster Lunatic 1063,50,0,0,0
+pay_fild03,153,216,10,10 monster Red Mushroom 1085,6,900000,450000,1
+pay_fild03,372,64,15,15 monster Green Plant 1080,4,180000,90000,1
+
+//==================================================
+// pay_fild04 - Sograt Desert
+//==================================================
+pay_fild04,0,0,0,0 monster Poring 1002,40,0,0,0
+pay_fild04,0,0,0,0 monster Drops 1113,40,0,0,0
+pay_fild04,0,0,0,0 monster Poporing 1031,40,0,0,0
+pay_fild04,0,0,0,0 monster Marin 1242,10,0,0,0
+pay_fild04,0,0,0,0 monster Ghostring 1120,1,3600000,1800000,1
+pay_fild04,0,0,0,0 monster Mastering 1090,1,3600000,1800000,1
+pay_fild04,0,0,0,0 monster Angeling 1096,1,3600000,1800000,1
+pay_fild04,0,0,0,0 monster Deviling 1582,1,7200000,3600000,1
+pay_fild04,346,335,5,5 monster Shining Plant 1083,1,1800000,900000,1
+pay_fild04,254,193,10,10 monster Green Plant 1080,5,360000,180000,1
+
+//==================================================
+// pay_fild05 - Payon Forest
+//==================================================
+pay_fild05,0,0,0,0 monster Dragon Tail 1321,5,0,0,0
+pay_fild05,0,0,0,0 monster Poporing 1031,20,0,0,0
+pay_fild05,0,0,0,0 monster Poison Spore 1077,65,0,0,0
+pay_fild05,95,147,5,5 monster Green Plant 1080,4,900000,450000,1
+pay_fild05,86,90,5,5 monster Green Plant 1080,4,900000,450000,1
+
+//==================================================
+// pay_fild06 - Payon Forest
+//==================================================
+pay_fild06,0,0,0,0 monster Wormtail 1024,90,0,0,0
+pay_fild06,0,0,0,0 monster Spore 1014,20,0,0,0
+pay_fild06,0,0,0,0 monster Poporing 1031,20,0,0,0
+pay_fild06,0,0,0,0 monster Thief Bug Female 1053,40,0,0,0
+pay_fild06,211,191,2,10 monster Red Mushroom 1085,8,180000,90000,1
+pay_fild06,268,155,20,20 monster Green Plant 1080,10,360000,180000,1
+pay_fild06,268,155,20,20 monster Shining Plant 1083,1,1800000,900000,1
+
+//==================================================
+// pay_fild07 - Payon Forest
+//==================================================
+pay_fild07,0,0,0,0 monster Elder Willow 1033,70,0,0,0
+pay_fild07,0,0,0,0 monster Eggyra 1116,40,0,0,0
+pay_fild07,0,0,0,0 monster Poporing 1031,20,0,0,0
+pay_fild07,0,0,0,0 monster Willow 1010,20,0,0,0
+pay_fild07,0,0,0,0 monster Bigfoot 1060,30,0,0,0
+pay_fild07,171,331,20,20 monster Green Plant 1080,8,900000,450000,1
+
+//==================================================
+// pay_fild08 - Payon Forest
+//==================================================
+pay_fild08,0,0,0,0 monster Poring 1002,30,0,0,0
+pay_fild08,0,0,0,0 monster Willow 1010,50,0,0,0
+pay_fild08,0,0,0,0 monster Pupa 1008,20,0,0,0
+pay_fild08,0,0,0,0 monster Spore 1014,70,0,0,0
+pay_fild08,0,0,0,0 monster Green Plant 1080,10,60000,30000,1
+pay_fild08,143,156,40,40 monster Shining Plant 1083,1,3600000,1800000,1
+
+//==================================================
+// pay_fild09 - Payon Forest
+//==================================================
+pay_fild09,0,0,0,0 monster Poporing 1031,20,0,0,0
+pay_fild09,0,0,0,0 monster Smokie 1056,80,0,0,0
+pay_fild09,0,0,0,0 monster Bigfoot 1060,70,0,0,0
+pay_fild09,198,217,30,30 monster Green Plant 1080,10,360000,180000,0
+pay_fild09,198,217,30,30 monster Shining Plant 1083,1,1800000,900000,1
+
+//==================================================
+// pay_fild10 - Payon Forest
+//==================================================
+pay_fild10,0,0,0,0 monster Greatest General 1277,65,0,0,0
+pay_fild10,0,0,0,0 monster Dokebi 1110,70,0,0,0
+pay_fild10,0,0,0,0 monster Poison Spore 1077,20,0,0,0
+pay_fild10,0,0,0,0 monster Nine Tail 1180,2,0,0,0
+pay_fild10,0,0,0,0 monster Nine Tail 1180,1,1800000,900000,1
+pay_fild10,0,0,0,0 monster Nine Tail 1180,1,900000,450000,1
+pay_fild10,213,157,10,10 monster Green Plant 1080,5,360000,180000,1
+pay_fild10,281,307,10,10 monster Green Plant 1080,5,360000,180000,1
+pay_fild10,66,332,10,10 monster Green Plant 1080,5,360000,180000,1
+pay_fild10,213,157,10,10 monster Blue Plant 1079,1,360000,180000,1
+pay_fild10,281,307,10,10 monster Blue Plant 1079,1,360000,180000,1
+pay_fild10,66,332,10,10 monster Blue Plant 1079,1,360000,180000,1
+
+//==================================================
+// pay_fild11 - Payon Forest
+//==================================================
+pay_fild11,0,0,0,0 monster Greatest General 1277,30,0,0,0
+pay_fild11,0,0,0,0 monster Nine Tail 1180,60,180000,0,0
+pay_fild11,0,0,0,0 monster Dragon Tail 1321,50,180000,0,0
+pay_fild11,0,0,0,0 boss_monster Eddga 1115,1,7200000,600000,1
+pay_fild11,241,162,5,5 monster Red Mushroom 1085,3,360000,180000,1
+pay_fild11,66,293,5,5 monster Red Mushroom 1085,3,360000,180000,1
diff --git a/npc/pre-re/mobs/fields/prontera.txt b/npc/pre-re/mobs/fields/prontera.txt
new file mode 100644
index 000000000..f00556135
--- /dev/null
+++ b/npc/pre-re/mobs/fields/prontera.txt
@@ -0,0 +1,141 @@
+//===== rAthena Script =======================================
+//= Prontera Fields Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.4
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.2 fixed some map name typos [Lupus]
+//= 1.3 Official kRO 10.1 spawns [Playtester]
+//= 1.4 More accurate spawns [Playtester]
+//============================================================
+
+//==================================================
+// prt_fild00 - Prontera Field
+//==================================================
+prt_fild00,0,0,0,0 monster Creamy 1018,10,0,0,0
+prt_fild00,0,0,0,0 monster Fabre 1007,20,0,0,0
+prt_fild00,0,0,0,0 monster Pupa 1008,30,0,0,0
+prt_fild00,0,0,0,0 monster Lunatic 1063,30,0,0,0
+prt_fild00,0,0,0,0 monster Poring 1002,40,0,0,0
+prt_fild00,0,0,0,0 monster Hornet 1004,70,0,0,0
+prt_fild00,227,212,0,0 monster Shining Plant 1083,1,1800000,900000,1
+prt_fild00,285,138,10,10 monster Green Plant 1080,5,360000,180000,1
+
+//==================================================
+// prt_fild01 - Prontera Field
+//==================================================
+prt_fild01,0,0,0,0 monster Thief Bug 1051,30,0,0,0
+prt_fild01,0,0,0,0 monster Fabre 1007,20,0,0,0
+prt_fild01,0,0,0,0 monster Pupa 1008,10,0,0,0
+prt_fild01,0,0,0,0 monster Lunatic 1063,80,0,0,0
+prt_fild01,0,0,0,0 monster Poring 1002,30,0,0,0
+prt_fild01,199,266,3,3 monster Green Plant 1080,3,360000,180000,1
+prt_fild01,199,266,3,3 monster Blue Plant 1079,1,900000,450000,1
+
+//==================================================
+// prt_fild02 - Prontera Field
+//==================================================
+prt_fild02,0,0,0,0 monster Mandragora 1020,70,0,0,0
+prt_fild02,0,0,0,0 monster Fabre 1007,50,0,0,0
+prt_fild02,0,0,0,0 monster Pupa 1008,20,0,0,0
+prt_fild02,0,0,0,0 monster Lunatic 1063,10,0,0,0
+prt_fild02,0,0,0,0 monster Poring 1002,30,0,0,0
+prt_fild02,0,0,0,0 monster Eclipse 1093,1,1800000,1200000,0
+prt_fild02,339,309,3,3 monster Shining Plant 1083,1,1800000,900000,1
+prt_fild02,0,0,0,0 monster Shining Plant 1083,2,1800000,900000,1
+
+//==================================================
+// prt_fild03 - Prontera Field
+//==================================================
+prt_fild03,0,0,0,0 monster Yoyo 1057,80,0,0,0
+prt_fild03,0,0,0,0 monster Smokie 1056,40,0,0,0
+prt_fild03,0,0,0,0 monster Choco 1214,1,0,0,0
+prt_fild03,0,0,0,0 monster Poporing 1031,10,0,0,0
+prt_fild03,296,58,15,15 monster Green Plant 1080,5,180000,90000,1
+prt_fild03,296,58,15,15 monster Blue Plant 1079,2,900000,450000,1
+prt_fild03,307,75,5,5 monster Green Plant 1080,5,360000,180000,1
+prt_fild03,0,0,0,0 monster Green Plant 1080,5,360000,180000,1
+prt_fild03,148,107,5,5 monster Green Plant 1080,5,360000,180000,1
+
+//==================================================
+// prt_fild04 - Prontera Field
+//==================================================
+prt_fild04,0,0,0,0 monster Rocker 1052,70,0,0,0
+prt_fild04,0,0,0,0 monster Creamy 1018,40,0,0,0
+prt_fild04,0,0,0,0 monster Pupa 1008,10,0,0,0
+prt_fild04,0,0,0,0 monster Poring 1002,30,0,0,0
+prt_fild04,0,0,0,0 monster Vocal 1088,1,1800000,1200000,0
+prt_fild04,350,114,10,10 monster Green Plant 1080,5,900000,450000,1
+
+//==================================================
+// prt_fild05 - Prontera Field
+//==================================================
+prt_fild05,0,0,0,0 monster Poring 1002,70,0,0,0
+prt_fild05,0,0,0,0 monster Thief Bug Egg 1048,20,0,0,0
+prt_fild05,0,0,0,0 monster Lunatic 1063,30,0,0,0
+prt_fild05,0,0,0,0 monster Pupa 1008,30,0,0,0
+prt_fild05,0,0,0,0 monster Thief Bug 1051,10,0,0,0
+prt_fild05,208,37,10,10 monster Green Plant 1080,6,900000,450000,1
+prt_fild05,208,37,10,10 monster Blue Plant 1079,1,900000,450000,1
+
+//==================================================
+// prt_fild06 - Prontera Field
+//==================================================
+prt_fild06,0,0,0,0 monster Lunatic 1063,60,0,0,0
+prt_fild06,0,0,0,0 monster Thief Bug Egg 1048,20,0,0,0
+prt_fild06,0,0,0,0 monster Thief Bug 1051,10,0,0,0
+prt_fild06,0,0,0,0 monster Pupa 1008,20,0,0,0
+prt_fild06,0,0,0,0 monster Poring 1002,60,0,0,0
+prt_fild06,222,30,40,10 monster Green Plant 1080,15,900000,450000,1
+
+//==================================================
+// prt_fild07 - Prontera Field
+//==================================================
+prt_fild07,0,0,0,0 monster Rocker 1052,80,0,0,0
+prt_fild07,0,0,0,0 monster Poporing 1031,30,0,0,0
+prt_fild07,0,0,0,0 monster Vocal 1088,1,1800000,1200000,0
+prt_fild07,225,110,5,5 monster Black Mushroom 1084,3,360000,180000,1
+
+//==================================================
+// prt_fild08 - Prontera Field
+//==================================================
+prt_fild08,0,0,0,0 monster Lunatic 1063,40,0,0,0
+prt_fild08,0,0,0,0 monster Pupa 1008,20,0,0,0
+prt_fild08,0,0,0,0 monster Poring 1002,70,0,0,0
+prt_fild08,0,0,0,0 monster Drops 1113,10,0,0,0
+
+//==================================================
+// prt_fild09 - Prontera Field
+//==================================================
+prt_fild09,0,0,0,0 monster Savage Babe 1167,70,0,0,0
+prt_fild09,0,0,0,0 monster Baby Desert Wolf 1107,20,0,0,0
+prt_fild09,0,0,0,0 monster Peco Peco Egg 1047,20,0,0,0
+prt_fild09,0,0,0,0 monster Picky 1049,20,0,0,0
+prt_fild09,0,0,0,0 monster Condor 1009,10,0,0,0
+prt_fild09,237,115,5,5 monster Yellow Plant 1081,3,360000,180000,1
+
+//==================================================
+// prt_fild10 - Prontera Field
+//==================================================
+prt_fild10,0,0,0,0 monster Savage 1166,70,0,0,0
+prt_fild10,0,0,0,0 monster Savage Babe 1167,40,0,0,0
+prt_fild10,0,0,0,0 monster Poporing 1031,20,0,0,0
+prt_fild10,0,0,0,0 monster Thief Bug 1051,10,0,0,0
+prt_fild10,99,114,20,5 monster Red Mushroom 1085,15,360000,180000,1
+prt_fild10,155,179,10,10 monster Shining Plant 1083,1,1800000,900000,1
+
+//==================================================
+// prt_fild11 - Prontera Field
+//==================================================
+prt_fild11,0,0,0,0 monster Goblin 1122,10,0,0,0
+prt_fild11,0,0,0,0 monster Goblin 1123,20,0,0,0
+prt_fild11,0,0,0,0 monster Goblin 1124,20,0,0,0
+prt_fild11,0,0,0,0 monster Goblin 1125,30,0,0,0
+prt_fild11,0,0,0,0 monster Goblin 1126,30,0,0,0
+prt_fild11,0,0,0,0 monster Goblin Archer 1258,10,0,0,0
+prt_fild11,0,0,0,0 monster Panzer Goblin 1308,1,1800000,1200000,0
+prt_fild11,0,0,0,0 monster Goblin Steamrider 1280,30,0,0,0
+prt_fild11,0,0,0,0 monster Red Mushroom 1085,10,180000,90000,1
diff --git a/npc/pre-re/mobs/fields/rachel.txt b/npc/pre-re/mobs/fields/rachel.txt
new file mode 100644
index 000000000..9272972cc
--- /dev/null
+++ b/npc/pre-re/mobs/fields/rachel.txt
@@ -0,0 +1,117 @@
+//===== rAthena Script =======================================
+//= Rachel Fields Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.3
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.0 Created this [Sepheus]
+//= 1.1 Updated [Playtester]
+//= 1.2 More accurate spawns [Playtester]
+//= 1.3 Corrected MVP spawn variance. [L0ne_W0lf]
+//============================================================
+
+//==================================================
+// ra_fild01 - Rachel Field
+//==================================================
+ra_fild01,0,0,0,0 monster Muscipular 1780,60,0,0,1
+ra_fild01,173,170,106,80 monster Geographer 1368,30,300000,120000,1
+ra_fild01,0,0,0,0 monster Drosera 1781,20,0,0,1
+ra_fild01,0,0,0,0 monster Galion 1783,5,0,0,0
+ra_fild01,0,0,0,0 monster Gryphon 1259,3,3600000,0,1
+
+//==================================================
+// ra_fild02 - Rachel Field
+//==================================================
+ra_fild02,0,0,0,0 monster Muscipular 1780,60,0,0,0
+ra_fild02,0,0,0,0 monster Drosera 1781,20,0,0,0
+ra_fild02,0,0,0,0 monster Galion 1783,15,0,0,0
+ra_fild02,0,0,0,0 boss_monster Atroce 1785,1,14400000,600000,1
+
+//==================================================
+// ra_fild03 - Rachel Field
+//==================================================
+ra_fild03,0,0,0,0 monster Galion 1783,35,0,0,0
+ra_fild03,0,0,0,0 monster Drosera 1781,10,0,0,1
+ra_fild03,0,0,0,0 monster Roween 1782,10,0,0,0
+ra_fild03,0,0,0,0 monster Stapo 1784,10,0,0,0
+ra_fild03,0,0,0,0 boss_monster Atroce 1785,1,10800000,600000,1
+
+//==================================================
+// ra_fild04 - Rachel Field
+//==================================================
+ra_fild04,0,0,0,0 monster Roween 1782,60,0,0,0
+ra_fild04,0,0,0,0 monster Stapo 1784,20,0,0,0
+ra_fild04,0,0,0,0 monster Wild Rose 1261,10,0,0,0
+ra_fild04,0,0,0,0 monster Galion 1783,3,0,0,0
+ra_fild04,0,0,0,0 boss_monster Atroce 1785,1,18000000,600000,1
+
+//==================================================
+// ra_fild05 - Rachel Field
+//==================================================
+ra_fild05,0,0,0,0 monster Hill Wind 1680,70,0,0,0
+ra_fild05,0,0,0,0 monster Drosera 1781,20,0,0,0
+ra_fild05,170,200,106,115 monster Geographer 1368,10,0,0,1
+
+//==================================================
+// ra_fild06 - Rachel Field
+//==================================================
+ra_fild06,0,0,0,0 monster Hill Wind 1680,50,0,0,0
+ra_fild06,0,0,0,0 monster Anopheles 1627,20,0,0,0
+ra_fild06,0,0,0,0 monster Drosera 1781,10,0,0,1
+
+//==================================================
+// ra_fild07 - Rachel Field
+//==================================================
+ra_fild07,0,0,0,0 monster Roween 1782,50,0,0,0
+ra_fild07,0,0,0,0 monster Galion 1783,20,0,0,0
+ra_fild07,0,0,0,0 monster Stapo 1784,10,0,0,1
+
+//==================================================
+// ra_fild08 - Rachel Field
+//==================================================
+ra_fild08,0,0,0,0 monster Stapo 1784,100,0,0,1
+ra_fild08,0,0,0,0 monster Drops 1113,40,0,0,0
+ra_fild08,0,0,0,0 monster Drosera 1781,20,0,0,1
+
+//==================================================
+// ra_fild09 - Rachel Field
+//==================================================
+ra_fild09,0,0,0,0 monster Drosera 1781,60,0,0,1
+ra_fild09,0,0,0,0 monster Metaling 1613,20,0,0,0
+ra_fild09,0,0,0,0 monster Hill Wind 1680,10,0,0,0
+ra_fild09,0,0,0,0 monster Harpy 1376,1,3600000,0,0
+
+//==================================================
+// ra_fild10 - Rachel Field
+//==================================================
+ra_fild10,0,0,0,0 monster Stapo 1784,30,0,0,1
+ra_fild10,0,0,0,0 monster Galion 1783,20,0,0,0
+ra_fild10,0,0,0,0 monster Roween 1782,10,0,0,0
+
+//==================================================
+// ra_fild11 - Rachel Field
+//==================================================
+ra_fild11,0,0,0,0 monster Drops 1113,100,0,0,1
+ra_fild11,0,0,0,0 monster Stapo 1784,40,0,0,0
+ra_fild11,0,0,0,0 monster Roween 1782,2,0,0,0
+ra_fild11,0,0,0,0 monster Yellow Plant 1081,15,0,0,1
+ra_fild11,0,0,0,0 monster Red Plant 1078,5,0,0,1
+
+//==================================================
+// ra_fild12 - Rachel Field
+//==================================================
+ra_fild12,0,0,0,0 monster Drops 1113,100,0,0,0
+ra_fild12,0,0,0,0 monster Stapo 1784,40,0,0,1
+ra_fild12,0,0,0,0 monster Poporing 1031,5,0,0,0
+ra_fild12,0,0,0,0 monster Yellow Plant 1081,15,0,0,1
+ra_fild12,0,0,0,0 monster Red Plant 1078,5,0,0,1
+
+//==================================================
+// ra_fild13 - Rachel Field
+//==================================================
+ra_fild13,0,0,0,0 monster Stapo 1784,60,0,0,1
+ra_fild13,0,0,0,0 monster Drops 1113,40,0,0,0
+ra_fild13,0,0,0,0 monster Roween 1782,5,0,0,0
diff --git a/npc/pre-re/mobs/fields/splendide.txt b/npc/pre-re/mobs/fields/splendide.txt
new file mode 100644
index 000000000..9dfbbfa90
--- /dev/null
+++ b/npc/pre-re/mobs/fields/splendide.txt
@@ -0,0 +1,32 @@
+//===== rAthena Script =======================================
+//= Splendide Fields Monster Spawn Script
+//===== By: ==================================================
+//= alexx, MaC
+//===== Current Version: =====================================
+//= 1.1
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.0 Official spawn ammounts from Aegis script [alexx]
+//= 1.1 Added 13.2 mob spawn update [scriptor]
+//============================================================
+
+//==================================================
+// spl_fild01 - Splendide Field
+//==================================================
+spl_fild01,0,0,0,0 monster Pinguicula 1995,50,0,0,0
+spl_fild01,0,0,0,0 monster Naga 1993,35,0,0,0
+spl_fild01,0,0,0,0 monster Cornus 1992,25,0,0,0
+
+ // spl_fild02 - Splendide Field
+//==================================================
+spl_fild02,0,0,0,0 monster Pinguicula 1995,95,0,0,0
+spl_fild02,0,0,0,0 monster Luciola Vespa 1994,15,0,0,0
+
+//==================================================
+// spl_fild03 - Splendide Field
+//==================================================
+spl_fild03,0,0,0,0 monster Luciola Vespa 1994,35,0,0,0
+spl_fild03,0,0,0,0 monster Cornus 1992,25,0,0,0
+spl_fild03,0,0,0,0 monster Naga 1993,20,0,0,0
+spl_fild03,0,0,0,0 monster Tendril Lion 1991,1,3600000,0,0 \ No newline at end of file
diff --git a/npc/pre-re/mobs/fields/umbala.txt b/npc/pre-re/mobs/fields/umbala.txt
new file mode 100644
index 000000000..5da651ff9
--- /dev/null
+++ b/npc/pre-re/mobs/fields/umbala.txt
@@ -0,0 +1,99 @@
+//===== rAthena Script =======================================
+//= Umbala Fields Monster Spawn Script
+//===== By: ==================================================
+//= Darkchild (1.0)
+//===== Current Version: =====================================
+//= 1.4
+//===== Compatible With: =====================================
+//= Any rAthena Version; RO Ep6+
+//===== Additional Comments: =================================
+//= 1.3 Official kRO 10.1 spawns [Playtester]
+//= 1.4 More accurate spawns [Playtester]
+//============================================================
+
+//==================================================
+// um_fild01 - Luluka Forest
+//==================================================
+um_fild01,0,0,0,0 monster Wootan Fighter 1499,10,0,0,0
+um_fild01,0,0,0,0 monster Stem Worm 1215,15,0,0,0
+um_fild01,0,0,0,0 monster Harpy 1376,2,0,0,0
+um_fild01,0,0,0,0 monster Dryad 1493,65,0,0,0
+um_fild01,0,0,0,0 monster Dustiness 1114,10,0,0,0
+um_fild01,0,0,0,0 monster Green Plant 1080,10,180000,90000,1
+um_fild01,0,0,0,0 monster Yellow Plant 1081,10,180000,90000,1
+um_fild01,0,0,0,0 monster Shining Plant 1083,6,180000,90000,1
+
+//==================================================
+// um_fild02 - Hoomga Forest
+//==================================================
+um_fild02,0,0,0,0 monster Coco 1104,10,0,0,0
+um_fild02,0,0,0,0 monster Choco 1214,5,0,0,0
+um_fild02,0,0,0,0 monster Beetle King 1494,30,0,0,0
+um_fild02,0,0,0,0 monster Dustiness 1114,20,0,0,0
+um_fild02,0,0,0,0 monster Wootan Fighter 1499,26,0,0,0
+um_fild02,0,0,0,0 monster Stone Shooter 1495,13,0,0,0
+um_fild02,169,215,10,10 monster Stone Shooter 1495,1,120000,60000,0
+um_fild02,169,215,10,10 monster Wootan Fighter 1499,2,120000,60000,0
+um_fild02,159,285,10,10 monster Stone Shooter 1495,1,120000,60000,0
+um_fild02,159,285,10,10 monster Wootan Fighter 1499,2,120000,60000,0
+um_fild02,99,303,10,10 monster Stone Shooter 1495,1,120000,60000,0
+um_fild02,99,303,10,10 monster Wootan Fighter 1499,2,120000,60000,0
+um_fild02,122,242,10,10 monster Stone Shooter 1495,1,120000,60000,0
+um_fild02,122,242,10,10 monster Wootan Fighter 1499,2,120000,60000,0
+um_fild02,124,198,10,10 monster Stone Shooter 1495,1,120000,60000,0
+um_fild02,124,198,10,10 monster Wootan Fighter 1499,2,120000,60000,0
+um_fild02,126,133,10,10 monster Stone Shooter 1495,1,120000,60000,0
+um_fild02,126,133,10,10 monster Wootan Fighter 1499,2,120000,60000,0
+um_fild02,159,171,10,10 monster Stone Shooter 1495,1,120000,60000,0
+um_fild02,159,171,10,10 monster Wootan Fighter 1499,2,120000,60000,0
+um_fild02,284,247,10,10 monster Stone Shooter 1495,1,120000,60000,0
+um_fild02,284,247,10,10 monster Wootan Fighter 1499,2,120000,60000,0
+um_fild02,330,262,10,10 monster Stone Shooter 1495,1,120000,60000,0
+um_fild02,330,262,10,10 monster Wootan Fighter 1499,2,120000,60000,0
+um_fild02,296,187,10,10 monster Stone Shooter 1495,1,120000,60000,0
+um_fild02,296,187,10,10 monster Wootan Fighter 1499,2,120000,60000,0
+um_fild02,285,105,10,10 monster Stone Shooter 1495,1,120000,60000,0
+um_fild02,285,105,10,10 monster Wootan Fighter 1499,2,120000,60000,0
+um_fild02,257,137,10,10 monster Stone Shooter 1495,1,120000,60000,0
+um_fild02,257,137,10,10 monster Wootan Fighter 1499,2,120000,60000,0
+um_fild02,360,320,20,30 monster Flora 1118,3,180000,120000,0
+um_fild02,0,0,0,0 monster Red Plant 1078,5,180000,90000,1
+um_fild02,0,0,0,0 monster Yellow Plant 1081,5,180000,90000,1
+
+//==================================================
+// um_fild03 - Kalala Swamp
+//==================================================
+um_fild03,0,0,0,0 monster Parasite 1500,95,0,0,0
+um_fild03,0,0,0,0 monster Dragon Tail 1321,20,0,0,0
+um_fild03,0,0,0,0 monster Alligator 1271,10,0,0,0
+um_fild03,0,0,0,0 monster Gryphon 1259,1,3500000,1900000,0
+um_fild03,0,0,0,0 monster Blue Plant 1079,5,180000,90000,1
+um_fild03,0,0,0,0 monster Green Plant 1080,10,180000,90000,1
+um_fild03,0,0,0,0 monster Shining Plant 1083,2,180000,90000,1
+
+//==================================================
+// um_fild04 - Hoomga Jungle
+//==================================================
+um_fild04,0,0,0,0 monster Beetle King 1494,30,0,0,0
+um_fild04,0,0,0,0 monster Horn 1128,15,0,0,0
+um_fild04,0,0,0,0 monster Choco 1214,2,0,0,0
+um_fild04,0,0,0,0 monster Wootan Shooter 1498,7,0,0,0
+um_fild04,264,293,10,10 monster Horn 1128,2,1200000,60000,0
+um_fild04,264,293,10,10 monster Beetle King 1494,4,120000,60000,0
+um_fild04,121,239,10,10 monster Beetle King 1494,2,120000,60000,0
+um_fild04,91,79,10,10 monster Beetle King 1494,2,120000,60000,0
+um_fild04,244,339,10,10 monster Beetle King 1494,2,120000,60000,0
+um_fild04,295,93,10,10 monster Beetle King 1494,2,120000,60000,0
+um_fild04,118,237,10,10 monster Beetle King 1494,2,120000,60000,0
+um_fild04,118,237,10,10 monster Horn 1128,1,120000,60000,0
+um_fild04,311,285,10,10 monster Beetle King 1494,2,120000,60000,0
+um_fild04,311,285,10,10 monster Horn 1128,1,120000,60000,0
+um_fild04,206,188,10,10 monster Beetle King 1494,2,120000,60000,0
+um_fild04,206,188,10,10 monster Horn 1128,1,120000,60000,0
+um_fild04,239,245,10,10 monster Beetle King 1494,2,120000,60000,0
+um_fild04,239,245,10,10 monster Horn 1128,1,120000,60000,0
+um_fild04,239,245,10,10 monster Wootan Shooter 1498,1,300000,60000,0
+um_fild04,91,79,10,10 monster Wootan Shooter 1498,1,300000,60000,0
+um_fild04,295,93,10,10 monster Wootan Shooter 1498,1,300000,60000,0
+um_fild04,0,0,0,0 monster Red Plant 1078,5,180000,90000,1
+um_fild04,0,0,0,0 monster Yellow Plant 1081,5,180000,90000,1
diff --git a/npc/pre-re/mobs/fields/veins.txt b/npc/pre-re/mobs/fields/veins.txt
new file mode 100644
index 000000000..5a365ef55
--- /dev/null
+++ b/npc/pre-re/mobs/fields/veins.txt
@@ -0,0 +1,90 @@
+//===== rAthena Script =======================================
+//= Veins Fields Monster Spawn Script
+//===== By: ==================================================
+//= $ephiroth
+//===== Current Version: =====================================
+//= 1.7
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.0 Temp. monster spawn in Veins Field. [$ephiroth]
+//= 1.1 Updated monster spawn based on kRO website. [$ephiroth]
+//= 1.2 Updated mobs based on info jAthena. [$ephiroth]
+//= 1.3 Fixed some typos and Atros spawn [Playtester]
+//= 1.4 Updated spawns with info from RO Monthly [Playtester]
+//= 1.5 Updated spawn amounts to official [Playtester]
+//= 1.6 Even more accurate spawns [Playtester]
+//= 1.7 Corrected MVP spawn variance. [Gepard]
+//============================================================
+
+//======== [Veins Field-01] ==================================
+ve_fild01,0,0,0,0 monster Drops 1113,10,0,0,0
+ve_fild01,0,0,0,0 monster Stapo 1784,20,0,0,0
+ve_fild01,0,0,0,0 monster Muka 1055,70,0,0,0
+ve_fild01,0,0,0,0 monster Side Winder 1037,10,0,0,0
+ve_fild01,0,0,0,0 boss_monster Atroce 1785,1,10800000,600000,0
+ve_fild01,0,0,0,0 monster Red Plant 1078,10,0,0,0
+ve_fild01,0,0,0,0 monster Yellow Plant 1081,10,0,0,0
+ve_fild01,270,80,20,7 monster Blue Plant 1079,4,840000,0,0
+ve_fild01,270,80,20,7 monster Shining Plant 1083,1,960000,0,0
+
+//======== [Veins Field-02] ===================================
+ve_fild02,0,0,0,0 monster Stapo 1784,20,0,0,0
+ve_fild02,0,0,0,0 monster Savage 1166,30,0,0,0
+ve_fild02,220,215,135,180 monster Savage 1166,30,0,0,0
+ve_fild02,65,220,14,14 monster Roween 1782,2,660000,0,0
+ve_fild02,220,215,135,180 monster Roween 1782,18,0,0,0
+ve_fild02,65,220,14,14 monster Side Winder 1037,1,900000,0,0
+ve_fild02,220,215,135,180 monster Side Winder 1037,4,0,0,0
+ve_fild02,120,55,50,50 boss_monster Atroce 1785,1,21600000,600000,0
+ve_fild02,0,0,0,0 monster Red Plant 1078,10,0,0,0
+ve_fild02,0,0,0,0 monster Yellow Plant 1081,10,0,0,0
+
+//======== [Veins Field-03] ===================================
+ve_fild03,0,0,0,0 monster Stapo 1784,10,0,0,0
+ve_fild03,200,212,114,60 monster Magmaring 1836,10,0,0,0
+ve_fild03,0,0,0,0 monster Sandman 1165,20,0,0,0
+ve_fild03,187,106,155,35 monster Sandman 1165,25,0,0,0
+ve_fild03,200,212,114,60 monster Sleeper 1386,5,0,0,0
+ve_fild03,200,212,114,60 monster Red Plant 1078,10,0,0,0
+ve_fild03,0,0,0,0 monster Yellow Plant 1081,10,0,0,0
+
+//======== [Veins Field-04] ===================================
+ve_fild04,0,0,0,0 monster Stapo 1784,20,0,0,0
+ve_fild04,0,0,0,0 monster Desert Wolf 1106,60,0,0,0
+ve_fild04,0,0,0,0 monster Roween 1782,20,0,0,0
+ve_fild04,0,0,0,0 monster Muscipular 1780,10,0,0,0
+ve_fild04,0,0,0,0 monster Yellow Plant 1081,10,0,0,0
+ve_fild04,288,273,4,4 monster Blue Plant 1079,3,660000,0,0
+
+//======== [Veins Field-05] ===================================
+ve_fild05,0,0,0,0 monster Roween 1782,15,0,0,0
+ve_fild05,0,0,0,0 monster Galion 1783,5,0,0,0
+ve_fild05,0,0,0,0 monster Drosera 1781,10,0,0,0
+ve_fild05,0,0,0,0 monster Sandman 1165,10,0,0,0
+ve_fild05,130,225,46,59 monster Sandman 1165,7,60000,0,0
+ve_fild05,270,190,95,140 monster Sandman 1165,11,60000,0,0
+ve_fild05,123,65,50,21 monster Sandman 1165,2,90000,0,0
+ve_fild05,0,0,0,0 monster Sleeper 1386,10,0,0,0
+ve_fild05,130,225,46,59 monster Sleeper 1386,15,90000,0,0
+ve_fild05,270,190,95,140 monster Sleeper 1386,25,90000,0,0
+ve_fild05,123,65,50,21 monster Sleeper 1386,5,120000,0,0
+ve_fild05,152,139,15,17 monster White Plant 1082,5,1800000,0,0
+ve_fild05,152,139,5,5 monster Shining Plant 1083,1,2400000,0,0
+
+//======== [Veins Field-06] ===================================
+ve_fild06,0,0,0,0 monster Stapo 1784,2,300000,0,0
+ve_fild06,0,0,0,0 monster Stapo 1784,1,1800000,0,0
+ve_fild06,0,0,0,0 monster Shining Plant 1083,1,1020000,0,0
+
+//======== [Veins Field-07] ===================================
+ve_fild07,0,0,0,0 monster Stapo 1784,30,0,0,0
+ve_fild07,64,126,35,55 monster Aster 1266,3,0,0,0
+ve_fild07,256,76,75,37 monster Aster 1266,7,0,0,0
+ve_fild07,64,126,35,55 monster Shellfish 1074,3,0,0,0
+ve_fild07,256,76,75,37 monster Shellfish 1074,7,0,0,0
+ve_fild07,0,0,0,0 monster Raggler 1254,24,0,0,0
+ve_fild07,64,126,35,55 monster Raggler 1254,4,0,0,0
+ve_fild07,256,76,75,37 monster Raggler 1254,7,0,0,0
+ve_fild07,0,0,0,0 monster Side Winder 1037,70,0,0,0
+ve_fild07,0,0,0,0 monster White Plant 1082,10,600000,0,0
diff --git a/npc/pre-re/mobs/fields/yuno.txt b/npc/pre-re/mobs/fields/yuno.txt
new file mode 100644
index 000000000..7a379d947
--- /dev/null
+++ b/npc/pre-re/mobs/fields/yuno.txt
@@ -0,0 +1,178 @@
+//===== rAthena Script =======================================
+//= Yuno Fields Monster Spawn Script
+//===== By: ==================================================
+//= Athena (1.0)
+//===== Current Version: =====================================
+//= 1.9
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Additional Comments: =================================
+//= 1.1 fixed tabs, names [Lupus]
+//= 1.2 New/Better Spawn [Muad_Dib]
+//= 1.3 Fix Up [Darkchild]
+//= 1.4 Updated monster spawns. Many thanks to vicious_pucca for
+//= providing the information [MasterOfMuppets]
+//= 1.5 Updated after Episode 10.4 - Hugel [Poki#3]
+//= Mob quantity is custom.
+//= 1.5b Changed the spawn numbers a bit. [Poki#3]
+//= Thanks to Playtester and Emperium.org
+//= 1.6 Fixed Yuno Field 10. Mob amount sugested by Playtester [Poki#3]
+//= 1.7 Updated by using Tharis' Homun AI, by Tharis [Vicious]
+//= 1.8 Added kRO 10.1 spawns where they fit [Playtester]
+//= 1.9 More accurate spawns [Playtester]
+//============================================================
+
+//==================================================
+// yuno_fild01 - Border Posts
+//==================================================
+yuno_fild01,0,0,0,0 monster Dustiness 1114,50,0,0,0
+yuno_fild01,0,0,0,0 monster Poring 1002,20,0,0,0
+yuno_fild01,0,0,0,0 monster Poporing 1031,20,0,0,0
+yuno_fild01,190,329,80,20 monster Grand Peco 1369,3,50000,25000,0
+yuno_fild01,0,0,0,0 monster Red Plant 1078,15,1800000,900000,1
+yuno_fild01,70,370,10,10 monster Blue Plant 1079,2,1800000,900000,1
+yuno_fild01,70,370,10,10 monster Shining Plant 1083,1,1800000,900000,1
+yuno_fild01,66,267,10,10 monster Yellow Plant 1081,2,1800000,900000,1
+yuno_fild01,238,326,40,40 monster Yellow Plant 1081,6,1800000,900000,1
+yuno_fild01,238,326,40,40 monster Shining Plant 1083,2,1800000,900000,1
+yuno_fild01,0,0,0,0 monster Yellow Plant 1081,15,1800000,900000,1
+yuno_fild01,0,0,0,0 monster Green Plant 1080,20,1800000,900000,1
+
+//==================================================
+// yuno_fild02 - Kiel Khayr's Cottage
+//==================================================
+yuno_fild02,0,0,0,0 monster Beetle King 1494,40,0,0,0
+yuno_fild02,0,0,0,0 monster Horn 1128,40,0,0,0
+yuno_fild02,0,0,0,0 monster Dustiness 1114,20,0,0,0
+yuno_fild02,0,0,0,0 monster Hunter Fly 1035,10,0,0,0
+yuno_fild02,92,200,43,52 monster Wild Rose 1261,5,0,0,0
+yuno_fild02,185,310,170,37 monster Novus 1715,2,1200000,600000,0
+yuno_fild02,298,194,55,158 monster Novus 1718,2,1200000,600000,0
+yuno_fild02,0,0,0,0 monster Red Plant 1078,10,1800000,900000,1
+yuno_fild02,0,0,0,0 monster Yellow Plant 1081,10,1800000,900000,1
+yuno_fild02,0,0,0,0 monster Green Plant 1080,10,1800000,900000,1
+
+//==================================================
+// yuno_fild03 - El Mes Plateau
+//==================================================
+yuno_fild03,0,0,0,0 monster Poporing 1031,50,0,0,0
+yuno_fild03,0,0,0,0 monster Drops 1113,40,0,0,0
+yuno_fild03,0,0,0,0 monster Poring 1002,30,0,0,0
+yuno_fild03,0,0,0,0 monster Marin 1242,20,0,0,0
+yuno_fild03,0,0,0,0 monster Geographer 1368,15,0,0,0
+yuno_fild03,62,131,44,15 monster Side Winder 1037,1,300000,240000,0
+yuno_fild03,0,0,0,0 monster Angeling 1096,1,3600000,1800000,1
+yuno_fild03,0,0,0,0 monster Deviling 1582,1,3600000,1800000,1
+yuno_fild03,0,0,0,0 monster Red Plant 1078,15,1800000,900000,1
+yuno_fild03,0,0,0,0 monster Yellow Plant 1081,15,1800000,900000,1
+yuno_fild03,0,0,0,0 monster Green Plant 1080,15,1800000,900000,1
+yuno_fild03,358,215,10,10 monster Shining Plant 1083,1,1800000,900000,1
+yuno_fild03,358,215,10,10 monster Blue Plant 1079,4,1800000,900000,1
+
+//==================================================
+// yuno_fild04 - El Mes Plateau
+//==================================================
+yuno_fild04,0,0,0,0 monster Poring 1002,60,0,0,0
+yuno_fild04,0,0,0,0 monster Drops 1113,40,0,0,0
+yuno_fild04,0,0,0,0 monster Condor 1009,20,0,0,0
+yuno_fild04,0,0,0,0 monster Pupa 1008,10,0,0,0
+yuno_fild04,0,0,0,0 monster Mastering 1090,1,3600000,1800000,1
+yuno_fild04,0,0,0,0 monster Red Plant 1078,10,1800000,900000,1
+yuno_fild04,0,0,0,0 monster Yellow Plant 1081,10,1800000,900000,1
+yuno_fild04,0,0,0,0 monster Green Plant 1080,10,1800000,900000,1
+
+//==================================================
+// yuno_fild05 - El Mes Plateau
+//==================================================
+yuno_fild05,0,0,0,0 monster Rafflesia 1162,70,0,0,0
+yuno_fild05,0,0,0,0 monster Dustiness 1114,30,0,0,0
+yuno_fild05,0,0,0,0 monster Horn 1128,30,0,0,0
+yuno_fild05,0,0,0,0 monster Beetle King 1494,10,0,0,0
+yuno_fild05,0,0,0,0 monster Arc Angeling 1388,1,3600000,180000,0
+yuno_fild05,0,0,0,0 monster Red Plant 1078,10,180000,90000,1
+yuno_fild05,0,0,0,0 monster Green Plant 1080,10,180000,90000,1
+yuno_fild05,0,0,0,0 monster Yellow Plant 1081,10,180000,90000,0
+yuno_fild05,176,202,8,8 monster Blue Plant 1079,2,180000,90000,1
+yuno_fild05,300,280,5,5 monster Blue Plant 1079,2,180000,90000,1
+
+//==================================================
+// yuno_fild06 - Yuno Field
+//==================================================
+yuno_fild06,0,0,0,0 monster Sleeper 1386,70,0,0,0
+yuno_fild06,0,0,0,0 monster Goat 1372,40,0,0,0
+yuno_fild06,0,0,0,0 monster Demon Pungus 1378,20,120000,0,0
+yuno_fild06,0,0,0,0 monster Red Plant 1078,10,0,0,0
+yuno_fild06,0,0,0,0 monster Yellow Plant 1081,10,0,0,0
+yuno_fild06,0,0,0,0 monster Green Plant 1080,10,0,0,0
+
+//==================================================
+// yuno_fild07 - El Mes Gorge (Valley of Abyss)
+//==================================================
+yuno_fild07,0,0,0,0 monster Goat 1372,10,0,0,0
+yuno_fild07,0,0,0,0 monster Geographer 1368,20,0,0,0
+yuno_fild07,0,0,0,0 monster Driller 1380,10,0,0,0
+yuno_fild07,0,0,0,0 monster Harpy 1376,40,600000,300000,0
+yuno_fild07,0,0,0,0 monster Red Plant 1078,10,180000,90000,1
+yuno_fild07,0,0,0,0 monster Green Plant 1080,10,180000,90000,1
+yuno_fild07,0,0,0,0 monster Yellow Plant 1081,10,180000,90000,1
+
+//==================================================
+// yuno_fild08 - Kiel Khayr's Academy
+//==================================================
+yuno_fild08,0,0,0,0 monster Wild Rose 1261,5,0,0,0
+yuno_fild08,200,300,290,100 monster Grand Peco 1369,30,0,0,0
+yuno_fild08,272,205,100,120 monster Grand Peco 1369,20,0,0,0
+yuno_fild08,230,110,250,90 monster Grand Peco 1369,30,0,0,0
+yuno_fild08,200,300,290,100 monster Geographer 1368,12,0,0,0
+yuno_fild08,272,205,100,120 monster Geographer 1368,6,0,0,0
+yuno_fild08,230,110,250,90 monster Geographer 1368,12,0,0,0
+yuno_fild08,200,300,290,100 monster Dustiness 1114,7,0,0,0
+yuno_fild08,272,205,100,120 monster Dustiness 1114,6,0,0,0
+yuno_fild08,230,110,250,90 monster Dustiness 1114,7,0,0,0
+yuno_fild08,0,0,0,0 monster Red Plant 1078,10,180000,90000,1
+yuno_fild08,0,0,0,0 monster Green Plant 1080,10,180000,90000,1
+yuno_fild08,0,0,0,0 monster Yellow Plant 1081,10,180000,90000,1
+
+//==================================================
+// yuno_fild09 - Schwarzwald Guards Camp
+//==================================================
+yuno_fild09,0,0,0,0 monster Beetle King 1494,40,0,0,0
+yuno_fild09,0,0,0,0 monster Horn 1128,40,0,0,0
+yuno_fild09,0,0,0,0 monster Stainer 1174,20,0,0,0
+yuno_fild09,0,0,0,0 monster Dustiness 1114,20,0,0,0
+yuno_fild09,0,0,0,0 monster Hunter Fly 1035,10,0,0,0
+yuno_fild09,0,0,0,0 monster Wild Rose 1261,5,0,0,0
+yuno_fild09,0,0,0,0 monster Red Plant 1078,10,180000,90000,1
+yuno_fild09,0,0,0,0 monster Green Plant 1080,10,180000,90000,1
+yuno_fild09,0,0,0,0 monster Yellow Plant 1081,10,180000,90000,1
+
+//==================================================
+// yuno_fild10 - Yuno Field
+//==================================================
+yuno_fild10,0,0,0,0 monster Beetle King 1494,40,0,0,0
+yuno_fild10,0,0,0,0 monster Stainer 1174,20,0,0,0
+yuno_fild10,0,0,0,0 monster Dustiness 1114,20,0,0,0
+yuno_fild10,0,0,0,0 monster Geographer 1368,20,0,0,0
+yuno_fild10,0,0,0,0 monster Hunter Fly 1035,10,0,0,0
+
+//==================================================
+// yuno_fild11 - Yuno Field
+//==================================================
+yuno_fild11,0,0,0,0 monster Sleeper 1386,10,0,0,0
+yuno_fild11,0,0,0,0 monster Demon Pungus 1378,10,120000,0,0
+yuno_fild11,0,0,0,0 monster Geographer 1368,15,0,0,0
+yuno_fild11,65,294,70,160 monster Sleeper 1386,3,0,0,0
+yuno_fild11,65,294,70,160 monster Geographer 1368,2,0,0,0
+yuno_fild11,225,220,125,135 monster Sleeper 1386,30,0,0,0
+yuno_fild11,225,220,125,135 monster Geographer 1368,15,0,0,0
+yuno_fild11,0,0,0,0 monster Red Plant 1078,10,180000,90000,1
+yuno_fild11,0,0,0,0 monster Green Plant 1080,10,180000,90000,1
+yuno_fild11,0,0,0,0 monster Yellow Plant 1081,10,180000,90000,1
+
+//==================================================
+// yuno_fild12 - Border Checkpoint
+//==================================================
+yuno_fild12,0,0,0,0 monster Dustiness 1114,30,0,0,0
+yuno_fild12,0,0,0,0 monster Demon Pungus 1378,20,0,0,0
+yuno_fild12,0,0,0,0 monster Poporing 1031,15,0,0,0
+yuno_fild12,0,0,0,0 monster Geographer 1368,5,0,0,0
diff --git a/npc/pre-re/other/arena/arena_aco.txt b/npc/pre-re/other/arena/arena_aco.txt
new file mode 100644
index 000000000..d0830135e
--- /dev/null
+++ b/npc/pre-re/other/arena/arena_aco.txt
@@ -0,0 +1,1847 @@
+//===== rAthena Script ========================================
+//= Izlude Arena script
+//===== By: ==================================================
+//= L0ne_W0lf
+//===== Current Version: =====================================
+//= 1.2
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Description: =========================================
+//= Izlude Acolyte Battle Arena
+//===== Additional Comments: =================================
+//= 1.0 First version.
+//= 1.1 Corrected variable typos. (bugreport:4374) [L0ne_w0lf]
+//= 1.2 Updated 'waitingroom' to support required zeny/lvl. [Kisuka]
+//============================================================
+
+arena_room,114,102,0 script onlyaco#arena 45,1,1,{
+OnTouch:
+ if (baseclass == job_acolyte && baselevel > 9) {
+ warp "arena_room",135,129;
+ end;
+ }
+ else {
+ mes "Only Acolyte class are applicable to join this mode.";
+ close;
+ }
+}
+
+arena_room,135,126,0 warp byeaco#arena 1,1,arena_room,111,99
+
+arena_room,136,138,3 script Acolyte Waiting Room 124,{
+ end;
+
+OnInit:
+ waitingroom "Personal Force, Acolyte Class",50,"Acolyte Waiting Room::OnStartArena",1,1000,10,99;
+ enablewaitingroomevent;
+ end;
+
+OnStartArena:
+ warpwaitingpc "force_5-1",99,12;
+ enablenpc "arena#aco";
+ disablewaitingroomevent;
+ end;
+
+Onstart:
+ enablewaitingroomevent;
+ end;
+}
+
+force_5-1,100,12,0 script arena#aco -1,5,5,{
+OnTouch:
+ donpcevent "allkill#aco::OnEnable";
+ if (basejob == job_acolyte) {
+ donpcevent "arena_aco1::Onstart";
+ }
+ else {
+ donpcevent "arena_aco2::Onstart";
+ }
+ disablenpc "arena#aco";
+ end;
+}
+
+- script arena_aco1 -1,{
+Onstart:
+ donpcevent "Trocco#aco1::OnEnable";
+ end;
+
+Onreset_01:
+ enablenpc "force_01_02#aco";
+ enablenpc "force_02start#aco";
+ end;
+
+Onreset_02:
+ donpcevent "force_02mob#aco::Onreset";
+ enablenpc "force_02_03#aco";
+ enablenpc "force_03start#aco";
+ end;
+
+Onreset_03:
+ enablenpc "force_03_04#aco";
+ enablenpc "force_04start#aco";
+ end;
+
+Onreset_04:
+ enablenpc "force_04_05#aco";
+ enablenpc "force_05start#aco";
+ end;
+
+Onreset_05:
+ enablenpc "force_05_06#aco";
+ enablenpc "force_06start#aco";
+ end;
+
+Onreset_06:
+ enablenpc "force_06_07#aco";
+ enablenpc "force_07start#aco";
+ end;
+
+Onreset_07:
+ enablenpc "force_07_08#aco";
+ enablenpc "force_08start#aco";
+ end;
+
+Onreset_08:
+ enablenpc "force_08_09#aco";
+ enablenpc "force_09start#aco";
+ end;
+
+Onreset_09:
+ enablenpc "force_exit#aco";
+ end;
+}
+
+- script Trocco#aco1 -1,{
+OnEnable:
+ initnpctimer;
+ set $@arn_1,gettimetick(2);
+ end;
+
+OnTimer2000:
+ mapannounce "force_5-1","Good day! I am Trocco, your host for the Acolyte Class Time Force Battle!",bc_map|bc_npc;
+ end;
+
+OnTimer3000:
+ mapannounce "force_5-1","Make your decisions carefully. Here, the right choices make the difference between victory and defeat!",bc_map|bc_npc;
+ end;
+
+OnTimer4000:
+ mapannounce "force_5-1","You now have 8 minutes to complete this challenge. Enter the Left Entrance now to begin. Remember that you will be traveling clockwise as you clear the stages.",bc_map|bc_npc;
+ end;
+
+OnTimer60000:
+ if (getmapusers("force_5-1") == 0) {
+ donpcevent "Trocco#aco1::Onfailclearstage";
+ }
+ mapannounce "force_5-1","Time left: 7 Minutes",bc_map|bc_npc;
+ end;
+
+OnTimer120000:
+ if (getmapusers("force_5-1") == 0) {
+ donpcevent "Trocco#aco1::Onfailclearstage";
+ }
+ mapannounce "force_5-1","Time left: 6 Minutes",bc_map|bc_npc;
+ end;
+
+OnTimer180000:
+ if (getmapusers("force_5-1") == 0) {
+ donpcevent "Trocco#aco1::Onfailclearstage";
+ }
+ mapannounce "force_5-1","Time left: 5 Minutes",bc_map|bc_npc;
+ end;
+
+OnTimer240000:
+ if (getmapusers("force_5-1") == 0) {
+ donpcevent "Trocco#aco1::Onfailclearstage";
+ }
+ mapannounce "force_5-1","Time left: 4 Minutes",bc_map|bc_npc;
+ end;
+
+OnTimer300000:
+ if (getmapusers("force_5-1") == 0) {
+ donpcevent "Trocco#aco1::Onfailclearstage";
+ }
+ mapannounce "force_5-1","Time left: 3 Minutes",bc_map|bc_npc;
+ end;
+
+OnTimer360000:
+ if (getmapusers("force_5-1") == 0) {
+ donpcevent "Trocco#aco1::Onfailclearstage";
+ }
+ mapannounce "force_5-1","Time left: 2 Minutes",bc_map|bc_npc;
+ end;
+
+OnTimer420000:
+ if (getmapusers("force_5-1") == 0) {
+ donpcevent "Trocco#aco1::Onfailclearstage";
+ }
+ mapannounce "force_5-1","Time left: 1 Minute",bc_map|bc_npc;
+ end;
+
+OnTimer480000:
+ mapannounce "force_5-1","Time's up! I hope you had fun!",bc_map|bc_npc;
+ end;
+
+OnTimer485000:
+OnTimer486000:
+OnTimer487000:
+OnTimer488000:
+OnTimer489000:
+OnTimer490000:
+OnTimer491000:
+OnTimer492000:
+OnTimer493000:
+OnTimer494000:
+ mapwarp "force_5-1","prt_are_in",177,86;
+ end;
+
+OnTimer495000:
+ mapwarp "force_5-1","prt_are_in",177,86;
+ donpcevent "Trocco#aco1::Onfailclearstage";
+ end;
+
+Ontimeroff:
+ stopnpctimer;
+ end;
+
+Onfailclearstage:
+ mapwarp "force_5-1","prt_are_in",177,86;
+ donpcevent "Trocco#aco1::Ontimeroff";
+ donpcevent "arena_aco1::Onreset";
+ donpcevent "Acolyte Waiting Room::OnStart";
+ end;
+
+On01_start:
+ mapannounce "force_5-1","Objective: Destroy all Red Plants!",bc_map|bc_npc;
+ end;
+
+On01_end:
+ mapannounce "force_5-1","The North Exit has opened!",bc_map|bc_npc;
+ end;
+
+On02_start:
+ mapannounce "force_5-1","Objective: Kill at least 10 Drops!",bc_map|bc_npc;
+ end;
+
+On02_end:
+ mapannounce "force_5-1","The North Exit has opened!",bc_map|bc_npc;
+ end;
+
+On03_start:
+ mapannounce "force_5-1","Objective: Terminate all Zombies!",bc_map|bc_npc;
+ end;
+
+On03_end:
+ mapannounce "force_5-1","The East Exit has opened!",bc_map|bc_npc;
+ end;
+
+On04_start:
+ mapannounce "force_5-1","As a courtesy, we'll restore some of your HP and SP. Now, head to the next room! Go go go!!",bc_map|bc_npc;
+ end;
+
+On05_start:
+ mapannounce "force_5-1","Objective: Obliterate all Orc Zombies!",bc_map|bc_npc;
+ end;
+
+On05_end:
+ mapannounce "force_5-1","The South Exit has opened!",bc_map|bc_npc;
+ end;
+
+On06_start:
+ mapannounce "force_5-1","Objective: Reach the South Exit while dodging Hydras!",bc_map|bc_npc;
+ end;
+
+On07_start:
+ mapannounce "force_5-1","Objective: Kill all Archer Skeletons and Firelock Soldiers!",bc_map|bc_npc;
+ end;
+
+On07_end:
+ mapannounce "force_5-1","The West Exit has opened!",bc_map|bc_npc;
+ end;
+
+On08_start:
+ mapannounce "force_5-1","Objective: Boss Battle. Please proceed to the room to the north!",bc_map|bc_npc;
+ end;
+
+On09_start:
+ mapannounce "force_5-1","Objective: Kill Zombie Prisoners, Skel Prisoners and Zombie Troops!",bc_map|bc_npc;
+ end;
+
+On09_end:
+ mapannounce "force_5-1","Boss Defeated! The North Exit has opened. Thank you.",bc_map|bc_npc;
+ end;
+}
+
+force_5-1,40,26,0 script force_01start#aco -1,1,1,{
+OnTouch:
+ donpcevent "force_01mob#aco::OnEnable";
+ disablenpc "force_01start#aco";
+ end;
+}
+
+- script force_01mob#aco -1,{
+OnEnable:
+ donpcevent "Trocco#aco1::On01_start";
+ monster "force_5-1",22,29,"Red Plant",1078,1,"force_01mob#aco::OnMyMobDead";
+ monster "force_5-1",29,29,"Red Plant",1078,1,"force_01mob#aco::OnMyMobDead";
+ monster "force_5-1",29,22,"Red Plant",1078,1,"force_01mob#aco::OnMyMobDead";
+ monster "force_5-1",22,22,"Red Plant",1078,1,"force_01mob#aco::OnMyMobDead";
+ monster "force_5-1",25,25,"Red Plant",1078,1,"force_01mob#aco::OnMyMobDead";
+ end;
+
+Onreset:
+ killmonster "force_5-1","force_01mob#aco::OnMyMobDead";
+ end;
+
+OnMyMobDead:
+ if (mobcount("force_5-1","force_01mob#aco::OnMyMobDead") < 1) {
+ donpcevent "Trocco#aco1::On01_end";
+ donpcevent "arena_aco1::Onreset_01";
+ }
+ end;
+}
+
+force_5-1,25,69,0 script force_02start#aco -1,1,1,{
+OnTouch:
+ set $@drop_gate,0;
+ donpcevent "force_02mob#aco::OnEnable";
+ disablenpc "force_02start#aco";
+ end;
+}
+
+- script force_02mob#aco -1,{
+OnEnable:
+ donpcevent "Trocco#aco1::On02_start";
+ areamonster "force_5-1",22,69,29,130,"Drops",1572,20,"force_02mob#aco::OnMyMobDead";
+ end;
+
+Onreset:
+ killmonster "force_5-1","force_02mob#aco::OnMyMobDead";
+ end;
+
+OnMyMobDead:
+ if ((mobcount("force_5-1","force_02mob#aco::OnMyMobDead") < 11) && ($@drop_gate == 0)) {
+ set $@drop_gate,1;
+ donpcevent "Trocco#aco1::On02_end";
+ donpcevent "arena_aco1::Onreset_02";
+ }
+ end;
+}
+
+force_5-1,25,159,0 script force_03start#aco -1,1,1,{
+OnTouch:
+ donpcevent "force_03mob#aco::OnEnable";
+ disablenpc "force_03start#aco";
+}
+
+- script force_03mob#aco -1,{
+OnEnable:
+ donpcevent "Trocco#aco1::On03_start";
+ areamonster "force_5-1",9,157,41,190,"Zombie",1394,10,"force_03mob#aco::OnMyMobDead";
+ end;
+
+Onreset:
+ killmonster "force_5-1","force_03mob#aco::OnMyMobDead";
+ end;
+
+OnMyMobDead:
+ if (mobcount("force_5-1","force_03mob#aco::OnMyMobDead") < 1) {
+ donpcevent "Trocco#aco1::On03_end";
+ donpcevent "arena_aco1::Onreset_03";
+ }
+ end;
+}
+
+force_5-1,69,174,0 script force_04start#aco -1,1,1,{
+OnTouch:
+ donpcevent "Trocco#aco1::On04_start";
+ donpcevent "arena_aco1::Onreset_04";
+ percentheal 50,50;
+ disablenpc "force_04start#aco";
+ end;
+}
+
+force_5-1,159,174,0 script force_05start#aco -1,1,1,{
+OnTouch:
+ donpcevent "force_05mob#aco::OnEnable";
+ disablenpc "force_05start#aco";
+ end;
+}
+
+- script force_05mob#aco -1,{
+OnEnable:
+ donpcevent "Trocco#aco1::On05_start";
+ areamonster "force_5-1",159,157,187,190,"Orc Zombie",1463,8,"force_05mob#aco::OnMyMobDead";
+ end;
+
+Onreset:
+ killmonster "force_5-1","force_05mob#aco::OnMyMobDead";
+ end;
+
+OnMyMobDead:
+ if (mobcount("force_5-1","force_05mob#aco::OnMyMobDead") < 1) {
+ donpcevent "Trocco#aco1::On05_end";
+ donpcevent "arena_aco1::Onreset_05";
+ }
+ end;
+}
+
+force_5-1,174,130,0 script force_06start#aco -1,1,1,{
+OnTouch:
+ donpcevent "force_06mob#aco::OnEnable";
+ donpcevent "arena_aco1::Onreset_06";
+ disablenpc "force_06start#aco";
+ end;
+}
+
+- script force_06mob#aco -1,{
+OnEnable:
+ donpcevent "Trocco#aco1::On06_start";
+ monster "force_5-1",170,124,"Hydra",1579,1,"force_06mob#aco::OnMyMobDead";
+ monster "force_5-1",170,121,"Hydra",1579,1,"force_06mob#aco::OnMyMobDead";
+ monster "force_5-1",173,116,"Hydra",1579,1,"force_06mob#aco::OnMyMobDead";
+ monster "force_5-1",175,113,"Hydra",1579,1,"force_06mob#aco::OnMyMobDead";
+ monster "force_5-1",175,110,"Hydra",1579,1,"force_06mob#aco::OnMyMobDead";
+ monster "force_5-1",170,106,"Hydra",1579,1,"force_06mob#aco::OnMyMobDead";
+ monster "force_5-1",173,106,"Hydra",1579,1,"force_06mob#aco::OnMyMobDead";
+ monster "force_5-1",176,106,"Hydra",1579,1,"force_06mob#aco::OnMyMobDead";
+ monster "force_5-1",179,106,"Hydra",1579,1,"force_06mob#aco::OnMyMobDead";
+ monster "force_5-1",174,100,"Hydra",1579,1,"force_06mob#aco::OnMyMobDead";
+ monster "force_5-1",174,96,"Hydra",1579,1,"force_06mob#aco::OnMyMobDead";
+ monster "force_5-1",174,92,"Hydra",1579,1,"force_06mob#aco::OnMyMobDead";
+ monster "force_5-1",174,88,"Hydra",1579,1,"force_06mob#aco::OnMyMobDead";
+ monster "force_5-1",170,80,"Hydra",1579,1,"force_06mob#aco::OnMyMobDead";
+ monster "force_5-1",173,80,"Hydra",1579,1,"force_06mob#aco::OnMyMobDead";
+ monster "force_5-1",176,80,"Hydra",1579,1,"force_06mob#aco::OnMyMobDead";
+ monster "force_5-1",179,80,"Hydra",1579,1,"force_06mob#aco::OnMyMobDead";
+ end;
+
+Onreset:
+ killmonster "force_5-1","force_06mob#aco::OnMyMobDead";
+ end;
+
+OnMyMobDead:
+ end;
+}
+
+force_5-1,174,40,0 script force_07start#aco -1,1,1,{
+OnTouch:
+ donpcevent "force_07mob#aco::OnEnable";
+ disablenpc "force_07start#aco";
+}
+
+- script force_07mob#aco -1,{
+OnEnable:
+ donpcevent "Trocco#aco1::On07_start";
+ monster "force_5-1",170,32,"Archer Skeleton",1420,1,"force_07mob#aco::OnMyMobDead";
+ monster "force_5-1",184,23,"Archer Skeleton",1420,1,"force_07mob#aco::OnMyMobDead";
+ monster "force_5-1",165,9,"Archer Skeleton",1420,1,"force_07mob#aco::OnMyMobDead";
+ monster "force_5-1",184,15,"Firelock Soldier",1523,1,"force_07mob#aco::OnMyMobDead";
+ monster "force_5-1",189,23,"Firelock Soldier",1523,1,"force_07mob#aco::OnMyMobDead";
+ end;
+
+Onreset:
+ killmonster "force_5-1","force_07mob#aco::OnMyMobDead";
+ end;
+
+OnMyMobDead:
+ if (mobcount("force_5-1","force_07mob#aco::OnMyMobDead") < 1) {
+ donpcevent "Trocco#aco1::On07_end";
+ donpcevent "arena_aco1::Onreset_07";
+ }
+ end;
+}
+
+force_5-1,132,26,0 script force_08start#aco -1,1,1,{
+OnTouch:
+ percentheal 50,50;
+ donpcevent "Trocco#aco1::On08_start";
+ donpcevent "arena_aco1::Onreset_08";
+ disablenpc "force_08start#aco";
+ end;
+}
+
+force_5-1,99,82,0 script force_09start#aco -1,1,1,{
+OnTouch:
+ donpcevent "Trocco#aco1::On09_start";
+ donpcevent "force_09mob#aco::OnEnable";
+ disablenpc "force_09start#aco";
+ end;
+}
+
+- script force_09mob#aco -1,{
+OnEnable:
+ monster "force_5-1",rand(88,111),rand(89,110),"Zombie Prisoner",1480,1,"force_09mob#aco::OnMyMobDead";
+ monster "force_5-1",rand(88,111),rand(89,110),"Skel Prisoner",1479,1,"force_09mob#aco::OnMyMobDead";
+ areamonster "force_5-1",88,89,111,110,"Zombie",1394,4,"force_09mob#aco::OnMyMobDead";
+ end;
+
+Onreset:
+ killmonster "force_5-1","force_09mob#aco::OnMyMobDead";
+ end;
+
+OnMyMobDead:
+ if (mobcount("force_5-1","force_09mob#aco::OnMyMobDead") < 1) {
+ donpcevent "Trocco#aco1::On09_end";
+ set $@arn_2,gettimetick(2);
+ donpcevent "arena_aco1::Onreset_09";
+ }
+ end;
+}
+
+- script arena_aco2 -1,{
+Onstart:
+ donpcevent "Trocco#aco2::OnEnable";
+ end;
+
+Onreset_01:
+ enablenpc "force_01_02#aco";
+ enablenpc "force_02start#pri";
+ end;
+
+Onreset_02:
+ donpcevent "force_02mob#pri::Onreset";
+ enablenpc "force_02_03#aco";
+ enablenpc "force_03start#pri";
+ end;
+
+Onreset_03:
+ enablenpc "force_03_04#aco";
+ enablenpc "force_04start#pri";
+ end;
+
+Onreset_04:
+ enablenpc "force_04_05#aco";
+ enablenpc "force_05start#pri";
+ end;
+
+Onreset_05:
+ enablenpc "force_05_06#aco";
+ enablenpc "force_06start#pri";
+ end;
+
+Onreset_06:
+ enablenpc "force_06_07#aco";
+ enablenpc "force_07start#pri";
+ end;
+
+Onreset_07:
+ enablenpc "force_07_08#aco";
+ enablenpc "force_08start#pri";
+ end;
+
+Onreset_08:
+ enablenpc "force_08_09#aco";
+ enablenpc "force_09start#pri";
+ end;
+
+Onreset_09:
+ enablenpc "force_exit#aco";
+}
+
+- script Trocco#aco2 -1,{
+OnEnable:
+ initnpctimer;
+ set $@arn_1,gettimetick(2);
+ end;
+
+OnTimer2000:
+ mapannounce "force_5-1","Good day! I am Trocco, your host for the Acolyte Class Time Force Battle!",bc_map|bc_npc;
+ end;
+
+OnTimer3000:
+ mapannounce "force_5-1","Make your decisions carefully. Here, the right choices make the difference between victory and defeat!",bc_map|bc_npc;
+ end;
+
+OnTimer4000:
+ mapannounce "force_5-1","You now have 8 minutes to complete this challenge. Enter the Left Entrance now to begin. Remember that you will be traveling clockwise as you clear the stages.",bc_map|bc_npc;
+ end;
+
+OnTimer60000:
+ if (getmapusers("force_5-1") == 0) {
+ donpcevent "Trocco#aco2::Onfailclearstage";
+ }
+ mapannounce "force_5-1","Time left: 7 Minutes",bc_map|bc_npc;
+ end;
+
+OnTimer120000:
+ if (getmapusers("force_5-1") == 0) {
+ donpcevent "Trocco#aco2::Onfailclearstage";
+ }
+ mapannounce "force_5-1","Time left: 6 Minutes",bc_map|bc_npc;
+ end;
+
+OnTimer180000:
+ if (getmapusers("force_5-1") == 0) {
+ donpcevent "Trocco#aco2::Onfailclearstage";
+ }
+ mapannounce "force_5-1","Time left: 5 Minutes",bc_map|bc_npc;
+ end;
+
+OnTimer240000:
+ if (getmapusers("force_5-1") == 0) {
+ donpcevent "Trocco#aco2::Onfailclearstage";
+ }
+ mapannounce "force_5-1","Time left: 4 Minutes",bc_map|bc_npc;
+ end;
+
+OnTimer300000:
+ if (getmapusers("force_5-1") == 0) {
+ donpcevent "Trocco#aco2::Onfailclearstage";
+ }
+ mapannounce "force_5-1","Time left: 3 Minutes",bc_map|bc_npc;
+ end;
+
+OnTimer360000:
+ if (getmapusers("force_5-1") == 0) {
+ donpcevent "Trocco#aco2::Onfailclearstage";
+ }
+ mapannounce "force_5-1","Time left: 2 Minutes",bc_map|bc_npc;
+ end;
+
+OnTimer420000:
+ if (getmapusers("force_5-1") == 0) {
+ donpcevent "Trocco#aco2::Onfailclearstage";
+ }
+ mapannounce "force_5-1","Time left: 1 Minute",bc_map|bc_npc;
+ end;
+
+OnTimer480000:
+ mapannounce "force_5-1","Time's up! I hope you had fun!",bc_map|bc_npc;
+ end;
+
+OnTimer485000:
+OnTimer486000:
+OnTimer487000:
+OnTimer488000:
+OnTimer489000:
+OnTimer490000:
+OnTimer491000:
+OnTimer492000:
+OnTimer493000:
+OnTimer494000:
+ mapwarp "force_5-1","prt_are_in",177,86;
+ end;
+
+OnTimer495000:
+ mapwarp "force_5-1","prt_are_in",177,86;
+ donpcevent "Trocco#aco2::Onfailclearstage";
+ end;
+
+Ontimeroff:
+ stopnpctimer;
+ end;
+
+Onfailclearstage:
+ mapwarp "force_5-1","prt_are_in",177,86;
+ donpcevent "Trocco#aco2::Ontimeroff";
+ donpcevent "arena_aco2::Onreset";
+ donpcevent "Acolyte Waiting Room::OnStart";
+ end;
+
+On01_start:
+ mapannounce "force_5-1","Objective: Kill all Zombies!",bc_map|bc_npc;
+ end;
+
+On01_end:
+ mapannounce "force_5-1","The North Exit has opened!",bc_map|bc_npc;
+ end;
+
+On02_start:
+ mapannounce "force_5-1","Objective: Defeat all monsters!",bc_map|bc_npc;
+ end;
+
+On02_end:
+ mapannounce "force_5-1","The North Exit has opened!",bc_map|bc_npc;
+ end;
+
+On03_start:
+ mapannounce "force_5-1","Objective: Destroy all Red Plants!",bc_map|bc_npc;
+ end;
+
+On03_end:
+ mapannounce "force_5-1","The East Exit has opened!",bc_map|bc_npc;
+ end;
+
+On04_start:
+ mapannounce "force_5-1","Objective: Obliterate every monster!",bc_map|bc_npc;
+ end;
+
+On04_end:
+ mapannounce "force_5-1","The East Exit has opened!",bc_map|bc_npc;
+ end;
+
+On05_start:
+ mapannounce "force_5-1","Objective: Defeat Gargoyle!",bc_map|bc_npc;
+ end;
+
+On05_end:
+ mapannounce "force_5-1","The South Exit has opened!",bc_map|bc_npc;
+ end;
+
+On06_start:
+ mapannounce "force_5-1","Objective: Kill all Khalitzburgs!",bc_map|bc_npc;
+ end;
+
+On06_end:
+ mapannounce "force_5-1","The South Exit has opened!",bc_map|bc_npc;
+ end;
+
+On07_start:
+ mapannounce "force_5-1","Objective: Kill 1 Ancient Mummy!",bc_map|bc_npc;
+ end;
+
+On07_end:
+ mapannounce "force_5-1","The West Exit has opened!",bc_map|bc_npc;
+ end;
+
+On08_start:
+ mapannounce "force_5-1","The time has come for the Boss Battle. Please move north into the next room...",bc_map|bc_npc;
+ end;
+
+On09_start:
+ mapannounce "force_5-1","Objective: Defeat the Boss Monster!",bc_map|bc_npc;
+ end;
+
+On09_end:
+ mapannounce "force_5-1","Boss Cleared! The North Exit has opened! Thank you.",bc_map|bc_npc;
+ end;
+}
+
+force_5-1,40,26,0 script force_01start#pri -1,1,1,{
+OnTouch:
+ donpcevent "force_01mob#pri::OnEnable";
+ disablenpc "force_01start#pri";
+ end;
+}
+
+- script force_01mob#pri -1,{
+OnEnable:
+ donpcevent "Trocco#aco2::On01_start";
+ areamonster "force_5-1",13,9,38,41,"Zombie",1394,10,"force_01mob#pri::OnMyMobDead";
+ end;
+
+Onreset:
+ killmonster "force_5-1","force_01mob#pri::OnMyMobDead";
+ end;
+
+OnMyMobDead:
+ if (mobcount("force_5-1","force_01mob#pri::OnMyMobDead") < 1) {
+ donpcevent "Trocco#aco2::On01_end";
+ donpcevent "arena_aco2::Onreset_01";
+ }
+ end;
+}
+
+force_5-1,25,69,0 script force_02start#pri -1,1,1,{
+OnTouch:
+ if (BaseLevel < 70) {
+ donpcevent "force_02mob#pri::OnOn1";
+ }
+ else {
+ donpcevent "force_02mob#pri::OnOn2";
+ }
+ disablenpc "force_02start#pri";
+ end;
+}
+
+- script force_02mob#pri -1,{
+OnOn1:
+ donpcevent "Trocco#aco2::On02_start";
+ areamonster "force_5-1",22,69,29,130,"Orc Skeleton",1462,5,"force_02mob#pri::OnMyMobDead";
+ end;
+
+OnOn2:
+ donpcevent "Trocco#aco2::On02_start";
+ areamonster "force_5-1",22,69,29,130,"Ghoul",1423,5,"force_02mob#pri::OnMyMobDead";
+ end;
+
+Onreset:
+ killmonster "force_5-1","force_02mob#pri::OnMyMobDead";
+ end;
+
+OnMyMobDead:
+ if (mobcount("force_5-1","force_02mob#pri::OnMyMobDead") < 1) {
+ donpcevent "Trocco#aco2::On02_end";
+ donpcevent "arena_aco2::Onreset_02";
+ }
+ end;
+}
+
+force_5-1,25,159,0 script force_03start#pri -1,1,1,{
+OnTouch:
+ donpcevent "force_03mob#pri::OnEnable";
+ disablenpc "force_03start#pri";
+ end;
+}
+
+- script force_03mob#pri -1,{
+OnEnable:
+ donpcevent "Trocco#aco2::On03_start";
+ areamonster "force_5-1",14,163,37,185,"Red Plant",1078,5,"force_03mob#pri::OnMyMobDead";
+ end;
+
+Onreset:
+ killmonster "force_5-1","force_03mob#pri::OnMyMobDead";
+ end;
+
+OnMyMobDead:
+ if (mobcount("force_5-1","force_03mob#pri::OnMyMobDead") < 1) {
+ donpcevent "Trocco#aco2::On03_end";
+ donpcevent "arena_aco2::Onreset_03";
+ }
+ end;
+}
+
+force_5-1,69,174,0 script force_04start#pri -1,1,1,{
+OnTouch:
+ if (BaseLevel < 90) {
+ donpcevent "force_04mob#pri::OnOn1";
+ }
+ else {
+ donpcevent "force_04mob#pri::OnOn2";
+ }
+ disablenpc "force_04start#pri";
+ end;
+}
+
+- script force_04mob#pri -1,{
+OnOn1:
+ donpcevent "Trocco#aco2::On04_start";
+ monster "force_5-1",rand(71,130),rand(170,178),"Evil Druid",1435,1,"force_04mob#pri::OnMyMobDead";
+ monster "force_5-1",rand(71,130),rand(170,178),"Wrath",1475,1,"force_04mob#pri::OnMyMobDead";
+ monster "force_5-1",rand(71,130),rand(170,178),"Zombie Prisoner",1480,1,"force_04mob#pri::OnMyMobDead";
+ monster "force_5-1",rand(71,130),rand(170,178),"Skel Prisoner",1479,1,"force_04mob#pri::OnMyMobDead";
+ end;
+
+OnOn2:
+ donpcevent "Trocco#aco2::On04_start";
+ areamonster "force_5-1",71,170,130,178,"Evil Druid",1435,2,"force_04mob#pri::OnMyMobDead";
+ areamonster "force_5-1",71,170,130,178,"Wrath",1475,2,"force_04mob#pri::OnMyMobDead";
+ areamonster "force_5-1",71,170,130,178,"Zombie Prisoner",1480,2,"force_04mob#pri::OnMyMobDead";
+ monster "force_5-1",rand(71,130),rand(170,178),"Skel Prisoner",1479,1,"force_04mob#pri::OnMyMobDead";
+ end;
+
+Onreset:
+ killmonster "force_5-1","force_04mob#pri::OnMyMobDead";
+ end;
+
+OnMyMobDead:
+ if (mobcount("force_5-1","force_04mob#pri::OnMyMobDead") < 1) {
+ donpcevent "Trocco#aco2::On04_end";
+ donpcevent "arena_aco2::Onreset_04";
+ }
+ end;
+}
+
+force_5-1,159,174,0 script force_05start#pri -1,1,1,{
+OnTouch:
+ donpcevent "force_05mob#pri::OnEnable";
+ if (BaseLevel < 70) {
+ donpcevent "force_05ex#pri::OnOn1";
+ }
+ else {
+ donpcevent "force_05ex#pri::OnOn2";
+ }
+ disablenpc "force_05start#pri";
+ end;
+}
+
+- script force_05ex#pri -1,{
+OnOn1:
+ areamonster "force_5-1",161,159,187,190,"Hydra",1579,10,"force_05ex#pri::OnMyMobDead";
+ end;
+
+OnOn2:
+ areamonster "force_5-1",161,159,187,190,"Penomena",1441,10,"force_05ex#pri::OnMyMobDead";
+ end;
+
+Onreset:
+ killmonster "force_5-1","force_05ex#pri::OnMyMobDead";
+ end;
+
+OnMyMobDead:
+ end;
+}
+
+- script force_05mob#pri -1,{
+OnEnable:
+ donpcevent "Trocco#aco2::On05_start";
+ areamonster "force_5-1",161,159,187,190,"Gargoyle",1597,4,"force_05mob#pri::OnMyMobDead";
+ end;
+
+Onreset:
+ killmonster "force_5-1","force_05mob#pri::OnMyMobDead";
+ end;
+
+OnMyMobDead:
+ if (mobcount("force_5-1","force_05mob#pri::OnMyMobDead") < 1) {
+ donpcevent "force_05ex#pri::Onreset";
+ donpcevent "Trocco#aco2::On05_end";
+ donpcevent "arena_aco2::Onreset_05";
+ }
+ end;
+}
+
+force_5-1,174,130,0 script force_06start#pri -1,1,1,{
+OnTouch:
+ donpcevent "force_06ex#pri::OnEnable";
+ if (BaseLevel < 70) {
+ donpcevent "force_06mob#pri::OnOn1";
+ }
+ else if (BaseLevel < 80) {
+ donpcevent "force_06mob#pri::OnOn2";
+ }
+ else {
+ donpcevent "force_06mob#pri::OnOn3";
+ }
+ disablenpc "force_06start#pri";
+ end;
+}
+
+- script force_06ex#pri -1,{
+OnEnable:
+ areamonster "force_5-1",170,67,178,131,"Permeter",1314,5,"force_06ex#pri::OnMyMobDead";
+ end;
+
+Onreset:
+ killmonster "force_5-1","force_06ex#pri::OnMyMobDead";
+ end;
+
+OnMyMobDead:
+ end;
+}
+
+- script force_06mob#pri -1,{
+OnOn1:
+ donpcevent "Trocco#aco2::On06_start";
+ monster "force_5-1",rand(170,178),rand(67,131),"Khalitzburg",1438,1,"force_06mob#pri::OnMyMobDead";
+ end;
+
+OnOn2:
+ donpcevent "Trocco#aco2::On06_start";
+ areamonster "force_5-1",170,67,178,131,"Khalitzburg",1438,2,"force_06mob#pri::OnMyMobDead";
+ end;
+
+OnOn3:
+ donpcevent "Trocco#aco2::On06_start";
+ areamonster "force_5-1",170,67,178,131,"Khalitzburg",1438,4,"force_06mob#pri::OnMyMobDead";
+ end;
+
+Onreset:
+ killmonster "force_5-1","force_06mob#pri::OnMyMobDead";
+ end;
+
+OnMyMobDead:
+ if (mobcount("force_5-1","force_06mob#pri::OnMyMobDead") < 1) {
+ donpcevent "force_06ex#pri::Onreset";
+ donpcevent "Trocco#aco2::On06_end";
+ donpcevent "arena_aco2::Onreset_06";
+ }
+ end;
+}
+
+force_5-1,174,40,0 script force_07start#pri -1,1,1,{
+OnTouch:
+ donpcevent "force_07mob#pri::OnEnable";
+ disablenpc "force_07start#pri";
+ end;
+}
+
+- script force_07mob#pri -1,{
+OnEnable:
+ donpcevent "Trocco#aco2::On07_start";
+ monster "force_5-1",rand(160,188),rand(9,42),"Ancient Mummy",1522,1,"force_07mob#pri::OnMyMobDead";
+ end;
+
+Onreset:
+ killmonster "force_5-1","force_07mob#pri::OnMyMobDead";
+ end;
+
+OnMyMobDead:
+ if (mobcount("force_5-1","force_07mob#pri::OnMyMobDead") < 1) {
+ donpcevent "Trocco#aco2::On07_end";
+ donpcevent "arena_aco2::Onreset_07";
+ }
+ end;
+}
+
+force_5-1,132,26,0 script force_08start#pri -1,1,1,{
+OnTouch:
+ donpcevent "Trocco#aco2::On08_start";
+ donpcevent "arena_aco2::Onreset_08";
+ disablenpc "force_08start#pri";
+ end;
+}
+
+force_5-1,99,82,0 script force_09start#pri -1,1,1,{
+OnTouch:
+ donpcevent "Trocco#aco2::On09_start";
+ if (BaseLevel < 70) {
+ donpcevent "force_09mob#pri::OnOn4";
+ }
+ else if (BaseLevel < 80) {
+ donpcevent "force_09mob#pri::OnOn1";
+ }
+ else if (BaseLevel < 90) {
+ donpcevent "force_09mob#pri::OnOn2";
+ }
+ else {
+ donpcevent "force_09mob#pri::OnOn3";
+ }
+ disablenpc "force_09start#pri";
+ end;
+}
+
+- script force_09mob#pri -1,{
+OnOn1:
+ monster "force_5-1",rand(88,111),rand(89,110),"Mimic",1474,1,"force_09mob#pri::OnMyMobDead";
+ end;
+
+OnOn2:
+ monster "force_5-1",rand(88,111),rand(89,110),"Wrath Dead",1566,1,"force_09mob#pri::OnMyMobDead";
+ end;
+
+OnOn3:
+ monster "force_5-1",rand(88,111),rand(89,110),"Dark Illusion",1605,1,"force_09mob#pri::OnMyMobDead";
+ end;
+
+OnOn4:
+ monster "force_5-1",rand(88,111),rand(89,110),"Zombie Prisoner",1480,1,"force_09mob#pri::OnMyMobDead";
+ monster "force_5-1",rand(88,111),rand(89,110),"Skel Prisoner",1479,1,"force_09mob#pri::OnMyMobDead";
+ areamonster "force_5-1",88,89,111,110,"Zombie",1394,4,"force_09mob#pri::OnMyMobDead";
+ end;
+
+Onreset:
+ killmonster "force_5-1","force_09mob#pri::OnMyMobDead";
+ end;
+
+OnMyMobDead:
+ if (mobcount("force_5-1","force_09mob#pri::OnMyMobDead") < 1) {
+ donpcevent "Trocco#aco2::On09_end";
+ set $@arn_2,gettimetick(2);
+ donpcevent "arena_aco2::Onreset_09";
+ }
+ end;
+}
+
+force_5-1,62,26,0 script force_08_01#aco 45,1,1,{
+OnTouch:
+ warp "force_5-1",40,26;
+ if (basejob == job_acolyte) {
+ enablenpc "force_01start#aco";
+ }
+ else {
+ enablenpc "force_01start#pri";
+ }
+ end;
+}
+
+/*
+force_5-1,25,44,0 warp force_01_02#aco 1,1,force_5-1,25,69
+force_5-1,25,134,0 warp force_02_03#aco 1,1,force_5-1,25,159
+force_5-1,44,174,0 warp force_03_04#aco 1,1,force_5-1,69,174
+force_5-1,134,174,0 warp force_04_05#aco 1,1,force_5-1,159,174
+force_5-1,174,155,0 warp force_05_06#aco 1,1,force_5-1,174,130
+force_5-1,174,65,0 warp force_06_07#aco 1,1,force_5-1,174,40
+force_5-1,155,26,0 warp force_07_08#aco 1,1,force_5-1,132,26
+force_5-1,99,54,0 warp force_08_09#aco 1,1,force_5-1,99,82
+*/
+
+force_5-1,25,44,0 script force_01_02#aco 45,1,1,{
+OnTouch:
+ warp "force_5-1",25,69;
+ end;
+}
+
+force_5-1,25,134,0 script force_02_03#aco 45,1,1,{
+OnTouch:
+ warp "force_5-1",25,159;
+ end;
+}
+
+force_5-1,44,174,0 script force_03_04#aco 45,1,1,{
+OnTouch:
+ warp "force_5-1",69,174;
+ end;
+}
+
+force_5-1,134,174,0 script force_04_05#aco 45,1,1,{
+OnTouch:
+ warp "force_5-1",159,174;
+ end;
+}
+
+force_5-1,174,155,0 script force_05_06#aco 45,1,1,{
+OnTouch:
+ warp "force_5-1",174,130;
+ end;
+}
+
+force_5-1,174,65,0 script force_06_07#aco 45,1,1,{
+OnTouch:
+ warp "force_5-1",174,40;
+ end;
+}
+
+force_5-1,155,26,0 script force_07_08#aco 45,1,1,{
+OnTouch:
+ warp "force_5-1",132,26;
+ end;
+}
+
+force_5-1,99,54,0 script force_08_09#aco 45,1,1,{
+OnTouch:
+ warp "force_5-1",99,82;
+ end;
+}
+
+force_5-1,99,124,0 script force_exit#aco 45,1,1,{
+OnTouch:
+ donpcevent "Trocco#aco1::Ontimeroff";
+ donpcevent "#arn_timer_aco::OnEnable";
+ mapwarp "force_5-1","prt_are_in",21,35;
+ end;
+}
+
+prt_are_in,181,83,3 script Staff#aco-1 67,{
+ mes "[Staff]";
+ mes "Nice work!";
+ mes "You might have failed";
+ mes "the Time Attack battle,";
+ mes "but you still earned a";
+ mes "small Arena Point reward~";
+ next;
+ if (arena_point == 30000) {
+ mes "[Staff]";
+ mes "Wait, I'm sorry, but you";
+ mes "have too many Arena Points.";
+ mes "Since you've reached the point";
+ mes "limitation, I can't give you any point rewards until you spend";
+ mes "some of your Arena Points.";
+ next;
+ }
+ else {
+ set arena_point,arena_point+1;
+ }
+ mes "[Staff]";
+ mes "Well, let me guide";
+ mes "you back outside.";
+ mes "I hope you enjoyed";
+ mes "your battle in the area~";
+ close2;
+ specialeffect2 EF_EXIT;
+ warp "arena_room",100,75;
+ end;
+}
+
+prt_are_in,25,31,3 script Staff#aco-2 67,{
+ set .@start_timeaco, $@arn_1;
+ set .@hour_startaco, .@start_timeaco / 10000;
+ set .@min_startaco, ((.@start_timeaco % 10000) / 100);
+ set .@sec_startaco, .@start_timeaco % 100;
+ set .@end_timeaco, $@arn_2;
+ set .@hour_endaco, .@end_timeaco / 10000;
+ set .@min_endaco, ((.@end_timeaco % 10000) / 100);
+ set .@sec_endaco, .@end_timeaco % 100;
+ if ((.@hour_startaco == 23) & (.@hour_endaco == 0)) {
+ set .@hour_endaco,24;
+ }
+ set .@st_to_secaco, ((.@hour_startaco * 3600) + (.@min_startaco * 60) + (.@sec_startaco));
+ set .@et_to_secaco, ((.@hour_endaco * 3600) + (.@min_endaco * 60) + (.@sec_endaco));
+ set .@record_timeaco, (.@et_to_secaco - .@st_to_secaco);
+ set .@record_houraco, .@record_timeaco / 3600;
+ set .@record_minaco, ((.@record_timeaco % 3600) / 60);
+ set .@record_secaco, .@record_timeaco % 60;
+ if ((.@record_timeaco < 0 ) || (.@record_houraco < 0) || (.@record_minaco < 0 ) || (.@record_secaco < 0)) {
+ emotion e_omg;
+ mes "[Staff]";
+ mes "How did you...?";
+ mes "According to these re-";
+ mes "Uh oh. These records";
+ mes "got messed up somehow.";
+ mes "Th-This isn't good at all!";
+ mes "Now what am I gonna do?";
+ next;
+ mes "[Staff]";
+ mes "Well, I'll give you the";
+ mes "benefit of the doubt and";
+ mes "assume you completed the";
+ mes "arena battle under the time";
+ mes "limit. So, let me give you the";
+ mes "standard Arena Point reward.";
+ next;
+ mes "[Staff]";
+ mes "I'm really sorry about";
+ mes "this, especially if you";
+ mes "broke some record, but";
+ mes "all I can do is restore your";
+ mes "HP and SP for you, "+strcharinfo(0)+".";
+ percentheal 100,100;
+ next;
+ mes "[Staff]";
+ emotion e_korea;
+ mes "Thank you.";
+ mes "I hope you enjoy";
+ mes "your time in the Arena~";
+ close2;
+ if (arena_point < 29981) {
+ set arena_point,arena_point+20;
+ warp "arena_room",100,75;
+ donpcevent "#arn_timer_aco::Onstop";
+ donpcevent "Acolyte Waiting Room::OnStart";
+ }
+ else {
+ warp "arena_room",100,75;
+ donpcevent "#arn_timer_aco::Onstop";
+ donpcevent "Acolyte Waiting Room::OnStart";
+ }
+ end;
+ }
+ else {
+ if (basejob == job_acolyte) {
+ set .@acotop_t,$arn_acotop;
+ set .@acotop_n$,$arn_acotopn$;
+ }
+ else {
+ if (BaseLevel < 70) {
+ set .@acotop_t,$arn_pritop60;
+ set .@acotop_n$,$arn_pritopn60$;
+ }
+ else if (BaseLevel < 80) {
+ set .@acotop_t,$arn_pritop70;
+ set .@acotop_n$,$arn_pritopn70$;
+ }
+ else if (BaseLevel < 90) {
+ set .@acotop_t,$arn_pritop80;
+ set .@acotop_n$,$arn_pritopn80$;
+ }
+ else {
+ set .@acotop_t,$arn_pritop90;
+ set .@acotop_n$,$arn_pritopn90$;
+ }
+ }
+ set .@topbunaco, ((.@acotop_t % 3600) / 60);
+ set .@topchoaco, .@acotop_t % 60;
+ set .@gapaco, .@acotop_t - .@record_timeaco;
+ mes "[Staff]";
+ mes "^3131FF"+strcharinfo(0)+"^000000, right?";
+ mes "Hey, you did great! You";
+ mes "completed this Arena Battle";
+ mes "in "+.@record_minaco+" min and "+.@record_secaco+" seconds!";
+ next;
+ mes "[Staff]";
+ mes "Currently, ^3131FF"+.@acotop_n$+"^000000";
+ mes "is the top player, with a record";
+ mes "of ^3131FF"+.@topbunaco+"^000000 minutes, ^3131FF"+.@topchoaco+"^000000 seconds, of the Acolyte Class Time Force Battle.";
+ next;
+ if ((.@acotop_t < 0) || (.@topbunaco < 0 ) || (.@topchoaco < 0)) {
+ emotion e_omg;
+ mes "[Staff]";
+ mes "Wait a second...";
+ mes "Your time is better";
+ mes "than that. Well now.";
+ mes "It's time I made a little";
+ mes "correction to the records.";
+ next;
+ emotion e_no1;
+ mes "[Staff]";
+ mes "Wow! A new record!";
+ mes "Excellent!";
+ next;
+ mes "[Staff]";
+ mes "^333333*Ahem*^000000 Oh wow!";
+ mes "A new record! Your";
+ mes "name will now be listed";
+ mes "under the Time Force Battle";
+ mes "Arena - Acolyte Class Record!";
+ if (basejob == job_acolyte) {
+ set $arn_acotop,.@record_timeaco;
+ set $arn_acotopn$, strcharinfo(0);
+ donpcevent "Vendigos::Onlinerec_aco";
+ }
+ else {
+ if (BaseLevel < 70) {
+ set $arn_pritop60,.@record_timeaco;
+ set $arn_pritopn60$, strcharinfo(0);
+ }
+ else if (BaseLevel < 80) {
+ set $arn_pritop70,.@record_timeaco;
+ set $arn_pritopn70$, strcharinfo(0);
+ }
+ else if (BaseLevel < 90) {
+ set $arn_pritop80,.@record_timeaco;
+ set $arn_pritopn80$, strcharinfo(0);
+ }
+ else {
+ set $arn_pritop90,.@record_timeaco;
+ set $arn_pritopn90$, strcharinfo(0);
+ }
+ donpcevent "Vendigos::Onlinerec_pri";
+ }
+ next;
+ if (arena_point == 30000) {
+ mes "[Staff]";
+ mes "Alright, let me reward you";
+ mes "with some Arena Poi--Wait.";
+ mes "I can't. Your Arena Points are";
+ mes "already maxed out. I'm sorry,";
+ mes "but you'll have to spend some before you can receive more points.";
+ next;
+ mes "[Staff]";
+ mes "Anyway, you can check";
+ mes "your current Arena Point";
+ mes "total in the Arena Lobby";
+ mes "with Vendigos. Well, I hope";
+ mes "you enjoyed your battle. Now, let me guide you back outside...";
+ close2;
+ }
+ else if (arena_point > 29950) {
+ mes "[Staff]";
+ mes "Let me reward you with some";
+ mes "Arena Points. This time, you'll";
+ mes "be getting more points since";
+ mes "you set a new record. Please";
+ mes "talk with ^3131FFVendigos^000000 in the lobby";
+ mes "to check your new point total.";
+ next;
+ mes "[Staff]";
+ mes "Well, I hope you";
+ mes "enjoyed your battle.";
+ mes "Now let me guide you";
+ mes "back to the Arena Lobby...";
+ close2;
+ set arena_point,30000;
+ }
+ else {
+ mes "[Staff]";
+ mes "Let me reward you with some";
+ mes "Arena Points. This time, you'll";
+ mes "be getting more points since";
+ mes "you set a new record. Please";
+ mes "talk with ^3131FFVendigos^000000 in the lobby";
+ mes "to check your new point total.";
+ next;
+ mes "[Staff]";
+ mes "Well, I hope you";
+ mes "enjoyed your battle.";
+ mes "Now let me guide you";
+ mes "back to the Arena Lobby...";
+ close2;
+ set arena_point,arena_point+50;
+ }
+ specialeffect2 EF_EXIT;
+ warp "arena_room",100,75;
+ donpcevent "#arn_timer_aco::Onstop";
+ donpcevent "allkill#aco::OnEnable";
+ donpcevent "Acolyte Waiting Room::OnStart";
+ end;
+ }
+ if (gapaco < 0) {
+ mes "[Staff]";
+ mes "You didn't break the";
+ mes "current record this time,";
+ mes "but you still gave an awesome";
+ mes "performance. Excellent work!";
+ next;
+ if (arena_point == 30000) {
+ mes "[Staff]";
+ mes "Alright, let me reward you";
+ mes "with some Arena Poi--Wait.";
+ mes "I can't. Your Arena Points are";
+ mes "already maxed out. I'm sorry,";
+ mes "but you'll have to spend some before you can receive more points.";
+ next;
+ mes "[Staff]";
+ mes "Anyway, you can check";
+ mes "your current Arena Point";
+ mes "total in the Arena Lobby";
+ mes "with Vendigos. Well, I hope";
+ mes "you enjoyed your battle. Now, let me guide you back outside...";
+ close2;
+ }
+ else if (arena_point > 29980) {
+ mes "[Staff]";
+ mes "Let me reward you";
+ mes "with some Arena Points.";
+ mes "Please check your new";
+ mes "Arena Point total in the";
+ mes "Arena Lobby by speaking";
+ mes "to the friendly ^3131FFVendigos.^000000";
+ next;
+ mes "[Staff]";
+ mes "Well, I hope you";
+ mes "enjoyed your battle.";
+ mes "Now let me guide you";
+ mes "back to the Arena Lobby...";
+ close2;
+ set arena_point,30000;
+ }
+ else {
+ mes "[Staff]";
+ mes "Let me reward you";
+ mes "with some Arena Points.";
+ mes "Please check your new";
+ mes "Arena Point total in the";
+ mes "Arena Lobby by speaking";
+ mes "to the friendly ^3131FFVendigos.^000000";
+ next;
+ mes "[Staff]";
+ mes "Well, I hope you";
+ mes "enjoyed your battle.";
+ mes "Now let me guide you";
+ mes "back to the Arena Lobby...";
+ close2;
+ set arena_point,arena_point+20;
+ }
+ specialeffect2 EF_EXIT;
+ warp "arena_room",100,75;
+ donpcevent "#arn_timer_aco::Onstop";
+ donpcevent "allkill#aco::OnEnable";
+ donpcevent "Acolyte Waiting Room::OnStart";
+ end;
+ }
+ else {
+ emotion e_omg;
+ mes "[Staff]";
+ mes "Wow! A new record!";
+ mes "This is awsome!";
+ next;
+ mes "[Staff]";
+ mes "Oooh... A brand new";
+ mes "record. ^3131FF"+ strcharinfo(0)+"^000000, your";
+ mes "name will now be listed in";
+ mes "the Time Force Battle Arena";
+ mes "Acolyte Class Records.";
+ mes "Congratulations~";
+ if (basejob == job_acolyte) {
+ set $arn_acotop,.@record_timeaco;
+ set $arn_acotopn$, strcharinfo(0);
+ donpcevent "#Vendigos::Onlinerec_aco";
+ }
+ else {
+ if (BaseLevel < 70) {
+ set $arn_pritop60,.@record_timeaco;
+ set $arn_pritopn60$, strcharinfo(0);
+ donpcevent "#Vendigos::Onlinerec_pri60";
+ }
+ else if (BaseLevel < 80) {
+ set $arn_pritop70,.@record_timeaco;
+ set $arn_pritopn70$, strcharinfo(0);
+ donpcevent "#Vendigos::Onlinerec_pri70";
+ }
+ else if (BaseLevel < 90) {
+ set $arn_pritop80,.@record_timeaco;
+ set $arn_pritopn80$, strcharinfo(0);
+ donpcevent "#Vendigos::Onlinerec_pri80";
+ }
+ else {
+ set $arn_pritop90,.@record_timeaco;
+ set $arn_pritopn90$, strcharinfo(0);
+ donpcevent "#Vendigos::Onlinerec_pri90";
+ }
+ }
+ next;
+ if (arena_point == 30000) {
+ mes "[Staff]";
+ mes "Alright, let me reward you";
+ mes "with some Arena Poi--Wait.";
+ mes "I can't. Your Arena Points are";
+ mes "already maxed out. I'm sorry,";
+ mes "but you'll have to spend some before you can receive more points.";
+ next;
+ mes "[Staff]";
+ mes "Anyway, you can check";
+ mes "your current Arena Point";
+ mes "total in the Arena Lobby";
+ mes "with Vendigos. Well, I hope";
+ mes "you enjoyed your battle. Now, let me guide you back outside...";
+ close2;
+ }
+ else if (arena_point > 29980) {
+ mes "[Staff]";
+ mes "Let me reward you with some";
+ mes "Arena Points. This time, you'll";
+ mes "be getting more points since";
+ mes "you set a new record. Please";
+ mes "talk with ^3131FFVendigos^000000 in the lobby";
+ mes "to check your new point total.";
+ next;
+ mes "[Staff]";
+ mes "Well, I hope you";
+ mes "enjoyed your battle.";
+ mes "Now let me guide you";
+ mes "back to the Arena Lobby...";
+ close2;
+ set arena_point,30000;
+ }
+ else {
+ mes "[Staff]";
+ mes "Let me reward you with some";
+ mes "Arena Points. This time, you'll";
+ mes "be getting more points since";
+ mes "you set a new record. Please";
+ mes "talk with ^3131FFVendigos^000000 in the lobby";
+ mes "to check your new point total.";
+ next;
+ mes "[Staff]";
+ mes "Well, I hope you";
+ mes "enjoyed your battle.";
+ mes "Now let me guide you";
+ mes "back to the Arena Lobby...";
+ close2;
+ set arena_point,arena_point+20;
+ }
+ specialeffect2 EF_EXIT;
+ warp "arena_room",100,75;
+ donpcevent "#arn_timer_aco::Onstop";
+ donpcevent "allkill#aco::OnEnable";
+ donpcevent "Acolyte Waiting Room::OnStart";
+ }
+ close;
+ }
+}
+
+- script #arn_timer_aco -1,{
+OnEnable:
+ initnpctimer;
+ end;
+
+OnTimer2000:
+ mapannounce "prt_are_in","This broadcast is to inform you about the Acolyte Class Arena.",bc_map,"0xFFCE00";
+ end;
+
+OnTimer3000:
+ mapannounce "prt_are_in","For smoother game play, the Warp Portal in the Final Waiting Room will activate in 1 minute.",bc_map,"0xFFCE00";
+ end;
+
+OnTimer4000:
+ mapannounce "prt_are_in","Thank you.",bc_map,"0xFFCE00";
+ end;
+
+OnTimer60000:
+ donpcevent "arn_warp_aco::Onout";
+ donpcevent "#arn_timer_aco::Onstop";
+ //donpcevent "alloff#aco::OnEnable";
+ donpcevent "Acolyte Waiting Room::OnStart";
+ end;
+
+Onstop:
+ stopnpctimer;
+ end;
+}
+
+prt_are_in,22,29,0 script arn_warp_aco -1,20,20,{
+OnInit:
+ disablenpc "arn_warp_aco";
+ end;
+
+Onout:
+ enablenpc "arn_warp_aco";
+ end;
+
+Onhide:
+ disablenpc "arn_warp_aco";
+ end;
+
+OnTouch:
+ warp "arena_room",100,75;
+ donpcevent "arn_warp_aco::Onhide";
+ end;
+}
+
+- script timer_aco2 -1,{
+OnEnable:
+ initnpctimer;
+ end;
+
+Onstop:
+ stopnpctimer;
+ end;
+}
+
+- script allkill#aco -1,{
+OnEnable:
+ donpcevent "force_01mob#aco::Onreset";
+ donpcevent "force_02mob#aco::Onreset";
+ donpcevent "force_03mob#aco::Onreset";
+ donpcevent "force_05mob#aco::Onreset";
+ donpcevent "force_06mob#aco::Onreset";
+ donpcevent "force_07mob#aco::Onreset";
+ donpcevent "force_09mob#aco::Onreset";
+ donpcevent "force_01mob#pri::Onreset";
+ donpcevent "force_02mob#pri::Onreset";
+ donpcevent "force_03mob#pri::Onreset";
+ donpcevent "force_04mob#pri::Onreset";
+ donpcevent "force_05mob#pri::Onreset";
+ donpcevent "force_06mob#pri::Onreset";
+ donpcevent "force_07mob#pri::Onreset";
+ donpcevent "force_09mob#pri::Onreset";
+ donpcevent "force_05ex#pri::Onreset";
+ disablenpc "force_01start#aco";
+ disablenpc "force_02start#aco";
+ disablenpc "force_03start#aco";
+ disablenpc "force_04start#aco";
+ disablenpc "force_05start#aco";
+ disablenpc "force_06start#aco";
+ disablenpc "force_07start#aco";
+ disablenpc "force_08start#aco";
+ disablenpc "force_09start#aco";
+ disablenpc "force_01start#pri";
+ disablenpc "force_02start#pri";
+ disablenpc "force_03start#pri";
+ disablenpc "force_04start#pri";
+ disablenpc "force_05start#pri";
+ disablenpc "force_06start#pri";
+ disablenpc "force_07start#pri";
+ disablenpc "force_08start#pri";
+ disablenpc "force_09start#pri";
+ disablenpc "force_01_02#aco";
+ disablenpc "force_02_03#aco";
+ disablenpc "force_03_04#aco";
+ disablenpc "force_04_05#aco";
+ disablenpc "force_05_06#aco";
+ disablenpc "force_06_07#aco";
+ disablenpc "force_07_08#aco";
+ disablenpc "force_08_09#aco";
+ disablenpc "force_exit#aco";
+ disablenpc "arn_warp_aco"; //050630
+ donpcevent "Trocco#aco1::Onstop";
+ donpcevent "Trocco#aco2::Onstop";
+ donpcevent "#arn_timer_aco::Onstop";
+ end;
+}
+
+arena_room,94,82,7 script Arena Record Staff#aco 79,{
+ mes "[Mathea]";
+ mes "Hello, I'm in charge of";
+ mes "the Acolyte Class Records";
+ mes "in the Arena. If you'd like to";
+ mes "view the other records, please";
+ mes "talk to the Arena Record Staff,";
+ mes "Owen Kheuv, and he'll help you.";
+ next;
+ mes "[Mathea]";
+ mes "Would you like to";
+ mes "see who are the top";
+ mes "players in the Acolyte";
+ mes "Class Arena Challenges?";
+ mes "Please choose from the menu.";
+ next;
+ switch(select("Acolyte Mode:Priest - Level 70 or lower:Priest - Level 80 or lower:Priest - Level 90 or lower:Priest - Level 91 ~ 99")) {
+ case 1:
+ set .@acotop_t,$arn_acotop;
+ set .@acotop_n$,$arn_acotopn$;
+ set .@acotopbun, ((.@acotop_t % 3600) / 60 );
+ set .@acotopcho, (.@acotop_t % 60);
+ mes "[Mathea]";
+ mes "^3131FF"+.@acotop_n$+"^000000";
+ mes "is the top player of the";
+ mes "Acolyte Mode, finishing";
+ mes "with a time of ^3131FF"+.@acotopbun+"^000000 minutes";
+ mes "and ^3131FF"+.@acotopcho+"^000000 seconds. Thank you";
+ mes "for participating in the Arena.";
+ close;
+ case 2:
+ set .@pritop_t,$arn_pritop60;
+ set .@pritop_n$,$arn_pritopn60$;
+ break;
+ case 3:
+ set .@pritop_t,$arn_pritop70;
+ set .@pritop_n$,$arn_pritopn70$;
+ break;
+ case 4:
+ set .@pritop_t,$arn_pritop80;
+ set .@pritop_n$,$arn_pritopn80$;
+ break;
+ case 5:
+ set .@pritop_t,$arn_pritop90;
+ set .@pritop_n$,$arn_pritopn90$;
+ break;
+ }
+ set .@pritopbun, ((.@pritop_t % 3600) / 60 );
+ set .@pritopcho, (.@pritop_t % 60);
+ mes "[Mathea]";
+ mes "^3131FF"+.@pritop_n$+"^000000";
+ mes "is the top player of this";
+ mes "Priest Mode, finishing ";
+ mes "with a time of ^3131FF"+.@pritopbun+" minutes";
+ mes "and ^3131FF"+.@pritopcho+" seconds. Thank you";
+ mes "for participating in the Arena.";
+ close;
+
+OnInit:
+ if ($arn_acotopn$ == "") {
+ set $arn_pritop60, 480;
+ set $arn_pritop70, 480;
+ set $arn_pritop80, 480;
+ set $arn_pritop90, 480;
+ set $arn_acotop, 480;
+ set $arn_pritopn60$, "Default";
+ set $arn_pritopn70$, "Default";
+ set $arn_pritopn80$, "Default";
+ set $arn_pritopn90$, "Default";
+ set $arn_acotopn$, "Default";
+ }
+ end;
+}
+
+- script #Vendigos -1,{
+Onlinerec_aco:
+ mapannounce "arena_room","Vendigos: "+$arn_acotopn$+" has made a new record in the Arena Time Force Battle - Acolyte Mode. Congratulations!",bc_map,"0xFFFF00";
+ end;
+
+Onlinerec_pri60:
+ mapannounce "arena_room","Vendigos: "+$arn_pritopn60$+" has made a new record in the Arena Time Force Battle - Priest: Level 70 or lower. Congratulations!",bc_map,"0xFFFF00";
+ end;
+
+Onlinerec_pri70:
+ mapannounce "arena_room","Vendigos: "+$arn_pritopn70$+" has made a new record in the Arena Time Force Battle - Priest: Level 80 or lower. Congratulations!",bc_map,"0xFFFF00";
+ end;
+
+Onlinerec_pri80:
+ mapannounce "arena_room","Vendigos: "+$arn_pritopn80$+" has made a new record in the Arena Time Force Battle - Priest: Level 90 or lower. Congratulations!",bc_map,"0xFFFF00";
+ end;
+
+Onlinerec_pri90:
+ mapannounce "arena_room","Vendigos: "+$arn_pritopn90$+" has made a new record in the Arena Time Force Battle - Priest: Level 91~99. Congratulations!",bc_map,"0xFFFF00";
+ end;
+}
+
+arena_room,140,136,3 script Guide Alias 729,{
+ mes "[Alias]";
+ mes "Hello there, I'm here";
+ mes "to inform you about";
+ mes "the Izlude Arena's";
+ mes "Acolyte Class Mode.";
+ mes "My name is Alias,";
+ mes "your Arena Guide.";
+ next;
+ mes "[Alias]";
+ mes "Now, there are two modes";
+ mes "under Acolyte Class Mode.";
+ mes "These are ^3131FFAcolyte Mode^000000 and";
+ mes "^3131FFPriest Mode^000000. For both modes,";
+ mes "you will need to wait inside the ^3131FFAcolyte Class Waiting Room^000000.";
+ next;
+ mes "[Alias]";
+ mes "Once it's your turn,";
+ mes "you'll be sent out of the";
+ mes "waiting room and guided to";
+ mes "the arena grounds. Oh, and";
+ mes "the entrance fee is 1,000 zeny.";
+ next;
+ mes "[Alias]";
+ mes "It'll be handy to know";
+ mes "that the Red Plants and";
+ mes "Permeters in the Acolyte";
+ mes "Class Mode will drop items";
+ mes "and give experience. Other";
+ mes "monsters, however, won't.";
+ next;
+ mes "[Alias]";
+ mes "Once you've been guided";
+ mes "to the actual arena grounds,";
+ mes "listen to ^3131FFTrocco^000000 for the mission objectives that you will have to";
+ mes "complete within the time limit";
+ mes "of ^3131FF8 minutes^000000. Don't forget~";
+ next;
+ mes "[Alias]";
+ mes "Upon completing the";
+ mes "entire stage, you will be";
+ mes "warped to the ^3131DDFinale Waiting";
+ mes "Room^000000 where you'll be rewarded";
+ mes "with Arena Points. But you must^FFFFFFaaaa^000000 get your points within 1 minute.";
+ next;
+ mes "[Alias]";
+ mes "Once you're automatically";
+ mes "sent outside of the Finale";
+ mes "Waiting Room, you won't have";
+ mes "the chance to get your Arena";
+ mes "Points if you didn't get them";
+ mes "there, so be careful~";
+ next;
+ mes "[Alias]";
+ mes "Well, I hope you enjoy";
+ mes "the Acolyte Mode Arena!";
+ mes "Good luck and good fighting!";
+ close;
+}
+
+/*
+arena_room,195,5,3 script log-on-aco#arena 802,{
+ input .@input; //,0,2000;
+ if (.@input == 0) {
+ mes "^3355FFIncorrect Password.^000000";
+ close;
+ }
+ else if (.@input == 1357) {
+ mes "[!!CAUTION!!]";
+ mes "^3355FFThe following menu";
+ mes "the record for that";
+ mes "particular mode in the";
+ mes "Arena Acolyte Class Mode.^000000";
+ next;
+ switch(select("Cancel:Acolyte:~level 70:~level 80:~level 90:~level 99")) {
+ case 1:
+ mes "^3355FFCommand has";
+ mes "been canceled.^000000";
+ close;
+ case 2:
+ set $arn_acotop, 480;
+ set $arn_acotopn$, "Default";
+ break;
+ case 3:
+ set $arn_pritop60, 480;
+ set $arn_pritopn60$, "Default";
+ break;
+ case 4:
+ set $arn_pritop70, 480;
+ set $arn_pritopn70$, "Default";
+ break;
+ case 5:
+ set $arn_pritop80, 480;
+ set $arn_pritopn80$, "Default";
+ break;
+ case 6:
+ set $arn_pritop90, 480;
+ set $arn_pritopn90$, "Default";
+ break;
+ }
+ close;
+ }
+}
+
+arena_room,195,10,3 script acolink#arena 802,{
+ input .@input; //,0,2000;
+ if (.@input == 0) {
+ mes "Command has";
+ mes "been canceled.";
+ close;
+ }
+ else if (.@input == 1357) {
+ mes "This NPC opens and";
+ mes "closes the Warp Portal";
+ mes "to the Arena's Acolyte";
+ mes "Class Mode. Choose";
+ mes "an option from the menu.";
+ next;
+ switch(select("Cancel:Warp ON:Warp OFF")) {
+ case 1:
+ mes "Command has";
+ mes "been canceled.";
+ close;
+ case 2:
+ enablenpc "onlyaco#arena";
+ mes "The Warp Portal";
+ mes "will be opened shortly.";
+ close;
+ case 3:
+ disablenpc "onlyaco#arena";
+ mes "The Warp Portal";
+ mes "will be closed shortly.";
+ close;
+ }
+ }
+}
+*/
diff --git a/npc/pre-re/other/arena/arena_lvl50.txt b/npc/pre-re/other/arena/arena_lvl50.txt
new file mode 100644
index 000000000..87f61825b
--- /dev/null
+++ b/npc/pre-re/other/arena/arena_lvl50.txt
@@ -0,0 +1,1108 @@
+//===== rAthena Script ========================================
+//= Izlude Arena lvl 50
+//===== By: ==================================================
+//= SinSloth
+//===== Current Version: =====================================
+//= 1.1
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Description: =========================================
+//= Izlude Battle Arena Level 50
+//===== Additional Comments: =================================
+//= 1.0 First version.
+//= 1.1 Replaced effect numerics with constants. [Samuray22]
+//============================================================
+
+arena_room,64,138,5 script lvl 50s Waiting Room 124,{
+ end;
+
+OnInit:
+ waitingroom "Individual; Level 50 to 69",50,"lvl 50s Waiting Room::OnStartArena",1,1000,50,69;
+ enablewaitingroomevent;
+ end;
+
+OnStartArena:
+ warpwaitingpc "force_1-1",99,12;
+ donpcevent "arena#50::Onstart";
+ disablewaitingroomevent;
+ end;
+
+Onstart:
+ enablewaitingroomevent;
+ end;
+}
+
+force_1-1,99,20,4 script Heel and Toe#arena 124,{
+ end;
+
+OnInit:
+ set $@mapcount50, 0;
+ end;
+
+Onstart:
+ initnpctimer;
+ set $arena_min50st,gettime(2);
+ set $arena_sec50st,gettime(1);
+ end;
+
+OnTimer3000:
+ mapannounce "force_1-1","Good day, my name is Heel and Toe, the guide of Time Force Battle for lvl 50s!",0;
+ end;
+
+OnTimer4000:
+ mapannounce "force_1-1","Remember your right decision will save a lot of your time!",0;
+ end;
+
+OnTimer5000:
+ mapannounce "force_1-1","In order to complete this battle course, you must start from the far left of this room to the clock wise direction. Please move to the far left side. You have 5 minutes from now.",0;
+ end;
+
+OnTimer60000:
+ set $@mapcount50, getmapusers ("force_1-1");
+ if ($@mapcount50 == 0) {
+ donpcevent "Heel and Toe#arena::Onfailclearstage";
+ }
+ mapannounce "force_1-1","Remaining Time : 4 minutes ",0;
+ end;
+
+OnTimer120000:
+ set $@mapcount50, getmapusers ("force_1-1");
+ if ($@mapcount50 == 0) {
+ donpcevent "Heel and Toe#arena::Onfailclearstage";
+ }
+ mapannounce "force_1-1","Remaining Time : 3 minutes ",0;
+ end;
+
+OnTimer180000:
+ set $@mapcount50, getmapusers ("force_1-1");
+ if ($@mapcount50 == 0) {
+ donpcevent "Heel and Toe#arena::Onfailclearstage";
+ }
+ mapannounce "force_1-1","Remaining Time : 2 minutes ",0;
+end;
+OnTimer240000:
+ set $@mapcount50, getmapusers ("force_1-1");
+ if ($@mapcount50 == 0) {
+ donpcevent "Heel and Toe#arena::Onfailclearstage";
+ }
+ mapannounce "force_1-1","Remaining Time : 1 minute ",0;
+ end;
+
+OnTimer300000:
+ mapannounce "force_1-1","Your time is over. I hope you had a good time~",0;
+ end;
+
+OnTimer305000:
+OnTimer306000:
+OnTimer307000:
+OnTimer308000:
+OnTimer309000:
+OnTimer310000:
+OnTimer311000:
+OnTimer312000:
+OnTimer313000:
+OnTimer314000:
+ mapwarp "force_1-1","prt_are_in",126,190,0,0;
+ end;
+
+OnTimer315000:
+ mapwarp "force_1-1","prt_are_in",126,190,0,0;
+ donpcevent "Heel and Toe#arena::Onfailclearstage";
+ end;
+
+Ontimeroff:
+ stopnpctimer;
+ end;
+
+Onfailclearstage:
+ donpcevent "cast#50::Ontimeover1";
+ mapwarp "force_1-1","prt_are_in",126,190,0,0;
+ donpcevent "Heel and Toe#arena::Ontimeroff";
+ donpcevent "arena#50::Onreset_all";
+ donpcevent "alloff#50::Onon";
+ donpcevent "lvl 50s Waiting Room::Onstart";
+ end;
+
+On01_start:
+ mapannounce "force_1-1","In order to clear this battle, you must kill all Smokies!",0;
+ end;
+
+On01_end:
+ mapannounce "force_1-1","A door to the north room has opened!",0;
+ end;
+
+On02_start:
+ mapannounce "force_1-1","Please escape to the door from monsters!",0;
+ end;
+
+On02_end:
+ mapannounce "force_1-1","A door to the north room has opened!",0;
+ end;
+
+On03_start:
+ mapannounce "force_1-1","In order to clear this battle, you must kill all Karakasa!",0;
+ end;
+
+On03_end:
+ mapannounce "force_1-1","Clear! A door to the east room has opened!",0;
+ end;
+
+On04_start:
+ mapannounce "force_1-1","In order to clear this battle, you must kill all Kobolds and escape to the east room!",0;
+ end;
+
+On04_end:
+ mapannounce "force_1-1","A door to the east room has opened!",0;
+ end;
+
+On05_start:
+ mapannounce "force_1-1","In order to clear this battle, you must kill all monsters except obstructor monsters!",0;
+ end;
+
+On05_end:
+ mapannounce "force_1-1","Clear! A door to the south room has opened!",0;
+ end;
+
+On06_start:
+ mapannounce "force_1-1","In order to clear this battle, you must kill all Drops and escape to the south room!",0;
+ end;
+
+On06_end:
+ mapannounce "force_1-1","A door to the south room has opened!",0;
+ end;
+
+On07_start:
+ mapannounce "force_1-1","In order to clear this battle, you must get rid of a Red Plant in the center of this room while dodging attacks from Hydras!",0;
+ end;
+
+On07_end:
+ mapannounce "force_1-1","Clear! A door to the west room has opened!",0;
+ end;
+
+On08_start:
+ mapannounce "force_1-1","Please escape to the north exit!",0;
+ end;
+
+On09_start:
+ mapannounce "force_1-1","In order to clear this battle, you must defeat a Vocal!",0;
+ end;
+
+On09_end:
+ mapannounce "force_1-1","Boss Clear! - A door at the north has opened. Thank you. ",0;
+ end;
+
+}
+
+- script arena#50 -1,{
+
+Onreset_01:
+ donpcevent "force_01ex#50::Onreset";
+ donpcevent "force_02start#50::Onon";
+ enablenpc "force_01_02#50";
+ enablenpc "force_02_03#50";
+ end;
+
+Onreset_02:
+ donpcevent "force_02mob#50::Onreset";
+ donpcevent "force_03start#50::Onon";
+ end;
+
+Onreset_03:
+ enablenpc "force_03_04#50";
+ donpcevent "force_04start#50::Onon";
+ donpcevent "force_03ex#50::Onreset";
+ end;
+
+Onreset_04:
+ enablenpc "force_04_05#50";
+ donpcevent "force_05start#50::Onon";
+ donpcevent "force_04ex#50::Onreset";
+ end;
+
+Onreset_05:
+ enablenpc "force_05_06#50";
+ donpcevent "force_06start#50::Onon";
+ donpcevent "force_05ex#50::Onreset";
+ end;
+
+Onreset_06:
+ enablenpc "force_06_07#50";
+ donpcevent "force_07start#50::Onon";
+ donpcevent "force_06ex#50::Onreset";
+ end;
+
+Onreset_07:
+ enablenpc "force_07_08#50";
+ donpcevent "force_07ex#50::Onreset";
+ donpcevent "force_08start#50::Onon";
+ end;
+
+Onreset_08:
+ donpcevent "force_09start#50::Onon";
+ enablenpc "force_08_09#50";
+ end;
+
+Onreset_09:
+ enablenpc "force_exit#50";
+ end;
+
+Onstart:
+ disablenpc "force_01_02#50";
+ disablenpc "force_02_03#50";
+ disablenpc "force_03_04#50";
+ disablenpc "force_04_05#50";
+ disablenpc "force_05_06#50";
+ disablenpc "force_06_07#50";
+ disablenpc "force_07_08#50";
+ disablenpc "force_08_09#50";
+ disablenpc "force_exit#50";
+ donpcevent "Heel and Toe#arena::Ontimeroff";
+ donpcevent "force_01mob#50::Onreset";
+ donpcevent "force_02mob#50::Onreset";
+ donpcevent "force_03mob#50::Onreset";
+ donpcevent "force_04mob#50::Onreset";
+ donpcevent "force_05mob#50::Onreset";
+ donpcevent "force_06mob#50::Onreset";
+ donpcevent "force_07mob#50::Onreset";
+ donpcevent "force_09mob#50::Onreset";
+ donpcevent "force_01ex#50::Onreset";
+ donpcevent "force_03ex#50::Onreset";
+ donpcevent "force_04ex#50::Onreset";
+ donpcevent "force_05ex#50::Onreset";
+ donpcevent "force_06ex#50::Onreset";
+ donpcevent "force_07ex#50::Onreset";
+ donpcevent "force_08ex#50::Onreset";
+ donpcevent "force_09ex#50::Onreset";
+ enablenpc "force_08_01#50";
+ donpcevent "force_01start#50::Onon";
+ donpcevent "Heel and Toe#arena::Onstart";
+ end;
+
+Onreset_all:
+ donpcevent "force_01mob#50::Onreset";
+ donpcevent "force_02mob#50::Onreset";
+ donpcevent "force_03mob#50::Onreset";
+ donpcevent "force_04mob#50::Onreset";
+ donpcevent "force_05mob#50::Onreset";
+ donpcevent "force_06mob#50::Onreset";
+ donpcevent "force_07mob#50::Onreset";
+ donpcevent "force_09mob#50::Onreset";
+ donpcevent "force_01ex#50::Onreset";
+ donpcevent "force_03ex#50::Onreset";
+ donpcevent "force_04ex#50::Onreset";
+ donpcevent "force_05ex#50::Onreset";
+ donpcevent "force_06ex#50::Onreset";
+ donpcevent "force_07ex#50::Onreset";
+ donpcevent "force_08ex#50::Onreset";
+ donpcevent "force_09ex#50::Onreset";
+ end;
+
+}
+
+force_1-1,62,26,1 script force_08_01#50 45,1,1,{
+
+OnTouch:
+ donpcevent "Heel and Toe#arena::On01_start";
+ warp "force_1-1",40,26;
+ end;
+
+}
+
+force_1-1,25,44,1 script force_01_02#50 45,1,1,{
+
+OnTouch:
+ donpcevent "Heel and Toe#arena::On02_start";
+ warp "force_1-1",25,69;
+ end;
+
+}
+
+force_1-1,25,134,1 script force_02_03#50 45,1,1,{
+
+OnTouch:
+ donpcevent "arena#50::Onreset_02";
+ donpcevent "Heel and Toe#arena::On03_start";
+ warp "force_1-1",25,159;
+ end;
+
+}
+
+force_1-1,44,174,1 script force_03_04#50 45,1,1,{
+
+OnTouch:
+ donpcevent "Heel and Toe#arena::On04_start";
+ warp "force_1-1",69,174;
+ end;
+
+}
+
+force_1-1,134,174,1 script force_04_05#50 45,1,1,{
+
+OnTouch:
+ donpcevent "Heel and Toe#arena::On05_start";
+ warp "force_1-1",159,174;
+ end;
+
+}
+
+force_1-1,174,155,1 script force_05_06#50 45,1,1,{
+
+OnTouch:
+ donpcevent "Heel and Toe#arena::On06_start";
+ warp "force_1-1",174,130;
+ end;
+
+}
+
+force_1-1,174,65,1 script force_06_07#50 45,1,1,{
+
+OnTouch:
+ donpcevent "Heel and Toe#arena::On07_start";
+ warp "force_1-1",174,40;
+ end;
+
+}
+
+force_1-1,155,26,1 script force_07_08#50 45,1,1,{
+
+OnTouch:
+ donpcevent "Heel and Toe#arena::On08_start";
+ warp "force_1-1",132,26;
+ enablenpc "force_08_09#50";
+ end;
+
+}
+
+force_1-1,99,54,1 script force_08_09#50 45,1,1,{
+
+OnTouch:
+ donpcevent "Heel and Toe#arena::On09_start";
+ warp "force_1-1",99,82;
+ end;
+
+}
+
+force_1-1,99,124,1 script force_exit#50 45,1,1,{
+
+OnTouch:
+ donpcevent "Heel and Toe#arena::Ontimeroff";
+ donpcevent "#arn_timer_50::Onon";
+ mapwarp "force_1-1","prt_are_in",22,191,0,0;
+ end;
+
+}
+
+- script force_01start#50 -1,{
+Onon:
+ donpcevent "force_01mob#50::Onon";
+end;
+
+}
+
+- script force_01ex#50 -1,{
+
+Onreset:
+ killmonster "force_1-1","force_01ex#50::OnMobEx";
+ end;
+
+Onsummonmob1:
+ monster "force_1-1",25,26,"Drops",1572,1,"force_01ex#50::OnMobEx";
+ monster "force_1-1",15,25,"Drops",1572,1,"force_01ex#50::OnMobEx";
+ monster "force_1-1",30,25,"Drops",1572,1,"force_01ex#50::OnMobEx";
+ monster "force_1-1",25,31,"Drops",1572,1,"force_01ex#50::OnMobEx";
+ monster "force_1-1",24,19,"Drops",1572,1,"force_01ex#50::OnMobEx";
+ monster "force_1-1",25,28,"Drops",1572,1,"force_01ex#50::OnMobEx";
+ monster "force_1-1",18,23,"Drops",1572,1,"force_01ex#50::OnMobEx";
+ monster "force_1-1",24,25,"Drops",1572,1,"force_01ex#50::OnMobEx";
+ monster "force_1-1",23,18,"Drops",1572,1,"force_01ex#50::OnMobEx";
+ monster "force_1-1",20,18,"Drops",1572,1,"force_01ex#50::OnMobEx";
+ monster "force_1-1",35,31,"Hydra",1579,1,"force_01ex#50::OnMobEx";
+ monster "force_1-1",35,28,"Hydra",1579,1,"force_01ex#50::OnMobEx";
+ monster "force_1-1",35,25,"Hydra",1579,1,"force_01ex#50::OnMobEx";
+ monster "force_1-1",35,21,"Hydra",1579,1,"force_01ex#50::OnMobEx";
+ monster "force_1-1",26,16,"Poisonous Toad",1556,1,"force_01ex#50::OnMobEx";
+ monster "force_1-1",26,15,"Poisonous Toad",1556,1,"force_01ex#50::OnMobEx";
+ monster "force_1-1",26,14,"Poisonous Toad",1556,1,"force_01ex#50::OnMobEx";
+ monster "force_1-1",23,17,"Poisonous Toad",1556,1,"force_01ex#50::OnMobEx";
+ monster "force_1-1",23,18,"Poisonous Toad",1556,1,"force_01ex#50::OnMobEx";
+ monster "force_1-1",23,19,"Poisonous Toad",1556,1,"force_01ex#50::OnMobEx";
+ monster "force_1-1",29,20,"Poisonous Toad",1556,1,"force_01ex#50::OnMobEx";
+ monster "force_1-1",23,16,"Poisonous Toad",1556,1,"force_01ex#50::OnMobEx";
+ monster "force_1-1",19,16,"Poisonous Toad",1556,1,"force_01ex#50::OnMobEx";
+ monster "force_1-1",32,19,"Poisonous Toad",1556,1,"force_01ex#50::OnMobEx";
+ end;
+
+OnMobEx:
+ end;
+
+}
+
+- script force_01mob#50 -1,{
+
+Onon:
+ donpcevent "force_01ex#50::Onsummonmob1";
+ monster "force_1-1",25,25,"Smokie",1561,1,"force_01mob#50::OnMobDeath";
+ monster "force_1-1",18,25,"Smokie",1561,1,"force_01mob#50::OnMobDeath";
+ monster "force_1-1",32,25,"Smokie",1561,1,"force_01mob#50::OnMobDeath";
+ monster "force_1-1",25,32,"Smokie",1561,1,"force_01mob#50::OnMobDeath";
+ monster "force_1-1",25,18,"Smokie",1561,1,"force_01mob#50::OnMobDeath";
+ set $force_01_50,5;
+ end;
+
+Onreset:
+ killmonster "force_1-1","force_01mob#50::OnMobDeath";
+ end;
+
+OnMobDeath:
+ set $force_01_50,$force_01_50 -1;
+ if ($force_01_50 < 1) {
+ donpcevent "Heel and Toe#arena::On01_end";
+ donpcevent "arena#50::Onreset_01";
+ }
+ end;
+}
+
+- script force_02start#50 -1,{
+
+Onon:
+ donpcevent "force_02mob#50::Onsummonmob2";
+ end;
+}
+
+- script force_02mob#50 -1,{
+
+Onreset:
+ killmonster "force_1-1","force_02mob#50::OnMobEx";
+ end;
+
+Onsummonmob2:
+ monster "force_1-1",24,76,"Familiar",1419,1,"force_02mob#50::OnMobEx";
+ monster "force_1-1",28,76,"Familiar",1419,1,"force_02mob#50::OnMobEx";
+ monster "force_1-1",24,86,"Familiar",1419,1,"force_02mob#50::OnMobEx";
+ monster "force_1-1",26,86,"Ghoul",1423,1,"force_02mob#50::OnMobEx";
+ monster "force_1-1",25,100,"Ghoul",1423,1,"force_02mob#50::OnMobEx";
+ monster "force_1-1",26,118,"Ghoul",1423,1,"force_02mob#50::OnMobEx";
+ monster "force_1-1",28,79,"Mummy",1393,1,"force_02mob#50::OnMobEx";
+ monster "force_1-1",23,87,"Mummy",1393,1,"force_02mob#50::OnMobEx";
+ monster "force_1-1",28,99,"Mummy",1393,1,"force_02mob#50::OnMobEx";
+ monster "force_1-1",23,112,"Mummy",1393,1,"force_02mob#50::OnMobEx";
+ monster "force_1-1",28,128,"Mummy",1393,1,"force_02mob#50::OnMobEx";
+ end;
+
+OnMobEx:
+ end;
+}
+
+- script force_03start#50 -1,{
+
+Onon:
+ donpcevent "force_03mob#50::Onon";
+ end;
+}
+
+- script force_03ex#50 -1,{
+
+Onreset:
+ killmonster "force_1-1","force_03ex#50::OnMobEx";
+ end;
+
+Onsummonmob_03:
+ monster "force_1-1",26,173,"Hydra",1579,1,"force_03ex#50::OnMobEx";
+ monster "force_1-1",21,173,"Hydra",1579,1,"force_03ex#50::OnMobEx";
+ monster "force_1-1",31,173,"Hydra",1579,1,"force_03ex#50::OnMobEx";
+ monster "force_1-1",26,186,"Marse",1551,1,"force_03ex#50::OnMobEx";
+ monster "force_1-1",26,161,"Marse",1551,1,"force_03ex#50::OnMobEx";
+ monster "force_1-1",13,173,"Marse",1551,1,"force_03ex#50::OnMobEx";
+ monster "force_1-1",38,173,"Marse",1551,1,"force_03ex#50::OnMobEx";
+ monster "force_1-1",29,174,"Marse",1551,1,"force_03ex#50::OnMobEx";
+ end;
+
+OnMobEx:
+ end;
+}
+
+- script force_03mob#50 -1,{
+
+Onon:
+ donpcevent "force_03ex#50::Onsummonmob_03";
+ monster "force_1-1",23,174,"Karakasa",1544,1,"force_03mob#50::OnMobDeath";
+ monster "force_1-1",18,173,"Karakasa",1544,1,"force_03mob#50::OnMobDeath";
+ monster "force_1-1",33,173,"Karakasa",1544,1,"force_03mob#50::OnMobDeath";
+ monster "force_1-1",26,181,"Karakasa",1544,1,"force_03mob#50::OnMobDeath";
+ monster "force_1-1",26,166,"Karakasa",1544,1,"force_03mob#50::OnMobDeath";
+ set $force_03_50,5;
+ end;
+
+Onreset:
+ killmonster "force_1-1","force_03mob#50::OnMobDeath";
+ end;
+
+OnMobDeath:
+ set $force_03_50,$force_03_50 -1;
+ donpcevent "force_03mob#50::Onsummonmob_03";
+ if ($force_03_50 < 1) {
+ donpcevent "Heel and Toe#arena::On03_end";
+ donpcevent "arena#50::Onreset_03";
+ }
+ end;
+}
+
+- script force_04start#50 -1,{
+
+Onon:
+ donpcevent "force_04mob#50::Onon";
+end;
+
+}
+
+- script force_04ex#50 -1,{
+
+Onreset:
+ killmonster "force_1-1","force_04ex#50::OnMobEx";
+ end;
+
+Onsummonmob_04:
+ monster "force_1-1",99,174,"Familiar",1419,1,"force_04ex#50::OnMobEx";
+ monster "force_1-1",103,174,"Familiar",1419,1,"force_04ex#50::OnMobEx";
+ monster "force_1-1",107,174,"Familiar",1419,1,"force_04ex#50::OnMobEx";
+ monster "force_1-1",111,176,"Familiar",1419,1,"force_04ex#50::OnMobEx";
+ monster "force_1-1",115,176,"Familiar",1419,1,"force_04ex#50::OnMobEx";
+ monster "force_1-1",119,172,"Familiar",1419,1,"force_04ex#50::OnMobEx";
+ monster "force_1-1",95,178,"Familiar",1419,1,"force_04ex#50::OnMobEx";
+ monster "force_1-1",100,178,"Familiar",1419,1,"force_04ex#50::OnMobEx";
+ monster "force_1-1",105,172,"Familiar",1419,1,"force_04ex#50::OnMobEx";
+ monster "force_1-1",110,172,"Flora",1575,1,"force_04ex#50::OnMobEx";
+ monster "force_1-1",115,172,"Flora",1575,1,"force_04ex#50::OnMobEx";
+ monster "force_1-1",120,172,"Flora",1575,1,"force_04ex#50::OnMobEx";
+ monster "force_1-1",125,172,"Flora",1575,1,"force_04ex#50::OnMobEx";
+ monster "force_1-1",105,178,"Flora",1575,1,"force_04ex#50::OnMobEx";
+ end;
+
+OnMobEx:
+ end;
+
+}
+
+- script force_04mob#50 -1,{
+
+Onon:
+ donpcevent "force_04ex#50::Onsummonmob_04";
+ monster "force_1-1",85,172,"Kobold",1547,1,"force_04mob#50::OnMobDeath";
+ monster "force_1-1",95,172,"Kobold",1547,1,"force_04mob#50::OnMobDeath";
+ monster "force_1-1",120,172,"Kobold",1545,1,"force_04mob#50::OnMobDeath";
+ set $force_04_50,3;
+ end;
+Onreset:
+ killmonster "force_1-1","force_04mob#50::OnMobDeath";
+ end;
+
+OnMobDeath:
+ set $force_04_50,$force_04_50 -1;
+ if ($force_04_50 < 1) {
+ donpcevent "Heel and Toe#arena::On04_end";
+ donpcevent "arena#50::Onreset_04";
+ }
+ end;
+}
+
+- script force_05start#50 -1,{
+
+Onon:
+ donpcevent "force_05mob#50::Onon";
+ end;
+}
+
+- script force_05ex#50 -1,{
+
+Onreset:
+ killmonster "force_1-1","force_05ex#50::OnMobEx";
+ end;
+
+Onsummonmob_05:
+ set $@randmonster50,rand(1,2);
+ switch($@randmonster50) {
+ case 1:
+ monster "force_1-1",174,174,"Desert Wolf",1432,1,"force_05ex#50::OnMobEx";
+ break;
+ case 2:
+ monster "force_1-1",173,173,"Zerom",1470,1,"force_05ex#50::OnMobEx";
+ break;
+ }
+ end;
+
+OnMobEx:
+ end;
+}
+
+- script force_05mob#50 -1,{
+
+Onon:
+ monster "force_1-1",173,166,"Hydra",1579,1,"force_05mob#50::OnMobDeath";
+ monster "force_1-1",171,170,"Hydra",1579,1,"force_05mob#50::OnMobDeath";
+ monster "force_1-1",177,170,"Hydra",1579,1,"force_05mob#50::OnMobDeath";
+ monster "force_1-1",183,173,"Orc Lady",1452,1,"force_05mob#50::OnMobDeath";
+ monster "force_1-1",173,173,"Orc Lady",1452,1,"force_05mob#50::OnMobDeath";
+ monster "force_1-1",181,173,"Golem",1540,1,"force_05mob#50::OnMobDeath";
+ monster "force_1-1",171,177,"Golem",1540,1,"force_05mob#50::OnMobDeath";
+ set $force_05_50,7;
+ end;
+
+Onreset:
+ killmonster "force_1-1","force_05mob#50::OnMobDeath";
+ end;
+
+OnMobDeath:
+ set $force_05_50,$force_05_50 -1;
+ if ($force_05_50 < 1) {
+ donpcevent "Heel and Toe#arena::On05_end";
+ donpcevent "arena#50::Onreset_05";
+ }
+ else donpcevent "force_05ex#50::Onsummonmob_05";
+ end;
+
+}
+
+- script force_06start#50 -1,{
+
+Onon:
+ donpcevent "force_06mob#50::Onon";
+ end;
+}
+
+- script force_06ex#50 -1,{
+
+Onreset:
+ killmonster "force_1-1","force_06ex#50::OnMobEx";
+ end;
+
+Onsummonmob_06:
+ monster "force_1-1",173,118,"Smokie",1561,1,"force_06ex#50::OnMobEx";
+ monster "force_1-1",173,108,"Smokie",1561,1,"force_06ex#50::OnMobEx";
+ monster "force_1-1",173,99,"Smokie",1561,1,"force_06ex#50::OnMobEx";
+ monster "force_1-1",171,108,"Golem",1540,1,"force_06ex#50::OnMobEx";
+ monster "force_1-1",171,99,"Skel Worker",1469,1,"force_06ex#50::OnMobEx";
+ monster "force_1-1",171,85,"Skel Worker",1469,1,"force_06ex#50::OnMobEx";
+ monster "force_1-1",171,90,"Golem",1540,1,"force_06ex#50::OnMobEx";
+ monster "force_1-1",171,79,"Scorpion",1559,1,"force_06ex#50::OnMobEx";
+ monster "force_1-1",175,118,"Scorpion",1559,1,"force_06ex#50::OnMobEx";
+ monster "force_1-1",175,108,"Sandman",1558,1,"force_06ex#50::OnMobEx";
+ monster "force_1-1",175,99,"Sandman",1558,1,"force_06ex#50::OnMobEx";
+ end;
+
+OnMobEx:
+ end;
+}
+
+- script force_06mob#50 -1,{
+
+Onon:
+ donpcevent "force_06ex#50::Onsummonmob_06";
+ monster "force_1-1",173,90,"Drops",1572,1,"force_06mob#50::OnMobDeath";
+ monster "force_1-1",173,79,"Drops",1572,1,"force_06mob#50::OnMobDeath";
+ monster "force_1-1",172,70,"Drops",1572,1,"force_06mob#50::OnMobDeath";
+ monster "force_1-1",175,70,"Drops",1572,1,"force_06mob#50::OnMobDeath";
+ monster "force_1-1",171,118,"Drops",1572,1,"force_06mob#50::OnMobDeath";
+ set $force_06_50,5;
+ end;
+
+Onreset:
+ killmonster "force_1-1","force_06mob#50::OnMobDeath";
+ end;
+
+OnMobDeath:
+ set $force_06_50,$force_06_50 -1;
+ if ($force_06_50 < 1) {
+ donpcevent "Heel and Toe#arena::On06_end";
+ donpcevent "arena#50::Onreset_06";
+ }
+ end;
+}
+
+- script force_07start#50 -1,{
+
+Onon:
+ donpcevent "force_07mob#50::Onon";
+ end;
+}
+
+- script force_07ex#50 -1,{
+
+Onreset:
+ killmonster "force_1-1","force_07ex#50::OnMobEx";
+ end;
+
+Onsummonmob_07:
+ monster "force_1-1",163,36,"Hydra",1579,1,"force_07ex#50::OnMobEx";
+ monster "force_1-1",167,36,"Hydra",1579,1,"force_07ex#50::OnMobEx";
+ monster "force_1-1",171,36,"Hydra",1579,1,"force_07ex#50::OnMobEx";
+ monster "force_1-1",175,36,"Hydra",1579,1,"force_07ex#50::OnMobEx";
+ monster "force_1-1",179,36,"Hydra",1579,1,"force_07ex#50::OnMobEx";
+ monster "force_1-1",183,36,"Hydra",1579,1,"force_07ex#50::OnMobEx";
+ monster "force_1-1",183,32,"Hydra",1579,1,"force_07ex#50::OnMobEx";
+ monster "force_1-1",183,28,"Hydra",1579,1,"force_07ex#50::OnMobEx";
+ monster "force_1-1",183,24,"Hydra",1579,1,"force_07ex#50::OnMobEx";
+ monster "force_1-1",183,20,"Hydra",1579,1,"force_07ex#50::OnMobEx";
+ monster "force_1-1",183,16,"Hydra",1579,1,"force_07ex#50::OnMobEx";
+ monster "force_1-1",179,16,"Hydra",1579,1,"force_07ex#50::OnMobEx";
+ monster "force_1-1",175,16,"Hydra",1579,1,"force_07ex#50::OnMobEx";
+ monster "force_1-1",171,16,"Hydra",1579,1,"force_07ex#50::OnMobEx";
+ monster "force_1-1",167,16,"Hydra",1579,1,"force_07ex#50::OnMobEx";
+ monster "force_1-1",163,16,"Hydra",1579,1,"force_07ex#50::OnMobEx";
+ monster "force_1-1",163,20,"Hydra",1579,1,"force_07ex#50::OnMobEx";
+ monster "force_1-1",163,24,"Hydra",1579,1,"force_07ex#50::OnMobEx";
+ monster "force_1-1",163,28,"Hydra",1579,1,"force_07ex#50::OnMobEx";
+ monster "force_1-1",163,32,"Hydra",1579,1,"force_07ex#50::OnMobEx";
+ monster "force_1-1",163,31,"Punk",1481,1,"force_07ex#50::OnMobEx";
+ monster "force_1-1",163,23,"Punk",1481,1,"force_07ex#50::OnMobEx";
+ end;
+
+OnMobEx:
+ end;
+}
+
+- script force_07mob#50 -1,{
+
+Onon:
+ donpcevent "force_07ex#50::Onsummonmob_07";
+ monster "force_1-1",174,25,"Red Plant",1078,1,"force_07mob#50::OnMobDeath";
+ set $force_07_50,1;
+ end;
+
+Onreset:
+ killmonster "force_1-1","force_07mob#50::OnMobDeath";
+ end;
+
+OnMobDeath:
+ set $force_07_50,$force_07_50 -1;
+ if ($force_07_50 < 1) {
+ donpcevent "Heel and Toe#arena::On07_end";
+ donpcevent "arena#50::Onreset_07";
+ }
+ end;
+}
+
+- script force_08start#50 -1,{
+
+Onon:
+ donpcevent "force_08ex#50::Onon";
+ end;
+}
+
+- script force_08ex#50 -1,{
+
+Onon:
+ donpcevent "arena#50::Onreset_08";
+ end;
+}
+
+- script force_09start#50 -1,{
+
+Onon:
+ donpcevent "force_09mob#50::Onon";
+ end;
+}
+
+- script force_09ex#50 -1,{
+
+Onreset:
+ killmonster "force_1-1","force_09ex#50::OnMobEx";
+ end;
+
+Onsummonmob_09:
+ monster "force_1-1",110,110,"Familiar",1419,1,"force_09ex#50::OnMobEx";
+ monster "force_1-1",89,110,"Familiar",1419,1,"force_09ex#50::OnMobEx";
+ monster "force_1-1",89,89,"Familiar",1419,1,"force_09ex#50::OnMobEx";
+ monster "force_1-1",110,89,"Familiar",1419,1,"force_09ex#50::OnMobEx";
+ monster "force_1-1",105,105,"Familiar",1419,1,"force_09ex#50::OnMobEx";
+ monster "force_1-1",94,105,"Familiar",1419,1,"force_09ex#50::OnMobEx";
+ monster "force_1-1",94,94,"Familiar",1419,1,"force_09ex#50::OnMobEx";
+ monster "force_1-1",110,110,"Familiar",1419,1,"force_09ex#50::OnMobEx";
+ monster "force_1-1",89,110,"Familiar",1419,1,"force_09ex#50::OnMobEx";
+ monster "force_1-1",89,89,"Familiar",1419,1,"force_09ex#50::OnMobEx";
+ monster "force_1-1",110,89,"Familiar",1419,1,"force_09ex#50::OnMobEx";
+ monster "force_1-1",105,105,"Familiar",1419,1,"force_09ex#50::OnMobEx";
+ monster "force_1-1",94,105,"Familiar",1419,1,"force_09ex#50::OnMobEx";
+ monster "force_1-1",94,94,"Familiar",1419,1,"force_09ex#50::OnMobEx";
+ monster "force_1-1",105,94,"Familiar",1419,1,"force_09ex#50::OnMobEx";
+ end;
+
+OnMobEx:
+ end;
+}
+
+- script force_09mob#50 -1,{
+
+Onon:
+ monster "force_1-1",99,99,"Vocal",1581,1,"force_09mob#50::OnMobDeath";
+ donpcevent "force_09ex#50::Onsummonmob_09";
+ set $force_09_50,1;
+ end;
+
+Onreset:
+ killmonster "force_1-1","force_09mob#50::OnMobDeath";
+ end;
+
+OnMobDeath:
+ set $force_09_50,$force_09_50 -1;
+ if ($force_09_50 < 1) {
+ donpcevent "Heel and Toe#arena::On09_end";
+ donpcevent "arena#50::Onreset_09";
+ donpcevent "arena#50::Onreset_all";
+ set $arena_min50end,gettime(2);
+ set $arena_sec50end,gettime(1);
+ }
+ end;
+}
+
+prt_are_in,129,188,3 script Staff#50-1 67,{
+
+ mes "[Staff]";
+ mes "You did a good job.";
+ mes "Even if you have failed to clear a time attack battle, I will reward you with a small amount of arena points.";
+ next;
+ if (arena_point == 30000) {
+ mes "[Staff]";
+ mes "Uh huh!";
+ mes "You already have enough arena points.";
+ mes "Please spend some arena points later. When I see you next time, I will make sure to give you some reward.";
+ next;
+ }
+ else set arena_point, arena_point + 1;
+ mes "[Staff]";
+ mes "Let me guide you outside. I hope you had a good time.";
+ close2;
+ specialeffect2 EF_EXIT;
+ warp "arena_room",100,75;
+ end;
+}
+
+prt_are_in,25,188,3 script Staff#50-2 67,{
+
+ if($arena_min50end < $arena_min50st)
+ {
+ if($arena_sec50end < $arena_sec50st)
+ {
+ set @record_min50,60 - $arena_min50st + $arena_min50end -1;
+ set @record_sec50,60 - $arena_sec50st + $arena_sec50end;
+ }
+ else
+ {
+ set @record_min50,60 - $arena_min50st + $arena_min50end;
+ set @record_sec50,$arena_sec50end - $arena_sec50st;
+ }
+ }
+ else
+ {
+ if($arena_sec50end < $arena_sec50st)
+ {
+ set @record_min50,$arena_min50end - $arena_min50st -1;
+ set @record_sec50,60 - $arena_sec50st + $arena_sec50end;
+ }
+ else
+ {
+ set @record_min50,$arena_min50end - $arena_min50st;
+ set @record_sec50,$arena_sec50end - $arena_sec50st;
+ }
+ }
+ set @gap50,(60 * $top_50min + $top_50sec) - (60 * @record_min50 + @record_sec50);
+ mes "[Staff]";
+ mes "Wow, you did a good job~ ";
+ mes "Your name is...^3131FF" + strcharinfo(0) +"^000000, isn't it?";
+ mes "^3131FF"+ strcharinfo(0) +"^000000, total time you spent to pass the battle..";
+ next;
+ mes "[Staff]";
+ mes "is "+@record_min50+"minutes "+@record_sec50+"seconds.";
+ mes "Congratulations!";
+ next;
+ mes "[Staff]";
+ mes "The fastest player among people who cleared lvl 50s arena time force battle is ^3131FF"+$arena_50topn$+"^000000.";
+ next;
+ mes "[Staff]";
+ mes "^3131FF"+$arena_50topn$+"^000000's running time was ^3131FF"+$top_50min+"^000000minutes ^3131FF"+$top_50sec+"^000000seconds.";
+ next;
+ if (@gap50 < 0) {
+ mes "[Staff]";
+ mes "Although you failed to make a new record, I hope you will succeed next time.";
+ next;
+ if (arena_point > 29980) {
+ mes "[Staff]";
+ mes "Then let me reward you with some arena points....eh?";
+ mes "Your arena points have exceeded the maximum amount. I cannot give you more points until you spend some points.";
+ next;
+ mes "[Staff]";
+ mes "You can check the amount of arena points you have in the arena waiting room.";
+ next;
+ mes "[Staff]";
+ mes "I hope you had a good time and let me guide you to the entrance of arena.";
+ mes "Thank you.";
+ close2;
+ }
+ else
+ {
+ set arena_point, arena_point + 20;
+ mes "[Staff]";
+ mes "Let me reward you some arena points.";
+ mes "If you wish to check the amount of arena points you have, please go talk to ^3131FFVendigos^000000 at the arena entrance.";
+ next;
+ mes "[Staff]";
+ mes "Let me guide you to the entrance of arena.";
+ mes "See you later~";
+ close2;
+ }
+ specialeffect2 EF_EXIT;
+ donpcevent "cast#50::Onnomal1";
+ warp "arena_room",100,75;
+ donpcevent "#arn_timer_50::Onstop";
+ donpcevent "alloff#50::Onon";
+ donpcevent "lvl 50s Waiting Room::Onstart";
+ end;
+ }
+ else
+ {
+ emotion e_omg;
+ mes "[Staff]";
+ mes "Wow! You have renewed the record!";
+ mes "What a great job!";
+ next;
+ mes "[Staff]";
+ mes "You have been recorded as the fastest player among people who cleared ^FF0000Arena Time Force Battle lvl 50s^000000, ^3131FF"+strcharinfo(0)+"^000000.";
+ set $top_50min, @record_min50;
+ set $top_50sec, @record_sec50;
+ set $arena_50topn$,strcharinfo(0);
+ donpcevent "Vendigos::Onlinerec_50";
+ next;
+ if (arena_point > 29950) {
+ mes "[Staff]";
+ mes "Then let me reward you with some arena points....eh?";
+ mes "Your arena points have exceeded the maximum amount. I cannot give you more points until you spend some points.";
+ next;
+ mes "[Staff]";
+ mes "You can check the amount of arena points you have in the arena waiting room.";
+ next;
+ mes "[Staff]";
+ mes "I hope you had a good time and let me guide you to the entrance of arena.";
+ mes "Thank you.";
+ close2;
+ }
+ else
+ {
+ mes "[Staff]";
+ mes "Let me reward you with some arena points.";
+ mes "At the same time, since you have renewed the record you will receive an extra amount of the points this time.";
+ next;
+ set arena_point, arena_point + 50;
+ mes "[Staff]";
+ mes "Let me reward you some arena points.";
+ mes "If you wish to check the amount of arena points you have, please go talk to ^3131FFVendigos^000000 at the arena entrance.";
+ next;
+ mes "[Staff]";
+ mes "Let me guide you to the entrance of arena.";
+ mes "See you later~";
+ close2;
+ }
+ specialeffect2 EF_HIT5;
+ donpcevent "cast#50::Onnomal2";
+ warp "arena_room",100,75;
+ donpcevent "#arn_timer_50::Onstop";
+ donpcevent "alloff#50::Onon";
+ donpcevent "lvl 50s Waiting Room::Onstart";
+ end;
+ }
+}
+
+- script #arn_timer_50 -1,{
+
+Onon:
+ initnpctimer;
+ end;
+
+OnTimer2000:
+ mapannounce "prt_are_in","This broadcast informs you about the restriction for arena lvl 50s.",0,0xFFCE00;
+ end;
+
+OnTimer3000:
+ mapannounce "prt_are_in","For a smooth game play, exit warp portal will be activated in 1 minute.",0,0xFFCE00;
+ end;
+
+OnTimer4000:
+ mapannounce "prt_are_in","Please proceed your battle quickly as possible in order to avoid disadvantage. Thank you for your cooperation.",0,0xFFCE00;
+ end;
+
+OnTimer60000:
+ donpcevent "cast#50::Ontimeover2";
+ donpcevent "arn_warp_50::Onout";
+ donpcevent "#arn_timer_50::Onstop";
+ donpcevent "alloff#50::Onon";
+ donpcevent "lvl 50s Waiting Room::Onstart";
+ end;
+
+Onstop:
+ stopnpctimer;
+ end;
+
+}
+
+- script arn_warp_50 -1,{
+
+Onout:
+ areawarp "prt_are_in",14,195,29,178,"arena_room",100,75;
+ end;
+}
+
+- script cast#50 -1,{
+Ontimeover1:
+ mapannounce "force_1-1","Arena will be reactivated due to an error occurred during battle.",0,0xFFCE00;
+ end;
+Ontimeover2:
+ mapannounce "force_1-1","Arena will be activated due to an error occurred in the waiting room.",0,0xFFCE00;
+ end;
+Onnomal1:
+ mapannounce "force_1-1","Arena will be reactivated.",0,0xFFCE00;
+ end;
+Onnomal2:
+ mapannounce "force_1-1","Arena will be reactivated.",0,0xFFCE00;
+ end;
+}
+
+- script alloff#50 -1,{
+
+Onon:
+ mapwarp "force_1-1","prt_are_in",126,190,0,0;
+ donpcevent "force_01mob#50::Onreset";
+ donpcevent "force_02mob#50::Onreset";
+ donpcevent "force_03mob#50::Onreset";
+ donpcevent "force_04mob#50::Onreset";
+ donpcevent "force_05mob#50::Onreset";
+ donpcevent "force_06mob#50::Onreset";
+ donpcevent "force_07mob#50::Onreset";
+ donpcevent "force_09mob#50::Onreset";
+ donpcevent "force_01ex#50::Onreset";
+ donpcevent "force_03ex#50::Onreset";
+ donpcevent "force_04ex#50::Onreset";
+ donpcevent "force_05ex#50::Onreset";
+ donpcevent "force_06ex#50::Onreset";
+ donpcevent "force_07ex#50::Onreset";
+ donpcevent "force_08ex#50::Onreset";
+ donpcevent "force_09ex#50::Onreset";
+ donpcevent "Heel and Toe#arena::Ontimeroff";
+ disablenpc "Heel and Toe#arena";
+ disablenpc "force_01_02#50";
+ disablenpc "force_02_03#50";
+ disablenpc "force_03_04#50";
+ disablenpc "force_04_05#50";
+ disablenpc "force_05_06#50";
+ disablenpc "force_06_07#50";
+ disablenpc "force_07_08#50";
+ disablenpc "force_08_09#50";
+ disablenpc "force_exit#50";
+ disablenpc "arena#50";
+ donpcevent "#arn_timer_50::Onstop";
+ enablenpc "Heel and Toe#arena";
+ enablenpc "arena#50";
+ end;
+
+OnInit:
+ if(!$top_50min && !$top_50sec) set $top_50min,5;
+ end;
+
+}
diff --git a/npc/pre-re/other/arena/arena_lvl60.txt b/npc/pre-re/other/arena/arena_lvl60.txt
new file mode 100644
index 000000000..37d076683
--- /dev/null
+++ b/npc/pre-re/other/arena/arena_lvl60.txt
@@ -0,0 +1,1110 @@
+//===== rAthena Script ========================================
+//= Izlude Arena lvl 60
+//===== By: ==================================================
+//= SinSloth
+//===== Current Version: =====================================
+//= 1.2
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Description: =========================================
+//= Izlude Battle Arena Level 60
+//===== Additional Comments: =================================
+//= 1.0 First version.
+//= 1.1 Fixed coordinate typo. (bugreport:1663) [L0ne_W0lf]
+//= 1.2 Replaced effect numerics with constants. [Samuray22]
+//============================================================
+
+arena_room,38,88,5 script lvl 60s Waiting Room 124,{
+ end;
+
+OnInit:
+ waitingroom "Individual; Level 60 to 79",50,"lvl 60s Waiting Room::OnStartArena",1,1000,60,79;
+ enablewaitingroomevent;
+ end;
+
+OnStartArena:
+ warpwaitingpc "force_2-1",99,12;
+ donpcevent "arena#60::Onstart";
+ disablewaitingroomevent;
+ end;
+
+Onstart:
+ enablewaitingroomevent;
+ end;
+}
+
+force_2-1,99,20,4 script Minilover#arena 124,{
+ end;
+
+OnInit:
+ set $@mapcount60, 0;
+ end;
+
+Onstart:
+ initnpctimer;
+ set $arena_min60st,gettime(2);
+ set $arena_sec60st,gettime(1);
+ end;
+
+OnTimer3000:
+ mapannounce "force_2-1","Good day, my name is Minilover, the guide of Time Force Battle for lvl 60s!",0;
+ end;
+
+OnTimer4000:
+ mapannounce "force_2-1","Remember your right decision will save a lot of your time!",0;
+ end;
+
+OnTimer5000:
+ mapannounce "force_2-1","In order to complete this battle course, you must start from the far left of this room to the clock wise direction. Please move to the far left side. You have 6 minutes from now.",0;
+ end;
+
+OnTimer60000:
+ set $@mapcount60, getmapusers ("force_2-1");
+ if ($@mapcount60 == 0) {
+ donpcevent "Minilover#arena::Onfailclearstage";
+ }
+ mapannounce "force_2-1","Remaining Time : 5 minutes ",0;
+ end;
+
+OnTimer120000:
+ set $@mapcount60, getmapusers ("force_2-1");
+ if ($@mapcount60 == 0) {
+ donpcevent "Minilover#arena::Onfailclearstage";
+ }
+ mapannounce "force_2-1","Remaining Time : 4 minutes ",0;
+ end;
+
+OnTimer180000:
+ set $@mapcount60, getmapusers ("force_2-1");
+ if ($@mapcount60 == 0) {
+ donpcevent "Minilover#arena::Onfailclearstage";
+ }
+ mapannounce "force_2-1","Remaining Time : 3 minutes ",0;
+ end;
+
+OnTimer240000:
+ set $@mapcount60, getmapusers ("force_2-1");
+ if ($@mapcount60 == 0) {
+ donpcevent "Minilover#arena::Onfailclearstage";
+ }
+ mapannounce "force_2-1","Remaining Time : 2 minutes ",0;
+ end;
+
+OnTimer300000:
+ set $@mapcount60, getmapusers ("force_2-1");
+ if ($@mapcount60 == 0) {
+ donpcevent "Minilover#arena::Onfailclearstage";
+ }
+ mapannounce "force_2-1","Remaining Time : 1 minute ",0;
+ end;
+
+OnTimer360000:
+ mapannounce "force_2-1","Your time is over. I hope you had a good time~",0;
+ end;
+
+OnTimer365000:
+OnTimer366000:
+OnTimer367000:
+OnTimer368000:
+OnTimer369000:
+OnTimer370000:
+OnTimer371000:
+OnTimer372000:
+OnTimer373000:
+OnTimer374000:
+ mapwarp "force_2-1","prt_are_in",126,139,0,0;
+ end;
+
+OnTimer375000:
+ mapwarp "force_2-1","prt_are_in",126,139,0,0;
+ donpcevent "Minilover#arena::Onfailclearstage";
+ end;
+
+Ontimeroff:
+ stopnpctimer;
+ end;
+
+Onfailclearstage:
+ donpcevent "cast#60::Ontimeover1";
+ mapwarp "force_2-1","prt_are_in",126,139,0,0;
+ donpcevent "Minilover#arena::Ontimeroff";
+ donpcevent "arena#60::Onreset_all";
+ donpcevent "alloff#60::Onon";
+ donpcevent "lvl 60s Waiting Room::Onstart";
+ end;
+
+On01_start:
+ mapannounce "force_2-1","In order to clear this battle, you must kill at least 5 Goblins while dodging Rotar Zairos!",0;
+ end;
+
+On01_end:
+ mapannounce "force_2-1","A door to the north room has opened!",0;
+ end;
+
+On02_start:
+ mapannounce "force_2-1","Escape to the north exit from the monsters!",0;
+ end;
+
+On02_end:
+ mapannounce "force_2-1","A door to the north room has opened!",0;
+ end;
+
+On03_start:
+ mapannounce "force_2-1","In order to clear this battle, you must kill all Mantises!",0;
+ end;
+
+On03_end:
+ mapannounce "force_2-1","Clear! A door to the east room has opened!",0;
+ end;
+
+On04_start:
+ mapannounce "force_2-1","In order to clear this battle, you must kill all non-aggressive monsters while dodging aggressive monsters!",0;
+ end;
+
+On04_end:
+ mapannounce "force_2-1","A door to the east room has opened!",0;
+ end;
+
+On05_start:
+ mapannounce "force_2-1","In order to clear this battle, you must kill all monsters except Hydras and Kaphas!",0;
+ end;
+
+On05_end:
+ mapannounce "force_2-1","Clear! A door to the south room has opened!",0;
+ end;
+
+On06_start:
+ mapannounce "force_2-1","In order to clear this battle, you must kill all Miyabi Dolls and escape to the south exit!",0;
+ end;
+
+On06_end:
+ mapannounce "force_2-1","A door to the south room has opened!",0;
+ end;
+
+On07_start:
+ mapannounce "force_2-1","In order to clear this battle, you must kill all monsters!",0;
+ end;
+
+On07_end:
+ mapannounce "force_2-1","Clear! A door to the west room has opened!",0;
+ end;
+
+On08_start:
+ mapannounce "force_2-1","Please escape to the north exit!",0;
+ end;
+
+On09_start:
+ mapannounce "force_2-1","In order to clear this battle, you must defeat a Goblin Leader!",0;
+ end;
+
+On09_end:
+ mapannounce "force_2-1","Boss Clear! - North exit has opened. Thank you.",0;
+ end;
+
+}
+
+- script arena#60 -1,{
+
+Onreset_01:
+ donpcevent "force_01ex#60::Onreset";
+ donpcevent "force_01mob#60::Onreset";
+ donpcevent "force_02start#60::Onon";
+ enablenpc "force_01_02#60";
+ enablenpc "force_02_03#60";
+ end;
+
+Onreset_02:
+ donpcevent "force_02mob#60::Onreset";
+ donpcevent "force_03start#60::Onon";
+ end;
+
+Onreset_03:
+ enablenpc "force_03_04#60";
+ donpcevent "force_04start#60::Onon";
+ donpcevent "force_03ex#60::Onreset";
+ end;
+
+Onreset_04:
+ enablenpc "force_04_05#60";
+ donpcevent "force_05start#60::Onon";
+ donpcevent "force_04ex#60::Onreset";
+ end;
+
+Onreset_05:
+ enablenpc "force_05_06#60";
+ donpcevent "force_06start#60::Onon";
+ donpcevent "force_05ex#60::Onreset";
+ donpcevent "force_05mob#60::Onreset";
+ end;
+
+Onreset_06:
+ enablenpc "force_06_07#60";
+ donpcevent "force_07start#60::Onon";
+ donpcevent "force_06ex#60::Onreset";
+ donpcevent "force_06mob#60::Onreset";
+ end;
+
+Onreset_07:
+ enablenpc "force_07_08#60";
+ donpcevent "force_08start#60::Onon";
+ end;
+
+Onreset_08:
+ donpcevent "force_09start#60::Onon";
+ enablenpc "force_08_09#60";
+ end;
+
+Onreset_09:
+ enablenpc "force_exit#60";
+ end;
+
+Onstart:
+ disablenpc "force_01_02#60";
+ disablenpc "force_02_03#60";
+ disablenpc "force_03_04#60";
+ disablenpc "force_04_05#60";
+ disablenpc "force_05_06#60";
+ disablenpc "force_06_07#60";
+ disablenpc "force_07_08#60";
+ disablenpc "force_08_09#60";
+ disablenpc "force_exit#60";
+ donpcevent "Minilover#arena::Ontimeroff";
+ donpcevent "force_01mob#60::Onreset";
+ donpcevent "force_02mob#60::Onreset";
+ donpcevent "force_03mob#60::Onreset";
+ donpcevent "force_04mob#60::Onreset";
+ donpcevent "force_05mob#60::Onreset";
+ donpcevent "force_06mob#60::Onreset";
+ donpcevent "force_07mob#60::Onreset";
+ donpcevent "force_08mob#60::Onreset";
+ donpcevent "force_09mob#60::Onreset";
+ donpcevent "force_01ex#60::Onreset";
+ donpcevent "force_03ex#60::Onreset";
+ donpcevent "force_04ex#60::Onreset";
+ donpcevent "force_05ex#60::Onreset";
+ donpcevent "force_06ex#60::Onreset";
+ donpcevent "force_08ex#60::Onreset";
+ donpcevent "force_09ex#60::Onreset";
+ enablenpc "force_08_01#60";
+ donpcevent "force_01start#60::Onon";
+ donpcevent "Minilover#arena::Onstart";
+ end;
+
+Onreset_all:
+ donpcevent "force_01mob#60::Onreset";
+ donpcevent "force_02mob#60::Onreset";
+ donpcevent "force_03mob#60::Onreset";
+ donpcevent "force_04mob#60::Onreset";
+ donpcevent "force_05mob#60::Onreset";
+ donpcevent "force_06mob#60::Onreset";
+ donpcevent "force_07mob#60::Onreset";
+ donpcevent "force_08mob#60::Onreset";
+ donpcevent "force_09mob#60::Onreset";
+ donpcevent "force_01ex#60::Onreset";
+ donpcevent "force_03ex#60::Onreset";
+ donpcevent "force_04ex#60::Onreset";
+ donpcevent "force_05ex#60::Onreset";
+ donpcevent "force_06ex#60::Onreset";
+ donpcevent "force_08ex#60::Onreset";
+ donpcevent "force_09ex#60::Onreset";
+ end;
+
+}
+
+force_2-1,62,26,1 script force_08_01#60 45,1,1,{
+
+OnTouch:
+ donpcevent "Minilover#arena::On01_start";
+ warp "force_2-1",40,26;
+ end;
+}
+
+force_2-1,25,44,1 script force_01_02#60 45,1,1,{
+
+OnTouch:
+ donpcevent "Minilover#arena::On02_start";
+ warp "force_2-1",25,69;
+ end;
+}
+
+force_2-1,25,134,1 script force_02_03#60 45,1,1,{
+
+OnTouch:
+ donpcevent "arena#60::Onreset_02";
+ donpcevent "Minilover#arena::On03_start";
+ warp "force_2-1",25,159;
+ end;
+}
+
+force_2-1,44,174,1 script force_03_04#60 45,1,1,{
+
+OnTouch:
+ donpcevent "Minilover#arena::On04_start";
+ warp "force_2-1",69,174;
+ end;
+}
+
+force_2-1,134,174,1 script force_04_05#60 45,1,1,{
+
+OnTouch:
+ donpcevent "Minilover#arena::On05_start";
+ warp "force_2-1",159,174;
+ end;
+}
+
+force_2-1,174,155,1 script force_05_06#60 45,1,1,{
+
+OnTouch:
+ donpcevent "Minilover#arena::On06_start";
+ warp "force_2-1",174,130;
+ end;
+}
+
+force_2-1,174,65,1 script force_06_07#60 45,1,1,{
+
+OnTouch:
+ donpcevent "Minilover#arena::On07_start";
+ warp "force_2-1",174,40;
+ end;
+}
+
+force_2-1,155,26,1 script force_07_08#60 45,1,1,{
+
+OnTouch:
+ donpcevent "Minilover#arena::On08_start";
+ warp "force_2-1",132,26;
+ enablenpc "force_08_09#60";
+ end;
+}
+
+force_2-1,99,54,1 script force_08_09#60 45,1,1,{
+
+OnTouch:
+ donpcevent "Minilover#arena::On09_start";
+ warp "force_2-1",99,82;
+ end;
+}
+
+force_2-1,99,124,1 script force_exit#60 45,1,1,{
+
+OnTouch:
+ donpcevent "Minilover#arena::Ontimeroff";
+ donpcevent "#arn_timer_60::Onon";
+ mapwarp "force_2-1","prt_are_in",22,139,0,0;
+ end;
+}
+
+- script force_01start#60 -1,{
+
+Onon:
+ donpcevent "force_01mob#60::Onon";
+end;
+}
+
+- script force_01ex#60 -1,{
+
+Onreset:
+ killmonster "force_2-1","force_01ex#60::OnMobEx";
+ end;
+
+Onon:
+ monster "force_2-1",25,25,"Rotar Zairo",1392,1,"force_01ex#60::OnMobEx";
+ end;
+
+OnMobEx:
+ end;
+}
+
+- script force_01mob#60 -1,{
+
+Onreset:
+ killmonster "force_2-1","force_01mob#60::OnMobDeath";
+ end;
+
+Onon:
+ donpcevent "force_01ex#60::Onon";
+ monster "force_2-1",25,32,"Goblin Archer",1577,1,"force_01mob#60::OnMobDeath";
+ monster "force_2-1",21,26,"Goblin",1534,1,"force_01mob#60::OnMobDeath";
+ monster "force_2-1",25,36,"Goblin",1536,1,"force_01mob#60::OnMobDeath";
+ monster "force_2-1",25,15,"Goblin",1534,1,"force_01mob#60::OnMobDeath";
+ monster "force_2-1",40,30,"Goblin",1536,1,"force_01mob#60::OnMobDeath";
+ monster "force_2-1",25,24,"Goblin",1534,1,"force_01mob#60::OnMobDeath";
+ monster "force_2-1",25,9,"Goblin",1536,1,"force_01mob#60::OnMobDeath";
+ monster "force_2-1",28,15,"Goblin Archer",1577,1,"force_01mob#60::OnMobDeath";
+ monster "force_2-1",12,33,"Goblin",1536,1,"force_01mob#60::OnMobDeath";
+ monster "force_2-1",24,20,"Goblin",1535,1,"force_01mob#60::OnMobDeath";
+ set $force_01_60,5;
+ end;
+
+OnMobDeath:
+ set $force_01_60,$force_01_60 -1;
+ if ($force_01_60 < 1) {
+ donpcevent "Minilover#arena::On01_end";
+ donpcevent "arena#60::Onreset_01";
+ }
+ end;
+}
+
+- script force_02start#60 -1,{
+
+Onon:
+ donpcevent "force_02mob#60::Onon";
+ end;
+}
+
+- script force_02mob#60 -1,{
+
+Onreset:
+ killmonster "force_2-1","force_02mob#60::OnMobEx";
+ end;
+Onon:
+ monster "force_2-1",24,76,"Drainliar",1434,1,"force_02mob#60::OnMobEx";
+ monster "force_2-1",28,76,"Drainliar",1434,1,"force_02mob#60::OnMobEx";
+ monster "force_2-1",24,86,"Drainliar",1434,1,"force_02mob#60::OnMobEx";
+ monster "force_2-1",24,76,"Drainliar",1434,1,"force_02mob#60::OnMobEx";
+ monster "force_2-1",28,76,"Drainliar",1434,1,"force_02mob#60::OnMobEx";
+ monster "force_2-1",24,86,"Drainliar",1434,1,"force_02mob#60::OnMobEx";
+ monster "force_2-1",24,76,"Drainliar",1434,1,"force_02mob#60::OnMobEx";
+ monster "force_2-1",28,76,"Drainliar",1434,1,"force_02mob#60::OnMobEx";
+ monster "force_2-1",23,76,"Requiem",1468,1,"force_02mob#60::OnMobEx";
+ monster "force_2-1",27,76,"Requiem",1468,1,"force_02mob#60::OnMobEx";
+ monster "force_2-1",25,86,"Requiem",1468,1,"force_02mob#60::OnMobEx";
+ monster "force_2-1",26,86,"Ghoul",1423,1,"force_02mob#60::OnMobEx";
+ monster "force_2-1",25,100,"Ghoul",1423,1,"force_02mob#60::OnMobEx";
+ monster "force_2-1",26,118,"Ghoul",1423,1,"force_02mob#60::OnMobEx";
+ monster "force_2-1",25,100,"Ghoul",1423,1,"force_02mob#60::OnMobEx";
+ monster "force_2-1",26,118,"Ghoul",1423,1,"force_02mob#60::OnMobEx";
+ monster "force_2-1",28,79,"Zerom",1470,1,"force_02mob#60::OnMobEx";
+ monster "force_2-1",23,87,"Zerom",1470,1,"force_02mob#60::OnMobEx";
+ monster "force_2-1",28,99,"Zerom",1470,1,"force_02mob#60::OnMobEx";
+ monster "force_2-1",23,112,"Zerom",1470,1,"force_02mob#60::OnMobEx";
+ monster "force_2-1",28,128,"Matyr",1460,1,"force_02mob#60::OnMobEx";
+ monster "force_2-1",28,128,"Matyr",1460,1,"force_02mob#60::OnMobEx";
+ monster "force_2-1",28,128,"Matyr",1460,1,"force_02mob#60::OnMobEx";
+ monster "force_2-1",28,128,"Orc Zombie",1463,1,"force_02mob#60::OnMobEx";
+ monster "force_2-1",28,128,"Orc Zombie",1463,1,"force_02mob#60::OnMobEx";
+ monster "force_2-1",28,128,"Orc Zombie",1463,1,"force_02mob#60::OnMobEx";
+ monster "force_2-1",28,128,"Orc Zombie",1463,1,"force_02mob#60::OnMobEx";
+ monster "force_2-1",28,128,"Orc Zombie",1463,1,"force_02mob#60::OnMobEx";
+ monster "force_2-1",28,128,"Matyr",1460,1,"force_02mob#60::OnMobEx";
+ monster "force_2-1",28,128,"Matyr",1460,1,"force_02mob#60::OnMobEx";
+ end;
+
+OnMobEx:
+ end;
+}
+
+- script force_03start#60 -1,{
+
+Onon:
+ donpcevent "force_03mob#60::Onon";
+ end;
+}
+
+- script force_03ex#60 -1,{
+
+Onreset:
+ killmonster "force_2-1","force_03ex#60::OnMobEx";
+ end;
+
+Onon:
+ monster "force_2-1",26,173,"Hydra",1579,1,"force_03ex#60::OnMobEx";
+ monster "force_2-1",21,173,"Hydra",1579,1,"force_03ex#60::OnMobEx";
+ monster "force_2-1",31,173,"Hydra",1579,1,"force_03ex#60::OnMobEx";
+ monster "force_2-1",26,178,"Hydra",1579,1,"force_03ex#60::OnMobEx";
+ monster "force_2-1",21,178,"Hydra",1579,1,"force_03ex#60::OnMobEx";
+ monster "force_2-1",31,178,"Hydra",1579,1,"force_03ex#60::OnMobEx";
+ monster "force_2-1",19,174,"Obeaune",1425,1,"force_03ex#60::OnMobEx";
+ monster "force_2-1",26,161,"Obeaune",1425,1,"force_03ex#60::OnMobEx";
+ monster "force_2-1",13,173,"Obeaune",1425,1,"force_03ex#60::OnMobEx";
+ monster "force_2-1",38,173,"Obeaune",1425,1,"force_03ex#60::OnMobEx";
+ end;
+
+OnMobEx:
+ end;
+}
+
+- script force_03mob#60 -1,{
+
+Onon:
+ donpcevent "force_03ex#60::Onon";
+ monster "force_2-1",23,174,"Mantis",1457,1,"force_03mob#60::OnMobDeath";
+ monster "force_2-1",18,173,"Mantis",1457,1,"force_03mob#60::OnMobDeath";
+ monster "force_2-1",33,173,"Mantis",1457,1,"force_03mob#60::OnMobDeath";
+ monster "force_2-1",26,181,"Mantis",1457,1,"force_03mob#60::OnMobDeath";
+ set $force_03_60,4;
+ end;
+
+Onreset:
+ killmonster "force_2-1","force_mob01#60::OnMobDeath";
+ end;
+
+OnMobDeath:
+ set $force_03_60,$force_03_60 -1;
+ if ($force_03_60 < 1) {
+ donpcevent "Minilover#arena::On03_end";
+ donpcevent "arena#60::Onreset_03";
+ }
+ end;
+}
+
+- script force_04start#60 -1,{
+
+Onon:
+ donpcevent "force_04mob#60::Onon";
+ end;
+}
+
+- script force_04ex#60 -1,{
+
+Onreset:
+ killmonster "force_2-1","force_04ex#60::OnMobEx";
+ end;
+
+Onon:
+ monster "force_2-1",84,177,"Sasquatch",1442,1,"force_04ex#60::OnMobEx";
+ monster "force_2-1",125,170,"Sasquatch",1442,1,"force_04ex#60::OnMobEx";
+ monster "force_2-1",109,172,"Baby Leopard",1524,1,"force_04ex#60::OnMobEx";
+ monster "force_2-1",121,172,"Baby Leopard",1524,1,"force_04ex#60::OnMobEx";
+ monster "force_2-1",104,173,"Chepet",1444,1,"force_04ex#60::OnMobEx";
+ monster "force_2-1",75,174,"Dokebi",1491,1,"force_04ex#60::OnMobEx";
+ monster "force_2-1",102,176,"Dokebi",1491,1,"force_04ex#60::OnMobEx";
+ end;
+
+OnMobEx:
+ end;
+}
+
+- script force_04mob#60 -1,{
+
+Onreset:
+ killmonster "force_2-1","force_04mob#60::OnMobDeath";
+ end;
+
+Onon:
+ donpcevent "force_04ex#60::Onon";
+ monster "force_2-1",79,174,"Golem",1540,1,"force_04mob#60::OnMobDeath";
+ monster "force_2-1",131,178,"Marse",1551,1,"force_04mob#60::OnMobDeath";
+ set $force_04_60,2;
+ end;
+
+OnMobDeath:
+ set $force_04_60,$force_04_60 -1;
+ if ($force_04_60 < 1) {
+ donpcevent "force_04ex#60::Onreset";
+ donpcevent "Minilover#arena::On04_end";
+ donpcevent "arena#60::Onreset_04";
+ }
+ end;
+}
+
+- script force_05start#60 -1,{
+
+Onon:
+ donpcevent "force_05mob#60::Onon";
+ end;
+}
+
+- script force_05ex#60 -1,{
+
+Onreset:
+ killmonster "force_2-1","force_05ex#60::OnMobEx";
+ end;
+
+Onsummonmob_05:
+ monster "force_2-1",168,177,"Hydra",1579,1,"force_05ex#60::OnMobEx";
+ monster "force_2-1",170,179,"Hydra",1579,1,"force_05ex#60::OnMobEx";
+ monster "force_2-1",177,179,"Hydra",1579,1,"force_05ex#60::OnMobEx";
+ monster "force_2-1",179,178,"Hydra",1579,1,"force_05ex#60::OnMobEx";
+ monster "force_2-1",179,170,"Hydra",1579,1,"force_05ex#60::OnMobEx";
+ monster "force_2-1",177,168,"Hydra",1579,1,"force_05ex#60::OnMobEx";
+ monster "force_2-1",170,168,"Hydra",1579,1,"force_05ex#60::OnMobEx";
+ monster "force_2-1",173,174,"Hydra",1579,1,"force_05ex#60::OnMobEx";
+ monster "force_2-1",174,174,"Hydra",1579,1,"force_05ex#60::OnMobEx";
+ monster "force_2-1",173,173,"Hydra",1579,1,"force_05ex#60::OnMobEx";
+ monster "force_2-1",174,173,"Hydra",1579,1,"force_05ex#60::OnMobEx";
+ monster "force_2-1",173,181,"Kapha",1543,1,"force_05ex#60::OnMobEx";
+ end;
+
+OnMobEx:
+ end;
+}
+
+- script force_05mob#60 -1,{
+
+Onreset:
+ killmonster "force_2-1","force_05mob#60::OnMobDeath";
+ end;
+
+Onon:
+ donpcevent "force_05ex#60::Onsummonmob_05";
+ monster "force_2-1",163,173,"Drainliar",1434,1,"force_05mob#60::OnMobDeath";
+ monster "force_2-1",173,173,"Myst",1553,1,"force_05mob#60::OnMobDeath";
+ monster "force_2-1",181,173,"Orc Skeleton",1462,1,"force_05mob#60::OnMobDeath";
+ monster "force_2-1",171,177,"Orc Skeleton",1462,1,"force_05mob#60::OnMobDeath";
+ monster "force_2-1",173,181,"Raggler",1445,1,"force_05mob#60::OnMobDeath";
+ set $force_05_60,5;
+ end;
+
+OnMobDeath:
+ set $force_05_60,$force_05_60 -1;
+ if ($force_05_60 < 1) {
+ donpcevent "Minilover#arena::On05_end";
+ donpcevent "arena#60::Onreset_05";
+ }
+ end;
+}
+
+- script force_06start#60 -1,{
+
+Onon:
+ donpcevent "force_06mob#60::Onon";
+ end;
+}
+
+- script force_06ex#60 -1,{
+
+Onreset:
+ killmonster "force_2-1","force_06ex#60::OnMobEx";
+ end;
+
+Onon:
+ monster "force_2-1",169,130,"Greatest General",1541,1,"force_06ex#60::OnMobEx";
+ monster "force_2-1",178,130,"Greatest General",1541,1,"force_06ex#60::OnMobEx";
+ monster "force_2-1",169,125,"Greatest General",1541,1,"force_06ex#60::OnMobEx";
+ monster "force_2-1",178,125,"Greatest General",1541,1,"force_06ex#60::OnMobEx";
+ monster "force_2-1",169,120,"Greatest General",1541,1,"force_06ex#60::OnMobEx";
+ monster "force_2-1",178,120,"Greatest General",1541,1,"force_06ex#60::OnMobEx";
+ monster "force_2-1",169,115,"Greatest General",1541,1,"force_06ex#60::OnMobEx";
+ monster "force_2-1",178,115,"Greatest General",1541,1,"force_06ex#60::OnMobEx";
+ monster "force_2-1",169,110,"Greatest General",1541,1,"force_06ex#60::OnMobEx";
+ monster "force_2-1",178,110,"Greatest General",1541,1,"force_06ex#60::OnMobEx";
+ monster "force_2-1",169,105,"Greatest General",1541,1,"force_06ex#60::OnMobEx";
+ monster "force_2-1",178,105,"Greatest General",1541,1,"force_06ex#60::OnMobEx";
+ monster "force_2-1",169,100,"Greatest General",1541,1,"force_06ex#60::OnMobEx";
+ monster "force_2-1",178,100,"Greatest General",1541,1,"force_06ex#60::OnMobEx";
+ monster "force_2-1",169,95,"Greatest General",1541,1,"force_06ex#60::OnMobEx";
+ monster "force_2-1",178,95,"Greatest General",1541,1,"force_06ex#60::OnMobEx";
+ monster "force_2-1",169,90,"Greatest General",1541,1,"force_06ex#60::OnMobEx";
+ monster "force_2-1",178,90,"Greatest General",1541,1,"force_06ex#60::OnMobEx";
+ monster "force_2-1",169,85,"Greatest General",1541,1,"force_06ex#60::OnMobEx";
+ monster "force_2-1",178,85,"Greatest General",1541,1,"force_06ex#60::OnMobEx";
+ monster "force_2-1",169,80,"Greatest General",1541,1,"force_06ex#60::OnMobEx";
+ monster "force_2-1",178,80,"Greatest General",1541,1,"force_06ex#60::OnMobEx";
+ monster "force_2-1",169,75,"Greatest General",1541,1,"force_06ex#60::OnMobEx";
+ monster "force_2-1",178,75,"Greatest General",1541,1,"force_06ex#60::OnMobEx";
+ end;
+
+Onsubon:
+ set $@randmonster60,rand(1,3);
+ switch($@randmonster60) {
+ case 1:
+ monster "force_2-1",rand(170,177),rand(70,120),"Sidewinder",1424,1,"force_06ex#60::OnMobEx";
+ break;
+ case 2:
+ monster "force_2-1",rand(170,177),rand(70,120),"Hermit Plant",1565,1,"force_06ex#60::OnMobEx";
+ break;
+ case 3:
+ monster "force_2-1",rand(170,177),rand(70,120),"Cruiser",1443,1,"force_06ex#60::OnMobEx";
+ break;
+ }
+ end;
+
+OnMobEx:
+ end;
+}
+
+- script force_06mob#60 -1,{
+
+Onreset:
+ killmonster "force_2-1","force_06mob#60::OnMobDeath";
+ end;
+
+Onon:
+ donpcevent "force_06ex#60::Onon";
+ monster "force_2-1",174,100,"Miyabi Doll",1552,1,"force_06mob#60::OnMobDeath";
+ monster "force_2-1",174,80,"Miyabi Doll",1552,1,"force_06mob#60::OnMobDeath";
+ set $force_06_60,2;
+ end;
+
+OnMobDeath:
+ set $force_06_60,$force_06_60 -1;
+ if ($force_06_60 < 1) {
+ set door, 1;
+ donpcevent "Minilover#arena::On06_end";
+ donpcevent "arena#60::Onreset_06";
+ }
+ else donpcevent "force_06ex#60::Onsubon";
+ end;
+}
+
+- script force_07start#60 -1,{
+
+Onon:
+ donpcevent "force_07mob#60::Onon";
+ end;
+}
+
+- script force_07mob#60 -1,{
+
+Onreset:
+ killmonster "force_2-1","force_07mob#60::OnMobDeath";
+ end;
+
+Onon:
+ monster "force_2-1",170,25,"Jakk",1436,1,"force_07mob#60::OnMobDeath";
+ monster "force_2-1",170,25,"Jakk",1436,1,"force_07mob#60::OnMobDeath";
+ monster "force_2-1",175,25,"Myst",1553,1,"force_07mob#60::OnMobDeath";
+ monster "force_2-1",179,25,"Isis",1421,1,"force_07mob#60::OnMobDeath";
+ set $force_07_50,4;
+ end;
+
+OnMobDeath:
+ set $force_07_50,$force_07_50 -1;
+ if ($force_07_50 < 1) {
+ donpcevent "Minilover#arena::On07_end";
+ donpcevent "arena#60::Onreset_07";
+ }
+ end;
+}
+
+- script force_08start#60 -1,{
+
+Onon:
+ donpcevent "force_08ex#60::Onon";
+ end;
+}
+
+- script force_08ex#60 -1,{
+
+Onon:
+ donpcevent "arena#60::Onreset_08";
+ end;
+}
+
+- script force_09start#60 -1,{
+
+Onon:
+ donpcevent "force_09mob#60::Onon";
+ end;
+}
+
+- script force_09ex#60 -1,{
+
+Onreset:
+ killmonster "force_2-1","force_09ex#60::OnMobEx";
+ end;
+
+Onsummonmob_09:
+ monster "force_2-1",90,100,"Horong",1578,1,"force_09ex#60::OnMobEx";
+ monster "force_2-1",92,100,"Horong",1578,1,"force_09ex#60::OnMobEx";
+ monster "force_2-1",99,100,"Horong",1578,1,"force_09ex#60::OnMobEx";
+ monster "force_2-1",105,100,"Horong",1578,1,"force_09ex#60::OnMobEx";
+ monster "force_2-1",91,108,"Greatest General",1541,1,"force_09ex#60::OnMobEx";
+ monster "force_2-1",91,104,"Greatest General",1541,1,"force_09ex#60::OnMobEx";
+ monster "force_2-1",91,100,"Greatest General",1541,1,"force_09ex#60::OnMobEx";
+ monster "force_2-1",91,96,"Greatest General",1541,1,"force_09ex#60::OnMobEx";
+ monster "force_2-1",91,92,"Greatest General",1541,1,"force_09ex#60::OnMobEx";
+ monster "force_2-1",95,108,"Greatest General",1541,1,"force_09ex#60::OnMobEx";
+ monster "force_2-1",99,108,"Greatest General",1541,1,"force_09ex#60::OnMobEx";
+ monster "force_2-1",100,108,"Greatest General",1541,1,"force_09ex#60::OnMobEx";
+ monster "force_2-1",104,108,"Greatest General",1541,1,"force_09ex#60::OnMobEx";
+ monster "force_2-1",108,108,"Greatest General",1541,1,"force_09ex#60::OnMobEx";
+ monster "force_2-1",108,104,"Greatest General",1541,1,"force_09ex#60::OnMobEx";
+ monster "force_2-1",108,100,"Greatest General",1541,1,"force_09ex#60::OnMobEx";
+ monster "force_2-1",108,96,"Greatest General",1541,1,"force_09ex#60::OnMobEx";
+ monster "force_2-1",108,92,"Greatest General",1541,1,"force_09ex#60::OnMobEx";
+ monster "force_2-1",104,102,"Greatest General",1541,1,"force_09ex#60::OnMobEx";
+ monster "force_2-1",196,102,"Greatest General",1541,1,"force_09ex#60::OnMobEx";
+ monster "force_2-1",114,100,"Greatest General",1541,1,"force_09ex#60::OnMobEx";
+ monster "force_2-1",121,100,"Greatest General",1541,1,"force_09ex#60::OnMobEx";
+ monster "force_2-1",85,100,"Greatest General",1541,1,"force_09ex#60::OnMobEx";
+ monster "force_2-1",78,100,"Greatest General",1541,1,"force_09ex#60::OnMobEx";
+ monster "force_2-1",96,118,"Greatest General",1541,1,"force_09ex#60::OnMobEx";
+ monster "force_2-1",103,118,"Greatest General",1541,1,"force_09ex#60::OnMobEx";
+ end;
+
+OnMobEx:
+ end;
+}
+
+- script force_09mob#60 -1,{
+
+Onon:
+ donpcevent "force_09ex#60::Onsummonmob_09";
+ monster "force_2-1",99,99,"Goblin Leader",1539,1,"force_09mob#60::OnMobDeath";
+ set $force_09_60,1;
+ end;
+
+Onreset:
+ killmonster "force_2-1","force_09mob#60::OnMobDeath";
+ end;
+
+OnMobDeath:
+ set $force_09_60,$force_09_60 -1;
+ if ($force_09_60 < 1) {
+ donpcevent "Minilover#arena::On09_end";
+ donpcevent "arena#60::Onreset_09";
+ donpcevent "arena#60::Onreset_all";
+ set $arena_min60end,gettime(2);
+ set $arena_sec60end,gettime(1);
+ }
+ end;
+}
+
+prt_are_in,129,135,3 script Staff#60-1 67,{
+
+ mes "[Staff]";
+ mes "You did a good job.";
+ mes "Even if you have failed to clear a time attack battle, I will reward you with a small amount of arena points.";
+ next;
+ if (arena_point == 30000) {
+ mes "[Staff]";
+ mes "Uh huh!";
+ mes "You already have enough arena points.";
+ mes "Please spend some arena points later. When I see you next time, I will make sure to give you some reward.";
+ next;
+ }
+ else set arena_point, arena_point + 1;
+ mes "[Staff]";
+ mes "Let me guide you outside. I hope you had a good time.";
+ close2;
+ specialeffect2 EF_EXIT;
+ warp "arena_room",100,75;
+ end;
+}
+
+prt_are_in,25,135,3 script Staff#60-2 67,{
+
+ if($arena_min60end < $arena_min60st)
+ {
+ if($arena_sec60end < $arena_sec60st)
+ {
+ set @record_min60,60 - $arena_min60st + $arena_min60end -1;
+ set @record_sec60,60 - $arena_sec60st + $arena_sec60end;
+ }
+ else
+ {
+ set @record_min60,60 - $arena_min60st + $arena_min60end;
+ set @record_sec60,$arena_sec60end - $arena_sec60st;
+ }
+ }
+ else
+ {
+ if($arena_sec60end < $arena_sec60st)
+ {
+ set @record_min60,$arena_min60end - $arena_min60st -1;
+ set @record_sec60,60 - $arena_sec60st + $arena_sec60end;
+ }
+ else
+ {
+ set @record_min60,$arena_min60end - $arena_min60st;
+ set @record_sec60,$arena_sec60end - $arena_sec60st;
+ }
+ }
+ set @gap60,(60 * $top_60min + $top_60sec) - (60 * @record_min60 + @record_sec60);
+ mes "[Staff]";
+ mes "Wow, you did a good job~ ";
+ mes "Your name is...^3131FF" + strcharinfo(0) +"^000000, isn't it?";
+ mes "^3131FF"+ strcharinfo(0) +"^000000, total time you spent to pass the battle..";
+ next;
+ mes "[Staff]";
+ mes "is "+@record_min60+"minutes "+@record_sec60+"seconds.";
+ mes "Congratulations!";
+ next;
+ mes "[Staff]";
+ mes "The fastest player among people who cleared lvl 60s arena time force battle is ^3131FF"+$arena_60topn$+"^000000.";
+ next;
+ mes "[Staff]";
+ mes "^3131FF"+$arena_60topn$+"^000000's running time was ^3131FF"+$top_60min+"^000000minutes ^3131FF"+$top_60sec+"^000000seconds.";
+ next;
+ if (@gap60 < 0) {
+ mes "[Staff]";
+ mes "Although you failed to make a new record, I hope you will succeed next time.";
+ next;
+ if (arena_point > 29980) {
+ mes "[Staff]";
+ mes "Then let me reward you with some arena points....eh?";
+ mes "Your arena points have exceeded the maximum amount. I cannot give you more points until you spend some points.";
+ next;
+ mes "[Staff]";
+ mes "You can check the amount of arena points you have in the arena waiting room.";
+ next;
+ mes "[Staff]";
+ mes "I hope you had a good time and let me guide you to the entrance of arena.";
+ mes "Thank you.";
+ close2;
+ }
+ else
+ {
+ set arena_point, arena_point + 20;
+ mes "[Staff]";
+ mes "Let me reward you some arena points.";
+ mes "If you wish to check the amount of arena points you have, please go talk to ^3131FFVendigos^000000 at the arena entrance.";
+ next;
+ mes "[Staff]";
+ mes "Let me guide you to the entrance of arena.";
+ mes "See you later~";
+ close2;
+ }
+ specialeffect2 EF_EXIT;
+ donpcevent "cast#60::Onnomal1";
+ warp "arena_room",100,75;
+ donpcevent "#arn_timer_60::Onstop";
+ donpcevent "alloff#60::Onon";
+ donpcevent "lvl 60s Waiting Room::Onstart";
+ end;
+ }
+ else
+ {
+ emotion e_omg;
+ mes "[Staff]";
+ mes "Wow! You have renewed the record!";
+ mes "What a great job!";
+ next;
+ mes "[Staff]";
+ mes "You have been recorded as the fastest player among people who cleared ^FF0000Arena Time Force Battle lvl 60s^000000, ^3131FF"+strcharinfo(0)+"^000000.";
+ set $top_60min, @record_min60;
+ set $top_60sec, @record_sec60;
+ set $arena_60topn$,strcharinfo(0);
+ donpcevent "Vendigos::Onlinerec_60";
+ next;
+ if (arena_point > 29950) {
+ mes "[Staff]";
+ mes "Then let me reward you with some arena points....eh?";
+ mes "Your arena points have exceeded the maximum amount. I cannot give you more points until you spend some points.";
+ next;
+ mes "[Staff]";
+ mes "You can check the amount of arena points you have in the arena waiting room.";
+ next;
+ mes "[Staff]";
+ mes "I hope you had a good time and let me guide you to the entrance of arena.";
+ mes "Thank you.";
+ close2;
+ }
+ else
+ {
+ mes "[Staff]";
+ mes "Let me reward you with some arena points.";
+ mes "At the same time, since you have renewed the record you will receive an extra amount of the points this time.";
+ next;
+ set arena_point, arena_point + 50;
+ mes "[Staff]";
+ mes "Let me reward you some arena points.";
+ mes "If you wish to check the amount of arena points you have, please go talk to ^3131FFVendigos^000000 at the arena entrance.";
+ next;
+ mes "[Staff]";
+ mes "Let me guide you to the entrance of arena.";
+ mes "See you later~";
+ close2;
+ }
+ specialeffect2 EF_HIT5;
+ donpcevent "cast#60::Onnomal2";
+ warp "arena_room",100,75;
+ donpcevent "#arn_timer_60::Onstop";
+ donpcevent "alloff#60::Onon";
+ donpcevent "lvl 60s Waiting Room::Onstart";
+ end;
+ }
+
+}
+
+- script #arn_timer_60 -1,{
+
+Onon:
+ initnpctimer;
+ end;
+
+OnTimer2000:
+ mapannounce "prt_are_in","This broadcast informs you about the restriction for arena lvl 60s.",0,0xFFCE00;
+ end;
+
+OnTimer3000:
+ mapannounce "prt_are_in","For a smooth game play, exit warp portal will be activated in 1 minute.",0,0xFFCE00;
+ end;
+
+OnTimer4000:
+ mapannounce "prt_are_in","Please proceed your battle quickly as possible in order to avoid disadvantage. Thank you for your cooperation.",0,0xFFCE00;
+ end;
+
+OnTimer60000:
+ donpcevent "cast#60::Ontimeover2";
+ donpcevent "arn_warp_60::Onout";
+ donpcevent "#arn_timer_60::Onstop";
+ donpcevent "alloff#60::Onon";
+ donpcevent "lvl 60s Waiting Room::Onstart";
+ end;
+
+Onstop:
+ stopnpctimer;
+ end;
+}
+
+- script arn_warp_60 -1,{
+
+Onout:
+ areawarp "prt_are_in",14,143,29,126,"arena_room",100,75;
+ end;
+}
+
+- script cast#60 -1,{
+
+Ontimeover1:
+ mapannounce "force_2-1","Arena will be reactivated due to an error occurred during battle.",0,0xFFCE00;
+ end;
+
+Onnomal1:
+ mapannounce "force_2-1","Arena will be reactivated.",0,0xFFCE00;
+ end;
+
+Onnomal2:
+ mapannounce "force_2-1","Arena will be reactivated.",0,0xFFCE00;
+ end;
+
+Ontimeover2:
+ mapannounce "force_2-1","Arena will be reactivated due to an error occurred in the waiting room.",0,0xFFCE00;
+ end;
+}
+
+- script alloff#60 -1,{
+
+Onon:
+ mapwarp "force_2-1","prt_are_in",126,139,0,0;
+ donpcevent "force_01mob#60::Onreset";
+ donpcevent "force_02mob#60::Onreset";
+ donpcevent "force_03mob#60::Onreset";
+ donpcevent "force_04mob#60::Onreset";
+ donpcevent "force_05mob#60::Onreset";
+ donpcevent "force_06mob#60::Onreset";
+ donpcevent "force_07mob#60::Onreset";
+ donpcevent "force_08mob#60::Onreset";
+ donpcevent "force_09mob#60::Onreset";
+ donpcevent "force_01ex#60::Onreset";
+ donpcevent "force_03ex#60::Onreset";
+ donpcevent "force_04ex#60::Onreset";
+ donpcevent "force_05ex#60::Onreset";
+ donpcevent "force_06ex#60::Onreset";
+ donpcevent "force_08ex#60::Onreset";
+ donpcevent "force_09ex#60::Onreset";
+ donpcevent "Minilover#arena::Ontimeroff";
+ disablenpc "Minilover#arena";
+ disablenpc "force_01_02#60";
+ disablenpc "force_02_03#60";
+ disablenpc "force_03_04#60";
+ disablenpc "force_04_05#60";
+ disablenpc "force_05_06#60";
+ disablenpc "force_06_07#60";
+ disablenpc "force_07_08#60";
+ disablenpc "force_08_09#60";
+ disablenpc "force_exit#60";
+ disablenpc "arena#60";
+ donpcevent "#arn_timer_60::Onstop";
+ enablenpc "Minilover#arena";
+ enablenpc "arena#60";
+ end;
+
+OnInit:
+ if(!$top_60min && !$top_60sec) set $top_60min,6;
+ end;
+
+}
diff --git a/npc/pre-re/other/arena/arena_lvl70.txt b/npc/pre-re/other/arena/arena_lvl70.txt
new file mode 100644
index 000000000..c5ca4d1e2
--- /dev/null
+++ b/npc/pre-re/other/arena/arena_lvl70.txt
@@ -0,0 +1,1088 @@
+//===== rAthena Script ========================================
+//= Izlude Arena lvl 70
+//===== By: ==================================================
+//= SinSloth
+//===== Current Version: =====================================
+//= 1.1
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Description: =========================================
+//= Izlude Battle Arena Level 70
+//===== Additional Comments: =================================
+//= 1.0 First version.
+//= 1.1 Replaced effect numerics with constants. [Samuray22]
+//============================================================
+
+arena_room,52,42,7 script lvl 70s Waiting Room 124,{
+ end;
+
+OnInit:
+ waitingroom "Individual; Level 70 to 89",50,"lvl 70s Waiting Room::OnStartArena",1,1000,70,89;
+ enablewaitingroomevent;
+ end;
+
+OnStartArena:
+ warpwaitingpc "force_3-1",99,12;
+ donpcevent "arena#70::Onstart";
+ disablewaitingroomevent;
+ end;
+
+Onstart:
+ enablewaitingroomevent;
+ end;
+}
+
+force_3-1,99,20,4 script Cadillac#arena 124,{
+ end;
+
+OnInit:
+ set $@mapcount70, 0;
+ end;
+
+Onstart:
+ initnpctimer;
+ set $arena_min70st,gettime(2);
+ set $arena_sec70st,gettime(1);
+ end;
+
+OnTimer3000:
+ mapannounce "force_3-1","Good day, my name is Cadillac, the guide of Time Force Battle for lvl 70s!",0;
+ end;
+
+OnTimer4000:
+ mapannounce "force_3-1","Remember your right decision will save a lot of your time!",0;
+ end;
+
+OnTimer7000:
+ mapannounce "force_3-1","In order to complete this battle course, you must start from the far left of this room to the clock wise direction. Please move to the far left side. You have 7 minutes from now.",0;
+ end;
+
+OnTimer60000:
+ set $@mapcount70, getmapusers ("force_3-1");
+ if ($@mapcount70 == 0) {
+ donpcevent "Cadillac#arena::Onfailclearstage";
+ }
+ mapannounce "force_3-1","Remaining Time : 6 minutes ",0;
+ end;
+
+OnTimer120000:
+ set $@mapcount70, getmapusers ("force_3-1");
+ if ($@mapcount70 == 0) {
+ donpcevent "Cadillac#arena::Onfailclearstage";
+ }
+ mapannounce "force_3-1","Remaining Time : 5 minutes ",0;
+ end;
+
+OnTimer180000:
+ set $@mapcount70, getmapusers ("force_3-1");
+ if ($@mapcount70 == 0) {
+ donpcevent "Cadillac#arena::Onfailclearstage";
+ }
+ mapannounce "force_3-1","Remaining Time : 4 minutes ",0;
+end;
+OnTimer240000:
+ set $@mapcount70, getmapusers ("force_3-1");
+ if ($@mapcount70 == 0) {
+ donpcevent "Cadillac#arena::Onfailclearstage";
+ }
+ mapannounce "force_3-1","Remaining Time : 3 minutes ",0;
+ end;
+
+OnTimer300000:
+ set $@mapcount70, getmapusers ("force_3-1");
+ if ($@mapcount70 == 0) {
+ donpcevent "Cadillac#arena::Onfailclearstage";
+ }
+ mapannounce "force_3-1","Remaining Time : 2 minutes ",0;
+ end;
+
+OnTimer360000:
+ set $@mapcount70, getmapusers ("force_3-1");
+ if ($@mapcount70 == 0) {
+ donpcevent "Cadillac#arena::Onfailclearstage";
+ }
+ mapannounce "force_3-1","Remaining Time : 1 minute ",0;
+ end;
+
+OnTimer420000:
+ mapannounce "force_3-1","Your time is over. I hope you had a good time~",0;
+ end;
+
+OnTimer425000:
+OnTimer426000:
+OnTimer427000:
+OnTimer428000:
+OnTimer429000:
+OnTimer430000:
+OnTimer431000:
+OnTimer432000:
+OnTimer433000:
+OnTimer434000:
+ mapwarp "force_3-1","prt_are_in",126,87,0,0;
+ end;
+
+OnTimer435000:
+ mapwarp "force_3-1","prt_are_in",126,87,0,0;
+ donpcevent "Cadillac#arena::Onfailclearstage";
+ end;
+
+Ontimeroff:
+ stopnpctimer;
+ end;
+
+Onfailclearstage:
+ donpcevent "cast#70::Ontimeover1";
+ mapwarp "force_3-1","prt_are_in",126,87,0,0;
+ donpcevent "Cadillac#arena::Ontimeroff";
+ donpcevent "arena#70::Onreset_all";
+ donpcevent "alloff#70::Onon";
+ donpcevent "lvl 70s Waiting Room::Onstart";
+ end;
+
+On01_start:
+ mapannounce "force_3-1","In order to clear this battle, you must kill all Kobolds!",0;
+ end;
+
+On01_end:
+ mapannounce "force_3-1","A door to the north room has opened!",0;
+ end;
+
+On02_start:
+ mapannounce "force_3-1","In order to clear this battle, you must kill all Horongs and escape!",0;
+ end;
+
+On02_end:
+ mapannounce "force_3-1","A door to the north room has opened!",0;
+ end;
+
+On03_start:
+ mapannounce "force_3-1","In order to clear this battle, you must kill all monsters except Enchanted Peach Trees!",0;
+ end;
+
+On03_end:
+ mapannounce "force_3-1","Clear! A door to the east room has opened!",0;
+ end;
+
+On04_start:
+ mapannounce "force_3-1","In order to clear this battle, you must kill all Stem Worms while dodging Bathories!",0;
+ end;
+
+On04_end:
+ mapannounce "force_3-1","A door to the east room has opened!",0;
+ end;
+
+On05_start:
+ mapannounce "force_3-1","In order to clear this battle, you must kill all Argiopes!",0;
+ end;
+
+On05_end:
+ mapannounce "force_3-1","Clear! A door to the south room has opened!",0;
+ end;
+
+On06_start:
+ mapannounce "force_3-1","In order to clear this battle, you must kill all Hammer Goblins!",0;
+ end;
+
+On06_end:
+ mapannounce "force_3-1","A door to the south room has opened!",0;
+ end;
+
+On07_start:
+ mapannounce "force_3-1","In order to clear this battle, you must kill an Alice in the center!",0;
+ end;
+
+On07_end:
+ mapannounce "force_3-1","Clear! A door to the west room has opened!",0;
+ end;
+
+On08_start:
+ mapannounce "force_3-1","Please escape to the north exit!",0;
+ end;
+
+On09_start:
+ mapannounce "force_3-1","In order to clear this battle, you must kill a Kobold Leader and all Kobolds!",0;
+ end;
+
+On09_end:
+ mapannounce "force_3-1","Boss Clear! - A door at the north has opened. Thank you. ",0;
+ end;
+
+}
+
+- script arena#70 -1,{
+
+Onreset_01:
+ donpcevent "force_01ex#70::Onreset";
+ donpcevent "force_02start#70::Onon";
+ enablenpc "force_01_02#70";
+ end;
+
+Onreset_02:
+ donpcevent "force_02ex#70::Onreset";
+ donpcevent "force_03start#70::Onon";
+ enablenpc "force_02_03#70";
+ end;
+
+Onreset_03:
+ enablenpc "force_03_04#70";
+ donpcevent "force_04start#70::Onon";
+ donpcevent "force_03ex#70::Onreset";
+ end;
+
+Onreset_04:
+ enablenpc "force_04_05#70";
+ donpcevent "force_05start#70::Onon";
+ donpcevent "force_04ex#70::Onreset";
+ end;
+
+Onreset_05:
+ enablenpc "force_05_06#70";
+ donpcevent "force_06start#70::Onon";
+ donpcevent "force_05ex#70::Onreset";
+ end;
+
+Onreset_06:
+ enablenpc "force_06_07#70";
+ donpcevent "force_07start#70::Onon";
+ donpcevent "force_06ex#70::Onreset";
+ end;
+
+Onreset_07:
+ enablenpc "force_07_08#70";
+ donpcevent "force_07ex#70::Onreset";
+ donpcevent "force_08start#70::Onon";
+ end;
+
+Onreset_08:
+ donpcevent "force_09start#70::Onon";
+ enablenpc "force_08_09#70";
+ end;
+
+Onreset_09:
+ enablenpc "force_exit#70";
+ end;
+
+Onstart:
+ disablenpc "force_01_02#70";
+ disablenpc "force_02_03#70";
+ disablenpc "force_03_04#70";
+ disablenpc "force_04_05#70";
+ disablenpc "force_05_06#70";
+ disablenpc "force_06_07#70";
+ disablenpc "force_07_08#70";
+ disablenpc "force_08_09#70";
+ disablenpc "force_exit#70";
+ donpcevent "Cadillac#arena::Ontimeroff";
+ donpcevent "force_09mob#70::Ontimeroff";
+ donpcevent "force_01mob#70::Onreset";
+ donpcevent "force_02mob#70::Onreset";
+ donpcevent "force_03mob#70::Onreset";
+ donpcevent "force_04mob#70::Onreset";
+ donpcevent "force_05mob#70::Onreset";
+ donpcevent "force_06mob#70::Onreset";
+ donpcevent "force_07mob#70::Onreset";
+ donpcevent "force_08mob#70::Onreset";
+ donpcevent "force_09mob#70::Onreset";
+ donpcevent "force_01ex#70::Onreset";
+ donpcevent "force_02ex#70::Onreset";
+ donpcevent "force_03ex#70::Onreset";
+ donpcevent "force_04ex#70::Onreset";
+ donpcevent "force_05ex#70::Onreset";
+ donpcevent "force_06ex#70::Onreset";
+ donpcevent "force_07ex#70::Onreset";
+ donpcevent "force_08ex#70::Onreset";
+ donpcevent "force_09ex#70::Onreset";
+ enablenpc "force_08_01#70";
+ donpcevent "force_01start#70::Onon";
+ donpcevent "Cadillac#arena::Onstart";
+ end;
+
+Onreset_all:
+ donpcevent "force_01mob#70::Onreset";
+ donpcevent "force_02mob#70::Onreset";
+ donpcevent "force_03mob#70::Onreset";
+ donpcevent "force_04mob#70::Onreset";
+ donpcevent "force_05mob#70::Onreset";
+ donpcevent "force_06mob#70::Onreset";
+ donpcevent "force_07mob#70::Onreset";
+ donpcevent "force_09mob#70::Onreset";
+ donpcevent "force_01ex#70::Onreset";
+ donpcevent "force_02ex#70::Onreset";
+ donpcevent "force_03ex#70::Onreset";
+ donpcevent "force_04ex#70::Onreset";
+ donpcevent "force_05ex#70::Onreset";
+ donpcevent "force_06ex#70::Onreset";
+ donpcevent "force_07ex#70::Onreset";
+ donpcevent "force_08ex#70::Onreset";
+ donpcevent "force_09ex#70::Onreset";
+ end;
+
+}
+
+force_3-1,62,26,1 script force_08_01#70 45,1,1,{
+
+OnTouch:
+ donpcevent "Cadillac#arena::On01_start";
+ warp "force_3-1",40,26;
+ end;
+
+}
+
+force_3-1,25,44,1 script force_01_02#70 45,1,1,{
+
+OnTouch:
+ donpcevent "Cadillac#arena::On02_start";
+ warp "force_3-1",25,69;
+ end;
+
+}
+
+force_3-1,25,134,1 script force_02_03#70 45,1,1,{
+
+OnTouch:
+ donpcevent "Cadillac#arena::On03_start";
+ warp "force_3-1",25,159;
+ end;
+
+}
+
+force_3-1,44,174,1 script force_03_04#70 45,1,1,{
+
+OnTouch:
+ donpcevent "Cadillac#arena::On04_start";
+ warp "force_3-1",69,174;
+ end;
+
+}
+
+force_3-1,134,174,1 script force_04_05#70 45,1,1,{
+
+OnTouch:
+ donpcevent "Cadillac#arena::On05_start";
+ warp "force_3-1",159,174;
+ end;
+
+}
+
+force_3-1,174,155,1 script force_05_06#70 45,1,1,{
+
+OnTouch:
+ donpcevent "Cadillac#arena::On06_start";
+ warp "force_3-1",174,130;
+ end;
+
+}
+
+force_3-1,174,65,1 script force_06_07#70 45,1,1,{
+
+OnTouch:
+ donpcevent "Cadillac#arena::On07_start";
+ warp "force_3-1",174,40;
+ end;
+
+}
+
+force_3-1,155,26,1 script force_07_08#70 45,1,1,{
+
+OnTouch:
+ donpcevent "Cadillac#arena::On08_start";
+ warp "force_3-1",132,26;
+ enablenpc "force_08_09#70";
+ end;
+
+}
+
+force_3-1,99,54,1 script force_08_09#70 45,1,1,{
+
+OnTouch:
+ donpcevent "Cadillac#arena::On09_start";
+ warp "force_3-1",99,82;
+ end;
+
+}
+
+force_3-1,99,124,1 script force_exit#70 45,1,1,{
+
+OnTouch:
+ donpcevent "Cadillac#arena::Ontimeroff";
+ donpcevent "#arn_timer_70::Onon";
+ mapwarp "force_3-1","prt_are_in",22,87,0,0;
+ end;
+
+}
+
+- script force_01start#70 -1,{
+Onon:
+ donpcevent "force_01mob#70::Onon";
+end;
+
+}
+
+- script force_01mob#70 -1,{
+
+Onon:
+ monster "force_3-1",25,36,"Kobold",1545,1,"force_01mob#70::OnMobDeath";
+ monster "force_3-1",20,36,"Kobold",1545,1,"force_01mob#70::OnMobDeath";
+ monster "force_3-1",25,20,"Kobold",1546,1,"force_01mob#70::OnMobDeath";
+ monster "force_3-1",30,36,"Kobold",1547,1,"force_01mob#70::OnMobDeath";
+ monster "force_3-1",28,15,"Kobold",1547,1,"force_01mob#70::OnMobDeath";
+ set $force_01_70,5;
+ end;
+
+Onreset:
+ killmonster "force_3-1","force_01mob#70::OnMobDeath";
+ end;
+
+OnMobDeath:
+ set $force_01_70,$force_01_70 -1;
+ if ($force_01_70 < 1) {
+ donpcevent "Cadillac#arena::On01_end";
+ donpcevent "arena#70::Onreset_01";
+ }
+ end;
+}
+
+- script force_02start#70 -1,{
+
+Onon:
+ donpcevent "force_02mob#70::Onon";
+ end;
+}
+
+- script force_02ex#70 -1,{
+
+Onreset:
+ killmonster "force_3-1","force_02ex#70::OnMobEx";
+ end;
+
+Onsummonmob2:
+ monster "force_3-1",21,78,"Archer Skeleton",1420,1,"force_02ex#70::OnMobEx";
+ monster "force_3-1",22,93,"Archer Skeleton",1420,1,"force_02ex#70::OnMobEx";
+ monster "force_3-1",29,93,"Archer Skeleton",1420,1,"force_02ex#70::OnMobEx";
+ monster "force_3-1",25,101,"Mummy",1393,1,"force_02ex#70::OnMobEx";
+ monster "force_3-1",26,101,"Mummy",1393,1,"force_02ex#70::OnMobEx";
+ monster "force_3-1",27,101,"Mummy",1393,1,"force_02ex#70::OnMobEx";
+ monster "force_3-1",28,101,"Mummy",1393,1,"force_02ex#70::OnMobEx";
+ monster "force_3-1",24,104,"Ghoul",1423,1,"force_02ex#70::OnMobEx";
+ monster "force_3-1",24,113,"Ghoul",1423,1,"force_02ex#70::OnMobEx";
+ monster "force_3-1",29,120,"Ghoul",1423,1,"force_02ex#70::OnMobEx";
+ monster "force_3-1",29,126,"Ghoul",1423,1,"force_02ex#70::OnMobEx";
+ monster "force_3-1",30,110,"Ghoul",1423,1,"force_02ex#70::OnMobEx";
+ end;
+
+OnMobEx:
+ end;
+}
+
+- script force_02mob#70 -1,{
+
+Onreset:
+ killmonster "force_3-1","force_02mob#70::OnMobDeath";
+ end;
+
+Onon:
+ monster "force_3-1",25,79,"Horong",1578,1,"force_02mob#70::OnMobDeath";
+ monster "force_3-1",29,114,"Horong",1578,1,"force_02mob#70::OnMobDeath";
+ donpcevent "force_02ex#70::Onsummonmob2";
+ set $force_02_70,2;
+ end;
+
+OnMobDeath:
+ set $force_02_70,$force_02_70 -1;
+ if ($force_02_70 < 1) {
+ donpcevent "Cadillac#arena::On02_end";
+ donpcevent "arena#70::Onreset_02";
+ }
+ end;
+}
+
+- script force_03start#70 -1,{
+
+Onon:
+ donpcevent "force_03mob#70::Onon";
+ end;
+}
+
+- script force_03ex#70 -1,{
+
+Onreset:
+ killmonster "force_3-1","force_03ex#70::OnMobEx";
+ end;
+
+Onsummonmob_03:
+ monster "force_3-1",10,170,"Enchanted Peach Tree",1550,1,"force_03ex#70::OnMobEx";
+ monster "force_3-1",26,180,"Enchanted Peach Tree",1550,1,"force_03ex#70::OnMobEx";
+ end;
+
+OnMobEx:
+ end;
+}
+
+- script force_03mob#70 -1,{
+
+Onon:
+ donpcevent "force_03ex#70::Onsummonmob_03";
+ monster "force_3-1",23,174,"Parasite",1555,1,"force_03mob#70::OnMobDeath";
+ monster "force_3-1",33,173,"Parasite",1555,1,"force_03mob#70::OnMobDeath";
+ monster "force_3-1",26,166,"Blood Butterfly",1526,1,"force_03mob#70::OnMobDeath";
+ set $force_03_70,3;
+ end;
+
+Onreset:
+ killmonster "force_3-1","force_03mob#70::OnMobDeath";
+ end;
+
+OnMobDeath:
+ set $force_03_70,$force_03_70 -1;
+ donpcevent "force_03ex#70::Onsummonmob_03";
+ if ($force_03_70 < 1) {
+ donpcevent "Cadillac#arena::On03_end";
+ donpcevent "arena#70::Onreset_03";
+ }
+ end;
+}
+
+- script force_04start#70 -1,{
+
+Onon:
+ donpcevent "force_04mob#70::Onon";
+end;
+
+}
+
+- script force_04ex#70 -1,{
+
+Onreset:
+ killmonster "force_3-1","force_04ex#70::OnMobEx";
+ end;
+
+Onsummonmob_04:
+ monster "force_3-1",94,179,"Bathory",1525,1,"force_04ex#70::OnMobEx";
+ monster "force_3-1",110,179,"Bathory",1525,1,"force_04ex#70::OnMobEx";
+ monster "force_3-1",90,170,"Bathory",1525,1,"force_04ex#70::OnMobEx";
+ monster "force_3-1",100,170,"Bathory",1525,1,"force_04ex#70::OnMobEx";
+ monster "force_3-1",125,178,"Bathory",1525,1,"force_04ex#70::OnMobEx";
+ monster "force_3-1",125,169,"Bathory",1525,1,"force_04ex#70::OnMobEx";
+ end;
+
+OnMobEx:
+ end;
+
+}
+
+- script force_04mob#70 -1,{
+
+Onon:
+ donpcevent "force_04ex#70::Onsummonmob_04";
+ monster "force_3-1",87,174,"Stem Worm",1440,1,"force_04mob#70::OnMobDeath";
+ monster "force_3-1",103,174,"Stem Worm",1440,1,"force_04mob#70::OnMobDeath";
+ monster "force_3-1",96,170,"Stem Worm",1440,1,"force_04mob#70::OnMobDeath";
+ set $force_04_70,3;
+ end;
+Onreset:
+ killmonster "force_3-1","force_04mob#70::OnMobDeath";
+ end;
+
+OnMobDeath:
+ set $force_04_70,$force_04_70 -1;
+ if ($force_04_70 < 1) {
+ donpcevent "Cadillac#arena::On04_end";
+ donpcevent "arena#70::Onreset_04";
+ }
+ end;
+}
+
+- script force_05start#70 -1,{
+
+Onon:
+ donpcevent "force_05mob#70::Onon";
+ end;
+}
+
+- script force_05ex#70 -1,{
+
+Onreset:
+ killmonster "force_3-1","force_05ex#70::OnMobEx";
+ end;
+
+Onsummonmob_05:
+ set $@randmonster70,rand(1,2);
+ switch($@randmonster70) {
+ case 1:
+ monster "force_3-1",174,174,"Ride Word",1478,1,"force_05ex#70::OnMobEx";
+ break;
+ case 2:
+ monster "force_3-1",173,173,"Mantis",1457,1,"force_05ex#70::OnMobEx";
+ break;
+ }
+ end;
+
+OnMobEx:
+ end;
+}
+
+- script force_05mob#70 -1,{
+
+Onon:
+ monster "force_3-1",164,183,"Argiope",1429,1,"force_05mob#70::OnMobDeath";
+ monster "force_3-1",168,158,"Argiope",1429,1,"force_05mob#70::OnMobDeath";
+ monster "force_3-1",175,174,"Argiope",1429,1,"force_05mob#70::OnMobDeath";
+ monster "force_3-1",176,179,"Argiope",1429,1,"force_05mob#70::OnMobDeath";
+ monster "force_3-1",183,160,"Argiope",1429,1,"force_05mob#70::OnMobDeath";
+ set $force_05_70,5;
+ end;
+
+Onreset:
+ killmonster "force_3-1","force_05mob#70::OnMobDeath";
+ end;
+
+OnMobDeath:
+ set $force_05_70,$force_05_70 -1;
+ if ($force_05_70 < 1) {
+ donpcevent "Cadillac#arena::On05_end";
+ donpcevent "arena#70::Onreset_05";
+ }
+ else donpcevent "force_05ex#70::Onsummonmob_05";
+ end;
+
+}
+
+- script force_06start#70 -1,{
+
+Onon:
+ donpcevent "force_06mob#70::Onon";
+ end;
+}
+
+- script force_06ex#70 -1,{
+
+Onreset:
+ killmonster "force_3-1","force_06ex#70::OnMobEx";
+ end;
+
+Onsummonmob_06:
+ monster "force_3-1",176,99,"Goblin",1534,1,"force_06ex#70::OnMobEx";
+ monster "force_3-1",170,86,"Goblin",1535,1,"force_06ex#70::OnMobEx";
+ monster "force_3-1",176,97,"Goblin",1535,1,"force_06ex#70::OnMobEx";
+ monster "force_3-1",170,108,"Goblin",1535,1,"force_06ex#70::OnMobEx";
+ monster "force_3-1",176,112,"Goblin",1536,1,"force_06ex#70::OnMobEx";
+ monster "force_3-1",173,120,"Goblin",1536,1,"force_06ex#70::OnMobEx";
+ monster "force_3-1",177,74,"Goblin",1536,1,"force_06ex#70::OnMobEx";
+ monster "force_3-1",173,118,"Goblin",1538,1,"force_06ex#70::OnMobEx";
+ monster "force_3-1",171,101,"Goblin",1538,1,"force_06ex#70::OnMobEx";
+ monster "force_3-1",174,118,"Goblin",1538,1,"force_06ex#70::OnMobEx";
+ end;
+
+OnMobEx:
+ end;
+}
+
+- script force_06mob#70 -1,{
+
+Onon:
+ donpcevent "force_06ex#70::Onsummonmob_06";
+ monster "force_3-1",173,90,"Goblin",1537,1,"force_06mob#70::OnMobDeath";
+ monster "force_3-1",173,79,"Goblin",1537,1,"force_06mob#70::OnMobDeath";
+ monster "force_3-1",172,70,"Goblin",1537,1,"force_06mob#70::OnMobDeath";
+ monster "force_3-1",175,70,"Goblin",1537,1,"force_06mob#70::OnMobDeath";
+ monster "force_3-1",171,118,"Goblin",1537,1,"force_06mob#70::OnMobDeath";
+ set $force_06_70,5;
+ end;
+
+Onreset:
+ killmonster "force_3-1","force_06mob#70::OnMobDeath";
+ end;
+
+OnMobDeath:
+ set $force_06_70,$force_06_70 -1;
+ if ($force_06_70 < 1) {
+ donpcevent "Cadillac#arena::On06_end";
+ donpcevent "arena#70::Onreset_06";
+ }
+ end;
+}
+
+- script force_07start#70 -1,{
+
+Onon:
+ donpcevent "force_07mob#70::Onon";
+ end;
+}
+
+- script force_07ex#70 -1,{
+
+Onreset:
+ killmonster "force_3-1","force_07ex#70::OnMobEx";
+ end;
+
+Onsummonmob_07:
+ monster "force_3-1",168,26,"Nightmare",1427,1,"force_07ex#70::OnMobEx";
+ monster "force_3-1",186,23,"Nightmare",1427,1,"force_07ex#70::OnMobEx";
+ monster "force_3-1",160,23,"Nightmare",1427,1,"force_07ex#70::OnMobEx";
+ monster "force_3-1",188,33,"Nightmare",1427,1,"force_07ex#70::OnMobEx";
+ monster "force_3-1",174,13,"Raydric",1453,1,"force_07ex#70::OnMobEx";
+ monster "force_3-1",163,15,"Farmiliar",1419,1,"force_07ex#70::OnMobEx";
+ monster "force_3-1",164,15,"Farmiliar",1419,1,"force_07ex#70::OnMobEx";
+ monster "force_3-1",163,16,"Farmiliar",1419,1,"force_07ex#70::OnMobEx";
+ monster "force_3-1",164,16,"Farmiliar",1419,1,"force_07ex#70::OnMobEx";
+ monster "force_3-1",187,13,"Farmiliar",1419,1,"force_07ex#70::OnMobEx";
+ monster "force_3-1",187,14,"Farmiliar",1419,1,"force_07ex#70::OnMobEx";
+ monster "force_3-1",186,14,"Farmiliar",1419,1,"force_07ex#70::OnMobEx";
+ monster "force_3-1",186,14,"Farmiliar",1419,1,"force_07ex#70::OnMobEx";
+
+
+OnMobEx:
+ end;
+}
+
+- script force_07mob#70 -1,{
+
+Onon:
+ donpcevent "force_07ex#70::Onsummonmob_07";
+ monster "force_3-1",174,25,"Alice",1521,1,"force_07mob#70::OnMobDeath";
+ set $force_07_70,1;
+ end;
+
+Onreset:
+ killmonster "force_3-1","force_07mob#70::OnMobDeath";
+ end;
+
+OnMobDeath:
+ set $force_07_70,$force_07_70 -1;
+ if ($force_07_70 < 1) {
+ donpcevent "Cadillac#arena::On07_end";
+ donpcevent "arena#70::Onreset_07";
+ }
+ end;
+}
+
+- script force_08start#70 -1,{
+
+Onon:
+ donpcevent "force_08ex#70::Onon";
+ end;
+}
+
+- script force_08ex#70 -1,{
+
+Onon:
+ donpcevent "arena#70::Onreset_08";
+ end;
+}
+
+- script force_09start#70 -1,{
+
+Onon:
+ donpcevent "force_09mob#70::Onon";
+ end;
+}
+
+- script force_09ex#70 -1,{
+
+Onreset:
+ killmonster "force_3-1","force_09ex#70::OnMobEx";
+ end;
+
+Onsummonmob_09:
+ monster "force_3-1",93,100,"Familiar",1419,1,"force_09ex#70::OnMobEx";
+ monster "force_3-1",94,100,"Familiar",1419,1,"force_09ex#70::OnMobEx";
+ monster "force_3-1",93,99,"Familiar",1419,1,"force_09ex#70::OnMobEx";
+ monster "force_3-1",85,114,"Familiar",1419,1,"force_09ex#70::OnMobEx";
+ monster "force_3-1",87,114,"Familiar",1419,1,"force_09ex#70::OnMobEx";
+ monster "force_3-1",89,114,"Familiar",1419,1,"force_09ex#70::OnMobEx";
+ monster "force_3-1",91,114,"Familiar",1419,1,"force_09ex#70::OnMobEx";
+ monster "force_3-1",93,114,"Familiar",1419,1,"force_09ex#70::OnMobEx";
+ monster "force_3-1",95,114,"Familiar",1419,1,"force_09ex#70::OnMobEx";
+ monster "force_3-1",85,112,"Familiar",1419,1,"force_09ex#70::OnMobEx";
+ monster "force_3-1",85,110,"Familiar",1419,1,"force_09ex#70::OnMobEx";
+ monster "force_3-1",85,108,"Familiar",1419,1,"force_09ex#70::OnMobEx";
+ monster "force_3-1",85,106,"Familiar",1419,1,"force_09ex#70::OnMobEx";
+ monster "force_3-1",85,104,"Familiar",1419,1,"force_09ex#70::OnMobEx";
+ end;
+
+OnMobEx:
+ end;
+}
+
+- script force_09mob#70 -1,{
+
+Onon:
+ monster "force_3-1",99,99,"Kobold Leader",1548,1,"force_09mob#70::OnMobDeath";
+ monster "force_3-1",98,99,"Kobold",1545,1,"force_09mob#70::OnMobDeath";
+ monster "force_3-1",100,99,"Kobold",1546,1,"force_09mob#70::OnMobDeath";
+ monster "force_3-1",99,98,"Kobold",1547,1,"force_09mob#70::OnMobDeath";
+ donpcevent "force_09ex#70::Onsummonmob_09";
+ set $force_09_70,4;
+ end;
+
+Onreset:
+ killmonster "force_3-1","force_09mob#70::OnMobDeath";
+ end;
+
+OnMobDeath:
+ set $force_09_70,$force_09_70 -1;
+ if ($force_09_70 < 1) {
+ donpcevent "Cadillac#arena::On09_end";
+ donpcevent "arena#70::Onreset_09";
+ donpcevent "arena#70::Onreset_all";
+ set $arena_min70end,gettime(2);
+ set $arena_sec70end,gettime(1);
+ }
+ end;
+}
+
+prt_are_in,129,83,3 script Staff#70-1 67,{
+
+ mes "[Staff]";
+ mes "You did a good job.";
+ mes "Even if you have failed to clear a time attack battle, I will reward you with a small amount of arena points.";
+ next;
+ if (arena_point == 30000) {
+ mes "[Staff]";
+ mes "Uh huh!";
+ mes "You already have enough arena points.";
+ mes "Please spend some arena points later. When I see you next time, I will make sure to give you some reward.";
+ next;
+ }
+ else set arena_point, arena_point + 1;
+ mes "[Staff]";
+ mes "Let me guide you outside. I hope you had a good time.";
+ close2;
+ specialeffect2 EF_EXIT;
+ warp "arena_room",100,75;
+ end;
+}
+
+prt_are_in,25,84,3 script Staff#70-2 67,{
+
+ if($arena_min70end < $arena_min70st)
+ {
+ if($arena_sec70end < $arena_sec70st)
+ {
+ set @record_min70,60 - $arena_min70st + $arena_min70end -1;
+ set @record_sec70,60 - $arena_sec70st + $arena_sec70end;
+ }
+ else
+ {
+ set @record_min70,60 - $arena_min70st + $arena_min70end;
+ set @record_sec70,$arena_sec70end - $arena_sec70st;
+ }
+ }
+ else
+ {
+ if($arena_sec70end < $arena_sec70st)
+ {
+ set @record_min70,$arena_min70end - $arena_min70st -1;
+ set @record_sec70,60 - $arena_sec70st + $arena_sec70end;
+ }
+ else
+ {
+ set @record_min70,$arena_min70end - $arena_min70st;
+ set @record_sec70,$arena_sec70end - $arena_sec70st;
+ }
+ }
+ set @gap70,(60 * $top_70min + $top_70sec) - (60 * @record_min70 + @record_sec70);
+ mes "[Staff]";
+ mes "Wow, you did a good job~ ";
+ mes "Your name is...^3131FF" + strcharinfo(0) +"^000000, isn't it?";
+ mes "^3131FF"+ strcharinfo(0) +"^000000, total time you spent to pass the battle..";
+ next;
+ mes "[Staff]";
+ mes "is "+@record_min70+"minutes "+@record_sec70+"seconds.";
+ mes "Congratulations!";
+ next;
+ mes "[Staff]";
+ mes "The fastest player among people who cleared lvl 70s arena time force battle is ^3131FF"+$arena_70topn$+"^000000.";
+ next;
+ mes "[Staff]";
+ mes "^3131FF"+$arena_70topn$+"^000000's running time was ^3131FF"+$top_70min+"^000000minutes ^3131FF"+$top_70sec+"^000000seconds.";
+ next;
+ if (@gap70 < 0) {
+ mes "[Staff]";
+ mes "Although you failed to make a new record, I hope you will succeed next time.";
+ next;
+ if (arena_point > 29980) {
+ mes "[Staff]";
+ mes "Then let me reward you with some arena points....eh?";
+ mes "Your arena points have exceeded the maximum amount. I cannot give you more points until you spend some points.";
+ next;
+ mes "[Staff]";
+ mes "You can check the amount of arena points you have in the arena waiting room.";
+ next;
+ mes "[Staff]";
+ mes "I hope you had a good time and let me guide you to the entrance of arena.";
+ mes "Thank you.";
+ close2;
+ }
+ else
+ {
+ set arena_point, arena_point + 20;
+ mes "[Staff]";
+ mes "Let me reward you some arena points.";
+ mes "If you wish to check the amount of arena points you have, please go talk to ^3131FFVendigos^000000 at the arena entrance.";
+ next;
+ mes "[Staff]";
+ mes "Let me guide you to the entrance of arena.";
+ mes "See you later~";
+ close2;
+ }
+ specialeffect2 EF_EXIT;
+ donpcevent "cast#70::Onnomal1";
+ warp "arena_room",100,75;
+ donpcevent "#arn_timer_70::Onstop";
+ donpcevent "alloff#70::Onon";
+ donpcevent "lvl 70s Waiting Room::Onstart";
+ end;
+ }
+ else
+ {
+ emotion e_omg;
+ mes "[Staff]";
+ mes "Wow! You have renewed the record!";
+ mes "What a great job!";
+ next;
+ mes "[Staff]";
+ mes "You have been recorded as the fastest player among people who cleared ^FF0000Arena Time Force Battle lvl 70s^000000, ^3131FF"+strcharinfo(0)+"^000000.";
+ set $top_70min, @record_min70;
+ set $top_70sec, @record_sec70;
+ set $arena_70topn$,strcharinfo(0);
+ donpcevent "Vendigos::Onlinerec_70";
+ next;
+ if (arena_point > 29970) {
+ mes "[Staff]";
+ mes "Then let me reward you with some arena points....eh?";
+ mes "Your arena points have exceeded the maximum amount. I cannot give you more points until you spend some points.";
+ next;
+ mes "[Staff]";
+ mes "You can check the amount of arena points you have in the arena waiting room.";
+ next;
+ mes "[Staff]";
+ mes "I hope you had a good time and let me guide you to the entrance of arena.";
+ mes "Thank you.";
+ close2;
+ }
+ else
+ {
+ mes "[Staff]";
+ mes "Let me reward you with some arena points.";
+ mes "At the same time, since you have renewed the record you will receive an extra amount of the points this time.";
+ next;
+ set arena_point, arena_point + 50;
+ mes "[Staff]";
+ mes "Let me reward you some arena points.";
+ mes "If you wish to check the amount of arena points you have, please go talk to ^3131FFVendigos^000000 at the arena entrance.";
+ next;
+ mes "[Staff]";
+ mes "Let me guide you to the entrance of arena.";
+ mes "See you later~";
+ close2;
+ }
+ specialeffect2 EF_HIT5;
+ donpcevent "cast#70::Onnomal2";
+ warp "arena_room",100,75;
+ donpcevent "#arn_timer_70::Onstop";
+ donpcevent "alloff#70::Onon";
+ donpcevent "lvl 70s Waiting Room::Onstart";
+ end;
+ }
+}
+
+- script #arn_timer_70 -1,{
+
+Onon:
+ initnpctimer;
+ end;
+
+OnTimer2000:
+ mapannounce "prt_are_in","This broadcast informs you about the restriction for arena lvl 70s.",0,0xFFCE00;
+ end;
+
+OnTimer3000:
+ mapannounce "prt_are_in","For a smooth game play, exit warp portal will be activated in 1 minute.",0,0xFFCE00;
+ end;
+
+OnTimer4000:
+ mapannounce "prt_are_in","Please proceed your battle quickly as possible in order to avoid disadvantage. Thank you for your cooperation.",0,0xFFCE00;
+ end;
+
+OnTimer60000:
+ donpcevent "cast#70::Ontimeover2";
+ donpcevent "arn_warp_70::Onout";
+ donpcevent "#arn_timer_70::Onstop";
+ donpcevent "alloff#70::Onon";
+ donpcevent "lvl 70s Waiting Room::Onstart";
+ end;
+
+Onstop:
+ stopnpctimer;
+ end;
+
+}
+
+- script arn_warp_70 -1,{
+
+Onout:
+ areawarp "prt_are_in",14,91,29,74,"arena_room",100,75;
+ end;
+}
+
+- script cast#70 -1,{
+Ontimeover1:
+ mapannounce "force_3-1","Arena will be reactivated due to an error occurred during battle.",0,0xFFCE00;
+ end;
+Ontimeover2:
+ mapannounce "force_3-1","Arena will be activated due to an error occurred in the waiting room.",0,0xFFCE00;
+ end;
+Onnomal1:
+ mapannounce "force_3-1","Arena will be reactivated.",0,0xFFCE00;
+ end;
+Onnomal2:
+ mapannounce "force_3-1","Arena will be reactivated.",0,0xFFCE00;
+ end;
+}
+
+- script alloff#70 -1,{
+
+Onon:
+ mapwarp "force_3-1","prt_are_in",126,190,0,0;
+ donpcevent "force_01mob#70::Onreset";
+ donpcevent "force_02mob#70::Onreset";
+ donpcevent "force_03mob#70::Onreset";
+ donpcevent "force_04mob#70::Onreset";
+ donpcevent "force_05mob#70::Onreset";
+ donpcevent "force_06mob#70::Onreset";
+ donpcevent "force_07mob#70::Onreset";
+ donpcevent "force_08mob#70::Onreset";
+ donpcevent "force_09mob#70::Onreset";
+ donpcevent "force_01ex#70::Onreset";
+ donpcevent "force_02ex#70::Onreset";
+ donpcevent "force_03ex#70::Onreset";
+ donpcevent "force_04ex#70::Onreset";
+ donpcevent "force_05ex#70::Onreset";
+ donpcevent "force_06ex#70::Onreset";
+ donpcevent "force_07ex#70::Onreset";
+ donpcevent "force_08ex#70::Onreset";
+ donpcevent "force_09ex#70::Onreset";
+ donpcevent "Cadillac#arena::Ontimeroff";
+ disablenpc "Cadillac#arena";
+ disablenpc "force_01_02#70";
+ disablenpc "force_02_03#70";
+ disablenpc "force_03_04#70";
+ disablenpc "force_04_05#70";
+ disablenpc "force_05_06#70";
+ disablenpc "force_06_07#70";
+ disablenpc "force_07_08#70";
+ disablenpc "force_08_09#70";
+ disablenpc "force_exit#70";
+ disablenpc "arena#70";
+ donpcevent "#arn_timer_70::Onstop";
+ enablenpc "Cadillac#arena";
+ enablenpc "arena#70";
+ end;
+
+OnInit:
+ if(!$top_70min && !$top_70sec) set $top_70min,7;
+ end;
+
+}
+
diff --git a/npc/pre-re/other/arena/arena_lvl80.txt b/npc/pre-re/other/arena/arena_lvl80.txt
new file mode 100644
index 000000000..796d668e1
--- /dev/null
+++ b/npc/pre-re/other/arena/arena_lvl80.txt
@@ -0,0 +1,1059 @@
+//===== rAthena Script ========================================
+//= Izlude Arena lvl 80
+//===== By: ==================================================
+//= SinSloth
+//===== Current Version: =====================================
+//= 1.1
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Description: =========================================
+//= Izlude Battle Arena Level 80
+//===== Additional Comments: =================================
+//= 1.0 First version.
+//= 1.1 Replaced effect numerics with constants. [Samuray22]
+//============================================================
+
+arena_room,147,42,1 script lvl 80s Waiting Room 124,{
+ end;
+
+OnInit:
+ waitingroom "Individual; Level 80 to 99",50,"lvl 80s Waiting Room::OnStartArena",1,1000,80,99;
+ enablewaitingroomevent;
+ end;
+
+OnStartArena:
+ warpwaitingpc "force_4-1",99,12;
+ donpcevent "arena#80::Onstart";
+ disablewaitingroomevent;
+ end;
+
+Onstart:
+ enablewaitingroomevent;
+ end;
+}
+
+force_4-1,99,20,4 script Octus#arena 124,{
+ end;
+
+OnInit:
+ set $@mapcount80, 0;
+ end;
+
+Onstart:
+ initnpctimer;
+ set $arena_min80st,gettime(2);
+ set $arena_sec80st,gettime(1);
+ end;
+
+OnTimer3000:
+ mapannounce "force_4-1","Good day, my name is Octus, the guide of Time Force Battle for lvl 80s!",0;
+ end;
+
+OnTimer4000:
+ mapannounce "force_4-1","Remember your right decision will save a lot of your time!",0;
+ end;
+
+OnTimer8000:
+ mapannounce "force_4-1","In order to complete this battle course, you must start from the far left of this room to the clock wise direction. Please move to the far left side. You have 7 minutes from now.",0;
+ end;
+
+OnTimer60000:
+ set $@mapcount80, getmapusers ("force_4-1");
+ if ($@mapcount80 == 0) {
+ donpcevent "Octus#arena::Onfailclearstage";
+ }
+ mapannounce "force_4-1","Remaining Time : 7 minutes ",0;
+ end;
+
+OnTimer120000:
+ set $@mapcount80, getmapusers ("force_4-1");
+ if ($@mapcount80 == 0) {
+ donpcevent "Octus#arena::Onfailclearstage";
+ }
+ mapannounce "force_4-1","Remaining Time : 6 minutes ",0;
+ end;
+
+OnTimer180000:
+ set $@mapcount80, getmapusers ("force_4-1");
+ if ($@mapcount80 == 0) {
+ donpcevent "Octus#arena::Onfailclearstage";
+ }
+ mapannounce "force_4-1","Remaining Time : 5 minutes ",0;
+end;
+OnTimer240000:
+ set $@mapcount80, getmapusers ("force_4-1");
+ if ($@mapcount80 == 0) {
+ donpcevent "Octus#arena::Onfailclearstage";
+ }
+ mapannounce "force_4-1","Remaining Time : 4 minutes ",0;
+ end;
+
+OnTimer300000:
+ set $@mapcount80, getmapusers ("force_4-1");
+ if ($@mapcount80 == 0) {
+ donpcevent "Octus#arena::Onfailclearstage";
+ }
+ mapannounce "force_4-1","Remaining Time : 3 minutes ",0;
+ end;
+
+OnTimer360000:
+ set $@mapcount80, getmapusers ("force_4-1");
+ if ($@mapcount80 == 0) {
+ donpcevent "Octus#arena::Onfailclearstage";
+ }
+ mapannounce "force_4-1","Remaining Time : 2 minutes ",0;
+ end;
+
+OnTimer420000:
+ set $@mapcount80, getmapusers ("force_4-1");
+ if ($@mapcount80 == 0) {
+ donpcevent "Octus#arena::Onfailclearstage";
+ }
+ mapannounce "force_4-1","Remaining Time : 1 minute ",0;
+ end;
+
+OnTimer480000:
+ mapannounce "force_4-1","Your time is over. I hope you had a good time~",0;
+ end;
+
+OnTimer485000:
+OnTimer486000:
+OnTimer487000:
+OnTimer488000:
+OnTimer489000:
+OnTimer490000:
+OnTimer491000:
+OnTimer492000:
+OnTimer493000:
+OnTimer494000:
+ mapwarp "force_4-1","prt_are_in",178,190,0,0;
+ end;
+
+OnTimer495000:
+ mapwarp "force_4-1","prt_are_in",178,190,0,0;
+ donpcevent "Octus#arena::Onfailclearstage";
+ end;
+
+Ontimeroff:
+ stopnpctimer;
+ end;
+
+Onfailclearstage:
+ donpcevent "cast#80::Ontimeover1";
+ mapwarp "force_4-1","prt_are_in",178,190,0,0;
+ donpcevent "Octus#arena::Ontimeroff";
+ donpcevent "arena#80::Onreset_all";
+ donpcevent "alloff#80::Onon";
+ donpcevent "lvl 80s Waiting Room::Onstart";
+ end;
+
+On01_start:
+ mapannounce "force_4-1","In order to clear this battle, you must kill all Nightmares!",0;
+ end;
+
+On01_end:
+ mapannounce "force_4-1","A door to the north room has opened!",0;
+ end;
+
+On02_start:
+ mapannounce "force_4-1","In order to clear this battle, you must kill all monsters!",0;
+ end;
+
+On02_end:
+ mapannounce "force_4-1","A door to the north room has opened!",0;
+ end;
+
+On03_start:
+ mapannounce "force_4-1","In order to clear this battle, you must kill all Assaulters!",0;
+ end;
+
+On03_end:
+ mapannounce "force_4-1","Clear! A door to the east room has opened!",0;
+ end;
+
+On04_start:
+ mapannounce "force_4-1","In order to clear this battle, you must kill all Nine Tails!",0;
+ end;
+
+On04_end:
+ mapannounce "force_4-1","A door to the east room has opened!",0;
+ end;
+
+On05_start:
+ mapannounce "force_4-1","In order to clear this battle, you must kill all Walking Petites!",0;
+ end;
+
+On05_end:
+ mapannounce "force_4-1","Clear! A door to the south room has opened!",0;
+ end;
+
+On06_start:
+ mapannounce "force_4-1","In order to clear this battle, kill all monsters in this room!",0;
+ end;
+
+On06_end:
+ mapannounce "force_4-1","A door to the south room has opened!",0;
+ end;
+
+On07_start:
+ mapannounce "force_4-1","In order to clear this battle, kill all Fur-Seals while dodging Mermen!",0;
+ end;
+
+On07_end:
+ mapannounce "force_4-1","Clear! A door to the west room has opened!",0;
+ end;
+
+On08_start:
+ mapannounce "force_4-1","Please escape to the north exit!",0;
+ end;
+
+On09_start:
+ mapannounce "force_4-1","In order to clear this battle, you must defeat an Ancient Mummy!",0;
+ end;
+
+On09_end:
+ mapannounce "force_4-1","Boss Clear! - A door at the north has opened. Thank you. ",0;
+ end;
+
+}
+
+- script arena#80 -1,{
+
+Onreset_01:
+ donpcevent "force_01ex#80::Onreset";
+ donpcevent "force_02start#80::Onon";
+ enablenpc "force_01_02#80";
+ end;
+
+Onreset_02:
+ donpcevent "force_02mob#80::Onreset";
+ donpcevent "force_03start#80::Onon";
+ enablenpc "force_02_03#80";
+ end;
+
+Onreset_03:
+ enablenpc "force_03_04#80";
+ donpcevent "force_04start#80::Onon";
+ donpcevent "force_03ex#80::Onreset";
+ end;
+
+Onreset_04:
+ enablenpc "force_04_05#80";
+ donpcevent "force_05start#80::Onon";
+ donpcevent "force_04ex#80::Onreset";
+ end;
+
+Onreset_05:
+ enablenpc "force_05_06#80";
+ donpcevent "force_06start#80::Onon";
+ donpcevent "force_05ex#80::Onreset";
+ end;
+
+Onreset_06:
+ enablenpc "force_06_07#80";
+ donpcevent "force_07start#80::Onon";
+ donpcevent "force_06ex#80::Onreset";
+ end;
+
+Onreset_07:
+ enablenpc "force_07_08#80";
+ donpcevent "force_07ex#80::Onreset";
+ donpcevent "force_08start#80::Onon";
+ end;
+
+Onreset_08:
+ donpcevent "force_09start#80::Onon";
+ enablenpc "force_08_09#80";
+ end;
+
+Onreset_09:
+ enablenpc "force_exit#80";
+ end;
+
+Onstart:
+ disablenpc "force_01_02#80";
+ disablenpc "force_02_03#80";
+ disablenpc "force_03_04#80";
+ disablenpc "force_04_05#80";
+ disablenpc "force_05_06#80";
+ disablenpc "force_06_07#80";
+ disablenpc "force_07_08#80";
+ disablenpc "force_08_09#80";
+ disablenpc "force_exit#80";
+ donpcevent "Octus#arena::Ontimeroff";
+ donpcevent "force_09mob#80::Ontimeroff";
+ donpcevent "force_01mob#80::Onreset";
+ donpcevent "force_02mob#80::Onreset";
+ donpcevent "force_03mob#80::Onreset";
+ donpcevent "force_04mob#80::Onreset";
+ donpcevent "force_05mob#80::Onreset";
+ donpcevent "force_06mob#80::Onreset";
+ donpcevent "force_07mob#80::Onreset";
+ donpcevent "force_08mob#80::Onreset";
+ donpcevent "force_09mob#80::Onreset";
+ donpcevent "force_01ex#80::Onreset";
+ donpcevent "force_03ex#80::Onreset";
+ donpcevent "force_04ex#80::Onreset";
+ donpcevent "force_05ex#80::Onreset";
+ donpcevent "force_07ex#80::Onreset";
+ donpcevent "force_08ex#80::Onreset";
+ donpcevent "force_09ex#80::Onreset";
+ enablenpc "force_08_01#80";
+ donpcevent "force_01start#80::Onon";
+ donpcevent "Octus#arena::Onstart";
+ end;
+
+Onreset_all:
+ donpcevent "force_01mob#80::Onreset";
+ donpcevent "force_02mob#80::Onreset";
+ donpcevent "force_03mob#80::Onreset";
+ donpcevent "force_04mob#80::Onreset";
+ donpcevent "force_05mob#80::Onreset";
+ donpcevent "force_06mob#80::Onreset";
+ donpcevent "force_07mob#80::Onreset";
+ donpcevent "force_09mob#80::Onreset";
+ donpcevent "force_01ex#80::Onreset";
+ donpcevent "force_03ex#80::Onreset";
+ donpcevent "force_04ex#80::Onreset";
+ donpcevent "force_05ex#80::Onreset";
+ donpcevent "force_07ex#80::Onreset";
+ donpcevent "force_08ex#80::Onreset";
+ donpcevent "force_09ex#80::Onreset";
+ end;
+
+}
+
+force_4-1,62,26,1 script force_08_01#80 45,1,1,{
+
+OnTouch:
+ donpcevent "Octus#arena::On01_start";
+ warp "force_4-1",40,26;
+ end;
+
+}
+
+force_4-1,25,44,1 script force_01_02#80 45,1,1,{
+
+OnTouch:
+ donpcevent "Octus#arena::On02_start";
+ warp "force_4-1",25,69;
+ end;
+
+}
+
+force_4-1,25,134,1 script force_02_03#80 45,1,1,{
+
+OnTouch:
+ donpcevent "Octus#arena::On03_start";
+ warp "force_4-1",25,159;
+ end;
+
+}
+
+force_4-1,44,174,1 script force_03_04#80 45,1,1,{
+
+OnTouch:
+ donpcevent "Octus#arena::On04_start";
+ warp "force_4-1",69,174;
+ end;
+
+}
+
+force_4-1,134,174,1 script force_04_05#80 45,1,1,{
+
+OnTouch:
+ donpcevent "Octus#arena::On05_start";
+ warp "force_4-1",159,174;
+ end;
+
+}
+
+force_4-1,174,155,1 script force_05_06#80 45,1,1,{
+
+OnTouch:
+ donpcevent "Octus#arena::On06_start";
+ warp "force_4-1",174,130;
+ end;
+
+}
+
+force_4-1,174,65,1 script force_06_07#80 45,1,1,{
+
+OnTouch:
+ donpcevent "Octus#arena::On07_start";
+ warp "force_4-1",174,40;
+ end;
+
+}
+
+force_4-1,155,26,1 script force_07_08#80 45,1,1,{
+
+OnTouch:
+ donpcevent "Octus#arena::On08_start";
+ warp "force_4-1",132,26;
+ enablenpc "force_08_09#80";
+ end;
+
+}
+
+force_4-1,99,54,1 script force_08_09#80 45,1,1,{
+
+OnTouch:
+ donpcevent "Octus#arena::On09_start";
+ warp "force_4-1",99,82;
+ end;
+
+}
+
+force_4-1,99,124,1 script force_exit#80 45,1,1,{
+
+OnTouch:
+ donpcevent "Octus#arena::Ontimeroff";
+ donpcevent "#arn_timer_80::Onon";
+ mapwarp "force_4-1","prt_are_in",73,192,0,0;
+ end;
+
+}
+
+- script force_01start#80 -1,{
+Onon:
+ donpcevent "force_01mob#80::Onon";
+end;
+
+}
+
+- script force_01ex#80 -1,{
+
+Onreset:
+ killmonster "force_4-1","force_01ex#80::OnMobEx";
+ end;
+
+Onsummonmob1:
+ monster "force_4-1",11,25,"Hunter Fly",1422,1,"force_01ex#80::OnMobEx";
+ monster "force_4-1",22,22,"Hunter Fly",1422,1,"force_01ex#80::OnMobEx";
+ monster "force_4-1",25,25,"Hunter Fly",1422,1,"force_01ex#80::OnMobEx";
+ monster "force_4-1",35,13,"Hunter Fly",1422,1,"force_01ex#80::OnMobEx";
+ monster "force_4-1",18,33,"Hunter Fly",1422,1,"force_01ex#80::OnMobEx";
+ end;
+
+OnMobEx:
+ end;
+
+}
+
+- script force_01mob#80 -1,{
+
+Onon:
+ monster "force_4-1",35,13,"Nightmare",1427,1,"force_01mob#80::OnMobDeath";
+ monster "force_4-1",25,36,"Nightmare",1427,1,"force_01mob#80::OnMobDeath";
+ monster "force_4-1",22,23,"Nightmare",1427,1,"force_01mob#80::OnMobDeath";
+ monster "force_4-1",25,17,"Nightmare",1427,1,"force_01mob#80::OnMobDeath";
+ monster "force_4-1",25,15,"Nightmare",1427,1,"force_01mob#80::OnMobDeath";
+ set $force_01_80,5;
+ donpcevent "force_01ex#80::Onsummonmob1";
+ end;
+
+Onreset:
+ killmonster "force_4-1","force_01mob#80::OnMobDeath";
+ end;
+
+OnMobDeath:
+ set $force_01_80,$force_01_80 -1;
+ if ($force_01_80 < 1) {
+ donpcevent "Octus#arena::On01_end";
+ donpcevent "arena#80::Onreset_01";
+ }
+ end;
+}
+
+- script force_02start#80 -1,{
+
+Onon:
+ donpcevent "force_02mob#80::Onon";
+ end;
+}
+
+- script force_02mob#80 -1,{
+
+Onreset:
+ killmonster "force_4-1","force_02mob#80::OnMobDeath";
+ end;
+
+Onon:
+ monster "force_4-1",24,80,"Marionette",1459,1,"force_02mob#80::OnMobDeath";
+ monster "force_4-1",23,110,"Marionette",1459,1,"force_02mob#80::OnMobDeath";
+ monster "force_4-1",26,90,"Marionette",1459,1,"force_02mob#80::OnMobDeath";
+ monster "force_4-1",28,75,"Zombie",1394,1,"force_02mob#80::OnMobDeath";
+ monster "force_4-1",24,90,"Zombie",1394,1,"force_02mob#80::OnMobDeath";
+ monster "force_4-1",28,85,"Zombie",1394,1,"force_02mob#80::OnMobDeath";
+ monster "force_4-1",24,82,"Deviruchi",1433,1,"force_02mob#80::OnMobDeath";
+ monster "force_4-1",28,86,"Skel Prisoner",1479,1,"force_02mob#80::OnMobDeath";
+ monster "force_4-1",27,73,"Skel Prisoner",1479,1,"force_02mob#80::OnMobDeath";
+ monster "force_4-1",26,118,"Skel Prisoner",1479,1,"force_02mob#80::OnMobDeath";
+ monster "force_4-1",25,127,"Skel Prisoner",1479,1,"force_02mob#80::OnMobDeath";
+ monster "force_4-1",28,128,"Zombie",1394,1,"force_02mob#80::OnMobDeath";
+ monster "force_4-1",27,100,"Zombie",1394,1,"force_02mob#80::OnMobDeath";
+ monster "force_4-1",29,90,"Zombie",1394,1,"force_02mob#80::OnMobDeath";
+ monster "force_4-1",28,128,"Raydric Archer",1453,1,"force_02mob#80::OnMobDeath";
+ set $force_02_80,15;
+ end;
+
+OnMobDeath:
+ set $force_02_80,$force_02_80 -1;
+ if ($force_02_80 < 1) {
+ donpcevent "Octus#arena::On02_end";
+ donpcevent "arena#80::Onreset_02";
+ }
+ end;
+}
+
+- script force_03start#80 -1,{
+
+Onon:
+ donpcevent "force_03mob#80::Onon";
+ end;
+}
+
+- script force_03ex#80 -1,{
+
+Onreset:
+ killmonster "force_4-1","force_03ex#80::OnMobEx";
+ end;
+
+Onsummonmob_03:
+ monster "force_4-1",26,173,"Clock Tower Keeper",1527,1,"force_03ex#80::OnMobEx";
+ monster "force_4-1",21,173,"Marionette",1459,1,"force_03ex#80::OnMobEx";
+ monster "force_4-1",31,173,"Clock Tower Keeper",1527,1,"force_03ex#80::OnMobEx";
+ monster "force_4-1",26,178,"Marionette",1459,1,"force_03ex#80::OnMobEx";
+ monster "force_4-1",21,178,"Marionette",1459,1,"force_03ex#80::OnMobEx";
+ monster "force_4-1",31,178,"Marionette",1459,1,"force_03ex#80::OnMobEx";
+ monster "force_4-1",26,186,"Sidewinder",1424,1,"force_03ex#80::OnMobEx";
+ monster "force_4-1",26,161,"Sidewinder",1424,1,"force_03ex#80::OnMobEx";
+ end;
+
+OnMobEx:
+ end;
+}
+
+- script force_03mob#80 -1,{
+
+Onon:
+ donpcevent "force_03ex#80::Onsummonmob_03";
+ monster "force_4-1",23,174,"Assaulter",1364,1,"force_03mob#80::OnMobDeath";
+ monster "force_4-1",18,173,"Assaulter",1364,1,"force_03mob#80::OnMobDeath";
+ set $force_03_80,2;
+ end;
+
+Onreset:
+ killmonster "force_4-1","force_03mob#80::OnMobDeath";
+ end;
+
+OnMobDeath:
+ set $force_03_80,$force_03_80 -1;
+ donpcevent "force_03ex#80::Onsummonmob_03";
+ if ($force_03_80 < 1) {
+ donpcevent "Octus#arena::On03_end";
+ donpcevent "arena#80::Onreset_03";
+ }
+ end;
+}
+
+- script force_04start#80 -1,{
+
+Onon:
+ donpcevent "force_04mob#80::Onon";
+end;
+
+}
+
+- script force_04ex#80 -1,{
+
+Onreset:
+ killmonster "force_4-1","force_04ex#80::OnMobEx";
+ end;
+
+Onsummonmob_04:
+ monster "force_4-1",99,174,"Archer Skeleton",1420,1,"force_04ex#80::OnMobEx";
+ monster "force_4-1",101,174,"Archer Skeleton",1420,1,"force_04ex#80::OnMobEx";
+ monster "force_4-1",103,174,"Archer Skeleton",1420,1,"force_04ex#80::OnMobEx";
+ monster "force_4-1",105,174,"Archer Skeleton",1420,1,"force_04ex#80::OnMobEx";
+ monster "force_4-1",107,174,"Archer Skeleton",1420,1,"force_04ex#80::OnMobEx";
+ monster "force_4-1",109,177,"Pasana",1464,1,"force_04ex#80::OnMobEx";
+ monster "force_4-1",99,170,"Minorous",1461,1,"force_04ex#80::OnMobEx";
+ monster "force_4-1",111,170,"Minorous",1461,1,"force_04ex#80::OnMobEx";
+ monster "force_4-1",110,170,"Lava Golem",1549,1,"force_04ex#80::OnMobEx";
+ end;
+
+OnMobEx:
+ end;
+
+}
+
+- script force_04mob#80 -1,{
+
+Onon:
+ donpcevent "force_04ex#80::Onsummonmob_04";
+ monster "force_4-1",80,172,"Nine Tails",1471,1,"force_04mob#80::OnMobDeath";
+ monster "force_4-1",105,172,"Nine Tails",1471,1,"force_04mob#80::OnMobDeath";
+ monster "force_4-1",90,172,"Nine Tails",1471,1,"force_04mob#80::OnMobDeath";
+ monster "force_4-1",117,172,"Nine Tails",1471,1,"force_04mob#80::OnMobDeath";
+ set $force_04_80,4;
+ end;
+Onreset:
+ killmonster "force_4-1","force_04mob#80::OnMobDeath";
+ end;
+
+OnMobDeath:
+ set $force_04_80,$force_04_80 -1;
+ if ($force_04_80 < 1) {
+ donpcevent "Octus#arena::On04_end";
+ donpcevent "arena#80::Onreset_04";
+ }
+ end;
+}
+
+- script force_05start#80 -1,{
+
+Onon:
+ donpcevent "force_05mob#80::Onon";
+ end;
+}
+
+- script force_05ex#80 -1,{
+
+Onreset:
+ killmonster "force_4-1","force_05ex#80::OnMobEx";
+ end;
+
+Onsummonmob_05:
+ monster "force_4-1",168,190,"Petite",1466,1,"force_05ex#80::OnMobEx";
+ monster "force_4-1",173,166,"Petite",1466,1,"force_05ex#80::OnMobEx";
+ monster "force_4-1",171,176,"Petite",1466,1,"force_05ex#80::OnMobEx";
+ monster "force_4-1",188,167,"Petite",1466,1,"force_05ex#80::OnMobEx";
+ end;
+
+OnMobEx:
+ end;
+}
+
+- script force_05mob#80 -1,{
+
+Onon:
+ monster "force_4-1",164,174,"Petite",1465,1,"force_05mob#80::OnMobDeath";
+ monster "force_4-1",169,159,"Petite",1465,1,"force_05mob#80::OnMobDeath";
+ monster "force_4-1",174,183,"Petite",1465,1,"force_05mob#80::OnMobDeath";
+ monster "force_4-1",177,170,"Petite",1465,1,"force_05mob#80::OnMobDeath";
+ set $force_05_80,4;
+ end;
+
+Onreset:
+ killmonster "force_4-1","force_05mob#80::OnMobDeath";
+ end;
+
+OnMobDeath:
+ set $force_05_80,$force_05_80 -1;
+ if ($force_05_80 < 1) {
+ donpcevent "Octus#arena::On05_end";
+ donpcevent "arena#80::Onreset_05";
+ }
+ else donpcevent "force_05ex#80::Onsummonmob_05";
+ end;
+
+}
+
+- script force_06start#80 -1,{
+
+Onon:
+ donpcevent "force_06mob#80::Onon";
+ end;
+}
+
+- script force_06mob#80 -1,{
+
+Onon:
+ monster "force_4-1",173,118,"Baphomet Jr.",1431,1,"force_06mob#80::OnMobDeath";
+ monster "force_4-1",173,90,"Baphomet Jr.",1431,1,"force_06mob#80::OnMobDeath";
+ monster "force_4-1",177,72,"Baphomet Jr.",1431,1,"force_06mob#80::OnMobDeath";
+ monster "force_4-1",171,108,"Deviruchi",1433,1,"force_06mob#80::OnMobDeath";
+ monster "force_4-1",171,85,"Deviruchi",1433,1,"force_06mob#80::OnMobDeath";
+ monster "force_4-1",171,79,"Alice",1521,1,"force_06mob#80::OnMobDeath";
+ monster "force_4-1",175,118,"Alice",1521,1,"force_06mob#80::OnMobDeath";
+ monster "force_4-1",175,99,"Alice",1521,1,"force_06mob#80::OnMobDeath";
+ set $force_06_80,8;
+ end;
+
+Onreset:
+ killmonster "force_4-1","force_06mob#80::OnMobDeath";
+ end;
+
+OnMobDeath:
+ set $force_06_80,$force_06_80 -1;
+ if ($force_06_80 < 1) {
+ donpcevent "Octus#arena::On06_end";
+ donpcevent "arena#80::Onreset_06";
+ }
+ end;
+}
+
+- script force_07start#80 -1,{
+
+Onon:
+ donpcevent "force_07mob#80::Onon";
+ end;
+}
+
+- script force_07ex#80 -1,{
+
+Onreset:
+ killmonster "force_4-1","force_07ex#80::OnMobEx";
+ end;
+
+Onsummonmob_07:
+ monster "force_4-1",160,34,"Merman",1451,1,"force_07ex#80::OnMobEx";
+ monster "force_4-1",163,27,"Merman",1451,1,"force_07ex#80::OnMobEx";
+ monster "force_4-1",163,23,"Merman",1451,1,"force_07ex#80::OnMobEx";
+ end;
+
+OnMobEx:
+ end;
+}
+
+- script force_07mob#80 -1,{
+
+Onon:
+ donpcevent "force_07ex#80::Onsummonmob_07";
+ monster "force_4-1",165,27,"Fur-Seal",1533,1,"force_07mob#80::OnMobDeath";
+ monster "force_4-1",184,23,"Fur-Seal",1533,1,"force_07mob#80::OnMobDeath";
+ monster "force_4-1",174,19,"Fur-Seal",1533,1,"force_07mob#80::OnMobDeath";
+ set $force_07_80,3;
+ end;
+
+Onreset:
+ killmonster "force_4-1","force_07mob#80::OnMobDeath";
+ end;
+
+OnMobDeath:
+ set $force_07_80,$force_07_80 -1;
+ if ($force_07_80 < 1) {
+ donpcevent "Octus#arena::On07_end";
+ donpcevent "arena#80::Onreset_07";
+ }
+ end;
+}
+
+- script force_08start#80 -1,{
+
+Onon:
+ donpcevent "force_08ex#80::Onon";
+ end;
+}
+
+- script force_08ex#80 -1,{
+
+Onon:
+ donpcevent "arena#80::Onreset_08";
+ end;
+}
+
+- script force_09start#80 -1,{
+
+Onon:
+ donpcevent "force_09mob#80::Onon";
+ end;
+}
+
+- script force_09ex#80 -1,{
+
+Onreset:
+ killmonster "force_4-1","force_09ex#80::OnMobEx";
+ end;
+
+Onsummonmob_09:
+ monster "force_4-1",91,99,"Argos",1430,1,"force_09ex#80::OnMobEx";
+ monster "force_4-1",95,105,"Argos",1430,1,"force_09ex#80::OnMobEx";
+ monster "force_4-1",122,99,"Argos",1430,1,"force_09ex#80::OnMobEx";
+ monster "force_4-1",88,107,"Argos",1430,1,"force_09ex#80::OnMobEx";
+ monster "force_4-1",85,104,"Argos",1430,1,"force_09ex#80::OnMobEx";
+ end;
+
+OnMobEx:
+ end;
+}
+
+- script force_09mob#80 -1,{
+
+Onon:
+ monster "force_4-1",99,99,"Ancient Mummy",1522,1,"force_09mob#80::OnMobDeath";
+ donpcevent "force_09ex#80::Onsummonmob_09";
+ set $force_09_80,1;
+ end;
+
+Onreset:
+ killmonster "force_4-1","force_09mob#80::OnMobDeath";
+ end;
+
+OnMobDeath:
+ set $force_09_80,$force_09_80 -1;
+ if ($force_09_80 < 1) {
+ donpcevent "Octus#arena::On09_end";
+ donpcevent "arena#80::Onreset_09";
+ donpcevent "arena#80::Onreset_all";
+ set $arena_min80end,gettime(2);
+ set $arena_sec80end,gettime(1);
+ }
+ end;
+}
+
+prt_are_in,181,188,3 script Staff#80-1 67,{
+
+ mes "[Staff]";
+ mes "You did a good job.";
+ mes "Even if you have failed to clear a time attack battle, I will reward you with a small amount of arena points.";
+ next;
+ if (arena_point == 30000) {
+ mes "[Staff]";
+ mes "Uh huh!";
+ mes "You already have enough arena points.";
+ mes "Please spend some arena points later. When I see you next time, I will make sure to give you some reward.";
+ next;
+ }
+ else set arena_point, arena_point + 1;
+ mes "[Staff]";
+ mes "Let me guide you outside. I hope you had a good time.";
+ close2;
+ specialeffect2 EF_EXIT;
+ warp "arena_room",100,75;
+ end;
+}
+
+prt_are_in,77,187,3 script Staff#80-2 67,{
+
+ if($arena_min80end < $arena_min80st)
+ {
+ if($arena_sec80end < $arena_sec80st)
+ {
+ set @record_min80,60 - $arena_min80st + $arena_min80end -1;
+ set @record_sec80,60 - $arena_sec80st + $arena_sec80end;
+ }
+ else
+ {
+ set @record_min80,60 - $arena_min80st + $arena_min80end;
+ set @record_sec80,$arena_sec80end - $arena_sec80st;
+ }
+ }
+ else
+ {
+ if($arena_sec80end < $arena_sec80st)
+ {
+ set @record_min80,$arena_min80end - $arena_min80st -1;
+ set @record_sec80,60 - $arena_sec80st + $arena_sec80end;
+ }
+ else
+ {
+ set @record_min80,$arena_min80end - $arena_min80st;
+ set @record_sec80,$arena_sec80end - $arena_sec80st;
+ }
+ }
+ set @gap80,(60 * $top_80min + $top_80sec) - (60 * @record_min80 + @record_sec80);
+ mes "[Staff]";
+ mes "Wow, you did a good job~ ";
+ mes "Your name is...^3131FF" + strcharinfo(0) +"^000000, isn't it?";
+ mes "^3131FF"+ strcharinfo(0) +"^000000, total time you spent to pass the battle..";
+ next;
+ mes "[Staff]";
+ mes "is "+@record_min80+"minutes "+@record_sec80+"seconds.";
+ mes "Congratulations!";
+ next;
+ mes "[Staff]";
+ mes "The fastest player among people who cleared lvl 80s arena time force battle is ^3131FF"+$arena_80topn$+"^000000.";
+ next;
+ mes "[Staff]";
+ mes "^3131FF"+$arena_80topn$+"^000000's running time was ^3131FF"+$top_80min+"^000000minutes ^3131FF"+$top_80sec+"^000000seconds.";
+ next;
+ if (@gap80 < 0) {
+ mes "[Staff]";
+ mes "Although you failed to make a new record, I hope you will succeed next time.";
+ next;
+ if (arena_point > 29980) {
+ mes "[Staff]";
+ mes "Then let me reward you with some arena points....eh?";
+ mes "Your arena points have exceeded the maximum amount. I cannot give you more points until you spend some points.";
+ next;
+ mes "[Staff]";
+ mes "You can check the amount of arena points you have in the arena waiting room.";
+ next;
+ mes "[Staff]";
+ mes "I hope you had a good time and let me guide you to the entrance of arena.";
+ mes "Thank you.";
+ close2;
+ }
+ else
+ {
+ set arena_point, arena_point + 20;
+ mes "[Staff]";
+ mes "Let me reward you some arena points.";
+ mes "If you wish to check the amount of arena points you have, please go talk to ^3131FFVendigos^000000 at the arena entrance.";
+ next;
+ mes "[Staff]";
+ mes "Let me guide you to the entrance of arena.";
+ mes "See you later~";
+ close2;
+ }
+ specialeffect2 EF_EXIT;
+ donpcevent "cast#80::Onnomal1";
+ warp "arena_room",100,75;
+ donpcevent "#arn_timer_80::Onstop";
+ donpcevent "alloff#80::Onon";
+ donpcevent "lvl 80s Waiting Room::Onstart";
+ end;
+ }
+ else
+ {
+ emotion e_omg;
+ mes "[Staff]";
+ mes "Wow! You have renewed the record!";
+ mes "What a great job!";
+ next;
+ mes "[Staff]";
+ mes "You have been recorded as the fastest player among people who cleared ^FF0000Arena Time Force Battle lvl 80s^000000, ^3131FF"+strcharinfo(0)+"^000000.";
+ set $top_80min, @record_min80;
+ set $top_80sec, @record_sec80;
+ set $arena_80topn$,strcharinfo(0);
+ donpcevent "Vendigos::Onlinerec_80";
+ next;
+ if (arena_point > 29980) {
+ mes "[Staff]";
+ mes "Then let me reward you with some arena points....eh?";
+ mes "Your arena points have exceeded the maximum amount. I cannot give you more points until you spend some points.";
+ next;
+ mes "[Staff]";
+ mes "You can check the amount of arena points you have in the arena waiting room.";
+ next;
+ mes "[Staff]";
+ mes "I hope you had a good time and let me guide you to the entrance of arena.";
+ mes "Thank you.";
+ close2;
+ }
+ else
+ {
+ mes "[Staff]";
+ mes "Let me reward you with some arena points.";
+ mes "At the same time, since you have renewed the record you will receive an extra amount of the points this time.";
+ next;
+ set arena_point, arena_point + 50;
+ mes "[Staff]";
+ mes "Let me reward you some arena points.";
+ mes "If you wish to check the amount of arena points you have, please go talk to ^3131FFVendigos^000000 at the arena entrance.";
+ next;
+ mes "[Staff]";
+ mes "Let me guide you to the entrance of arena.";
+ mes "See you later~";
+ close2;
+ }
+ specialeffect2 EF_HIT5;
+ donpcevent "cast#80::Onnomal2";
+ warp "arena_room",100,75;
+ donpcevent "#arn_timer_80::Onstop";
+ donpcevent "alloff#80::Onon";
+ donpcevent "lvl 80s Waiting Room::Onstart";
+ end;
+ }
+}
+
+- script #arn_timer_80 -1,{
+
+Onon:
+ initnpctimer;
+ end;
+
+OnTimer2000:
+ mapannounce "prt_are_in","This broadcast informs you about the restriction for arena lvl 80s.",0,0xFFCE00;
+ end;
+
+OnTimer3000:
+ mapannounce "prt_are_in","For a smooth game play, exit warp portal will be activated in 1 minute.",0,0xFFCE00;
+ end;
+
+OnTimer4000:
+ mapannounce "prt_are_in","Please proceed your battle quickly as possible in order to avoid disadvantage. Thank you for your cooperation.",0,0xFFCE00;
+ end;
+
+OnTimer60000:
+ donpcevent "cast#80::Ontimeover2";
+ donpcevent "arn_warp_80::Onout";
+ donpcevent "#arn_timer_80::Onstop";
+ donpcevent "alloff#80::Onon";
+ donpcevent "lvl 80s Waiting Room::Onstart";
+ end;
+
+Onstop:
+ stopnpctimer;
+ end;
+
+}
+
+- script arn_warp_80 -1,{
+
+Onout:
+ areawarp "prt_are_in",66,195,81,178,"arena_room",100,75;
+ end;
+}
+
+- script cast#80 -1,{
+Ontimeover1:
+ mapannounce "force_4-1","Arena will be reactivated due to an error occurred during battle.",0,0xFFCE00;
+ end;
+Ontimeover2:
+ mapannounce "force_4-1","Arena will be activated due to an error occurred in the waiting room.",0,0xFFCE00;
+ end;
+Onnomal1:
+ mapannounce "force_4-1","Arena will be reactivated.",0,0xFFCE00;
+ end;
+Onnomal2:
+ mapannounce "force_4-1","Arena will be reactivated.",0,0xFFCE00;
+ end;
+}
+
+- script alloff#80 -1,{
+
+Onon:
+ mapwarp "force_4-1","prt_are_in",126,190,0,0;
+ donpcevent "force_01mob#80::Onreset";
+ donpcevent "force_02mob#80::Onreset";
+ donpcevent "force_03mob#80::Onreset";
+ donpcevent "force_04mob#80::Onreset";
+ donpcevent "force_05mob#80::Onreset";
+ donpcevent "force_06mob#80::Onreset";
+ donpcevent "force_07mob#80::Onreset";
+ donpcevent "force_08mob#80::Onreset";
+ donpcevent "force_09mob#80::Onreset";
+ donpcevent "force_01ex#80::Onreset";
+ donpcevent "force_03ex#80::Onreset";
+ donpcevent "force_04ex#80::Onreset";
+ donpcevent "force_05ex#80::Onreset";
+ donpcevent "force_07ex#80::Onreset";
+ donpcevent "force_08ex#80::Onreset";
+ donpcevent "force_09ex#80::Onreset";
+ donpcevent "Octus#arena::Ontimeroff";
+ disablenpc "Octus#arena";
+ disablenpc "force_01_02#80";
+ disablenpc "force_02_03#80";
+ disablenpc "force_03_04#80";
+ disablenpc "force_04_05#80";
+ disablenpc "force_05_06#80";
+ disablenpc "force_06_07#80";
+ disablenpc "force_07_08#80";
+ disablenpc "force_08_09#80";
+ disablenpc "force_exit#80";
+ disablenpc "arena#80";
+ donpcevent "#arn_timer_80::Onstop";
+ enablenpc "Octus#arena";
+ enablenpc "arena#80";
+ end;
+
+OnInit:
+ if(!$top_80min && !$top_80sec) set $top_80min,8;
+ end;
+
+}
+
diff --git a/npc/pre-re/other/arena/arena_party.txt b/npc/pre-re/other/arena/arena_party.txt
new file mode 100644
index 000000000..e907b0890
--- /dev/null
+++ b/npc/pre-re/other/arena/arena_party.txt
@@ -0,0 +1,1462 @@
+//===== rAthena Script ========================================
+//= Izlude Party Arena
+//===== By: ==================================================
+//= SinSloth
+//===== Current Version: =====================================
+//= 1.3
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Description: =========================================
+//= Izlude Party Battle Arena
+//===== Additional Comments: =================================
+//= 1.0 First version.
+//= 1.0a Fixed a typo.
+//= 1.1 Replaced effect numerics with constants. [Samuray22]
+//= 1.2 Fixed "OnMobDeath" doesn't work sometime. [Inkfish]
+//= 1.3 Corrected donpcevent typo. (bugreport:4374) [L0ne_w0lf]
+//============================================================
+
+arena_room,162,88,3 script Ponox 124,{
+ end;
+
+OnInit:
+ waitingroom "Party Mode - 5 Member Parties",11,"Ponox::OnStartArena",5,0,10,99;
+ enablewaitingroomevent;
+ end;
+
+OnStartArena:
+ donpcevent "toarena#party::OnInit";
+ donpcevent "toout#party::OnInit";
+ warpwaitingpc "prt_are_in",73,78;
+ donpcevent "toout#party::OnTimer";
+ donpcevent "Helper#party::OnEnter";
+ disablewaitingroomevent;
+ end;
+
+Onstart:
+ enablewaitingroomevent;
+ end;
+}
+
+prt_are_in,76,87,3 script Helper#party 67,4,4,{
+
+ if($arn_partywait == 0)
+ {
+ set $arn_partywait,1;
+ emotion e_gasp,0;
+ mes "[Helper Iriff]";
+ mes "Good day, challengers!";
+ mes "You are in the party arena waiting room.";
+ next;
+ mes "[Helper Iriff]";
+ mes "Only one person at a time is allowed to stay in this waiting room.";
+ mes "Would you like to start a battle now?";
+ next;
+ switch( select( "No","Yes" ) )
+ {
+ case 1:
+ set $arn_partywait,0;
+ mes "[Helper Iriff]";
+ mes "I see.";
+ mes "However, please remember you have only a limited amount of time.";
+ close;
+
+ case 2:
+ mes "[Helper Iriff]";
+ mes "Thank you, let me start a battle.";
+ mes "A warp portal leading to the arena room will be open.";
+ mes "I hope you will survive until the end of the battle and engrave your name on the list of honor...";
+ close2;
+ donpcevent "toarena#party::OnEnter";
+ donpcevent "Helper#party::OnStop";
+ donpcevent "arena_p::OnStart";
+ end;
+ }
+ }
+ else end;
+
+OnEnter:
+ enablenpc "Helper#party";
+ end;
+
+OnStop:
+ disablenpc "Helper#party";
+ end;
+
+OnInit:
+ set $arn_partywait,0;
+ end;
+}
+
+prt_are_in,73,78,0 script toarena#party -1,20,20,{
+
+OnInit:
+ disablenpc "toarena#party";
+ end;
+
+OnTouch:
+ if(Zeny < 1000) warp "arena_room",100,75;
+ else
+ {
+ set Zeny,Zeny -1000;
+ set $arn_partywait,0;
+ donpcevent "toout#party::OnStop";
+ warp "force_1-2",99,26;
+ }
+
+OnEnter:
+ enablenpc "toarena#party";
+ end;
+}
+
+prt_are_in,73,79,0 script toout#party -1,20,20,{
+
+OnInit:
+ disablenpc "toout#party";
+ end;
+
+OnTimer:
+ initnpctimer;
+ end;
+
+OnTimer60000:
+ set $arn_partywait,0;
+ enablenpc "toout#party";
+ end;
+
+OnTimer70000:
+ donpcevent "toout#party::OnStop";
+ donpcevent "Ponox::Onstart";
+ disablenpc "toout#party";
+
+OnTouch:
+ set $arn_partywait,0;
+ warp "arena_room",100,75;
+
+OnEnter:
+ enablenpc "toout#party";
+ end;
+
+OnStop:
+// broadcastinmap "toout turns off the timer."
+ stopnpctimer;
+ end;
+}
+
+prt_are_in,73,74,0 script arena_out -1,1,1,{
+
+OnTouch:
+ set $arn_partywait,0;
+ warp "arena_room",100,75;
+ end;
+}
+
+force_1-2,99,31,4 script Slipslowrun#party 124,{
+
+OnInit:
+ set $@mapcountpt,0;
+ end;
+
+OnStart:
+ initnpctimer;
+ set $arena_minptst,gettime(2);
+ set $arena_secptst,gettime(1);
+ end;
+
+OnTimer2000:
+ mapannounce "force_1-2","Good day, my name is Slipslowrun! I am here to assist you in the party arena battles!",bc_all;
+ donpcevent "arena_compass::OnStart";
+ end;
+
+OnTimer3000:
+ mapannounce "force_1-2","The goal of the party arena is eliminating every monster in each room.",bc_all;
+ end;
+
+OnTimer4000:
+ mapannounce "force_1-2","There is no order to enter one among 3 rooms at 3 direction. But remember you will eliminate all monsters in a room in order to procceed to the next step.",bc_all;
+ end;
+
+OnTimer5000:
+ mapannounce "force_1-2","You have 10 minutes from now. I expect you will do your best! ",bc_all;
+ end;
+
+OnTimer60000:
+ if(!getmapusers("force_1-2")) donpcevent "Slipslowrun#party::OnFail";
+ mapannounce "force_1-2","Remaining Time : 9 minutes ",bc_all;
+ end;
+
+OnTimer120000:
+ if(!getmapusers("force_1-2")) donpcevent "Slipslowrun#party::OnFail";
+ mapannounce "force_1-2","Remaining Time : 8 minutes ",bc_all;
+ end;
+
+OnTimer180000:
+ if(!getmapusers("force_1-2")) donpcevent "Slipslowrun#party::OnFail";
+ mapannounce "force_1-2","Remaining Time : 7 minutes ",bc_all;
+ end;
+
+OnTimer240000:
+ if(!getmapusers("force_1-2")) donpcevent "Slipslowrun#party::OnFail";
+ mapannounce "force_1-2","Remaining Time : 6 minutes ",bc_all;
+ end;
+
+OnTimer300000:
+ if(!getmapusers("force_1-2")) donpcevent "Slipslowrun#party::OnFail";
+ mapannounce "force_1-2","Remaining Time : 5 minutes ",bc_all;
+ end;
+
+OnTimer360000:
+ if(!getmapusers("force_1-2")) donpcevent "Slipslowrun#party::OnFail";
+ mapannounce "force_1-2","Remaining Time : 4 minutes ",bc_all;
+ end;
+
+OnTimer420000:
+ if(!getmapusers("force_1-2")) donpcevent "Slipslowrun#party::OnFail";
+ mapannounce "force_1-2","Remaining Time : 3 minutes ",bc_all;
+ end;
+
+OnTimer480000:
+ if(!getmapusers("force_1-2")) donpcevent "Slipslowrun#party::OnFail";
+ mapannounce "force_1-2","Remaining Time : 2 minutes ",bc_all;
+ end;
+
+OnTimer540000:
+ if(!getmapusers("force_1-2")) donpcevent "Slipslowrun#party::OnFail";
+ mapannounce "force_1-2","Remaining Time : 1 minute ",bc_all;
+ end;
+
+OnTimer600000:
+ mapannounce "force_1-2","Time is over! Please make sure you do not leave anything behind you before you leave .",bc_all;
+ end;
+
+OnTimer605000:
+ donpcevent "arena_p::OnReset";
+ mapwarp "force_1-2","prt_are_in",177,138;
+ end;
+
+OnTimer606000:
+OnTimer607000:
+OnTimer608000:
+OnTimer609000:
+OnTimer610000:
+OnTimer611000:
+OnTimer612000:
+OnTimer613000:
+ mapwarp "force_1-2","prt_are_in",177,138;
+ end;
+
+OnTimer614000:
+ mapwarp "force_1-2","prt_are_in",177,138;
+ donpcevent "Slipslowrun#party::OnFail";
+ end;
+
+OnFail:
+ donpcevent "Slipslowrun#party::OnTimeoff";
+ mapwarp "force_1-2","prt_are_in",177,138;
+ donpcevent "arena_p::OnReset";
+ donpcevent "alloff#party::OnInit";
+ donpcevent "Ponox::Onstart";
+ end;
+
+OnTimeoff:
+ stopnpctimer;
+ end;
+
+On01_end:
+ mapannounce "force_1-2","A door to the east room has opened!",bc_all;
+ end;
+
+On02_end:
+ mapannounce "force_1-2","A door to the west room has opened!",bc_all;
+ end;
+
+On03_end:
+ mapannounce "force_1-2","A door to the south room has opened!",bc_all;
+ end;
+
+On04_start:
+ mapannounce "force_1-2","A door to the 4th room at the east has opened!",bc_all;
+ end;
+
+On04_end1:
+ mapannounce "force_1-2","A warp portal at the west has opened! Please clear the 5th room at the end of the west hall! ",bc_all;
+ end;
+
+On04_end2:
+ mapannounce "force_1-2","A warp portal at the west north room has opened! ",bc_all;
+ end;
+
+On05_end1:
+ mapannounce "force_1-2","A door to the east room has opened~",bc_all;
+ end;
+
+On05_end2:
+ mapannounce "force_1-2","A door to the north room has opened~",bc_all;
+ end;
+
+On06_end:
+ mapannounce "force_1-2","A door to the east room has opened~",bc_all;
+ end;
+
+On07_end:
+ mapannounce "force_1-2","A door at the north has opened~",bc_all;
+ end;
+
+On08_end:
+ mapannounce "force_1-2","A door to the west hall has opened~",bc_all;
+ end;
+
+On09_end:
+ mapannounce "force_1-2","A west exit has opened!",bc_all;
+ end;
+
+On10_end:
+ mapannounce "force_1-2","Boss stage cleared! An exit at the east has opened! Thank you.",bc_all;
+ end;
+}
+
+- script arena_p -1,{
+
+OnStart:
+ mapwarp "force_1-2","prt_are_in",177,138;
+ disablenpc "force_01_00";
+ disablenpc "force_02_00";
+ disablenpc "force_03_00";
+ disablenpc "force_03_05";
+ disablenpc "force_03_04";
+ disablenpc "force_04_03";
+ disablenpc "force_05_03";
+ disablenpc "force_05_06";
+ disablenpc "force_06_07";
+ disablenpc "force_07_08";
+ disablenpc "force_08_09";
+ disablenpc "force_09_10";
+ disablenpc "force_10_09";
+ disablenpc "force_09_exit";
+ enablenpc "force_01start#party";
+ enablenpc "force_02start#party";
+ enablenpc "force_03start#party";
+ disablenpc "force_04start#party";
+ disablenpc "force_05start#party";
+ disablenpc "force_06start#party";
+ disablenpc "force_07start#party";
+ disablenpc "force_08start#party";
+ disablenpc "force_09start#party";
+ disablenpc "force_10start#party";
+ disablenpc "force_exit#party";
+ donpcevent "force_01mob#party::OnReset";
+ donpcevent "force_02mob#party::OnReset";
+ donpcevent "force_03mob#party::OnReset";
+ donpcevent "force_04mob#party::OnReset";
+ donpcevent "force_05mob#party::OnReset";
+ donpcevent "force_06mob#party::OnReset";
+ donpcevent "force_07mob#party::OnReset";
+ donpcevent "force_08mob#party::OnReset";
+ donpcevent "force_09mob#party::OnReset";
+ donpcevent "force_10mob-1#party::OnReset";
+ donpcevent "force_10mob-2#party::OnReset";
+ donpcevent "force_exitmob#party::OnReset";
+ donpcevent "Slipslowrun#party::OnStart";
+ set $arn_partyc,0;
+ set $arn_partywait,0;
+ end;
+
+On04_start:
+ enablenpc "force_03_04";
+ enablenpc "force_04start#party";
+ end;
+
+On06_start:
+ enablenpc "force_05_06";
+ enablenpc "force_06start#party";
+ end;
+
+On07_start:
+ enablenpc "force_06_07";
+ enablenpc "force_07start#party";
+ end;
+
+On08_start:
+ enablenpc "force_07_08";
+ enablenpc "force_08start#party";
+ end;
+
+On09_start:
+ enablenpc "force_08_09";
+ enablenpc "force_09start#party";
+ end;
+
+On10_start:
+ enablenpc "force_09_10";
+ enablenpc "force_10start#party";
+ end;
+
+Onexit:
+ enablenpc "force_10_09";
+ enablenpc "force_09_exit";
+ enablenpc "force_exit#party";
+ end;
+
+OnReset:
+ donpcevent "force_01mob#party::OnReset";
+ donpcevent "force_02mob#party::OnReset";
+ donpcevent "force_03mob#party::OnReset";
+ donpcevent "force_04mob#party::OnReset";
+ donpcevent "force_05mob#party::OnReset";
+ donpcevent "force_06mob#party::OnReset";
+ donpcevent "force_07mob#party::OnReset";
+ donpcevent "force_08mob#party::OnReset";
+ donpcevent "force_09mob#party::OnReset";
+ donpcevent "force_10mob-1#party::OnReset";
+ donpcevent "force_10mob-2#party::OnReset";
+ donpcevent "force_exitmob#party::OnReset";
+ end;
+}
+
+force_1-2,85,26,1 script force_00_01 45,1,1,{
+
+OnTouch:
+ warp "force_1-2",37,26;
+ end;
+}
+
+force_1-2,114,26,1 script force_00_02 45,1,1,{
+
+OnTouch:
+ warp "force_1-2",162,26;
+ end;
+}
+
+force_1-2,99,40,1 script force_00_03 45,1,1,{
+
+OnTouch:
+ warp "force_1-2",99,66;
+ end;
+}
+
+force_1-2,41,26,1 script force_01_00 45,1,1,{
+
+OnTouch:
+ warp "force_1-2",89,26;
+ end;
+}
+
+force_1-2,158,26,1 script force_02_00 45,1,1,{
+
+OnTouch:
+ warp "force_1-2",110,26;
+ end;
+}
+
+force_1-2,99,63,1 script force_03_00 45,1,1,{
+
+OnTouch:
+ warp "force_1-2",99,36;
+ end;
+}
+
+force_1-2,84,78,1 script force_03_05 45,1,1,{
+
+OnTouch:
+ warp "force_1-2",37,78;
+ end;
+}
+
+force_1-2,115,78,1 script force_03_04 45,1,1,{
+
+OnTouch:
+ warp "force_1-2",162,78;
+ end;
+}
+force_1-2,158,77,1 script force_04_03 45,1,1,{
+
+OnTouch:
+ warp "force_1-2",110,78;
+ end;
+}
+
+force_1-2,41,77,1 script force_05_03 45,1,1,{
+
+OnTouch:
+ warp "force_1-2",37,78;
+ end;
+}
+
+force_1-2,25,93,1 script force_05_06 45,1,1,{
+
+OnTouch:
+ warp "force_1-2",26,118;
+ end;
+}
+
+force_1-2,49,130,1 script force_06_07 45,1,1,{
+
+OnTouch:
+ warp "force_1-2",91,125;
+ end;
+}
+
+force_1-2,107,145,1 script force_07_08 45,1,1,{
+
+OnTouch:
+ warp "force_1-2",173,118;
+ end;
+}
+
+force_1-2,158,178,1 script force_08_09 45,1,1,{
+
+OnTouch:
+ warp "force_1-2",133,178;
+ end;
+}
+
+force_1-2,55,178,1 script force_09_10 45,1,1,{
+
+OnTouch:
+ warp "force_1-2",29,178;
+ end;
+}
+
+force_1-2,33,178,1 script force_10_09 45,1,1,{
+
+OnTouch:
+ warp "force_1-2",59,178;
+ end;
+}
+
+force_1-2,95,187,1 script force_09_exit 45,1,1,{
+
+OnTouch:
+ set $arena_minptend,gettime(2);
+ set $arena_secptend,gettime(1);
+ warp "prt_are_in",73,139;
+ donpcevent "#arn_timer_pt::OnEnter";
+ donpcevent "arena_p::OnReset";
+ donpcevent "Slipslowrun#party::OnTimeoff";
+ end;
+}
+
+force_1-2,36,26,0 script force_01start#party -1,1,1,{
+
+OnTouch:
+ donpcevent "force_01mob#party::Onon";
+ disablenpc "force_01start#party";
+ end;
+}
+
+- script force_01mob#party -1,{
+
+Onon:
+ monster "force_1-2",15,35,"Penomena",1441,1,"force_01mob#party::OnMobDeath";
+ monster "force_1-2",35,35,"Penomena",1441,1,"force_01mob#party::OnMobDeath";
+ monster "force_1-2",15,15,"Penomena",1441,1,"force_01mob#party::OnMobDeath";
+ monster "force_1-2",35,15,"Penomena",1441,1,"force_01mob#party::OnMobDeath";
+ monster "force_1-2",15,25,"Clock",1528,1,"force_01mob#party::OnMobDeath";
+ monster "force_1-2",17,25,"Clock",1528,1,"force_01mob#party::OnMobDeath";
+ monster "force_1-2",19,25,"Clock",1528,1,"force_01mob#party::OnMobDeath";
+ monster "force_1-2",21,25,"Clock",1528,1,"force_01mob#party::OnMobDeath";
+ monster "force_1-2",15,25,"Clock",1528,1,"force_01mob#party::OnMobDeath";
+ monster "force_1-2",17,25,"Clock",1528,1,"force_01mob#party::OnMobDeath";
+ monster "force_1-2",19,25,"Clock",1528,1,"force_01mob#party::OnMobDeath";
+ monster "force_1-2",21,25,"Clock",1528,1,"force_01mob#party::OnMobDeath";
+ monster "force_1-2",15,30,"Alarm",1476,1,"force_01mob#party::OnMobDeath";
+ monster "force_1-2",17,22,"Alarm",1476,1,"force_01mob#party::OnMobDeath";
+ monster "force_1-2",19,32,"Alarm",1476,1,"force_01mob#party::OnMobDeath";
+ monster "force_1-2",21,22,"Alarm",1476,1,"force_01mob#party::OnMobDeath";
+ monster "force_1-2",26,33,"Clock Tower Keeper",1527,1,"force_01mob#party::OnMobDeath";
+ monster "force_1-2",26,33,"Clock Tower Keeper",1527,1,"force_01mob#party::OnMobDeath";
+ monster "force_1-2",26,14,"Ancient Worm",1567,1,"force_01mob#party::OnMobDeath";
+ monster "force_1-2",30,27,"Ancient Worm",1567,1,"force_01mob#party::OnMobDeath";
+ monster "force_1-2",29,25,"Ancient Worm",1567,1,"force_01mob#party::OnMobDeath";
+ monster "force_1-2",26,14,"Ancient Worm",1567,1,"force_01mob#party::OnMobDeath";
+ monster "force_1-2",33,26,"Incubus",1580,1,"force_01mob#party::OnMobDeath";
+ monster "force_1-2",29,28,"Incubus",1580,1,"force_01mob#party::OnMobDeath";
+ monster "force_1-2",33,20,"Incubus",1580,1,"force_01mob#party::OnMobDeath";
+ monster "force_1-2",33,30,"Incubus",1580,1,"force_01mob#party::OnMobDeath";
+ set $force_01_pt,26;
+ end;
+
+OnReset:
+ killmonster "force_1-2","force_01mob#party::OnMobDeath";
+ end;
+
+OnMobDeath:
+ set $force_01_pt,$force_01_pt -1;
+ if($force_01_pt < 1)
+ {
+ enablenpc "force_01_00";
+ donpcevent "Slipslowrun#party::On01_end";
+ set $arn_partyc,$arn_partyc +1;
+ if($arn_partyc == 3)
+ {
+ donpcevent "Slipslowrun#party::On04_start";
+ enablenpc "force_03_04";
+ enablenpc "force_04start#party";
+ }
+ }
+ end;
+}
+
+force_1-2,162,26,0 script force_02start#party -1,1,1,{
+
+OnTouch:
+ donpcevent "force_02mob#party::Onon";
+ disablenpc "force_02start#party";
+ end;
+}
+
+- script force_02mob#party -1,{
+
+Onon:
+ monster "force_1-2",163,36,"Penomena",1441,1,"force_02mob#party::OnMobDeath";
+ monster "force_1-2",184,36,"Penomena",1441,1,"force_02mob#party::OnMobDeath";
+ monster "force_1-2",184,16,"Penomena",1441,1,"force_02mob#party::OnMobDeath";
+ monster "force_1-2",163,16,"Penomena",1441,1,"force_02mob#party::OnMobDeath";
+ monster "force_1-2",171,37,"Joker",1437,1,"force_02mob#party::OnMobDeath";
+ monster "force_1-2",177,37,"Joker",1437,1,"force_02mob#party::OnMobDeath";
+ monster "force_1-2",184,29,"Joker",1437,1,"force_02mob#party::OnMobDeath";
+ monster "force_1-2",184,22,"Joker",1437,1,"force_02mob#party::OnMobDeath";
+ monster "force_1-2",177,16,"Joker",1437,1,"force_02mob#party::OnMobDeath";
+ monster "force_1-2",170,16,"Joker",1437,1,"force_02mob#party::OnMobDeath";
+ monster "force_1-2",169,28,"Bathory",1525,1,"force_02mob#party::OnMobDeath";
+ monster "force_1-2",171,28,"Bathory",1525,1,"force_02mob#party::OnMobDeath";
+ monster "force_1-2",173,28,"Bathory",1525,1,"force_02mob#party::OnMobDeath";
+ monster "force_1-2",175,28,"Bathory",1525,1,"force_02mob#party::OnMobDeath";
+ monster "force_1-2",177,28,"Bathory",1525,1,"force_02mob#party::OnMobDeath";
+ monster "force_1-2",177,23,"Bathory",1525,1,"force_02mob#party::OnMobDeath";
+ monster "force_1-2",175,23,"Bathory",1525,1,"force_02mob#party::OnMobDeath";
+ monster "force_1-2",173,23,"Bathory",1525,1,"force_02mob#party::OnMobDeath";
+ monster "force_1-2",171,23,"Bathory",1525,1,"force_02mob#party::OnMobDeath";
+ monster "force_1-2",169,23,"Bathory",1525,1,"force_02mob#party::OnMobDeath";
+ monster "force_1-2",187,30,"Arclouse",1477,1,"force_02mob#party::OnMobDeath";
+ monster "force_1-2",187,30,"Arclouse",1477,1,"force_02mob#party::OnMobDeath";
+ monster "force_1-2",187,30,"Arclouse",1477,1,"force_02mob#party::OnMobDeath";
+ monster "force_1-2",187,22,"Arclouse",1477,1,"force_02mob#party::OnMobDeath";
+ monster "force_1-2",187,22,"Arclouse",1477,1,"force_02mob#party::OnMobDeath";
+ monster "force_1-2",187,22,"Arclouse",1477,1,"force_02mob#party::OnMobDeath";
+ monster "force_1-2",173,40,"Arclouse",1477,1,"force_02mob#party::OnMobDeath";
+ monster "force_1-2",173,40,"Arclouse",1477,1,"force_02mob#party::OnMobDeath";
+ monster "force_1-2",181,25,"Arclouse",1477,1,"force_02mob#party::OnMobDeath";
+ monster "force_1-2",181,25,"Arclouse",1477,1,"force_02mob#party::OnMobDeath";
+ set $force_02_pt,30;
+ end;
+
+OnReset:
+ killmonster "force_1-2","force_02mob#party::OnMobDeath";
+ end;
+
+OnMobDeath:
+ set $force_02_pt,$force_02_pt -1;
+ if($force_02_pt < 1)
+ {
+ enablenpc "force_02_00";
+ donpcevent "Slipslowrun#party::On02_end";
+ set $arn_partyc,$arn_partyc +1;
+ if($arn_partyc == 3)
+ {
+ donpcevent "Slipslowrun#party::On04_start";
+ enablenpc "force_03_04";
+ enablenpc "force_04start#party";
+ }
+ }
+ end;
+}
+
+force_1-2,99,66,0 script force_03start#party -1,1,1,{
+
+OnTouch:
+ donpcevent "force_03mob#party::Onon";
+ disablenpc "force_03start#party";
+ end;
+}
+
+- script force_03mob#party -1,{
+
+Onon:
+ monster "force_1-2",89,81,"Merman",1451,1,"force_03mob#party::OnMobDeath";
+ monster "force_1-2",90,81,"Merman",1451,1,"force_03mob#party::OnMobDeath";
+ monster "force_1-2",91,81,"Merman",1451,1,"force_03mob#party::OnMobDeath";
+ monster "force_1-2",92,81,"Merman",1451,1,"force_03mob#party::OnMobDeath";
+ monster "force_1-2",93,81,"Merman",1451,1,"force_03mob#party::OnMobDeath";
+ monster "force_1-2",96,85,"Wind Ghost",1450,1,"force_03mob#party::OnMobDeath";
+ monster "force_1-2",98,85,"Wind Ghost",1450,1,"force_03mob#party::OnMobDeath";
+ monster "force_1-2",100,85,"Wind Ghost",1450,1,"force_03mob#party::OnMobDeath";
+ monster "force_1-2",102,85,"Wind Ghost",1450,1,"force_03mob#party::OnMobDeath";
+ monster "force_1-2",104,85,"Wind Ghost",1450,1,"force_03mob#party::OnMobDeath";
+ monster "force_1-2",88,79,"Deviruchi",1433,1,"force_03mob#party::OnMobDeath";
+ monster "force_1-2",90,79,"Deviruchi",1433,1,"force_03mob#party::OnMobDeath";
+ monster "force_1-2",92,79,"Deviruchi",1433,1,"force_03mob#party::OnMobDeath";
+ monster "force_1-2",94,79,"Deviruchi",1433,1,"force_03mob#party::OnMobDeath";
+ monster "force_1-2",96,79,"Deviruchi",1433,1,"force_03mob#party::OnMobDeath";
+ monster "force_1-2",98,79,"Deviruchi",1433,1,"force_03mob#party::OnMobDeath";
+ monster "force_1-2",100,79,"Deviruchi",1433,1,"force_03mob#party::OnMobDeath";
+ monster "force_1-2",102,79,"Deviruchi",1433,1,"force_03mob#party::OnMobDeath";
+ monster "force_1-2",104,79,"Deviruchi",1433,1,"force_03mob#party::OnMobDeath";
+ monster "force_1-2",106,79,"Deviruchi",1433,1,"force_03mob#party::OnMobDeath";
+ monster "force_1-2",108,79,"Deviruchi",1433,1,"force_03mob#party::OnMobDeath";
+ monster "force_1-2",110,79,"Deviruchi",1433,1,"force_03mob#party::OnMobDeath";
+ monster "force_1-2",91,86,"Wanderer",1490,1,"force_03mob#party::OnMobDeath";
+ monster "force_1-2",108,86,"Wanderer",1490,1,"force_03mob#party::OnMobDeath";
+ monster "force_1-2",91,69,"Wanderer",1490,1,"force_03mob#party::OnMobDeath";
+ monster "force_1-2",108,69,"Wanderer",1490,1,"force_03mob#party::OnMobDeath";
+ set $force_03_pt,26;
+ end;
+
+OnReset:
+ killmonster "force_1-2","force_03mob#party::OnMobDeath";
+ end;
+
+OnMobDeath:
+ set $force_03_pt,$force_03_pt -1;
+ if($force_03_pt < 1)
+ {
+ enablenpc "force_03_00";
+ donpcevent "Slipslowrun#party::On03_end";
+ set $arn_partyc,$arn_partyc +1;
+ if($arn_partyc == 3)
+ {
+ donpcevent "Slipslowrun#party::On04_start";
+ enablenpc "force_03_04";
+ enablenpc "force_04start#party";
+ }
+ }
+ end;
+}
+
+force_1-2,162,78,0 script force_04start#party -1,3,3,{
+
+OnTouch:
+ donpcevent "force_04mob#party::Onon";
+ disablenpc "force_04start#party";
+ end;
+}
+
+- script force_04mob#party -1,{
+
+Onon:
+ monster "force_1-2",174,78,"Penomena",1441,1,"force_04mob#party::OnMobDeath";
+ monster "force_1-2",184,78,"Penomena",1441,1,"force_04mob#party::OnMobDeath";
+ monster "force_1-2",184,68,"Penomena",1441,1,"force_04mob#party::OnMobDeath";
+ monster "force_1-2",174,68,"Penomena",1441,1,"force_04mob#party::OnMobDeath";
+ monster "force_1-2",169,87,"Ride Word",1478,1,"force_04mob#party::OnMobDeath";
+ monster "force_1-2",170,87,"Ride Word",1478,1,"force_04mob#party::OnMobDeath";
+ monster "force_1-2",171,87,"Ride Word",1478,1,"force_04mob#party::OnMobDeath";
+ monster "force_1-2",172,87,"Ride Word",1478,1,"force_04mob#party::OnMobDeath";
+ monster "force_1-2",169,77,"Ride Word",1478,1,"force_04mob#party::OnMobDeath";
+ monster "force_1-2",170,77,"Ride Word",1478,1,"force_04mob#party::OnMobDeath";
+ monster "force_1-2",171,77,"Ride Word",1478,1,"force_04mob#party::OnMobDeath";
+ monster "force_1-2",172,77,"Ride Word",1478,1,"force_04mob#party::OnMobDeath";
+ monster "force_1-2",183,83,"Wraith Dead",1566,1,"force_04mob#party::OnMobDeath";
+ monster "force_1-2",183,80,"Wraith Dead",1566,1,"force_04mob#party::OnMobDeath";
+ monster "force_1-2",183,73,"Wraith Dead",1566,1,"force_04mob#party::OnMobDeath";
+ monster "force_1-2",183,70,"Wraith Dead",1566,1,"force_04mob#party::OnMobDeath";
+ monster "force_1-2",179,77,"Wraith Dead",1566,1,"force_04mob#party::OnMobDeath";
+ monster "force_1-2",169,72,"Assaulter",1364,1,"force_04mob#party::OnMobDeath";
+ monster "force_1-2",171,72,"Assaulter",1364,1,"force_04mob#party::OnMobDeath";
+ monster "force_1-2",173,72,"Assaulter",1364,1,"force_04mob#party::OnMobDeath";
+ monster "force_1-2",175,72,"Assaulter",1364,1,"force_04mob#party::OnMobDeath";
+ monster "force_1-2",177,72,"Assaulter",1364,1,"force_04mob#party::OnMobDeath";
+ set $force_04_pt,22;
+ end;
+
+OnReset:
+ killmonster "force_1-2","force_04mob#party::OnMobDeath";
+ end;
+
+OnMobDeath:
+ set $force_04_pt,$force_04_pt -1;
+ if($force_04_pt < 1)
+ {
+ enablenpc "force_04_03";
+ enablenpc "force_03_05";
+ enablenpc "force_05start#party";
+ donpcevent "Slipslowrun#party::On04_end1";
+ }
+ end;
+}
+
+force_1-2,36,77,0 script force_05start#party -1,1,1,{
+
+OnTouch:
+ donpcevent "force_05mob#party::Onon";
+ disablenpc "force_05start#party";
+ end;
+}
+
+- script force_05mob#party -1,{
+
+Onon:
+ monster "force_1-2",25,68,"Penomena",1441,1,"force_05mob#party::OnMobDeath";
+ monster "force_1-2",36,68,"Penomena",1441,1,"force_05mob#party::OnMobDeath";
+ monster "force_1-2",16,88,"Penomena",1441,1,"force_05mob#party::OnMobDeath";
+ monster "force_1-2",15,78,"Penomena",1441,1,"force_05mob#party::OnMobDeath";
+ monster "force_1-2",33,88,"Sting",1489,1,"force_05mob#party::OnMobDeath";
+ monster "force_1-2",29,87,"Sting",1489,1,"force_05mob#party::OnMobDeath";
+ monster "force_1-2",25,81,"Sting",1489,1,"force_05mob#party::OnMobDeath";
+ monster "force_1-2",25,78,"Sting",1489,1,"force_05mob#party::OnMobDeath";
+ monster "force_1-2",25,72,"Sting",1489,1,"force_05mob#party::OnMobDeath";
+ monster "force_1-2",29,70,"Sting",1489,1,"force_05mob#party::OnMobDeath";
+ monster "force_1-2",21,70,"Sting",1489,1,"force_05mob#party::OnMobDeath";
+ monster "force_1-2",19,76,"Sting",1489,1,"force_05mob#party::OnMobDeath";
+ monster "force_1-2",19,83,"Sting",1489,1,"force_05mob#party::OnMobDeath";
+ monster "force_1-2",23,89,"Sting",1489,1,"force_05mob#party::OnMobDeath";
+ monster "force_1-2",22,85,"Cramp",1570,1,"force_05mob#party::OnMobDeath";
+ monster "force_1-2",23,85,"Cramp",1570,1,"force_05mob#party::OnMobDeath";
+ monster "force_1-2",24,85,"Cramp",1570,1,"force_05mob#party::OnMobDeath";
+ monster "force_1-2",23,86,"Cramp",1570,1,"force_05mob#party::OnMobDeath";
+ monster "force_1-2",22,86,"Cramp",1570,1,"force_05mob#party::OnMobDeath";
+ monster "force_1-2",22,71,"Cramp",1570,1,"force_05mob#party::OnMobDeath";
+ monster "force_1-2",22,72,"Cramp",1570,1,"force_05mob#party::OnMobDeath";
+ monster "force_1-2",23,71,"Cramp",1570,1,"force_05mob#party::OnMobDeath";
+ monster "force_1-2",23,72,"Cramp",1570,1,"force_05mob#party::OnMobDeath";
+ monster "force_1-2",24,71,"Cramp",1570,1,"force_05mob#party::OnMobDeath";
+ set $force_05_pt,24;
+ end;
+
+OnReset:
+ killmonster "force_1-2","force_05mob#party::OnMobDeath";
+ end;
+
+OnMobDeath:
+ set $force_05_pt,$force_05_pt -1;
+ if($force_05_pt < 1)
+ {
+ donpcevent "arena_p::On06_start";
+ donpcevent "Slipslowrun#party::On05_end2";
+ }
+ end;
+}
+
+force_1-2,26,118,0 script force_06start#party -1,1,1,{
+
+OnTouch:
+ donpcevent "force_06mob#party::Onon";
+ disablenpc "force_06start#party";
+ end;
+}
+
+- script force_06mob#party -1,{
+
+Onon:
+ monster "force_1-2",19,135,"Cloud Hermit",1531,1,"force_06mob#party::OnMobDeath";
+ monster "force_1-2",24,135,"Cloud Hermit",1531,1,"force_06mob#party::OnMobDeath";
+ monster "force_1-2",28,135,"Cloud Hermit",1531,1,"force_06mob#party::OnMobDeath";
+ monster "force_1-2",32,135,"Cloud Hermit",1531,1,"force_06mob#party::OnMobDeath";
+ monster "force_1-2",24,127,"Shinobi",1560,1,"force_06mob#party::OnMobDeath";
+ monster "force_1-2",27,127,"Shinobi",1560,1,"force_06mob#party::OnMobDeath";
+ monster "force_1-2",24,128,"Shinobi",1560,1,"force_06mob#party::OnMobDeath";
+ monster "force_1-2",27,128,"Shinobi",1560,1,"force_06mob#party::OnMobDeath";
+ monster "force_1-2",24,129,"Shinobi",1560,1,"force_06mob#party::OnMobDeath";
+ monster "force_1-2",27,129,"Shinobi",1560,1,"force_06mob#party::OnMobDeath";
+ monster "force_1-2",16,140,"Tengu",1563,1,"force_06mob#party::OnMobDeath";
+ monster "force_1-2",16,136,"Tengu",1563,1,"force_06mob#party::OnMobDeath";
+ monster "force_1-2",16,132,"Tengu",1563,1,"force_06mob#party::OnMobDeath";
+ monster "force_1-2",16,128,"Tengu",1563,1,"force_06mob#party::OnMobDeath";
+ monster "force_1-2",16,124,"Tengu",1563,1,"force_06mob#party::OnMobDeath";
+ monster "force_1-2",16,120,"Tengu",1563,1,"force_06mob#party::OnMobDeath";
+ monster "force_1-2",16,140,"Wicked Nymph",1564,1,"force_06mob#party::OnMobDeath";
+ monster "force_1-2",16,136,"Wicked Nymph",1564,1,"force_06mob#party::OnMobDeath";
+ monster "force_1-2",16,132,"Wicked Nymph",1564,1,"force_06mob#party::OnMobDeath";
+ monster "force_1-2",16,128,"Wicked Nymph",1564,1,"force_06mob#party::OnMobDeath";
+ monster "force_1-2",16,124,"Wicked Nymph",1564,1,"force_06mob#party::OnMobDeath";
+ monster "force_1-2",16,120,"Wicked Nymph",1564,1,"force_06mob#party::OnMobDeath";
+ set $force_06_pt,22;
+ end;
+
+OnReset:
+ killmonster "force_1-2","force_06mob#party::OnMobDeath";
+ end;
+
+OnMobDeath:
+ set $force_06_pt,$force_06_pt -1;
+ if($force_06_pt < 1)
+ {
+ donpcevent "arena_p::On07_start";
+ donpcevent "Slipslowrun#party::On06_end";
+ set $arn_partyc,$arn_partyc +1;
+ }
+ end;
+}
+
+force_1-2,92,124,0 script force_07start#party -1,1,1,{
+
+OnTouch:
+ donpcevent "force_07mob#party::Onon";
+ disablenpc "force_07start#party";
+ end;
+}
+
+- script force_07mob#party -1,{
+
+Onon:
+ monster "force_1-2",104,134,"Greatest General",1541,1,"force_07mob#party::OnMobDeath";
+ monster "force_1-2",104,136,"Greatest General",1541,1,"force_07mob#party::OnMobDeath";
+ monster "force_1-2",104,137,"Greatest General",1541,1,"force_07mob#party::OnMobDeath";
+ monster "force_1-2",104,139,"Greatest General",1541,1,"force_07mob#party::OnMobDeath";
+ monster "force_1-2",111,134,"Greatest General",1541,1,"force_07mob#party::OnMobDeath";
+ monster "force_1-2",111,136,"Greatest General",1541,1,"force_07mob#party::OnMobDeath";
+ monster "force_1-2",111,137,"Greatest General",1541,1,"force_07mob#party::OnMobDeath";
+ monster "force_1-2",111,139,"Greatest General",1541,1,"force_07mob#party::OnMobDeath";
+ monster "force_1-2",98,122,"Khalitzburg",1438,1,"force_07mob#party::OnMobDeath";
+ monster "force_1-2",90,119,"Khalitzburg",1438,1,"force_07mob#party::OnMobDeath";
+ monster "force_1-2",98,122,"Executioner",1487,1,"force_07mob#party::OnMobDeath";
+ monster "force_1-2",108,140,"Chimera",1456,1,"force_07mob#party::OnMobDeath";
+ set $force_07_pt,12;
+ end;
+
+OnReset:
+ killmonster "force_1-2","force_07mob#party::OnMobDeath";
+ end;
+
+OnMobDeath:
+ set $force_07_pt,$force_07_pt -1;
+ if($force_07_pt < 1)
+ {
+ donpcevent "arena_p::On08_start";
+ donpcevent "Slipslowrun#party::On07_end";
+ set $arn_partyc,$arn_partyc +1;
+ }
+ end;
+}
+
+force_1-2,173,118,0 script force_08start#party -1,1,1,{
+
+OnTouch:
+ donpcevent "force_08mob#party::Onon";
+ disablenpc "force_08start#party";
+ end;
+}
+
+- script force_08mob#party -1,{
+
+Onon:
+ monster "force_1-2",172,154,"Khalitzburg",1438,1,"force_08mob#party::OnMobDeath";
+ monster "force_1-2",174,145,"Ghostring",1576,1,"force_08mob#party::OnMobDeath";
+ monster "force_1-2",174,145,"Chimera",1456,1,"force_08mob#party::OnMobDeath";
+ set $force_08_pt,4;
+ if(.arn_injustice != 5)
+ {
+ monster "force_1-2",rand(162,184),rand(122,185),"Injustice",1446,1,"force_08mob#party::OnMobDeath";
+ set .arn_injustice,.arn_injustice +1;
+ set $force_08_pt,$force_08_pt +1;
+ }
+ monster "force_1-2",rand(162,184),rand(122,185),"Raydric Archer",1453,1,"force_08mob#party::OnMobDeath";
+ if(.arn_terror != 5)
+ {
+ monster "force_1-2",rand(162,184),rand(122,185),"Nightmare Terror",1554,1,"force_08mob#party::OnMobDeath";
+ set .arn_terror,.arn_terror +1;
+ set $force_08_pt,$force_08_pt +1;
+ }
+ if(.arn_mummy != 6)
+ {
+ monster "force_1-2",rand(162,184),rand(122,185),"Ancient Mummy",1522,1,"force_08mob#party::OnMobDeath";
+ set .arn_mummy,.arn_mummy +1;
+ set $force_08_pt,$force_08_pt +1;
+ }
+ if(.arn_skel != 10)
+ {
+ monster "force_1-2",rand(162,184),rand(122,185),"Skel Prisoner",1479,1,"force_08mob#party::OnMobDeath";
+ set .arn_skel,.arn_skel +1;
+ set $force_08_pt,$force_08_pt +1;
+ }
+ if(.arn_hunt != 5)
+ {
+ monster "force_1-2",rand(162,184),rand(122,185),"Hunter Fly",1422,1,"force_08mob#party::OnMobDeath";
+ set .arn_hunt,.arn_hunt +1;
+ set $force_08_pt,$force_08_pt +1;
+ }
+ end;
+
+OnReset:
+ killmonster "force_1-2","force_08mob#party::OnMobDeath";
+ end;
+
+OnMobDeath:
+ set $force_08_pt,$force_08_pt -1;
+ if($force_08_pt < 1)
+ {
+ donpcevent "arena_p::On09_start";
+ donpcevent "Slipslowrun#party::On08_end";
+ set $arn_partyc,$arn_partyc +1;
+ }
+ end;
+}
+
+force_1-2,133,178,0 script force_09start#party -1,1,1,{
+
+OnTouch:
+ donpcevent "force_09mob#party::Onon";
+ disablenpc "force_09start#party";
+ end;
+}
+
+- script force_09mob#party -1,{
+
+Onon:
+ monster "force_1-2",86,180,"Elder",1573,1,"force_09mob#party::OnMobDeath";
+ monster "force_1-2",86,176,"Elder",1573,1,"force_09mob#party::OnMobDeath";
+ monster "force_1-2",95,183,"Elder",1573,1,"force_09mob#party::OnMobDeath";
+ monster "force_1-2",94,175,"Elder",1573,1,"force_09mob#party::OnMobDeath";
+ monster "force_1-2",76,178,"Elder",1573,1,"force_09mob#party::OnMobDeath";
+ monster "force_1-2",84,179,"Explosion",1532,1,"force_09mob#party::OnMobDeath";
+ monster "force_1-2",74,181,"Explosion",1532,1,"force_09mob#party::OnMobDeath";
+ monster "force_1-2",73,176,"Explosion",1532,1,"force_09mob#party::OnMobDeath";
+ monster "force_1-2",62,178,"Explosion",1532,1,"force_09mob#party::OnMobDeath";
+ monster "force_1-2",68,177,"Explosion",1532,1,"force_09mob#party::OnMobDeath";
+ monster "force_1-2",122,177,"Lava Golem",1549,1,"force_09mob#party::OnMobDeath";
+ monster "force_1-2",112,179,"Lava Golem",1549,1,"force_09mob#party::OnMobDeath";
+ monster "force_1-2",122,178,"Anolian",1488,1,"force_09mob#party::OnMobDeath";
+ monster "force_1-2",121,177,"Anolian",1488,1,"force_09mob#party::OnMobDeath";
+ monster "force_1-2",122,177,"Anolian",1488,1,"force_09mob#party::OnMobDeath";
+ set $force_09_pt,15;
+ end;
+
+OnReset:
+ killmonster "force_1-2","force_09mob#party::OnMobDeath";
+ end;
+
+OnMobDeath:
+ set $force_09_pt,$force_09_pt -1;
+ if($force_09_pt < 1)
+ {
+ donpcevent "arena_p::On10_start";
+ donpcevent "Slipslowrun#party::On09_end";
+ set $arn_partyc,$arn_partyc +1;
+ }
+ end;
+}
+
+force_1-2,29,178,0 script force_10start#party -1,1,1,{
+
+OnTouch:
+ donpcevent "force_10mob-1#party::Onon1";
+ disablenpc "force_10start#party";
+ end;
+}
+
+- script force_10mob-1#party -1,{
+
+Onon1:
+ switch(rand(1,2))
+ {
+ case 1:
+ monster "force_1-2",16,179,"Evil Snake Lord",1529,1,"force_10mob-1#party::OnMobDeath";
+ break;
+
+ case 2:
+ monster "force_1-2",24,179,"Dracula",1530,1,"force_10mob-1#party::OnMobDeath";
+ break;
+ }
+ set $force_10_1_pt,1;
+ end;
+
+OnReset:
+ killmonster "force_1-2","force_10mob-1#party::OnMobDeath";
+ end;
+
+OnMobDeath:
+ set $force_10_1_pt,$force_10_1_pt -1;
+ if($force_10_1_pt < 1) donpcevent "force_10mob-2#party::Onon2";
+ end;
+}
+
+- script force_10mob-2#party -1,{
+
+Onon2:
+ monster "force_1-2",16,179,"Samurai Spector",1542,1,"force_10mob-2#party::OnMobDeath";
+ monster "force_1-2",16,179,"Shinobi",1560,1,"force_10mob-2#party::OnMobDeath";
+ monster "force_1-2",16,179,"Shinobi",1560,1,"force_10mob-2#party::OnMobDeath";
+ monster "force_1-2",16,179,"Shinobi",1560,1,"force_10mob-2#party::OnMobDeath";
+ monster "force_1-2",16,179,"Shinobi",1560,1,"force_10mob-2#party::OnMobDeath";
+ monster "force_1-2",16,179,"Shinobi",1560,1,"force_10mob-2#party::OnMobDeath";
+ set $force_10_2_pt,6;
+ end;
+
+OnReset:
+ killmonster "force_1-2","force_10mob-2#party::OnMobDeath";
+ end;
+
+OnMobDeath:
+ set $force_10_2_pt,$force_10_2_pt -1;
+ if($force_10_2_pt < 1)
+ {
+ donpcevent "arena_p::Onexit";
+ donpcevent "Slipslowrun#party::On10_end";
+ set $arn_partyc,0;
+ }
+ end;
+}
+
+force_1-2,59,178,0 script force_exit#party -1,1,1,{
+
+OnTouch:
+ donpcevent "force_exitmob#party::Onon-1";
+ disablenpc "force_exit#party";
+ end;
+}
+
+- script force_exitmob#party -1,{
+
+Onon:
+ monster "force_1-2",95,177,"Farewell",1393,1,"force_exitmob#party::OnMobDeath";
+ monster "force_1-2",95,177,"I hate you",1543,1,"force_exitmob#party::OnMobDeath";
+ monster "force_1-2",95,177,"I like chocolate",1472,1,"force_exitmob#party::OnMobDeath";
+ monster "force_1-2",95,177,"You like it, huh?",1472,1,"force_exitmob-#party::OnMobDeath";
+ monster "force_1-2",95,177,"Sorry",1420,1,"force_exitmob#party::OnMobDeath";
+ monster "force_1-2",95,177,"Tristram II",1562,1,"force_exitmob#party::OnMobDeath";
+ monster "force_1-2",95,177,"I am hungry",1468,1,"force_exitmob#party::OnMobDeath";
+ monster "force_1-2",95,177,"Bye",1419,1,"force_exitmob#party::OnMobDeath";
+ monster "force_1-2",95,177,"Take care",1394,1,"force_exitmob#party::OnMobDeath";
+ monster "force_1-2",95,177,"Sexy Body",1578,1,"force_exitmob#party::OnMobDeath";
+ monster "force_1-2",95,177,"Pressure",1471,1,"force_exitmob#party::OnMobDeath";
+ monster "force_1-2",95,177,"Take it easy",1491,1,"force_exitmob#party::OnMobDeath";
+ monster "force_1-2",95,177,"Are you gonna hurt me?",1555,1,"force_exitmob#party::OnMobDeath";
+ monster "force_1-2",95,177,"Merchant",1428,1,"force_exitmob#party::OnMobDeath";
+ monster "force_1-2",95,177,"Ms. Kim",1472,1,"force_exitmob#party::OnMobDeath";
+ monster "force_1-2",95,177,"Martial Art",1472,1,"force_exitmob#party::OnMobDeath";
+ monster "force_1-2",95,177,"Part-timer",1420,1,"force_exitmob#party::OnMobDeath";
+ monster "force_1-2",95,177,"Boss",1562,1,"force_exitmob#party::OnMobDeath";
+ monster "force_1-2",95,177,"Old Yellow Box",1474,1,"force_exitmob#party::OnMobDeath";
+ monster "force_1-2",95,177,"Bat",1419,1,"force_exitmob#party::OnMobDeath";
+ monster "force_1-2",95,177,"Extra",1394,1,"force_exitmob#party::OnMobDeath";
+ monster "force_1-2",95,177,"Milk Merchant",1578,1,"force_exitmob#party::OnMobDeath";
+ monster "force_1-2",95,177,"Darling",1471,1,"force_exitmob#party::OnMobDeath";
+ monster "force_1-2",95,177,"Oh noes!",1491,1,"force_exitmob#party::OnMobDeath";
+ monster "force_1-2",95,177,"I am not a Wraith",1566,1,"force_exitmob#party::OnMobDeath";
+ monster "force_1-2",95,177,"Mom Wraith",1566,1,"force_exitmob#party::OnMobDeath";
+ monster "force_1-2",95,177,"Dad Wraith",1566,1,"force_exitmob#party::OnMobDeath";
+ monster "force_1-2",95,177,"Book[3]",1478,1,"force_exitmob#party::OnMobDeath";
+ monster "force_1-2",95,177,"Exchange Diary",1478,1,"force_exitmob#party::OnMobDeath";
+ end;
+
+OnReset:
+ killmonster "force_1-2","force_exitmob#party::OnMobDeath";
+ end;
+}
+
+prt_are_in,181,135,3 script Staff#party-1 67,{
+
+ mes "[Staff]";
+ mes "You did a good job.";
+ mes "Even if you have failed to clear a time attack battle, I will reward you with a small amount of arena points.";
+ next;
+ if (arena_point == 30000) {
+ mes "[Staff]";
+ mes "Uh huh!";
+ mes "You already have enough arena points.";
+ mes "Please spend some arena points later. When I see you next time, I will make sure to give you some reward.";
+ next;
+ }
+ else set arena_point, arena_point + 1;
+ mes "[Staff]";
+ mes "Let me guide you outside. I hope you had a good time.";
+ close2;
+ specialeffect2 EF_HIT5;
+ warp "arena_room",100,75;
+ end;
+}
+
+prt_are_in,77,135,3 script Staff#party-2 67,{
+
+ if($arena_minptend < $arena_minptst)
+ {
+ if($arena_secptend < $arena_secptst)
+ {
+ set @record_minpt,60 - $arena_minptst + $arena_minptend -1;
+ set @record_secpt,60 - $arena_secptst + $arena_secptend;
+ }
+ else
+ {
+ set @record_minpt,60 - $arena_minptst + $arena_minptend;
+ set @record_secpt,$arena_secptend - $arena_secptst;
+ }
+ }
+ else
+ {
+ if($arena_secptend < $arena_secptst)
+ {
+ set @record_minpt,$arena_minptend - $arena_minptst -1;
+ set @record_secpt,60 - $arena_secptst + $arena_secptend;
+ }
+ else
+ {
+ set @record_minpt,$arena_minptend - $arena_minptst;
+ set @record_secpt,$arena_secptend - $arena_secptst;
+ }
+ }
+ set @gappt,(60 * $top_ptmin + $top_ptsec) - (60 * @record_minpt + @record_secpt);
+ mes "[Staff]";
+ mes "Wow, you did a good job~ ";
+ mes "Your name is...^3131FF" + strcharinfo(0) +"^000000, isn't it?";
+ mes "^3131FF"+ strcharinfo(0) +"^000000, total time you spent to pass the battle..";
+ next;
+ mes "[Staff]";
+ mes "is "+@record_minpt+"minutes "+@record_secpt+"seconds.";
+ mes "Congratulations!";
+ next;
+ mes "[Staff]";
+ mes "The fastest party among people who cleared party arena time force battle is ^3131FF"+$arena_pttopn$+"^000000.";
+ next;
+ mes "[Staff]";
+ mes "^3131FF"+$arena_pttopn$+"^000000's running time was ^3131FF"+$top_ptmin+"^000000minutes ^3131FF"+$top_ptsec+"^000000seconds.";
+ next;
+ set .arn_party,getcharid(1);
+ if (@gappt < 0) {
+ mes "[Staff]";
+ mes "Although you failed to make a new record, I hope you will succeed next time.";
+ next;
+ if (arena_point > 29980) {
+ mes "[Staff]";
+ mes "Then let me reward you with some arena points....eh?";
+ mes "Your arena points have exceeded the maximum amount. I cannot give you more points until you spend some points.";
+ next;
+ mes "[Staff]";
+ mes "You can check the amount of arena points you have in the arena waiting room.";
+ next;
+ mes "[Staff]";
+ mes "I hope you had a good time and let me guide you to the entrance of arena.";
+ mes "Thank you.";
+ close2;
+ }
+ else
+ {
+ set arena_point, arena_point + 40;
+ mes "[Staff]";
+ mes "Let me reward you some arena points.";
+ mes "If you wish to check the amount of arena points you have, please go talk to ^3131FFVendigos^000000 at the arena entrance.";
+ next;
+ mes "[Staff]";
+ mes "Let me guide you to the entrance of arena.";
+ mes "See you later~";
+ close2;
+ }
+ if(getpartyleader(.arn_party,2) == getcharid(0))
+ {
+ donpcevent "#arn_timer_pt::Onstop";
+ donpcevent "alloff#pt::Onon";
+ donpcevent "Ponox::Onstart";
+ }
+ specialeffect2 EH_HIT5;
+ donpcevent "cast#pt::Onnomal1";
+ warp "arena_room",100,75;
+ end;
+ }
+ else
+ {
+ emotion e_omg;
+ mes "[Staff]";
+ mes "Wow! You have renewed the record!";
+ mes "What a great job!";
+ next;
+ if(getpartyleader(.arn_party,2) == getcharid(0))
+ {
+ mes "[Staff]";
+ mes "You can record you and your party members on ^FF0000the hall of Arena Time Force Battle party ^000000.";
+ mes "When you enter a name, the name will be remained on the top unless someone make a new record.";
+ next;
+ mes "[Staff]";
+ mes "Please enter a name within 10 letters which can represent you and your party members.";
+ next;
+ switch( select( "Ok.","Let me think." ) )
+ {
+ case 1:
+ input .@arnparty$;
+ mes "[Staff]";
+ mes "You have entered ^3131FF"+.@arnparty$+"^000000. Is it correct?";
+ next;
+ switch( select( "Yes","No" ) )
+ {
+ case 1:
+ set $top_ptmin, @record_minpt;
+ set $top_ptsec, @record_secpt;
+ set $arena_pttopn$,.@arnparty$;
+ donpcevent "Vendigos::Onlinerec_pt";
+ mes "[Staff]";
+ mes "Your record has been entered.";
+ next;
+ break;
+
+ case 2:
+ mes "[Staff]";
+ mes "Please take your time and think up a nice name.";
+ close;
+
+ }
+ break;
+
+ case 2:
+ mes "[Staff]";
+ mes "Please take your time and think up a nice name.";
+ close;
+
+ }
+
+
+ }
+ if (arena_point > 29900) {
+ mes "[Staff]";
+ mes "Then let me reward you with some arena points....eh?";
+ mes "Your arena points have exceeded the maximum amount. I cannot give you more points until you spend some points.";
+ next;
+ mes "[Staff]";
+ mes "You can check the amount of arena points you have in the arena waiting room.";
+ next;
+ mes "[Staff]";
+ mes "I hope you had a good time and let me guide you to the entrance of arena.";
+ mes "Thank you.";
+ close2;
+ }
+ else
+ {
+ mes "[Staff]";
+ mes "Let me reward you with some arena points.";
+ mes "At the same time, since you have renewed the record you will receive an extra amount of the points this time.";
+ next;
+ set arena_point, arena_point + 100;
+ mes "[Staff]";
+ mes "Let me reward you some arena points.";
+ mes "If you wish to check the amount of arena points you have, please go talk to ^3131FFVendigos^000000 at the arena entrance.";
+ next;
+ mes "[Staff]";
+ mes "Let me guide you to the entrance of arena.";
+ mes "See you later~";
+ close2;
+ }
+ if(getpartyleader(.arn_party,2) == getcharid(0))
+ {
+ donpcevent "#arn_timer_pt::Onstop";
+ donpcevent "alloff#pt::Onon";
+ donpcevent "Ponox::Onstart";
+ }
+ specialeffect2 EF_HIT5;
+ warp "arena_room",100,75;
+ end;
+ }
+
+}
+
+- script #arn_timer_pt -1,{
+
+OnEnter:
+ initnpctimer;
+ end;
+
+OnTimer2000:
+ mapannounce "prt_are_in","This broadcast informs you about the restriction for party arena.",0,0xFFCE00;
+ end;
+
+OnTimer3000:
+ mapannounce "prt_are_in","For a smooth game play, exit warp portal will be activated in 1 minute.",0,0xFFCE00;
+ end;
+
+OnTimer4000:
+ mapannounce "prt_are_in","Please proceed your battle quickly as possible in order to avoid disadvantage. Thank you for your cooperation.",0,0xFFCE00;
+ end;
+
+OnTimer60000:
+ donpcevent "cast#pt::Ontimeover2";
+ donpcevent "arn_warp_pt::Onout";
+ donpcevent "#arn_timer_pt::Onstop";
+ donpcevent "alloff#pt::Onon";
+ donpcevent "Ponox::Onstart";
+ end;
+
+Onstop:
+ stopnpctimer;
+ end;
+}
+
+- script arn_warp_pt -1,{
+
+Onout:
+ areawarp "prt_are_in",66,143,81,126,"arena_room",100,75;
+ end;
+}
+
+- script cast#pt -1,{
+
+Ontimeover1:
+ mapannounce "force_2-1","Arena will be reactivated due to an error occurred during battle.",0,0xFFCE00;
+ end;
+
+Onnomal1:
+ mapannounce "force_2-1","Arena will be reactivated.",0,0xFFCE00;
+ end;
+
+Onnomal2:
+ mapannounce "force_2-1","Arena will be reactivated.",0,0xFFCE00;
+ end;
+
+Ontimeover2:
+ mapannounce "force_2-1","Arena will be reactivated due to an error occurred in the waiting room.",0,0xFFCE00;
+ end;
+}
+
+- script alloff#pt -1,{
+
+Onon:
+ mapwarp "force_1-2","prt_are_in",126,139,0,0;
+ donpcevent "force_01mob#party::OnReset";
+ donpcevent "force_02mob#party::OnReset";
+ donpcevent "force_03mob#party::OnReset";
+ donpcevent "force_04mob#party::OnReset";
+ donpcevent "force_05mob#party::OnReset";
+ donpcevent "force_06mob#party::OnReset";
+ donpcevent "force_07mob#party::OnReset";
+ donpcevent "force_08mob#party::OnReset";
+ donpcevent "force_09mob#party::OnReset";
+ donpcevent "force_10-1mob#party::OnReset";
+ donpcevent "force_10-2mob#party::OnReset";
+ donpcevent "force_exitmob#party::OnReset";
+ //disablenpc "force_01mob#party";
+ //disablenpc "force_02mob#party";
+ //disablenpc "force_03mob#party";
+ //disablenpc "force_04mob#party";
+ //disablenpc "force_05mob#party";
+ //disablenpc "force_06mob#party";
+ //disablenpc "force_07mob#party";
+ //disablenpc "force_08mob#party";
+ //disablenpc "force_09mob#party";
+ //disablenpc "force_10mob-1#party";
+ //disablenpc "force_10mob-2#party";
+ enablenpc "force_01start#party";
+ enablenpc "force_02start#party";
+ enablenpc "force_03start#party";
+ disablenpc "force_04start#party";
+ disablenpc "force_05start#party";
+ disablenpc "force_06start#party";
+ disablenpc "force_07start#party";
+ disablenpc "force_08start#party";
+ disablenpc "force_09start#party";
+ disablenpc "force_10start#party";
+ disablenpc "force_exit#party";
+ disablenpc "force_01_00";
+ disablenpc "force_02_00";
+ disablenpc "force_03_00";
+ disablenpc "force_03_05";
+ disablenpc "force_03_04";
+ disablenpc "force_04_03";
+ disablenpc "force_05_03";
+ disablenpc "force_05_06";
+ disablenpc "force_06_07";
+ disablenpc "force_07_08";
+ disablenpc "force_08_09";
+ disablenpc "force_09_10";
+ disablenpc "force_10_09";
+ disablenpc "force_09_exit";
+ disablenpc "arena_p";
+ donpcevent "Slipslowrun#party::Ontimeroff";
+ disablenpc "Slipslowrun#party";
+ disablenpc "arn_warp_pt";
+ set $arn_partywait,0;
+ set $arn_partyc,0;
+ donpcevent "#arn_timer_pt::Onstop";
+ enablenpc "Slipslowrun#party";
+ enablenpc "arena_p";
+ end;
+
+OnInit:
+ if(!$top_ptmin && !$top_ptsec) set $top_ptmin,10;
+ end;
+
+}
diff --git a/npc/pre-re/other/arena/arena_point.txt b/npc/pre-re/other/arena/arena_point.txt
new file mode 100644
index 000000000..7a6501cfa
--- /dev/null
+++ b/npc/pre-re/other/arena/arena_point.txt
@@ -0,0 +1,181 @@
+//===== rAthena Script =======================================
+//= Point Exchanger
+//===== By: ==================================================
+//= L0ne_W0lf
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Aegis Conversion]
+//= Point exchanger: Turbo track points -> Arena Points
+//===== Additional Comments: =================================
+//= 1.0 First version. [L0ne_W0lf]
+//============================================================
+
+prt_are_in,103,11,3 script Arena Point Manager 732,{
+ mes "[Arena Point Manager]";
+ mes "I hope you're having a good";
+ mes "time in the Arena. If you've";
+ mes "earned Turbo Track Points at";
+ mes "Al De Baran's Turbo Track, I can,";
+ mes "convert them into Arena Points.";
+ next;
+ switch(select("Point Check:Convert Points:^660000Conversion Info^000000")) {
+ case 1:
+ mes "[Arena Point Manager]";
+ mes "" + strcharinfo(0) + ",";
+ mes "you currently have";
+ mes "" + arena_point + " Arena Points";
+ mes "and " + tt_point + " Turbo Track Points.";
+ close;
+ case 2:
+ mes "[Arena Point Manager]";
+ mes "" + strcharinfo(0) + ",";
+ mes "you currently have";
+ mes "" + arena_point + " Arena Points";
+ mes "and " + tt_point + " Turbo Track Points.";
+ next;
+ mes "[Arena Point Manager]";
+ mes "Please choose from among";
+ mes "the Track Point to Arena Point";
+ mes "conversions. Keep in mind that";
+ mes "when you convert more than 10";
+ mes "Track Points at one time, you can only convert in ^4D4DFFmultiples of 10^000000.";
+ next;
+ switch(select("2 TP -> 1 AP:4 TP -> 2 AP:6 TP -> 3 AP:8 TP -> 4 AP:10 TP and more:Cancel")) {
+ case 1:
+ callsub S_ExchangePoints,28999,2,1;
+ case 2:
+ callsub S_ExchangePoints,28998,4,2;
+ case 3:
+ callsub S_ExchangePoints,28997,6,2;
+ case 4:
+ callsub S_ExchangePoints,28996,8,4;
+ case 5:
+ mes "[Arena Point Manager]";
+ mes "Please enter the number";
+ mes "of times you wish to convert";
+ mes "10 Turbo Track Points into";
+ mes "Arena Points. The largest";
+ mes "value you may enter is 20.";
+ mes "To cancel, enter ''^3355FF0^000000.''";
+ next;
+ input .@input;
+ if (.@input == 0) {
+ mes "[Arena Point Manager]";
+ mes "You have";
+ mes "canceled";
+ mes "this service.";
+ close;
+ }
+ else if (.@input > 20) {
+ mes "[Arena Point Manager]";
+ mes "Your request exceeds";
+ mes "the maximum limit. Please";
+ mes "enter a value no greater than 20.";
+ close;
+ }
+ else {
+ set .@want_point1,10 * .@input;
+ set .@want_point,5 * .@input;
+ set .@my_arena_all,arena_point + .@want_point;
+ set .@my_turbo_all,tt_point - .@want_point1;
+ if (.@my_arena_all > 28999) {
+ mes "[Arena Point Manager]";
+ mes "You will exceed the";
+ mes "maximum amount of";
+ mes "Arena Points if we proceed";
+ mes "with this conversion of your";
+ mes "Turbo Track Points. You cannot";
+ mes "have more than 29,000 Arena Points.";
+ next;
+ mes "[Arena Point Manager]";
+ mes "Please spend some of";
+ mes "your Arena Points before";
+ mes "using this service again.";
+ mes "Thank you for your patronage.";
+ close;
+ }
+ if (.@my_turbo_all < 0) {
+ mes "[Arena Point Manager]";
+ mes "I'm sorry, but";
+ mes "you don't have enough";
+ mes "Turbo Track Points to";
+ mes "perform this Arena";
+ mes "Point conversion.";
+ close;
+ }
+ else {
+ mes "[Arena Point Manager]";
+ mes "You have converted";
+ mes "10 Turbo Track Points";
+ mes "into 5 Arena Points " + .@input + " times.";
+ mes "A total of " + .@want_point1 + " Turbo Track Points were converted into";
+ mes "" + .@want_point +" Arena Points.";
+ set tt_point,tt_point - .@want_point1;
+ set arena_point,arena_point+.@want_point;
+ next;
+ mes "[Arena Point Manager]";
+ mes "" + strcharinfo(0) + ",";
+ mes "you now have";
+ mes "^4682B4" + arena_point + "^000000 Arena Points";
+ mes "and ^00688B" + tt_point + "^000000 Turbo Track Points.";
+ mes "Thank you for your patronage.";
+ close;
+ }
+ }
+ case 6:
+ mes "[Arena Point Manager]";
+ mes "You have";
+ mes "canceled";
+ mes "this service.";
+ close;
+ }
+ case 3:
+ // Again. no dialog for this option.
+ close;
+ }
+ close;
+
+S_ExchangePoints:
+ if (arena_point > getarg(0) ) {
+ mes "[Arena Point Manager]";
+ mes "You will exceed the";
+ mes "maximum amount of";
+ mes "Arena Points if we proceed";
+ mes "with this conversion of your";
+ mes "Turbo Track Points. You cannot";
+ mes "have more than 29,000 Arena Points.";
+ next;
+ mes "[Arena Point Manager]";
+ mes "Please spend some of";
+ mes "your Arena Points before";
+ mes "using this service again.";
+ mes "Thank you for your patronage.";
+ close;
+ }
+ if (tt_point >= getarg(1)) {
+ mes "[Arena Point Manager]";
+ mes "" + strcharinfo(0) + ",";
+ mes "you've converted "+getarg(1)+" Track";
+ mes "Points into "+getarg(2)+" Arena Point.";
+ set tt_point,tt_point-getarg(1);
+ set arena_point,arena_point+getarg(2);
+ next;
+ mes "[Arena Point Manager]";
+ mes "" + strcharinfo(0) + ",";
+ mes "you now have";
+ mes "^4682B4" + arena_point + "^000000 Arena Points";
+ mes "and ^00688B" + tt_point + "^000000 Turbo Track Points.";
+ mes "Thank you for your patronage.";
+ close;
+ }
+ else {
+ mes "[Arena Point Manager]";
+ mes "I'm sorry, but you don't have";
+ mes "enough Turbo Track Points.";
+ mes "You need at least 2 Turbo Track Points for this conversion service.";
+ close;
+ }
+}
diff --git a/npc/pre-re/other/arena/arena_room.txt b/npc/pre-re/other/arena/arena_room.txt
new file mode 100644
index 000000000..3156d5c57
--- /dev/null
+++ b/npc/pre-re/other/arena/arena_room.txt
@@ -0,0 +1,1112 @@
+//===== rAthena Script ========================================
+//= Izlude Arena Room
+//===== By: ==================================================
+//= SinSloth
+//===== Current Version: =====================================
+//= 1.1
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Description: =========================================
+//= Izlude Battle Arena Main Room
+//===== Additional Comments: =================================
+//= 1.0 First version.
+//= 1.1 Fixed a small reward typo (was giving potato.) [L0ne_W0lf]
+//============================================================
+
+arena_room,94,93,5 script Vendigos 97,{
+
+ mes "[Vendigos]";
+ mes "Welcome to the world of Arena, the battle against a time limit.";
+ mes "My name is Vendigos, I am here to help you.";
+ next;
+ mes "[Vendigos]";
+ mes "If you have any questions, feel free to ask me.";
+L_Menu:
+ next;
+ switch( select( "How to challenge","About Arena Points","My Current Arena Points","Cancel" ) )
+ {
+ case 1:
+ mes "[Vendigos]";
+ mes "There are two different kinds of arena mode such as ^3131FFPlayer Mode^000000 and ^3131FFParty Mode^000000.";
+ next;
+ mes "[Vendigos]";
+ mes "^3131FFPlayer Mode^000000 consists of 4 different stages based on character level from 50~80.";
+ mes "For a party with 5 members, they can participate in ^3131FFParty Mode^000000.";
+ next;
+ mes "[Vendigos]";
+ mes "For ^3131FFeach Player Mode Stage^000000, characters who are 20 levels higher than the level requirement on each stage cannot enter. This is to prevent high level characters preoccupying a low level stage.";
+ next;
+ mes "[Vendigos]";
+ mes "There are the NPCs for Player Mode Stages from 12 o'clock direction to the reversed clock direction.";
+ mes "While you're waiting in a chat room, you will be automatically guided to an arena room by the waiting order.";
+ break;
+
+ case 2:
+ mes "[Vendigos]";
+ mes "Let me explain about the ^3131FFArena Point^000000.";
+ mes "It is a reward point for players who ^3131FFsuccessfully cleared a arena stage^000000, a player can possess the maximum 30,000 points.";
+ next;
+ mes "[Vendigos]";
+ mes "Even if you did not clear a stage due to time-over or other errors, you will be given a very small amount of arena points.";
+ next;
+ mes "[Vendigos]";
+ mes "Regarding the use of Arena Points,";
+ mes "we are providing various services such as souvenir photograph services through an NPC named Givu.";
+ break;
+
+ case 3:
+ mes "[Vendigos]";
+ mes "Let me check "+strcharinfo(0)+"'s current arena points.";
+ next;
+ mes "[Vendigos]";
+ mes ""+strcharinfo(0)+" has total ^3131FF"+arena_point+"^000000 points.";
+ next;
+ mes "[Vendigos]";
+ mes "If you wish to know how to use arena points, please refer to the 2nd menu ^3131FF'About Arena Points'^000000.";
+ break;
+
+ case 4:
+ mes "[Vendigos]";
+ mes "Okay, please have a good time.";
+ close;
+ }
+ next;
+ mes "[Vendigos]";
+ mes "Is there anything I can help you more?";
+ goto L_Menu;
+
+Onlinerec_50:
+ mapannounce "arena_room",""+$arena_50topn$+" has renewed the top record in the Arena Time Force Battle level 50. Congratulations!",0;
+ end;
+
+Onlinerec_60:
+ mapannounce "arena_room",""+$arena_60topn$+" has renewed the top record in the Arena Time Force Battle level 60. Congratulations!",0;
+ end;
+
+Onlinerec_70:
+ mapannounce "arena_room",""+$arena_70topn$+" has renewed the top record in the Arena Time Force Battle level 70. Congratulations!",0;
+ end;
+Onlinerec_80:
+ mapannounce "arena_room",""+$arena_80topn$+" has renewed the top record in the Arena Time Force Battle level 80. Congratulations!",0;
+ end;
+
+Onlinerec_pt:
+ mapannounce "arena_room","Party "+$arena_pttopn$+" has renewed the top record in the Arena Time Force Battle. Congratulations!",0;
+ end;
+
+//OnCommand: "linerec_vs"
+// var vs_winner = GetGlobalStr "040611_arn_vstopn"
+// broadcastinmap "Party "+vs_winner+" has renewed the top record in the Arena Time Force Battle. Congratulations!"
+// end;
+
+}
+
+arena_room,105,82,5 script Arena Record Staff 57,{
+
+ mes "[Owen Kheuv]";
+ mes "Hello, my name is Own Kheuv";
+ mes "in charge of every arena stage record of players.";
+ next;
+ mes "[Owen Kheuv]";
+ mes "Would you like to check the top record players in each stage?";
+ mes "If so, please choose a menu below.";
+ next;
+ switch( select( "lvl 50 Stage","lvl 60 Stage","lvl 70 Stage","lvl 80 Stage","Party Stage" ) )
+ {
+ case 1:
+ mes "[Owen Kheuv]";
+ mes "Currently the top player of the arena lvl 50 stage is ^3131FF "+$arena_50topn$+"^000000, the top record is ^3131FF"+$top_50min+"^000000 minutes ^3131FF"+$top_50sec+"^000000 seconds.";
+ close;
+
+ case 2:
+ mes "[Owen Kheuv]";
+ mes "Currenly the top player of the arena lvl 60 stage is ^3131FF"+$arena_60topn$+"^000000, the top record is ^3131FF"+$top_60min+"^000000 minutes ^3131FF"+$top_60sec+"^000000 seconds.";
+ close;
+
+ case 3:
+ mes "[Owen Kheuv]";
+ mes "Currenly the top player of the arena lvl 70 stage is ^3131FF"+$arena_70topn$+"^000000, the top record is ^3131FF"+$top_70min+"^000000 minutes ^3131FF"+$top_70sec+"^000000 seconds.";
+ close;
+
+ case 4:
+ mes "[Owen Kheuv]";
+ mes "Currenly the top player of the arena lvl 80 stage is ^3131FF"+$arena_80topn$+"^000000, the top record is ^3131FF"+$top_80min+"^000000 minutes ^3131FF"+$top_80sec+"^000000 seconds.";
+ close;
+
+ case 5:
+ mes "[Owen Kheuv]";
+ mes "Currenly the top party is ^3131FF"+$arena_pttopn$+"^000000, the top record is ^3131FF"+$top_ptmin+"^000000 minutes ^3131FF"+$top_ptsec+"^000000 seconds.";
+ close;
+ }
+}
+
+arena_room,68,135,3 script Helper Pat 726,{
+
+ mes "[Pat]";
+ mes "Welcome, welcome.";
+ mes "I am a helper of the lvl 50 arena stage.";
+ next;
+ mes "[Pat]";
+ mes "This ^3131FFlvl 50 arena stage^000000";
+ mes "is accessable to characters from ^FF0000level 50^000000 to ^FF0000level 69^000000.";
+ next;
+ mes "[Pat]";
+ mes "This level limitation is to prevent high level characters abusing low level arena stages. I hope you will understand.";
+ mes "Also we accept an entrance fee, 1,000 zeny.";
+ next;
+ mes "[Pat]";
+ mes "Let me introduce you about the play rules of arena.";
+ next;
+ mes "[Pat]";
+ mes "^3131FFWait in a chat room for your turn coming.^000000";
+ mes "When it's your turn, you will be automatically warped to an arena map.";
+ next;
+ mes "[Pat]";
+ mes "As immediately as you enter, a timer to check your play time will be activated.";
+ mes "Please follow what ^3131FFHeel and Toe^000000 guides you. ";
+ next;
+ mes "[Pat]";
+ mes "You have a ^3131FF5 minutes^000000 battle time.";
+ next;
+ mes "[Pat]";
+ mes "After you clear every room including a boss room, you will be warped again to an ^3131FFending waiting room^000000.";
+ mes "You can only allow to stay in the waiting room for ^3131FF1 minute^000000, please hurry up to receive the arena points and leave.";
+ next;
+ mes "[Pat]";
+ mes "If you stay over 1 minute inside the ending waiting room, you will be forced outside and will not receive any arena points. Please remember that.";
+ next;
+ mes "[Pat]";
+ mes "I hope you will have a good time.";
+ close;
+}
+
+arena_room,41,93,5 script Helper Ben 750,{
+
+ mes "[Ben]";
+ mes "Welcome, welcome.";
+ mes "I am a helper of the lvl 60 arena stage.";
+ next;
+ mes "[Ben]";
+ mes "This ^3131FFlvl 60 arena stage^000000";
+ mes "is accessable to characters from ^FF0000level 60^000000 to ^FF0000level 79^000000.";
+ next;
+ mes "[Ben]";
+ mes "This level limitation is to prevent high level characters abusing low level arena stages. I hope you will understand.";
+ mes "Also we accept an entrance fee, 1,000 zeny.";
+ next;
+ mes "[Ben]";
+ mes "Let me introduce you about the play rules of arena.";
+ next;
+ mes "[Ben]";
+ mes "^3131FFWait in a chat room for your turn coming.^000000";
+ mes "When it's your turn, you will be automatically warped to an arena map.";
+ next;
+ mes "[Ben]";
+ mes "As immediately as you enter, a timer to check your play time will be activated.";
+ mes "Please follow what ^3131FFMinilover^000000 guides you. ";
+ next;
+ mes "[Ben]";
+ mes "You have a ^3131FF6 minutes^000000 battle time.";
+ next;
+ mes "[Ben]";
+ mes "After you clear every room including a boss room, you will be warped again to an ^3131FFending waiting room^000000.";
+ mes "You can only allow to stay in the waiting room for ^3131FF1 minute^000000, please hurry up to receive the arena points and leave.";
+ next;
+ mes "[Ben]";
+ mes "If you stay over 1 minute inside the ending waiting room, you will be forced outside and will not receive any arena points. Please remember that.";
+ next;
+ mes "[Ben]";
+ mes "I hope you will have a good time.";
+ close;
+}
+
+arena_room,53,49,5 script Helper Vicious 730,{
+
+ mes "[Vicious]";
+ mes "Hey there.";
+ mes "My name is Vicious, I am a helper of lvl 70 arena stage.";
+ mes "(...I have no clue how the hell I put myself into this crappy work...mumble mumble...grumble grumble..)";
+ next;
+ mes "[Vicious]";
+ mes "This ^3131FFlvl 70 arena stage^000000";
+ mes "is accessable to characters from ^FF0000level 70^000000 to ^FF0000level 89^000000.";
+ next;
+ mes "[Vicious]";
+ mes "This level limitation is to prevent high level characters abusing low level arena stages. I hope you will understand.";
+ mes "Also we accept an entrance fee, 1,000 zeny.";
+ next;
+ mes "[Vicious]";
+ mes "Let me introduce you about the play rules of arena.";
+ next;
+ mes "[Vicious]";
+ mes "^3131FFWait in a chat room for your turn coming.^000000";
+ mes "When it's your turn, you will be automatically warped to an arena map.";
+ next;
+ mes "[Vicious]";
+ mes "As immediately as you enter, a timer to check your play time will be activated.";
+ mes "Please follow what ^3131FFCadilac^000000 guides you. ";
+ next;
+ mes "[Vicious]";
+ mes "You have a ^3131FF7 minutes^000000 battle time.";
+ next;
+ mes "[Vicious]";
+ mes "After you clear every room including a boss room, you will be warped again to an ^3131FFending waiting room^000000.";
+ mes "You can only allow to stay in the waiting room for ^3131FF1 minute^000000, please hurry up to receive the arena points and leave.";
+ next;
+ mes "[Vicious]";
+ mes "If you stay over 1 minute inside the ending waiting room, you will be forced outside and will not receive any arena points. Remember that.";
+ next;
+ mes "[Vicious]";
+ mes "Okay, take care now.";
+ close;
+}
+
+arena_room,147,49,3 script Helper Epin 727,{
+
+ mes "[Epin]";
+ mes "Good day,";
+ mes "I am a helper of lvl 80 arena stage and my name is Epin.";
+ mes "I like reading and I am 19 years old...huh...? Don't you want to hear about me...?";
+ next;
+ emotion e_cry,0;
+ mes "[Epin]";
+ mes "Okay...";
+ next;
+ mes "[Epin]";
+ mes "This ^3131FFlvl 80 arena stage^000000";
+ mes "is accessable to characters from ^FF0000level 80^000000 to ^FF0000level 99^000000.";
+ next;
+ mes "[Epin]";
+ mes "This level limitation is to prevent high level characters abusing low level arena stages. I hope you will understand.";
+ mes "Also we accept an entrance fee, 1,000 zeny.";
+ next;
+ mes "[Epin]";
+ mes "Let me introduce you about the play rules of arena.";
+ next;
+ mes "[Epin]";
+ mes "^3131FFWait in a chat room for your turn coming.^000000";
+ mes "When it's your turn, you will be automatically warped to an arena map.";
+ next;
+ mes "[Epin]";
+ mes "As immediately as you enter, a timer to check your play time will be activated.";
+ mes "Please follow what ^3131FFActus^000000 guides you. ";
+ next;
+ mes "[Epin]";
+ mes "You have a ^3131FF8 minutes^000000 battle time.";
+ next;
+ mes "[Epin]";
+ mes "After you clear every room including a boss room, you will be warped again to an ^3131FFending waiting room^000000.";
+ mes "You can only allow to stay in the waiting room for ^3131FF1 minute^000000, please hurry up to receive the arena points and leave.";
+ next;
+ mes "[Epin]";
+ mes "If you stay over 1 minute inside the ending waiting room, you will be forced outside and will not receive any arena points. Please remember that.";
+ next;
+ mes "[Epin]";
+ mes "I hope you will have a good time.";
+ close;
+}
+
+arena_room,158,93,5 script Helper Lunic 828,{
+
+ mes "[Lunic]";
+ mes "Welcome to party arena stage.";
+ mes "I hope you will listen carefully to my introduction";
+ mes "since this party arena stage is a little bit different from player mode stages.";
+ next;
+ mes "[Lunic]";
+ mes "^3131FFParty Arena Stage^000000";
+ mes "is accessible to players from ^FF0000level 10^000000 to ^FF0000level 99^000000.";
+ next;
+ mes "[Lunic]";
+ mes "Also, arena will be not be started until all of 5 party members enter the room. We accept an entrance fee 1,000 zeny.";
+ next;
+ mes "[Lunic]";
+ mes "Let me introduce you about the play rules of arena.";
+ next;
+ mes "[Lunic]";
+ mes "^3131FFGroup a party with your friends and wait in a chat room^000000.";
+ mes "You must form a party beforehand. If you didn't do, you could still play but you would have a lot of inconvenience.";
+ next;
+ mes "[Lunic]";
+ mes "Also please remember 5 players automatically warped to the arena room will be in order of ^FF0000entering a chat room^000000 not in order of ^FF0000party^000000. Please remember that.";
+ next;
+ mes "[Lunic]";
+ mes "And please form a party with ^3131FF5 players^000000 before you enter a chat room.";
+ next;
+ mes "[Lunic]";
+ mes "When it becomes your turn, you will be warped into a small map where a warp and a help NPC are located.";
+ mes "In case you enter with members of a different party, use the warp to escape the map. Then you will return to the waiting room.";
+ next;
+ mes "[Lunic]";
+ mes "In case you enter with your party members, please proceed speaking with the help NPC in the small map.";
+ mes "The help NPC is only accessible to talk ^FF0000 1 player ^000000at a time.";
+ next;
+ mes "[Lunic]";
+ mes "The NPC will guide you and your party members to the actual arena room.";
+ mes "However, if anyone in the party ^3131FFdoes not have enough money to pay the entrance fee, he will be warped outside^000000.";
+ next;
+ mes "[Lunic]";
+ mes "Also be aware that you can only stay inside the map for ^FF0000 1 minute^000000.";
+ next;
+ mes "[Lunic]";
+ mes "As immediately as you enter the arena map, a timer which calculates your battle time will be activated.";
+ mes "Please follow what ^3131FFSlipslowrun^000000 guides you. ";
+ next;
+ mes "[Lunic]";
+ mes "You will have ^3131FF10 minutes^000000 to clear the stage however it is not that easy to do. And you're advised to use the time wisely.";
+ next;
+ mes "[Lunic]";
+ mes "After you clear every room including a boss room, you will be warped again to an ^3131FFending waiting room^000000.";
+ mes "You can only allow to stay in the waiting room for ^3131FF1 minute^000000, please hurry up to receive the arena points and leave.";
+ next;
+ mes "[Lunic]";
+ mes "If you stay over 1 minute inside the ending waiting room, you will be forced outside and will not receive any arena points. Please remember that.";
+ next;
+ mes "[Lunic]";
+ mes "Besides, if a party make a new record on time to clear the map,";
+ mes "^3131FFthe party master^000000 can record ^3131FFthe party name^000000.";
+ next;
+ mes "[Lunic]";
+ mes "In this case, if a party has more than one master or none, it is impossible to write ^FF0000the top party record^000000.";
+ mes "Therefore, it is strongly suggested to form one party before entering the arena map.";
+ next;
+ mes "[Lunic]";
+ mes "Thank you for listening and";
+ mes "I hope you will have a good time.";
+ close;
+}
+
+arena_room,158,82,1 script Helper Lonik 828,{
+
+ emotion e_no1,0;
+ mes "[Lonik]";
+ mes "Tah dah! Here I am!";
+ next;
+ mes "[Lonik]";
+ mes "You are curious if there is anyone inside or not, aren't you?";
+ next;
+ mes "[Lonik]";
+ mes "My answer is...";
+ mes ".............";
+ if(getmapusers("force_1-2"))
+ {
+ emotion e_oh,0;
+ mes "Yes!";
+ mes "There is someone inside.";
+ next;
+ mes "[Lonik]";
+ mes "You'd better wait a little bit longer!";
+ }
+ else
+ {
+ emotion e_x,0;
+ mes "No!";
+ mes "Go for it, good luck!";
+ }
+ close;
+}
+
+sec_in02,72,180,3 script Arena Manager#arena 802,{
+
+ if (!getgmlevel()) end;
+
+ input .@arena;
+ if(!.@arena)
+ {
+ mes "[Arena Manager]";
+ mes "Command has been canceled.";
+ close;
+ }
+ else if(.@arena == 1357)
+ {
+ mes "[Arena Manager]";
+ mes "Select an option.";
+ next;
+ switch( select( "Restart arena","Rearrange the Ranking Time" ) )
+ {
+ case 1:
+ switch( select( "lvl 50","lvl 60","lvl 70","lvl 80","Party Mode" ) )
+ {
+ case 1:
+ set .@arena,50;
+ break;
+ case 2:
+ set .@arena,60;
+ break;
+ case 3:
+ set .@arena,70;
+ break;
+ case 4:
+ set .@arena,80;
+ break;
+ case 5:
+ mes "[Arena Manager]";
+ mes "== Caution ==";
+ mes "You have chosen to restart party arena stage.";
+ mes "Do you wish to proceed?";
+ next;
+ switch( select( "Yes","No" ) )
+ {
+ case 1:
+ donpcevent "Ponox::Onstart";
+ mes "[Arena Manager]";
+ mes "The arena stage has been successfuly reactivated.";
+ close;
+
+ case 2:
+ mes "[Arena Manager]";
+ mes "Command has been canceled.";
+ close;
+ }
+ }
+ mes "[Arena Manager]";
+ mes "== Caution ==";
+ mes "You have chosen to restart lvl "+.@arena+" arena stage.";
+ mes "Do you wish to proceed?";
+ next;
+ switch( select( "Yes","No" ) )
+ {
+ case 1:
+ donpcevent "lvl "+.@arena+"s Waiting Room::Onstart";
+ mes "[Arena Manager]";
+ mes "The arena stage has been successfuly reactivated.";
+ close;
+
+ case 2:
+ mes "[Arena Manager]";
+ mes "Command has been canceled.";
+ close;
+ }
+
+ case 2:
+ mes "[Arena Manager]";
+ mes "== Caution ==";
+ mes "^CE0000You have chosen to rearrange the ranking time. Make sure this is not a good decision unless if something serious was happened!^000000";
+ next;
+ mes "[Arena Manager]";
+ mes "Are you sure you want to rearrange the ranking time?";
+ next;
+ switch( select( "No","Yes" ) )
+ {
+ case 1:
+ mes "[Arena Manager]";
+ mes "Phew~ :)";
+ close;
+
+ case 2:
+ switch( select( "lvl 50","lvl 60","lvl 70","lvl 80","Party Mode" ) )
+ {
+ case 1:
+ mes "[Arena Manager]";
+ mes "Please enter 0 to cancel.";
+ mes "If not, please enter a value for minutes first and then seconds.";
+ next;
+ input .@arenamin;
+ set $top_50min,.@arenamin;
+ input .@arenasec;
+ set $top_50sec,.@arenasec;
+ mes "[Arena Manager]";
+ mes "Current lvl 50 ranker's play time has been rearranged to ^FF0000"+$top_50min+"^000000 minutes and ^FF0000"+$top_50sec+"^000000 seconds.";
+ close;
+ case 2:
+ mes "[Arena Manager]";
+ mes "Please enter 0 to cancel.";
+ mes "If not, please enter a value for minutes first and then seconds.";
+ next;
+ input .@arenamin;
+ set $top_60min,.@arenamin;
+ input .@arenasec;
+ set $top_60sec,.@arenasec;
+ mes "[Arena Manager]";
+ mes "Current lvl 60 ranker's play time has been rearranged to ^FF0000"+$top_60min+"^000000 minutes and ^FF0000"+$top_60sec+"^000000 seconds.";
+ close;
+ case 3:
+ mes "[Arena Manager]";
+ mes "Please enter 0 to cancel.";
+ mes "If not, please enter a value for minutes first and then seconds.";
+ next;
+ input .@arenamin;
+ set $top_70min,.@arenamin;
+ input .@arenasec;
+ set $top_70sec,.@arenasec;
+ mes "[Arena Manager]";
+ mes "Current lvl 70 ranker's play time has been rearranged to ^FF0000"+$top_70min+"^000000 minutes and ^FF0000"+$top_70sec+"^000000 seconds.";
+ close;
+ case 4:
+ mes "[Arena Manager]";
+ mes "Please enter 0 to cancel.";
+ mes "If not, please enter a value for minutes first and then seconds.";
+ next;
+ input .@arenamin;
+ set $top_80min,.@arenamin;
+ input .@arenasec;
+ set $top_80sec,.@arenasec;
+ mes "[Arena Manager]";
+ mes "Current lvl 80 ranker's play time has been rearranged to ^FF0000"+$top_80min+"^000000 minutes and ^FF0000"+$top_80sec+"^000000 seconds.";
+ close;
+ case 5:
+ mes "[Arena Manager]";
+ mes "Please enter 0 to cancel.";
+ mes "If not, please enter a value for minutes first and then seconds.";
+ next;
+ input .@arenamin;
+ set $top_ptmin,.@arenamin;
+ input .@arenasec;
+ set $top_ptsec,.@arenasec;
+ mes "[Arena Manager]";
+ mes "Current party ranker's play time has been rearranged to ^FF0000"+$top_ptmin+"^000000 minutes and ^FF0000"+$top_ptsec+"^000000 seconds.";
+ close;
+ }
+ }
+ }
+ }
+ mes "Password is incorrect.";
+ close;
+}
+
+sec_in02,79,171,3 script Reward Manager#arena 802,{
+
+ if (!getgmlevel()) end;
+
+ input .@arena;
+ if(!.@arena)
+ {
+ mes "[Reward Manager]";
+ mes "Command has been canceled.";
+ close;
+ }
+ else if(.@arena == 1357)
+ {
+ mes "[Reward Manager]";
+ mes "You have chosen to hide the teleporter NPC.";
+ next;
+ switch( select( "Cancel","Yes","Turn on" ) )
+ {
+ case 1:
+ mes "[Reward Manager]";
+ mes "You have canceled the command.";
+ close;
+
+ case 2:
+ mes "[Reward Manager]";
+ mes "NPC has been hidden";
+ disablenpc "Teleporter#arena";
+ close;
+
+ case 3:
+ mes "[Reward Manager]";
+ mes "NPC has been enabled.";
+ enablenpc "Teleporter#arena";
+ close;
+ }
+ }
+ mes "[Reward Manager]";
+ mes "Password is incorrect.";
+ close;
+}
+
+arena_room,105,93,5 script Teleporter#arena 55,{
+
+ mes "[Teleporter]";
+ mes "I can move you to the reward arena!";
+ mes "Would you like to go there?";
+ next;
+ switch( select( "Yes.","No." ) )
+ {
+ case 1:
+ mes "[Teleporter]";
+ mes "Let me guide you.";
+ close2;
+ warp "prt_are_in",60,14;
+ end;
+
+ case 2:
+ mes "[Teleporter]";
+ mes "No problem, feel free to come back any time.";
+ close;
+ }
+}
+
+prt_are_in,98,14,3 script Givu#arena 728,{
+
+
+ if(checkweight(526,5) != 1)
+ {
+ mes "- Wait a moment! -";
+ mes "- Currently you're carrying -";
+ mes "- too many items with you. -";
+ mes "- Please enlighten your weight -";
+ mes "- and try again. -";
+ close;
+ }
+ mes "[Givu]";
+ mes "Hello, there. Welcome to the world of Arena.";
+ mes "My name is Givu, I am in charge of arena point exchange program.";
+ next;
+ mes "[Givu]";
+ mes "You can exchange your arena points with various stuffs.";
+ mes "Please choose a menu below.";
+ next;
+ switch( select( "Exchange with Consumable items","Exchange with EXP points","Take a Souvenir Picture","Check Current Arena Points" ) )
+ {
+ case 1:
+ mes "[Givu]";
+ mes "What consumable item do you wish to exchange?";
+ next;
+ switch( select( "Honey","Royal Jelly","Mastela Fruit","Condensed White Potion","Anodyne","Yggdrasil Seed","Yggdrasilberry","Old Blue Box","Old Purple Box","Old Card Album" ) )
+ {
+ case 1: callfunc "Func_Are_Rew",518,5,20;
+ case 2: callfunc "Func_Are_Rew",526,5,30;
+ case 3: callfunc "Func_Are_Rew",522,5,30;
+ case 4: callfunc "Func_Are_Rew",547,8,30;
+ case 5: callfunc "Func_Are_Rew",605,3,20;
+ case 6: callfunc "Func_Are_Rew",608,1,20;
+ case 7: callfunc "Func_Are_Rew",607,1,40;
+ case 8: callfunc "Func_Are_Rew",603,1,100;
+ case 9: callfunc "Func_Are_Rew",617,1,300;
+ case 10: callfunc "Func_Are_Rew",616,1,1000;
+ }
+
+ case 2:
+ mes "[Givu]";
+ mes "Would you like to exchange your arena points with experience points?";
+ mes "It requires 40 arena points.";
+ next;
+ switch( select( "Cancel","Yes" ) )
+ {
+ case 1:
+ mes "[Givu]";
+ mes "You have canceled your request.";
+ close;
+
+ case 2:
+ if(arena_point < 40)
+ {
+ mes "[Givu]";
+ mes "You do not have enough arena points.";
+ mes "Please check the total amount of arena points you have.";
+ close;
+ }
+ set arena_point,arena_point -40;
+ if(BaseLevel < 70) getexp 3000,0;
+ else if(BaseLevel < 80) getexp 9000,0;
+ else if(BaseLevel < 90) getexp 10000,0;
+ else if(BaseLevel < 100) getexp 30000,0;
+ mes "[Givu]";
+ mes "You have gained experience points. Thank you.";
+ close;
+ }
+
+ case 3:
+ mes "[Givu]";
+ mes "You have chosen a souvenir picture services.";
+ next;
+ switch( select( "About souvenir Picture Services","Take a picture" ) )
+ {
+ case 1:
+ mes "[Givu]";
+ mes "Do you see stairs at the right side of me?";
+ next;
+ mes "[Givu]";
+ mes "At the stairs, you can take a screenshot with an NPC or a monster.";
+ next;
+ mes "[Givu]";
+ mes "When you choose an NPC or a monster, it will show some emotion icons ^FF0000for 1 minute^000000.";
+ next;
+ mes "[Givu]";
+ mes "Don't miss the chance to take a picture with your favorite NPC!";
+ close;
+
+ case 2:
+ if($arenapic)
+ {
+ mes "[Givu]";
+ mes "A souvenir picture services is on progress. Please wait.";
+ close;
+ }
+ mes "[Givu]";
+ mes "Please choose an NPC at below.";
+ mes "The NPC will appear for 1 minute and this service requires 10 arena points.";
+ next;
+ switch( select( "Baphomet","Dark Lord","Doppelganger","Eddga","Dracula","Samurai","Stormy Knight","Phreeoni","Girl","Valkyrie" ) )
+ {
+ case 1: set $@arenapic,1039; break;
+ case 2: set $@arenapic,1272; break;
+ case 3: set $@arenapic,1046; break;
+ case 4: set $@arenapic,1115; break;
+ case 5: set $@arenapic,1389; break;
+ case 6: set $@arenapic,1492; break;
+ case 7: set $@arenapic,1251; break;
+ case 8: set $@arenapic,1159; break;
+ case 9: set $@arenapic,6969; break;
+ case 10: set $@arenapic,7777; break;
+ }
+ if(arena_point < 10)
+ {
+ mes "[Givu]";
+ mes "You do not have enough arena points.";
+ mes "Please check the total amount of arena points you have.";
+ close;
+ }
+ mes "[Givu]";
+ if($@arenapic == 6969) mes "Would you like to take a picture with pretty girls?";
+ else if($@arenapic == 7777) mes "Would you like to take a picture with a Valkyrie?";
+ else mes "Would you like to take a picture with a "+getmonsterinfo($@arenapic,0)+"?";
+ next;
+ switch( select( "Yes","No" ) )
+ {
+ case 1:
+ set arena_point,arena_point -10;
+ set $arenapic,1;
+ enablenpc "#arena_"+$@arenapic+"";
+ movenpc "#arena_"+$@arenapic+"",96,28;
+ if($@arenapic == 6969)
+ {
+ enablenpc "#arena_ss_2";
+ enablenpc "#arena_ss_3";
+ enablenpc "#arena_ss_4";
+ }
+ donpcevent "npctime#arena::OnStart";
+ mes "[Givu]";
+ mes "Thank you.";
+ close;
+
+ case 2:
+ mes "[Givu]";
+ mes "Would you like to consider a little longer?";
+ close;
+ }
+ }
+
+ case 4:
+ mes "[Givu]";
+ mes "Let me check "+strcharinfo(0)+"'s current arena points.";
+ next;
+ mes "[Givu]";
+ mes ""+strcharinfo(0)+" has total ^3131FF"+arena_point+"^000000 points.";
+ close;
+ }
+
+OnInit:
+ set $arenapic,0;
+ end;
+}
+
+prt_are_in,1,1,5 script #arena_1039 1039,{
+ end;
+
+OnInit:
+ disablenpc "#arena_6969";
+ disablenpc "#arena_ss_2";
+ disablenpc "#arena_ss_3";
+ disablenpc "#arena_ss_4";
+ disablenpc "#arena_1272";
+ disablenpc "#arena_1046";
+ disablenpc "#arena_1115";
+ disablenpc "#arena_1389";
+ disablenpc "#arena_1492";
+ disablenpc "#arena_1251";
+ disablenpc "#arena_1159";
+ disablenpc "#arena_7777";
+ disablenpc "#arena_1039";
+ end;
+
+OnHeart:
+ emotion e_lv,0;
+ end;
+OnSci:
+ emotion e_scissors,0;
+ end;
+OnBest:
+ emotion e_no1,0;
+ end;
+OnOmg:
+ emotion e_omg,0;
+ end;
+OnKik:
+ emotion e_gg,0;
+ end;
+OnKis:
+ emotion e_kis,0;
+ end;
+}
+
+prt_are_in,1,1,5 duplicate(#arena_1039) #arena_6969 714
+prt_are_in,94,26,5 duplicate(#arena_1039) #arena_ss_2 714
+prt_are_in,100,28,3 duplicate(#arena_1039) #arena_ss_3 714
+prt_are_in,102,26,3 duplicate(#arena_1039) #arena_ss_4 714
+prt_are_in,1,1,5 duplicate(#arena_1039) #arena_1272 1272
+prt_are_in,1,1,5 duplicate(#arena_1039) #arena_1046 1046
+prt_are_in,1,1,5 duplicate(#arena_1039) #arena_1115 1115
+prt_are_in,1,1,5 duplicate(#arena_1039) #arena_1389 1389
+prt_are_in,1,1,5 duplicate(#arena_1039) #arena_1492 1492
+prt_are_in,1,1,5 duplicate(#arena_1039) #arena_1251 1251
+prt_are_in,1,1,5 duplicate(#arena_1039) #arena_1159 1159
+prt_are_in,1,1,5 duplicate(#arena_1039) #arena_7777 811
+
+- script npctime#arena -1,{
+
+OnStop:
+ stopnpctimer;
+ end;
+
+OnStart:
+ initnpctimer;
+ end;
+
+OnTimer2000:
+ mapannounce "prt_are_in","Givu : You should keep time with popping emotion icons~",1,0xFFCE00;
+ end;
+
+OnTimer5000:
+ mapannounce "prt_are_in","Emoticon : /lv",1,0xFFCE00;
+ end;
+
+OnTimer7000:
+ mapannounce "prt_are_in"," 3 ",1,0xFFCE00;
+ end;
+
+OnTimer8000:
+ mapannounce "prt_are_in"," 2 ",1,0xFFCE00;
+ end;
+
+OnTimer9000:
+ mapannounce "prt_are_in"," 1 ",1,0xFFCE00;
+ end;
+
+OnTimer10000:
+ mapannounce "prt_are_in"," ",1,0xFFCE00;
+ donpcevent "#arena_"+$@arenapic+"::OnHeart";
+ if($@arenapic == 6969)
+ {
+ donpcevent "#arena_ss_2::OnHeart";
+ donpcevent "#arena_ss_3::OnHeart";
+ donpcevent "#arena_ss_4::OnHeart";
+ }
+ end;
+
+OnTimer15000:
+ mapannounce "prt_are_in","Emoticon : /gawi",1,0xFFCE00;
+ end;
+
+OnTimer17000:
+ mapannounce "prt_are_in"," 3 ",1,0xFFCE00;
+ end;
+
+OnTimer18000:
+ mapannounce "prt_are_in"," 2 ",1,0xFFCE00;
+ end;
+
+OnTimer19000:
+ mapannounce "prt_are_in"," 1 ",1,0xFFCE00;
+ end;
+
+OnTimer20000:
+ mapannounce "prt_are_in"," ",1,0xFFCE00;
+ donpcevent "#arena_"+$@arenapic+"::OnSci";
+ if($@arenapic == 6969)
+ {
+ donpcevent "#arena_ss_2::OnSci";
+ donpcevent "#arena_ss_3::OnSci";
+ donpcevent "#arena_ss_4::OnSci";
+ }
+ end;
+
+OnTimer25000:
+ mapannounce "prt_are_in","Emoticon : /no1",1,0xFFCE00;
+ end;
+
+OnTimer27000:
+ mapannounce "prt_are_in"," 3 ",1,0xFFCE00;
+ end;
+
+OnTimer28000:
+ mapannounce "prt_are_in"," 2 ",1,0xFFCE00;
+ end;
+
+OnTimer29000:
+ mapannounce "prt_are_in"," 1 ",1,0xFFCE00;
+ end;
+
+OnTimer30000:
+ mapannounce "prt_are_in"," ",1,0xFFCE00;
+ donpcevent "#arena_"+$@arenapic+"::OnBest";
+ if($@arenapic == 6969)
+ {
+ donpcevent "#arena_ss_2::OnBest";
+ donpcevent "#arena_ss_3::OnBest";
+ donpcevent "#arena_ss_4::OnBest";
+ }
+ end;
+
+OnTimer35000:
+ mapannounce "prt_are_in","Emoticon : /huk",1,0xFFCE00;
+ end;
+
+OnTimer37000:
+ mapannounce "prt_are_in"," 3 ",1,0xFFCE00;
+ end;
+
+OnTimer38000:
+ mapannounce "prt_are_in"," 2 ",1,0xFFCE00;
+ end;
+
+OnTimer39000:
+ mapannounce "prt_are_in"," 1 ",1,0xFFCE00;
+ end;
+
+OnTimer40000:
+ mapannounce "prt_are_in"," ",1,0xFFCE00;
+ donpcevent "#arena_"+$@arenapic+"::OnOmg";
+ if($@arenapic == 6969)
+ {
+ donpcevent "#arena_ss_2::OnOmg";
+ donpcevent "#arena_ss_3::OnOmg";
+ donpcevent "#arena_ss_4::OnOmg";
+ }
+ end;
+
+OnTimer45000:
+ mapannounce "prt_are_in","Emoticon : /gg",1,0xFFCE00;
+ end;
+
+OnTimer47000:
+ mapannounce "prt_are_in"," 3 ",1,0xFFCE00;
+ end;
+
+OnTimer48000:
+ mapannounce "prt_are_in"," 2 ",1,0xFFCE00;
+ end;
+
+OnTimer49000:
+ mapannounce "prt_are_in"," 1 ",1,0xFFCE00;
+ end;
+
+OnTimer50000:
+ mapannounce "prt_are_in"," ",1,0xFFCE00;
+ donpcevent "#arena_"+$@arenapic+"::OnKik";
+ if($@arenapic == 6969)
+ {
+ donpcevent "#arena_ss_2::OnKik";
+ donpcevent "#arena_ss_3::OnKik";
+ donpcevent "#arena_ss_4::OnKik";
+ }
+ end;
+
+OnTimer55000:
+ mapannounce "prt_are_in","Emoticon : /kis",1,0xFFCE00;
+ end;
+
+OnTimer57000:
+ mapannounce "prt_are_in"," 3 ",1,0xFFCE00;
+ end;
+
+OnTimer58000:
+ mapannounce "prt_are_in"," 2 ",1,0xFFCE00;
+ end;
+
+OnTimer59000:
+ mapannounce "prt_are_in"," 1 ",1,0xFFCE00;
+ end;
+
+OnTimer60000:
+ mapannounce "prt_are_in"," ",1,0xFFCE00;
+ donpcevent "#arena_"+$@arenapic+"::OnKis";
+ if($@arenapic == 6969)
+ {
+ donpcevent "#arena_ss_2::OnKis";
+ donpcevent "#arena_ss_3::OnKis";
+ donpcevent "#arena_ss_4::OnKis";
+ }
+ end;
+
+OnTimer62000:
+ mapannounce "prt_are_in","Time is over. Thank you for using my services.",1,0xFFCE00;
+ movenpc "#arena_"+$@arenapic+"",1,1;
+ donpcevent "#arena_1039::OnInit";
+ set $arenapic,0;
+ stopnpctimer;
+ end;
+}
+
+sec_in02,72,171,3 script Picture Manager#arena 802,{
+
+ if (!getgmlevel()) end;
+
+ input .@arena;
+ if(!.@arena)
+ {
+ mes "[Picture Manager]";
+ mes "Command has been canceled.";
+ close;
+ }
+ else if(.@arena == 1357)
+ {
+ mes "[Picture Manager]";
+ mes "Would you like to reset Picture Reward variable to 0?";
+ next;
+ switch( select( "Cancel","Yes" ) )
+ {
+ case 1:
+ mes "[Picture Manager]";
+ mes "You have canceled your request.";
+ close;
+
+ case 2:
+ mes "[Picture Manager]";
+ mes "Picture rewarding reseted.";
+ set $arenapic,0;
+ close;
+ }
+ }
+ mes "[Picture Manager]";
+ mes "Password is incorrect.";
+ close;
+}
+
+sec_in02,76,176,5 script Live Broadcast#arena 802,{
+
+ mes "[Live Broadcast]";
+ mes "Currently there are "+getmapusers("force_1-1")+" people in lvl 50s map.";
+ mes "Currently there are "+getmapusers("force_2-1")+" people in lvl 60s map.";
+ mes "Currently there are "+getmapusers("force_3-1")+" people in lvl 70s map.";
+ mes "Currently there are "+getmapusers("force_4-1")+" people in lvl 80s map.";
+ mes "Currently there are "+getmapusers("force_1-2")+" people in party map.";
+ mes "Currently there are "+getmapusers("arena_room")+" people in the waiting room.";
+ close;
+}
+
+function script Func_Are_Rew {
+
+ mes "[Givu]";
+ mes "Would you like to exchange your arena points with "+getitemname(getarg(0))+"?";
+ mes "You can exchange ^3131FF"+getarg(2)+" arena points with "+getarg(1)+" "+getitemname(getarg(0))+"^000000.";
+ mes "If you wish to cancel, please enter 0. If you don't, please enter how many ^3131FFtimes^000000 of arena points you wish to spend.";
+ next;
+ input .@reward;
+ if(!.@reward)
+ {
+ mes "[Givu]";
+ mes "You have canceled your request.";
+ close;
+
+ }
+ else if(.@reward > 1500)
+ {
+ mes "[Givu]";
+ mes "You have exceeded the maximum capacity.";
+ close;
+ }
+ if(arena_point < .@reward * getarg(2))
+ {
+ mes "[Givu]";
+ mes "You do not have enough arena points.";
+ mes "Please check the total amount of arena points you have.";
+ close;
+ }
+ set arena_point,arena_point - (.@reward * getarg(2));
+ getitem getarg(0),.@reward * getarg(1);
+ mes "[Givu]";
+ mes "Thank you, please come again.";
+ close;
+}
diff --git a/npc/pre-re/other/mercenary_rent.txt b/npc/pre-re/other/mercenary_rent.txt
new file mode 100644
index 000000000..26520994b
--- /dev/null
+++ b/npc/pre-re/other/mercenary_rent.txt
@@ -0,0 +1,17 @@
+//===== rAthena Script =======================================
+//= Mercenary related NPCs
+//===== By: ==================================================
+//= Daegaladh
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= Sells Lancer, Sword, and Archer mercenaries,
+//= along with related mercenary items.
+//===== Additional Comments: =================================
+//= 1.0 First version. [Daegaladh]
+//============================================================
+
+izlude,47,139,5 duplicate(Mercenary Manager#main) Mercenary Manager#Sword 734
+izlude,56,139,4 duplicate(MercMerchant) Mercenary Merchant#Sword 892
diff --git a/npc/pre-re/quests/collection/quest_alligator.txt b/npc/pre-re/quests/collection/quest_alligator.txt
new file mode 100644
index 000000000..263ea2658
--- /dev/null
+++ b/npc/pre-re/quests/collection/quest_alligator.txt
@@ -0,0 +1,242 @@
+//===== rAthena Script =======================================
+//= iRO Repeatable EXP Quests.
+//===== By: ==================================================
+//= L0ne_W0lf
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Aegis Conversion]
+//= Added Monster Killing quests.
+//= Repeatable EXP Quest (Anolian Skins)
+//===== Additional Comments: =================================
+//= 1.0 First version.
+//============================================================
+
+cmd_fild01,362,256,3 script Cuir#Gator_Hunt 106,{
+ if (checkquest(60119) != -1) {
+ if (checkquest(60119,HUNTING) != 2 ) {
+ mes "[Cuir]";
+ mes "Have you finished hunting the 50 Alligators?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Cuir]";
+ mes "Hmm, I don't think you've hunted 50 yet...";
+ close;
+ case 2:
+ mes "[Cuir]";
+ mes "Remember, I need help hunting Alligators so go and hunt 50 of them.";
+ close;
+ case 3:
+ mes "[Cuir]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Cuir]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60119;
+ close;
+ case 2:
+ mes "[Cuir]";
+ mes "Please kill 50 Alligators.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Cuir]";
+ mes "Amazing, you did that with speed.";
+ getexp 68950,43300;
+ erasequest 60119;
+ close;
+ }
+ }
+ if (checkquest(60120) != -1) {
+ if (checkquest(60120,HUNTING) != 2 ) {
+ mes "[Cuir]";
+ mes "Have you finished hunting the 50 Alligators?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Cuir]";
+ mes "Hmm, I don't think you've hunted 100 yet...";
+ close;
+ case 2:
+ mes "[Cuir]";
+ mes "Remember, I need help hunting Alligators so go and hunt 100 of them.";
+ close;
+ case 3:
+ mes "[Cuir]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Cuir]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60120;
+ close;
+ case 2:
+ mes "[Cuir]";
+ mes "Please kill 100 Alligators.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Cuir]";
+ mes "Amazing, you did that with speed.";
+ getexp 68950,43300;
+ getexp 68950,43300;
+ erasequest 60120;
+ close;
+ }
+ }
+ if (checkquest(60121) != -1) {
+ if (checkquest(60121,HUNTING) != 2 ) {
+ mes "[Cuir]";
+ mes "Have you finished hunting the 150 Alligators?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Cuir]";
+ mes "Hmm, I don't think you've hunted 150 yet...";
+ close;
+ case 2:
+ mes "[Cuir]";
+ mes "Remember, I need help hunting Alligators so go and hunt 150 of them.";
+ close;
+ case 3:
+ mes "[Cuir]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Cuir]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60121;
+ close;
+ case 2:
+ mes "[Cuir]";
+ mes "Please kill 150 Alligators.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Cuir]";
+ mes "Amazing, you did that with speed.";
+ getexp 68950,43300;
+ getexp 68950,43300;
+ getexp 68950,43300;
+ erasequest 60121;
+ close;
+ }
+ }
+ //for minimum level
+ if (BaseLevel > 44) {
+ //for maximum level
+ if (BaseLevel < 81) {
+ mes "[Cuir]";
+ mes "You look like a sturdy adventurer!";
+ next;
+ mes "[Cuir]";
+ mes "I was sent here to minimize the Alligator population but the task is proving to be quite difficult for just me to complete.";
+ mes "How'd you like to help me out?";
+ next;
+ switch(select("Sure:No")) {
+ case 1:
+ mes "[Cuir]";
+ mes "You can help me out by either hunting Alligators or by gathering items for me.";
+ mes "Which would you like to do?";
+ next;
+ switch(select("Gather Items:Hunt Alligators:Cancel")) {
+ case 1:
+ // Item turn in
+ mes "[Cuir]";
+ mes "If you can bring me ^00CC0020 Anolian Skins^000000. I'll help you get stronger.";
+ next;
+ switch(select("I have the Anolian Skins:Gators bite!")) {
+ case 1:
+ /*
+ if (checkweight(503,10) == 0) {
+ mes "[Cuir]";
+ mes "Hey, it looks like that the weight on";
+ mes "your back will crush you. Come back";
+ mes "after you have lost some weight.";
+ close;
+ }
+ */
+ if (countitem(7003) > 19) {
+ mes "[Cuir]";
+ mes "Thank you for the ^00CE0020 Anolian Skins^000000!";
+ mes "I hope you can continue to help me collect these skins.";
+ mes "The armor creators around the world are clamoring for them.";
+ delitem 7003,20; //Anolian_Skin
+ getexp 68950,43300;
+ //getitem 503,10; //Yellow_Potion
+ close;
+ }
+ else {
+ mes "[Cuir]";
+ mes "I know a gator skin when I see it and I don't see ^00CE0020 Anolian Skins^000000.";
+ close;
+ }
+ case 2:
+ mes "[Cuir]";
+ mes "I need ^00CE0020 Anolian Skins^000000.";
+ close;
+ }
+ case 2:
+ // Kill Count Quest
+ mes "[Cuir]";
+ mes "Ah, ok I think you can help me out by hunting some Alligators.";
+ mes "How many would you like to hunt?";
+ next;
+ switch(select("50 Alligators:100 Alligators:150 Alligators")) {
+ case 1:
+ mes "[Cuir]";
+ mes "Come back when you've finished your task and I will give you a small reward.";
+ setquest 60119;
+ close;
+ case 2:
+ mes "[Cuir]";
+ mes "Come back when you've finished your task and I will give you a small reward.";
+ setquest 60120;
+ close;
+ case 3:
+ mes "[Cuir]";
+ mes "Come back when you've finished your task and I will give you a small reward.";
+ setquest 60121;
+ close;
+ }
+ case 3:
+ mes "[Cuir]";
+ mes "If you change your mind, please come back.";
+ close;
+ }
+ case 2:
+ mes "[Cuir]";
+ mes "If you change your mind, please come back.";
+ close;
+ }
+ }
+ else {
+ mes "[Cuir]";
+ mes "You are too powerful for this task, I need the skins in fair condition, not exploded!";
+ next;
+ close;
+ }
+ }
+ else {
+ mes "[Cuir]";
+ mes "You certainly are brave, but bravery turns to foolishness if you continue going East.";
+ mes "Perhaps when you are stronger you and I can do business.";
+ close;
+ }
+}
diff --git a/npc/pre-re/quests/collection/quest_caramel.txt b/npc/pre-re/quests/collection/quest_caramel.txt
new file mode 100644
index 000000000..4cb379b71
--- /dev/null
+++ b/npc/pre-re/quests/collection/quest_caramel.txt
@@ -0,0 +1,242 @@
+//===== rAthena Script =======================================
+//= iRO Repeatable EXP Quests.
+//===== By: ==================================================
+//= L0ne_W0lf
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Aegis Conversion]
+//= Added Monster Killing quests.
+//= Repeatable EXP Quest (Porcupine Quills)
+//===== Additional Comments: =================================
+//= 1.0 First version.
+//============================================================
+
+mjolnir_01,296,29,6 script Yullo#Caramel_Hunt 95,{
+ if (checkquest(60116) != -1) {
+ if (checkquest(60116,HUNTING) != 2 ) {
+ mes "[Yullo]";
+ mes "Have you finished hunting the 50 Caramels?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Yullo]";
+ mes "Hmm, I don't think you've hunted 50 yet...";
+ close;
+ case 2:
+ mes "[Yullo]";
+ mes "Remember, I need help hunting Caramels so go and hunt 50 of them.";
+ close;
+ case 3:
+ mes "[Yullo]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Yullo]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60116;
+ close;
+ case 2:
+ mes "[Yullo]";
+ mes "Please kill 50 Caramels.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Yullo]";
+ mes "Amazing, you did that with speed.";
+ getexp 10425,6272;
+ erasequest 60116;
+ close;
+ }
+ }
+ if (checkquest(60117) != -1) {
+ if (checkquest(60117,HUNTING) != 2 ) {
+ mes "[Yullo]";
+ mes "Have you finished hunting the 50 Caramels?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Yullo]";
+ mes "Hmm, I don't think you've hunted 100 yet...";
+ close;
+ case 2:
+ mes "[Yullo]";
+ mes "Remember, I need help hunting Caramels so go and hunt 100 of them.";
+ close;
+ case 3:
+ mes "[Yullo]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Yullo]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60117;
+ close;
+ case 2:
+ mes "[Yullo]";
+ mes "Please kill 100 Caramels.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Yullo]";
+ mes "Amazing, you did that with speed.";
+ getexp 10425,6272;
+ getexp 10425,6272;
+ erasequest 60117;
+ close;
+ }
+ }
+ if (checkquest(60118) != -1) {
+ if (checkquest(60118,HUNTING) != 2 ) {
+ mes "[Yullo]";
+ mes "Have you finished hunting the 150 Caramels?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Yullo]";
+ mes "Hmm, I don't think you've hunted 150 yet...";
+ close;
+ case 2:
+ mes "[Yullo]";
+ mes "Remember, I need help hunting Caramels so go and hunt 150 of them.";
+ close;
+ case 3:
+ mes "[Yullo]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Yullo]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60118;
+ close;
+ case 2:
+ mes "[Yullo]";
+ mes "Please kill 150 Caramels.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Yullo]";
+ mes "Amazing, you did that with speed.";
+ getexp 10425,6272;
+ getexp 10425,6272;
+ getexp 10425,6272;
+ erasequest 60118;
+ close;
+ }
+ }
+ //for minimum level
+ if (BaseLevel > 23) {
+ //for maximum level
+ if (BaseLevel < 61) {
+ mes "[Yullo]";
+ mes "I can't, no more and I mean it.";
+ mes "Look at me I am serious I can't kill any more of these things.";
+ next;
+ switch(select("What things?:Ignore.")) {
+ case 1:
+ mes "[Yullo]";
+ mes "You know what, here is an idea.";
+ mes "You can gather them and I can give you a reward for your efforts!";
+ next;
+ switch(select("Gather Items:Hunt Caramels:Cancel")) {
+ case 1:
+ // Item turn in
+ mes "[Yullo]";
+ mes "Ok, so I need 25 Porcupine";
+ mes "Quill's.";
+ mes "Please tell me you have some or can";
+ mes "help me";
+ next;
+ switch(select("I have Porcupine Quills:Well I don't think I can help.")) {
+ case 1:
+ /*
+ if (checkweight(501,10) == 0) {
+ mes "[Yullo]";
+ mes "Hey, it looks like that the weight on";
+ mes "your back will crush you. Come back";
+ mes "after you have lost some weight.";
+ close;
+ }
+ */
+ if (countitem(1027) > 24) {
+ mes "[Yullo]";
+ mes "Great, you have enough!";
+ mes "Just like I promised a little reward.";
+ delitem 1027,25; //Porcupine_Spike
+ getexp 10425,6272;
+ //getitem 501,10; //Red_Potion
+ close;
+ }
+ else {
+ mes "[Yullo]";
+ mes "Where are the Porcupine Quills?";
+ mes "You think I wouldn't notice?";
+ close;
+ }
+ case 2:
+ mes "[Yullo]";
+ mes "I need ^00CE0025 Porcupine Quills^000000.";
+ close;
+ }
+ case 2:
+ // Kill Count Quest
+ mes "[Yullo]";
+ mes "Ah, ok I think you can help me out by hunting some Caramels.";
+ mes "How many would you like to hunt?";
+ next;
+ switch(select("50 Caramels:100 Caramels:150 Caramels")) {
+ case 1:
+ mes "[Yullo]";
+ mes "Come back when you've finished your task and I will give you a small reward.";
+ setquest 60116;
+ close;
+ case 2:
+ mes "[Yullo]";
+ mes "Come back when you've finished your task and I will give you a small reward.";
+ setquest 60117;
+ close;
+ case 3:
+ mes "[Yullo]";
+ mes "Come back when you've finished your task and I will give you a small reward.";
+ setquest 60118;
+ close;
+ }
+ case 3:
+ mes "[Yullo]";
+ mes "If you change your mind, please come back.";
+ close;
+ }
+ case 2:
+ mes "[Yullo]";
+ mes "If you change your mind, please come back.";
+ close;
+ }
+ }
+ else {
+ mes "[Yullo]";
+ mes "Hello, my name is Yullo.";
+ mes "Now wait a minute, are you not a little too high of level for this?";
+ close;
+ }
+ }
+ else {
+ mes "[Yullo]";
+ mes "Hmm, this maybe a little much of a request for you.";
+ mes "Come back when you are taller and stronger.";
+ close;
+ }
+}
diff --git a/npc/pre-re/quests/collection/quest_coco.txt b/npc/pre-re/quests/collection/quest_coco.txt
new file mode 100644
index 000000000..0915d3988
--- /dev/null
+++ b/npc/pre-re/quests/collection/quest_coco.txt
@@ -0,0 +1,243 @@
+//===== rAthena Script =======================================
+//= iRO Repeatable EXP Quests.
+//===== By: ==================================================
+//= L0ne_W0lf
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Aegis Conversion]
+//= Added Monster Killing quests.
+//= Repeatable EXP Quest (Acorns)
+//===== Additional Comments: =================================
+//= 1.0 First version.
+//============================================================
+
+mjolnir_01,293,20,3 script Nutters#Coco_Hunt 779,{
+ if (checkquest(60113) != -1) {
+ if (checkquest(60113,HUNTING) != 2 ) {
+ mes "[Nutters]";
+ mes "Have you finished hunting the 50 Cocos?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Nutters]";
+ mes "Hmm, I don't think you've hunted 50 yet...";
+ close;
+ case 2:
+ mes "[Nutters]";
+ mes "Remember, I need help hunting Cocos so go and hunt 50 of them.";
+ close;
+ case 3:
+ mes "[Nutters]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Nutters]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60113;
+ close;
+ case 2:
+ mes "[Nutters]";
+ mes "Please kill 50 Cocos.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Nutters]";
+ mes "Amazing, you did that with speed.";
+ getexp 3600,3905;
+ erasequest 60113;
+ close;
+ }
+ }
+ if (checkquest(60114) != -1) {
+ if (checkquest(60114,HUNTING) != 2 ) {
+ mes "[Nutters]";
+ mes "Have you finished hunting the 50 Cocos?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Nutters]";
+ mes "Hmm, I don't think you've hunted 100 yet...";
+ close;
+ case 2:
+ mes "[Nutters]";
+ mes "Remember, I need help hunting Cocos so go and hunt 100 of them.";
+ close;
+ case 3:
+ mes "[Nutters]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Nutters]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60114;
+ close;
+ case 2:
+ mes "[Nutters]";
+ mes "Please kill 100 Cocos.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Nutters]";
+ mes "Amazing, you did that with speed.";
+ getexp 3600,3905;
+ getexp 3600,3905;
+ erasequest 60114;
+ close;
+ }
+ }
+ if (checkquest(60115) != -1) {
+ if (checkquest(60115,HUNTING) != 2 ) {
+ mes "[Nutters]";
+ mes "Have you finished hunting the 150 Cocos?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Nutters]";
+ mes "Hmm, I don't think you've hunted 150 yet...";
+ close;
+ case 2:
+ mes "[Nutters]";
+ mes "Remember, I need help hunting Cocos so go and hunt 150 of them.";
+ close;
+ case 3:
+ mes "[Nutters]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Nutters]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60115;
+ close;
+ case 2:
+ mes "[Nutters]";
+ mes "Please kill 150 Cocos.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Nutters]";
+ mes "Amazing, you did that with speed.";
+ getexp 3600,3905;
+ getexp 3600,3905;
+ getexp 3600,3905;
+ erasequest 60115;
+ close;
+ }
+ }
+ //for minimum level
+ if (BaseLevel > 17) {
+ //for maximum level
+ if (BaseLevel < 60) {
+ mes "[Nutters]";
+ mes "I..I just can't seem to find any.";
+ mes "Pesky Coco's have hidden all the Acorns.";
+ mes "Do you think you could help me?";
+ next;
+ switch(select("Sure:No")) {
+ case 1:
+ mes "[Nutters]";
+ mes "Oh, that's great! I knew I could count on you, just from looking at you!";
+ next;
+ switch(select("Gather Items:Hunt Cocos:Cancel")) {
+ case 1:
+ // Item turn in
+ mes "[Nutters]";
+ mes "Can you help me find ^00CE0025 Acorns^000000.";
+ mes "I will reward you with much if you can.";
+ next;
+ switch(select("I have 25 Acorns:Please come again?")) {
+ case 1:
+ /*
+ if (checkweight(502,5) == 0) {
+ mes "[Nutters]";
+ mes "Hey, it looks like that the weight on";
+ mes "your back will crush you. Come back";
+ mes "after you have lost some weight.";
+ close;
+ }
+ */
+ if (countitem(1026) > 24) {
+ mes "[Nutters]";
+ mes "Oh great you found out where they were hiding them.";
+ mes "Gimme Gimme!!!";
+ next;
+ mes "[Nutters]";
+ mes "Oh that's right, sorry I just love roasting Acorns. Mmm.";
+ mes "Here is what I promised you.";
+ delitem 1026,25; //Acorn
+ getexp 3600,3905;
+ //getitem 502,5; //Orange_Potion
+ close;
+ }
+ else {
+ mes "[Nutters]";
+ mes "Where are my ^00CE00Acorns^000000?";
+ mes "Hey, I'm not playing, you better not hold out on me.";
+ close;
+ }
+ case 2:
+ mes "[Nutters]";
+ mes "I need ^00CE0025 Acorns^000000.";
+ close;
+ }
+ case 2:
+ // Kill Count Quest
+ mes "[Nutters]";
+ mes "Ah, ok I think you can help me out by hunting some Cocos.";
+ mes "How many would you like to hunt?";
+ next;
+ switch(select("50 Cocos:100 Cocos:150 Cocos")) {
+ case 1:
+ mes "[Nutters]";
+ mes "Come back when you've finished your task and I will give you a small reward.";
+ setquest 60113;
+ close;
+ case 2:
+ mes "[Nutters]";
+ mes "Come back when you've finished your task and I will give you a small reward.";
+ setquest 60114;
+ close;
+ case 3:
+ mes "[Nutters]";
+ mes "Come back when you've finished your task and I will give you a small reward.";
+ setquest 60115;
+ close;
+ }
+ case 3:
+ mes "[Nutters]";
+ mes "If you change your mind, please come back.";
+ close;
+ }
+ case 2:
+ mes "[Nutters]";
+ mes "If you change your mind, please come back.";
+ close;
+ }
+ }
+ else {
+ mes "[Nutters]";
+ mes "You are much to strong to be fighting these things!";
+ close;
+ }
+ }
+ else {
+ mes "[Nutters]";
+ mes "You are just too small to fight these things for me.";
+ mes "Can you get a little taller then return?";
+ close;
+ }
+}
diff --git a/npc/pre-re/quests/collection/quest_creamy.txt b/npc/pre-re/quests/collection/quest_creamy.txt
new file mode 100644
index 000000000..4a1844719
--- /dev/null
+++ b/npc/pre-re/quests/collection/quest_creamy.txt
@@ -0,0 +1,248 @@
+//===== rAthena Script =======================================
+//= iRO Repeatable EXP Quests.
+//===== By: ==================================================
+//= L0ne_W0lf
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Aegis Conversion]
+//= Added Monster Killing quests. (Dialog is semi-custom)
+//= Repeatable EXP Quest (Powder of Butterfly)
+//===== Additional Comments: =================================
+//= 1.0 First version.
+//============================================================
+
+prt_fild04,356,148,3 script Laertes#Creamy_Hunt 798,{
+ if (checkquest(60122) != -1) {
+ if (checkquest(60122,HUNTING) != 2 ) {
+ mes "[Laertes]";
+ mes "Have you finished hunting the 50 Creamys?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Laertes]";
+ mes "Hmm, I don't think you've hunted 50 yet...";
+ close;
+ case 2:
+ mes "[Laertes]";
+ mes "Remember, I need help hunting Creamys so go and hunt 50 of them.";
+ close;
+ case 3:
+ mes "[Laertes]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Laertes]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60122;
+ close;
+ case 2:
+ mes "[Laertes]";
+ mes "Please kill 50 Creamys.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Laertes]";
+ mes "Amazing, you did that with speed.";
+ getexp 2950,1125;
+ erasequest 60122;
+ close;
+ }
+ }
+ if (checkquest(60123) != -1) {
+ if (checkquest(60123,HUNTING) != 2 ) {
+ mes "[Laertes]";
+ mes "Have you finished hunting the 50 Creamys?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Laertes]";
+ mes "Hmm, I don't think you've hunted 100 yet...";
+ close;
+ case 2:
+ mes "[Laertes]";
+ mes "Remember, I need help hunting Creamys so go and hunt 100 of them.";
+ close;
+ case 3:
+ mes "[Laertes]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Laertes]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60123;
+ close;
+ case 2:
+ mes "[Laertes]";
+ mes "Please kill 100 Creamys.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Laertes]";
+ mes "Amazing, you did that with speed.";
+ getexp 2950,1125;
+ getexp 2950,1125;
+ erasequest 60123;
+ close;
+ }
+ }
+ if (checkquest(60124) != -1) {
+ if (checkquest(60124,HUNTING) != 2 ) {
+ mes "[Laertes]";
+ mes "Have you finished hunting the 150 Creamys?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Laertes]";
+ mes "Hmm, I don't think you've hunted 150 yet...";
+ close;
+ case 2:
+ mes "[Laertes]";
+ mes "Remember, I need help hunting Creamys so go and hunt 150 of them.";
+ close;
+ case 3:
+ mes "[Laertes]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Laertes]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60124;
+ close;
+ case 2:
+ mes "[Laertes]";
+ mes "Please kill 150 Creamys.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Laertes]";
+ mes "Amazing, you did that with speed.";
+ getexp 2950,1125;
+ getexp 2950,1125;
+ getexp 2950,1125;
+ erasequest 60124;
+ close;
+ }
+ }
+ //for minimum level
+ if (BaseLevel > 14) {
+ //for maximum level
+ if (BaseLevel < 45) {
+ mes "[Laertes]";
+ mes "Good Morning!";
+ mes "Perhaps you could help me?";
+ next;
+ switch(select("Sure:No")) {
+ case 1:
+ mes "[Laertes]";
+ mes "I work for an apothecary in Prontera.";
+ mes "I come here to collect materials for medicine.";
+ next;
+ switch(select("Gather Items:Hunt Creamys:Cancel")) {
+ case 1:
+ // Item turn in
+ mes "[Laertes]";
+ mes "I need to have a good supply of ^FF0000Powder of Butterfly^000000";
+ next;
+ switch(select("I have Powder of Butterfly:What did you need?")) {
+ case 1:
+ /*
+ if (checkweight(502,5) == 0) {
+ mes "[Laertes]";
+ mes "Hey, it looks like that the weight on";
+ mes "your back will crush you. Come back";
+ mes "after you have lost some weight.";
+ close;
+ }
+ */
+ if (countitem(924) > 24) {
+ mes "[Laertes]";
+ mes "Hey, thank you again.";
+ mes "Here you go, as promised.";
+ delitem 924,25; //Powder_Of_Butterfly
+ getexp 2950,1125;
+ //getitem 502,5; //Orange_Potion
+ close;
+ }
+ else {
+ mes "[Laertes]";
+ mes "It doesn't look like you have enough.";
+ next;
+ mes "[Laertes]";
+ mes "If you bring me ^FF000025 Powder of Butterfly^000000,";
+ mes "I will give you some medical supplies.";
+ close;
+ }
+ case 2:
+ mes "[Laertes]";
+ mes "If you bring me ^FF000025 Powder of Butterfly^000000,";
+ mes "I will give you some medical supplies.";
+ close;
+ }
+ case 2:
+ // Kill Count Quest
+ mes "[Laertes]";
+ mes "Ah, ok I think you can help me out by hunting some Creamys.";
+ mes "How many would you like to hunt?";
+ next;
+ switch(select("50 Creamys:100 Creamys:150 Creamys")) {
+ case 1:
+ mes "[Laertes]";
+ mes "Come back when you've finished your task and I will give you a small reward.";
+ setquest 60122;
+ close;
+ case 2:
+ mes "[Laertes]";
+ mes "Come back when you've finished your task and I will give you a small reward.";
+ setquest 60123;
+ close;
+ case 3:
+ mes "[Laertes]";
+ mes "Come back when you've finished your task and I will give you a small reward.";
+ setquest 60124;
+ close;
+ }
+ case 3:
+ mes "[Laertes]";
+ mes "If you change your mind, please come back.";
+ close;
+ }
+ case 2:
+ mes "[Laertes]";
+ mes "If you change your mind, please come back.";
+ close;
+ }
+ }
+ else {
+ mes "[Laertes]";
+ mes "Good Morning!";
+ next;
+ mes "[Laertes]";
+ mes "I work for an apothecary in Prontera";
+ mes "I come here to collect materials for medicine.";
+ close;
+ }
+ }
+ else {
+ mes "[Laertes]";
+ mes "Your level is too low!";
+ next;
+ mes "[Laertes]";
+ mes "Go kill more Porings!";
+ close;
+ }
+}
diff --git a/npc/pre-re/quests/collection/quest_demonpungus.txt b/npc/pre-re/quests/collection/quest_demonpungus.txt
new file mode 100644
index 000000000..7e659e1ca
--- /dev/null
+++ b/npc/pre-re/quests/collection/quest_demonpungus.txt
@@ -0,0 +1,244 @@
+//===== rAthena Script =======================================
+//= iRO Repeatable EXP Quests.
+//===== By: ==================================================
+//= L0ne_W0lf
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Aegis Conversion]
+//= Added Monster Killing quests.
+//= Repeatable EXP Quest (Bacillus)
+//===== Additional Comments: =================================
+//= 1.0 First version.
+//============================================================
+
+ein_fild01,43,249,0 script Local Villager#hunt 898,{
+ if (checkquest(60125) != -1) {
+ if (checkquest(60125,HUNTING) != 2 ) {
+ mes "[Local Villager]";
+ mes "Have you finished hunting the 50 Demon Pungus?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Local Villager]";
+ mes "Hmm, I don't think you've hunted 50 yet...";
+ close;
+ case 2:
+ mes "[Local Villager]";
+ mes "Remember, I need help hunting Demon Pungus so go and hunt 50 of them.";
+ close;
+ case 3:
+ mes "[Local Villager]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Local Villager]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60125;
+ close;
+ case 2:
+ mes "[Local Villager]";
+ mes "Please kill 50 Demon Pungus.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Local Villager]";
+ mes "Amazing, you did that with speed.";
+ getexp 250266,144452;
+ erasequest 60125;
+ close;
+ }
+ }
+ if (checkquest(60126) != -1) {
+ if (checkquest(60126,HUNTING) != 2 ) {
+ mes "[Local Villager]";
+ mes "Have you finished hunting the 50 Demon Pungus?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Local Villager]";
+ mes "Hmm, I don't think you've hunted 100 yet...";
+ close;
+ case 2:
+ mes "[Local Villager]";
+ mes "Remember, I need help hunting Demon Pungus so go and hunt 100 of them.";
+ close;
+ case 3:
+ mes "[Local Villager]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Local Villager]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60126;
+ close;
+ case 2:
+ mes "[Local Villager]";
+ mes "Please kill 100 Demon Pungus.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Local Villager]";
+ mes "Amazing, you did that with speed.";
+ getexp 250266,144452;
+ getexp 250266,144452;
+ erasequest 60126;
+ close;
+ }
+ }
+ if (checkquest(60127) != -1) {
+ if (checkquest(60127,HUNTING) != 2 ) {
+ mes "[Local Villager]";
+ mes "Have you finished hunting the 150 Demon Pungus?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Local Villager]";
+ mes "Hmm, I don't think you've hunted 150 yet...";
+ close;
+ case 2:
+ mes "[Local Villager]";
+ mes "Remember, I need help hunting Demon Pungus so go and hunt 150 of them.";
+ close;
+ case 3:
+ mes "[Local Villager]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Local Villager]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60127;
+ close;
+ case 2:
+ mes "[Local Villager]";
+ mes "Please kill 150 Demon Pungus.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Local Villager]";
+ mes "Amazing, you did that with speed.";
+ getexp 250266,144452;
+ getexp 250266,144452;
+ getexp 250266,144452;
+ erasequest 60127;
+ close;
+ }
+ }
+ //for minimum level
+ if (BaseLevel > 59) {
+ //for maximum level
+ if (BaseLevel < 75) {
+ mes "[Local Villager]";
+ mes "Hey, you there. Yeah you!";
+ mes "Do you think you can help me with something?";
+ next;
+ switch(select("Sure:No")) {
+ case 1:
+ mes "[Local Villager]";
+ mes "I am trying to make my way through but I can't seem to get past these Demon Pungus.";
+ next;
+ switch(select("Gather Items:Hunt Demon Pungus:Cancel")) {
+ case 1:
+ // Item turn in
+ mes "[Local Villager]";
+ mes "Can you help by collecting ^FF0000Bacillus^000000?";
+ mes "I will reward you for helping clear this out for me.";
+ next;
+ switch(select("I have Bacillus:What did you need?")) {
+ case 1:
+ /*
+ if (checkweight(504,10) == 0) {
+ mes "[Local Villager]";
+ mes "Hey, it looks like that the weight on";
+ mes "your back will crush you. Come back";
+ mes "after you have lost some weight.";
+ close;
+ }
+ */
+ if (countitem(7119) > 49) {
+ mes "[Local Villager]";
+ mes "I had my doubts, but you have proven me wrong.";
+ delitem 7119,50; //Spawns
+ getexp 250266,144452;
+ //getitem 504,10; //White_Potion
+ close;
+ }
+ else {
+ mes "[Local Villager]";
+ mes "It doesn't look like you have enough.";
+ next;
+ mes "[Local Villager]";
+ mes "I need to see that you have gathered ^FF000050 Bacillus^000000, and then I can reward you.";
+ close;
+ }
+ case 2:
+ mes "[Local Villager]";
+ mes "I need to see that you have gathered ^FF000050 Bacillus^000000, and then I can reward you.";
+ close;
+ }
+ case 2:
+ // Kill Count Quest
+ mes "[Local Villager]";
+ mes "Ah, ok I think you can help me out by hunting some Demon Pungus.";
+ mes "How many would you like to hunt?";
+ next;
+ switch(select("50 Demon Pungus:100 Demon Pungus:150 Demon Pungus")) {
+ case 1:
+ mes "[Local Villager]";
+ mes "Come back when you've finished your task and I will give you a small reward.";
+ setquest 60125;
+ close;
+ case 2:
+ mes "[Local Villager]";
+ mes "Come back when you've finished your task and I will give you a small reward.";
+ setquest 60126;
+ close;
+ case 3:
+ mes "[Local Villager]";
+ mes "Come back when you've finished your task and I will give you a small reward.";
+ setquest 60127;
+ close;
+ }
+ case 3:
+ mes "[Local Villager]";
+ mes "If you change your mind, please come back.";
+ close;
+ }
+ case 2:
+ mes "[Local Villager]";
+ mes "If you change your mind, please come back.";
+ close;
+ }
+ }
+ else {
+ mes "[Local Villager]";
+ mes "Um, um. I don't think..";
+ next;
+ mes "[Local Villager]";
+ mes "Yeah, sorry I can't talk right now.";
+ close;
+ }
+ }
+ else {
+ mes "[Local Villager]";
+ mes "Its amazing, truly it is.";
+ mes "I just wish I could get through this all.";
+ close;
+ }
+}
+
+
diff --git a/npc/pre-re/quests/collection/quest_disguiseloliruri.txt b/npc/pre-re/quests/collection/quest_disguiseloliruri.txt
new file mode 100644
index 000000000..42ff4800c
--- /dev/null
+++ b/npc/pre-re/quests/collection/quest_disguiseloliruri.txt
@@ -0,0 +1,150 @@
+//===== rAthena Script =======================================
+//= iRO Repeatable EXP Quests.
+//===== By: ==================================================
+//= Masao
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= Custom Version.
+//= Repeatable EXP Quest : Kill 50 Disguise or Loli Ruri.
+//===== Additional Comments: =================================
+//= 1.0 First version.
+//============================================================
+
+nif_fild02,332,327,4 script Deadman 795,{
+
+ if (checkquest(60173) != -1) {
+ if (checkquest(60173,HUNTING) != 2 ) {
+ mes "[Deadman]";
+ mes "Have you finished hunting the 50 Disguise?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Deadman]";
+ mes "Hmm, I don't think you've hunted 50 yet.";
+ close;
+ case 2:
+ mes "[Deadman]";
+ mes "Remember, I need help hunting Disguise so go and hunt 50 of them.";
+ close;
+ case 3:
+ mes "[Deadman]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Deadman]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60173;
+ close;
+ case 2:
+ mes "[Deadman]";
+ mes "Please kill 50 Disguise in order to make this a Place were people can go to and gather Experience.";
+ close;
+ }
+ }
+ }
+ mes "[Deadman]";
+ mes "Amazing, you did that with speed.";
+ getexp 140600,95800;
+ erasequest 60173;
+ close;
+ }
+ if (checkquest(60176) != -1) {
+ if (checkquest(60176,HUNTING) != 2 ) {
+ mes "[Deadman]";
+ mes "Have you finished hunting the 50 Loli Ruri?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Deadman]";
+ mes "Hmm, I don't think you've hunted 50 yet.";
+ close;
+ case 2:
+ mes "[Deadman]";
+ mes "Remember, I need help hunting Loli Ruri so go and hunt 50 of them.";
+ close;
+ case 3:
+ mes "[Deadman]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Deadman]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60176;
+ close;
+ case 2:
+ mes "[Deadman]";
+ mes "Please kill 50 Loli Ruri in order to make this a Place were people can go to and gather Experience.";
+ close;
+ }
+ }
+ }
+ mes "[Deadman]";
+ mes "Amazing, you did that with speed.";
+ getexp 332000,239500;
+ erasequest 60176;
+ close;
+ }
+ if ((BaseLevel > 59) && (BaseLevel < 99)) {
+ mes "[Deadman]";
+ mes "Oh great!";
+ mes "You are here to help me right?";
+ mes "If not, i don't know what to do with the Monsters in this Place!";
+ next;
+ switch(select("Sure:No")) {
+ case 1:
+ mes "[Deadman]";
+ mes "Great! I knew the moment i saw you that i can count on you!";
+ mes "I need you to reduce the Amount of Monsters which are currently rampaging on this Map!";
+ mes "There are to many Disguise and Loli Ruri around, which makes it impossible for the lower level players to gain good experience here.";
+ next;
+ mes "[Deadman]";
+ mes "So, which of those Monsters would you like to hunt for me?";
+ next;
+ switch(select("Disguise:Loli Ruri:Cancel")) {
+ case 1:
+ if(BaseLevel > 90){
+ mes "[Deadman]";
+ mes "Thank you for your great help with the Disguise!";
+ mes "Currently the Situation is stable and i'm not in need of your help anymore to kill them.";
+ close;
+ }
+ mes "[Deadman]";
+ mes "Kill 50 of those Disguise and let me know when you're done. I will reward you for your efforts.";
+ setquest 60173;
+ close;
+ case 2:
+ if(BaseLevel > 98){
+ mes "[Deadman]";
+ mes "Thank you for your great help with the Loli Ruri!";
+ mes "Currently the Situation is stable and i'm not in need of your help anymore to kill them.";
+ close;
+ }
+ mes "[Deadman]";
+ mes "Kill 50 of those Loli Ruri and let me know when you're done. I will reward you for your efforts.";
+ setquest 60176;
+ close;
+ case 3:
+ mes "[Deadman]";
+ mes "If you change your mind, please come back.";
+ close;
+ }
+ case 2:
+ mes "[Deadman]";
+ mes "If you change your mind, please come back.";
+ close;
+ }
+ }
+ mes "[Deadman]";
+ mes "Oh boy, Oh boy!";
+ next;
+ mes "[Deadman]";
+ mes "Sorry I can't talk right now I am in a world of pain here, these darn Disguise and Loli Ruri are going to kill me.";
+ close;
+}
diff --git a/npc/pre-re/quests/collection/quest_dokebi.txt b/npc/pre-re/quests/collection/quest_dokebi.txt
new file mode 100644
index 000000000..3e6bcf637
--- /dev/null
+++ b/npc/pre-re/quests/collection/quest_dokebi.txt
@@ -0,0 +1,234 @@
+//===== rAthena Script =======================================
+//= iRO Repeatable EXP Quests.
+//===== By: ==================================================
+//= L0ne_W0lf
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Aegis Conversion]
+//= Added Monster Killing quests.
+//= Repeatable EXP Quest (Dokebi Horns)
+//===== Additional Comments: =================================
+//= 1.0 First version.
+//============================================================
+
+pay_fild10,108,357,5 script Li#Dokebi_Hunt 90,{
+ if (checkquest(60128) != -1) {
+ if (checkquest(60128,HUNTING) != 2 ) {
+ mes "[Li]";
+ mes "Have you finished hunting the 50 Dokebis?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Li]";
+ mes "Hmm, I don't think you've hunted 50 yet...";
+ close;
+ case 2:
+ mes "[Li]";
+ mes "Remember, I need help hunting Dokebis so go and hunt 50 of them.";
+ close;
+ case 3:
+ mes "[Li]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Li]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60128;
+ close;
+ case 2:
+ mes "[Li]";
+ mes "Please kill 50 Dokebis.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Li]";
+ mes "Amazing, you did that with speed.";
+ getexp 42000,36000;
+ erasequest 60128;
+ close;
+ }
+ }
+ if (checkquest(60129) != -1) {
+ if (checkquest(60129,HUNTING) != 2 ) {
+ mes "[Li]";
+ mes "Have you finished hunting the 50 Dokebis?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Li]";
+ mes "Hmm, I don't think you've hunted 100 yet...";
+ close;
+ case 2:
+ mes "[Li]";
+ mes "Remember, I need help hunting Dokebis so go and hunt 100 of them.";
+ close;
+ case 3:
+ mes "[Li]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Li]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60129;
+ close;
+ case 2:
+ mes "[Li]";
+ mes "Please kill 100 Dokebis.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Li]";
+ mes "Amazing, you did that with speed.";
+ getexp 42000,36000;
+ getexp 42000,36000;
+ erasequest 60129;
+ close;
+ }
+ }
+ if (checkquest(60130) != -1) {
+ if (checkquest(60130,HUNTING) != 2 ) {
+ mes "[Li]";
+ mes "Have you finished hunting the 150 Dokebis?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Li]";
+ mes "Hmm, I don't think you've hunted 150 yet...";
+ close;
+ case 2:
+ mes "[Li]";
+ mes "Remember, I need help hunting Dokebis so go and hunt 150 of them.";
+ close;
+ case 3:
+ mes "[Li]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Li]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60130;
+ close;
+ case 2:
+ mes "[Li]";
+ mes "Please kill 150 Dokebis.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Li]";
+ mes "Amazing, you did that with speed.";
+ getexp 42000,36000;
+ getexp 42000,36000;
+ getexp 42000,36000;
+ erasequest 60130;
+ close;
+ }
+ }
+ //for minimum level
+ if (BaseLevel > 34) {
+ //for maximum level
+ if (BaseLevel < 71) {
+ mes "[Li]";
+ mes "Hello. DO you think you could help me?";
+ next;
+ switch(select("Sure:No")) {
+ case 1:
+ mes "[Li]";
+ mes "There are so many Dokebis here...I just don't feel safe.";
+ next;
+ switch(select("Gather Items:Hunt Dokebis:Cancel")) {
+ case 1:
+ // Item turn in
+ mes "[Li]";
+ mes "My fortune teller business needs a good supply of ^FF0000Dokebi Horns^000000 to give my customers good luck.";
+ next;
+ switch(select("I have some Dokebi Horns:What did you need?")) {
+ case 1:
+ if (countitem(1021) > 49) {
+ mes "[Li]";
+ mes "Oh, great!";
+ mes "Thank you for the horns.";
+ delitem 1021,50; //Dokkaebi_Horn
+ getexp 42000,36000;
+ close;
+ }
+ else {
+ mes "[Li]";
+ mes "It doesn't look like you have enough.";
+ next;
+ mes "[Li]";
+ mes "I need ^FF000050 Dokebi Horns^000000 for my fortune telling.";
+ close;
+ }
+ case 2:
+ mes "[Li]";
+ mes "If you bring me";
+ mes "^FF000050 Dokebi Horns^000000, I can give you some good luck.";
+ close;
+ }
+ case 2:
+ // Kill Count Quest
+ mes "[Li]";
+ mes "Ah, ok I think you can help me out by hunting some Dokebis.";
+ mes "How many would you like to hunt?";
+ next;
+ switch(select("50 Dokebis:100 Dokebis:150 Dokebis")) {
+ case 1:
+ mes "[Li]";
+ mes "Come back when you've finished your task and I will give you a small reward.";
+ setquest 60128;
+ close;
+ case 2:
+ mes "[Li]";
+ mes "Come back when you've finished your task and I will give you a small reward.";
+ setquest 60129;
+ close;
+ case 3:
+ mes "[Li]";
+ mes "Come back when you've finished your task and I will give you a small reward.";
+ setquest 60130;
+ close;
+ }
+ case 3:
+ mes "[Li]";
+ mes "If you change your mind, please come back.";
+ close;
+ }
+ case 2:
+ mes "[Li]";
+ mes "If you change your mind, please come back.";
+ close;
+ }
+ }
+ else {
+ mes "[Li]";
+ mes "Hello";
+ mes "I read fortunes in Payon.";
+ close;
+ }
+ }
+ else {
+ mes "[Li]";
+ mes "This place is dangerous!";
+ next;
+ mes "[Li]";
+ mes "You should leave quickly!";
+ close;
+ }
+}
+
+
diff --git a/npc/pre-re/quests/collection/quest_dryad.txt b/npc/pre-re/quests/collection/quest_dryad.txt
new file mode 100644
index 000000000..348dc75f9
--- /dev/null
+++ b/npc/pre-re/quests/collection/quest_dryad.txt
@@ -0,0 +1,242 @@
+//===== rAthena Script =======================================
+//= iRO Repeatable EXP Quests.
+//===== By: ==================================================
+//= L0ne_W0lf
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Aegis Conversion]
+//= Added Monster Killing quests.
+//= Repeatable EXP Quest (Sharp Leaves)
+//===== Additional Comments: =================================
+//= 1.0 First version.
+//============================================================
+
+um_fild01,34,281,5 script Lilla#Dryad_Hunt 724,{
+ if (checkquest(60131) != -1) {
+ if (checkquest(60131,HUNTING) != 2 ) {
+ mes "[Lilla]";
+ mes "Have you finished hunting the 50 Dryads?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Lilla]";
+ mes "Hmm, I don't think you've hunted 50 yet...";
+ close;
+ case 2:
+ mes "[Lilla]";
+ mes "Remember, I need help hunting Dryads so go and hunt 50 of them.";
+ close;
+ case 3:
+ mes "[Lilla]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Lilla]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60131;
+ close;
+ case 2:
+ mes "[Lilla]";
+ mes "Please kill 50 Dryads.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Lilla]";
+ mes "Amazing, you did that with speed.";
+ getexp 262485,141835;
+ erasequest 60131;
+ close;
+ }
+ }
+ if (checkquest(60132) != -1) {
+ if (checkquest(60132,HUNTING) != 2 ) {
+ mes "[Lilla]";
+ mes "Have you finished hunting the 50 Dryads?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Lilla]";
+ mes "Hmm, I don't think you've hunted 100 yet...";
+ close;
+ case 2:
+ mes "[Lilla]";
+ mes "Remember, I need help hunting Dryads so go and hunt 100 of them.";
+ close;
+ case 3:
+ mes "[Lilla]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Lilla]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60132;
+ close;
+ case 2:
+ mes "[Lilla]";
+ mes "Please kill 100 Dryads.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Lilla]";
+ mes "Amazing, you did that with speed.";
+ getexp 262485,141835;
+ getexp 262485,141835;
+ erasequest 60132;
+ close;
+ }
+ }
+ if (checkquest(60133) != -1) {
+ if (checkquest(60133,HUNTING) != 2 ) {
+ mes "[Lilla]";
+ mes "Have you finished hunting the 150 Dryads?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Lilla]";
+ mes "Hmm, I don't think you've hunted 150 yet...";
+ close;
+ case 2:
+ mes "[Lilla]";
+ mes "Remember, I need help hunting Dryads so go and hunt 150 of them.";
+ close;
+ case 3:
+ mes "[Lilla]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Lilla]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60133;
+ close;
+ case 2:
+ mes "[Lilla]";
+ mes "Please kill 150 Dryads.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Lilla]";
+ mes "Amazing, you did that with speed.";
+ getexp 262485,141835;
+ getexp 262485,141835;
+ getexp 262485,141835;
+ erasequest 60133;
+ close;
+ }
+ }
+ //for minimum level
+ if (BaseLevel > 59) {
+ //for maximum level
+ if (BaseLevel < 86) {
+ mes "[Lilla]";
+ mes "Why hello!";
+ mes "You look like someone who is willing to help a lil thing like myself out.";
+ next;
+ switch(select("Sure:No")) {
+ case 1:
+ mes "[Lilla]";
+ mes "Really?!";
+ mes "That's great!";
+ next;
+ switch(select("Gather Items:Hunt Dryads:Cancel")) {
+ case 1:
+ // Item turn in
+ mes "[Lilla]";
+ mes "I really need to gather ^00CE0050 Sharp Leafs^000000 for my garden tea party.";
+ mes "Do you have any?";
+ next;
+ switch(select("I have some Sharp Leafs:What did you need?")) {
+ case 1:
+ /*
+ if (checkweight(504,10) == 0) {
+ mes "[Lilla]";
+ mes "Hey, it looks like that the weight on";
+ mes "your back will crush you. Come back";
+ mes "after you have lost some weight.";
+ close;
+ }
+ */
+ if (countitem(7100) > 49) {
+ mes "[Lilla]";
+ mes "Hey, your a sweet little thing.";
+ mes "Thanks so much for helping me!";
+ next;
+ mes "[Lilla]";
+ mes "Oh, I almost forgot. I have something for you ^_^";
+ mes "Thank you so much again for your help.";
+ delitem 7100,50; //Sharp_Leaf
+ getexp 262485,141835;
+ //getitem 504,10; //White_Potion
+ close;
+ }
+ else {
+ mes "[Lilla]";
+ mes "Why, I may look cute and silly but please don't play games with me.";
+ close;
+ }
+ case 2:
+ mes "[Lilla]";
+ mes "I need ^00CE0050 Sharp Leafs^000000.";
+ close;
+ }
+ case 2:
+ // Kill Count Quest
+ mes "[Lilla]";
+ mes "Ah, ok I think you can help me out by hunting some Dryads.";
+ mes "How many would you like to hunt?";
+ next;
+ switch(select("50 Dryads:100 Dryads:150 Dryads")) {
+ case 1:
+ mes "[Lilla]";
+ mes "Come back when you've finished your task and I will give you a small reward.";
+ setquest 60131;
+ close;
+ case 2:
+ mes "[Lilla]";
+ mes "Come back when you've finished your task and I will give you a small reward.";
+ setquest 60132;
+ close;
+ case 3:
+ mes "[Lilla]";
+ mes "Come back when you've finished your task and I will give you a small reward.";
+ setquest 60133;
+ close;
+ }
+ case 3:
+ mes "[Lilla]";
+ mes "If you change your mind, please come back.";
+ close;
+ }
+ case 2:
+ mes "[Lilla]";
+ mes "If you change your mind, please come back.";
+ close;
+ }
+ }
+ else {
+ mes "[Lilla]";
+ mes "Sorry but you are a little too old and scary to talk to!";
+ close;
+ }
+ }
+ else {
+ mes "[Lilla]";
+ mes "You are way too tiny to be helping me.";
+ mes "Thank you for your offer though.";
+ close;
+ }
+}
diff --git a/npc/pre-re/quests/collection/quest_fabre.txt b/npc/pre-re/quests/collection/quest_fabre.txt
new file mode 100644
index 000000000..9c0c016a1
--- /dev/null
+++ b/npc/pre-re/quests/collection/quest_fabre.txt
@@ -0,0 +1,231 @@
+//===== rAthena Script =======================================
+//= iRO Repeatable EXP Quests.
+//===== By: ==================================================
+//= L0ne_W0lf
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Aegis Conversion]
+//= Added Monster Killing quests.
+//= Repeatable EXP Quest (Fluffs)
+//===== Additional Comments: =================================
+//= 1.0 First version.
+//============================================================
+
+gef_fild07,321,193,4 script Langry#Fabre_Hunt 754,{
+ if (checkquest(60107) != -1) {
+ if (checkquest(60107,HUNTING) != 2 ) {
+ mes "[Langry]";
+ mes "Have you finished hunting the 50 Fabres?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Langry]";
+ mes "Hmm, I don't think you've hunted 50 yet...";
+ close;
+ case 2:
+ mes "[Langry]";
+ mes "Remember, I need help hunting Fabres so go and hunt 50 of them.";
+ close;
+ case 3:
+ mes "[Langry]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Langry]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60107;
+ close;
+ case 2:
+ mes "[Langry]";
+ mes "Please kill 50 Fabres.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Langry]";
+ mes "Amazing, you did that with speed.";
+ getexp 385,30;
+ erasequest 60107;
+ close;
+ }
+ }
+ if (checkquest(60108) != -1) {
+ if (checkquest(60108,HUNTING) != 2 ) {
+ mes "[Langry]";
+ mes "Have you finished hunting the 50 Fabres?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Langry]";
+ mes "Hmm, I don't think you've hunted 100 yet...";
+ close;
+ case 2:
+ mes "[Langry]";
+ mes "Remember, I need help hunting Fabres so go and hunt 100 of them.";
+ close;
+ case 3:
+ mes "[Langry]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Langry]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60108;
+ close;
+ case 2:
+ mes "[Langry]";
+ mes "Please kill 100 Fabres.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Langry]";
+ mes "Amazing, you did that with speed.";
+ getexp 385,30;
+ getexp 385,30;
+ erasequest 60108;
+ close;
+ }
+ }
+ if (checkquest(60109) != -1) {
+ if (checkquest(60109,HUNTING) != 2 ) {
+ mes "[Langry]";
+ mes "Have you finished hunting the 150 Fabres?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Langry]";
+ mes "Hmm, I don't think you've hunted 150 yet...";
+ close;
+ case 2:
+ mes "[Langry]";
+ mes "Remember, I need help hunting Fabres so go and hunt 150 of them.";
+ close;
+ case 3:
+ mes "[Langry]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Langry]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60109;
+ close;
+ case 2:
+ mes "[Langry]";
+ mes "Please kill 150 Fabres.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Langry]";
+ mes "Amazing, you did that with speed.";
+ getexp 385,30;
+ getexp 385,30;
+ getexp 385,30;
+ erasequest 60109;
+ close;
+ }
+ }
+ //for minimum level
+ if (BaseLevel > 1) {
+ //for maximum level
+ if (BaseLevel < 21) {
+ mes "[Langry]";
+ mes "Do you think you can help me?";
+ mes "Please?";
+ next;
+ switch(select("Sure:No")) {
+ case 1:
+ mes "[Langry]";
+ mes "Really?!";
+ mes "That's great!";
+ next;
+ switch(select("Gather Items:Hunt Fabres:Cancel")) {
+ case 1:
+ // Item turn in
+ mes "[Langry]";
+ mes "I need to collect ^0000CE25 Fluff^000000 to";
+ mes "complete this community service project.";
+ mes "You know what? I can even reward you a little for helping me.";
+ next;
+ switch(select("I have some Fluff:What was that again?")) {
+ case 1:
+ if (countitem(914) > 24) {
+ mes "[Langry]";
+ mes "Thank you for the Fluff. This helps me out greatly.";
+ mes "Oh and here you go, this should help you get stronger, faster!";
+ delitem 914,25; //Fluff
+ getexp 385,30;
+ close;
+ }
+ else {
+ mes "[Langry]";
+ mes "I see no Fluff, wait yea I do it's the lies coming from your mouth.";
+ close;
+ }
+ case 2:
+ mes "[Langry]";
+ mes "I need ^00CE0025 Fluff^000000.";
+ close;
+ }
+ case 2:
+ // Kill Count Quest
+ mes "[Langry]";
+ mes "Ah, ok I think you can help me out by hunting some Fabres.";
+ mes "How many would you like to hunt?";
+ next;
+ switch(select("50 Fabres:100 Fabres:150 Fabres")) {
+ case 1:
+ mes "[Langry]";
+ mes "Come back when you've finished your task and I will give you a small reward.";
+ setquest 60107;
+ close;
+ case 2:
+ mes "[Langry]";
+ mes "Come back when you've finished your task and I will give you a small reward.";
+ setquest 60108;
+ close;
+ case 3:
+ mes "[Langry]";
+ mes "Come back when you've finished your task and I will give you a small reward.";
+ setquest 60109;
+ close;
+ }
+ case 3:
+ mes "[Langry]";
+ mes "If you change your mind, please come back.";
+ close;
+ }
+ case 2:
+ mes "[Langry]";
+ mes "If you change your mind, please come back.";
+ close;
+ }
+ }
+ else {
+ mes "[Langry]";
+ mes "Hello, my name is Langry.";
+ mes "I have to complete this community service, but I am just too lazy.";
+ close;
+ }
+ }
+ else {
+ mes "[Langry]";
+ mes "You may just be the most unlikely person ever, recycle a few Fabres and come back.";
+ close;
+ }
+}
+
+
diff --git a/npc/pre-re/quests/collection/quest_frilldora.txt b/npc/pre-re/quests/collection/quest_frilldora.txt
new file mode 100644
index 000000000..f0306d787
--- /dev/null
+++ b/npc/pre-re/quests/collection/quest_frilldora.txt
@@ -0,0 +1,240 @@
+//===== rAthena Script =======================================
+//= iRO Repeatable EXP Quests.
+//===== By: ==================================================
+//= L0ne_W0lf
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Aegis Conversion]
+//= Added Monster Killing quests.
+//= Repeatable EXP Quest (Frills)
+//===== Additional Comments: =================================
+//= 1.0 First version.
+//============================================================
+
+moc_fild17,66,273,5 script Lemly#Frilldora_Hunt 725,{
+ if (checkquest(60134) != -1) {
+ if (checkquest(60134,HUNTING) != 2 ) {
+ mes "[Lemly]";
+ mes "Have you finished hunting the 50 Frilldora?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Lemly]";
+ mes "Hmm, I don't think you've hunted 50 yet...";
+ close;
+ case 2:
+ mes "[Lemly]";
+ mes "Remember, I need help hunting Frilldora so go and hunt 50 of them.";
+ close;
+ case 3:
+ mes "[Lemly]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Lemly]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60134;
+ close;
+ case 2:
+ mes "[Lemly]";
+ mes "Please kill 50 Frilldora.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Lemly]";
+ mes "Amazing, you did that with speed.";
+ getexp 30000,23000;
+ erasequest 60134;
+ close;
+ }
+ }
+ if (checkquest(60135) != -1) {
+ if (checkquest(60135,HUNTING) != 2 ) {
+ mes "[Lemly]";
+ mes "Have you finished hunting the 50 Frilldora?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Lemly]";
+ mes "Hmm, I don't think you've hunted 100 yet...";
+ close;
+ case 2:
+ mes "[Lemly]";
+ mes "Remember, I need help hunting Frilldora so go and hunt 100 of them.";
+ close;
+ case 3:
+ mes "[Lemly]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Lemly]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60135;
+ close;
+ case 2:
+ mes "[Lemly]";
+ mes "Please kill 100 Frilldora.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Lemly]";
+ mes "Amazing, you did that with speed.";
+ getexp 30000,23000;
+ getexp 30000,23000;
+ erasequest 60135;
+ close;
+ }
+ }
+ if (checkquest(60136) != -1) {
+ if (checkquest(60136,HUNTING) != 2 ) {
+ mes "[Lemly]";
+ mes "Have you finished hunting the 150 Frilldora?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Lemly]";
+ mes "Hmm, I don't think you've hunted 150 yet...";
+ close;
+ case 2:
+ mes "[Lemly]";
+ mes "Remember, I need help hunting Frilldora so go and hunt 150 of them.";
+ close;
+ case 3:
+ mes "[Lemly]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Lemly]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60136;
+ close;
+ case 2:
+ mes "[Lemly]";
+ mes "Please kill 150 Frilldora.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Lemly]";
+ mes "Amazing, you did that with speed.";
+ getexp 30000,23000;
+ getexp 30000,23000;
+ getexp 30000,23000;
+ erasequest 60136;
+ close;
+ }
+ }
+ //for minimum level
+ if (BaseLevel > 29) {
+ //for maximum level
+ if (BaseLevel < 66) {
+ mes "[Lemly]";
+ mes "Hey there cutie!";
+ next;
+ mes "[Lemly]";
+ mes "Think you could take some time to give me a hand?";
+ next;
+ switch(select("Sure:No")) {
+ case 1:
+ mes "[Lemly]";
+ mes "I am looking for lizard ^FF0000Frills^000000.";
+ next;
+ mes "[Lemly]";
+ mes "The lizards around here have a natural stealth, a property that the Assassin's Guild wants to study.";
+ next;
+ switch(select("Gather Items:Hunt Frilldora:Cancel")) {
+ case 1:
+ // Item turn in
+ switch(select("I have some Frills:What did you need?")) {
+ case 1:
+ if (countitem(1012) > 24) {
+ mes "[Lemly]";
+ mes "Hey, thank you.";
+ mes "These are pretty icky though.";
+ delitem 1012,25; //Lizard_Scruff
+ getexp 30000,23000;
+ close;
+ }
+ else {
+ mes "[Lemly]";
+ mes "Sigh,";
+ mes "Please, don't waste my time.";
+ next;
+ mes "[Lemly]";
+ mes "I need ^FF000025 Frills^000000 for the Assassin's Guild.";
+ close;
+ }
+ case 2:
+ mes "[Lemly]";
+ mes "I need ^FF000025 Frills^000000 for the Assassin's Guild.";
+ close;
+ }
+ case 2:
+ // Kill Count Quest
+ mes "[Lemly]";
+ mes "Ah, ok I think you can help me out by hunting some Frilldora.";
+ mes "How many would you like to hunt?";
+ next;
+ switch(select("50 Frilldora:100 Frilldora:150 Frilldora")) {
+ case 1:
+ mes "[Lemly]";
+ mes "Come back when you've finished your task and I will give you a small reward.";
+ setquest 60134;
+ close;
+ case 2:
+ mes "[Lemly]";
+ mes "Come back when you've finished your task and I will give you a small reward.";
+ setquest 60135;
+ close;
+ case 3:
+ mes "[Lemly]";
+ mes "Come back when you've finished your task and I will give you a small reward.";
+ setquest 60136;
+ close;
+ }
+ case 3:
+ mes "[Lemly]";
+ mes "If you change your mind, please come back.";
+ close;
+ }
+ case 2:
+ mes "[Lemly]";
+ mes "If you change your mind, please come back.";
+ close;
+ }
+ }
+ else {
+ mes "[Lemly]";
+ mes "Hey there.";
+ next;
+ mes "[Lemly]";
+ mes "These lizards are gross.";
+ next;
+ mes "[Lemly]";
+ mes "I can't believe I am stuck doing this.";
+ close;
+ }
+ }
+ else {
+ mes "[Lemly]";
+ mes "What are you doing here?";
+ mes "The desert will kill you here!";
+ close;
+ }
+}
+
+
diff --git a/npc/pre-re/quests/collection/quest_goat.txt b/npc/pre-re/quests/collection/quest_goat.txt
new file mode 100644
index 000000000..64d729386
--- /dev/null
+++ b/npc/pre-re/quests/collection/quest_goat.txt
@@ -0,0 +1,245 @@
+//===== rAthena Script =======================================
+//= iRO Repeatable EXP Quests.
+//===== By: ==================================================
+//= L0ne_W0lf
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Aegis Conversion]
+//= Added Monster Killing quests.
+//= Repeatable EXP Quest (Antelope Horns)
+//===== Additional Comments: =================================
+//= 1.0 First version.
+//============================================================
+
+ein_fild06,82,171,0 script Vegetable Farmer#Goat 919,{
+ if (checkquest(60137) != -1) {
+ if (checkquest(60137,HUNTING) != 2 ) {
+ mes "[Vegetable Farmer]";
+ mes "Have you finished hunting the 50 Goats?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Vegetable Farmer]";
+ mes "Hmm, I don't think you've hunted 50 yet.";
+ close;
+ case 2:
+ mes "[Vegetable Farmer]";
+ mes "Remember, I need help hunting Goats so go and hunt 50 of them.";
+ close;
+ case 3:
+ mes "[Vegetable Farmer]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Vegetable Farmer]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60137;
+ close;
+ case 2:
+ mes "[Vegetable Farmer]";
+ mes "Please kill 50 Goats so I can farm my vegetables without any worries.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Vegetable Farmer]";
+ mes "Amazing, you did that with speed.";
+ getexp 258489,155155;
+ erasequest 60137;
+ close;
+ }
+ }
+ if (checkquest(60138) != -1) {
+ if (checkquest(60138,HUNTING) != 2) {
+ mes "[Vegetable Farmer]";
+ mes "Have you finished hunting the 100 Goats?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Vegetable Farmer]";
+ mes "Hmm, I don't think you've hunted 100 yet.";
+ close;
+ case 2:
+ mes "[Vegetable Farmer]";
+ mes "Remember, I need help hunting Goats so go and hunt 100 of them.";
+ close;
+ case 3:
+ mes "[Vegetable Farmer]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Vegetable Farmer]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60138;
+ close;
+ case 2:
+ mes "[Vegetable Farmer]";
+ mes "Please kill 100 Goats so I can farm my vegetables without any worries.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Vegetable Farmer]";
+ mes "Amazing, you did that with speed.";
+ getexp 258489,155155;
+ getexp 258489,155155;
+ erasequest 60138;
+ close;
+ }
+ }
+ if (checkquest(60139) != -1) {
+ if (checkquest(60139,HUNTING) != 2) {
+ mes "[Vegetable Farmer]";
+ mes "Have you finished hunting the 150 Goats?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Vegetable Farmer]";
+ mes "Hmm, I don't think you've hunted 150 yet.";
+ close;
+ case 2:
+ mes "[Vegetable Farmer]";
+ mes "Remember, I need help hunting Goats so go and hunt 150 of them.";
+ close;
+ case 3:
+ mes "[Vegetable Farmer]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Vegetable Farmer]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60139;
+ close;
+ case 2:
+ mes "[Vegetable Farmer]";
+ mes "Please kill 150 Goats so I can farm my vegetables without any worries.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Vegetable Farmer]";
+ mes "Amazing, you did that with speed.";
+ getexp 258489,155155;
+ getexp 258489,155155;
+ getexp 258489,155155;
+ erasequest 60139;
+ close;
+ }
+ }
+ //for minimum level
+ if (BaseLevel > 69) {
+ //for maximum level
+ if (BaseLevel < 85) {
+ mes "[Vegetable Farmer]";
+ mes "Oh great!";
+ mes "You are here to help me right?";
+ mes "If not, then I am in a world of hurt.";
+ next;
+ switch(select("Sure:No")) {
+ case 1:
+ mes "[Vegetable Farmer]";
+ mes "These Goats keep eating my vegetables.";
+ mes "Can you do what you can to help me?";
+ next;
+ switch(select("Gather Items:Hunt Goats:Cancel")) {
+ case 1:
+ // Item turn in
+ mes "[Vegetable Farmer]";
+ mes "I need ^FF0000Antelope Horns^000000 to show for your hard work, and I will reward you.";
+ next;
+ switch(select("I have Antelope Horns:What did you need?")) {
+ case 1:
+ /*
+ if (checkweight(504,10) == 0) {
+ mes "[Vegetable Farmer]";
+ mes "Hey, it looks like that the weight on";
+ mes "your back will crush you. Come back";
+ mes "after you have lost some weight.";
+ close;
+ }
+ */
+ if (countitem(7106) > 49) {
+ mes "[Vegetable Farmer]";
+ mes "Amazing, you did that with speed.";
+ mes "I am truly grateful.";
+ delitem 7106,50; //Goat's_Horn
+ getexp 258489,155155;
+ //getitem 504,10; //White_Potion
+ close;
+ }
+ else {
+ mes "[Vegetable Farmer]";
+ mes "It doesn't look like you have enough.";
+ next;
+ mes "[Vegetable Farmer]";
+ mes "I need to see that you have gathered ^FF000050 Antelope Horns^000000, and then I can reward you.";
+ close;
+ }
+ case 2:
+ mes "[Vegetable Farmer]";
+ mes "I need to see that you have gathered ^FF000050 Antelope Horns^000000, and then I can reward you.";
+ close;
+ }
+ case 2:
+ // Kill Count Quest
+ mes "[Vegetable Farmer]";
+ mes "Thank you.";
+ mes "How many Goats would you like to hunt?";
+ next;
+ switch(select("50 Goats:100 Goats:150 Goats")) {
+ case 1:
+ mes "[Vegetable Farmer]";
+ mes "Kill 50 of those Goats and let me know when you're done. I will reward you for your efforts.";
+ setquest 60137;
+ close;
+ case 2:
+ mes "[Vegetable Farmer]";
+ mes "Kill 100 of those Goats and let me know when you're done. I will reward you for your efforts.";
+ setquest 60138;
+ close;
+ case 3:
+ mes "[Vegetable Farmer]";
+ mes "Kill 150 of those Goats and let me know when you're done. I will reward you for your efforts.";
+ setquest 60139;
+ close;
+ }
+ case 3:
+ mes "[Vegetable Farmer]";
+ mes "If you change your mind, please come back.";
+ close;
+ }
+ case 2:
+ mes "[Vegetable Farmer]";
+ mes "If you change your mind, please come back.";
+ close;
+ }
+ }
+ else {
+ mes "[Vegetable Farmer]";
+ mes "Oh boy, Oh boy!";
+ next;
+ mes "[Vegetable Farmer]";
+ mes "Sorry I can't talk right now I am in a world of hurt here, these darn Goats are going to kill me.";
+ close;
+ }
+ }
+ else {
+ mes "[Vegetable Farmer]";
+ mes "My vegetables, where did they all go?";
+ mes "Oh, no..no!!!";
+ close;
+ }
+}
+
diff --git a/npc/pre-re/quests/collection/quest_golem.txt b/npc/pre-re/quests/collection/quest_golem.txt
new file mode 100644
index 000000000..882d878dd
--- /dev/null
+++ b/npc/pre-re/quests/collection/quest_golem.txt
@@ -0,0 +1,232 @@
+//===== rAthena Script =======================================
+//= iRO Repeatable EXP Quests.
+//===== By: ==================================================
+//= L0ne_W0lf
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Aegis Conversion]
+//= Added Monster Killing quests.
+//= Repeatable EXP Quest (Stone Hearts)
+//===== Additional Comments: =================================
+//= 1.0 First version.
+//============================================================
+
+moc_fild11,57,138,0 script Private Jeremy#hunt 707,{
+ if (checkquest(60140) != -1) {
+ if (checkquest(60140,HUNTING) != 2 ) {
+ mes "[Private Jeremy]";
+ mes "Have you finished hunting the 50 Golems?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Private Jeremy]";
+ mes "Hmm, I don't think you've hunted 50 yet...";
+ close;
+ case 2:
+ mes "[Private Jeremy]";
+ mes "Remember, I need help hunting Golems so go and hunt 50 of them.";
+ close;
+ case 3:
+ mes "[Private Jeremy]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Private Jeremy]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60140;
+ close;
+ case 2:
+ mes "[Private Jeremy]";
+ mes "Please kill 50 Golems.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Private Jeremy]";
+ mes "Amazing, you did that with speed.";
+ getexp 14000,9000;
+ erasequest 60140;
+ close;
+ }
+ }
+ if (checkquest(60141) != -1) {
+ if (checkquest(60141,HUNTING) != 2 ) {
+ mes "[Private Jeremy]";
+ mes "Have you finished hunting the 50 Golems?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Private Jeremy]";
+ mes "Hmm, I don't think you've hunted 100 yet...";
+ close;
+ case 2:
+ mes "[Private Jeremy]";
+ mes "Remember, I need help hunting Golems so go and hunt 100 of them.";
+ close;
+ case 3:
+ mes "[Private Jeremy]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Private Jeremy]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60141;
+ close;
+ case 2:
+ mes "[Private Jeremy]";
+ mes "Please kill 100 Golems.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Private Jeremy]";
+ mes "Amazing, you did that with speed.";
+ getexp 14000,9000;
+ getexp 14000,9000;
+ erasequest 60141;
+ close;
+ }
+ }
+ if (checkquest(60142) != -1) {
+ if (checkquest(60142,HUNTING) != 2 ) {
+ mes "[Private Jeremy]";
+ mes "Have you finished hunting the 150 Golems?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Private Jeremy]";
+ mes "Hmm, I don't think you've hunted 150 yet...";
+ close;
+ case 2:
+ mes "[Private Jeremy]";
+ mes "Remember, I need help hunting Golems so go and hunt 150 of them.";
+ close;
+ case 3:
+ mes "[Private Jeremy]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Private Jeremy]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60142;
+ close;
+ case 2:
+ mes "[Private Jeremy]";
+ mes "Please kill 150 Golems.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Private Jeremy]";
+ mes "Amazing, you did that with speed.";
+ getexp 14000,9000;
+ getexp 14000,9000;
+ getexp 14000,9000;
+ erasequest 60142;
+ close;
+ }
+ }
+ //for minimum level
+ if (BaseLevel > 24) {
+ //for maximum level
+ if (BaseLevel < 61) {
+ mes "[Private Jeremy]";
+ mes "Greetings citizen!";
+ mes "Say, how would you like to help me?";
+ next;
+ switch(select("Sure:No")) {
+ case 1:
+ mes "[Private Jeremy]";
+ mes "Thanks! I really appreciate it.";
+ next;
+ switch(select("Gather Items:Hunt Golems:Cancel")) {
+ case 1:
+ // Item turn in
+ mes "[Private Jeremy]";
+ mes "The Morroc Guard needs ^FF0000Stone Hearts^000000 for our training regimen.";
+ next;
+ switch(select("I have Stone Hearts:What did you need?")) {
+ case 1:
+ if (countitem(953) > 24) {
+ mes "[Private Jeremy]";
+ mes "The Morroc Guard thanks you, citizen.";
+ delitem 953,25; //Stone_Heart
+ getexp 14000,9000;
+ close;
+ }
+ else {
+ mes "[Private Jeremy]";
+ mes "It doesn't look like you have enough.";
+ next;
+ mes "[Private Jeremy]";
+ mes "The Morroc Guard needs ^FF000025 Stone Hearts^000000, for our training regimen.";
+ close;
+ }
+ case 2:
+ mes "[Private Jeremy]";
+ mes "The Morroc Guard needs ^FF000025 Stone Hearts^000000, for our training regimen.";
+ close;
+ }
+ case 2:
+ // Kill Count Quest
+ mes "[Private Jeremy]";
+ mes "Ah, ok I think you can help me out by hunting some Golems.";
+ mes "How many would you like to hunt?";
+ next;
+ switch(select("50 Golems:100 Golems:150 Golems")) {
+ case 1:
+ mes "[Private Jeremy]";
+ mes "Come back when you've finished your task and I will give you a small reward.";
+ setquest 60140;
+ close;
+ case 2:
+ mes "[Private Jeremy]";
+ mes "Come back when you've finished your task and I will give you a small reward.";
+ setquest 60141;
+ close;
+ case 3:
+ mes "[Private Jeremy]";
+ mes "Come back when you've finished your task and I will give you a small reward.";
+ setquest 60142;
+ close;
+ }
+ case 3:
+ mes "[Private Jeremy]";
+ mes "If you change your mind, please come back.";
+ close;
+ }
+ case 2:
+ mes "[Private Jeremy]";
+ mes "If you change your mind, please come back.";
+ close;
+ }
+ }
+ else {
+ mes "[Private Jeremy]";
+ mes "Greetings citizen!";
+ next;
+ mes "[Private Jeremy]";
+ mes "Please do not interrupt my mission for the Morroc Guard.";
+ close;
+ }
+ }
+ else {
+ mes "[Private Jeremy]";
+ mes "It is dangerous here citizen.";
+ close;
+ }
+}
+
+
diff --git a/npc/pre-re/quests/collection/quest_hode.txt b/npc/pre-re/quests/collection/quest_hode.txt
new file mode 100644
index 000000000..342ba5fc3
--- /dev/null
+++ b/npc/pre-re/quests/collection/quest_hode.txt
@@ -0,0 +1,241 @@
+//===== rAthena Script =======================================
+//= iRO Repeatable EXP Quests.
+//===== By: ==================================================
+//= L0ne_W0lf
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Aegis Conversion]
+//= Added Monster Killing quests.
+//= Repeatable EXP Quest (Earthworm Peelings)
+//===== Additional Comments: =================================
+//= 1.0 First version.
+//============================================================
+
+moc_fild17,208,346,5 script Shone#Hode_Hunt 707,{
+ if (checkquest(60104) != -1) {
+ if (checkquest(60104,HUNTING) != 2 ) {
+ mes "[Shone]";
+ mes "Have you finished hunting the 50 Hodes?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Shone]";
+ mes "Hmm, I don't think you've hunted 50 yet...";
+ close;
+ case 2:
+ mes "[Shone]";
+ mes "Remember, I need help hunting Hodes so go and hunt 50 of them.";
+ close;
+ case 3:
+ mes "[Shone]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Shone]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60104;
+ close;
+ case 2:
+ mes "[Shone]";
+ mes "Please kill 50 Hodes.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Shone]";
+ mes "Amazing, you did that with speed.";
+ getexp 15775,1125;
+ erasequest 60104;
+ close;
+ }
+ }
+ if (checkquest(60105) != -1) {
+ if (checkquest(60105,HUNTING) != 2 ) {
+ mes "[Shone]";
+ mes "Have you finished hunting the 50 Hodes?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Shone]";
+ mes "Hmm, I don't think you've hunted 100 yet...";
+ close;
+ case 2:
+ mes "[Shone]";
+ mes "Remember, I need help hunting Hodes so go and hunt 100 of them.";
+ close;
+ case 3:
+ mes "[Shone]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Shone]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60105;
+ close;
+ case 2:
+ mes "[Shone]";
+ mes "Please kill 100 Hodes.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Shone]";
+ mes "Amazing, you did that with speed.";
+ getexp 15775,1125;
+ getexp 15775,1125;
+ erasequest 60105;
+ close;
+ }
+ }
+ if (checkquest(60106) != -1) {
+ if (checkquest(60106,HUNTING) != 2 ) {
+ mes "[Shone]";
+ mes "Have you finished hunting the 150 Hodes?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Shone]";
+ mes "Hmm, I don't think you've hunted 150 yet...";
+ close;
+ case 2:
+ mes "[Shone]";
+ mes "Remember, I need help hunting Hodes so go and hunt 150 of them.";
+ close;
+ case 3:
+ mes "[Shone]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Shone]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60106;
+ close;
+ case 2:
+ mes "[Shone]";
+ mes "Please kill 150 Hodes.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Shone]";
+ mes "Amazing, you did that with speed.";
+ getexp 15775,1125;
+ getexp 15775,1125;
+ getexp 15775,1125;
+ erasequest 60106;
+ close;
+ }
+ }
+ //for minimum level
+ if (BaseLevel > 24) {
+ //for maximum level
+ if (BaseLevel < 61) {
+ mes "[Shone]";
+ mes "Wait! You can see me?";
+ mes "Oh well, I haven't yet mastered my skills.";
+ next;
+ mes "[Shone]";
+ mes "Hey do you think you can help me?";
+ next;
+ switch(select("Sure:No")) {
+ case 1:
+ mes "[Shone]";
+ mes "Thanks a lot, pal!";
+ next;
+ switch(select("Gather Items:Hunt Hodes:Cancel")) {
+ case 1:
+ // Item turn in
+ mes "[Shone]";
+ mes "I am trying to collect ^00CE0025 Earthworm Peelings^000000.";
+ mes "I will reward you if you help.";
+ next;
+ switch(select("I have 25 Earthworm Peelings:What was it again?")) {
+ case 1:
+ /*
+ if (checkweight(502,10) == 0) {
+ mes "[Shone]";
+ mes "Hey, it looks like that the weight on";
+ mes "your back will crush you. Come back";
+ mes "after you have lost some weight.";
+ close;
+ }
+ */
+ if (countitem(1055) > 24) {
+ mes "Thank you for the 25 Earthworm";
+ mes "Peelings!";
+ mes "Here is that reward I promised you, I hope take this wisdom I have passed on to you and share it with others.";
+ delitem 1055,25; //Earthworm_Peeling
+ getexp 15775,1125;
+ //getitem 502,10; //Orange_Potion
+ close;
+ }
+ else {
+ mes "[Shone]";
+ mes "I don't see any ^00CE00Earthworm Peerlings^000000.";
+ mes "Are you trying to scam me?";
+ close;
+ }
+ case 2:
+ mes "[Shone]";
+ mes "I need ^00CE0025 Earthworm Peelings^000000.";
+ close;
+ }
+ case 2:
+ // Kill Count Quest
+ mes "[Shone]";
+ mes "Ah, ok I think you can help me out by hunting some Hodes.";
+ mes "How many would you like to hunt?";
+ next;
+ switch(select("50 Hodes:100 Hodes:150 Hodes")) {
+ case 1:
+ mes "[Shone]";
+ mes "Come back when you've finished your task and I will give you a small reward.";
+ setquest 60104;
+ close;
+ case 2:
+ mes "[Shone]";
+ mes "Come back when you've finished your task and I will give you a small reward.";
+ setquest 60105;
+ close;
+ case 3:
+ mes "[Shone]";
+ mes "Come back when you've finished your task and I will give you a small reward.";
+ setquest 60106;
+ close;
+ }
+ case 3:
+ mes "[Shone]";
+ mes "If you change your mind, please come back.";
+ close;
+ }
+ case 2:
+ mes "[Shone]";
+ mes "If you change your mind, please come back.";
+ close;
+ }
+ }
+ else {
+ mes "[Shone]";
+ mes "You are much too strong to be fighting these things!";
+ close;
+ }
+ }
+ else {
+ mes "[Shone]";
+ mes "You need some help, but I can't provide that for you.";
+ mes "Come back when you are stronger and have earned much more wisdom.";
+ close;
+ }
+}
diff --git a/npc/pre-re/quests/collection/quest_leafcat.txt b/npc/pre-re/quests/collection/quest_leafcat.txt
new file mode 100644
index 000000000..69f313f75
--- /dev/null
+++ b/npc/pre-re/quests/collection/quest_leafcat.txt
@@ -0,0 +1,239 @@
+//===== rAthena Script =======================================
+//= iRO Repeatable EXP Quests.
+//===== By: ==================================================
+//= L0ne_W0lf
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Aegis Conversion]
+//= Added Monster Killing quests.
+//= Repeatable EXP Quest (Huge Leaves)
+//===== Additional Comments: =================================
+//= 1.0 First version.
+//============================================================
+
+ayo_fild01,44,241,5 script Lella#LeafCat_Hunt 877,{
+ if (checkquest(60143) != -1) {
+ if (checkquest(60143,HUNTING) != 2 ) {
+ mes "[Lella]";
+ mes "Have you finished hunting the 50 Leaf Cats?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Lella]";
+ mes "Hmm, I don't think you've hunted 50 yet...";
+ close;
+ case 2:
+ mes "[Lella]";
+ mes "Remember, I need help hunting Leaf Cats so go and hunt 50 of them.";
+ close;
+ case 3:
+ mes "[Lella]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Lella]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60143;
+ close;
+ case 2:
+ mes "[Lella]";
+ mes "Please kill 50 Leaf Cats.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Lella]";
+ mes "Amazing, you did that with speed.";
+ getexp 25740,31512;
+ erasequest 60143;
+ close;
+ }
+ }
+ if (checkquest(60144) != -1) {
+ if (checkquest(60144,HUNTING) != 2 ) {
+ mes "[Lella]";
+ mes "Have you finished hunting the 50 Leaf Cats?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Lella]";
+ mes "Hmm, I don't think you've hunted 100 yet...";
+ close;
+ case 2:
+ mes "[Lella]";
+ mes "Remember, I need help hunting Leaf Cats so go and hunt 100 of them.";
+ close;
+ case 3:
+ mes "[Lella]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Lella]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60144;
+ close;
+ case 2:
+ mes "[Lella]";
+ mes "Please kill 100 Leaf Cats.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Lella]";
+ mes "Amazing, you did that with speed.";
+ getexp 25740,31512;
+ getexp 25740,31512;
+ erasequest 60144;
+ close;
+ }
+ }
+ if (checkquest(60145) != -1) {
+ if (checkquest(60145,HUNTING) != 2 ) {
+ mes "[Lella]";
+ mes "Have you finished hunting the 150 Leaf Cats?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Lella]";
+ mes "Hmm, I don't think you've hunted 150 yet...";
+ close;
+ case 2:
+ mes "[Lella]";
+ mes "Remember, I need help hunting Leaf Cats so go and hunt 150 of them.";
+ close;
+ case 3:
+ mes "[Lella]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Lella]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60145;
+ close;
+ case 2:
+ mes "[Lella]";
+ mes "Please kill 150 Leaf Cats.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Lella]";
+ mes "Amazing, you did that with speed.";
+ getexp 25740,31512;
+ getexp 25740,31512;
+ getexp 25740,31512;
+ erasequest 60145;
+ close;
+ }
+ }
+ //for minimum level
+ if (BaseLevel > 35) {
+ //for maximum level
+ if (BaseLevel < 66) {
+ mes "[Lella]";
+ mes "Why hello!";
+ mes "You look like someone who is willing to help someone who is slowly going mad.";
+ next;
+ mes "[Lella]";
+ switch(select("Sure:No")) {
+ case 1:
+ mes "[Lella]";
+ mes "Thanks! You're a life saver!";
+ next;
+ switch(select("Gather Items:Hunt Leaf Cats:Cancel")) {
+ case 1:
+ // Item turn in
+ mes "I really need to gather ^00CE0050 Huge Leafs^000000 for my sanity.";
+ mes "Do you have any?";
+ next;
+ switch(select("I have 50 Huge Leafs:What, sorry I was day dreaming")) {
+ case 1:
+ /*
+ if (checkweight(503,10) == 0) {
+ mes "[Lella]";
+ mes "Hey, it looks like that the weight on";
+ mes "your back will crush you. Come back";
+ mes "after you have lost some weight.";
+ close;
+ }
+ */
+ if (countitem(7198) > 49) {
+ mes "[Lella]";
+ mes "Wonderful I can tell it is just a little bit quieter around here!";
+ next;
+ mes "[Lella]";
+ mes "The more leafs I collect the quieter it seems around here.";
+ delitem 7198,50; //Great_Leaf
+ getexp 25740,31512;
+ //getitem 503,10; //Yellow_Potion
+ close;
+ }
+ else {
+ mes "[Lella]";
+ mes "Meow meow meow meow meow...";
+ mes "NOOOOOOOOOOOO.";
+ close;
+ }
+ case 2:
+ mes "[Lella]";
+ mes "I need ^00CE0050 Huge Leafs^000000.";
+ close;
+ }
+ case 2:
+ // Kill Count Quest
+ mes "[Lella]";
+ mes "Ah, ok I think you can help me out by hunting some Leaf Cats.";
+ mes "How many would you like to hunt?";
+ next;
+ switch(select("50 Leaf Cats:100 Leaf Cats:150 Leaf Cats")) {
+ case 1:
+ mes "[Lella]";
+ mes "Come back when you've finished your task and I will give you a small reward.";
+ setquest 60143;
+ close;
+ case 2:
+ mes "[Lella]";
+ mes "Come back when you've finished your task and I will give you a small reward.";
+ setquest 60144;
+ close;
+ case 3:
+ mes "[Lella]";
+ mes "Come back when you've finished your task and I will give you a small reward.";
+ setquest 60145;
+ close;
+ }
+ case 3:
+ mes "[Lella]";
+ mes "If you change your mind, please come back.";
+ close;
+ }
+ case 2:
+ mes "[Lella]";
+ mes "If you change your mind, please come back.";
+ close;
+ }
+ }
+ else {
+ mes "[Lella]";
+ mes "Not sure why you are here, but I can't offer you a bounty as there would be no effort in it for you!";
+ close;
+ }
+ }
+ else {
+ mes "[Lella]";
+ mes "Quickly escape before they get their claws into your sanity!";
+ close;
+ }
+}
diff --git a/npc/pre-re/quests/collection/quest_mantis.txt b/npc/pre-re/quests/collection/quest_mantis.txt
new file mode 100644
index 000000000..5e9249a1c
--- /dev/null
+++ b/npc/pre-re/quests/collection/quest_mantis.txt
@@ -0,0 +1,101 @@
+//===== rAthena Script =======================================
+//= iRO Repeatable EXP Quests.
+//===== By: ==================================================
+//= Masao
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= Custom Version.
+//= Repeatable EXP Quest : Kill 50 Mantis.
+//===== Additional Comments: =================================
+//= 1.0 First version.
+//============================================================
+
+lou_fild01,240,354,4 script Mantis Researcher 878,{
+
+ if (checkquest(60179) != -1) {
+ if (checkquest(60179,HUNTING) != 2 ) {
+ mes "[Mantis Researcher]";
+ mes "Have you finished hunting the 50 Mantis?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Mantis Researcher]";
+ mes "Hmm, I don't think you've hunted 50 yet.";
+ close;
+ case 2:
+ mes "[Mantis Researcher]";
+ mes "Remember, I need help hunting Mantis so go and hunt 50 of them.";
+ close;
+ case 3:
+ mes "[Mantis Researcher]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Mantis Researcher]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60179;
+ close;
+ case 2:
+ mes "[Mantis Researcher]";
+ mes "Please kill 50 Mantis in order to make this a Place were people can go to and gather Experience.";
+ close;
+ }
+ }
+ }
+ mes "[Mantis Researcher]";
+ mes "Amazing, you did that with speed.";
+ getexp 18818,7527;
+ erasequest 60179;
+ close;
+ }
+ if ((BaseLevel > 34) && (BaseLevel < 71)) {
+ mes "[Mantis Researcher]";
+ mes "Oh great!";
+ mes "You are here to help me right?";
+ mes "If not, i don't know what to do with the Monsters in this Place!";
+ next;
+ switch(select("Sure:No")) {
+ case 1:
+ mes "[Mantis Researcher]";
+ mes "Great! I knew the moment i saw you that i can count on you!";
+ mes "I need you to reduce the Amount of Monsters which are currently rampaging on this Map!";
+ mes "There are to many Mantis around, which makes it impossible for the lower level players to gain good experience here.";
+ next;
+ mes "[Mantis Researcher]";
+ mes "So, would you still like to help me?";
+ next;
+ switch(select("Sure:Cancel")) {
+ case 1:
+ if(BaseLevel > 70){
+ mes "[Mantis Researcher]";
+ mes "Thank you for your great help with the Mantis!";
+ mes "Currently the Situation is stable and i'm not in need of your help anymore to kill them.";
+ close;
+ }
+ mes "[Mantis Researcher]";
+ mes "Kill 50 of those Mantis and let me know when you're done. I will reward you for your efforts.";
+ setquest 60179;
+ close;
+ case 2:
+ mes "[Mantis Researcher]";
+ mes "If you change your mind, please come back.";
+ close;
+ }
+ case 2:
+ mes "[Mantis Researcher]";
+ mes "If you change your mind, please come back.";
+ close;
+ }
+ }
+ mes "[Mantis Researcher]";
+ mes "Oh boy, Oh boy!";
+ next;
+ mes "[Mantis Researcher]";
+ mes "Sorry I can't talk right now I am in a world of pain here, these darn Mantis are going to kill me.";
+ close;
+}
diff --git a/npc/pre-re/quests/collection/quest_pecopeco.txt b/npc/pre-re/quests/collection/quest_pecopeco.txt
new file mode 100644
index 000000000..1850180e1
--- /dev/null
+++ b/npc/pre-re/quests/collection/quest_pecopeco.txt
@@ -0,0 +1,251 @@
+//===== rAthena Script =======================================
+//= iRO Repeatable EXP Quests.
+//===== By: ==================================================
+//= L0ne_W0lf
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Aegis Conversion]
+//= Added Monster Killing quests.
+//= Repeatable EXP Quest (Bill of Birds)
+//===== Additional Comments: =================================
+//= 1.0 First version.
+//============================================================
+
+moc_fild02,74,329,3 script Gregor#PecoPeco_Hunt 97,{
+ if (checkquest(60101) != -1) {
+ if (checkquest(60101,HUNTING) != 2 ) {
+ mes "[Gregor]";
+ mes "Have you finished hunting the 50 Peco Pecos?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Gregor]";
+ mes "Hmm, I don't think you've hunted 50 yet...";
+ close;
+ case 2:
+ mes "[Gregor]";
+ mes "Please hurry and kill 50 of those tasty err pesky Peco Pecos.";
+ close;
+ case 3:
+ mes "[Gregor]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Gregor]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60101;
+ close;
+ case 2:
+ mes "[Gregor]";
+ mes "Please hurry and kill 50 of those tasty err pesky Peco Pecos.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Gregor]";
+ mes "Oh thank you so much!";
+ mes "I think that I can rest easily now.";
+ getexp 4000,2000;
+ erasequest 60101;
+ close;
+ }
+ }
+ if (checkquest(60102) != -1) {
+ if (checkquest(60102,HUNTING) != 2 ) {
+ mes "[Gregor]";
+ mes "Have you finished hunting the 50 Peco Pecos?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Gregor]";
+ mes "Hmm, I don't think you've hunted 100 yet...";
+ close;
+ case 2:
+ mes "[Gregor]";
+ mes "Please hurry and kill 100 of those tasty err pesky Peco Pecos.";
+ close;
+ case 3:
+ mes "[Gregor]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Gregor]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60102;
+ close;
+ case 2:
+ mes "[Gregor]";
+ mes "Please hurry and kill 100 of those tasty err pesky Peco Pecos.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Gregor]";
+ mes "Oh thank you so much!";
+ mes "I think that I can rest easily now.";
+ getexp 4000,2000;
+ getexp 4000,2000;
+ erasequest 60102;
+ close;
+ }
+ }
+ if (checkquest(60103) != -1) {
+ if (checkquest(60103,HUNTING) != 2 ) {
+ mes "[Gregor]";
+ mes "Have you finished hunting the 150 Peco Pecos?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Gregor]";
+ mes "Hmm, I don't think you've hunted 150 yet...";
+ close;
+ case 2:
+ mes "[Gregor]";
+ mes "Please hurry and kill 150 of those tasty err pesky Peco Pecos.";
+ close;
+ case 3:
+ mes "[Gregor]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Gregor]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60103;
+ close;
+ case 2:
+ mes "[Gregor]";
+ mes "Please hurry and kill 150 of those tasty err pesky Peco Pecos.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Gregor]";
+ mes "Oh thank you so much!";
+ mes "I think that I can rest easily now.";
+ getexp 4000,2000;
+ getexp 4000,2000;
+ getexp 4000,2000;
+ erasequest 60103;
+ close;
+ }
+ }
+ //for minimum level
+ if (BaseLevel > 9) {
+ //for maximum level
+ if (BaseLevel < 31) {
+ mes "[Gregor]";
+ mes "Peco Pecos are fascinating.";
+ mes "I am still doing my, uh, research...";
+ mes "But now it is of a different nature.";
+ next;
+ mes "[Gregor]";
+ mes "You see I've been uh, ''researching''";
+ mes "these animals by collecting their";
+ mes "Bill of Birds but lately they seem";
+ mes "to have become hostile towards me.";
+ next;
+ mes "[Gregor]";
+ mes "Can you do me a favor please?";
+ next;
+ switch(select("What kind of favor?:No")) {
+ case 1:
+ mes "[Gregor]";
+ mes "I am so afraid that these Peco Pecos will hurt me for my, uh, researching activities.";
+ next;
+ mes "[Gregor]";
+ mes "Can you help protect me by killing them?";
+ mes "I think I'll feel safer...";
+ mes "Please...";
+ next;
+ switch(select("Gather Items:Hunt Peco Pecos:Cancel")) {
+ case 1:
+ // Item turn in
+ mes "[Gregor]";
+ mes "I need some ^FF0000Bill of Birds^000000 for my, uh, research...";
+ next;
+ switch(select("I have some Bill of Birds:What did you need?")) {
+ case 1:
+ if (countitem(925) > 24) {
+ mes "[Gregor]";
+ mes "Thank you so much.";
+ delitem 925,25; //Bill_Of_Birds
+ getexp 4000,2000;
+ next;
+ mes "[Gregor]";
+ mes "This is gonna be delicious!";
+ close;
+ }
+ else {
+ mes "[Gregor]";
+ mes "It doesn't look like you have enough.";
+ next;
+ mes "[Gregor]";
+ mes "Can you help me out and bring me ^FF000025 Bill of Birds^000000?";
+ close;
+ }
+ case 2:
+ mes "[Gregor]";
+ mes "Can you help me out and bring me ^FF000025 Bill of Birds^000000?";
+ close;
+ }
+ case 2:
+ // Kill Count Quest
+ mes "[Gregor]";
+ mes "Ah, ok I think you can help me out by hunting some Peco Pecos.";
+ mes "How many would you like to hunt?";
+ next;
+ switch(select("50 Peco Pecos:100 Peco Pecos:150 Peco Pecos")) {
+ case 1:
+ mes "[Gregor]";
+ mes "Come back when you've finished your task and I will give you a small reward.";
+ setquest 60101;
+ close;
+ case 2:
+ mes "[Gregor]";
+ mes "Come back when you've finished your task and I will give you a small reward.";
+ setquest 60102;
+ close;
+ case 3:
+ mes "[Gregor]";
+ mes "Come back when you've finished your task and I will give you a small reward.";
+ setquest 60103;
+ close;
+ }
+ case 3:
+ mes "[Gregor]";
+ mes "If you change your mind, please come back.";
+ close;
+ }
+ case 2:
+ mes "[Gregor]";
+ mes "If you change your mind, please come back.";
+ close;
+ }
+ }
+ else {
+ mes "[Gregor]";
+ mes "Hmmm... you seem to be too strong to be fighting over here.";
+ close;
+ }
+ }
+ else {
+ mes "[Gregor]";
+ mes "Hi there.";
+ next;
+ mes "[Gregor]";
+ mes "Those picky's over there seem to be about your speed.";
+ close;
+ }
+}
diff --git a/npc/pre-re/quests/collection/quest_pupa.txt b/npc/pre-re/quests/collection/quest_pupa.txt
new file mode 100644
index 000000000..b6088a49f
--- /dev/null
+++ b/npc/pre-re/quests/collection/quest_pupa.txt
@@ -0,0 +1,233 @@
+//===== rAthena Script =======================================
+//= iRO Repeatable EXP Quests.
+//===== By: ==================================================
+//= L0ne_W0lf
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Aegis Conversion]
+//= Added Monster Killing quests.
+//= Repeatable EXP Quest (Chrysalis)
+//===== Additional Comments: =================================
+//= 1.0 First version.
+//============================================================
+
+gef_fild04,191,54,3 script Halgus#Pupa_Hunt 123,{
+ if (checkquest(60110) != -1) {
+ if (checkquest(60110,HUNTING) != 2 ) {
+ mes "[Halgus]";
+ mes "Have you gotten rid of the Pupa?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Halgus]";
+ mes "Hmm, I don't think you've gotten rid of 50 Pupa yet...";
+ close;
+ case 2:
+ mes "[Halgus]";
+ mes "Remember, get rid of 50 of those Pupa from the field.";
+ close;
+ case 3:
+ mes "[Halgus]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Halgus]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60110;
+ close;
+ case 2:
+ mes "[Halgus]";
+ mes "Remember, get rid of 50 of those Pupa from the field.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Halgus]";
+ mes "Oh thank you so much.";
+ mes "I know that I could've probably done this myself but it's not easy to be standing here all of the time.";
+ getexp 385,30;
+ erasequest 60110;
+ close;
+ }
+ }
+ if (checkquest(60111) != -1) {
+ if (checkquest(60111,HUNTING) != 2 ) {
+ mes "[Halgus]";
+ mes "Have you gotten rid of the Pupa?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Halgus]";
+ mes "Hmm, I don't think you've gotten rid of 100 Pupa yet...";
+ close;
+ case 2:
+ mes "[Halgus]";
+ mes "Remember, get rid of 100 of those Pupa from the field.";
+ close;
+ case 3:
+ mes "[Halgus]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Halgus]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60111;
+ close;
+ case 2:
+ mes "[Halgus]";
+ mes "Remember, get rid of 100 of those Pupa from the field.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Halgus]";
+ mes "Oh thank you so much.";
+ mes "I know that I could've probably done this myself but it's not easy to be standing here all of the time.";
+ getexp 385,30;
+ getexp 385,30;
+ erasequest 60111;
+ close;
+ }
+ }
+ if (checkquest(60112) != -1) {
+ if (checkquest(60112,HUNTING) != 2 ) {
+ mes "[Halgus]";
+ mes "Have you gotten rid of the Pupa?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Halgus]";
+ mes "Hmm, I don't think you've gotten rid of 150 Pupa yet...";
+ close;
+ case 2:
+ mes "[Halgus]";
+ mes "Remember, get rid of 150 of those Pupa from the field.";
+ close;
+ case 3:
+ mes "[Halgus]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Halgus]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60112;
+ close;
+ case 2:
+ mes "[Halgus]";
+ mes "Remember, get rid of 150 of those Pupa from the field.";
+ close;
+ }
+ }
+ }
+ else {
+ mes "[Halgus]";
+ mes "Oh thank you so much.";
+ mes "I know that I could've probably done this myself but it's not easy to be standing here all of the time.";
+ getexp 385,30;
+ getexp 385,30;
+ getexp 385,30;
+ erasequest 60112;
+ close;
+ }
+ }
+ //for minimum level
+ if (BaseLevel > 1) {
+ //for maximum level
+ if (BaseLevel < 21) {
+ mes "[Halgus]";
+ mes "New here are you?";
+ mes "Well look, I like helping new faces around here.";
+ mes "And lets be honest, you are not the prettiest looking face I've seen.";
+ next;
+ mes "[Halgus]";
+ mes "None-the-less my daughter thought it would be fun to gather pupa around this field and it's becoming unsightly.";
+ mes "Do you mind helping me get rid of some Pupa to clear out this field?";
+ next;
+ switch(select("Sure, I don't mind:No")) {
+ case 1:
+ mes "[Halgus]";
+ mes "Really? What would you like to do to help?";
+ next;
+ switch(select("Gather Items:Get rid of Pupa:Cancel")) {
+ case 1:
+ // Item turn in
+ mes "[Halgus]";
+ mes "Can you collect ^00CE0025 Chrysalis^000000 and return them to me, I promise to reward you well.";
+ next;
+ switch(select("I have Chrysalis:What did you need?")) {
+ case 1:
+ if (countitem(915) > 24) {
+ mes "[Halgus]";
+ mes "Amazing you found so many that fast.";
+ mes "Like I promised, give me the Chrysalis and I will reward you with my wisdom.";
+ delitem 915,25; //Chrysalis
+ getexp 385,30;
+ close;
+ }
+ else {
+ mes "[Halgus]";
+ mes "I need ^00CE0025 Chrysalis^000000 and no less please.";
+ close;
+ }
+ case 2:
+ mes "[Halgus]";
+ mes "I need ^00CE0025 Chrysalis^000000.";
+ close;
+ }
+ case 2:
+ // Kill Count Quest
+ mes "[Halgus]";
+ mes "Thank you so much!";
+ mes "How many would you like to get rid of?";
+ next;
+ switch(select("50 Pupa:100 Pupa:150 Pupa")) {
+ case 1:
+ mes "[Halgus]";
+ mes "If you can get rid of 50 of those Pupa from the field I will be grateful.";
+ setquest 60110;
+ close;
+ case 2:
+ mes "[Halgus]";
+ mes "If you can get rid of 100 of those Pupa from the field I will be grateful.";
+ setquest 60111;
+ close;
+ case 3:
+ mes "[Halgus]";
+ mes "If you can get rid of 150 of those Pupa from the field I will be grateful.";
+ setquest 60112;
+ close;
+ }
+ case 3:
+ mes "[Halgus]";
+ mes "If you change your mind, please come back.";
+ close;
+ }
+ case 2:
+ mes "[Halgus]";
+ mes "If you change your mind, please come back.";
+ close;
+ }
+ }
+ else {
+ mes "[Halgus]";
+ mes "You could probably easily help me out, but I want to give charity to those who are not as strong as you.";
+ close;
+ }
+ }
+ else {
+ mes "[Halgus]";
+ mes "Please return to me when you are a little stronger.";
+ close;
+ }
+}
diff --git a/npc/pre-re/quests/collection/quest_zhupolong.txt b/npc/pre-re/quests/collection/quest_zhupolong.txt
new file mode 100644
index 000000000..bf3999683
--- /dev/null
+++ b/npc/pre-re/quests/collection/quest_zhupolong.txt
@@ -0,0 +1,101 @@
+//===== rAthena Script =======================================
+//= iRO Repeatable EXP Quests.
+//===== By: ==================================================
+//= Masao
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= Custom Version.
+//= Repeatable EXP Quest : Kill 50 Zhu Po Long.
+//===== Additional Comments: =================================
+//= 1.0 First version.
+//============================================================
+
+lou_dun02,161,264,4 script Dragon Hunter 732,{
+
+ if (checkquest(60182) != -1) {
+ if (checkquest(60182,HUNTING) != 2 ) {
+ mes "[Dragon Hunter]";
+ mes "Have you finished hunting the 50 Zhu Po Long?";
+ next;
+ switch(select("Yes:No:I want to quit")) {
+ case 1:
+ mes "[Dragon Hunter]";
+ mes "Hmm, I don't think you've hunted 50 yet.";
+ close;
+ case 2:
+ mes "[Dragon Hunter]";
+ mes "Remember, I need help hunting Zhu Po Long so go and hunt 50 of them.";
+ close;
+ case 3:
+ mes "[Dragon Hunter]";
+ mes "Are you sure that you want to stop hunting?";
+ mes "Any progress that you've made will be erased";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Dragon Hunter]";
+ mes "Ok then, well come back here if you change your mind.";
+ erasequest 60182;
+ close;
+ case 2:
+ mes "[Dragon Hunter]";
+ mes "Please kill 50 Zhu Po Long in order to make this a Place were people can go to and gather Experience.";
+ close;
+ }
+ }
+ }
+ mes "[Dragon Hunter]";
+ mes "Amazing, you did that with speed.";
+ getexp 151300,60520;
+ erasequest 60182;
+ close;
+ }
+ if ((BaseLevel > 49) && (BaseLevel < 91)) {
+ mes "[Dragon Hunter]";
+ mes "Oh great!";
+ mes "You are here to help me right?";
+ mes "If not, i don't know what to do with the Monsters in this Place!";
+ next;
+ switch(select("Sure:No")) {
+ case 1:
+ mes "[Dragon Hunter]";
+ mes "Great! I knew the moment i saw you that i can count on you!";
+ mes "I need you to reduce the Amount of Monsters which are currently rampaging on this Map!";
+ mes "There are to many Zhu Po Long around, which makes it impossible for the lower level players to gain good experience here.";
+ next;
+ mes "[Dragon Hunter]";
+ mes "So, would you still like to help me?";
+ next;
+ switch(select("Sure:Cancel")) {
+ case 1:
+ if(BaseLevel > 90){
+ mes "[Dragon Hunter]";
+ mes "Thank you for your great help with the Zhu Po Long!";
+ mes "Currently the Situation is stable and i'm not in need of your help anymore to kill them.";
+ close;
+ }
+ mes "[Dragon Hunter]";
+ mes "Kill 50 of those Zhu Po Long and let me know when you're done. I will reward you for your efforts.";
+ setquest 60182;
+ close;
+ case 2:
+ mes "[Dragon Hunter]";
+ mes "If you change your mind, please come back.";
+ close;
+ }
+ case 2:
+ mes "[Dragon Hunter]";
+ mes "If you change your mind, please come back.";
+ close;
+ }
+ }
+ mes "[Dragon Hunter]";
+ mes "Oh boy, Oh boy!";
+ next;
+ mes "[Dragon Hunter]";
+ mes "Sorry I can't talk right now I am in a world of pain here, these darn Zhu Po Long are going to kill me.";
+ close;
+}
diff --git a/npc/pre-re/quests/mrsmile.txt b/npc/pre-re/quests/mrsmile.txt
new file mode 100644
index 000000000..b03afb770
--- /dev/null
+++ b/npc/pre-re/quests/mrsmile.txt
@@ -0,0 +1,16 @@
+//===== rAthena Script =======================================
+//= Mr. Smile Quest
+//===== By: ==================================================
+//= Daegaladh
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Aegis Conversion]
+//= Trade Clover, Fluff and Jellopy for a Mr. Smile mask.
+//===== Additional Comments: =================================
+//= 1.0 First version.
+//============================================================
+
+izlude,129,118,4 duplicate(SmileHelper) Smile Assistance#iz 92
diff --git a/npc/pre-re/quests/quests_izlude.txt b/npc/pre-re/quests/quests_izlude.txt
new file mode 100644
index 000000000..e742332eb
--- /dev/null
+++ b/npc/pre-re/quests/quests_izlude.txt
@@ -0,0 +1,15 @@
+//===== rAthena Script =======================================
+//= Quest NPCs related to Izlude
+//===== By: ==================================================
+//= Daegaladh
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= Edgar's Offer
+//===== Additional Comments: =================================
+//= 1.0 First version.
+//============================================================
+
+izlude,182,186,2 duplicate(Edgar_izlude) Edgar#izlude 49
diff --git a/npc/pre-re/quests/quests_lighthalzen.txt b/npc/pre-re/quests/quests_lighthalzen.txt
new file mode 100644
index 000000000..aadb0296d
--- /dev/null
+++ b/npc/pre-re/quests/quests_lighthalzen.txt
@@ -0,0 +1,15 @@
+//===== rAthena Script =======================================
+//= Quest NPCs located in Lighthalzen
+//===== By: ==================================================
+//= Daegaladh
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= Quests related to Lighthalzen City.
+//===== Additional Comments: =================================
+//= 1.0 First version.
+//============================================================
+
+izlude,186,57,5 duplicate(Scamp) Scamp#2 853
diff --git a/npc/pre-re/scripts_athena.conf b/npc/pre-re/scripts_athena.conf
new file mode 100644
index 000000000..875900bda
--- /dev/null
+++ b/npc/pre-re/scripts_athena.conf
@@ -0,0 +1,81 @@
+// --------------------------------------------------------------
+// - Pre-Renewal Core Scripts -
+// --------------------------------------------------------------
+
+// -------------------------- Airport ---------------------------
+npc: npc/pre-re/airports/izlude.txt
+
+// --------------------------- Cities ---------------------------
+npc: npc/pre-re/cities/alberta.txt
+npc: npc/pre-re/cities/izlude.txt
+npc: npc/pre-re/cities/jawaii.txt
+
+// --------------------------- Guides ---------------------------
+npc: npc/pre-re/guides/guides_alberta.txt
+npc: npc/pre-re/guides/guides_aldebaran.txt
+npc: npc/pre-re/guides/guides_amatsu.txt
+npc: npc/pre-re/guides/guides_ayothaya.txt
+npc: npc/pre-re/guides/guides_comodo.txt
+npc: npc/pre-re/guides/guides_einbroch.txt
+npc: npc/pre-re/guides/guides_geffen.txt
+npc: npc/pre-re/guides/guides_gonryun.txt
+npc: npc/pre-re/guides/guides_hugel.txt
+npc: npc/pre-re/guides/guides_izlude.txt
+npc: npc/pre-re/guides/guides_juno.txt
+npc: npc/pre-re/guides/guides_lighthalzen.txt
+npc: npc/pre-re/guides/guides_louyang.txt
+npc: npc/pre-re/guides/guides_morroc.txt
+npc: npc/pre-re/guides/guides_moscovia.txt
+npc: npc/pre-re/guides/guides_niflheim.txt
+npc: npc/pre-re/guides/guides_payon.txt
+npc: npc/pre-re/guides/guides_prontera.txt
+npc: npc/pre-re/guides/guides_rachel.txt
+npc: npc/pre-re/guides/guides_umbala.txt
+npc: npc/pre-re/guides/guides_veins.txt
+
+// ---------------- Kafras & Cool Event Corp. -------------------
+npc: npc/pre-re/kafras/kafras_izl.txt
+
+// -------------------------- Merchant --------------------------
+npc: npc/pre-re/merchants/shops.txt
+
+// --------------------------- Others ---------------------------
+// - Izlude Battle Arena ----------------------------------------
+npc: npc/pre-re/other/arena/arena_aco.txt
+npc: npc/pre-re/other/arena/arena_lvl50.txt
+npc: npc/pre-re/other/arena/arena_lvl60.txt
+npc: npc/pre-re/other/arena/arena_lvl70.txt
+npc: npc/pre-re/other/arena/arena_lvl80.txt
+npc: npc/pre-re/other/arena/arena_party.txt
+npc: npc/pre-re/other/arena/arena_point.txt
+npc: npc/pre-re/other/arena/arena_room.txt
+// --------------------------------------------------------------
+npc: npc/pre-re/other/mercenary_rent.txt
+
+// --------------------------- Quests ---------------------------
+// - Repeatable EXP Quests (iRO) --------------------------------
+//npc: npc/pre-re/quests/collection/quest_alligator.txt
+//npc: npc/pre-re/quests/collection/quest_caramel.txt
+// - Exploitable due to vendor selling Acorns in Moscovia
+//npc: npc/pre-re/quests/collection/quest_coco.txt
+//npc: npc/pre-re/quests/collection/quest_creamy.txt
+//npc: npc/pre-re/quests/collection/quest_demonpungus.txt
+//npc: npc/pre-re/quests/collection/quest_disguiseloliruri.txt
+//npc: npc/pre-re/quests/collection/quest_dokebi.txt
+//npc: npc/pre-re/quests/collection/quest_dryad.txt
+//npc: npc/pre-re/quests/collection/quest_fabre.txt
+//npc: npc/pre-re/quests/collection/quest_frilldora.txt
+// - Exploitable due to vendor selling Antelope Horns in Niflheim
+//npc: npc/pre-re/quests/collection/quest_goat.txt
+//npc: npc/pre-re/quests/collection/quest_golem.txt
+//npc: npc/pre-re/quests/collection/quest_hode.txt
+//npc: npc/pre-re/quests/collection/quest_leafcat.txt
+//npc: npc/pre-re/quests/collection/quest_mantis.txt
+// - Exploitable due to vendor selling Bill of Birds in Morroc
+//npc: npc/pre-re/quests/collection/quest_pecopeco.txt
+//npc: npc/pre-re/quests/collection/quest_pupa.txt
+//npc: npc/pre-re/quests/collection/quest_zhupolong.txt
+// --------------------------------------------------------------
+npc: npc/pre-re/quests/mrsmile.txt
+npc: npc/pre-re/quests/quests_izlude.txt
+npc: npc/pre-re/quests/quests_lighthalzen.txt
diff --git a/npc/pre-re/scripts_jobs.conf b/npc/pre-re/scripts_jobs.conf
new file mode 100644
index 000000000..4c554e054
--- /dev/null
+++ b/npc/pre-re/scripts_jobs.conf
@@ -0,0 +1,14 @@
+// --------------------------------------------------------------
+// - Pre-Renewal Job Scripts -
+// --------------------------------------------------------------
+
+// ------------------------- Job Quests -------------------------
+// - 1-1
+npc: npc/pre-re/jobs/1-1/acolyte.txt
+npc: npc/pre-re/jobs/1-1/archer.txt
+npc: npc/pre-re/jobs/1-1/mage.txt
+npc: npc/pre-re/jobs/1-1/merchant.txt
+npc: npc/pre-re/jobs/1-1/swordman.txt
+npc: npc/pre-re/jobs/1-1/thief.txt
+// - Novice
+npc: npc/pre-re/jobs/novice/novice.txt
diff --git a/npc/pre-re/scripts_main.conf b/npc/pre-re/scripts_main.conf
new file mode 100644
index 000000000..e029447b5
--- /dev/null
+++ b/npc/pre-re/scripts_main.conf
@@ -0,0 +1,44 @@
+// --------------------------------------------------------------
+// - rAthena Pre-Renewal Primary Scripts File -
+// --------------------------------------------------------------
+// The idea of this new system is to make scripts more organized
+// since the old system was rather messy with all the NPCs in one
+// file. Now scripts are organized in to files arraged by type.
+// Custom scripts are now in scripts_custom.conf, all other
+// scripts are deemed as 'official'. You should place your NPCs
+// in to scripts_custom.conf to follow the trend.
+//
+// Thanks,
+// Ancyker and the rest of the rAthena Team
+//
+// Note: "Comments" are all text on the right side of a double slash "//"
+// Whatever text is commented will not be parsed by the servers, and serves
+// only as information/reference.
+//
+// --------------------------------------------------------------
+
+// ------------------ Global Scripts Functions ------------------
+// Utilitarian functions used by many scripts.
+npc: npc/other/Global_Functions.txt
+
+// -------------------- Cash Shop Functions ---------------------
+// Used by cash shop items in the Item Database.
+npc: npc/other/CashShop_Functions.txt
+
+// ------------------- Common Script Files ----------------------
+import: npc/scripts_athena.conf
+import: npc/scripts_guild.conf
+import: npc/scripts_jobs.conf
+import: npc/scripts_mapflags.conf
+import: npc/scripts_monsters.conf
+import: npc/scripts_warps.conf
+
+// ----------------- Pre-Renewal Script Files -------------------
+import: npc/pre-re/scripts_athena.conf
+import: npc/pre-re/scripts_jobs.conf
+import: npc/pre-re/scripts_monsters.conf
+import: npc/pre-re/scripts_warps.conf
+
+// ------------------- Custom Script Files ----------------------
+// - Your NPCs go in this file!
+import: npc/scripts_custom.conf
diff --git a/npc/pre-re/scripts_monsters.conf b/npc/pre-re/scripts_monsters.conf
new file mode 100644
index 000000000..8ae26c878
--- /dev/null
+++ b/npc/pre-re/scripts_monsters.conf
@@ -0,0 +1,70 @@
+// --------------------------------------------------------------
+// - Pre-Renewal Monster Scripts -
+// --------------------------------------------------------------
+
+// -------------------------- Dungeons --------------------------
+npc: npc/pre-re/mobs/dungeons/abbey.txt
+npc: npc/pre-re/mobs/dungeons/abyss.txt
+npc: npc/pre-re/mobs/dungeons/alde_dun.txt
+npc: npc/pre-re/mobs/dungeons/ama_dun.txt
+npc: npc/pre-re/mobs/dungeons/anthell.txt
+npc: npc/pre-re/mobs/dungeons/ayo_dun.txt
+npc: npc/pre-re/mobs/dungeons/beach_dun.txt
+npc: npc/pre-re/mobs/dungeons/c_tower.txt
+npc: npc/pre-re/mobs/dungeons/ein_dun.txt
+npc: npc/pre-re/mobs/dungeons/gef_dun.txt
+npc: npc/pre-re/mobs/dungeons/gefenia.txt
+npc: npc/pre-re/mobs/dungeons/glastheim.txt
+npc: npc/pre-re/mobs/dungeons/gld_dun.txt
+npc: npc/pre-re/mobs/dungeons/gld_dunSE.txt
+npc: npc/pre-re/mobs/dungeons/gon_dun.txt
+npc: npc/pre-re/mobs/dungeons/ice_dun.txt
+npc: npc/pre-re/mobs/dungeons/in_sphinx.txt
+npc: npc/pre-re/mobs/dungeons/iz_dun.txt
+npc: npc/pre-re/mobs/dungeons/juperos.txt
+npc: npc/pre-re/mobs/dungeons/kh_dun.txt
+npc: npc/pre-re/mobs/dungeons/lhz_dun.txt
+npc: npc/pre-re/mobs/dungeons/lou_dun.txt
+npc: npc/pre-re/mobs/dungeons/mag_dun.txt
+npc: npc/pre-re/mobs/dungeons/mjo_dun.txt
+npc: npc/pre-re/mobs/dungeons/moc_pryd.txt
+npc: npc/pre-re/mobs/dungeons/mosk_dun.txt
+npc: npc/pre-re/mobs/dungeons/nyd_dun.txt
+npc: npc/pre-re/mobs/dungeons/odin.txt
+npc: npc/pre-re/mobs/dungeons/orcsdun.txt
+npc: npc/pre-re/mobs/dungeons/pay_dun.txt
+npc: npc/pre-re/mobs/dungeons/prt_maze.txt
+npc: npc/pre-re/mobs/dungeons/prt_sew.txt
+npc: npc/pre-re/mobs/dungeons/ra_san.txt
+npc: npc/pre-re/mobs/dungeons/tha_t.txt
+npc: npc/pre-re/mobs/dungeons/thor_v.txt
+npc: npc/pre-re/mobs/dungeons/treasure.txt
+npc: npc/pre-re/mobs/dungeons/tur_dun.txt
+npc: npc/pre-re/mobs/dungeons/um_dun.txt
+npc: npc/pre-re/mobs/dungeons/xmas_dun.txt
+npc: npc/pre-re/mobs/dungeons/yggdrasil.txt
+
+// --------------------------- Fields ---------------------------
+npc: npc/pre-re/mobs/fields/amatsu.txt
+npc: npc/pre-re/mobs/fields/ayothaya.txt
+npc: npc/pre-re/mobs/fields/comodo.txt
+npc: npc/pre-re/mobs/fields/einbroch.txt
+npc: npc/pre-re/mobs/fields/geffen.txt
+npc: npc/pre-re/mobs/fields/gonryun.txt
+npc: npc/pre-re/mobs/fields/hugel.txt
+npc: npc/pre-re/mobs/fields/jawaii.txt
+npc: npc/pre-re/mobs/fields/lighthalzen.txt
+npc: npc/pre-re/mobs/fields/louyang.txt
+npc: npc/pre-re/mobs/fields/lutie.txt
+npc: npc/pre-re/mobs/fields/manuk.txt
+npc: npc/pre-re/mobs/fields/mjolnir.txt
+npc: npc/pre-re/mobs/fields/morocc.txt
+npc: npc/pre-re/mobs/fields/moscovia.txt
+npc: npc/pre-re/mobs/fields/niflheim.txt
+npc: npc/pre-re/mobs/fields/payon.txt
+npc: npc/pre-re/mobs/fields/prontera.txt
+npc: npc/pre-re/mobs/fields/rachel.txt
+npc: npc/pre-re/mobs/fields/splendide.txt
+npc: npc/pre-re/mobs/fields/umbala.txt
+npc: npc/pre-re/mobs/fields/veins.txt
+npc: npc/pre-re/mobs/fields/yuno.txt
diff --git a/npc/pre-re/scripts_warps.conf b/npc/pre-re/scripts_warps.conf
new file mode 100644
index 000000000..50e87d0d9
--- /dev/null
+++ b/npc/pre-re/scripts_warps.conf
@@ -0,0 +1,23 @@
+// --------------------------------------------------------------
+// - Pre-Renewal Warp Scripts -
+// --------------------------------------------------------------
+
+// --------------------------- Cities ---------------------------
+npc: npc/pre-re/warps/cities/izlude.txt
+npc: npc/pre-re/warps/cities/rachel.txt
+npc: npc/pre-re/warps/cities/yggdrasil.txt
+
+// --------------------------- Fields ---------------------------
+npc: npc/pre-re/warps/fields/com_fild.txt
+npc: npc/pre-re/warps/fields/geffen_fild.txt
+npc: npc/pre-re/warps/fields/hugel_fild.txt
+npc: npc/pre-re/warps/fields/morroc_fild.txt
+npc: npc/pre-re/warps/fields/payon_fild.txt
+npc: npc/pre-re/warps/fields/prontera_fild.txt
+npc: npc/pre-re/warps/fields/rachel_fild.txt
+npc: npc/pre-re/warps/fields/veins_fild.txt
+npc: npc/pre-re/warps/fields/yuno_fild.txt
+
+// --------------------------- Others ---------------------------
+npc: npc/pre-re/warps/other/arena.txt
+npc: npc/pre-re/warps/other/sign.txt
diff --git a/npc/pre-re/warps/cities/izlude.txt b/npc/pre-re/warps/cities/izlude.txt
new file mode 100644
index 000000000..f2f1b6aaa
--- /dev/null
+++ b/npc/pre-re/warps/cities/izlude.txt
@@ -0,0 +1,34 @@
+//===== rAthena Script =======================================
+//= Izlude Warp Script
+//===== By: ==================================================
+//= Athena (1.0), Nana (1.1)
+//===== Current Version: =====================================
+//= 1.4
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Description: =========================================
+//= Warp Points for Izlude
+//===== Additional Comments: =================================
+//= 1.3 Added warps to Izlude Airship [Justin84]
+//= 1.4 Minor correction on airport warps
+//============================================================
+
+//= Izlude City ==============================================
+izlude,109,151,0 warp iz01 3,3,izlude_in,65,87
+izlude,148,148,0 warp iz02 2,2,izlude_in,116,49
+izlude,216,129,0 warp iz03 3,2,izlude_in,151,127
+izlude,30,78,0 warp iz001 3,3,prt_fild08,367,212
+izlude,52,140,0 warp iz04 2,2,izlude_in,74,161
+izlude_in,108,169,0 warp iz05 2,3,izlude_in,84,169
+izlude_in,116,46,0 warp iz02-1 3,2,izlude,145,145
+izlude_in,148,127,0 warp iz03-1 2,5,izlude,212,129
+izlude_in,171,97,0 warp iz06 3,2,izlude_in,172,119
+izlude_in,172,116,0 warp iz06-1 3,2,izlude_in,172,94
+izlude_in,172,139,0 warp iz07 3,2,izlude_in,172,161
+izlude_in,172,158,0 warp iz07-1 3,2,izlude_in,172,136
+izlude_in,43,169,0 warp w219 2,3,izlude_in,64,169
+izlude_in,65,84,0 warp iz01-1 5,2,izlude,113,147
+izlude_in,74,158,0 warp iz04-1 3,2,izlude,52,136
+izlude_in,87,169,0 warp iz05-1 2,3,izlude_in,111,169
+izlude,149,39,0 warp izair1 1,1,izlude,182,56
+izlude,176,56,0 warp lizair2 1,1,izlude,145,40
diff --git a/npc/pre-re/warps/cities/rachel.txt b/npc/pre-re/warps/cities/rachel.txt
new file mode 100644
index 000000000..f5497f3ac
--- /dev/null
+++ b/npc/pre-re/warps/cities/rachel.txt
@@ -0,0 +1,125 @@
+//===== rAthena Script =======================================
+//= Rachel Warp Script
+//===== By: ==================================================
+//= erKURITA & RockmanEXE
+//===== Current Version: =====================================
+//= 1.4
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Description: =========================================
+//= Warp Points for Rachel City, shops & other locations
+//===== Additional Comments: =================================
+//= 1.0 Added the official warps and commented out the
+//= "custom duplicates" for future checkout. Special thanks
+//= to RockmanEXE who provided all the info. [erKURITA]
+//= 1.1 Added warp to Veins Field [Playtester]
+//= 1.2 Fully official rachel warps [Playtester]
+//= 1.2a Added missing warp (Pope's office entryway -> temple) [L0ne_W0lf]
+//= 1.3 Updated Rachel -> Veins Field warp. [L0ne_W0lf]
+//= 1.4 Disabled rachel33, moved to quest_rachel.txt [L0ne_W0lf]
+//============================================================
+
+rachel,150,249,0 warp rachel01 1,1,ra_temple,120,30
+
+rachel,81,33,0 warp rachel02 1,1,ra_in01,237,198
+rachel,61,33,0 warp rachel03 1,1,ra_in01,181,198
+rachel,217,55,0 warp rachel04 1,1,ra_in01,250,34
+rachel,179,220,0 warp rachel05 1,1,ra_in01,295,352
+rachel,103,240,0 warp rachel06 1,1,ra_in01,343,193
+rachel,216,160,0 warp rachel07 1,1,ra_in01,135,282
+rachel,42,87,0 warp rachel08 1,1,ra_in01,171,359
+rachel,42,109,0 warp rachel09 1,1,ra_in01,171,388
+rachel,83,78,0 warp rachel10 1,1,ra_in01,249,266
+rachel,115,149,0 warp rachel11 1,1,ra_in01,386,43
+rachel,90,189,0 warp rachel12 1,1,ra_in01,192,148
+rachel,108,200,0 warp rachel13 1,1,ra_in01,213,83
+
+ra_in01,188,189,0 warp rachel14 1,1,ra_in01,263,144
+ra_in01,296,144,0 warp rachel15 1,1,ra_in01,235,189
+ra_in01,175,189,0 warp rachel16 1,1,ra_in01,132,189
+ra_in01,244,189,0 warp rachel17 1,1,ra_in01,291,189
+ra_in01,235,21,0 warp rachel18 1,1,ra_in01,187,31
+ra_in01,312,374,0 warp rachel19 1,1,ra_in01,359,374
+ra_in01,291,371,0 warp rachel20 1,1,ra_in01,225,380
+ra_in01,381,200,0 warp rachel21 1,1,ra_in01,377,268
+ra_in01,367,255,0 warp rachel22 1,1,ra_in01,326,296
+ra_in01,319,303,0 warp rachel23 1,1,ra_in01,381,320
+ra_in01,178,370,0 warp rachel24 1,1,ra_in01,113,385
+ra_in01,165,369,0 warp rachel25 1,1,ra_in01,122,334
+ra_in01,241,299,0 warp rachel26 1,1,ra_in01,193,312
+ra_in01,185,303,0 warp rachel27 1,1,ra_in01,194,249
+ra_in01,357,61,0 warp rachel28 1,1,ra_in01,310,62
+ra_in01,297,59,0 warp rachel29 1,1,ra_in01,339,116
+
+ra_temin,130,93,0 warp rachel30 1,1,ra_temin,239,258
+ra_temin,206,93,0 warp rachel31 1,1,ra_temin,312,258
+ra_temin,275,332,0 warp rachel32 1,1,ra_temin,27,305
+
+//ra_temin,275,226,0 warp rachel33 1,1,ra_temsky,99,11
+
+ra_temsky,99,118,0 warp rachel34 1,1,ra_temsky,99,140
+ra_temsky,112,143,0 warp rachel35 1,1,ra_temsky,141,139
+ra_temsky,87,143,0 warp rachel36 1,1,ra_temsky,58,139
+
+ra_temple,120,22,0 warp rachel37 1,1,rachel,150,243
+
+ra_in01,237,202,0 warp rachel38 1,1,rachel,81,38
+ra_in01,181,202,0 warp rachel39 1,1,rachel,61,38
+ra_in01,250,38,0 warp rachel40 1,1,rachel,217,60
+ra_in01,295,348,0 warp rachel41 1,1,rachel,179,215
+ra_in01,339,193,0 warp rachel42 1,1,rachel,98,238
+ra_in01,135,286,0 warp rachel43 1,1,rachel,216,164
+ra_in01,171,355,0 warp rachel44 1,1,rachel,42,82
+ra_in01,172,392,0 warp rachel45 1,1,rachel,42,114
+ra_in01,249,262,0 warp rachel46 1,1,rachel,83,73
+ra_in01,386,39,0 warp rachel47 1,1,rachel,115,144
+ra_in01,192,152,0 warp rachel48 1,1,rachel,90,193
+ra_in01,213,79,0 warp rachel49 1,1,rachel,108,195
+
+ra_in01,259,144,0 warp rachel50 1,1,ra_in01,184,189
+ra_in01,231,189,0 warp rachel51 1,1,ra_in01,292,144
+ra_in01,136,189,0 warp rachel52 1,1,ra_in01,179,189
+ra_in01,287,189,0 warp rachel53 1,1,ra_in01,240,189
+ra_in01,183,31,0 warp rachel54 1,1,ra_in01,239,21
+ra_in01,355,374,0 warp rachel55 1,1,ra_in01,308,374
+ra_in01,221,380,0 warp rachel56 1,1,ra_in01,287,371
+ra_in01,381,268,0 warp rachel57 1,1,ra_in01,387,200
+ra_in01,330,296,0 warp rachel58 1,1,ra_in01,371,255
+ra_in01,381,324,0 warp rachel59 1,1,ra_in01,319,299
+ra_in01,109,385,0 warp rachel60 1,1,ra_in01,174,370
+ra_in01,126,334,0 warp rachel61 1,1,ra_in01,169,369
+ra_in01,197,312,0 warp rachel62 1,1,ra_in01,245,299
+ra_in01,194,245,0 warp rachel63 1,1,ra_in01,190,302
+ra_in01,314,62,0 warp rachel64 1,1,ra_in01,361,61
+ra_in01,339,120,0 warp rachel65 1,1,ra_in01,297,63
+
+ra_temin,169,18,0 warp rachel66 1,1,ra_temple,119,175
+
+ra_temin,239,253,0 warp rachel67 1,1,ra_temin,130,88
+ra_temin,312,253,0 warp rachel68 1,1,ra_temin,206,88
+ra_temin,27,299,0 warp rachel69 1,1,ra_temin,275,328
+
+ra_temsky,99,8,0 warp rachel70 1,1,ra_temin,275,231
+
+ra_temsky,99,135,0 warp rachel71 1,1,ra_temsky,99,113
+ra_temsky,137,139,0 warp rachel72 1,1,ra_temsky,109,143
+ra_temsky,62,139,0 warp rachel73 1,1,ra_temsky,91,143
+
+rachel,25,125,0 warp rachel74 1,1,ra_fild11,353,226
+rachel,275,125,0 warp rachel75 1,1,ra_fild12,40,226
+rachel,130,21,0 warp rachel76 1,1,ve_fild02,195,377
+
+que_rachel,130,93,0 warp rachel77 1,1,que_rachel,239,258
+que_rachel,206,93,0 warp rachel78 1,1,que_rachel,312,258
+que_rachel,275,332,0 warp rachel79 1,1,que_rachel,27,305
+que_rachel,239,253,0 warp rachel80 1,1,que_rachel,130,88
+que_rachel,312,253,0 warp rachel81 1,1,que_rachel,206,88
+que_rachel,27,299,0 warp rachel82 1,1,que_rachel,275,328
+
+ra_in01,309,70,0 warp rachel83 1,1,rachel,108,175
+rachel,105,171,0 warp rachel84 1,1,ra_in01,309,65
+ra_in01,375,109,0 warp rachel85 1,1,rachel,116,154
+rachel,116,158,0 warp rachel86 1,1,ra_in01,375,114
+
+//Additional Temple warp
+ra_temin,275,243,0 warp rachel87 1,1,ra_temin,131,131
diff --git a/npc/pre-re/warps/cities/yggdrasil.txt b/npc/pre-re/warps/cities/yggdrasil.txt
new file mode 100644
index 000000000..bd4a74996
--- /dev/null
+++ b/npc/pre-re/warps/cities/yggdrasil.txt
@@ -0,0 +1,25 @@
+//===== rAthena Script =======================================
+//= Yggdrasil Tree Warp Script
+//===== By: ==================================================
+//= PKGINGO (1.0)
+//===== Current Version: =====================================
+//= 1.1
+//===== Compatible With: =====================================
+//= Any Athena Version; RO Episode 6+
+//===== Description: =========================================
+//= Warp Points for Yggdrasil Tree
+//===== Additional Comments: =================================
+//= Extracted from Vidar -> Athena
+//= 1.1 Moved Umbala warp to this file.
+//============================================================
+
+//Umbala Entrance
+umbala,106,285,0 warp um_dun1-1 1,1,um_dun01,42,30
+um_dun02,125,163,0 warp nwarp1 1,1,yggdrasil01,40,63
+
+//Niflheim Exit
+yggdrasil01,249,262,0 warp nwarp5 1,1,nif_fild01,315,66
+
+//Yggdrasil Tree
+yggdrasil01,271,51,0 warp nwarp3 1,1,yggdrasil01,26,196
+yggdrasil01,26,193,0 warp nwarp4 1,1,yggdrasil01,269,53
diff --git a/npc/pre-re/warps/fields/com_fild.txt b/npc/pre-re/warps/fields/com_fild.txt
new file mode 100644
index 000000000..a28eace85
--- /dev/null
+++ b/npc/pre-re/warps/fields/com_fild.txt
@@ -0,0 +1,50 @@
+//===== rAthena Script =======================================
+//= Comodo Field Warp Script
+//===== By: ==================================================
+//= Nana
+//===== Current Version: =====================================
+//= 1.1
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Description: =========================================
+//= [Aegis Conversion]
+//= Warp Points for Comodo Fields
+//===== Additional Comments: =================================
+//= 1.1 Rescripted to Aegis 10.3 Standards. [L0ne_W0lf]
+//============================================================
+
+cmd_fild01,222,24,0 warp cmd_fild01-1 1,1,cmd_fild02,222,372
+cmd_fild01,362,73,0 warp cmd_fild01-2 1,1,cmd_fild03,27,68
+cmd_fild01,362,263,0 warp cmd_fild01-3 1,1,cmd_fild03,27,269
+cmd_fild02,222,376,0 warp cmd_fild02-1 1,1,cmd_fild01,222,30
+cmd_fild02,382,269,0 warp cmd_fild02-2 1,1,cmd_fild04,25,275
+cmd_fild02,358,95,0 warp cmd_fild02-3 1,1,cmd_fild04,35,94
+cmd_fild03,23,269,0 warp cmd_fild03-1 1,1,cmd_fild01,359,260
+cmd_fild03,23,68,0 warp cmd_fild03-2 1,1,cmd_fild01,359,76
+cmd_fild03,181,17,0 warp cmd_fild03-3 1,1,cmd_fild04,181,367
+cmd_fild03,384,165,0 warp cmd_fild03-4 1,1,cmd_fild05,26,161
+cmd_fild04,21,275,0 warp cmd_fild04-1 1,1,cmd_fild02,378,264
+cmd_fild04,31,92,0 warp cmd_fild04-2 1,1,cmd_fild02,351,92
+cmd_fild04,376,287,0 warp cmd_fild04-3 1,1,cmd_fild06,26,288
+cmd_fild04,180,372,0 warp cmd_fild04-4 1,1,cmd_fild03,183,23
+cmd_fild05,21,163,0 warp cmd_fild05-1 1,1,cmd_fild03,377,167
+cmd_fild05,148,19,0 warp cmd_fild05-2 1,1,cmd_fild06,150,374
+cmd_fild06,150,380,0 warp cmd_fild06-3 1,1,cmd_fild05,146,27
+cmd_fild06,21,285,0 warp cmd_fild06-4 1,1,cmd_fild04,371,288
+cmd_fild06,151,27,0 warp cmd_fild06-5 1,1,cmd_fild07,147,370
+cmd_fild06,368,96,0 warp cmd_fild06-6 1,1,cmd_fild08,25,102
+cmd_fild06,379,174,0 warp cmd_fild06-7 1,1,cmd_fild08,28,166
+cmd_fild06,372,359,0 warp cmd_fild06-8 1,1,cmd_fild08,31,359
+cmd_fild07,149,379,0 warp cmd_fild07-1 10,1,cmd_fild06,147,36
+cmd_fild07,389,186,0 warp cmd_fild07-2 1,3,cmd_fild09,18,170
+cmd_fild08,25,355,0 warp cmd_fild08-1 1,1,cmd_fild06,366,359
+cmd_fild08,25,170,0 warp cmd_fild08-2 1,1,cmd_fild06,374,167
+cmd_fild08,15,102,0 warp cmd_fild08-3 1,1,cmd_fild06,361,96
+cmd_fild08,76,31,0 warp cmd_fild08-4 2,1,cmd_fild09,76,375
+cmd_fild08,309,48,0 warp cmd_fild08-5 2,1,cmd_fild09,307,374
+cmd_fild08,354,324,0 warp cmd_fild08-6 1,1,moc_fild12,26,305
+cmd_fild09,12,170,0 warp cmd_fild09-1 1,4,cmd_fild07,382,184
+cmd_fild09,369,164,0 warp cmd_fild09-2 2,2,moc_fild18,55,170
+cmd_fild09,309,381,0 warp cmd_fild09-3 2,1,cmd_fild08,309,60
+cmd_fild09,75,382,0 warp cmd_fild09-4 2,1,cmd_fild08,75,42
+moc_fild18,51,170,0 warp moc_fild18-1 1,3,cmd_fild09,363,164
diff --git a/npc/pre-re/warps/fields/geffen_fild.txt b/npc/pre-re/warps/fields/geffen_fild.txt
new file mode 100644
index 000000000..fd4350fe6
--- /dev/null
+++ b/npc/pre-re/warps/fields/geffen_fild.txt
@@ -0,0 +1,72 @@
+//===== rAthena Script =======================================
+//= Geffen Warp Script
+//===== By: ==================================================
+//= Nana (1.0)
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Description: =========================================
+//= Warp Points for Geffen Field's
+//===== Additional Comments: =================================
+//= No comment!
+//============================================================
+
+//= Geffen Field Warps =======================================
+gef_fild00,267,382,0 warp gef007 4,2,mjolnir_06,265,32
+gef_fild00,381,137,0 warp gef008 3,9,prt_fild00,24,125
+gef_fild00,40,199,0 warp gef009 2,7,geffen,213,119
+gef_fild01,382,111,0 warp gef010 2,9,prt_fild04,20,114
+gef_fild01,16,102,0 warp geff01 2,4,gef_fild09,368,92
+gef_fild01,69,17,0 warp geff02 4,2,gef_fild03,66,379
+gef_fild02,380,156,0 warp gef011 3,7,prt_fild07,21,143
+gef_fild02,380,289,0 warp gef012 3,12,prt_fild07,18,289
+gef_fild02,380,68,0 warp gef013 3,10,prt_fild07,17,64
+gef_fild02,266,18,0 warp gef026 5,2,prt_fild10,227,296
+gef_fild02,14,78,0 warp geff03 2,4,gef_fild03,379,77
+gef_fild02,16,275,0 warp geff04 2,4,gef_fild03,379,277
+gef_fild03,312,16,0 warp gef014 5,2,prt_fild11,302,298
+gef_fild03,66,382,0 warp geff02-1 4,2,gef_fild01,69,20
+gef_fild03,382,77,0 warp geff03-1 2,4,gef_fild02,17,78
+gef_fild03,382,277,0 warp geff04-1 2,4,gef_fild02,19,275
+gef_fild03,18,52,0 warp geff05 2,4,gef_fild10,367,56
+gef_fild04,187,39,0 warp gef015 4,2,geffen,119,210
+gef_fild04,261,362,0 warp gef016 4,2,mjolnir_01,284,21
+gef_fild04,362,322,0 warp gef017 2,4,mjolnir_06,21,331
+gef_fild04,16,309,0 warp geff06 2,6,gef_fild05,361,309
+gef_fild05,364,309,0 warp geff06-1 2,8,gef_fild04,19,309
+gef_fild05,15,201,0 warp geff07 2,4,gef_fild06,379,211
+gef_fild05,64,15,0 warp geff08 4,2,gef_fild07,64,360
+gef_fild06,382,211,0 warp geff07-1 2,4,gef_fild05,18,201
+gef_fild06,218,17,0 warp geff09 4,2,gef_fild08,200,352
+gef_fild07,339,187,0 warp gef025 2,4,geffen,29,119
+gef_fild07,64,363,0 warp geff08-1 4,2,gef_fild05,64,18
+gef_fild07,18,191,0 warp geff10 2,4,gef_fild08,357,187
+gef_fild07,40,19,0 warp geff13 1,1,gef_fild13,41,369
+gef_fild08,200,355,0 warp geff09-1 4,2,gef_fild06,218,20
+gef_fild08,360,187,0 warp geff10-1 2,4,gef_fild07,21,191
+gef_fild08,215,18,0 warp geff14 1,1,gef_fild12,221,369
+gef_fild09,23,56,0 warp geff18-1 1,1,gef_fild13,376,56
+gef_fild09,225,25,0 warp geff11 3,2,gef_fild10,251,368
+gef_fild09,368,95,0 warp geff01-1 4,2,gef_fild01,19,102
+gef_fild10,251,371,0 warp geff11-1 5,2,gef_fild09,225,28
+gef_fild10,104,21,0 warp geff12 5,2,gef_fild11,114,360
+gef_fild10,370,56,0 warp geff05-1 2,5,gef_fild03,21,52
+gef_fild10,136,331,0 warp gef018 1,1,in_orcs01,122,171
+gef_fild10,138,284,0 warp gef019 1,1,in_orcs01,29,114
+gef_fild10,215,51,0 warp gef020 1,1,in_orcs01,162,53
+gef_fild10,223,205,0 warp gef021 1,1,in_orcs01,108,89
+gef_fild10,63,337,0 warp gef022 1,1,in_orcs01,30,157
+gef_fild10,27,219,0 warp geff19-1 1,1,gef_fild14,367,219
+gef_fild11,377,293,0 warp gef023 2,4,prt_fild11,20,281
+gef_fild11,111,364,0 warp geff12-1 6,3,gef_fild10,104,24
+gef_fild12,221,374,0 warp geff14-1 1,1,gef_fild08,215,25
+gef_fild12,368,180,0 warp geff15 1,1,gef_fild13,29,202
+gef_fild12,372,50,0 warp geff16 1,1,gef_fild13,29,59
+gef_fild13,200,25,0 warp geff17 1,1,gef_fild14,180,357
+gef_fild13,25,202,0 warp geff15-1 1,1,gef_fild12,364,180
+gef_fild13,26,59,0 warp geff16-1 1,1,gef_fild12,370,50
+gef_fild13,380,56,0 warp geff18 1,1,gef_fild09,27,56
+gef_fild13,41,373,0 warp geff13-1 1,1,gef_fild07,40,23
+gef_fild14,180,360,0 warp geff17-1 1,1,gef_fild13,200,29
+gef_fild14,371,219,0 warp geff19 1,1,gef_fild10,31,219
diff --git a/npc/pre-re/warps/fields/hugel_fild.txt b/npc/pre-re/warps/fields/hugel_fild.txt
new file mode 100644
index 000000000..c86980a98
--- /dev/null
+++ b/npc/pre-re/warps/fields/hugel_fild.txt
@@ -0,0 +1,47 @@
+//===== rAthena Script =======================================
+//= Hugel Field Warp Script
+//===== By: ==================================================
+//= Sara-chan (1.0)
+//===== Current Version: =====================================
+//= 1.2
+//===== Compatible With: =====================================
+//= Any Athena Version; RO Episode 10+
+//===== Description: =========================================
+//= Warp Points for Hugel Field
+//===== Additional Comments: =================================
+//= Initial Release
+//= 1.1 Official warps [Playtester]
+//= 1.2 Corrected NPC names to fall within proper restrictions. [L0ne_W0lf]
+//============================================================
+
+//= Hugel Field ==============================================
+ein_fild04,343,293,0 warp hugel001 1,1,ein_fild05,80,294
+ein_fild05,76,294,0 warp hugel001a 1,1,ein_fild04,336,292
+ein_fild05,376,183,0 warp hugel002 1,1,ein_fild06,47,166
+ein_fild06,42,171,0 warp hugel002a 1,1,ein_fild05,371,183
+ein_fild02,357,251,0 warp hugel003-1 1,1,yuno_fild04,38,280
+yuno_fild04,33,279,0 warp hugel003a-1 1,1,ein_fild02,350,250
+ein_fild01,349,369,0 warp hugel003 1,1,yuno_fild05,43,346
+yuno_fild05,41,350,0 warp hugel003a 1,1,ein_fild01,345,367
+ein_fild01,106,34,0 warp hugel004 1,1,ein_fild02,109,358
+ein_fild02,108,364,0 warp hugel004a 1,1,ein_fild01,106,40
+ein_fild01,234,34,0 warp hugel005 1,1,ein_fild02,258,343
+ein_fild02,257,350,0 warp hugel005a 1,1,ein_fild01,231,40
+ein_fild02,170,29,0 warp hugel006 1,1,ein_fild05,172,366
+ein_fild05,172,371,0 warp hugel006a 1,1,ein_fild02,170,37
+hu_fild01,366,185,0 warp hugel007 1,1,hu_fild02,22,168
+hu_fild02,17,168,0 warp hugel007a 1,1,hu_fild01,361,189
+hu_fild04,47,372,0 warp hugel008 1,1,hu_fild02,40,27
+hu_fild02,40,22,0 warp hugel008a 1,1,hu_fild04,48,368
+hu_fild04,294,379,0 warp hugel009 1,1,hu_fild02,280,31
+hu_fild02,283,28,0 warp hugel009a 1,1,hu_fild04,289,376
+hu_fild05,284,356,0 warp hugel010 1,1,hu_fild03,288,26
+hu_fild03,288,19,0 warp hugel010a 1,1,hu_fild05,276,346
+hu_fild05,353,126,0 warp hugel011 1,1,hu_fild06,34,119
+hu_fild06,28,119,0 warp hugel011a 1,1,hu_fild05,347,130
+hu_fild02,374,339,0 warp hugel012 1,1,hu_fild03,24,337
+hu_fild03,20,338,0 warp hugel012a 1,1,hu_fild02,370,339
+hu_fild02,378,162,0 warp hugel013 1,1,hu_fild03,30,163
+hu_fild03,25,163,0 warp hugel013a 1,1,hu_fild02,373,160
+yuno_fild09,377,184,0 warp hugel014 1,1,yuno_fild10,44,183
+yuno_fild10,39,183,0 warp hugel014a 1,1,yuno_fild09,371,184
diff --git a/npc/pre-re/warps/fields/morroc_fild.txt b/npc/pre-re/warps/fields/morroc_fild.txt
new file mode 100644
index 000000000..cce5d0b3d
--- /dev/null
+++ b/npc/pre-re/warps/fields/morroc_fild.txt
@@ -0,0 +1,119 @@
+//===== rAthena Script =======================================
+//= Morroc Field Warp Script
+//===== By: ==================================================
+//= Nana (1.0)
+//===== Current Version: =====================================
+//= 1.4b
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Description: =========================================
+//= Warp Points for Morroc Fields
+//===== Additional Comments: =================================
+//= 1.1 changed 'anthell' to @anthell [Lupus]
+//= 1.2 Corrected NPC names to fall within proper restrictions. [L0ne_W0lf]
+//= 1.3 Updated warps for episode 12.1 [L0ne_W0lf]
+//= 1.4 Uncommented warp that shouldn't have been commented. [L0ne_W0lf]
+//= 1.4a Uncommented yet ANOTHER warp that was taken out. [L0ne_W0lf]
+//= 1.4b Uncommented ANOTHER warp! Yay! :D [L0ne_W0lf]
+//============================================================
+
+//= Sograt Dessert ===========================================
+//moc_fild01,101,16,0 warp mocf01-1 15,3,moc_fild04,317,376
+moc_fild01,101,16,0 warp mocf01-1 15,3,moc_fild20,210,342
+moc_fild01,22,242,0 warp mocf005 2,2,prt_fild09,380,237
+moc_fild01,239,382,0 warp mocf006 12,1,prt_fild08,233,20
+moc_fild01,301,16,0 warp mocf02 10,1,moc_fild02,77,338
+moc_fild01,321,16,0 warp mocf02-1 10,1,moc_fild02,77,338
+moc_fild01,341,16,0 warp mocf02-2 10,1,moc_fild02,77,338
+moc_fild01,379,162,0 warp mocf011 2,12,pay_fild04,20,165
+moc_fild01,56,384,0 warp moc007a 3,2,prt_fild08,54,24
+//moc_fild01,68,16,0 warp mocf01 15,3,moc_fild04,317,376
+moc_fild02,228,29,0 warp mocf03 4,2,moc_fild13,298,367
+moc_fild02,332,19,0 warp mocf04 5,3,moc_fild03,70,336
+moc_fild02,350,339,0 warp mocf012 6,2,pay_fild04,194,20
+moc_fild02,67,342,0 warp mocf02-3 11,3,moc_fild01,315,25
+moc_fild02,71,18,0 warp mocf05 4,2,moc_fild13,146,365
+moc_fild02,92,342,0 warp mocf02-4 11,3,moc_fild01,315,25
+moc_fild03,17,37,0 warp mocf06 2,4,moc_fild13,305,49
+moc_fild03,179,16,0 warp mocf013 4,2,pay_fild11,38,327
+moc_fild03,303,170,0 warp mocf014 2,7,pay_fild01,17,152
+moc_fild03,70,341,0 warp mocf04-1 5,2,moc_fild02,332,23
+//moc_fild04,14,122,0 warp mocf07-1 1,11,moc_fild05,378,119
+//moc_fild04,14,146,0 warp mocf07-2 1,11,moc_fild05,378,119
+//moc_fild04,14,98,0 warp mocf07 1,11,moc_fild05,378,119
+//moc_fild04,175,18,0 warp mocf08 3,2,moc_fild08,170,380
+//moc_fild04,19,206,0 warp mocf09 3,15,moc_fild05,373,208
+//moc_fild04,219,327,0 script mocf016 45,3,4,{ set @anthell,0; warp "anthell01",35,262; }
+//moc_fild04,292,381,0 warp mocf01-2 10,1,moc_fild01,76,25
+//moc_fild04,314,381,0 warp mocf01-3 10,1,moc_fild01,76,25
+//moc_fild04,336,381,0 warp mocf01-4 10,1,moc_fild01,76,25
+//moc_fild04,92,381,0 warp mocf008 9,2,prt_fild09,246,19
+//moc_fild05,144,375,0 warp mocf009 11,2,prt_fild10,263,23
+//moc_fild05,18,136,0 warp mocf10 1,8,moc_fild06,367,317
+//moc_fild05,18,154,0 warp mocf10-1 1,8,moc_fild06,367,317
+//moc_fild05,18,172,0 warp mocf10-2 1,8,moc_fild06,367,317
+//moc_fild05,268,18,0 warp mocf11 4,2,moc_fild09,267,368
+//moc_fild05,325,382,0 warp mocf010 6,2,prt_fild09,95,19
+//moc_fild05,378,208,0 warp mocf09-1 3,14,moc_fild04,26,206
+//moc_fild05,384,108,0 warp mocf07-3 1,8,moc_fild04,22,123
+//moc_fild05,384,126,0 warp mocf07-4 1,8,moc_fild04,22,123
+//moc_fild05,384,144,0 warp mocf07-5 1,8,moc_fild04,22,123
+//moc_fild05,82,16,0 warp mocf12 5,2,moc_fild09,80,366
+//moc_fild06,18,198,0 warp mocf13 1,18,moc_fild07,378,201
+//moc_fild06,207,18,0 warp mocf14 11,2,moc_fild10,208,295
+//moc_fild06,377,316,0 warp mocf10-3 1,15,moc_fild05,24,153
+moc_fild07,198,21,0 warp mocf001 2,2,morocc,160,294
+//moc_fild07,381,201,0 warp mocf13-1 2,16,moc_fild06,28,201
+moc_fild07,380,201,0 warp mocf13-1 2,16,moc_fild20,36,177
+//moc_fild08,16,207,0 warp mocf15 2,4,moc_fild09,371,195
+//moc_fild08,170,383,0 warp mocf08-1 3,2,moc_fild04,175,21
+//moc_fild08,204,16,0 warp mocf16 4,2,moc_fild14,196,379
+//moc_fild08,383,211,0 warp mocf17 2,4,moc_fild13,32,171
+//moc_fild09,126,20,0 warp mocf18 4,2,moc_fild15,158,360
+//moc_fild09,267,371,0 warp mocf11-1 4,2,moc_fild05,268,21
+//moc_fild09,30,162,0 warp mocf19 2,3,moc_fild10,381,258
+//moc_fild09,374,195,0 warp mocf15-1 2,8,moc_fild08,19,207
+//moc_fild09,80,369,0 warp mocf12-1 7,2,moc_fild05,82,19
+//moc_fild10,189,23,0 warp mocf20 3,2,moc_fild11,189,360
+//moc_fild10,19,207,0 warp mocf002 2,2,morocc,299,207
+//moc_fild10,208,298,0 warp mocf14-1 10,2,moc_fild06,207,21
+//moc_fild10,384,258,0 warp mocf19-1 2,3,moc_fild09,33,162
+//moc_fild11,189,363,0 warp mocf20-1 3,2,moc_fild10,189,26
+moc_fild11,189,360,0 warp mocf20-1 3,2,moc_fild20,197,24
+moc_fild11,212,29,0 warp mocf21 4,2,moc_fild17,218,366
+moc_fild11,26,161,0 warp mocf22 2,10,moc_fild12,286,168
+//moc_fild11,379,197,0 warp mocf23 2,6,moc_fild15,41,105
+moc_fild11,377,197,0 warp mocf23 2,6,moc_fild20,36,177
+moc_fild12,118,30,0 warp mocf24 4,2,moc_fild18,158,379
+moc_fild12,159,381,0 warp mocf003 2,2,morocc,160,20
+moc_fild12,289,168,0 warp mocf22-1 2,3,moc_fild11,29,161
+moc_fild13,146,368,0 warp mocf05-1 5,2,moc_fild02,71,21
+//moc_fild13,29,171,0 warp mocf17-1 2,4,moc_fild08,380,211
+moc_fild13,32,171,0 warp mocf17-1 2,4,moc_fild20,349,179
+moc_fild13,298,370,0 warp mocf03-1 4,2,moc_fild02,228,32
+moc_fild13,308,49,0 warp mocf06-1 2,4,moc_fild03,20,37
+//moc_fild14,16,278,0 warp mocf25 2,6,moc_fild15,364,276
+//moc_fild14,196,382,0 warp mocf16-1 4,2,moc_fild08,204,19
+//moc_fild15,104,16,0 warp mocf26 9,2,moc_fild16,125,380
+//moc_fild15,158,363,0 warp mocf18-1 6,2,moc_fild09,126,23
+//moc_fild15,258,253,0 script mocf017 45,3,3,{ set @anthell,1; warp "anthell01",35,262; }
+//moc_fild15,348,18,0 warp mocf27 5,2,moc_fild16,334,379
+//moc_fild15,367,276,0 warp mocf25-1 2,4,moc_fild14,19,278
+//moc_fild15,38,105,0 warp mocf23-1 2,4,moc_fild11,376,197
+//moc_fild16,125,383,0 warp mocf26-1 5,2,moc_fild15,104,19
+moc_fild16,124,381,0 warp mocf26-1 5,2,moc_fild20,197,24
+moc_fild16,16,179,0 warp mocf28 2,6,moc_fild17,366,272
+//moc_fild16,334,382,0 warp mocf27-1 4,2,moc_fild15,348,21
+moc_fild16,333,380,0 warp mocf27-1 4,2,moc_fild20,197,24
+moc_fild17,218,369,0 warp mocf21-1 5,2,moc_fild11,212,32
+moc_fild17,30,300,0 warp moc29 2,5,moc_fild18,379,305
+moc_fild17,369,272,0 warp mocf28-1 2,3,moc_fild16,19,179
+moc_fild18,158,382,0 warp mocf24-1 4,2,moc_fild12,118,33
+moc_fild18,382,305,0 warp moc29-1 2,4,moc_fild17,33,300
+moc_fild19,169,107,0 warp mocf004 1,4,morocc,27,164
+moc_fild19,71,170,0 warp mocf018 8,2,moc_ruins,71,19
+moc_fild19,98,99,0 warp mocf019 1,1,in_sphinx1,288,9
+
+// Satan Morroc Addition
+moc_fild21,26,196,0 warp mocf020 1,1,moc_fild20,349,179
+moc_fild22,32,196,0 warp mocf021 1,1,moc_fild20,349,179
diff --git a/npc/pre-re/warps/fields/payon_fild.txt b/npc/pre-re/warps/fields/payon_fild.txt
new file mode 100644
index 000000000..07c7bcd4f
--- /dev/null
+++ b/npc/pre-re/warps/fields/payon_fild.txt
@@ -0,0 +1,49 @@
+//===== rAthena Script =======================================
+//= Payon Field Warps
+//===== By: ==================================================
+//= Nana (1.0)
+//===== Current Version: =====================================
+//= 1.2
+//===== Compatible With: =====================================
+//= Any rAthena Mod
+//===== Description: =========================================
+//= Payon Field Warps
+//===== Additional Comments: =================================
+//= 1.1 Refixed payon field08 -> payon warp
+//= 1.2 Changed trigger area of pay_fild08 -> payon warp. [L0ne_W0lf]
+//============================================================
+
+//= Payon Field's ============================================
+pay_fild01,13,152,0 warp payf001 2,7,moc_fild03,299,170
+pay_fild01,278,14,0 warp payf01 13,2,pay_fild02,83,382
+pay_fild01,353,14,0 warp payf02 20,3,pay_fild02,160,381
+pay_fild01,379,201,0 warp payf03 2,6,pay_fild07,23,207
+pay_fild02,134,16,0 warp payf04 5,2,pay_fild05,127,375
+pay_fild02,16,175,0 warp payf06 2,4,pay_fild11,294,135
+pay_fild02,167,390,0 warp payf02-1 20,3,pay_fild01,354,18
+pay_fild02,284,108,0 warp payf07 2,7,pay_fild03,20,110
+pay_fild02,83,386,0 warp payf01-1 13,2,pay_fild01,278,18
+pay_fild03,15,110,0 warp payf07-1 2,10,pay_fild02,280,108
+pay_fild03,172,281,0 warp payf08 5,2,pay_fild07,167,20
+pay_fild03,313,16,0 warp payf09 4,2,pay_fild06,305,372
+pay_fild03,392,63,0 warp payf005 2,7,alberta,19,233
+pay_fild04,17,165,0 warp payf002 2,8,moc_fild01,376,162
+pay_fild04,194,17,0 warp payf003 7,2,moc_fild02,350,336
+pay_fild05,127,378,0 warp payf04-1 4,2,pay_fild02,134,19
+pay_fild05,271,284,0 warp payf10 2,4,pay_fild06,31,288
+pay_fild06,28,288,0 warp payf10-1 2,2,pay_fild05,268,284
+pay_fild06,305,375,0 warp payf09-1 6,2,pay_fild03,313,19
+pay_fild07,16,200,0 warp payf03-1 3,3,pay_fild01,371,205
+pay_fild07,163,17,0 warp payf08-1 5,2,pay_fild03,177,275
+pay_fild07,280,382,0 warp payf11 4,2,pay_fild08,160,19
+pay_fild07,382,290,0 warp payf12 2,5,pay_fild10,19,290
+pay_fild08,160,16,0 warp payf11-1 4,2,pay_fild07,280,379
+pay_fild08,17,75,0 warp payf006 1,1,payon,265,92
+pay_fild08,262,91,0 warp payf13 2,4,pay_fild09,19,91
+pay_fild09,112,16,0 warp pay14 4,2,pay_fild10,112,379
+pay_fild09,16,91,0 warp payf13-1 2,4,pay_fild08,259,91
+pay_fild10,112,382,0 warp pay14-1 3,2,pay_fild09,112,19
+pay_fild10,16,290,0 warp payf12-1 2,5,pay_fild07,379,290
+pay_fild10,99,13,0 warp w1034 1,1,pay_fild10,148,252
+pay_fild11,297,135,0 warp payf06-1 2,4,pay_fild02,19,175
+pay_fild11,38,330,0 warp payf004 4,2,moc_fild03,179,19
diff --git a/npc/pre-re/warps/fields/prontera_fild.txt b/npc/pre-re/warps/fields/prontera_fild.txt
new file mode 100644
index 000000000..677da8c5f
--- /dev/null
+++ b/npc/pre-re/warps/fields/prontera_fild.txt
@@ -0,0 +1,105 @@
+//===== eAthena Script =======================================
+//= Prontera Field Warp Script
+//===== By: ==================================================
+//= Nana (1.0)
+//===== Current Version: =====================================
+//= 1.2
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Description: =========================================
+//= Warp Points for Prontera Field
+//===== Additional Comments: =================================
+//= 1.1 updating according to jA [Lupus]
+//= 1.2 Updated warps for episode 12.1 [L0ne_W0lf]
+//============================================================
+
+//= Prontera Fields ==========================================
+prt_fild00,159,383,0 warp prtf007 4,2,mjolnir_07,156,19
+prt_fild00,165,18,0 warp prtf01 9,3,prt_fild04,158,384
+prt_fild00,18,129,0 warp prtf015 2,6,gef_fild00,376,140
+prt_fild00,317,18,0 warp prtf02 8,2,prt_fild04,323,384
+prt_fild00,383,249,0 warp prtf008 2,4,mjolnir_09,33,248
+prt_fild01,136,373,0 warp prtf030 1,1,prt_maze01,99,31
+prt_fild01,199,24,0 warp prtf001 3,2,prt_gld,159,295
+prt_fild01,20,292,0 warp prtf009 2,3,mjolnir_09,370,288
+prt_fild01,261,373,0 warp prtf010 6,2,mjolnir_10,265,16
+prt_fild01,380,243,0 warp prtf03 2,5,prt_fild02,20,242
+prt_fild01,382,304,0 warp prtf04 2,10,prt_fild02,20,305
+prt_fild01,382,351,0 warp prtf05 2,8,prt_fild02,20,350
+prt_fild01,66,373,0 warp prtf011 2,2,mjolnir_10,66,18
+prt_fild02,17,242,0 warp prtf03-1 2,5,prt_fild01,377,243
+prt_fild02,17,305,0 warp prtf04-1 2,5,prt_fild01,379,302
+prt_fild02,17,350,0 warp prtf05-1 2,7,prt_fild01,379,351
+prt_fild02,173,382,0 warp prtf012 4,2,mjolnir_11,174,23
+prt_fild02,305,17,0 warp prtf06 10,2,prt_fild06,277,315
+prt_fild02,380,347,0 warp prtf07 2,10,prt_fild03,23,249
+prt_fild03,16,249,0 warp prtf07-1 2,10,prt_fild02,373,353
+prt_fild03,371,256,0 warp prtf006 2,2,prt_monk,25,248
+prt_fild04,160,387,0 warp prtf01-1 10,2,prt_fild00,164,24
+prt_fild04,17,114,0 warp prtf016 2,10,gef_fild01,375,111
+prt_fild04,323,387,0 warp prtf02-1 7,2,prt_fild00,315,21
+prt_fild04,378,72,0 warp prtf08 2,6,prt_fild05,17,59
+prt_fild04,384,155,0 warp prtf09 2,7,prt_fild05,20,134
+prt_fild04,384,334,0 warp prtf10 2,6,prt_fild05,20,333
+prt_fild05,105,381,0 warp prtf013 5,2,mjolnir_09,106,34
+prt_fild05,13,63,0 warp prtf08-1 2,15,prt_fild04,374,73
+prt_fild05,134,14,0 warp prtf11 14,3,prt_fild07,129,374
+prt_fild05,14,141,0 warp prtf09-1 2,18,prt_fild04,380,158
+prt_fild05,15,333,0 warp prtf10-1 2,8,prt_fild04,380,332
+prt_fild05,255,14,0 warp prtf12 12,2,prt_fild07,248,369
+prt_fild05,292,385,0 warp prtf014 4,2,mjolnir_09,305,33
+prt_fild05,373,205,0 warp prtf002 3,3,prontera,26,203
+prt_fild06,23,193,0 warp prtf003 2,3,prontera,285,203
+prt_fild06,277,320,0 warp prtf06-1 10,2,prt_fild02,305,22
+prt_fild07,13,64,0 warp prtf017 3,8,gef_fild02,376,69
+prt_fild07,132,381,0 warp prtf11-1 9,3,prt_fild05,142,18
+prt_fild07,14,289,0 warp prtf018 3,10,gef_fild02,375,292
+prt_fild07,17,145,0 warp prtf019 3,12,gef_fild02,376,156
+prt_fild07,206,12,0 warp prtf13 4,2,prt_fild09,224,377
+prt_fild07,248,376,0 warp prtf12-1 8,2,prt_fild05,257,18
+prt_fild07,383,239,0 warp prtf14 3,20,prt_fild08,20,239
+prt_fild07,385,186,0 warp prtf15 3,20,prt_fild08,20,186
+prt_fild07,84,13,0 warp prtf16 4,2,prt_fild09,87,377
+prt_fild08,16,187,0 warp prtf15-1 3,17,prt_fild07,380,186
+prt_fild08,16,239,0 warp prtf14-1 3,15,prt_fild07,379,239
+prt_fild08,170,378,0 warp prtf004 3,2,prontera,156,26
+prt_fild08,233,16,0 warp prtf023 12,1,moc_fild01,238,378
+prt_fild08,371,212,0 warp prtf005 3,3,izlude,35,78
+prt_fild08,55,21,0 warp prtf024 4,2,moc_fild01,56,380
+prt_fild09,14,124,0 warp prtf17 2,6,prt_fild10,336,126
+prt_fild09,14,139,0 warp prtf17-1 2,8,prt_fild10,336,126
+prt_fild09,224,380,0 warp prtf13-1 4,2,prt_fild07,206,15
+//prt_fild09,246,16,0 warp prtf025 7,2,moc_fild04,92,378
+prt_fild09,246,17,0 warp prtf025 7,2,moc_fild20,209,333
+prt_fild09,383,223,0 warp prtf026 2,15,moc_fild01,25,242
+prt_fild09,383,251,0 warp prtf027 2,15,moc_fild01,25,242
+prt_fild09,87,380,0 warp prtf16-1 5,2,prt_fild07,84,16
+//prt_fild09,95,16,0 warp prtf028 7,2,moc_fild05,325,379
+prt_fild09,95,19,0 warp prtf028 7,2,moc_fild20,209,333
+prt_fild10,20,122,0 warp prtf19 2,4,prt_fild11,359,111
+prt_fild10,20,196,0 warp prtf20 2,4,prt_fild11,358,184
+prt_fild10,227,299,0 warp prtf020 5,2,gef_fild02,266,21
+//prt_fild10,263,20,0 warp prtf029 6,2,moc_fild05,144,372
+prt_fild10,263,22,0 warp prtf029 6,2,moc_fild20,209,333
+prt_fild10,339,126,0 warp prtf17-2 2,8,prt_fild09,17,133
+prt_fild11,17,281,0 warp prtf021 2,4,gef_fild11,374,293
+prt_fild11,302,301,0 warp prtf022 5,2,gef_fild03,312,19
+prt_fild11,361,184,0 warp prtf20-1 2,5,prt_fild10,23,196
+prt_fild11,362,111,0 warp prtf19-1 2,6,prt_fild10,23,122
+
+//= St. Capitolina Abbey =====================================
+monk_in,128,46,0 warp monk03 1,3,monk_in,161,38
+monk_in,128,84,0 warp monk04 1,3,monk_in,161,90
+monk_in,159,38,0 warp monk03-1 1,3,monk_in,126,46
+monk_in,159,90,0 warp monk04-1 1,3,monk_in,126,84
+monk_in,40,38,0 warp monk05 1,3,monk_in,71,46
+monk_in,40,92,0 warp monk06 1,3,monk_in,71,84
+monk_in,69,46,0 warp monk05-1 1,3,monk_in,38,38
+monk_in,69,84,0 warp monk06-1 1,3,monk_in,38,92
+monk_in,98,186,0 warp monk02-1 3,2,prt_monk,245,139
+monk_in,98,27,0 warp monk01-1 5,2,prt_monk,245,104
+monk_in,99,102,0 warp monk07 5,1,monk_in,99,143
+monk_in,99,141,0 warp monk07-1 3,1,monk_in,99,100
+prt_monk,22,248,0 warp monk001 2,2,prt_fild03,368,256
+prt_monk,245,106,0 warp monk01 1,1,monk_in,98,30
+prt_monk,245,137,0 warp monk02 1,1,monk_in,98,183
diff --git a/npc/pre-re/warps/fields/rachel_fild.txt b/npc/pre-re/warps/fields/rachel_fild.txt
new file mode 100644
index 000000000..78a24465e
--- /dev/null
+++ b/npc/pre-re/warps/fields/rachel_fild.txt
@@ -0,0 +1,47 @@
+//===== rAthena Script =======================================
+//= Rachel Field Warp Script
+//===== By: ==================================================
+//= Playtester
+//===== Current Version: =====================================
+//= 1.2
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Description: =========================================
+//= Warp Points for Rachel Field
+//===== Additional Comments: =================================
+//= 1.0 Initial version [Playtester]
+//= 1.1 Official warps [Playtester]
+//= 1.2 Corrected NPC names to fall within proper restrictions. [L0ne_W0lf]
+//============================================================
+
+ra_fild01,233,333,0 warp ra000 1,1,ice_dun01,157,15
+ra_fild01,306,38,0 warp ra001 1,1,ra_fild04,322,371
+ra_fild04,322,378,0 warp ra002 1,1,ra_fild01,306,43
+ra_fild04,362,351,0 warp ra003 1,1,ra_fild05,39,353
+ra_fild05,33,353,0 warp ra004 1,1,ra_fild04,356,351
+ra_fild05,27,13,0 warp ra005 1,1,ra_fild09,30,337
+ra_fild09,29,343,0 warp ra006 1,1,ra_fild05,31,17
+ra_fild04,263,54,0 warp ra007 1,1,ra_fild08,287,365
+ra_fild08,287,370,0 warp ra008 1,1,ra_fild04,263,60
+ra_fild09,27,238,0 warp ra009 1,1,ra_fild08,360,234
+ra_fild08,368,234,0 warp ra010 1,1,ra_fild09,35,238
+ra_fild04,23,176,0 warp ra011 1,1,ra_fild03,370,172
+ra_fild03,374,168,0 warp ra012 1,1,ra_fild04,29,176
+ra_fild05,348,274,0 warp ra013 1,1,ra_fild06,24,277
+ra_fild06,19,277,0 warp ra014 1,1,ra_fild05,341,273
+ra_fild06,294,21,0 warp ra015 1,1,lhz_fild01,296,376
+lhz_fild01,296,382,0 warp ra016 1,1,ra_fild06,298,25
+ra_fild12,36,225,0 warp ra017 1,1,rachel,270,125
+ra_fild08,165,29,0 warp ra018 1,1,ra_fild12,149,369
+ra_fild12,149,374,0 warp ra019 1,1,ra_fild08,165,36
+ra_fild12,303,27,0 warp ra020 1,1,ra_fild13,295,341
+ra_fild13,295,346,0 warp ra021 1,1,ra_fild12,303,33
+ra_fild11,360,226,0 warp ra022 1,1,rachel,30,125
+ra_fild11,21,290,0 warp ra023 1,1,ra_fild10,379,283
+ra_fild10,384,287,0 warp ra024 1,1,ra_fild11,28,290
+ra_fild11,202,335,0 warp ra025a 1,1,ra_fild07,215,32
+ra_fild07,215,27,0 warp ra025b 1,1,ra_fild11,201,329
+ra_fild07,168,353,0 warp ra026 1,1,ra_fild02,171,45
+ra_fild02,168,36,0 warp ra027 1,1,ra_fild07,168,349
+ra_fild02,373,275,0 warp ra028 1,1,ra_fild03,28,294
+ra_fild03,23,294,0 warp ra029 1,1,ra_fild02,367,270
diff --git a/npc/pre-re/warps/fields/veins_fild.txt b/npc/pre-re/warps/fields/veins_fild.txt
new file mode 100644
index 000000000..9664f1707
--- /dev/null
+++ b/npc/pre-re/warps/fields/veins_fild.txt
@@ -0,0 +1,49 @@
+//===== rAthena Script =======================================
+//= Veins Field Warp Script
+//===== By: ==================================================
+//= $ephiroth
+//===== Current Version: =====================================
+//= 1.4
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Description: =========================================
+//= Warp Points for Veins Field
+//===== Additional Comments: =================================
+//= 1.4 Rescripted to Aegis 11.2 Standards. [L0ne_W0lf]
+//============================================================
+
+ve_fild01,366,267,0 warp ve_fild1-1 1,1,ve_fild02,36,263
+ve_fild01,184,20,0 warp ve_fild1-2 1,1,ve_fild04,174,334
+ra_fild11,233,27,0 warp ve_fild1-3 1,1,ve_fild01,243,363
+ve_fild01,243,368,0 warp ve_fild1-4 1,1,ra_fild11,232,32
+ve_fild01,350,92,0 warp ve_fild1-5 1,1,ve_fild02,78,133
+ra_fild13,29,308,0 warp ve_fild2-1 1,1,ve_fild02,380,308
+ve_fild02,385,308,0 warp ve_fild2-2 1,1,ra_fild13,34,308
+ve_fild02,195,382,0 warp ve_fild2-3 1,1,rachel,130,25
+ve_fild02,31,263,0 warp ve_fild2-4 1,1,ve_fild01,361,267
+ve_fild02,73,133,0 warp ve_fild2-5 1,1,ve_fild01,345,92
+ve_fild03,355,223,0 warp ve_fild3-1 1,1,ve_fild04,49,249
+ve_fild03,222,43,0 warp ve_fild3-2 1,1,ve_fild05,200,325
+ve_fild04,174,339,0 warp ve_fild4-1 1,1,ve_fild01,184,25
+ve_fild04,44,249,0 warp ve_fild4-2 1,1,ve_fild03,350,220
+ve_fild04,115,50,0 warp ve_fild4-3 1,1,ve_fild06,80,183
+ve_fild05,200,330,0 warp ve_fild5-1 1,1,ve_fild03,222,48
+ve_fild05,359,192,0 warp ve_fild5-2 1,1,ve_fild06,80,183
+ve_fild06,153,220,0 warp ve_fild6-1 1,1,veins,218,355
+ve_fild06,81,177,0 script ve_fild6-2 45,1,1,{
+ if (rand(2))
+ warp "ve_fild04",115,55;
+ else
+ warp "ve_fild05",354,191;
+ end;
+}
+ve_fild07,147,371,0 warp ve_fild7-1 1,1,veins,146,28
+
+//============================================================
+// Old changelog
+//============================================================
+//= 1.0 Initial version [$ephiroth]
+//= 1.1 Updated more warps [$ephiroth]
+//= 1.2 Removed some unofficial warps [Playtester]
+//= 1.3 Added random Veins exit [Playtester]
+//============================================================
diff --git a/npc/pre-re/warps/fields/yuno_fild.txt b/npc/pre-re/warps/fields/yuno_fild.txt
new file mode 100644
index 000000000..e78fbb3dc
--- /dev/null
+++ b/npc/pre-re/warps/fields/yuno_fild.txt
@@ -0,0 +1,89 @@
+//===== rAthena Script =======================================
+//= Yuno Field Warp Script
+//===== By: ==================================================
+//= Nana (1.0), Sara
+//===== Current Version: =====================================
+//= 1.2
+//===== Compatible With: =====================================
+//= Any Athena Version; RO Episode 5+
+//===== Description: =========================================
+//= Warp Points for Yuno Field
+//===== Additional Comments: =================================
+//= 1.1 - Updated for the new Yuno Fields
+//= 1.2 New field update - Hugel Field by Sara - Version 1
+//============================================================
+
+//= Yuno Field ===============================================
+//yuno_fild01,286,368,0 warp yunfild01 1,1,yuno_fild02,294,26
+//yuno_fild02,294,24,0 warp yunfild01-1 1,1,yuno_fild01,286,366
+//yuno_fild01,70,378,0 warp yunfild02 1,1,yuno_fild02,70,25
+//yuno_fild02,70,23,0 warp yunfild02-1 1,1,yuno_fild01,70,376
+
+yuno_fild02,18,337,0 warp yunfild03 1,1,yuno_fild03,381,331
+yuno_fild03,383,331,0 warp yunfild03-1 1,1,yuno_fild02,20,337
+yuno_fild03,19,79,0 warp yunfild04 1,1,yuno_fild04,373,84
+yuno_fild04,375,84,0 warp yunfild04-1 1,1,yuno_fild03,21,79
+yuno_fild03,20,155,0 warp yunfild05 1,1,yuno_fild04,373,150
+yuno_fild04,375,150,0 warp yunfild05-1 1,1,yuno_fild03,22,155
+yuno_fild04,231,288,0 warp yunfild-yun 1,1,yuno,158,17
+yuno_fild03,32,139,0 warp yunfild-mag01 1,1,mag_dun01,126,68
+
+//= New Yuno Fields ==========================================
+yuno_fild01,26,246,0 warp newjun01 1,1,yuno_fild12,373,239
+yuno_fild12,375,239,0 warp newjun01a 1,1,yuno_fild01,28,246
+yuno_fild12,23,338,0 warp newjun02 1,1,yuno_fild11,366,361
+yuno_fild11,368,361,0 warp newjun02a 1,1,yuno_fild12,25,338
+yuno_fild12,24,225,0 warp newjun03 1,1,yuno_fild11,363,218
+yuno_fild11,365,218,0 warp newjun03a 1,1,yuno_fild12,24,227
+yuno_fild07,92,12,0 warp newjun04 1,1,yuno_fild11,92,369
+yuno_fild11,92,371,0 warp newjun04a 1,1,yuno_fild07,92,14
+yuno_fild12,193,371,0 warp newjun05 1,1,yuno_fild08,143,21
+yuno_fild08,145,21,0 warp newjun05a 1,1,yuno_fild12,195,371
+yuno_fild01,70,378,0 warp newjun06 1,1,yuno_fild09,70,19
+yuno_fild09,70,17,0 warp newjun06a 1,1,yuno_fild01,70,376
+yuno_fild01,286,368,0 warp newjun07 1,1,yuno_fild09,280,30
+yuno_fild09,280,28,0 warp newjun07a 1,1,yuno_fild01,286,366
+yuno_fild09,19,194,0 warp newjun08 1,1,yuno_fild08,374,193
+yuno_fild08,376,193,0 warp newjun08a 1,1,yuno_fild09,21,194
+yuno_fild08,20,278,0 warp newjun09 1,1,yuno_fild07,352,291
+yuno_fild07,354,291,0 warp newjun09a 1,1,yuno_fild08,22,278
+yuno_fild08,31,58,0 warp newjun10 1,1,yuno_fild07,358,72
+yuno_fild07,360,72,0 warp newjun10a 1,1,yuno_fild08,33,58
+
+//= (By speculation only) ====================================
+yuno_fild07,179,354,0 warp newjun11 1,1,yuno_fild03,179,17
+yuno_fild03,179,15,0 warp newjun11a 1,1,yuno_fild07,179,352
+yuno_fild08,74,376,0 warp newjun12 1,1,yuno_fild02,70,25
+yuno_fild02,70,23,0 warp newjun12a 1,1,yuno_fild08,74,374
+yuno_fild08,286,386,0 warp newjun13 1,1,yuno_fild02,294,26
+yuno_fild02,294,24,0 warp newjun13a 1,1,yuno_fild08,286,384
+yuno_fild04,42,369,0 warp newjun14 1,1,yuno_fild05,59,30
+yuno_fild05,59,28,0 warp newjun14a 1,1,yuno_fild04,42,367
+
+
+//= Al de Baran <-> Yuno Connection ==========================
+aldebaran,140,244,0 warp alde-yunfild 1,1,yuno_fild01,208,19
+yuno_fild01,208,17,0 warp yunfild-alde 1,1,aldebaran,140,242
+
+//= Hugel Field
+//= Version 1
+yuno_fild05,372,325,0 warp hu001 1,1,yuno_fild06,42,319
+yuno_fild06,40,319,0 warp hu001a 1,1,yuno_fild05,370,325
+yuno_fild06,217,27,0 warp hu002 1,1,yuno_fild03,214,381
+yuno_fild03,214,383,0 warp hu002a 1,1,yuno_fild06,217,29
+yuno_fild06,369,136,0 warp hu003 1,1,hu_fild04,28,126
+hu_fild04,26,126,0 warp hu003a 1,1,yuno_fild06,367,136
+hu_fild04,121,26,0 warp hu004 1,1,yuno_fild02,118,374
+yuno_fild02,118,376,0 warp hu004a 1,1,hu_fild04,121,28
+yuno_fild06,149,369,0 warp hu005 1,1,hu_fild01,139,37
+hu_fild01,139,35,0 warp hu005a 1,1,yuno_fild06,151,369
+hu_fild04,381,187,0 warp hu006 1,1,hu_fild05,34,202
+hu_fild05,32,202,0 warp hu006a 1,1,hu_fild04,379,187
+hu_fild05,91,42,0 warp hu007 1,1,hu_fild07,80,369
+hu_fild07,80,371,0 warp hu007a 1,1,hu_fild05,91,44
+hu_fild07,35,351,0 warp hu008 1,1,yuno_fild02,384,338
+yuno_fild02,384,340,0 warp hu008a 1,1,hu_fild07,37,351
+hu_fild07,56,36,0 warp hu009 1,1,yuno_fild09,47,375
+yuno_fild09,47,377,0 warp hu009a 1,1,hu_fild07,56,38
+hu_fild07,226,36,0 warp hu010 1,1,yuno_fild09,220,372
+yuno_fild09,220,374,0 warp hu010a 1,1,hu_fild07,226,38
diff --git a/npc/pre-re/warps/other/arena.txt b/npc/pre-re/warps/other/arena.txt
new file mode 100644
index 000000000..f0bb7e8df
--- /dev/null
+++ b/npc/pre-re/warps/other/arena.txt
@@ -0,0 +1,72 @@
+//===== rAthena Script =======================================
+//= Arena Warps
+//===== By: ==================================================
+//= SinSloth
+//===== Current Version: =====================================
+//= 1.2
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Description: =========================================
+//= Warp Points related to Izlude Arena && Control Panel
+//===== Additional Comments: =================================
+//= 1.0 First version, done by SinSloth. [MasterOfMuppets]
+//= 1.1 updated welcome_arena warp coords (was 128,126) [Lupus]
+//= 1.2 Made some updates due to Izlude Battle Arena release. [SinSloth]
+//============================================================
+
+izlude,128,226,0 warp welcome_arena 1,1,arena_room,100,30
+arena_room,99,24,0 warp bye_arena 2,2,izlude,128,220
+arena_room,84,103,0 warp arn_room_11_1 1,1,arena_room,63,130
+arena_room,63,126,0 warp arn_room_11_2 1,1,arena_room,87,100
+arena_room,76,87,0 warp arn_room_9_1 1,1,arena_room,46,87
+arena_room,49,87,0 warp arn_room_9_2 1,1,arena_room,78,87
+arena_room,84,71,0 warp arn_room_7_1 1,1,arena_room,60,50
+arena_room,63,53,0 warp arn_room_7_2 1,1,arena_room,86,74
+arena_room,115,71,0 warp arn_room_5_1 1,1,arena_room,139,50
+arena_room,136,53,0 warp arn_room_5_2 1,1,arena_room,113,74
+arena_room,123,88,0 warp arn_room_3_1 1,1,arena_room,153,87
+arena_room,150,87,0 warp arn_room_3_2 1,1,arena_room,120,87
+prt_are_in,54,13,0 warp toarn_room 1,1,arena_room,100,77
+
+sec_in02,79,180,3 script #arenacontrol 81,{
+
+DLGTEMP:
+ input @input_arena;
+ if (@input_arena < 0 || @input_arena > 2000) goto DLGTEMP; //CHECK
+ if (@input_arena == 0)
+ {
+ mes "Error!";
+ close;
+ }
+ else if (@input_arena == 1357)
+ {
+ mes "Opening Control Panel";
+ mes "' A - R - E - N - A '";
+ next;
+ mes "Please select a";
+ mes "state for the arena.";
+ next;
+ switch( select( "Open.","Closed.") )
+ {
+ case 1:
+ mes "Currently";
+ mes "opening arena.";
+ misceffect EF_ENHANCE; //CHECK
+ enablenpc "welcome_arena";
+ next;
+ break;
+ case 2:
+ mes "Currently";
+ mes "closing arena.";
+ misceffect EF_EXIT; //CHECK
+ disablenpc "welcome_arena";
+ next;
+ break;
+ }
+ }
+ else
+ {
+ mes "Closing control panel.";
+ close;
+ }
+}
diff --git a/npc/pre-re/warps/other/sign.txt b/npc/pre-re/warps/other/sign.txt
new file mode 100644
index 000000000..5a18a99e8
--- /dev/null
+++ b/npc/pre-re/warps/other/sign.txt
@@ -0,0 +1,38 @@
+//===== rAthena Script =======================================
+//= Sign Quest Warps
+//===== By: ==================================================
+//= MasterOfMuppets
+//===== Current Version: =====================================
+//= 1.3
+//===== Compatible With: =====================================
+//= Any Athena Version; RO Episode 8+
+//===== Description: =========================================
+//= Warp Points related to the Sign Quest will be put here
+//===== Additional Comments: =================================
+//= 1.0 A few warps. [MasterOfMuppets]
+//= 1.1 A few more warps. [MasterOfMuppets]
+//= 1.2 Completed the warps [MasterOfMuppets]
+//= 1.3 Correct AEGIS Warps. [Kisuka]
+//============================================================
+
+cmd_in01,17,34,0 warp sign01 1,1,comodo,187,164
+
+geffen,140,99,0 warp sign02 1,1,geffen_in,165,50
+geffen_in,165,54,0 warp sign02a 1,1,geffen,138,104
+
+himinn,49,6,0 warp sign03 1,1,gef_fild07,179,241
+
+himinn,49,67,0 warp sign04 1,1,himinn,49,75
+himinn,49,72,0 warp sign04a 1,1,himinn,49,63
+
+um_in,33,18,0 warp sign05 1,1,um_in,89,11
+um_in,89,9,0 warp sign05a 1,1,um_in,33,16
+
+um_dun01,132,91,0 warp sign06 1,1,um_in,15,20
+um_in,11,18,0 warp sign06a 1,1,um_dun01,129,90
+
+que_sign01,113,132,0 warp sign07 1,1,nif_in,117,173
+
+que_sign01,45,15,0 warp sign08 1,1,niflheim,146,245
+
+que_sign02,22,313,0 warp sign09 1,1,niflheim,30,156