summaryrefslogtreecommitdiff
path: root/npc/re
diff options
context:
space:
mode:
Diffstat (limited to 'npc/re')
-rw-r--r--npc/re/airports/izlude.txt22
-rw-r--r--npc/re/cities/alberta.txt17
-rw-r--r--npc/re/cities/brasilis.txt34
-rw-r--r--npc/re/cities/dewata.txt208
-rw-r--r--npc/re/cities/dicastes.txt230
-rw-r--r--npc/re/cities/eclage.txt485
-rw-r--r--npc/re/cities/izlude.txt165
-rw-r--r--npc/re/cities/jawaii.txt16
-rw-r--r--npc/re/cities/malangdo.txt169
-rw-r--r--npc/re/cities/malaya.txt1624
-rw-r--r--npc/re/cities/mora.txt1363
-rw-r--r--npc/re/cities/yuno.txt20
-rw-r--r--npc/re/guides/guides_alberta.txt135
-rw-r--r--npc/re/guides/guides_aldebaran.txt87
-rw-r--r--npc/re/guides/guides_amatsu.txt26
-rw-r--r--npc/re/guides/guides_ayothaya.txt129
-rw-r--r--npc/re/guides/guides_brasilis.txt72
-rw-r--r--npc/re/guides/guides_comodo.txt51
-rw-r--r--npc/re/guides/guides_dewata.txt121
-rw-r--r--npc/re/guides/guides_dicastes.txt52
-rw-r--r--npc/re/guides/guides_eclage.txt49
-rw-r--r--npc/re/guides/guides_einbroch.txt70
-rw-r--r--npc/re/guides/guides_geffen.txt51
-rw-r--r--npc/re/guides/guides_gonryun.txt34
-rw-r--r--npc/re/guides/guides_hugel.txt70
-rw-r--r--npc/re/guides/guides_izlude.txt152
-rw-r--r--npc/re/guides/guides_juno.txt59
-rw-r--r--npc/re/guides/guides_lighthalzen.txt57
-rw-r--r--npc/re/guides/guides_louyang.txt57
-rw-r--r--npc/re/guides/guides_lutie.txt30
-rw-r--r--npc/re/guides/guides_malaya.txt81
-rw-r--r--npc/re/guides/guides_mora.txt61
-rw-r--r--npc/re/guides/guides_morroc.txt84
-rw-r--r--npc/re/guides/guides_moscovia.txt76
-rw-r--r--npc/re/guides/guides_niflheim.txt32
-rw-r--r--npc/re/guides/guides_payon.txt80
-rw-r--r--npc/re/guides/guides_prontera.txt199
-rw-r--r--npc/re/guides/guides_rachel.txt36
-rw-r--r--npc/re/guides/guides_umbala.txt37
-rw-r--r--npc/re/guides/guides_veins.txt38
-rw-r--r--npc/re/guides/navigation.txt39
-rw-r--r--npc/re/guild/invest_main.txt44
-rw-r--r--npc/re/guild/invest_npc.txt75
-rw-r--r--npc/re/instances/BakonawaLake.txt543
-rw-r--r--npc/re/instances/BangungotHospital.txt1101
-rw-r--r--npc/re/instances/BuwayaCave.txt459
-rw-r--r--npc/re/instances/HazyForest.txt505
-rw-r--r--npc/re/instances/MalangdoCulvert.txt1051
-rw-r--r--npc/re/instances/OctopusCave.txt712
-rw-r--r--npc/re/instances/OldGlastHeim.txt2059
-rw-r--r--npc/re/instances/WolfchevLaboratory.txt3296
-rw-r--r--npc/re/jobs/1-1/acolyte.txt18
-rw-r--r--npc/re/jobs/1-1/archer.txt14
-rw-r--r--npc/re/jobs/1-1/mage.txt14
-rw-r--r--npc/re/jobs/1-1/merchant.txt14
-rw-r--r--npc/re/jobs/1-1/swordman.txt14
-rw-r--r--npc/re/jobs/1-1/thief.txt20
-rw-r--r--npc/re/jobs/3-1/archbishop.txt493
-rw-r--r--npc/re/jobs/3-1/guillotine_cross.txt210
-rw-r--r--npc/re/jobs/3-1/mechanic.txt34
-rw-r--r--npc/re/jobs/3-1/ranger.txt76
-rw-r--r--npc/re/jobs/3-1/rune_knight.txt83
-rw-r--r--npc/re/jobs/3-1/warlock.txt45
-rw-r--r--npc/re/jobs/3-2/genetic.txt56
-rw-r--r--npc/re/jobs/3-2/minstrel.txt102
-rw-r--r--npc/re/jobs/3-2/royal_guard.txt46
-rw-r--r--npc/re/jobs/3-2/shadow_chaser.txt70
-rw-r--r--npc/re/jobs/3-2/sorcerer.txt22
-rw-r--r--npc/re/jobs/3-2/sura.txt46
-rw-r--r--npc/re/jobs/3-2/wanderer.txt62
-rw-r--r--npc/re/jobs/novice/novice.txt3814
-rw-r--r--npc/re/jobs/novice/supernovice_ex.txt20
-rw-r--r--npc/re/jobs/repair.txt271
-rw-r--r--npc/re/kafras/kafras.txt62
-rw-r--r--npc/re/merchants/3rd_trader.txt270
-rw-r--r--npc/re/merchants/advanced_refiner.txt196
-rw-r--r--npc/re/merchants/alchemist.txt117
-rw-r--r--npc/re/merchants/ammo_boxes.txt19
-rw-r--r--npc/re/merchants/ammo_dealer.txt19
-rw-r--r--npc/re/merchants/blessed_refiner.txt171
-rw-r--r--npc/re/merchants/card_separation.txt233
-rw-r--r--npc/re/merchants/catalog.txt106
-rw-r--r--npc/re/merchants/coin_exchange.txt370
-rw-r--r--npc/re/merchants/diamond.txt36
-rw-r--r--npc/re/merchants/enchan_mal.txt14
-rw-r--r--npc/re/merchants/enchan_mora.txt796
-rw-r--r--npc/re/merchants/enchan_upg.txt264
-rw-r--r--npc/re/merchants/flute.txt31
-rw-r--r--npc/re/merchants/hd_refiner.txt306
-rw-r--r--npc/re/merchants/inn.txt6
-rw-r--r--npc/re/merchants/quivers.txt19
-rw-r--r--npc/re/merchants/refine.txt574
-rw-r--r--npc/re/merchants/renters.txt64
-rw-r--r--npc/re/merchants/shops.txt101
-rw-r--r--npc/re/merchants/ticket_refiner.txt160
-rw-r--r--npc/re/mobs/citycleaners.txt29
-rw-r--r--npc/re/mobs/dungeons/alde_dun.txt6
-rw-r--r--npc/re/mobs/dungeons/beach_dun.txt6
-rw-r--r--npc/re/mobs/dungeons/dew_dun.txt21
-rw-r--r--npc/re/mobs/dungeons/dic_dun.txt43
-rw-r--r--npc/re/mobs/dungeons/ecl_tdun.txt37
-rw-r--r--npc/re/mobs/dungeons/ein_dun.txt2
-rw-r--r--npc/re/mobs/dungeons/gef_dun.txt2
-rw-r--r--npc/re/mobs/dungeons/glastheim.txt4
-rw-r--r--npc/re/mobs/dungeons/gld_dunSE.txt4
-rw-r--r--npc/re/mobs/dungeons/gld_re.txt30
-rw-r--r--npc/re/mobs/dungeons/gon_dun.txt2
-rw-r--r--npc/re/mobs/dungeons/ice_dun.txt2
-rw-r--r--npc/re/mobs/dungeons/in_sphinx.txt2
-rw-r--r--npc/re/mobs/dungeons/iz_dun.txt15
-rw-r--r--npc/re/mobs/dungeons/kh_dun.txt6
-rw-r--r--npc/re/mobs/dungeons/lhz_dun.txt40
-rw-r--r--npc/re/mobs/dungeons/lou_dun.txt6
-rw-r--r--npc/re/mobs/dungeons/ma_dun.txt8
-rw-r--r--npc/re/mobs/dungeons/mag_dun.txt2
-rw-r--r--npc/re/mobs/dungeons/mal_dun.txt5
-rw-r--r--npc/re/mobs/dungeons/mjo_dun.txt2
-rw-r--r--npc/re/mobs/dungeons/moc_pryd.txt35
-rw-r--r--npc/re/mobs/dungeons/mosk_dun.txt2
-rw-r--r--npc/re/mobs/dungeons/nyd_dun.txt2
-rw-r--r--npc/re/mobs/dungeons/odin.txt2
-rw-r--r--npc/re/mobs/dungeons/orcsdun.txt2
-rw-r--r--npc/re/mobs/dungeons/pay_dun.txt2
-rw-r--r--npc/re/mobs/dungeons/prt_maze.txt2
-rw-r--r--npc/re/mobs/dungeons/prt_sew.txt4
-rw-r--r--npc/re/mobs/dungeons/ra_san.txt4
-rw-r--r--npc/re/mobs/dungeons/tha_t.txt4
-rw-r--r--npc/re/mobs/dungeons/thor_v.txt2
-rw-r--r--npc/re/mobs/dungeons/treasure.txt2
-rw-r--r--npc/re/mobs/dungeons/tur_dun.txt2
-rw-r--r--npc/re/mobs/dungeons/xmas_dun.txt2
-rw-r--r--npc/re/mobs/dungeons/yggdrasil.txt2
-rw-r--r--npc/re/mobs/fields/amatsu.txt4
-rw-r--r--npc/re/mobs/fields/bifrost.txt95
-rw-r--r--npc/re/mobs/fields/comodo.txt8
-rw-r--r--npc/re/mobs/fields/dewata.txt9
-rw-r--r--npc/re/mobs/fields/eclage.txt17
-rw-r--r--npc/re/mobs/fields/einbroch.txt10
-rw-r--r--npc/re/mobs/fields/geffen.txt4
-rw-r--r--npc/re/mobs/fields/gonryun.txt2
-rw-r--r--npc/re/mobs/fields/hugel.txt6
-rw-r--r--npc/re/mobs/fields/jawaii.txt27
-rw-r--r--npc/re/mobs/fields/lighthalzen.txt4
-rw-r--r--npc/re/mobs/fields/louyang.txt2
-rw-r--r--npc/re/mobs/fields/malaya.txt16
-rw-r--r--npc/re/mobs/fields/manuk.txt2
-rw-r--r--npc/re/mobs/fields/mjolnir.txt8
-rw-r--r--npc/re/mobs/fields/morocc.txt22
-rw-r--r--npc/re/mobs/fields/moscovia.txt2
-rw-r--r--npc/re/mobs/fields/payon.txt8
-rw-r--r--npc/re/mobs/fields/prontera.txt40
-rw-r--r--npc/re/mobs/fields/rachel.txt2
-rw-r--r--npc/re/mobs/fields/splendide.txt4
-rw-r--r--npc/re/mobs/fields/umbala.txt19
-rw-r--r--npc/re/mobs/fields/veins.txt4
-rw-r--r--npc/re/mobs/fields/yuno.txt12
-rw-r--r--npc/re/mobs/towns.txt34
-rw-r--r--npc/re/other/bulletin_boards.txt37
-rw-r--r--npc/re/other/item_merge.txt69
-rw-r--r--npc/re/other/mail.txt19
-rw-r--r--npc/re/other/mercenary_rent.txt16
-rw-r--r--npc/re/other/pvp.txt91
-rw-r--r--npc/re/other/resetskill.txt147
-rw-r--r--npc/re/other/stone_change.txt59
-rw-r--r--npc/re/other/turbo_track.txt (renamed from npc/re/mobs/towns/brasilis.txt)14
-rw-r--r--npc/re/quests/cupet.txt40
-rw-r--r--npc/re/quests/eden/11-25.txt4
-rw-r--r--npc/re/quests/eden/26-40.txt16
-rw-r--r--npc/re/quests/eden/41-55.txt10
-rw-r--r--npc/re/quests/eden/56-70.txt573
-rw-r--r--npc/re/quests/eden/71-85.txt740
-rw-r--r--npc/re/quests/eden/86-90.txt233
-rw-r--r--npc/re/quests/eden/91-99.txt251
-rw-r--r--npc/re/quests/eden/eden_common.txt119
-rw-r--r--npc/re/quests/eden/eden_iro.txt598
-rw-r--r--npc/re/quests/eden/eden_quests.txt641
-rw-r--r--npc/re/quests/eden/eden_service.txt8
-rw-r--r--npc/re/quests/eden/eden_tutorial.txt1560
-rw-r--r--npc/re/quests/first_class/tu_archer.txt14
-rw-r--r--npc/re/quests/homu_s.txt144
-rw-r--r--npc/re/quests/homun_s.txt1360
-rw-r--r--npc/re/quests/magic_books.txt208
-rw-r--r--npc/re/quests/monstertamers.txt8
-rw-r--r--npc/re/quests/mrsmile.txt23
-rw-r--r--npc/re/quests/pile_bunker.txt43
-rw-r--r--npc/re/quests/quests_13_1.txt19
-rw-r--r--npc/re/quests/quests_brasilis.txt196
-rw-r--r--npc/re/quests/quests_dewata.txt170
-rw-r--r--npc/re/quests/quests_dicastes.txt769
-rw-r--r--npc/re/quests/quests_eclage.txt1837
-rw-r--r--npc/re/quests/quests_izlude.txt22
-rw-r--r--npc/re/quests/quests_lighthalzen.txt592
-rw-r--r--npc/re/quests/quests_malangdo.txt4684
-rw-r--r--npc/re/quests/quests_malaya.txt9152
-rw-r--r--npc/re/quests/quests_mora.txt280
-rw-r--r--npc/re/quests/quests_morocc.txt246
-rw-r--r--npc/re/quests/quests_nameless.txt15
-rw-r--r--npc/re/quests/quests_veins.txt14
-rw-r--r--npc/re/quests/skills/sage_skills.txt53
-rw-r--r--npc/re/scripts.conf57
-rw-r--r--npc/re/scripts_guild.conf8
-rw-r--r--npc/re/scripts_jobs.conf2
-rw-r--r--npc/re/scripts_main.conf8
-rw-r--r--npc/re/scripts_monsters.conf11
-rw-r--r--npc/re/scripts_warps.conf3
-rw-r--r--npc/re/warps/cities/brasilis.txt2
-rw-r--r--npc/re/warps/cities/dewata.txt6
-rw-r--r--npc/re/warps/cities/dicastes.txt34
-rw-r--r--npc/re/warps/cities/eclage.txt7
-rw-r--r--npc/re/warps/cities/izlude.txt95
-rw-r--r--npc/re/warps/cities/malangdo.txt2
-rw-r--r--npc/re/warps/cities/malaya.txt156
-rw-r--r--npc/re/warps/cities/rachel.txt6
-rw-r--r--npc/re/warps/cities/yggdrasil.txt2
-rw-r--r--npc/re/warps/dungeons/bra_dun.txt2
-rw-r--r--npc/re/warps/dungeons/dic_dun.txt2
-rw-r--r--npc/re/warps/dungeons/ecl_dun.txt2
-rw-r--r--npc/re/warps/dungeons/iz_dun.txt10
-rw-r--r--npc/re/warps/dungeons/moc_pryd.txt14
-rw-r--r--npc/re/warps/fields/bif_fild.txt10
-rw-r--r--npc/re/warps/fields/bra_fild.txt3
-rw-r--r--npc/re/warps/fields/com_fild.txt4
-rw-r--r--npc/re/warps/fields/dic_fild.txt2
-rw-r--r--npc/re/warps/fields/geffen_fild.txt2
-rw-r--r--npc/re/warps/fields/hugel_fild.txt2
-rw-r--r--npc/re/warps/fields/morroc_fild.txt21
-rw-r--r--npc/re/warps/fields/payon_fild.txt12
-rw-r--r--npc/re/warps/fields/prontera_fild.txt36
-rw-r--r--npc/re/warps/fields/rachel_fild.txt2
-rw-r--r--npc/re/warps/fields/veins_fild.txt8
-rw-r--r--npc/re/warps/fields/yuno_fild.txt2
-rw-r--r--npc/re/warps/guildcastles.txt4
-rw-r--r--npc/re/warps/other/arena.txt18
-rw-r--r--npc/re/warps/other/jobquests.txt14
-rw-r--r--npc/re/warps/other/paradise.txt2
-rw-r--r--npc/re/warps/other/s_workshop.txt4
-rw-r--r--npc/re/warps/other/sign.txt2
237 files changed, 42002 insertions, 10114 deletions
diff --git a/npc/re/airports/izlude.txt b/npc/re/airports/izlude.txt
index 67b9e988d..69ba5b115 100644
--- a/npc/re/airports/izlude.txt
+++ b/npc/re/airports/izlude.txt
@@ -1,13 +1,19 @@
//===== Hercules Script ======================================
//= Izlude Airport NPCs
-//===== By: ==================================================
+//===== By: ==================================================
//= Hercules Dev Team
-//===== Description: =========================================
+//===== Current Version: =====================================
+//= 1.1
+//===== Description: =========================================
+//= [Official Conversion]
//= Izlude Airport NPCs
-//===== Additional Comments: =================================
-//= Official NPCs.
-//= Updated to match the new Izlude Map. [Masao]
-//= Updated to Official coordinates
-//============================================================
+//===== Additional Comments: =================================
+//= 1.0 Updated to match the new Izlude Map. [Masao]
+//= 1.1 Added Izlude duplicates. [Euphy]
+//============================================================
-izlude,202,75,3 duplicate(Airship_Staff_izlude) Airship Staff#izlude 90
+izlude,202,75,3 duplicate(Airship_Staff_izlude) Airship Staff#izlude 4_F_01
+izlude_a,202,75,3 duplicate(Airship_Staff_izlude) Airship Staff#izlude_a 4_F_01
+izlude_b,202,75,3 duplicate(Airship_Staff_izlude) Airship Staff#izlude_b 4_F_01
+izlude_c,202,75,3 duplicate(Airship_Staff_izlude) Airship Staff#izlude_c 4_F_01
+izlude_d,202,75,3 duplicate(Airship_Staff_izlude) Airship Staff#izlude_d 4_F_01
diff --git a/npc/re/cities/alberta.txt b/npc/re/cities/alberta.txt
index 9d17acc65..4fb8bab6d 100644
--- a/npc/re/cities/alberta.txt
+++ b/npc/re/cities/alberta.txt
@@ -5,6 +5,7 @@
//===== Current Version: =====================================
//= 1.0
//===== Description: =========================================
+//= [Official Conversion]
//= Alberta town NPCs.
//===== Additional Comments: =================================
//= 1.0 First Version.
@@ -12,29 +13,29 @@
// cities/amatsu.txt
//============================================================
-alberta,246,74,3 duplicate(Sea_Captain_amatsu) Sea Captain#ama1 709
+alberta,246,74,3 duplicate(Sea_Captain_amatsu) Sea Captain#ama1 4_M_SEAMAN
// cities/ayothaya.txt
//============================================================
-alberta,246,29,3 duplicate(Aibakthing_ayothaya) Aibakthing#ayo 843
+alberta,246,29,3 duplicate(Aibakthing_ayothaya) Aibakthing#ayo 4_M_THAIONGBAK
// cities/gonryun.txt
//============================================================
-alberta,246,62,3 duplicate(Kunlun_Envoy_gonryun) Kunlun Envoy#gon 776
+alberta,246,62,3 duplicate(Kunlun_Envoy_gonryun) Kunlun Envoy#gon 4_M_TWMIDMAN
// cities/louyang.txt
//============================================================
-alberta,246,40,3 duplicate(Girl_louyang) Girl#0lou 815
+alberta,246,40,3 duplicate(Girl_louyang) Girl#0lou 4_F_CHNDRESS1
// cities/moscovia.txt
//============================================================
-alberta,246,51,4 duplicate(PR_Officer_moscovia) Moscovia P.R. Officer#1 960
+alberta,246,51,4 duplicate(PR_Officer_moscovia) Moscovia P.R. Officer#1 4_F_RUSWOMAN2
// quests/quests_alberta.txt
//============================================================
-alberta,244,118,4 duplicate(Sailor_alberta) Sailor#tur 709
-alberta,246,114,4 duplicate(Turtle_Scholar_alberta) Turtle Island Scholar 121
+alberta,244,118,4 duplicate(Sailor_alberta) Sailor#tur 4_M_SEAMAN
+alberta,246,114,4 duplicate(Turtle_Scholar_alberta) Turtle Island Scholar 2_M_MOLGENSTEIN
// quests/skills/merchant_skills.txt
//============================================================
-alberta,232,103,6 duplicate(Gershaun_alberta) Gershaun 57
+alberta,232,103,6 duplicate(Gershaun_alberta) Gershaun 1_M_LIBRARYMASTER
diff --git a/npc/re/cities/brasilis.txt b/npc/re/cities/brasilis.txt
index cde84e954..405ce486c 100644
--- a/npc/re/cities/brasilis.txt
+++ b/npc/re/cities/brasilis.txt
@@ -1,21 +1,23 @@
//===== Hercules Script ======================================
//= Brasilis Town
-//===== By: ==================================================
+//===== By: ==================================================
//= L0ne_W0lf
//===== Current Version: =====================================
//= 1.3
-//===== Description: =========================================
-//= [Aegis Conversion]
+//===== Description: =========================================
+//= [Official Conversion]
//= Brasilis Town Script
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First version. Transportation and Basic NPCs.
//= 1.1 Fixed Zeny not being removed for payment. [Kisuka]
//= 1.2 Updated dialog, added Ice Cream Maker. [L0ne_W0lf]
//= 1.3 Moved Alberta NPC to pre-re/re paths. [Euphy]
-//============================================================
+//============================================================
+// Brasilis Transportation
+//============================================================
/* Pre-Renewal coordinates: alberta,247,115,3 */
-alberta,246,82,3 script Crewman#bra2 100,{
+alberta,246,82,3 script Crewman#bra2 4W_SAILOR,{
mes "[Crewman]";
mes "Hey, have you heard of a place called Brasilis?";
mes "It's a tropical city that's hot like the desert but also rainy. It is a very mysterious place.";
@@ -29,7 +31,7 @@ alberta,246,82,3 script Crewman#bra2 100,{
if (Zeny > 9999) {
mes "[Crewman]";
mes "Cool~!! Let's go~!";
- set zeny,zeny-10000;
+ Zeny -= 10000;
close2;
warp "brasilis",314,60;
end;
@@ -46,7 +48,7 @@ alberta,246,82,3 script Crewman#bra2 100,{
}
}
-brasilis,316,57,3 script Crewman#bra1 100,{
+brasilis,316,57,3 script Crewman#bra1 4W_SAILOR,{
mes "[Crewman]";
mes "My ship is going to back to Alberta, do you want to join us?";
next;
@@ -67,36 +69,38 @@ brasilis,316,57,3 script Crewman#bra1 100,{
}
}
-brasilis,155,165,3 script Signpost#bra1 858,{
+// Generic Brasilis NPCs
+//============================================================
+brasilis,155,165,3 script Signpost#bra1 4_BULLETIN_BOARD2,{
mes ":: Art Museum ::";
close;
}
-brasilis,195,231,3 script Signpost#bra2 858,{
+brasilis,195,231,3 script Signpost#bra2 4_BULLETIN_BOARD2,{
mes ":: Verass Monument ::";
close;
}
-brasilis,240,247,3 script Signpost#bra3 858,{
+brasilis,240,247,3 script Signpost#bra3 4_BULLETIN_BOARD2,{
mes ":: Market ::";
mes " ";
mes "- For your Potions and Weaponry -";
close;
}
-brasilis,303,309,3 script Signpost#bra4 858,{
+brasilis,303,309,3 script Signpost#bra4 4_BULLETIN_BOARD2,{
mes ":: Jungle Cable ::";
mes "";
mes "- Not for the faint of heart -";
close;
}
-brasilis,278,137,3 script Signpost#bra5 858,{
+brasilis,278,137,3 script Signpost#bra5 4_BULLETIN_BOARD2,{
mes ":: Brasilis Hotel ::";
close;
}
-brasilis,137,77,5 script Ice-Cream Maker 85,{
+brasilis,137,77,5 script Ice-Cream Maker 4_M_03,{
mes "[Ice Cream Maker]";
mes "Come~come~";
mes "Ice cream is the perfect snack for a hot day~";
@@ -141,7 +145,7 @@ brasilis,137,77,5 script Ice-Cream Maker 85,{
mes "Lighten your pack before buying this.";
close;
}
- set zeny,zeny-.@icecream_hap;
+ Zeny -= .@icecream_hap;
getitem 536,.@input; //Ice_Cream
close;
case 2:
diff --git a/npc/re/cities/dewata.txt b/npc/re/cities/dewata.txt
index 3c5953adf..1205a4de1 100644
--- a/npc/re/cities/dewata.txt
+++ b/npc/re/cities/dewata.txt
@@ -1,21 +1,75 @@
//===== Hercules Script ======================================
//= Dewata Town
-//===== By: ==================================================
+//===== By: ==================================================
//= Gennosuke Kouga, Muad_Dib
-//===== Current Version: =====================================
+//===== Current Version: =====================================
//= 1.3
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Description: =========================================
+//= [Official Conversion]
//= Dewata Town Script
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First version.
//= 1.1 Standardized. [Euphy]
//= 1.2 Fixed Zeny check. [Joseph]
//= 1.3 Updated to match the official script. [Lemongrass/Euphy]
//============================================================
-dewata,221,237,5 script Young Man#dew-1 536,{
+// Dewata Transportation
+//============================================================
+alberta,212,202,4 script Dewata Sailor#alberta 4_M_DEWMAN,{
+ mes "[Dewata Sailor]";
+ mes "Do you want to visit ^8B4513Dewata Island^000000?";
+ mes "With it's dazzling waves and charming views it's a great place to relax.";
+ mes "The transit fee is 10,000 Zeny.";
+ next;
+ switch(select("Yes!:No.")) {
+ case 1:
+ if (Zeny >= 10000) {
+ mes "[Dewata Sailor]";
+ mes "^8B4513Dewata^000000 is a beautiful and peaceful island country.";
+ mes "Have a nice trip~";
+ close2;
+ Zeny -= 10000;
+ warp "dewata",232,53;
+ end;
+ } else {
+ mes "[Dewata Sailor]";
+ mes "You don't have the dough, kid.";
+ mes "Come back when you have a bigger wallet.";
+ close;
+ }
+ case 2:
+ mes "[Dewata Sailor]";
+ mes "Let me know";
+ mes "when you're ready to travel~";
+ close;
+ }
+}
+
+dewata,229,49,6 script Alberta Sailor#dewata 4_M_DEWMAN,{
+ mes "[Alberta Sailor]";
+ mes "Do you want to go back to Alberta?";
+ next;
+ switch(select("Yes.:No.")) {
+ case 1:
+ mes "[Alberta Sailor]";
+ mes "I hope you had a lot of fun on";
+ mes "your trip to ^8B4513Dewata^000000 Island.";
+ mes "Please come again!";
+ close2;
+ warp "alberta",210,198;
+ end;
+ case 2:
+ mes "[Alberta Sailor]";
+ mes "Have some more fun before you go.";
+ mes "^8B4513Dewata^000000 Island still has more to offer.";
+ close;
+ }
+}
+
+// Generic Dewata NPCs
+//============================================================
+dewata,221,237,5 script Young Man#dew-1 4_M_DEWMAN,{
mes "[Fruit Fancier]";
mes "What's wrong with your faaaaaace? You must really be clueless!";
next;
@@ -111,7 +165,7 @@ dewata,221,237,5 script Young Man#dew-1 536,{
}
}
-dewata,114,243,6 script Lazy Young Man#dew 536,1,1,{
+dewata,114,243,6 script Lazy Young Man#dew 4_M_DEWMAN,1,1,{
if (checkweight(1201,1) == 0 || MaxWeight - Weight < 500) {
mes "[Lazy Young Man]";
mes "Why are you carrying so much? Isn't it heavy?";
@@ -157,7 +211,7 @@ OnTouch:
end;
}
-dewata,159,81,4 script Tourist#dew-1 881,{
+dewata,159,81,4 script Tourist#dew-1 4_M_SITDOWN,{
mes "[Nasolo]";
mes "Wow~ Pure ocean, a warm beach...";
mes "Perfect for a date with a girlfriend...";
@@ -172,7 +226,7 @@ dewata,159,81,4 script Tourist#dew-1 881,{
close;
}
-dewata,146,109,5 script Restauranteur#dew 886,{
+dewata,146,109,5 script Restauranteur#dew 4_COOK,{
if (checkweight(11532,1) == 0 || checkweight(11533,1) == 0 || MaxWeight - Weight < 500) {
mes "[Restauranteur]";
mes "You came to taste my dish? It is always good to eat with an empty stomach.";
@@ -242,7 +296,7 @@ dewata,146,109,5 script Restauranteur#dew 886,{
}
mes "[Restauranteur]";
mes "Here's your "+getitemname(.@food)+", you won't regret it!";
- set Zeny, Zeny - 5000;
+ Zeny -= 5000;
getitem .@food,1;
close;
case 2:
@@ -257,7 +311,7 @@ dewata,146,109,5 script Restauranteur#dew 886,{
}
}
-dewata,147,107,6 script Gourmet#dew 85,{
+dewata,147,107,6 script Gourmet#dew 4_M_03,{
mes "[Gourmet]";
mes "Oh... it's like a party in my";
mes "mouth... and everyone's invited!";
@@ -273,7 +327,7 @@ dewata,147,107,6 script Gourmet#dew 85,{
close;
}
-dewata,154,107,4 script Sightseer#dew 86,{
+dewata,154,107,4 script Sightseer#dew 4_M_04,{
mes "[Tourist]";
mes "Wow...";
mes "How many has he already eaten?";
@@ -287,7 +341,7 @@ dewata,154,107,4 script Sightseer#dew 86,{
close;
}
-dewata,95,203,6 script Travel Guide#dew 536,{
+dewata,95,203,6 script Travel Guide#dew 4_M_DEWMAN,{
mes "[Guide]";
mes "This temple behind me is called Borobudur.";
mes "Borobudur temple was built in the 9th century";
@@ -312,7 +366,7 @@ dewata,95,203,6 script Travel Guide#dew 536,{
close;
}
-dewata,97,207,4 script Tourist#dew1 803,{
+dewata,97,207,4 script Tourist#dew1 1_F_SIGNZISK,{
mes "[Tourist]";
mes "Oh, dag-nabbit... I've gone and";
mes "picked the wrong tour guide...";
@@ -328,7 +382,7 @@ dewata,97,207,4 script Tourist#dew1 803,{
close;
}
-dewata,100,206,4 script Tourist#dew2 59,{
+dewata,100,206,4 script Tourist#dew2 1_M_ORIENT01,{
mes "[Tourist]";
mes "Hey, let's go there! Hurry up,";
mes "while the tour guide is explaining~";
@@ -339,7 +393,7 @@ dewata,100,206,4 script Tourist#dew2 59,{
close;
}
-dewata,101,206,4 script Tourist#dew3 90,{
+dewata,101,206,4 script Tourist#dew3 4_F_01,{
mes "[Tourist]";
mes "Aren't we going to get lost without the guide?";
next;
@@ -348,7 +402,7 @@ dewata,101,206,4 script Tourist#dew3 90,{
close;
}
-dewata,99,203,4 script Tourist#dew4 755,{
+dewata,99,203,4 script Tourist#dew4 4_M_SAGE_C,{
mes "[Tourist]";
mes "Oh~ This is very interesting. A";
mes "temple that worships the Buddha...";
@@ -364,7 +418,7 @@ dewata,99,203,4 script Tourist#dew4 755,{
close;
}
-dewata,67,186,8 script Monk#dew1 834,{
+dewata,67,186,8 script Monk#dew1 4_M_BUDDHIST,{
mes "[Monk]";
mes "I am a monk, content to spend my days in religious study.";
next;
@@ -376,7 +430,7 @@ dewata,67,186,8 script Monk#dew1 834,{
close;
}
-dewata,65,188,8 script Monk#dew2 834,{
+dewata,65,188,8 script Monk#dew2 4_M_BUDDHIST,{
mes "[Monk]";
mes "Borobudur temple is one of few temples left for worshiping the Great Buddha.";
next;
@@ -385,7 +439,7 @@ dewata,65,188,8 script Monk#dew2 834,{
close;
}
-dewata,63,190,8 script Monk#dew3 834,{
+dewata,63,190,8 script Monk#dew3 4_M_BUDDHIST,{
mes "[Monk]";
mes "Are you a Tourist? You can make an offering and a wish to one of the shrines.";
next;
@@ -394,7 +448,7 @@ dewata,63,190,8 script Monk#dew3 834,{
close;
}
-dewata,62,192,8 script Monk#dew4 834,{
+dewata,62,192,8 script Monk#dew4 4_M_BUDDHIST,{
mes "[Monk]";
mes "Our great Buddha is the king of souls and the leader of all good Gods.";
next;
@@ -406,7 +460,7 @@ dewata,62,192,8 script Monk#dew4 834,{
close;
}
-dewata,89,191,6 script Small Shrine#dew1 844,{
+dewata,89,191,6 script Small Shrine#dew1 CLEAR_NPC,{
mes "There is a small shrine here. There are many people making wishes.";
next;
switch(select("Make a donation.:Make a wish.:Walk away.")) {
@@ -455,37 +509,19 @@ dewata,89,191,6 script Small Shrine#dew1 844,{
mes "You make a wish for ^0000FF" + .@wish$ + "^000000 to the small shrine.";
next;
callsub L_Wish;
- set Zeny, Zeny - .@input;
- if (.@stat & 1 && .@bonus){
- sc_start SC_FOOD_STR,1200000,3;
- percentheal 5,0;
- //consumeitem 12043; //Str_Dish03
- }
- else if (.@stat & 2 && .@bonus){
- sc_start SC_FOOD_AGI,1200000,3;
- percentheal 5,0;
- //consumeitem 12058; //Agi_Dish03
- }
- else if (.@stat & 4 && .@bonus){
- sc_start SC_FOOD_DEX,1200000,3;
- percentheal 5,0;
- //consumeitem 12063; //Dex_Dish03
- }
- else if (.@stat & 8 && .@bonus){
- sc_start SC_FOOD_VIT,1200000,3;
- percentheal 5,0;
- //consumeitem 12053; //Vit_Dish03
- }
- else if (.@stat & 16 && .@bonus){
- sc_start SC_FOOD_INT,1200000,3;
- percentheal 5,0;
- //consumeitem 12048; //Int_Dish03
- }
- else if (.@stat & 32 && .@bonus){
- sc_start SC_FOOD_LUK,1200000,3;
- percentheal 5,0;
- //consumeitem 12068; //Luk_Dish03
- }
+ Zeny -= .@input;
+ if (.@stat & 1 && .@bonus)
+ consumeitem 12043; //Str_Dish03
+ else if (.@stat & 2 && .@bonus)
+ consumeitem 12058; //Agi_Dish03
+ else if (.@stat & 4 && .@bonus)
+ consumeitem 12063; //Dex_Dish03
+ else if (.@stat & 8 && .@bonus)
+ consumeitem 12053; //Vit_Dish03
+ else if (.@stat & 16 && .@bonus)
+ consumeitem 12048; //Int_Dish03
+ else if (.@stat & 32 && .@bonus)
+ consumeitem 12068; //Luk_Dish03
else if (.@stat & 64) {
specialeffect2 EF_ANGEL;
mes "- A celestial entity gives you a blessing. -";
@@ -523,11 +559,11 @@ L_Wish:
next;
return;
}
-dewata,89,212,6 duplicate(Small Shrine#dew1) Small Shrine#dew2 844
-dewata,68,212,6 duplicate(Small Shrine#dew1) Small Shrine#dew3 844
-dewata,68,191,6 duplicate(Small Shrine#dew1) Small Shrine#dew4 844
+dewata,89,212,6 duplicate(Small Shrine#dew1) Small Shrine#dew2 CLEAR_NPC
+dewata,68,212,6 duplicate(Small Shrine#dew1) Small Shrine#dew3 CLEAR_NPC
+dewata,68,191,6 duplicate(Small Shrine#dew1) Small Shrine#dew4 CLEAR_NPC
-dewata,75,122,6 script Monk#dewt1 834,{
+dewata,75,122,6 script Monk#dewt1 4_M_BUDDHIST,{
mes "[Monk]";
mes "You are a stranger here. What brings here to this quiet place?";
next;
@@ -543,7 +579,7 @@ dewata,75,122,6 script Monk#dewt1 834,{
}
}
-dewata,69,101,6 script Monk#dewt2 834,{
+dewata,69,101,6 script Monk#dewt2 4_M_BUDDHIST,{
mes "[Monk]";
mes "We have a pagoda for the worship of Buddhas. Each temple has one of these towers, though not many people come here besides other monks.";
next;
@@ -578,7 +614,7 @@ dewata,69,101,6 script Monk#dewt2 834,{
}
}
-dewata,71,79,6 script Monk#dewt3 834,{
+dewata,71,79,6 script Monk#dewt3 4_M_BUDDHIST,{
mes "[Monk]";
mes "This tower is built on the edge of coastal cliff. You can pray with a cool ocean breeze in your hair.";
next;
@@ -587,7 +623,7 @@ dewata,71,79,6 script Monk#dewt3 834,{
close;
}
-dewata,211,272,4 script Lodge Owner#dew 534,2,3,{
+dewata,211,272,4 script Lodge Owner#dew 4_M_DEWOLDMAN,2,3,{
OnTouch:
mes "[Lodge Owner]";
mes "These days, we have many honeymooners visiting here.";
@@ -604,7 +640,7 @@ OnTouch:
close;
}
-dewata,245,244,4 script Lodge Employee#dew 536,2,3,{
+dewata,245,244,4 script Lodge Employee#dew 4_M_DEWMAN,2,3,{
OnTouch:
mes "[Lodge employee]";
mes "Argg~ This is really ticking me off!";
@@ -621,7 +657,7 @@ OnTouch:
close;
}
-dewata,233,263,8 script Sweet Married Couple::smc_dew_01 828,2,3,{
+dewata,233,263,8 script Sweet Married Couple#1 4_M_ROGUE,2,3,{
OnTouch:
mes "[Sweet Husband]";
mes "You are the most beautiful thing in the world baby~";
@@ -641,7 +677,7 @@ OnTouch:
close;
}
-dewata,234,263,8 script Sweet Married Couple::smc_dew_02 727,2,3,{
+dewata,234,263,8 script Sweet Married Couple#2 4_F_JOB_HUNTER,2,3,{
OnTouch:
mes "[Sweet Wife]";
mes "Baby~ You know what flower that is~?";
@@ -672,7 +708,7 @@ OnTouch:
close;
}
-dewata,279,213,4 script Tourist#dew-2 887,2,3,{
+dewata,279,213,4 script Tourist#dew-2 4_M_LIEMAN,2,3,{
OnTouch:
mes "[Reclining Tourist]";
mes "Wow~ This is really comfy~";
@@ -690,7 +726,7 @@ OnTouch:
close;
}
-dewata,269,208,4 script Little Kid in Town#dew 538,2,3,{
+dewata,269,208,4 script Little Kid in Town#dew 4_M_DEWBOY,2,3,{
OnTouch:
mes "[Kid]";
mes "Hey "+((Sex)?"bro":"sis")+", look at that man!";
@@ -707,7 +743,7 @@ OnTouch:
close;
}
-dewata,227,129,4 script Sarr#dew 538,2,3,{
+dewata,227,129,4 script Sarr#dew 4_M_DEWBOY,2,3,{
OnTouch:
mes "[Sarr]";
mes "They're hiding so I should seek.";
@@ -730,7 +766,7 @@ OnTouch:
close;
}
-dewata,239,140,4 script Siyak#dew 539,2,3,{
+dewata,239,140,4 script Siyak#dew 4_M_DEWGIRL,2,3,{
OnTouch:
mes "[Siyak]";
mes "Hey come on, move over~ He's gonna find me~~";
@@ -748,7 +784,7 @@ OnTouch:
close;
}
-dewata,193,145,4 script Sipo#dew 538,2,3,{
+dewata,193,145,4 script Sipo#dew 4_M_DEWBOY,2,3,{
OnTouch:
mes "[Sipo]";
mes "Sarr won't find me here, right?";
@@ -765,7 +801,7 @@ OnTouch:
close;
}
-dewata,228,177,4 script Majya#dew 538,2,3,{
+dewata,228,177,4 script Majya#dew 4_M_DEWBOY,2,3,{
OnTouch:
mes "[Majya]";
mes "I was playing hide-and-seek with my friends...";
@@ -779,7 +815,7 @@ OnTouch:
close;
}
-dewata,278,100,4 script Missing Child#dew 703,2,3,{
+dewata,278,100,4 script Missing Child#dew 4_F_KID2,2,3,{
OnTouch:
mes "[Ukki]";
mes "WaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaa~";
@@ -804,7 +840,7 @@ OnTouch:
close;
}
-dewata,249,87,4 script Mum#dew 101,2,3,{
+dewata,249,87,4 script Mum#dew 4W_F_01,2,3,{
OnTouch:
mes "[Mum]";
mes "Ukki~ Ukki~ Where did she go?";
@@ -819,7 +855,7 @@ OnTouch:
close;
}
-dewata,251,85,6 script Poppa#dew 97,2,3,{
+dewata,251,85,6 script Poppa#dew 4W_M_01,2,3,{
OnTouch:
mes "[Poppa]";
mes "Honey, is Ukki lost again?";
@@ -840,7 +876,7 @@ OnTouch:
close;
}
-dewata,278,281,4 script Happily Married Grandpa::hmg_dew_01 534,{
+dewata,278,281,4 script Happily Married Grandpa 4_M_DEWOLDMAN,{
mes "[Happily Married Grandpa]";
mes "Today, I should ask my lady to";
mes "cook me some ^006400fried rice^000000.";
@@ -856,7 +892,7 @@ dewata,278,281,4 script Happily Married Grandpa::hmg_dew_01 534,{
close;
}
-dewata,280,277,4 script Happily Married Grandma::hmg_dew_02 535,{
+dewata,280,277,4 script Happily Married Grandma 4_M_DEWOLDWOMAN,{
mes "[Happily Married Grandma]";
mes "In my younger days,";
mes "there were many gentleman callers";
@@ -884,7 +920,7 @@ dewata,280,277,4 script Happily Married Grandma::hmg_dew_02 535,{
close;
}
-dewata,165,103,6 script Adventurer Semangat#dew 534,{
+dewata,165,103,6 script Adventurer Semangat#dew 4_M_DEWOLDMAN,{
mes "[Adventurer Semangat]";
mes "I also traveled around the World";
mes "When I was young like you.";
@@ -906,7 +942,7 @@ dewata,165,103,6 script Adventurer Semangat#dew 534,{
close;
}
-dewata,139,114,6 script Semangat's Wife#dew 535,{
+dewata,139,114,6 script Semangat's Wife#dew 4_M_DEWOLDWOMAN,{
mes "[Semangat's Wife]";
mes "Where's that old man";
mes "gone off to again?";
@@ -941,7 +977,7 @@ dewata,139,114,6 script Semangat's Wife#dew 535,{
}
}
-dewata,181,88,6 script Young Man#dew-2 536,{
+dewata,181,88,6 script Young Man#dew-2 4_M_DEWMAN,{
mes "[Young Man]";
mes "Isn't ^8B4513Dewata^000000 beach";
mes "really beautiful?";
@@ -958,7 +994,7 @@ dewata,181,88,6 script Young Man#dew-2 536,{
close;
}
-dewata,179,204,4 script Young Lady#dew 537,{
+dewata,179,204,4 script Young Lady#dew 4_M_DEWWOMAN,{
mes "[Young Lady]";
mes "When you are outside of the town,";
mes "and meet ^FF0000Tiger, Monkey, or pig^000000,";
@@ -980,7 +1016,7 @@ dewata,179,204,4 script Young Lady#dew 537,{
close;
}
-dewata,280,236,4 script Settler#dew 726,{
+dewata,280,236,4 script Settler#dew 4_F_JOB_BLACKSMITH,{
mes "[Settler]";
mes "I'm not really from ^8B4513Dewata^000000.";
mes "But while traveling,";
@@ -1000,7 +1036,7 @@ dewata,280,236,4 script Settler#dew 726,{
close;
}
-dewata,204,230,6 script Dieting Lady#dew 537,{
+dewata,204,230,6 script Dieting Lady#dew 4_M_DEWWOMAN,{
if (countitem(11533) == 0) {
mes "[Dieting Lady]";
mes "Ah~ I'm starving!!";
@@ -1045,7 +1081,7 @@ dewata,204,230,6 script Dieting Lady#dew 537,{
}
}
-dewata,117,156,6 script Dreaming Kid#dew 538,{
+dewata,117,156,6 script Dreaming Kid#dew 4_M_DEWBOY,{
mes "[Dreaming Kid]";
mes "My granny says";
mes "There was once a bird named ^FF0000Garuda^000000";
@@ -1063,7 +1099,7 @@ dewata,117,156,6 script Dreaming Kid#dew 538,{
close;
}
-dewata,144,216,4 script Energetic Kid#dew 538,{
+dewata,144,216,4 script Energetic Kid#dew 4_M_DEWBOY,{
mes "[Energetic Kid]";
mes "My parents used to tell me...";
next;
@@ -1084,7 +1120,7 @@ dewata,144,216,4 script Energetic Kid#dew 538,{
close;
}
-dewata,127,248,6 script Wishing Kid#dew 539,{
+dewata,127,248,6 script Wishing Kid#dew 4_M_DEWGIRL,{
mes "[Kid wishing to be an adult]";
mes "My family has been brewing";
mes "traditional Dewata wine for ages.";
@@ -1104,7 +1140,7 @@ dewata,127,248,6 script Wishing Kid#dew 539,{
close;
}
-dew_fild01,101,259,6 script Jaty Tribe Gatekeeper::jtg_dew 541,{
+dew_fild01,101,259,6 script Jaty Tribe Gatekeeper 4_M_DEWZATIMAN,{
mes "[Jaty Tribe Gatekeeper]";
mes "Welcome to ^FF0000Jaty^000000 town.";
mes "Our tribe reveres strength and bravery.";
@@ -1112,7 +1148,7 @@ dew_fild01,101,259,6 script Jaty Tribe Gatekeeper::jtg_dew 541,{
close;
}
-dew_fild01,106,306,4 script R. Jaty Tribe Warrior 541,{
+dew_fild01,106,306,4 script R. Jaty Tribe Warrior 4_M_DEWZATIMAN,{
mes "[Reserved Jaty Warrior]";
mes "I want to be the very best";
mes "like no one ever was.";
diff --git a/npc/re/cities/dicastes.txt b/npc/re/cities/dicastes.txt
index 5fd555b8f..90130c3ab 100644
--- a/npc/re/cities/dicastes.txt
+++ b/npc/re/cities/dicastes.txt
@@ -3,19 +3,21 @@
//===== By: ==================================================
//= Gennosuke Kouga, Muad_Dib
//===== Current Version: =====================================
-//= 1.2a
-//===== Compatible With: =====================================
-//= Hercules
+//= 1.3
+//===== File Encoding ========================================
+//= CP-949 (EUC-KR compatible). Do NOT read/save it as UTF-8.
//===== Description: =========================================
+//= [Official Conversion]
//= El Dicastes Town Script
//===== Additional Comments: =================================
//= 1.0 First version.
//= 1.1 Standardized. [Euphy]
//= 1.2 Updated to match the official script. [Joseph]
//= 1.2a Moved Guide to a separate file. [Euphy]
+//= 1.3 Updated to match official script. [SkittleNugget]
//============================================================
-dicastes01,194,159,5 script Excited Galten#a 492,{
+dicastes01,194,159,5 script Excited Galten#a 4_MAN_GALTUN1,{
mes "[Excited Galten]";
if (isequipped(2782)) {
mes "I can't get beautiful";
@@ -24,7 +26,7 @@ dicastes01,194,159,5 script Excited Galten#a 492,{
mes "As long as we have him,";
mes "it will only be a matter of time before Sapha";
mes "will rule this land.";
- close;
+ close;
}
mes "¡ø¢²¢£ ¡Ð ¡ò¡ð¡ð";
mes "¡÷¡ø¡ñ ¡ü ¡ü";
@@ -34,7 +36,7 @@ dicastes01,194,159,5 script Excited Galten#a 492,{
close;
}
-dicastes01,202,86,3 script Sentinel#a 492,{
+dicastes01,202,86,3 script Sentinel#a 4_MAN_GALTUN1,{
mes "[Sentinel]";
if (isequipped(2782)) {
mes "El Dicastes, the";
@@ -47,7 +49,7 @@ dicastes01,202,86,3 script Sentinel#a 492,{
next;
mes "[Sentinel]";
mes "Hey, you are an outsider!";
- close;
+ close;
}
mes "¡ô¢±¢± ¡û ¡ó¡Ð¡ñ ¢£ ¢¤¡ú";
mes "¡ø¡ó¢² ¢¤ ";
@@ -58,16 +60,16 @@ dicastes01,202,86,3 script Sentinel#a 492,{
next;
mes "[Sentinel]";
mes "¡ñ¡ö¡ï ¡ú ¡ó¢³¡ô";
- close;
+ close;
}
-dicastes01,194,95,5 script Sentinel#b 450,{
+dicastes01,194,95,5 script Sentinel#b 4_MAN_GALTUN,{
mes "[Sentinel]";
if (isequipped(2782)) {
mes "I permit your entry.";
mes "But if you dare to cause trouble";
mes "you won't know what hit you. Beware!";
- close;
+ close;
}
mes "¡ø¡ô¡ü ¡ø ¡ó";
mes "¡ø¡ï¡û ¡ó ¡û¢¤¢² ¡÷ ¢£";
@@ -75,26 +77,26 @@ dicastes01,194,95,5 script Sentinel#b 450,{
close;
}
-dicastes01,234,158,0 script Training Galten#a 450,{
+dicastes01,234,158,0 script Training Galten#a 4_MAN_GALTUN,{
+ mes "[Training Galten]";
if (isequipped(2782)) {
- mes "[Training Galten]";
mes "I'll be ready for anything";
mes "if I keep up with my training every day.";
close;
}
- mes "ø¡ô¡ü ¡¡ø¡ô¡ü ¡ø";
- mes "ô ¡ø";
+ mes "¡ø¡ô¡ü ¡ø ¡ø¡ô¡ü ¡ø";
+ mes "¡ô ¡ø";
next;
mes "Don't know what it means.";
close;
}
-dicastes01,244,166,0 script Training Galten#b 450,{
+dicastes01,244,166,0 script Training Galten#b 4_MAN_GALTUN,{
+ mes "[Training Galten]";
if (isequipped(2782)) {
- mes "[Training Galten]";
mes "I wonder if Ahat knows how";
mes "hard I am training.";
- close;
+ close;
}
mes "¡ø¡ô¡ü ¡ø";
mes "¡ø¡ô¡ü ¡ø ¡ø¡ô¡ü ¡ø ¡ø¡ô¡ü ¡ø";
@@ -103,7 +105,7 @@ dicastes01,244,166,0 script Training Galten#b 450,{
close;
}
-dicastes01,272,166,0 script Training Galten#c 450,{
+dicastes01,272,166,0 script Training Galten#c 4_MAN_GALTUN,{
mes "[Training Galten]";
if (isequipped(2782)) {
mes "[Training Galten]";
@@ -118,28 +120,42 @@ dicastes01,272,166,0 script Training Galten#c 450,{
close;
}
-dicastes01,248,129,0 script Training Galten#d 450,{
+dicastes01,248,129,0 script Training Galten#d 4_MAN_GALTUN,{
mes "[Training Galten]";
if (isequipped(2782)) {
mes "[Training Galten]";
mes "I heard this isn't training";
mes "equipment but a massager";
mes "for trainees like me.";
- close;
+ close;
}
mes "¡ø¡ô¡ü ¡ø ¡ø¡ô¡ü";
- mes "¡ø¡ô¡ü ¡ø¡ ø¡ô¡ü ¡ø";
+ mes "¡ø¡ô¡ü ¡ø ¡ø¡ô¡ü ¡ø";
next;
mes "Don't know what it means.";
close;
}
-dic_in01,349,282,4 script Waiting Galten#in_1 492,{
+/*
+dicastes01,271,152,0 script Training Galten#e 4_MAN_GALTUN,{
+ mes "[Training Galten]";
+ if (isequipped(2782)) {
+ mes "I will get great results";
+ mes "if I do my best, right?";
+ close;
+ }
+ mes "¡ø¢²¡û ¡ô ¢£¢³¡ô";
+ mes "¡ü¡ô";
+ close;
+}
+*/
+
+dic_in01,349,282,4 script Waiting Galten#in_1 4_MAN_GALTUN1,{
if (isequipped(2782)) {
mes "[Waiting Galten]";
mes "Here is the Battle Station.";
mes "We are all tensed up to be ready for action.";
- close;
+ close;
}
mes "[¢²¡Ð¡û ¡ù ¡Ð]";
mes "¡ñ¡õ¡ü ¢£ ¡ó";
@@ -147,58 +163,58 @@ dic_in01,349,282,4 script Waiting Galten#in_1 492,{
close;
}
-dic_in01,370,261,1 script Waiting Galten#in_2 492,{
+dic_in01,370,261,1 script Waiting Galten#in_2 4_MAN_GALTUN1,{
if (isequipped(2782)) {
mes "[Waiting Galten]";
mes "Boring.";
- close;
+ close;
}
mes "[¢²¡Ð¡û ¡ù ¡Ð]";
mes "¡ù¢¤¢±";
close;
}
-dic_in01,381,261,1 script Waiting Galten#in_3 492,{
+dic_in01,381,261,1 script Waiting Galten#in_3 4_MAN_GALTUN1,{
if (isequipped(2782)) {
mes "[Waiting Galten]";
mes "Zzzzz...";
- close;
+ close;
}
mes "[¢²¡Ð¡û ¡ù ¡Ð]";
mes "¡ú¡ô";
close;
}
-dic_in01,370,282,4 script Waiting Galten#in_4 492,{
+dic_in01,370,282,4 script Waiting Galten#in_4 4_MAN_GALTUN1,{
if (isequipped(2782)) {
mes "[Waiting Galten]";
mes "El Dicastes is the most peaceful place in this world as long as I am here.";
- close;
+ close;
}
mes "[¢²¡Ð¡û ¡ù ¡Ð]";
mes "¡ï¡ï¢³ ¡þ ¡ö¢³¢£ ¢± ¢³¡û¡õ ¡ø ¡þ¡ï¡ï ¡ø ¡û";
close;
}
-dic_in01,354,219,4 script Resting Galten#in_5 492,{
+dic_in01,354,219,4 script Resting Galten#in_5 4_MAN_GALTUN1,{
if (isequipped(2782)) {
mes "[Resting Galten]";
mes "Resting is always so sweet.";
- close;
+ close;
}
mes "[¡õ¡ø¡ò ¡ü ¢¤]";
mes "¡ï¡õ¡ù ¡ö ¡ò¡ð¢² ¢³ ¡ö";
close;
}
-dic_in01,365,197,1 script Resting Galten#in_6 492,{
+dic_in01,365,197,1 script Resting Galten#in_6 4_MAN_GALTUN1,{
if (isequipped(2782)) {
mes "[Resting Galten]";
mes "Galten can also rest while standing up like this.";
next;
mes "[Resting Galten]";
mes "You say I don't look like I'm resting? But I'm already used to this.";
- close;
+ close;
}
mes "[¡õ¡ø¡ò ¡ü ¢¤]";
mes "¡ô¡ï¢¤ ¡ö ¡ù¡ð¡ñ ¡ü ¡ó¡û¡û";
@@ -206,22 +222,22 @@ dic_in01,365,197,1 script Resting Galten#in_6 492,{
close;
}
-dic_in01,87,102,5 script Resting Piom#01 454,{
+dic_in01,87,102,5 script Resting Piom#01 4_MAN_PIOM,{
end;
}
-dic_in01,29,119,4 script Resting Piom#04 489,{
+dic_in01,29,119,4 script Resting Piom#04 4_MAN_PIOM6,{
if (isequipped(2782)) {
mes "[Resting Piom]";
mes "Why is it so noisy when I'm trying to get rest?";
- close;
+ close;
}
mes "[¢£¡ù¡ò ¢¤ ¡ù]";
mes "¡ü¢²¡ð ¡Ð ¡ò¡ø¢² ¡ô ¢²¡õ";
close;
}
-dic_in01,91,113,5 script Suspicious Piom#a 489,{
+dic_in01,91,113,5 script Suspicious Piom#a 4_MAN_PIOM6,{
mes "[Suspicious Piom]";
if (isequipped(2782)) {
mes "Have you heard of the";
@@ -230,7 +246,7 @@ dic_in01,91,113,5 script Suspicious Piom#a 489,{
if(select("Nope!:You first.") == 1) {
mes "[Suspicious Piom]";
mes "Never mind.";
- close;
+ close;
}
mes "[Suspicious Piom]";
mes "Oh, you do seem to know?";
@@ -242,11 +258,11 @@ dic_in01,91,113,5 script Suspicious Piom#a 489,{
mes "[Suspicious Piom]";
mes "I'm only a very curious";
mes "ordinary Piom.";
- close;
+ close;
}
mes "[Suspicious Piom]";
mes "I am not going to say anything, either!";
- close;
+ close;
}
mes "¡ó¢³¡ó ¡ó ¡ó¡þ¡ö";
mes "¡õ ¢³¢²¡÷ ¡ó¡ó";
@@ -254,7 +270,7 @@ dic_in01,91,113,5 script Suspicious Piom#a 489,{
if(select("Can't tell what it means:Is it a curse??") == 2) {
mes "[Suspicious Piom]";
mes "Too bad.";
- close;
+ close;
}
mes "[Suspicious Piom]";
mes "Be on your";
@@ -262,14 +278,14 @@ dic_in01,91,113,5 script Suspicious Piom#a 489,{
close;
}
-dic_in01,168,116,5 script Tired Piom#c 491,{
+dic_in01,168,116,5 script Tired Piom#c 4_MAN_PIOM5,{
mes "[Tired Piom]";
if (isequipped(2782)) {
mes "If you need any";
- mes "information, you'd should try your";
- mes "luck with the Cat Merchant rather than wander around here.";
+ mes "information, you'd have better";
+ mes "luck with the Cat Merchant than wandering around here.";
mes "But of course you'll have to pay the price.";
- close;
+ close;
}
mes "¡þ¡õ¡ð ¢³ ¢³¡þ";
mes "¡þ¡ø¡ð ¡ö ¡ñ¡ú¡ð ¡ò";
@@ -278,7 +294,7 @@ dic_in01,168,116,5 script Tired Piom#c 491,{
close;
}
-dic_in01,149,104,5 script Tired Piom#b 455,{
+dic_in01,149,104,5 script Tired Piom#b 4_MAN_PIOM2,{
mes "[Tired Piom]";
if (isequipped(2782)) {
mes "I feel so stiff...";
@@ -286,7 +302,7 @@ dic_in01,149,104,5 script Tired Piom#b 455,{
mes "I think the effects are weaker than before,";
mes "or is it just me?";
emotion e_what;
- close;
+ close;
}
mes "¡ð¡Ð¡ú ¡ø ¢²";
mes "¡ö¡õ¡ó ¢¤ ¡ò¡ò¢³ ¡ô ¡ô¡ó¡ñ";
@@ -296,21 +312,22 @@ dic_in01,149,104,5 script Tired Piom#b 455,{
close;
}
-dic_in01,341,113,3 script Tired Piom#a 491,{
+dic_in01,341,113,3 script Tired Piom#a 4_MAN_PIOM5,{
mes "[Tired Piom]";
if (isequipped(2782)) {
- mes "Ahat is the one";
- mes "and only Sapha pride.";
- mes "We have plenty of Bradium";
- mes "because of him!";
+ mes "[Tired Piom]";
+ mes "I think I look better in";
+ mes "robes than in leather.";
+ mes "I may have to change to knitting.";
+ mes "But mining does seem to suit me.";
next;
- mes "[Thrilled Piom]";
+ mes "[Tired Piom]";
mes "...";
next;
- mes "[Thrilled Piom]";
- mes "You don't feel his";
- mes "blessing?";
- close;
+ emotion e_swt;
+ mes "[Tired Piom]";
+ mes "I'll be rejected again, right?";
+ close;
}
mes "¡÷¡ò¡û ¡ó ¡ó¡Ð¢±";
mes "¡ó¡õ¡ù ¡þ ¡ò¢±¡ñ ¡õ ¢£";
@@ -320,12 +337,13 @@ dic_in01,341,113,3 script Tired Piom#a 491,{
mes "[Tired Piom]";
mes "¡þ";
next;
+ emotion e_swt;
mes "[Tired Piom]";
mes "¡ø¡ú¡ø ¢± ¡ö¡ò";
close;
}
-dic_in01,252,103,3 script Eating Adventurer#tre 711,{
+dic_in01,252,103,3 script Eating Adventurer#tre 4_F_05,{
mes "[Eating Adventurer]";
mes "Hey, do you have any emergency rations on you from Midgard?";
next;
@@ -337,16 +355,16 @@ dic_in01,252,103,3 script Eating Adventurer#tre 711,{
next;
mes "[Eating Adventurer]";
mes "I really would like a nice hot meal.";
- mes "I go to this great little restaurant in Geffen often, and I really miss that place now.";
+ mes "I go to this great little restaurant in Geffen often and I really miss that place now.";
close;
}
-dic_in01,32,54,5 script Venknick#el_01 449,{
+dic_in01,32,54,5 script Venknick#el_01 4_MAN_BENKUNI,{
if (isequipped(2782)) {
mes "[Venknick]";
mes "Oh feels so refreshed.";
mes "The refined Bradium was the best ever. Do you want to try some?";
- close;
+ close;
}
mes "[¡ó¡ò¡ð]";
mes "¡ù¡ó¢¤ ¢± ¢£";
@@ -354,7 +372,7 @@ dic_in01,32,54,5 script Venknick#el_01 449,{
close;
}
-dic_in01,372,116,3 script Thrilled Piom#a 490,{
+dic_in01,372,116,3 script Thrilled Piom#a 4_MAN_PIOM4,{
mes "[Thrilled Piom]";
if (isequipped(2782)) {
mes "Ahat is the one";
@@ -368,7 +386,8 @@ dic_in01,372,116,3 script Thrilled Piom#a 490,{
mes "[Thrilled Piom]";
mes "You don't feel his";
mes "blessing?";
- close; }
+ close;
+ }
mes "¡ò¡õ¢³ ¡õ ¡ô";
mes "¢£¡ó¡ø ¢² ¡ô¡÷";
mes "¡ò¡ô¢³ ¡ù ¢±¡ó¢± ¡õ";
@@ -383,13 +402,13 @@ dic_in01,372,116,3 script Thrilled Piom#a 490,{
close;
}
-dic_in01,360,125,5 script Serious Venknicka 449,{
+dic_in01,360,125,5 script Serious Venknicka 4_MAN_BENKUNI,{
mes "[Serious Venknick]";
if (isequipped(2782)) {
mes "A sudden increase in Bradium production.";
mes "Why?";
mes "I will have to get more factory lines running.";
- close;
+ close;
}
mes "¡û¡õ¡ñ ¢² ¢²¢¤¡Ð ¢² ¡ü¡ñ¡õ";
mes "¡þ¡ó¡ö ¢²";
@@ -397,9 +416,9 @@ dic_in01,360,125,5 script Serious Venknicka 449,{
close;
}
-dic_in01,42,250,5 script Guide#diel_1 489,{
+dic_in01,42,250,5 script Guide#diel_1 4_MAN_PIOM6,{
if (isequipped(2782)) {
- if (ep13_3_invite > 5) {
+ if (ep13_3_invite > 5) {
mes "[Guide]";
mes "I'm Dior, your kind guide for El Dicastes.";
mes "How can I help you?";
@@ -418,7 +437,7 @@ dic_in01,42,250,5 script Guide#diel_1 489,{
mes "[Guide]";
mes "Oh, you didn't ask?";
mes "But since I'm Dior, the kind guide. He he.";
- close;
+ close;
}
mes "- The guide looks at you with an alert expression. -";
close;
@@ -444,16 +463,16 @@ dic_in01,42,250,5 script Guide#diel_1 489,{
close;
}
-dic_in01,335,34,0 script Talkative Piom#a 490,{
+dic_in01,335,34,5 script Talkative Piom#a 4_MAN_PIOM4,{
mes "[Talkative Piom]";
- if (isequipped(2782)) {
+ if (isequipped(2782)) {
mes "At my factory";
mes "we not only refine Bradium,";
mes "but we also produce various";
mes "tools for daily use.";
mes "We manufacture war supplies";
mes "here too.";
- close;
+ close;
}
mes "¡ü¡ù¢± ¢³";
mes "¡÷¡ø¡ï ¡þ ¡ó¡ó";
@@ -464,27 +483,27 @@ dic_in01,335,34,0 script Talkative Piom#a 490,{
close;
}
-dic_in01,387,30,1 script Manuk Piom#a 454,{
+dic_in01,387,30,1 script Manuk Piom#a 4_MAN_PIOM,{
mes "[Manuk Piom]";
if (isequipped(2782)) {
mes "You! We met in Manuk, didn't we?";
mes "I've come to pick up the weapon I ordered.";
- close;
+ close;
}
mes "¡ü¡ó¡þ ¡ó ¡ï¡ð¢¤ ¡ü ¡ð¢±";
mes "¡ù¡ô¡ï ¡ú ¡ñ¡ù¢³ ¡ó ¡ò¡ö¡ó ¡ô¡ô";
close;
}
-dicastes01,282,210,4 script Free Knit#a 453,{
+dicastes01,282,210,4 script Free Knit#a 4_MAN_NITT,{
mes "[Free Knit]";
if (isequipped(2782)) {
mes "As long as we have a steady";
- mes "supply of Bradium,";
+ mes "supply of Bradium";
mes "Saphas can live forever.";
mes "Our childhood lasts 10 years,";
mes "which is short.";
- close;
+ close;
}
mes "¡ñ¡þ¡ð ¡ó ¡ü¡ò¡ö ¡÷";
mes "¢³¡ð¡ï ¢£ ¡ù¡ô¡ò ¡ô ¡ó¡þ¡ñ ¢² ¡ñ¡û¢£ ¢²";
@@ -494,7 +513,7 @@ dicastes01,282,210,4 script Free Knit#a 453,{
close;
}
-dicastes01,246,210,4 script Free Venknick#a 449,{
+dicastes01,246,210,3 script Free Venknick#a 4_MAN_BENKUNI,{
mes "[Free Venknick]";
if (isequipped(2782)) {
mes "At least we have plenty of Bradium.";
@@ -508,7 +527,7 @@ dicastes01,246,210,4 script Free Venknick#a 449,{
mes "[Free Venknick]";
mes "The thing rolling around is a gem,";
mes "but why are you interested in it?";
- close;
+ close;
}
mes "¡ô¡ï¢£ ¢¤ ¡÷¡õ¢± ¡ü ¡ñ¡õ";
mes "¡ü¢³";
@@ -524,13 +543,13 @@ dicastes01,246,210,4 script Free Venknick#a 449,{
close;
}
-dicastes01,235,245,4 script Excited Piom#a 490,{
+dicastes01,235,245,4 script Excited Piom#a 4_MAN_PIOM4,{
if (isequipped(2782)) {
mes "[Excited Piom]";
mes "Have you seen Ahat?";
emotion e_ho;
mes "His popularity here in El Discastes is phenomenal!";
- close;
+ close;
}
mes "[Excited Piom]";
mes "¡ú¡þ¡ó ¢³ ¡ü¢²¡ñ ¢±";
@@ -539,17 +558,15 @@ dicastes01,235,245,4 script Excited Piom#a 490,{
close;
}
-dicastes01,284,262,4 script Favorable Knit#a 453,{
+dicastes01,284,262,3 script Favorable Knit#a 4_MAN_NITT,{
mes "[Favorable Knit]";
if (isequipped(2782)) {
- mes "Unlike the Laphine, we Saphas";
+ mes "Unlike the Raphine, we Saphas";
mes "are a very close community.";
mes "We start by living together in common facilities after we are born.";
- next;
- mes "[Favorable Knit]";
mes "That is why all Saphas are like family.";
mes "We never have any quarrels between classes.";
- close;
+ close;
}
mes "¡ô¢±¡ó ¡õ ¡ú¡÷¡Ð ¡õ";
mes "¡ü¡ï¡Ð ¡õ ¡ô¡ó¡ü ¡ó ¢³";
@@ -559,16 +576,16 @@ dicastes01,284,262,4 script Favorable Knit#a 453,{
close;
}
-dicastes01,164,180,4 script Limpy Piom#a 489,{
+dicastes01,164,180,4 script Limpy Piom#a 4_MAN_PIOM6,{
+ mes "[Limpy Piom]";
if (isequipped(2782)) {
- mes "[Limpy Piom]";
mes "They say there is a";
mes "war going on with the Splendide in Manuk.";
mes "I hope everything goes well.";
mes "I hope it doesn't come all";
mes "the way to the capital city here.";
emotion e_dots;
- close;
+ close;
}
mes "¢²¡ô¡þ ¡ù ¡õ¡Ð";
mes "¢³¡ô¡û ¡ú ¡ø";
@@ -579,7 +596,7 @@ dicastes01,164,180,4 script Limpy Piom#a 489,{
close;
}
-dicastes01,191,202,4 script Complaining Galten#fihs 450,{
+dicastes01,191,202,4 script Complaining Galten#fihs 4_MAN_GALTUN,{
if (isequipped(2782)) {
mes "[Complaining Galten]";
mes "That crazy Vanknick always";
@@ -591,9 +608,9 @@ dicastes01,191,202,4 script Complaining Galten#fihs 450,{
next;
if(select("No:Yes") == 1) {
mes "[Complaining Galten]";
- mes "You don't know about the legend behind the statue?";
- mes "Then I don't know what to talk about it with you.";
- close;
+ mes "Then you don't know about the legend behind the statue?";
+ mes "Then, I don't know what to talk about with you.";
+ close;
}
emotion e_gg,0,"Crazy Venknick#fihsing1";
mes "[Complaining Galten]";
@@ -619,7 +636,7 @@ dicastes01,191,202,4 script Complaining Galten#fihs 450,{
close;
}
-dicastes01,202,197,4 script Crazy Venknick#fihsing1 449,{
+dicastes01,202,197,4 script Crazy Venknick#fihsing1 4_MAN_BENKUNI,{
if (isequipped(2782)) {
mes "[Crazy Venknick]";
mes "At only 5000 Zeny";
@@ -628,7 +645,7 @@ dicastes01,202,197,4 script Crazy Venknick#fihsing1 449,{
if(select("Give 5000 Zeny.:Don't give 5000 Zeny.") == 2) {
mes "[Crazy Venknick]";
mes "Don't come back with regrets.";
- close;
+ close;
}
if (Zeny < 5000) {
mes "[Crazy Venknick]";
@@ -636,28 +653,31 @@ dicastes01,202,197,4 script Crazy Venknick#fihsing1 449,{
mes "no legend to share with";
mes "the poor.";
close;
- close;
}
- set Zeny, Zeny-5000;
+ Zeny -= 5000;
mes "[Crazy Venknick]";
mes "Thanks.";
emotion e_gg,0,"Complaining Galten#fihs";
next;
- select("What is the sad legend?");
+ mes "["+strcharinfo(0)+"]";
+ mes "What is the sad legend?";
+ next;
emotion e_dots;
- select("I asked what the sad legend is about!");
+ mes "["+strcharinfo(0)+"]";
+ mes "I asked what the sad legend is about!";
next;
mes "[Crazy Venknick]";
mes "I don't believe in legends.";
next;
emotion e_dots,1;
- select("Was I tricked?");
- sc_start SC_Blind,20000,0;
+ mes "["+strcharinfo(0)+"]";
+ mes "Was I tricked?";
+ sc_start SC_BLIND,20000,0;
next;
mes "You feel outraged at being tricked.";
- close;
+ close;
}
- mes "[???¨²?¨´ ¡é3 ]";
+ mes "[¡ö¡ú¡ù ¢³ ]";
mes "¢²¡û¡ó ¡ó ¡ù¢¤¡ø";
mes "¢¤¡ð¢² ¢± ¡ñ¡ö¢² ¡ø ¡ï¡ö¡ü";
next;
@@ -665,7 +685,7 @@ dicastes01,202,197,4 script Crazy Venknick#fihsing1 449,{
close;
}
-dic_in01,98,110,5 script Worried Piom#a 489,{
+dic_in01,98,110,5 script Worried Piom#a 4_MAN_PIOM6,{
if (isequipped(2782)) {
mes "[Worried Piom]";
mes "I haven't seen my friends for the last few hours.";
@@ -680,7 +700,7 @@ dic_in01,98,110,5 script Worried Piom#a 489,{
close;
}
-dic_in01,98,96,3 script Lost Galten#a 492,{
+dic_in01,98,96,3 script Lost Galten#a 4_MAN_GALTUN1,{
if (isequipped(2782)) {
mes "[Lost Galten]";
mes "I've been living as a Piom for too long";
@@ -693,4 +713,4 @@ dic_in01,98,96,3 script Lost Galten#a 492,{
mes "¡ü¡ø¡ñ ¢£ ";
mes "¡ö¡ï¢² ¡û ¡ö¡ó";
close;
-} \ No newline at end of file
+}
diff --git a/npc/re/cities/eclage.txt b/npc/re/cities/eclage.txt
new file mode 100644
index 000000000..2ea4e4cd5
--- /dev/null
+++ b/npc/re/cities/eclage.txt
@@ -0,0 +1,485 @@
+//===== Hercules Script ======================================
+//= Eclage Town
+//===== By: ==================================================
+//= Euphy
+//===== Current Version: =====================================
+//= 1.0
+//===== Description: =========================================
+//= Eclage Town Script
+//===== Additional Comments: =================================
+//= 1.0 Nearly complete iRO town NPCs. [Euphy]
+//============================================================
+
+// Generic Eclage NPCs - Set 1
+//============================================================
+ecl_fild01,92,316,4 script Tourist#ep14_2f2 4_CAT_SAILOR2,{
+ mes "[Tourist]";
+ mes "I can't believe I have to wait this long......";
+ mes "When is it going to be my turn?";
+ emotion e_sob;
+ close;
+}
+
+ecl_fild01,106,312,4 script Tourist#ep14_2f3 4_F_RAFLE_VI,{
+ mes "[Tourist]";
+ mes "I'm actually done with my documentation, but I'm just sticking around to appreciate all of these flowers.";
+ emotion e_lv2;
+ next;
+ mes "[Tourist]";
+ mes "I'm just getting through the night with my sleeping bag!";
+ mes "It's alright as long as you can withstand the security guard's annoyance with you.";
+ close;
+}
+
+ecl_fild01,108,320,6 script Tourist#ep14_2f4 4_F_DST_CHILD,{
+ mes "[Tourist]";
+ mes "I wonder how beautiful of a city Eclage would be.";
+ mes "It just makes my heart beat thinking about it.";
+ emotion e_lv;
+ close;
+}
+
+ecl_fild01,105,320,2 script Tourist#ep14_2f5 4_F_FAIRYKID,{
+ mes "[Tourist]";
+ mes "No, I'm not a visitor. I'm an Eclage citizen!";
+ emotion e_an;
+ next;
+ mes "[Tourist]";
+ mes "I can't believe I can't even enter because of all these tourists!";
+ emotion e_omg;
+ close;
+}
+
+ecl_fild01,103,319,4 script Tourist#ep14_2f6 4_M_HUMERCHANT,{
+ mes "[Tourist]";
+ mes "I hear their acorns are delicious without a hint of bitterness.";
+ next;
+ mes "[Tourist]";
+ mes "You could probably make the world's best acorn jello.";
+ emotion e_omg;
+ close;
+}
+
+ecl_fild01,110,316,2 script Tourist#ep14_2f7 4_M_HUBOY,{
+ mes "[Tourist]";
+ mes "It's important to keep your belongings light when traveling.";
+ next;
+ mes "[Tourist]";
+ mes "It's going to increase as you go along anyways.";
+ next;
+ mes "[Tourist]";
+ mes "Perhaps you could consider it as the weight of life?";
+ emotion e_awsm,0;
+ close;
+}
+
+ecl_fild01,92,318,4 script Tourist#ep14_2f8 4_M_RAFLE_OLD,{
+ mes "[Tourist]";
+ mes "Cool cool.";
+ close;
+}
+
+ecl_fild01,93,318,2 script Tourist#ep14_2f9 1_M_PAY_ELDER,{
+ mes "[Tourist]";
+ mes "Snorrrreee....Erhem....";
+ next;
+ mes "[Tourist]";
+ mes "Err.... No.....";
+ mes "Curry.... Curry rice.... Snorrreeeee";
+ emotion e_hlp;
+ close;
+}
+
+ecl_fild01,94,313,4 script Tourist#ep14_2f10 4_M_PIERROT,{
+ mes "[Tourist]";
+ mes "Oh! Are you also from Midgard?";
+ next;
+ mes "[Tourist]";
+ mes "It's encouraging to see so many Midgard people nowadays.";
+ emotion e_com;
+ close;
+}
+
+ecl_fild01,101,320,4 script Tourist#ep14_2f11 4_M_RAFLE_OR,{
+ mes "[Tourist]";
+ mes "Ow.... My legs...";
+ mes "You're saying I have to wait after all this traveling through Bifrost?!";
+ emotion e_an;
+ close;
+}
+
+ecl_fild01,88,315,4 script Tourist#ep14_2f12 4_WHITE_COW,{
+ mes "[Tourist]";
+ mes "Ahh...";
+ mes "Why are there so many people...?";
+ next;
+ mes "[Tourist]";
+ mes "I want to be alone......Sniff!";
+ emotion e_otl;
+ close;
+}
+
+// Generic Eclage NPCs - Set 2
+//============================================================
+ecl_fild01,183,190,4 script Catering#eclbig 4_M_FAIRYSOLDIER,{
+ mes "[Catering]";
+ mes "Wahahaha! How do you do!";
+ mes "It's perfect weather for a picnic, no?";
+ next;
+ emotion e_wah;
+ mes "[Catering]";
+ mes "You say it's hard to pack for a picnic?";
+ next;
+ emotion e_no1;
+ mes "[Catering]";
+ mes "Don't you worry!";
+ next;
+ emotion e_gasp;
+ mes "[Catering]";
+ mes "This is a specialty combining acorns with 7 different kinds and 7 different levels of flavor collected by squirrels of Eclage!";
+ next;
+ emotion e_cash;
+ mes "[Catering]";
+ mes "This specialty to-go box is only 2,999 coins!!!";
+ next;
+ emotion e_omg;
+ mes "[Catering]";
+ mes "Such a remarkable price!";
+ next;
+ emotion e_lv;
+ mes "[Catering]";
+ mes "If you order now, we also give you a disposable fork that feels like new even with a hundred uses!";
+ close;
+}
+
+ecl_fild01,134,109,4 script Warao#eclbig 4_M_FAIRYKID5,{
+ mes "[Warao]";
+ mes "Ah~ I'm so hungry. What should I eat today?";
+ next;
+ mes "[Warao]";
+ mes "Come to think of it, I wonder how this foreigner will taste?";
+ next;
+ emotion e_gg;
+ mes "[Warao]";
+ mes "Hey hey, you know I'm kidding, right?";
+ close;
+}
+
+ecl_fild01,70,285,4 script Giranni#eclbig 4_F_FAIRY2,{
+ mes "[Giranni]";
+ mes "I wonder where he went. It should be around here...";
+ close;
+}
+
+eclage,106,61,4 script Markoza#eclbig 4_M_FAIRYKID3,{
+ mes "[Markoza]";
+ mes "I also want to visit foreign lands.";
+ next;
+ mes "[Markoza]";
+ mes "But would foreigners leave me be when I am this adorable?";
+ next;
+ emotion e_pif;
+ mes "[Markoza]";
+ mes "Man, wherever I go, my cuteness just complicates everything...";
+ close;
+}
+
+eclage,101,130,5 script Wutapoa#eclbig 4_F_FAIRY,{
+ mes "[Wutapoa]";
+ mes "I recently moved out of my parent's place!";
+ mes "I am so glad I finally have my own Yai!";
+ next;
+ mes "[Wutapoa]";
+ mes "I'm going to make it the most decorative, beautiful Yai in Eclage!";
+ next;
+ emotion e_heh;
+ mes "[Wutapoa]";
+ mes "Yay, woohoo!!!";
+ close;
+}
+
+eclage,200,272,4 script Masione#eclbig 4_F_FAIRYKID2,{
+ mes "[Masione]";
+ mes "Whoa! Hey!";
+ mes "Would you please stop appearing out of nowhere?";
+ emotion e_omg;
+ next;
+ mes "[Masione]";
+ mes "I'm a fragile, sensitive being!";
+ close;
+}
+
+ecl_in01,55,25,3 script Mijani#eclbig 4_F_MORAFINE1,{
+ mes "[Mijani]";
+ mes "You are not from around here?";
+ mes "Welcome.";
+ next;
+ mes "[Mijani]";
+ mes "Of course, as long as you don't disrupt Eclage.";
+ close;
+}
+
+ecl_in01,38,37,4 script A kneeling boy#eclbig 4_F_FAIRYKID6,{
+ mes "[A kneeling boy]";
+ mes "Why am I kneeling like this?";
+ next;
+ mes "[A kneeling boy]";
+ mes "At first, it was because it was comfortable. Now it's because I can't stretch my legs out anymore.";
+ next;
+ emotion e_sob;
+ mes "[A kneeling boy]";
+ mes "I try to stretch them out, and my legs are all asleep!!";
+ mes "Does that mean I have to fly around with my legs flexed like this?";
+ close;
+}
+
+ecl_in02,168,41,2 script Pambo#eclbig 4_F_FAIRYKID3,{
+ mes "[Pambo]";
+ mes "Do you like things that twinkle?";
+ next;
+ emotion e_lv2;
+ mes "[Pambo]";
+ mes "I love them so much!";
+ next;
+ mes "[Pambo]";
+ mes "Twinkle twinkle~ Twinkle twinkle~";
+ next;
+ mes "[Pambo]";
+ mes "Twinkle twinkle~ Twinkle twinkle~";
+ mes "Sparkle sparkle~ Sparkle sparkle~";
+ next;
+ mes "[Pambo]";
+ mes "Twinkle twinkle~ Twinkle twinkle~";
+ mes "Sparkle sparkle~ Sparkle sparkle~";
+ mes "Mmhahah~ Hahaha~ Hehehe~";
+ mes "Heh heh heh~ Huhuhe~ Hoho~";
+ mes "Kehehe~ Halala~ Fufu~";
+ next;
+ emotion e_sob;
+ mes "[Pambo]";
+ mes "But there's nothing twinkling here...";
+ close;
+}
+
+ecl_in01,41,103,1 script A blushing girl#eclbig 4_F_FAIRYKID4,{
+ mes "[A blushing girl]";
+ mes "Do you see this balcony up top?";
+ mes "Mayor Jun appears there everytime there is an important occasion!";
+ next;
+ emotion e_lv2;
+ mes "[A blushing girl]";
+ mes "He's so handome!! Ahhh~";
+ close;
+}
+
+ecl_in01,53,92,4 script Lafiki#eclbig 4_M_FAIRYKID3,{
+ mes "[Lafiki]";
+ mes "My fashion sense today is excellent as usual. Heh-";
+ next;
+ emotion e_lv2;
+ mes "[Lafiki]";
+ mes "Hello~ My beautiful body~";
+ mes "Every strand of hair is so beautiful!";
+ next;
+ mes "[Dandy]";
+ mes "Yes, it's definitely your garbage fashion sense that wreaks of trash as usual.";
+ emotion e_gg,0,"Dandy#eclbig";
+ close;
+}
+
+ecl_in01,54,91,2 script Dandy#eclbig 4_M_FAIRYKID2,{
+ mes "[Dandy]";
+ mes "Take a look at me! How's this? Am I not so fabulous?";
+ next;
+ mes "[Dandy]";
+ mes "A Laphine can freely change in between different clothes, but not any Laphine looks this great!";
+ next;
+ mes "[Lafiki]";
+ mes "What nonsensical nonsense are you saying? No matter who looks at it, this region's best looker is me!";
+ emotion e_pif,0,"Lafiki#eclbig";
+ close;
+}
+
+ecl_in01,52,102,4 script Choir Conductor#eclbig 4_M_FAIRYKID,{
+ mes "[Choir conductor]";
+ mes "We are Eclage's Tree Wing Choir~";
+ mes "We bring you heavenly harmonies~";
+ next;
+ mes "[Choir conductor]";
+ mes "Hello foreigner, we'll give you a taste of our harmony~";
+ next;
+ emotion e_ho;
+ mes "[Choir]";
+ mes "Aaa~";
+ next;
+ emotion e_ho,0,"Choir member#eclbig01";
+ mes "[Choir]";
+ mes "Aaa~~";
+ mes "Aaa~";
+ next;
+ emotion e_ho,0,"Choir member#eclbig02";
+ mes "[Choir]";
+ mes "Aaa~~~";
+ mes "Aaa~~";
+ mes "Aaa~";
+ next;
+ emotion e_ho,0,"Choir member#eclbig03";
+ mes "[Choir]";
+ mes "Aaa~~~~";
+ mes "Aaa~~~";
+ mes "Aaa~~";
+ mes "Aaa~";
+ next;
+ emotion e_ho,0,"Choir member#eclbig04";
+ mes "[Choir]";
+ mes "Aaa~~~~~";
+ mes "Aaa~~~~";
+ mes "Aaa~~~";
+ mes "Aaa~~";
+ mes "Aaa~";
+ next;
+ emotion e_ho,0,"Choir member#eclbig05";
+ mes "[Choir]";
+ mes "Aaa~~~~~~";
+ mes "Aaa~~~~~";
+ mes "Aaa~~~~";
+ mes "Aaa~~~";
+ mes "Aaa~~";
+ mes "Aaa~";
+ next;
+ emotion e_ho;
+ emotion e_ho,0,"Choir member#eclbig01";
+ emotion e_ho,0,"Choir member#eclbig02";
+ emotion e_ho,0,"Choir member#eclbig03";
+ emotion e_ho,0,"Choir member#eclbig04";
+ emotion e_ho,0,"Choir member#eclbig05";
+ mes "[Choir]";
+ mes "Uhhurukukuruhuuhhurukukuruhuuh";
+ mes "Try to feel this~ The melody that flows~";
+ next;
+ mes "[Choir conductor]";
+ mes "How is it!! Our harmony!!";
+ close;
+}
+
+ecl_in01,51,103,4 script Choir member#eclbig01 4_M_FAIRYKID,{
+ mes "[Choir member]";
+ mes "Aaa~";
+ emotion e_ho;
+ close;
+}
+ecl_in01,53,103,4 duplicate(Choir member#eclbig01) Choir member#eclbig02 4_M_FAIRYKID
+ecl_in01,50,104,4 duplicate(Choir member#eclbig01) Choir member#eclbig03 4_M_FAIRYKID
+ecl_in01,52,104,4 duplicate(Choir member#eclbig01) Choir member#eclbig04 4_M_FAIRYKID
+ecl_in01,54,104,4 duplicate(Choir member#eclbig01) Choir member#eclbig05 4_M_FAIRYKID
+
+// Generic Eclage NPCs - Set 3
+//============================================================
+ecl_fild01,190,93,4 script Fili#1 4_M_FAIRYANG,{
+ mes "[Fili]";
+ mes "Looking at this beautiful field, the song sings itself~";
+ emotion e_ho;
+ close;
+}
+
+ecl_fild01,83,263,4 script Watering Laphine#1 4_M_FAIRYKID3,{
+ mes "[Watering Laphine]";
+ mes "I think the earth is running dry.";
+ close;
+}
+
+ecl_fild01,163,196,4 script Dancing Laphine#1 4_F_FAIRYKID3,{
+ mes "[Dancing Laphine]";
+ mes "It's important to warm up like this before you start dancing. One, two, three, four....";
+ close;
+}
+
+// Eclage Prison & Clinic
+//============================================================
+ecl_in01,8,71,4 script Eclage Guard#pri_inn 4_M_FAIRYSOLDIER,{
+ mes "[Eclage Guard]";
+ mes "This path will take you to the lower parts of Eclage. You'll find a prison and a clinic there.";
+ close;
+}
+
+ecl_in02,96,22,2 script Sign#prison_inn 2_BOARD1,{
+ mes "[North] Prison";
+ mes "[West] Clinic";
+ close;
+}
+
+ecl_in02,164,56,2 script Receptionist#Laphine 4_F_FAIRYKID2,{
+ mes "[Receptionist]";
+ mes "Welcome to Eclage Clinic.";
+ next;
+ switch(select("Save Location:Rest:Finish the conversation")) {
+ case 1:
+ mes "[Receptionist]";
+ mes "Clinic has been set as your save point. Be careful though~";
+ savepoint "ecl_in02",162,49;
+ close;
+ case 2:
+ mes "[Receptionist]";
+ mes "Restore your mind and body at our clinic. It's filled with Eclage's clean energy.";
+ mes "We charge 1 Splendide Coin normally, but we offer a special discount for travelers. Your total is 5,000 zeny.";
+ next;
+ switch(select("Pay with Splendide Coin:Pay with Zeny:Forget it")) {
+ case 1:
+ if (countitem(6081) == 0) {
+ mes "[Receptionist]";
+ mes "It seems like you don't have enough coins. Would you check your account again, please?";
+ close;
+ }
+ delitem 6081,1; //Splendide_Coin
+ break;
+ case 2:
+ if (Zeny < 5000) {
+ mes "[Receptionist]";
+ mes "It seems like you don't have enough zeny. Would you check your account again, please?";
+ close;
+ }
+ Zeny -= 5000;
+ break;
+ case 3:
+ close;
+ }
+ mes "[Receptionist]";
+ mes "Make yourself at home~";
+ close2;
+ percentheal 100,100;
+ warp "ecl_in02",167,49;
+ end;
+ case 3:
+ close;
+ }
+}
+
+ecl_in02,137,44,2 script Doctor Laphine#doctor 4_M_FAIRYKID,{
+ mes "[Injured Laphine]";
+ mes "Ooww...";
+ mes "Where...am...I?";
+ next;
+ mes "[Doctor]";
+ mes "You're at a clinic. Don't worry.";
+ mes "We stopped the bleeding and casted emergency spells.";
+ mes "You were bleeding a lot. That was close, you know.";
+ next;
+ mes "[Injured Laphine]";
+ mes "......";
+ mes "What, no, I...I don't feel anything...what's going on?";
+ next;
+ mes "[Doctor]";
+ mes "Umm...the arrow damaged your wing pretty badly...";
+ next;
+ mes "[Injured Laphine]";
+ mes "...what do you mean??";
+ next;
+ mes "[Doctor]";
+ mes "Well...I was going to tell you after you recover, but you should know. You can't decorate the Yai anymore.";
+ mes "In other words, you injured your wing. The arrow went through the most critical part in the wing.";
+ next;
+ mes "[Injured Laphine]";
+ mes "What? No way...please...doctor!! No!!";
+ close;
+}
+ecl_in02,135,45,4 duplicate(Doctor Laphine#doctor) Injured Laphine 4_F_FAIRYKID6
diff --git a/npc/re/cities/izlude.txt b/npc/re/cities/izlude.txt
index 24390f070..7e37f9de2 100644
--- a/npc/re/cities/izlude.txt
+++ b/npc/re/cities/izlude.txt
@@ -1,98 +1,105 @@
//===== Hercules Script ======================================
//= Izlude Town Renewal
-//===== By: ==================================================
+//===== By: ==================================================
//= Masao
-//===== Current Version: =====================================
-//= 1.1
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Current Version: =====================================
+//= 1.2
+//===== Description: =========================================
+//= [Official Conversion]
//= Izlude town NPCs.
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First Version. Still missing many new NPCs and their dialogues. [Masao]
-//= 1.1 Added bullet NPC duplicates. [Euphy]
-//= 1.2 Added new NPCs, Captain Carew & coordinates [Streusel]
-//= 1.3 Added some NPC locations [Streusel]
+//= 1.1 Updated to match the official script. [Euphy]
+//= 1.2 Added Channel Warper and Izlude duplicates. [Euphy]
//============================================================
-izlude,197,205,1 duplicate(Sailor_izlude) Sailor#izlude 100
-izlude,71,92,2 duplicate(Bonne_izlude) Bonne#izlude 90
-izlude,172,215,4 duplicate(Charfri_izlude) Charfri#izlude 91
-izlude,174,164,3 duplicate(Cuskoal_izlude) Cuskoal#izlude 124
-izlude,85,103,4 duplicate(Dega_izlude) Dega#izlude 84
-izlude,140,186,4 duplicate(Kylick_izlude) Kylick#izlude 97
-izlude,56,156,2 duplicate(Red_izlude) Red#izlude 85
-izlude,58,156,2 duplicate(Cebalis_izlude) Cebalis#izlude 98
-izlude,165,156,2 duplicate(Soldier_izlude) Soldier#izlude 105
-izlude,158,130,3 duplicate(bdt) Bullet Dealer Tony#iz 86
-izlude,155,132,3 duplicate(mdk) Magazine Dealer Kenny 83
-//izlude,198,213,4 duplicate(Captain_Carew) Captain Carew#izlude 873
-izlude_in,57,92,3 duplicate(Dorian) Dorian#izlude 878
-izlude,147,131,6 script Blacksmith#izlude 726,{
- end;
-}
-
-prt_fild08,350,219,4 script Guard#izlude 105,{
- mes "[Izlude Guard]";
- mes "Welcome to Izlude.";
- close;
-}
-
-izlude,136,160,0 script Traces of Fish#izlude 111,{
- mes "There are signs of someone digging.";
- close;
-}
+// Izlude
+//============================================================
+izlude,197,205,1 duplicate(Sailor_izlude) Sailor#izlude 4W_SAILOR
+izlude_a,197,205,1 duplicate(Sailor_izlude) Sailor#izlude_a 4W_SAILOR
+izlude_b,197,205,1 duplicate(Sailor_izlude) Sailor#izlude_b 4W_SAILOR
+izlude_c,197,205,1 duplicate(Sailor_izlude) Sailor#izlude_c 4W_SAILOR
+izlude_d,197,205,1 duplicate(Sailor_izlude) Sailor#izlude_d 4W_SAILOR
-izlude,207,167,3 script Arena#izlude 858,{
- mes "";
- close;
-}
+izlude,71,92,2 duplicate(Bonne_izlude) Bonne#izlude 4_F_01
+izlude_a,71,92,2 duplicate(Bonne_izlude) Bonne#izlude_a 4_F_01
+izlude_b,71,92,2 duplicate(Bonne_izlude) Bonne#izlude_b 4_F_01
+izlude_c,71,92,2 duplicate(Bonne_izlude) Bonne#izlude_c 4_F_01
+izlude_d,71,92,2 duplicate(Bonne_izlude) Bonne#izlude_d 4_F_01
-izlude,45,94,3 script Milestone#izlude 858,{
- mes "==== Information ====";
- mes "";
- mes "Access to Prontera Field.";
- mes "Prontera in the North.";
- mes "If you wish got to Prontera.";
- close;
-}
+izlude,172,215,4 duplicate(Charfri_izlude) Charfri#izlude 4_F_02
+izlude_a,172,215,4 duplicate(Charfri_izlude) Charfri#izlude_a 4_F_02
+izlude_b,172,215,4 duplicate(Charfri_izlude) Charfri#izlude_b 4_F_02
+izlude_c,172,215,4 duplicate(Charfri_izlude) Charfri#izlude_c 4_F_02
+izlude_d,172,215,4 duplicate(Charfri_izlude) Charfri#izlude_d 4_F_02
-izlude,179,75,3 script Non-Process#izlude 858,{
- mes "====End of Path====";
- mes "";
- mes "Airshop to Rachel";
- mes "";
- mes "Feel free to explore, however be reminded that you are a guest.";
- mes "";
- close;
-}
+izlude,174,164,4 duplicate(Cuskoal_izlude) Cuskoal#izlude 4_F_TELEPORTER
+izlude_a,174,164,4 duplicate(Cuskoal_izlude) Cuskoal#izlude_a 4_F_TELEPORTER
+izlude_b,174,164,4 duplicate(Cuskoal_izlude) Cuskoal#izlude_b 4_F_TELEPORTER
+izlude_c,174,164,4 duplicate(Cuskoal_izlude) Cuskoal#izlude_c 4_F_TELEPORTER
+izlude_d,174,164,4 duplicate(Cuskoal_izlude) Cuskoal#izlude_d 4_F_TELEPORTER
-izlude,141,251,1 script Full-Grown Red Plant#iz 1078,{
- end;
-}
+izlude,85,103,4 duplicate(Dega_izlude) Dega#izlude 4_M_02
+izlude_a,85,103,4 duplicate(Dega_izlude) Dega#izlude_a 4_M_02
+izlude_b,85,103,4 duplicate(Dega_izlude) Dega#izlude_b 4_M_02
+izlude_c,85,103,4 duplicate(Dega_izlude) Dega#izlude_c 4_M_02
+izlude_d,85,103,4 duplicate(Dega_izlude) Dega#izlude_d 4_M_02
-izlude,102,150,1 script Sinchon Helper#izlude 71,{
- end;
-}
+izlude,140,186,4 duplicate(Kylick_izlude) Kylick#izlude 4W_M_01
+izlude_a,140,186,4 duplicate(Kylick_izlude) Kylick#izlude_a 4W_M_01
+izlude_b,140,186,4 duplicate(Kylick_izlude) Kylick#izlude_b 4W_M_01
+izlude_c,140,186,4 duplicate(Kylick_izlude) Kylick#izlude_c 4W_M_01
+izlude_d,140,186,4 duplicate(Kylick_izlude) Kylick#izlude_d 4W_M_01
-izlude,205,155,2 script Nain#izlude 102,{
- mes "[Nine]";
- mes "Swords, no matter how strong";
- mes "they are once they strike you're";
- mes "a dead man. And though that's creepy,";
- mes "I just can't throw them away.";
- close;
-}
+izlude,57,159,2 duplicate(Red_izlude) Red#izlude 4_M_03
+izlude_a,57,159,2 duplicate(Red_izlude) Red#izlude_a 4_M_03
+izlude_b,57,159,2 duplicate(Red_izlude) Red#izlude_b 4_M_03
+izlude_c,57,159,2 duplicate(Red_izlude) Red#izlude_c 4_M_03
+izlude_d,57,159,2 duplicate(Red_izlude) Red#izlude_d 4_M_03
-izlude,143,205,7 script Magpies Adventurer#iz-01 703,{
- end;
-}
+izlude,55,159,2 duplicate(Cebalis_izlude) Cebalis#izlude 4W_M_02
+izlude_a,55,159,2 duplicate(Cebalis_izlude) Cebalis#izlude_a 4W_M_02
+izlude_b,55,159,2 duplicate(Cebalis_izlude) Cebalis#izlude_b 4W_M_02
+izlude_c,55,159,2 duplicate(Cebalis_izlude) Cebalis#izlude_c 4W_M_02
+izlude_d,55,159,2 duplicate(Cebalis_izlude) Cebalis#izlude_d 4W_M_02
+izlude,165,156,2 duplicate(Soldier_izlude) Soldier#izlude 8W_SOLDIER
+izlude_a,165,156,2 duplicate(Soldier_izlude) Soldier#izlude_a 8W_SOLDIER
+izlude_b,165,156,2 duplicate(Soldier_izlude) Soldier#izlude_b 8W_SOLDIER
+izlude_c,165,156,2 duplicate(Soldier_izlude) Soldier#izlude_c 8W_SOLDIER
+izlude_d,165,156,2 duplicate(Soldier_izlude) Soldier#izlude_d 8W_SOLDIER
-izlude,146,205,7 script Magpies Adventurer#iz-02 706,{
- end;
+- script ::Guard_izlude -1,{
+ mes "[Izlude Guard]";
+ mes "Welcome to Izlude.";
+ close;
}
+prt_fild08,350,219,4 duplicate(Guard_izlude) Guard#izlude 8W_SOLDIER
+prt_fild08a,350,219,4 duplicate(Guard_izlude) Guard#izlude_a 8W_SOLDIER
+prt_fild08b,350,219,4 duplicate(Guard_izlude) Guard#izlude_b 8W_SOLDIER
+prt_fild08c,350,219,4 duplicate(Guard_izlude) Guard#izlude_c 8W_SOLDIER
+prt_fild08d,350,219,4 duplicate(Guard_izlude) Guard#izlude_d 8W_SOLDIER
-izlude,120,254,0 script Siege Monument#izlude 111,{
- end;
+// Channel Warper
+//============================================================
+function script F_IzludeChannel {
+ mes "[Izlude Copy Warper]";
+ mes "Izlude is a verly lively place is it not?";
+ mes "I am here to help make Izlude feel more smooth!";
+ mes "I can send you to another copy of Izlude.";
+ mes "Do you want to go to another copy?";
+ next;
+ set .@i, select(getarg(0)+":Never mind");
+ if (.@i < 6) {
+ setarray .@maps$[1],"izlude","izlude_a","izlude_b","izlude_c","izlude_d";
+ savepoint .@maps$[.@i],128,98;
+ warp .@maps$[.@i],128,98;
+ end;
+ }
+ close;
}
+izlude,122,105,5 script Izlude Copy Warper 1_M_WIZARD,{ callfunc "F_IzludeChannel",":Go to copy 2:Go to copy 3:Go to copy 4:Go to copy 5"; }
+izlude_a,122,105,5 script Izlude Copy Warper#_a 1_M_WIZARD,{ callfunc "F_IzludeChannel","Go to copy 1::Go to copy 3:Go to copy 4:Go to copy 5"; }
+izlude_b,122,105,5 script Izlude Copy Warper#_b 1_M_WIZARD,{ callfunc "F_IzludeChannel","Go to copy 1:Go to copy 2::Go to copy 4:Go to copy 5"; }
+izlude_c,122,105,5 script Izlude Copy Warper#_c 1_M_WIZARD,{ callfunc "F_IzludeChannel","Go to copy 1:Go to copy 2:Go to copy 3::Go to copy 5"; }
+izlude_d,122,105,5 script Izlude Copy Warper#_d 1_M_WIZARD,{ callfunc "F_IzludeChannel","Go to copy 1:Go to copy 2:Go to copy 3:Go to copy 4:"; }
diff --git a/npc/re/cities/jawaii.txt b/npc/re/cities/jawaii.txt
index a4b584d3a..61f27341c 100644
--- a/npc/re/cities/jawaii.txt
+++ b/npc/re/cities/jawaii.txt
@@ -3,14 +3,18 @@
//===== By: ==================================================
//= Daegaladh, Masao
//===== Current Version: =====================================
-//= 1.0
-//===== Compatible With: =====================================
-//= Hercules GIT
+//= 1.2
//===== Description: =========================================
+//= [Official Conversion]
//= Jawaii town NPCs.
//===== Additional Comments: =================================
-//= 1.0 First Version. Renewal coordinates [Masao]
-//= 1.1 Changed to Official coordinates [Streusel]
+//= 1.0 First Version. Renewal coordinates by Masao.
+//= 1.1 Moved "Honeymoon Helper" NPC.
+//= 1.2 Added Izlude duplicates. [Euphy]
//============================================================
-izlude,180,224,6 duplicate(Honeymoon_Helper_Izlude) Honeymoon Helper#Izlude 71 \ No newline at end of file
+izlude,180,224,3 duplicate(Honeymoon_Helper_Izlude) Honeymoon Helper#Izlude 1_F_LIBRARYGIRL
+izlude_a,180,224,3 duplicate(Honeymoon_Helper_Izlude) Honeymoon Helper#Iz_a 1_F_LIBRARYGIRL
+izlude_b,180,224,3 duplicate(Honeymoon_Helper_Izlude) Honeymoon Helper#Iz_b 1_F_LIBRARYGIRL
+izlude_c,180,224,3 duplicate(Honeymoon_Helper_Izlude) Honeymoon Helper#Iz_c 1_F_LIBRARYGIRL
+izlude_d,180,224,3 duplicate(Honeymoon_Helper_Izlude) Honeymoon Helper#Iz_d 1_F_LIBRARYGIRL
diff --git a/npc/re/cities/malangdo.txt b/npc/re/cities/malangdo.txt
index 0ee7ca8be..e8cfdb615 100644
--- a/npc/re/cities/malangdo.txt
+++ b/npc/re/cities/malangdo.txt
@@ -1,20 +1,22 @@
//===== Hercules Script ======================================
//= Malangdo Town
-//===== By: ==================================================
+//===== By: ==================================================
//= Muad_Dib
-//===== Current Version: =====================================
-//= 1.3
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Current Version: =====================================
+//= 1.5
+//===== Description: =========================================
+//= [Official Conversion]
//= Malangdo Town Script
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First version. [Euphy]
//= 1.1 Added entrance scripts.
-//= 1.2 Added Official coordinates for Odgnalam [Streusel]
+//= 1.2 Moved "Odgnalam" coordinates.
+//= 1.3 Fixed dialogues.
+//= 1.4 Dialogue edits, source iRO.
+//= 1.5 Added Izlude duplicates.
//============================================================
-// Entrance :: malangdo_go
+// Malangdo Transportation :: malangdo_go
//============================================================
- script Dolangmal -1,{
if (checkquest(5091) == -1) {
@@ -145,44 +147,43 @@
close;
}
}
-prontera,114,77,6 duplicate(Dolangmal) Dolangmal#1 553
-geffen,109,61,6 duplicate(Dolangmal) Dolangmal#2 553
-payon,200,106,4 duplicate(Dolangmal) Dolangmal#3 553
-aldebaran,170,104,4 duplicate(Dolangmal) Dolangmal#4 553
-morocc,168,275,4 duplicate(Dolangmal) Dolangmal#5 553
-yuno,165,122,4 duplicate(Dolangmal) Dolangmal#6 553
-rachel,121,126,4 duplicate(Dolangmal) Dolangmal#7 553
-lighthalzen,254,83,5 duplicate(Dolangmal) Dolangmal#8 553
-mora,57,150,4 duplicate(Dolangmal) Dolangmal#9 553
+prontera,114,77,6 duplicate(Dolangmal) Dolangmal#1 4_CAT_DOWN
+geffen,109,61,6 duplicate(Dolangmal) Dolangmal#2 4_CAT_DOWN
+payon,200,106,4 duplicate(Dolangmal) Dolangmal#3 4_CAT_DOWN
+aldebaran,170,104,4 duplicate(Dolangmal) Dolangmal#4 4_CAT_DOWN
+morocc,168,275,4 duplicate(Dolangmal) Dolangmal#5 4_CAT_DOWN
+yuno,165,122,4 duplicate(Dolangmal) Dolangmal#6 4_CAT_DOWN
+rachel,121,126,4 duplicate(Dolangmal) Dolangmal#7 4_CAT_DOWN
+lighthalzen,254,83,5 duplicate(Dolangmal) Dolangmal#8 4_CAT_DOWN
+mora,57,150,4 duplicate(Dolangmal) Dolangmal#9 4_CAT_DOWN
-
-izlude,182,218,4 script Odgnalam#iz 554,{
- mes "This cat is sleeping in the warm "+strnpcinfo(2)+" sun.";
+- script ::Odgnalam -1,{
+ mes "This cat is sleeping in the warm "+((strnpcinfo(2) == "albe")?"Alberta":"Izlude")+" sun.";
next;
if(select("Let him sleep:Talk to him") == 1) close;
mes "[Odgnalam]";
- mes "Meow? Uh?";
+ mes "Meow? Huh?";
next;
if (ep13_yong1 == 0) {
set .@price,1000;
- set .@s1$,"Huh!! You are such an annoying person. Let me send you to the heaven of the cat, ^A2314BMalangdo^000000 with ^0000FF1000 Zeny^000000.";
+ set .@s1$,"Huh! You are so annoying. Let me send you to ^A2314BMalangdo^000000 for ^0000FF1000 Zeny^000000.";
set .@s2$,"Money? Where is the money? You can't go anywhere without the money. Shame on you.";
} else if (ep13_yong1 < 60) {
set .@price,999;
- set .@s1$,"You have a little relationship with fleet of cat. I'll give you special discount price ^0000FF999 Zeny^000000 to the heaven of the cat, ^A2314BMalangdo^000000, because you have relationship with fleet.";
+ set .@s1$,"You have a little relationship with fleet of cat. I'll give you special discount price ^0000FF999 Zeny^000000 to ^A2314BMalangdo^000000, because you have relationship with fleet.";
set .@s2$,"Where is the money? You don't have a sense of honor.";
} else if (ep13_yong1 > 59 && ep13_yong1 < 80) {
set .@price,500;
- set .@s1$,"You gave several help to our cat's fleet so let me give you special that with 50% discount price ^0000FF500 Zeny^000000. I'll send you to the heaven of the cat, ^A2314BMalangdo^000000.";
+ set .@s1$,"You gave several help to our cat's fleet so let me give you special that with 50% discount price ^0000FF500 Zeny^000000. I'll send you to ^A2314BMalangdo^000000.";
set .@s2$,"You don't have any money for paying 50% discount price? I can't believe it.";
} else {
mes "[Odgnalam]";
mes "You are a hero of cat's fleet. Your activity is the legend between us.";
next;
mes "[Odgnalam]";
- mes "As you are a hero of the cat fleet let me send you to ^A2314BMeow Meow Island^000000 for free.";
+ mes "As you are a hero of the cat fleet let me send you to ^A2314BMalangdo^000000 for free.";
next;
- if(select("Send me to Meow Meow Island!:Do not go.") == 1) {
+ if(select("Send me to Malangdo!:Do not go.") == 1) {
mes "[Odgnalam]";
mes "Have a comfortable trip... Alright let's go~";
warp "malangdo",217,85;
@@ -192,21 +193,26 @@ izlude,182,218,4 script Odgnalam#iz 554,{
mes "[Odgnalam]";
mes .@s1$;
next;
- if(select("Send me to Meow Meow Island!:Do not go.") == 2) close;
+ if(select("Send me to Malangdo!:Do not go.") == 2) close;
if (Zeny < .@price) {
mes "[Odgnalam]";
mes "Money? Where is the money? You can't go anywhere without the money. Shame on you.";
close;
}
- set Zeny, Zeny - .@price;
+ Zeny -= .@price;
mes "[Odgnalam]";
mes "Let me send you right away. Let's go~";
warp "malangdo",217,85;
close;
}
-alberta,200,151,4 duplicate(Odgnalam#iz) Odgnalam#Alberta 554
+alberta,200,151,4 duplicate(Odgnalam) Odgnalam#albe 4_CAT_REST
+izlude,182,218,4 duplicate(Odgnalam) Odgnalam#iz 4_CAT_REST // Old coordinates: (182,192)
+izlude_a,182,218,4 duplicate(Odgnalam) Odgnalam#iz_a 4_CAT_REST
+izlude_b,182,218,4 duplicate(Odgnalam) Odgnalam#iz_b 4_CAT_REST
+izlude_c,182,218,4 duplicate(Odgnalam) Odgnalam#iz_c 4_CAT_REST
+izlude_d,182,218,4 duplicate(Odgnalam) Odgnalam#iz_d 4_CAT_REST
-malangdo,219,86,4 script Kong#malang 545,{
+malangdo,219,86,4 script Kong#malang 4_CAT_SAILOR2,{
mes "[Kong]";
mes "Did you have fun in Malangdo?";
mes "The fleet has a service to Izlude and Alberta.";
@@ -258,7 +264,7 @@ malangdo,219,86,4 script Kong#malang 545,{
if (ep13_yong1 > 80) {
mes "Have a comfortable trip.";
if (.@i == 1)
- warp "izlude",195,212;
+ warp "izlude",195,212; // Old coordinates: (194,180)
else
warp "alberta",192,150;
close;
@@ -267,7 +273,7 @@ malangdo,219,86,4 script Kong#malang 545,{
mes .@no_money$;
close;
}
- set Zeny, Zeny - .@price;
+ Zeny -= .@price;
mes .@yes_money$;
if (.@i == 1)
warp "izlude",195,212;
@@ -276,18 +282,19 @@ malangdo,219,86,4 script Kong#malang 545,{
close;
}
-// Town NPCs :: malang_tre
+// Generic Malangdo NPCs :: malang_tre
//============================================================
-malangdo,147,117,3 script Innkeeper#malang 554,{
+malangdo,147,117,3 script Innkeeper#malang 4_CAT_REST,{
mes "You see a lazy cat standing on a chair.";
mes "You guess that this is the Innkeeper.";
next;
- switch(select("Umm... can I rest here?:Psst... can I save here?:Leave.")) {
+ switch(select("Umm... Can I rest here?:Psst... Can I save here?:Leave.")) {
case 1:
mes "[Innkeeper]";
- mes "You can use the hammock as you want, but give me ^FF00005 Malangdo Canned Specialties^000000. Then you can relax.";
+ mes "Eh?";
+ mes "Uh, sure you can use this hammock if you give me ^FF00005 Malangdo Cans^000000.";
next;
- switch(select("Give the cans.:No need.")) {
+ switch(select("Here you go.:Never mind.")) {
case 1:
if (countitem(12636) > 4) {
delitem 12636,5; //Malang_Sp_Can
@@ -301,11 +308,11 @@ malangdo,147,117,3 script Innkeeper#malang 554,{
close;
}
mes "[Innkeeper]";
- mes "It looks like a lack of cans.";
+ mes "This ain't no charity.";
close;
case 2:
mes "[Innkeeper]";
- mes "You are stronger than your appearance.";
+ mes "Let me know if you want to relax.";
close;
}
case 2:
@@ -315,27 +322,28 @@ malangdo,147,117,3 script Innkeeper#malang 554,{
close;
case 3:
mes "[Innkeeper]";
- mes "A busy moment makes you hurry and laziness makes you lazy.";
+ mes "Sometimes you just have to relax.";
next;
- mes "- Wonder if there is work time. -";
+ mes "- Wow, this is the laziest cat ever. -";
close;
}
close;
}
-malangdo,151,120,3 script Wandering Minstrel#mal 479,{
- mes "[Wandering Minstrel]";
+malangdo,151,120,3 script Minstrel#mal 4_M_MINSTREL,{
+ mes "[Minstrel]";
mes "Boy, that lazy cat makes me want to just nap all day long.";
next;
- mes "[Wandering Minstrel]";
- mes "He makes life look so simple";
+ mes "[Minstrel]";
+ mes "He makes life look so simple.";
close;
}
-malangdo,149,120,5 script Wandering Wanderer#mal 485,5,1,{
- mes "[Wandering Wanderer]";
- mes "Cats living in here is so energetic.";
- mes "And it makes me dance~";
+malangdo,149,120,5 script Wanderer#mal 4_F_WANDERER,5,1,{
+ mes "[Wanderer]";
+ mes "The cats living in here are so energetic.";
+ mes "Is it weird that they make me want to dance all day?";
+ mes "La di dah di dah~!";
close;
OnTouch:
switch(rand(5)) {
@@ -351,7 +359,7 @@ OnTouch:
case 3:
soundeffect "assassin_of_sunset.wav",0;
break;
- case 4:
+ case 4:
emotion e_ho;
emotion e_ho,0,"Wandering Minstrel#mal";
break;
@@ -359,34 +367,67 @@ OnTouch:
end;
}
-malangdo,216,168,3 script Cat Trainer#mal1 558,0,8,{
+malangdo,216,168,3 script Cat Trainer#mal1 4_F_ALCHE_A,0,8,{
emotion e_awsm;
mes "[Cat Trainer]";
- mes "Phh there is a tail and butt both soft and tender!";
- mes "Can't stand, this is heaven~~!!";
+ mes "Ooo~ their soft puffy tails and soft fur~";
+ mes "I can't stand it, this is heaven~~!!";
next;
emotion e_gg;
mes "[Cat Trainer]";
- mes "My hidden card, ^FF0000<Silvervine Fruit>^000000, can make all cats in Malangdo my slaves~ haha!";
+ mes "My hidden card, ^FF0000Silvervine Fruit^000000, can make all cats in Malangdo my slaves~ haha!";
next;
- select("^FF0000<Silvervine Fruit>^000000?");
+ select("^FF0000Silvervine Fruit^000000?");
mes "[Cat Trainer]";
- mes "Silvervine Fruit is a rare item!";
+ mes "It is such a rare item!";
mes "I can barely get it.";
- mes "But every cat loves it with no complaints.";
+ mes "But these cudly cats can't resist it~";
next;
- select("Where can I get ^FF0000<Silvervine Fruit>^000000?");
+ select("Where can I get ^FF0000Silvervine Fruit^000000?");
mes "[Cat Trainer]";
- mes "How would I know if I could barely find it?";
- mes "This can't be taken even with ^3131FFall the zeny in this world^000000!";
+ mes "Why would I tell you when I can barely get it?";
+ mes "I wouldn't even tell you for all the zeny in the world~!";
next;
emotion e_gg;
mes "[Cat Trainer]";
- mes "The cats in Malangdo are mine...! As it should be, haha~";
- mes "^FF0000<Silvervine Fruit>^000000! I can be a king in Malangdo~ ohhhh!!!";
+ mes "All the Malangdo cats are mine~!";
+ mes "Muahahahaha~";
+ mes "With enough ^FF0000Silvervine Fruit^000000 I can be a queen in Malangdo~ ohhhh!!!";
close;
OnTouch:
emotion e_flash;
end;
}
-malangdo,164,203,3 duplicate(Cat Trainer#mal1) Cat Trainer#mal2 853,5,8 \ No newline at end of file
+
+malangdo,164,203,3 script Cat Trainer#mal2 4_M_YURI,{
+ emotion e_awsm;
+ mes "[Cat Trainer]";
+ mes "Ooo~ their soft puffy tails and soft fur~";
+ mes "I can't stand it, this is heaven~~!!";
+ next;
+ emotion e_gg;
+ mes "[Cat Trainer]";
+ mes "This is my little secret called";
+ mes "^FF0000Silvervine Fruit^000000. I can use";
+ mes "it to make the Malangdo cats my";
+ mes "slaves~ muahahahaha~!";
+ next;
+ select("^FF0000Silvervine Fruit^000000?");
+ mes "[Cat Trainer]";
+ mes "Hmm, I guess it's no wonder you don't know.";
+ mes "These Malangdo cats can't resist it.";
+ mes "But it's too rare of an item to get so you shouldn't bother trying to find it.";
+ next;
+ select("Where can I get ^FF0000Silvervine Fruit^000000?");
+ mes "[Cat Trainer]";
+ mes "Actually, it's simple. You just...";
+ next;
+ mes "[Cat Trainer]";
+ mes "Hey, you almost made me tell my secret.";
+ next;
+ emotion e_gg;
+ mes "[Cat Trainer]";
+ mes "One day these cats will be mine.";
+ mes "I can be a king in Malangdo~ ohhh~!";
+ close;
+}
diff --git a/npc/re/cities/malaya.txt b/npc/re/cities/malaya.txt
index 3daff8526..da19e67c5 100644
--- a/npc/re/cities/malaya.txt
+++ b/npc/re/cities/malaya.txt
@@ -1,85 +1,58 @@
-//===== Hercules Script =======================================
-//= Port Malaya NPC's
-//===== By: ==================================================
-//= Masao
-//===== Current Version: =====================================
-//= 1.0
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
-//= Many Port Malaya NPC's & Quests.
-//===== Additional Comments: =================================
-//= 1.0 First Version.
-//============================================================
-
-malaya,276,55,4 script Optamara Crew#malaya 100,{
-
- if (malaya_hi < 10) {
- mes "[Optamara Crew]";
- mes "I think the village is still busy. Done with your visit? There is always a ship heading for Alberta.";
- next;
- }
- else if ((malaya_hi > 9) && (malaya_hi < 20)) {
- mes "[Optamara Crew]";
- mes "I think a nameless adventurer helped take a load off the villagers mind. Yahoo! Would you like to go back to Alberta?";
- next;
- }
- else {
- mes "[Optamara Crew]";
- mes "Would you like to go back to Alberta with me?";
- next;
- }
- switch (select("Return.:Do not return.")) {
- case 1:
- mes "[Optamara Crew]";
- mes "Great! Lets leave now for Alberta!!";
- close2;
- warp "alberta",239,68;
- end;
- case 2:
- mes "[Optamara Crew]";
- mes "Thats okay. Come here if you ever want to go back to Alberta.";
- close;
- }
-}
-
-alberta,237,71,3 script Optamara Crew#alberta 100,{
-
+//===== Hercules Script ======================================
+//= Port Malaya
+//===== By: ==================================================
+//= Euphy
+//===== Current Version: =====================================
+//= 1.1
+//===== Description: =========================================
+//= [Official Conversion]
+//= Port Malaya Town Script
+//===== Additional Comments: =================================
+//= 0.1 Alberta sailors only. [Euphy]
+//= 0.2 Adapted from Masao's conversion.
+//= 1.0 Added remaining NPCs.
+//= 1.1 Added Jeepney script. [DeadlySilence]
+//============================================================
+
+// Port Malaya Transportation
+//============================================================
+// Old coordinates: alberta (237,71)
+alberta,196,202,3 script Optamara Crew#alberta 4W_SAILOR,{
mes "[Optamara Crew]";
mes "Hey, there!";
- mes "Its 10,000 Zeny to go to Port Malaya. Interested?";
+ mes "It's 10,000 Zeny to go to Port Malaya. Interested?";
next;
- switch (select("About Port Malaya:Go to Port Malaya.:Cancel.")) {
+ switch(select("About Port Malaya.:Go to Port Malaya.:Cancel.")) {
case 1:
mes "[Optamara Crew]";
mes "Port Malaya is a small village you could reach by sailing southwest from Alberta.";
next;
mes "[Optamara Crew]";
- mes "I couldnt visit the village because they had some issues there but now it seems all is clear!";
+ mes "I couldn't visit the village because they had some issues there but now it seems all is clear!";
next;
mes "[Optamara Crew]";
- mes "I dont know for sure but it was a village that's like a comfortable and cozy park.";
+ mes "I don't know for sure but it was a village that's like a comfortable and cozy park.";
next;
mes "[Optamara Crew]";
mes "I was this close to not coming back to cozy Alberta again.";
next;
mes "[Optamara Crew]";
- mes "Im sure youll feel the same once you reach Port Malaya.";
+ mes "I'm sure you'll feel the same once you reach Port Malaya.";
close;
case 2:
- if (Zeny > 9999) {
- set Zeny, Zeny - 10000;
+ if (Zeny < 10000) {
mes "[Optamara Crew]";
- mes "Great!";
- mes "Heading for Port Malaya!!";
- close2;
- warp "Malaya",271,55;
- end;
+ mes "Oh God!!";
+ mes "You don't know how far it is from here. Of course it's not free. Please come back with 10,000 Zeny. Sorry!";
+ close;
}
mes "[Optamara Crew]";
- mes "Oh God!!";
- mes "You dont know how far it is from here. Of course its not free. Please come back with 10,000 Zeny. Sorry!";
- close;
+ mes "Great!";
+ mes "Heading for Port Malaya!!";
+ Zeny -= 10000;
+ close2;
+ warp "malaya",271,55;
+ end;
case 3:
mes "[Optamara Crew]";
mes "Adventurers these days act like they are busy. Come back when you have the time and we could go visit Port Malaya together.";
@@ -87,20 +60,47 @@ alberta,237,71,3 script Optamara Crew#alberta 100,{
}
}
-ma_in01,30,94,4 script Inn Keeper#ma 583,{
+malaya,276,55,4 script Optamara Crew#malaya 4W_SAILOR,{
+ if (malaya_hi < 10) {
+ mes "[Optamara Crew]";
+ mes "I think the village is still busy. Done with your visit? There is always a ship heading for Alberta.";
+ next;
+ } else if (malaya_hi < 20) {
+ mes "[Optamara Crew]";
+ mes "I think a nameless adventurer helped take a load off the villagers' minds. Yahoo! Would you like to go back to Alberta?";
+ next;
+ } else {
+ mes "[Optamara Crew]";
+ mes "Would you like to go back to Alberta with me?";
+ next;
+ }
+ switch(select("Return.:Do not return.")) {
+ case 1:
+ mes "[Optamara Crew]";
+ mes "Great! Let's leave now for Alberta!!";
+ close2;
+ warp "alberta",239,68;
+ end;
+ case 2:
+ mes "[Optamara Crew]";
+ mes "That's okay. Come here if you ever want to go back to Alberta.";
+ close;
+ }
+}
+// Generic Port Malaya NPCs
+//============================================================
+ma_in01,30,94,4 script Inn Keeper#ma 4_F_MALAYA,{
if (malaya_hi < 10) {
mes "[Inn Keeper]";
mes "Oh my! Visiting?";
- mes "What bad timing. The village is a bit unorganized at the moment so Im actually closed. Sorry.";
+ mes "What bad timing. The village is a bit unorganized at the moment so I'm actually closed. Sorry.";
close;
- }
- else if ((malaya_hi > 9) && (malaya_hi < 20)) {
+ } else if (malaya_hi < 20) {
mes "[Inn Keeper]";
mes "So you are the adventurer villagers are talking about? I reopened my inn thanks to you. Thank you.";
next;
- }
- else {
+ } else {
mes "[Inn Keeper]";
mes "Welcome.";
mes "This is Port Malaya's best inn, 'Cabin in the City'.";
@@ -109,7 +109,7 @@ ma_in01,30,94,4 script Inn Keeper#ma 583,{
mes "[Inn Keeper]";
mes "Come for a rest? Lodging will be 5,000 Zeny.";
next;
- switch (select("Store.:Lodge. - 5,000z:Cancel.")) {
+ switch(select("Store.:Lodge. - 5,000z:Cancel.")) {
case 1:
mes "[Inn Keeper]";
mes "Successfully stored. See you next time.";
@@ -117,14 +117,14 @@ ma_in01,30,94,4 script Inn Keeper#ma 583,{
close;
case 2:
if (Zeny < 5000) {
- mes "[Inn Keeper]";
- mes "Sorry. I think you are a bit short.";
- close;
+ mes "[Inn Keeper]";
+ mes "Sorry. I think you are a bit short.";
+ close;
}
mes "[Inn Keeper]";
mes "Hope you enjoy your stay.";
close2;
- set Zeny, Zeny - 5000;
+ Zeny -= 5000;
percentheal 100,100;
warp "ma_in01",43,98;
end;
@@ -133,867 +133,151 @@ ma_in01,30,94,4 script Inn Keeper#ma 583,{
}
}
-ma_fild01,166,214,6 script Old Man in Dilemma#GA 575,{
-
- if (MaxWeight - Weight < 600 || checkweight(1201,1) == 0) {
- mes "Cannot proceed because you have too many items in your possession.";
- close;
- }
- mes "[Old Man in Dilemma]";
- mes "Oh! Demons are gaining more and more power in this world.";
- next;
- switch (select("We need to gather items to fight them off.:Ignore.")) {
- case 1:
- if ((countitem(6497) > 2) && (Zeny > 999)) {
- mes "[Old Man in Dilemma]";
- mes "You dont seem to be strong enough to fight off demons.";
- next;
- mes "[Old Man in Dilemma]";
- mes "Will you create a Greater Agimat of Ancient Spirit with 3 Lesser Agimats and 1,000 Zeny?";
- next;
- switch (select("Create.:No, thank you.")) {
- case 1:
- if ((countitem(6497) > 2) && (Zeny > 999)) {
- specialeffect2 EF_CONE;
- specialeffect EF_FORESTLIGHT2;
- set Zeny, Zeny - 1000;
- getitem 12775,1; //Ancient_Spirit_Amulet
- mes "[Old Man in Dilemma]";
- mes "Hope you win the fight with the demon.";
- close;
- }
- mes "[Old Man in Dilemma]";
- mes "Short on materials.";
- close;
- case 2:
- mes "[Old Man in Dilemma]";
- mes "Hope you win the fight with the demon.";
- close;
- }
- }
- mes "[Old Man in Dilemma]";
- mes "Cant make it now but there is an old way of making it handed down by generations.";
- next;
- mes "[Old Man in Dilemma]";
- mes "You need to call upon the power of Ancient Spirits. But youll need several important materials first.";
- next;
- select("What are they?");
- mes "[Old Man in Dilemma]";
- mes "3 Lesser Agimats to hold the power of Ancient Spirits here and another special material handed down for generations.";
- next;
- mes "[Old Man in Dilemma]";
- mes "But nobody can get this special item anymore.";
- next;
- select("Something money cannot buy?");
- mes "[Old Man in Dilemma]";
- mes "No, no... It's this round little thing, you see?";
- next;
- select("Are you talking about Zeny?");
- mes "[Old Man in Dilemma]";
- mes "Looks similar to the special items handed down from generations.";
- next;
- mes "[Old Man in Dilemma]";
- mes "As long as we have enough of that, we could make the Greater Agimat of Ancient Spirit to fight against the demons.";
- next;
- select("Sounds good.");
- mes "[Old Man in Dilemma]";
- mes "In case you are too weary to take on the demons";
- next;
- mes "[Old Man in Dilemma]";
- mes "come by with 3 Lesser Agimats and 1,000 of those so called Zeny.";
- next;
- mes "[Old Man in Dilemma]";
- mes "I will make a Greater Agimat of Ancient Spirit that will increase your attacks against demons by 10% for 20 min.";
- close;
- case 2:
- mes "[Old Man in Dilemma]";
- mes "Hope you win the fight with the demon.";
- close;
- }
-}
-
-ma_fild01,238,198,4 script Tikbalang Expert#malaya 582,{
-
- if (MaxWeight - Weight < 50 || checkweight(1201,1) == 0) {
- mes "Cannot proceed because you have too many items in your possession.";
- close;
- }
- mes "[Tikbalang Expert]";
- mes "Ive spent 90% of my life studying Tikbalang.";
- next;
- switch (select("But you look young?:What is Tikbalang?:Teach me how to catch a Tikbalang.")) {
- case 1:
- mes "[Tikbalang Expert]";
- mes "What! I might be imagining things.";
- next;
- mes "[Tikbalang Expert]";
- mes "I look younger than I am because of my baby face. Ha ha ha";
- next;
- select("... ... ...");
- mes "[Tikbalang Expert]";
- mes "Trust!! They say faith will bring you luck.";
- close;
- case 2:
- mes "[Tikbalang Expert]";
- mes "Ha ha... You ask the right question.";
- mes "Im a specialist in that field. Ask me anything.";
- next;
- select("Why wont you answer me?");
- mes "[Tikbalang Expert]";
- mes "Have you... ever been fooled by anyone around you? Why cant you believe someones word for it? Really, ask me anything.";
- next;
- while (.@loop != 1) {
- switch (select("I don't have any questions.:Characteristics?:Features?:Rumors?:Habitat?")) {
- case 1:
- set .@loop,1;
- break;
- case 2:
- mes "[Tikbalang Expert]";
- mes "Tikbalangs have a way to confuse travelers when they meet them by making them turn in circles regardless of wherever and how far they travel.";
- next;
- mes "[Tikbalang Expert]";
- mes "They are mischievous creatures.";
- next;
- mes "[Tikbalang Expert]";
- mes "But of course there is a way to stop their pranks. You know about the Inside-out Shirt? You can either wear your top inside-out.";
- next;
- mes "[Tikbalang Expert]";
- mes "Or go on your way quietly without disrupting the Tikbalangs.";
- next;
- mes "[Tikbalang Expert]";
- mes "Ha ha ha ha But everyone knows adventurers are never quiet while they travel, right?";
- next;
- mes "[Tikbalang Expert]";
- mes "Never...";
- set .@loop,2;
- next;
- break;
- case 3:
- mes "[Tikbalang Expert]";
- mes "They say Tikbalangs have several distinctions.";
- next;
- mes "[Tikbalang Expert]";
- mes "First, they are very tall ^AAAAAA(tsk.. wish I were tall)^000000 and have skinny, imbalanced legs and arms. Looks almost like a human but their knees are higher than their upper body when they sit down,";
- next;
- mes "[Tikbalang Expert]";
- mes "Second, is the standard characteristics acknowledged by the association. They have heads and foot like a horse.";
- next;
- mes "[Tikbalang Expert]";
- mes "So with all these appearance treats, Tikbalang is sometimes called the creature from hell.";
- set .@loop,3;
- next;
- break;
- case 4:
- mes "[Tikbalang Expert]";
- mes "There are several fun rumors about Tikbalangs.";
- next;
- mes "[Tikbalang Expert]";
- mes "One of them is about Tikbalangs being the guardians of some kingdom that worships nature.";
- next;
- mes "[Tikbalang Expert]";
- mes "So the Tikbalangs will trick travelers who come with bad intentions to the kingdom by making them travel in circles.";
- next;
- mes "[Tikbalang Expert]";
- mes "Another rumor is that people around here say that 'if it rains on a clear day, then it must be Tikbalang's wedding day'.";
- next;
- mes "[Tikbalang Expert]";
- mes "The association speculates that sayings like 'it rains on Bathorys wedding day' or 'it rains on Moonlight Flowers wedding day' might have derived from the Tikbalangs saying.";
- next;
- mes "[Tikbalang Expert]";
- mes "Lastly, ancient fairy tales say that Tikbalangs can transform into human form or even make themselves transparent but nobody has verified this yet.";
- set .@loop,4;
- next;
- break;
- case 5:
- mes "[Tikbalang Expert]";
- mes "Tikbalangs usually live in dark, busy places where there arent many people around.";
- next;
- mes "[Tikbalang Expert]";
- mes "Hmm... For example, they are known to live beneath bridges, in banana and bamboo forests and beneath large trees.";
- next;
- mes "[Tikbalang Expert]";
- mes "And this is just my opinion but wouldnt you agree that they are living in dark places because it is easier to play pranks on people?";
- set .@loop,5;
- next;
- break;
- }
- }
- mes "[Tikbalang Expert]";
- mes "I think this is enough explanation for now. You wouldnt understand other highly sophisticated topics with specific terminology and all anyway.";
- next;
- mes "[Tikbalang Expert]";
- mes "Oh! Do you have any other questions?";
- next;
- mes "[Tikbalang Expert]";
- mes "What do you think? Impressed at how much I know? Come by anytime when you have any more questions.";
- close;
- case 3:
- mes "[Tikbalang Expert]";
- mes "Ha ha ha. Do you now know how great I am?";
- next;
- if ((countitem(6496) > 2) && (countitem(6497) > 4)) {
- mes "[Tikbalang Expert]";
- mes "Oh! Isnt this material to make 'Tikbalang Belt' used to tame Tikbalangs?";
- next;
- mes "[Tikbalang Expert]";
- mes "The '^F80835Tikbalang Belt ^000000' is used to capture Tikbalangs without the hassle. But that doesnt mean its 100% successful. Interested? Do you want me to make one for you?";
- next;
- switch (select("Yes, Im interested.:No, I can capture one myself.")) {
- case 1:
- delitem 6496,3; //Tikbalang_Thick_Spine
- getitem 12699,1; //Tikbalang_Belt
- mes "[Tikbalang Expert]";
- mes "Yiiiiiiiiiiii! Yap!";
- next;
- specialeffect EF_SONICBLOW2;
- select("Huh?");
- mes "[Tikbalang Expert]";
- mes "The '^F80835Tikbalang Belt ^000000' is already created";
- close;
- case 2:
- mes "[Tikbalang Expert]";
- mes "You? Ha... You can try if you want to.";
- close;
- }
- }
- mes "[Tikbalang Expert]";
- mes "There is the easy way and the hard way to capture Tikbalangs. Which one do you prefer?";
- next;
- switch (select("Easy way.:Hard way.")) {
- case 1:
- mes "[Tikbalang Expert]";
- mes "Ha ha. Ive come up with the easy way myself.";
- next;
- mes "[Tikbalang Expert]";
- mes "Bring me 3 Tikbalang's Thick Spines and 5 Lesser Agimats to make";
- next;
- mes "[Tikbalang Expert]";
- mes "a '^F80835Tikbalang Belt^000000' to help you easily capture Tikbalangs.";
- next;
- mes "[Tikbalang Expert]";
- mes "Ha ha ha ha ha!";
- mes "I will say it again.";
- mes "Its 3 Tikbalang's Thick Spines and 5 Lesser Agimats. Understood?";
- close;
- case 2:
- mes "[Tikbalang Expert]";
- mes "Its easy for me but I dont know about you.";
- next;
- mes "[Tikbalang Expert]";
- mes "Tikbalangs have a sharp, pointy mane behind their neck.";
- next;
- mes "[Tikbalang Expert]";
- mes "Of course! There are several of them but you must get the three thickest ones.";
- next;
- mes "[Tikbalang Expert]";
- mes "These three manes are the weak point. You can tame a Tikbalang by pulling the manes out.";
- next;
- mes "[Tikbalang Expert]";
- mes "Now let me explain how to pull these manes out.";
- next;
- mes "[Tikbalang Expert]";
- mes "You must fly like a butterfly and land like a bee on the back of a Tikbalang.";
- next;
- mes "[Tikbalang Expert]";
- mes "Of course! The Tikbalang will get mad and try to shake you off with all its might.";
- next;
- mes "[Tikbalang Expert]";
- mes "All you have to do is hold on until the Tikbalang gets exhausted.";
- next;
- mes "[Tikbalang Expert]";
- mes "Then again, itll take 4 days and 3 nights for Tikbalangs to get tired since they are strong creatures. But lets not focus on too much details.";
- next;
- mes "[Tikbalang Expert]";
- mes "Which means!! The Tikbalang is already tamed.";
- close;
- }
- }
-}
-
-ma_fild01,74,367,6 script Unidentified Creature#01 572,2,2,{
- end;
-
-OnInit:
- set .@kafre_who, rand(1,4);
- if (.@kafre_who == 1) {
- donpcevent "Unidentified Creature#02::OnDisable";
- donpcevent "Unidentified Creature#04::OnDisable";
- } else if (.@kafre_who == 2) {
- donpcevent "Unidentified Creature#01::OnDisable";
- donpcevent "Unidentified Creature#02::OnEnable";
- donpcevent "Unidentified Creature#04::OnDisable";
- } else if (.@kafre_who == 3) {
- donpcevent "Unidentified Creature#02::OnDisable";
- donpcevent "Unidentified Creature#03::OnEnable";
- donpcevent "Unidentified Creature#04::OnDisable";
- } else {
- donpcevent "Unidentified Creature#01::OnDisable";
- donpcevent "Unidentified Creature#02::OnDisable";
- donpcevent "Unidentified Creature#04::OnEnable";
- }
- end;
-
-OnEnable:
- hideoffnpc "Unidentified Creature#01";
- end;
-
-OnDisable:
- hideonnpc "Unidentified Creature#01";
- end;
-
-OnBingx2:
- set .@kafre_who, rand(1,3);
- if (.@kafre_who == 2) {
- donpcevent "Unidentified Creature#01::OnDisable";
- donpcevent "Unidentified Creature#02::OnEnable";
- donpcevent "Unidentified Creature#04::OnDisable";
- } else if (.@kafre_who == 3) {
- donpcevent "Unidentified Creature#01::OnDisable";
- donpcevent "Unidentified Creature#02::OnDisable";
- donpcevent "Unidentified Creature#03::OnEnable";
- donpcevent "Unidentified Creature#04::OnDisable";
- } else {
- donpcevent "Unidentified Creature#01::OnDisable";
- donpcevent "Unidentified Creature#02::OnDisable";
- donpcevent "Unidentified Creature#04::OnEnable";
- }
- end;
-
-OnTouch:
- if (getcharid(1) != 0) {
- if ($ma_name04$ == strcharinfo(0) || $ma_name05$ == strcharinfo(0) || $ma_name06$ == strcharinfo(0)) {
- donpcevent "Unidentified Creature#01::OnBingx2";
- mes "The unidentified creature gets a glimpse of you, blushes and then disappears.";
- close;
- }
- set .@slot_name, rand(1,5);
- if (.@slot_name == 1 || .@slot_name == 3 || .@slot_name == 5) {
- set $ma_name04$,strcharinfo(0);
- }
- donpcevent "Unidentified Creature#01::OnBingx2";
- mes "The unidentified creature gets a glimpse of you and disappears.";
- close;
- }
- donpcevent "Unidentified Creature#01::OnBingx2";
- mes "The unidentified creature looks at you and runs away.";
- close;
-}
-
-ma_fild01,109,116,4 script Unidentified Creature#02 572,2,2,{
- end;
-
-OnEnable:
- hideoffnpc "Unidentified Creature#02";
- end;
-
-OnDisable:
- hideonnpc "Unidentified Creature#02";
- end;
-
-OnBingx2:
- set .@kafre_who, rand(1,3);
- if (.@kafre_who == 1) {
- donpcevent "Unidentified Creature#04::OnDisable";
- } else if (.@kafre_who == 3) {
- donpcevent "Unidentified Creature#01::OnDisable";
- donpcevent "Unidentified Creature#02::OnDisable";
- donpcevent "Unidentified Creature#03::OnEnable";
- donpcevent "Unidentified Creature#04::OnDisable";
- }
- else {
- donpcevent "Unidentified Creature#01::OnDisable";
- donpcevent "Unidentified Creature#02::OnDisable";
- donpcevent "Unidentified Creature#04::OnEnable";
- }
- end;
-
-OnTouch:
- if (getpartyleader(getcharid(1),1) == getcharid(3)) {
- if ($ma_name04$ == strcharinfo(0) || $ma_name05$ == strcharinfo(0) || $ma_name06$ == strcharinfo(0)) {
- donpcevent "Unidentified Creature#02::OnBingx2";
- mes "The unidentified creature gets a glimpse of you, blushes and then disappears.";
- close;
- }
- set .@slot_name, rand(1,5);
- if (.@slot_name == 1 || .@slot_name == 3 || .@slot_name == 5) {
- set $ma_name04$,strcharinfo(0);
- }
- donpcevent "Unidentified Creature#02::OnBingx2";
- mes "The unidentified creature gets a glimpse of you and disappears.";
- close;
- }
- donpcevent "Unidentified Creature#02::OnBingx2";
- mes "The unidentified creature looks at you and runs away.";
- close;
-}
-
-ma_fild01,280,150,6 script Unidentified Creature#03 572,2,2,{
- end;
-
-OnEnable:
- hideoffnpc "Unidentified Creature#03";
- end;
-
-OnDisable:
- hideonnpc "Unidentified Creature#03";
- end;
-
-OnBingx2:
- set .@kafre_who, rand(1,3);
- if (.@kafre_who == 1) {
- donpcevent "Unidentified Creature#02::OnDisable";
- donpcevent "Unidentified Creature#04::OnDisable";
- } else if (.@kafre_who == 2) {
- donpcevent "Unidentified Creature#01::OnDisable";
- donpcevent "Unidentified Creature#02::OnEnable";
- donpcevent "Unidentified Creature#04::OnDisable";
- } else {
- donpcevent "Unidentified Creature#01::OnDisable";
- donpcevent "Unidentified Creature#02::OnDisable";
- donpcevent "Unidentified Creature#04::OnEnable";
- }
- end;
-
-OnTouch:
- if ((checkquest(4229,PLAYTIME) > 0) && (checkquest(9223,PLAYTIME) > 0) && (checkquest(12278,PLAYTIME) > 0)) {
- if ($ma_name04$ == strcharinfo(0) || $ma_name05$ == strcharinfo(0) || $ma_name06$ == strcharinfo(0)) {
- donpcevent "Unidentified Creature#03::OnBingx2";
- mes "The unidentified creature gets a glimpse of you, blushes and then disappears.";
- close;
- }
- set .@slot_name, rand(1,5);
- if (.@slot_name == 1 || .@slot_name == 3 || .@slot_name == 5) {
- set $ma_name04$,strcharinfo(0);
- }
- donpcevent "Unidentified Creature#03::OnBingx2";
- mes "The unidentified creature gets a glimpse of you and disappears.";
- close;
- }
- donpcevent "Unidentified Creature#03::OnBingx2";
- mes "The unidentified creature looks at you and runs away.";
- close;
-}
-
-ma_fild01,309,221,6 script Unidentified Creature#04 572,2,2,{
- end;
-
-OnEnable:
- hideoffnpc "Unidentified Creature#04";
- end;
-
-OnDisable:
- hideonnpc "Unidentified Creature#04";
- end;
-
-OnBingx2:
- set .@kafre_who, rand(1,3);
- if (.@kafre_who == 1) {
- donpcevent "Unidentified Creature#02::OnDisable";
- donpcevent "Unidentified Creature#04::OnDisable";
- } else if (.@kafre_who == 2) {
- donpcevent "Unidentified Creature#01::OnDisable";
- donpcevent "Unidentified Creature#02::OnEnable";
- donpcevent "Unidentified Creature#04::OnDisable";
- } else {
- donpcevent "Unidentified Creature#01::OnDisable";
- donpcevent "Unidentified Creature#02::OnDisable";
- donpcevent "Unidentified Creature#03::OnEnable";
- donpcevent "Unidentified Creature#04::OnDisable";
- }
- end;
-
-OnTouch:
- set .@kafre_tok, rand(1,100);
- if (.@kafre_tok == 7 || .@kafre_tok == 17 || .@kafre_tok == 27 || .@kafre_tok == 37 || .@kafre_tok == 47 || .@kafre_tok == 57 || .@kafre_tok == 67 || .@kafre_tok == 77 || .@kafre_tok == 87 || .@kafre_tok == 97) {
- if ($ma_name04$ == strcharinfo(0) || $ma_name05$ == strcharinfo(0) || $ma_name06$ == strcharinfo(0)) {
- donpcevent "Unidentified Creature#04::OnBingx2";
- mes "The unidentified creature gets a glimpse of you, blushes and then disappears.";
- close;
- }
- set .@slot_name, rand(1,5);
- if (.@slot_name == 1 || .@slot_name == 3 || .@slot_name == 5) {
- set $ma_name04$,strcharinfo(0);
- }
- donpcevent "Unidentified Creature#04::OnBingx2";
- mes "The unidentified creature gets a glimpse of you and disappears.";
- close;
- }
- donpcevent "Unidentified Creature#04::OnBingx2";
- mes "The unidentified creature looks at you and runs away.";
- close;
-}
-
-ma_fild02,282,41,4 script Unidentified Creature#05 572,2,2,{
- end;
-
-OnInit:
- set .@kafre_who, rand(1,4);
- if (.@kafre_who == 1) {
- donpcevent "Unidentified Creature#06::OnDisable";
- donpcevent "Unidentified Creature#07::OnDisable";
- } else if (.@kafre_who == 2) {
- donpcevent "Unidentified Creature#05::OnDisable";
- donpcevent "Unidentified Creature#06::OnEnable";
- donpcevent "Unidentified Creature#07::OnDisable";
- } else if (.@kafre_who == 3) {
- donpcevent "Unidentified Creature#05::OnDisable";
- donpcevent "Unidentified Creature#06::OnDisable";
- donpcevent "Unidentified Creature#07::OnEnable";
- } else {
- donpcevent "Unidentified Creature#05::OnDisable";
- donpcevent "Unidentified Creature#06::OnDisable";
- donpcevent "Unidentified Creature#07::OnDisable";
- donpcevent "Unidentified Creature#08::OnEnable";
- }
- end;
-
-OnEnable:
- hideoffnpc "Unidentified Creature#05";
- end;
-
-OnDisable:
- hideonnpc "Unidentified Creature#05";
- end;
-
-OnBingx2:
- set .@kafre_who, rand(1,3);
- if (.@kafre_who == 2) {
- donpcevent "Unidentified Creature#05::OnDisable";
- donpcevent "Unidentified Creature#06::OnEnable";
- donpcevent "Unidentified Creature#07::OnDisable";
- } else if (.@kafre_who == 3) {
- donpcevent "Unidentified Creature#05::OnDisable";
- donpcevent "Unidentified Creature#06::OnDisable";
- donpcevent "Unidentified Creature#07::OnEnable";
- } else {
- donpcevent "Unidentified Creature#05::OnDisable";
- donpcevent "Unidentified Creature#06::OnDisable";
- donpcevent "Unidentified Creature#07::OnDisable";
- donpcevent "Unidentified Creature#08::OnEnable";
- }
- end;
-
-OnTouch:
- if (getcharid(1) != 0) {
- if ($ma_name04$ == strcharinfo(0) || $ma_name05$ == strcharinfo(0) || $ma_name06$ == strcharinfo(0)) {
- donpcevent "Unidentified Creature#05::OnBingx2";
- mes "The unidentified creature gets a glimpse of you, blushes and then disappears.";
- close;
- }
- set .@slot_name, rand(1,5);
- if (.@slot_name == 1 || .@slot_name == 3 || .@slot_name == 5) {
- set $ma_name05$,strcharinfo(0);
- }
- donpcevent "Unidentified Creature#05::OnBingx2";
- mes "The unidentified creature gets a glimpse of you and disappears.";
- close;
- }
- donpcevent "Unidentified Creature#05::OnBingx2";
- mes "The unidentified creature looks at you and runs away.";
- close;
-}
-
-ma_fild02,246,324,4 script Unidentified Creature#06 572,2,2,{
- end;
-
-OnEnable:
- hideoffnpc "Unidentified Creature#06";
- end;
-
-OnDisable:
- hideonnpc "Unidentified Creature#06";
- end;
-
-OnBingx2:
- set .@kafre_who, rand(1,3);
- if (.@kafre_who == 1) {
- donpcevent "Unidentified Creature#06::OnDisable";
- donpcevent "Unidentified Creature#07::OnDisable";
- } else if (.@kafre_who == 3) {
- donpcevent "Unidentified Creature#05::OnDisable";
- donpcevent "Unidentified Creature#06::OnDisable";
- donpcevent "Unidentified Creature#07::OnEnable";
- } else {
- donpcevent "Unidentified Creature#05::OnDisable";
- donpcevent "Unidentified Creature#06::OnDisable";
- donpcevent "Unidentified Creature#07::OnDisable";
- donpcevent "Unidentified Creature#08::OnEnable";
- }
- end;
-
-OnTouch:
- if (getpartyleader(getcharid(1),1) == getcharid(3)) {
- if ($ma_name04$ == strcharinfo(0) || $ma_name05$ == strcharinfo(0) || $ma_name06$ == strcharinfo(0)) {
- donpcevent "Unidentified Creature#06::OnBingx2";
- mes "The unidentified creature gets a glimpse of you, blushes and then disappears.";
- close;
- }
- set .@slot_name, rand(1,5);
- if (.@slot_name == 1 || .@slot_name == 3 || .@slot_name == 5) {
- set $ma_name05$,strcharinfo(0);
- }
- donpcevent "Unidentified Creature#06::OnBingx2";
- mes "The unidentified creature gets a glimpse of you and disappears.";
- close;
- }
- donpcevent "Unidentified Creature#06::OnBingx2";
- mes "The unidentified creature looks at you and runs away.";
- close;
-}
-
-ma_fild02,71,296,6 script Unidentified Creature#07 572,2,2,{
- end;
-
-OnEnable:
- hideoffnpc "Unidentified Creature#07";
- end;
-
-OnDisable:
- hideonnpc "Unidentified Creature#07";
- end;
-
-OnBingx2:
- set .@kafre_who, rand(1,3);
- if (.@kafre_who == 1) {
- donpcevent "Unidentified Creature#06::OnDisable";
- donpcevent "Unidentified Creature#07::OnDisable";
- donpcevent "Unidentified Creature#08::OnDisable";
- } else if (.@kafre_who == 2) {
- donpcevent "Unidentified Creature#05::OnDisable";
- donpcevent "Unidentified Creature#06::OnEnable";
- donpcevent "Unidentified Creature#07::OnDisable";
- } else {
- donpcevent "Unidentified Creature#05::OnDisable";
- donpcevent "Unidentified Creature#06::OnDisable";
- donpcevent "Unidentified Creature#07::OnDisable";
- donpcevent "Unidentified Creature#08::OnEnable";
- }
- end;
-
-OnTouch:
- if ((checkquest(4229,PLAYTIME) > 0) && (checkquest(9223,PLAYTIME) > 0) && (checkquest(12278,PLAYTIME) > 0)) {
- if ($ma_name04$ == strcharinfo(0) || $ma_name05$ == strcharinfo(0) || $ma_name06$ == strcharinfo(0)) {
- donpcevent "Unidentified Creature#07::OnBingx2";
- mes "The unidentified creature gets a glimpse of you, blushes and then disappears.";
- close;
- }
- set .@slot_name, rand(1,5);
- if (.@slot_name == 1 || .@slot_name == 3 || .@slot_name == 5) {
- set $ma_name05$,strcharinfo(0);
- }
- donpcevent "Unidentified Creature#07::OnBingx2";
- mes "The unidentified creature gets a glimpse of you and disappears.";
- close;
- }
- donpcevent "Unidentified Creature#07::OnBingx2";
- mes "The unidentified creature looks at you and runs away.";
- close;
-}
-
-ma_fild02,32,263,4 script Unidentified Creature#08 572,2,2,{
- end;
-
-OnEnable:
- hideoffnpc "Unidentified Creature#08";
- end;
-
-OnDisable:
- hideonnpc "Unidentified Creature#08";
- end;
-
-OnBingx2:
- set .@kafre_who, rand(1,3);
- if (.@kafre_who == 1) {
- donpcevent "Unidentified Creature#06::OnDisable";
- donpcevent "Unidentified Creature#07::OnDisable";
- } else if (.@kafre_who == 2) {
- donpcevent "Unidentified Creature#05::OnDisable";
- donpcevent "Unidentified Creature#06::OnEnable";
- donpcevent "Unidentified Creature#07::OnDisable";
- } else {
- donpcevent "Unidentified Creature#05::OnDisable";
- donpcevent "Unidentified Creature#06::OnDisable";
- donpcevent "Unidentified Creature#07::OnEnable";
- }
+- script Unidentified Creature#i -1,{
end;
-
-OnTouch:
- set .@kafre_tok, rand(1,100);
- if (.@kafre_tok == 7 || .@kafre_tok == 17 || .@kafre_tok == 27 || .@kafre_tok == 37 || .@kafre_tok == 47 || .@kafre_tok == 57 || .@kafre_tok == 67 || .@kafre_tok == 77 || .@kafre_tok == 87 || .@kafre_tok == 97) {
- if ($ma_name04$ == strcharinfo(0) || $ma_name05$ == strcharinfo(0) || $ma_name06$ == strcharinfo(0)) {
- donpcevent "Unidentified Creature#08::OnBingx2";
- mes "The unidentified creature gets a glimpse of you, blushes and then disappears.";
- close;
- }
- set .@slot_name, rand(1,5);
- if (.@slot_name == 1 || .@slot_name == 3 || .@slot_name == 5) {
- set $ma_name05$,strcharinfo(0);
- }
- donpcevent "Unidentified Creature#08::OnBingx2";
- mes "The unidentified creature gets a glimpse of you and disappears.";
- close;
- }
- donpcevent "Unidentified Creature#08::OnBingx2";
- mes "The unidentified creature looks at you and runs away.";
- close;
-}
-
-ma_scene01,195,92,4 script Unidentified Creature#09 572,2,2,{
- end;
-
OnInit:
- set .@kafre_who, rand(1,3);
- if (.@kafre_who == 1) {
- donpcevent "Unidentified Creature#09::OnEnable";
- donpcevent "Unidentified Creature#10::OnDisable";
- donpcevent "Unidentified Creature#11::OnDisable";
- } else if (.@kafre_who == 2) {
- donpcevent "Unidentified Creature#09::OnDisable";
- donpcevent "Unidentified Creature#10::OnEnable";
- donpcevent "Unidentified Creature#11::OnDisable";
- } else {
- donpcevent "Unidentified Creature#09::OnDisable";
- donpcevent "Unidentified Creature#10::OnDisable";
- donpcevent "Unidentified Creature#11::OnEnable";
- }
- end;
-
-OnEnable:
- hideoffnpc "Unidentified Creature#09";
- end;
-
-OnDisable:
- hideonnpc "Unidentified Creature#09";
- end;
-
-OnBingx2:
- set .@kafre_who, rand(1,2);
- if (.@kafre_who == 2) {
- donpcevent "Unidentified Creature#09::OnDisable";
- donpcevent "Unidentified Creature#10::OnEnable";
- donpcevent "Unidentified Creature#11::OnDisable";
- } else {
- donpcevent "Unidentified Creature#09::OnDisable";
- donpcevent "Unidentified Creature#10::OnDisable";
- donpcevent "Unidentified Creature#11::OnEnable";
- }
- end;
-
-OnTouch:
- if (getcharid(1) != 0) {
- if ($ma_name04$ == strcharinfo(0) || $ma_name05$ == strcharinfo(0) || $ma_name06$ == strcharinfo(0)) {
- donpcevent "Unidentified Creature#09::OnBingx2";
- mes "The unidentified creature gets a glimpse of you, blushes and then disappears.";
- close;
- }
- set .@slot_name, rand(1,5);
- if (.@slot_name == 1 || .@slot_name == 3 || .@slot_name == 5) {
- set $ma_name06$,strcharinfo(0);
- }
- donpcevent "Unidentified Creature#09::OnBingx2";
- mes "The unidentified creature gets a glimpse of you and disappears.";
- close;
+ switch(atoi(strnpcinfo(2))) {
+ case 1: setarray .@npc$,"01","02","03","04"; break;
+ case 5: setarray .@npc$,"05","06","07","08"; break;
+ case 9: setarray .@npc$,"09","10","11"; break;
+ default: end;
}
- donpcevent "Unidentified Creature#09::OnBingx2";
- mes "The unidentified creature looks at you and runs away.";
- close;
-}
-
-ma_scene01,158,139,4 script Unidentified Creature#10 572,2,2,{
+ set .@size, getarraysize(.@npc$);
+ set .@rand, rand(.@size);
+ for(set .@i,0; .@i<.@size; set .@i,.@i+1)
+ donpcevent "Unidentified Creature#"+.@npc$[.@i]+"::"+((.@i == .@rand)?"OnEnable":"OnDisable");
end;
-
OnEnable:
- hideoffnpc "Unidentified Creature#10";
+ enablenpc strnpcinfo(0);
end;
-
OnDisable:
- hideonnpc "Unidentified Creature#10";
+ disablenpc strnpcinfo(0);
end;
-
OnBingx2:
- set .@kafre_who, rand(1,2);
- if (.@kafre_who == 1) {
- donpcevent "Unidentified Creature#09::OnEnable";
- donpcevent "Unidentified Creature#10::OnDisable";
- donpcevent "Unidentified Creature#11::OnDisable";
- } else {
- donpcevent "Unidentified Creature#09::OnDisable";
- donpcevent "Unidentified Creature#10::OnDisable";
- donpcevent "Unidentified Creature#11::OnEnable";
+ switch(atoi(strnpcinfo(2))) {
+ case 1: setarray .@npc$,"02","03","04"; break;
+ case 5: setarray .@npc$,"06","07","08"; break;
+ case 9: setarray .@npc$,"10","11"; break;
}
+ set .@size, getarraysize(.@npc$);
+ set .@rand, rand(.@size);
+ for(set .@i,0; .@i<.@size; set .@i,.@i+1)
+ donpcevent "Unidentified Creature#"+.@npc$[.@i]+"::"+((.@i == .@rand)?"OnEnable":"OnDisable");
+ donpcevent strnpcinfo(0)+"::OnDisable";
end;
-
OnTouch:
- if (getpartyleader(getcharid(1),1) == getcharid(3)) {
+ if (getcharid(1)) {
if ($ma_name04$ == strcharinfo(0) || $ma_name05$ == strcharinfo(0) || $ma_name06$ == strcharinfo(0)) {
- donpcevent "Unidentified Creature#10::OnBingx2";
+ donpcevent strnpcinfo(0)+"::OnBingx2";
mes "The unidentified creature gets a glimpse of you, blushes and then disappears.";
close;
}
- set .@slot_name, rand(1,5);
- if (.@slot_name == 1 || .@slot_name == 3 || .@slot_name == 5) {
- set $ma_name06$,strcharinfo(0);
+ if (rand(1,5)%2) {
+ switch(atoi(strnpcinfo(2))) {
+ case 1: set $ma_name04$,strcharinfo(0); break;
+ case 5: set $ma_name05$,strcharinfo(0); break;
+ case 9: set $ma_name06$,strcharinfo(0); break;
+ }
}
- donpcevent "Unidentified Creature#10::OnBingx2";
+ donpcevent strnpcinfo(0)+"::OnBingx2";
mes "The unidentified creature gets a glimpse of you and disappears.";
close;
}
- donpcevent "Unidentified Creature#10::OnBingx2";
+ donpcevent strnpcinfo(0)+"::OnBingx2";
mes "The unidentified creature looks at you and runs away.";
close;
}
+ma_fild01,74,367,6 duplicate(Unidentified Creature#i) Unidentified Creature#01 4_MAL_BUDIDAI,2,2
+ma_fild02,282,41,4 duplicate(Unidentified Creature#i) Unidentified Creature#05 4_MAL_BUDIDAI,2,2
+ma_scene01,195,92,4 duplicate(Unidentified Creature#i) Unidentified Creature#09 4_MAL_BUDIDAI,2,2
-ma_scene01,167,112,6 script Unidentified Creature#11 572,2,2,{
+- script Unidentified Creature#j -1,{
end;
-
OnEnable:
- hideoffnpc "Unidentified Creature#11";
+ enablenpc strnpcinfo(0);
end;
-
OnDisable:
- hideonnpc "Unidentified Creature#11";
+ disablenpc strnpcinfo(0);
end;
-
OnBingx2:
- set .@kafre_who, rand(1,2);
- if (.@kafre_who == 1) {
- donpcevent "Unidentified Creature#09::OnEnable";
- donpcevent "Unidentified Creature#10::OnDisable";
- } else {
- donpcevent "Unidentified Creature#10::OnEnable";
- }
+ switch(atoi(strnpcinfo(2))) {
+ case 2: setarray .@npc$,"01","03","04"; break;
+ case 3: setarray .@npc$,"01","02","04"; break;
+ case 4: setarray .@npc$,"01","02","03"; break;
+ case 6: setarray .@npc$,"05","07","08"; break;
+ case 7: setarray .@npc$,"05","06","08"; break;
+ case 8: setarray .@npc$,"05","06","07"; break;
+ case 10: setarray .@npc$,"09","11"; break;
+ case 11: setarray .@npc$,"09","10"; break;
+ }
+ set .@size, getarraysize(.@npc$);
+ set .@rand, rand(.@size);
+ for(set .@i,0; .@i<.@size; set .@i,.@i+1)
+ donpcevent "Unidentified Creature#"+.@npc$[.@i]+"::"+((.@i == .@rand)?"OnEnable":"OnDisable");
+ donpcevent strnpcinfo(0)+"::OnDisable";
end;
-
OnTouch:
- if ((checkquest(4229,PLAYTIME) > 0) && (checkquest(9223,PLAYTIME) > 0) && (checkquest(12278,PLAYTIME) > 0)) {
+ set .@i, atoi(strnpcinfo(2));
+ if (.@i%4 == 2) {
+ if (getcharid(0) == getpartyleader(getcharid(1),2))
+ set .@pass,1;
+ } else if (.@i%4 == 3) {
+ if (checkquest(4229,PLAYTIME) > -1 && checkquest(9223,PLAYTIME) > -1 && checkquest(12278,PLAYTIME) > -1)
+ set .@pass,1;
+ } else if (.@i%4 == 0) {
+ if (rand(1,100)%10 == 7)
+ set .@pass,1;
+ }
+ if (.@pass) {
if ($ma_name04$ == strcharinfo(0) || $ma_name05$ == strcharinfo(0) || $ma_name06$ == strcharinfo(0)) {
- donpcevent "Unidentified Creature#11::OnBingx2";
+ donpcevent strnpcinfo(0)+"::OnBingx2";
mes "The unidentified creature gets a glimpse of you, blushes and then disappears.";
close;
}
- set .@slot_name, rand(1,5);
- if (.@slot_name == 1 || .@slot_name == 3 || .@slot_name == 5) {
- set $ma_name06$,strcharinfo(0);
+ if (rand(1,5)%2) {
+ switch(.@i) {
+ case 2:
+ case 3:
+ case 4:
+ set $ma_name04$,strcharinfo(0);
+ break;
+ case 6:
+ case 7:
+ case 8:
+ set $ma_name05$,strcharinfo(0);
+ break;
+ case 10:
+ case 11:
+ set $ma_name06$,strcharinfo(0);
+ break;
+ }
}
- donpcevent "Unidentified Creature#11::OnBingx2";
+ donpcevent strnpcinfo(0)+"::OnBingx2";
mes "The unidentified creature gets a glimpse of you and disappears.";
close;
}
- donpcevent "Unidentified Creature#11::OnBingx2";
+ donpcevent strnpcinfo(0)+"::OnBingx2";
mes "The unidentified creature looks at you and runs away.";
close;
}
-
-malaya,227,311,4 script Grandma#ma01 575,{
-
+ma_fild01,109,116,4 duplicate(Unidentified Creature#j) Unidentified Creature#02 4_MAL_BUDIDAI,2,2
+ma_fild01,280,150,6 duplicate(Unidentified Creature#j) Unidentified Creature#03 4_MAL_BUDIDAI,2,2
+ma_fild01,309,221,6 duplicate(Unidentified Creature#j) Unidentified Creature#04 4_MAL_BUDIDAI,2,2
+ma_fild02,246,324,4 duplicate(Unidentified Creature#j) Unidentified Creature#06 4_MAL_BUDIDAI,2,2
+ma_fild02,71,296,6 duplicate(Unidentified Creature#j) Unidentified Creature#07 4_MAL_BUDIDAI,2,2
+ma_fild02,32,263,4 duplicate(Unidentified Creature#j) Unidentified Creature#08 4_MAL_BUDIDAI,2,2
+ma_scene01,158,139,4 duplicate(Unidentified Creature#j) Unidentified Creature#10 4_MAL_BUDIDAI,2,2
+ma_scene01,167,112,6 duplicate(Unidentified Creature#j) Unidentified Creature#11 4_MAL_BUDIDAI,2,2
+
+malaya,227,311,4 script Grandma#ma01 4_F_BARYO_OLD,{
if (malaya_hi < 10) {
mes "[Grandma]";
- mes "Youre not from around here? Take care of yourself.";
+ mes "You're not from around here? Take care of yourself.";
next;
mes "[Grandma]";
- mes "Im worried because my daughter-in-law is pregnant. I hope nothing goes wrong.";
+ mes "I'm worried because my daughter-in-law is pregnant. I hope nothing goes wrong.";
close;
- } else if ((malaya_hi > 9) && (malaya_hi < 20)) {
+ } else if (malaya_hi < 20) {
mes "[Grandma]";
mes "I heard there is an outsider that is helping the village.";
next;
@@ -1001,31 +285,16 @@ malaya,227,311,4 script Grandma#ma01 575,{
mes "Then my daughter-in-law will be safe.";
close;
}
- set .@name_tak01, rand(1,6);
- if (.@name_tak01 == 1){
- set .@name$,$ma_name01$;
- }else if (.@name_tak01 == 2){
- set .@name$,$ma_name02$;
- }else if (.@name_tak01 == 3){
- set .@name$,$ma_name03$;
- }else if (.@name_tak01 == 4){
- set .@name$,$ma_name04$;
- }else if (.@name_tak01 == 5){
- set .@name$,$ma_name05$;
- }else{
- set .@name$,$ma_name06$;
- }
- set .@name_tak02, rand(1,3);
- if (.@name_tak02 == 2) {
+ if (rand(1,3) == 2) {
mes "[Grandma]";
- mes "Heard there is this" + .@name$ + "that follows Meoneonuncle around.";
+ mes "Heard there is this "+getd("$ma_name0"+rand(1,6)+"$")+" that follows Meoneonuncle around.";
next;
mes "[Grandma]";
mes "I will cheer for their forbidden love.";
close;
}
mes "[Grandma]";
- mes "Im worried about my pregnant daughter-in-law. Hope Meoneonuncle wont bother her.";
+ mes "I'm worried about my pregnant daughter-in-law. Hope Meoneonuncle won't bother her.";
next;
select("Meoneonuncle?");
mes "[Grandma]";
@@ -1035,7 +304,7 @@ malaya,227,311,4 script Grandma#ma01 575,{
mes "Meoneonuncle was a woman who lived in Port Malaya long ago. She married a decent man and also had a baby.";
next;
mes "[Grandma]";
- mes "But happiness never lasts forever, right? The baby was miscarried from an accident,";
+ mes "But happiness never lasts forever, right? The baby was miscarried from an accident...";
next;
mes "[Grandma]";
mes "She eventually passed away after grieving over her lost baby for days.";
@@ -1045,25 +314,24 @@ malaya,227,311,4 script Grandma#ma01 575,{
mes "Meoneonuncle then started to appear in spirit and take away babies from pregnant women in the village.";
next;
mes "[Grandma]";
- mes "If you ever walk around Port Malaya at night.";
+ mes "If you ever walk around Port Malaya at night...";
next;
mes "[Grandma]";
- mes "and hear either tik-tik or wak-wak, be cautious because that is the sound of Meoneonuncles wings flapping.";
+ mes "And hear either tik-tik or wak-wak, be cautious because that is the sound of Meoneonuncle's wings flapping.";
close;
}
-malaya,189,263,4 script Drumming Young Man #ma02 578,{
-
+malaya,189,263,4 script Drumming Young Man#ma02 4_M_BARYO_MAN,{
if (malaya_hi < 10) {
emotion e_omg;
mes "[Drumming Young Man]";
- mes "Ugh... its just like that time before";
+ mes "Ugh... it's just like that time before...";
next;
emotion e_omg;
mes "[Drumming Young Man]";
- mes "when the moon was swallowed. Argh!";
+ mes "When the moon was swallowed. Argh!";
close;
- } else if ((malaya_hi > 9) && (malaya_hi < 20)) {
+ } else if (malaya_hi < 20) {
mes "[Drumming Young Man]";
mes "I think the village was saved by a nameless adventurer.";
next;
@@ -1072,24 +340,9 @@ malaya,189,263,4 script Drumming Young Man #ma02 578,{
mes "Phew... I thought Bakonawa appeared again.";
close;
}
- set .@name_tak01, rand(1,6);
- if (.@name_tak01 == 1){
- set .@name$,$ma_name01$;
- }else if (.@name_tak01 == 2){
- set .@name$,$ma_name02$;
- }else if (.@name_tak01 == 3){
- set .@name$,$ma_name03$;
- }else if (.@name_tak01 == 4){
- set .@name$,$ma_name04$;
- }else if (.@name_tak01 == 5){
- set .@name$,$ma_name05$;
- }else{
- set .@name$,$ma_name06$;
- }
- set .@name_tak02, rand(1,3);
- if (.@name_tak02 == 2) {
+ if (rand(1,3) == 2) {
mes "[Drumming Young Man]";
- mes "" + .@name$ + "is said to have stopped Bakonawa from swallowing the moon. Isnt it awesome? I'm so relieved.";
+ mes getd("$ma_name0"+rand(1,6)+"$")+" is said to have stopped Bakonawa from swallowing the moon. Isn't it awesome? I'm so relieved.";
close;
}
mes "[Drumming Young Man]";
@@ -1108,50 +361,34 @@ malaya,189,263,4 script Drumming Young Man #ma02 578,{
next;
select("Wow. What is it?");
mes "[Drumming Young Man]";
- mes "He is sensitive to noise so when hes about to swallow the moon!!";
+ mes "He is sensitive to noise so when he's about to swallow the moon!!";
next;
mes "[Drumming Young Man]";
- mes "Thats your chance!! It doesnt matter what kind of noise!! Whether its a caldron, symbol, drum, pot or fry pan, just keep on making noise.";
+ mes "That's your chance!! It doesn't matter what kind of noise!! Whether it's a caldron, symbol, drum, pot or fry pan, just keep on making noise.";
next;
mes "[Drumming Young Man]";
mes "Then Bakonawa will get surprised, spit out the moon and run away!";
next;
mes "[Drumming Young Man]";
- mes "Carry a drum around with you. Youll find it handy.";
+ mes "Carry a drum around with you. You'll find it handy.";
close;
}
-malaya,270,59,4 script Port Guard#ma03 570,{
-
+malaya,270,59,4 script Port Guard#ma03 4_MAL_SOLDIER,{
if (malaya_hi < 10) {
emotion e_swt2;
mes "[Port Guard]";
mes "The village is chaotic these days. Is it okay for me to be off like this?";
close;
- } else if ((malaya_hi > 9) && (malaya_hi < 20)) {
+ } else if (malaya_hi < 20) {
emotion e_no;
mes "[Port Guard]";
mes "The village is somewhat stable now but you should still be careful walking around at night.";
close;
}
- set .@name_tak01, rand(1,6);
- if (.@name_tak01 == 1){
- set .@name$,$ma_name01$;
- }else if (.@name_tak01 == 2){
- set .@name$,$ma_name02$;
- }else if (.@name_tak01 == 3){
- set .@name$,$ma_name03$;
- }else if (.@name_tak01 == 4){
- set .@name$,$ma_name04$;
- }else if (.@name_tak01 == 5){
- set .@name$,$ma_name05$;
- }else{
- set .@name$,$ma_name06$;
- }
- set .@name_tak02, rand(1,3);
- if (.@name_tak02 == 2) {
+ if (rand(1,3) == 2) {
mes "[Port Guard]";
- mes "" + .@name$ + "is said to escape from Bu waya alive after being captured. This person must be powerful.";
+ mes getd("$ma_name0"+rand(1,6)+"$")+" is said to escape from Buwaya alive after being captured. This person must be powerful.";
close;
}
emotion e_omg;
@@ -1159,89 +396,75 @@ malaya,270,59,4 script Port Guard#ma03 570,{
mes "What!! Port all clear!!";
next;
mes "[Port Guard]";
- mes "Huh? Youre not the captain? You scared me. Shoot! Ah, right! I received an official document for travelers.";
+ mes "Huh? You're not the captain? You scared me. Shoot! Ah, right! I received an official document for travelers.";
next;
select("What document?");
mes "[Port Guard]";
mes "It says that travelers should be careful of monsters when walking in the village at night.";
next;
mes "[Port Guard]";
- mes "Buwaya dont come to the village often but there are cases when they snatch people in the boxes they carry at night.";
+ mes "Buwaya don't come to the village often but there are cases when they snatch people in the boxes they carry at night.";
next;
mes "[Port Guard]";
mes "Huh?! And it says here that a monster named Wokwok especially visits the village often at night and should be avoided.";
next;
- if (select("I see.:Is there any way to prevent them from coming?") == 1) {
+ switch(select("I see.:Is there any way to prevent them from coming?")) {
+ case 1:
mes "[Port Guard]";
mes "Be careful at night!";
close;
+ case 2:
+ mes "[Port Guard]";
+ mes "They say you can attack Buwaya's weak point inside the box they carry if you ever get caught in one.";
+ next;
+ mes "[Port Guard]";
+ mes "And you should run into the nearest building when you hear Wokwoks wings fluttering from afar.";
+ next;
+ emotion e_hmm;
+ mes "[Port Guard]";
+ mes "But if the fluttering sound is small or if you don't hear anything, let's just say you should prepare for attack and wish for luck.";
+ close;
}
- mes "[Port Guard]";
- mes "They say you can attack Buwayas weak point inside the box they carry if you ever get caught in one.";
- next;
- mes "[Port Guard]";
- mes "And you should run into the nearest building when you hear Wokwoks wings fluttering from afar.";
- next;
- emotion e_hmm;
- mes "[Port Guard]";
- mes "But if the fluttering sound is small or if you dont hear anything, lets just say you should prepare for attack and with for luck.";
- close;
}
-malaya,88,252,4 script Little Girl #ma04 576,{
-
+malaya,88,252,4 script Little Girl#ma04 4_F_BARYO_GIRL,{
if (malaya_hi < 10) {
mes "[Little Girl]";
- mes "Im scared but I have to visit the fairy in the forest.";
+ mes "I'm scared but I have to visit the fairy in the forest.";
close;
- } else if ((malaya_hi > 9) && (malaya_hi < 20)) {
+ } else if (malaya_hi < 20) {
mes "[Little Girl]";
mes "He he. Father said I can visit the fairy in the forest when the village calms down.";
close;
}
- set .@name_tak01, rand(1,6);
- if (.@name_tak01 == 1){
- set .@name$,$ma_name01$;
- }else if (.@name_tak01 == 2){
- set .@name$,$ma_name02$;
- }else if (.@name_tak01 == 3){
- set .@name$,$ma_name03$;
- }else if (.@name_tak01 == 4){
- set .@name$,$ma_name04$;
- }else if (.@name_tak01 == 5){
- set .@name$,$ma_name05$;
- }else{
- set .@name$,$ma_name06$;
- }
- set .@name_tak02, rand(1,3);
- if (.@name_tak02 == 2) {
+ if (rand(1,3) == 2) {
+ set .@name$, getd("$ma_name0"+rand(1,6)+"$");
mes "[Little Girl]";
- mes "A little while ago" + .@name$ + "came and told me a fun story.";
+ mes "A little while ago "+.@name$+" came and told me a fun story.";
next;
mes "[Little Girl]";
mes "'I planted a pair of pear trees in the yard.'";
- mes "He he. Isnt it fun?" + .@name$ + "seems like a fun person.";
+ mes "He he. Isn't it fun? "+.@name$+" seems like a fun person.";
close;
}
mes "[Little Girl]";
- mes "Father said I wont catch skin diseases once Im friends with the fairy from the forest.";
+ mes "Father said I won't catch skin diseases once I'm friends with the fairy from the forest.";
next;
select("What is this fairy?");
mes "[Little Girl]";
- mes "Encanto! Encanto fairies live in big trees or rocks in the forest. There are boy fairies and girl fairies,";
+ mes "Encan'to! Encan'to fairies live in big trees or rocks in the forest. There are boy fairies and girl fairies...";
next;
mes "[Little Girl]";
- mes "but boy fairies are prettier. Why is that?";
+ mes "But boy fairies are prettier. Why is that?";
close;
}
-malaya,219,92,6 script Little Kid#ma05 577,{
-
+malaya,219,92,6 script Little Kid#ma05 4_M_BARYO_BOY,{
if (malaya_hi < 10) {
mes "[Little Kid]";
mes "My mom told me not to play outside because its dangerous. Why?";
close;
- } else if ((malaya_hi > 9) && (malaya_hi < 20)) {
+ } else if (malaya_hi < 20) {
mes "[Little Kid]";
mes "My mom told me I can play but only in Port Malaya.";
next;
@@ -1249,30 +472,15 @@ malaya,219,92,6 script Little Kid#ma05 577,{
mes "He he. But I never thought of going outside of Port Malaya.";
close;
}
- set .@name_tak01, rand(1,6);
- if (.@name_tak01 == 1){
- set .@name$,$ma_name01$;
- }else if (.@name_tak01 == 2){
- set .@name$,$ma_name02$;
- }else if (.@name_tak01 == 3){
- set .@name$,$ma_name03$;
- }else if (.@name_tak01 == 4){
- set .@name$,$ma_name04$;
- }else if (.@name_tak01 == 5){
- set .@name$,$ma_name05$;
- }else{
- set .@name$,$ma_name06$;
- }
- set .@name_tak02, rand(1,3);
- if (.@name_tak02 == 2) {
+ if (rand(1,3) == 2) {
mes "[Little Kid]";
mes "I heard someone took Jejelings hat in Baryo Mahiwaga.";
next;
mes "[Little Kid]";
- mes "Why would someone steal a monsters hat?" + .@name$ + "must be desperate.";
+ mes "Why would someone steal a monster's hat? "+getd("$ma_name0"+rand(1,6)+"$")+" must be desperate.";
next;
mes "[Little Kid]";
- mes "Oh wait! This was suppose to be a secret. Shsh! Please pretend you didnt hear me.";
+ mes "Oh wait! This was suppose to be a secret. Shsh! Please pretend you didn't hear me.";
close;
}
mes "[Little Kid]";
@@ -1289,8 +497,7 @@ malaya,219,92,6 script Little Kid#ma05 577,{
close;
}
-malaya,363,283,4 script Local#ma06 582,{
-
+malaya,363,283,4 script Local#ma06 4_M_MALAYA,{
if (malaya_hi < 10) {
mes "[Local]";
mes "Hmm... is it time to be careful of the witches' curse?";
@@ -1298,7 +505,7 @@ malaya,363,283,4 script Local#ma06 582,{
mes "[Local]";
mes "Beware of Mongkukurums needle, foreigner.";
close;
- } else if ((malaya_hi > 9) && (malaya_hi < 20)) {
+ } else if (malaya_hi < 20) {
mes "[Local]";
mes "Welcome to Port Malaya, foreigner..";
next;
@@ -1306,37 +513,27 @@ malaya,363,283,4 script Local#ma06 582,{
mes "The village is chaotic these days. If you see someone with red eyes, try not to stare at their eyes.";
close;
}
- set .@name_tak01, rand(1,6);
- if (.@name_tak01 == 1){
- set .@name$,$ma_name01$;
- }else if (.@name_tak01 == 2){
- set .@name$,$ma_name02$;
- }else if (.@name_tak01 == 3){
- set .@name$,$ma_name03$;
- }else if (.@name_tak01 == 4){
- set .@name$,$ma_name04$;
- }else if (.@name_tak01 == 5){
- set .@name$,$ma_name05$;
- }else{
- set .@name$,$ma_name06$;
- }
- set .@name_tak02, rand(1,6);
- if (.@name_tak02 == 1) {
+ set .@name$, getd("$ma_name0"+rand(1,6)+"$");
+ switch(rand(1,6)) {
+ case 1:
mes "[Local]";
- mes "Be careful walking around the village at night." + .@name$ + "was taken down by Wokwok.";
+ mes "Be careful walking around the village at night. "+.@name$+" was taken down by Wokwok.";
close;
- } else if (.@name_tak02 == 2) {
+ case 2:
mes "[Local]";
- mes "" + .@name$ + "is said to successfully tame a Tikbalang. This person must be courageous. Wonder if Ill get to see this tamed Tikbalang? Çѹø º¸°í ½ÍÀºµ¥..";
+ mes .@name$+" is said to have successfully tamed a Tikbalang. This person must be courageous. Wonder if I'll get to see this tamed Tikbalang?";
close;
- } else if (.@name_tak02 == 3) {
+ case 3:
mes "[Local]";
- mes "Have you ever seen Bongisungisu? I heard" + .@name$ + "is hunting down Bongisungisus.";
+ mes "Have you ever seen Bongisungisu? I heard "+.@name$+" is hunting down Bongisungisus.";
close;
- } else if (.@name_tak02 == 4) {
+ case 4:
mes "[Local]";
- mes "If you plan to go out of the village, be careful of Tiucknuc" + .@name$ + "is said to be tricked by Tiucknuc and had to go to the to the hospital.";
+ mes "If you plan to go out of the village, be careful of Tiucknuc. "+.@name$+" is said to be tricked by Tiucknuc and had to go to the hospital.";
close;
+ case 5:
+ case 6:
+ break;
}
mes "[Local]";
mes "The village is chaotic these days. Looks like Mongkukurum is back in the village.";
@@ -1363,38 +560,22 @@ malaya,363,283,4 script Local#ma06 582,{
close;
}
-malaya,41,127,6 script Old Man #ma07 574,{
-
+malaya,41,127,6 script Old Man #ma07 4_M_BARYO_OLD,{
if (malaya_hi < 10) {
mes "[Old Man]";
mes "Foreigners are not welcomed that much when our village is chaotic like these days.";
close;
- } else if ((malaya_hi > 9) && (malaya_hi < 20)) {
+ } else if (malaya_hi < 20) {
mes "[Old Man]";
mes "You are out of luck visiting the village at a time like this and not being welcomed.";
close;
}
- set .@name_tak01, rand(1,6);
- if (.@name_tak01 == 1){
- set .@name$,$ma_name01$;
- }else if (.@name_tak01 == 2){
- set .@name$,$ma_name02$;
- }else if (.@name_tak01 == 3){
- set .@name$,$ma_name03$;
- }else if (.@name_tak01 == 4){
- set .@name$,$ma_name04$;
- }else if (.@name_tak01 == 5){
- set .@name$,$ma_name05$;
- }else{
- set .@name$,$ma_name06$;
- }
- set .@name_tak02, rand(1,3);
- if (.@name_tak02 == 2) {
+ if (rand(1,3) == 2) {
mes "[Old Man]";
- mes "" + .@name$ + "is said to throw out Jellopy in this village.";
+ mes getd("$ma_name0"+rand(1,6)+"$")+" is said to throw out Jellopy in this village.";
next;
mes "[Old Man]";
- mes "Tsk, tsk... Must be a person that isnt worthy of a Jellopy.";
+ mes "Tsk, tsk... Must be a person that isn't worthy of a Jellopy.";
close;
}
mes "[Old Man]";
@@ -1405,82 +586,65 @@ malaya,41,127,6 script Old Man #ma07 574,{
next;
select("What happens?");
mes "[Old Man]";
- mes "Well, for a Bangungot, it means losing its home so they get revengeful.";
+ mes "Well, for a Bangungot, it means losing its home so they get vengeful.";
next;
mes "[Old Man]";
mes "When you try to sleep near the pillar, it will keep awake by playing pranks at first.";
next;
mes "[Old Man]";
- mes "But as time goes by and their vengeance grow, they sit on top of you until you suffocate.";
+ mes "But as time goes by and their vengeance grows, they sit on top of you until you suffocate.";
next;
select("Oh, gosh...");
mes "[Old Man]";
- mes "Ha ha ha. There are no Bangungots in normal pillars, so don't lose sleep on it.";
+ mes "Ha ha ha. There are no Bangungots in normal pillars, so don't lose sleep over it.";
close;
}
-malaya,63,185,4 script Woman#ma08 583,{
-
+malaya,63,185,4 script Woman#ma08 4_F_MALAYA,{
if (malaya_hi < 10) {
mes "[Woman]";
- mes "I dont have anything to share with you.";
+ mes "I don't have anything to share with you.";
close;
- } else if ((malaya_hi > 9) && (malaya_hi < 20)) {
+ } else if (malaya_hi < 20) {
mes "[Woman]";
- mes "Im worried about the children. I hope they arent terrified from whats going on in the village.";
+ mes "Im worried about the children. I hope they aren't terrified from whats going on in the village.";
close;
}
- set .@name_tak01, rand(1,6);
- if (.@name_tak01 == 1){
- set .@name$,$ma_name01$;
- }else if (.@name_tak01 == 2){
- set .@name$,$ma_name02$;
- }else if (.@name_tak01 == 3){
- set .@name$,$ma_name03$;
- }else if (.@name_tak01 == 4){
- set .@name$,$ma_name04$;
- }else if (.@name_tak01 == 5){
- set .@name$,$ma_name05$;
- }else{
- set .@name$,$ma_name06$;
- }
- set .@name_tak02, rand(1,3);
- if (.@name_tak02 == 2) {
- set .@nongdum, rand(1,10);
- if (.@nongdum == 1) {
+ if (rand(1,3) == 2) {
+ set .@name$, getd("$ma_name0"+rand(1,6)+"$");
+ set .@rand, rand(1,10);
+ if (.@rand < 5) {
mes "[Woman]";
- mes "I like fun stories. Not so long ago," + .@name$ + "came and told me a funny story.";
+ mes "I like fun stories. Not so long ago, "+.@name$+" came and told me a funny story.";
next;
+ }
+ switch(.@rand) {
+ case 1:
mes "[Woman]";
mes "'My aunt stepped on an ant.'";
next;
- } else if (.@nongdum == 2) {
- mes "[Woman]";
- mes "I like fun stories. Not so long ago" + .@name$ + "came and told me a funny story.";
- next;
+ break;
+ case 2:
mes "[Woman]";
mes "'You eat chili on a chilly day.'";
next;
- } else if (.@nongdum == 3) {
- mes "[Woman]";
- mes "I like fun stories. Not so long ago" + .@name$ + "came and told me a funny story.";
- next;
+ break;
+ case 3:
mes "[Woman]";
mes "'Why are you putting flour on that flower?'";
next;
- } else if (.@nongdum == 4) {
- mes "[Woman]";
- mes "I like fun stories. Not so long ago" + .@name$ + "came and told me a funny story.";
- next;
+ break;
+ case 4:
mes "[Woman]";
mes "At the Tool Store, 'Ill buy the needle and thread! You buy the hay to lose the needle in.'";
next;
mes "[Woman]";
- mes "said that and was kicked out of the Tool Store.";
+ mes .@name$+" said that and was kicked out of the Tool Store.";
next;
- } else if (.@nongdum == 5) {
+ break;
+ case 5:
mes "[Woman]";
- mes "A Kafra Employee Im friends with told me a story about a customer.";
+ mes "A Kafra Employee I'm friends with told me a story about a customer.";
next;
mes "[Woman]";
mes "'Kafra, the wise never marry and when they marry, they become otherwise.'";
@@ -1488,16 +652,16 @@ malaya,63,185,4 script Woman#ma08 583,{
mes "[Woman]";
mes "He he... I do like funny stories but a bit difficult for my taste.";
close;
- } else {
+ default:
mes "[Woman]";
- mes "I like fun stories. Oh by the way!" + .@name$ + ", love is photogenic. Dont you agree?";
+ mes "I like fun stories. Oh by the way! "+.@name$+", love is photogenic. Don't you agree?";
next;
mes "[Woman]";
mes "It needs darkness to develop.";
next;
}
mes "[Woman]";
- mes "He he. Isnt it fun?";
+ mes "He he. Isn't it fun?";
close;
}
mes "[Woman]";
@@ -1512,9 +676,257 @@ malaya,63,185,4 script Woman#ma08 583,{
next;
select("Sounds like a sneaky monster.");
mes "[Woman]";
- mes "Yes, this monster is bad to trick the kindness of travelers but,";
+ mes "Yes, this monster is bad to trick the kindness of travelers but...";
next;
mes "[Woman]";
- mes "there is rumor that the monster came from the soul of a baby that never been born. So sad.";
+ mes "There is rumor that the monster came from the soul of a baby that never been born. So sad.";
close;
-} \ No newline at end of file
+}
+
+// Jeepneys
+//============================================================
+function script F_Malaya_Jeepney {
+ .@mapname$ = getarg(0);
+ .@passengers = getarg(1);
+
+ // set the other messages of varying amount)
+ for (.@i = 5; .@i < getargcount(); .@i++) {
+ setd(".@msgJeepneyInfo$[" + (.@i - 5) + "]", getarg(.@i));
+ }
+
+ if (malaya_hi < 10) {
+ mes "[Jeepney Driver]";
+ mes getarg(2);
+ close;
+ } else if ((malaya_hi >= 10) && (malaya_hi < 20)) {
+ mes "[Jeepney Driver]";
+ mes getarg(3);
+ close;
+ } else {
+ mes "[Jeepney Driver]";
+ mes getarg(4);
+ next;
+ }
+ switch(select("Board [Passenger " + getmapusers(.@mapname$) + "/" + .@passengers +"]:Jeepney?:Are there any other Jeepneys?:Ah... Yes...")) {
+ case 1:
+ if (getmapusers(.@mapname$) >= .@passengers) {
+ mes "[Jeepney Driver]";
+ mes "I'm afraid the Jeepney is full.";
+ mes "I'm sorry but how about some other Jeepney?";
+ close;
+ } else {
+ mes "[Jeepney Driver]";
+ mes "Have a nice day.";
+ close2;
+ warp .@mapname$,29,24;
+ end;
+ }
+ case 2:
+ // iterate through all the jeepney information for this specific NPC
+ for (.@i = 0; .@i < getarraysize(.@msgJeepneyInfo$); .@i++) {
+ mes "[Jeepney Driver]";
+ mes getd(".@msgJeepneyInfo$[" + .@i + "]");
+
+ if (.@i < (getarraysize(.@msgJeepneyInfo$) - 1)) {
+ next;
+ }
+ }
+ close;
+ case 3:
+ mes "[Jeepney Driver]";
+ mes "Oh! Other Jeepneys are in operation, of course.";
+ next;
+ mes "[Jeepney Driver]";
+ mes "In Port Malaya there are 12, 30 and 60 passenger Jeepneys with 3 each operating.";
+ next;
+ mes "[Jeepney Driver]";
+ mes "Would you like to know the location of other cars?";
+ next;
+ switch (select("I'd like to know where the 12 passenger car is.:I'd like to know where the 30 passenger car is.:I'd like to know where the 60 passenger car is.")) {
+ case 1:
+ viewpoint 1, 237, 240, 1, 0xF7E009;
+ viewpoint 1, 67 , 44 , 2, 0xF7E009;
+ viewpoint 1, 282, 129, 3, 0xF7E009;
+ set .@zif_in, 12;
+ break;
+ case 2:
+ viewpoint 1, 134, 250, 4, 0xF7E009;
+ viewpoint 1, 341, 153, 5, 0xF7E009;
+ viewpoint 1, 293, 290, 6, 0xF7E009;
+ set .@zif_in, 30;
+ break;
+ case 3:
+ viewpoint 1, 242, 221, 7, 0xF7E009;
+ viewpoint 1, 62 , 245, 8, 0xF7E009;
+ viewpoint 1, 257, 58 , 9, 0xF7E009;
+ set .@zif_in, 60;
+ break;
+ }
+ mes "[Jeepney Driver]";
+ mes .@zif_in+" passenger Jeepney's location has been marked on your map.";
+ next;
+ break;
+ }
+ mes "[Jeepney Driver]";
+ mes "Have a nice trip.";
+ close;
+}
+
+malaya,237,240,4 script Jeepney Driver#01 4_M_MALAYA,{
+ callfunc(
+ "F_Malaya_Jeepney",
+ "ma_zif01",
+ 12,
+
+ // Messages for malaya_hi checks.
+ "UUrgghhhh.... I'm scared... so scared... what happened to this place?",
+ "The place is still a mess... I wonder if I can operate a jeepney here...",
+ "Ha ha ha Welcome. I am ^1561EAVol^000000, operating the 12 man Jeepney here.",
+
+ // Monologues of variable lengths.
+ "Is this your first time in Port Malaya?",
+ "Jeepney drivers here also promote Jeepneys, so let me explain them to you.",
+ "Jeepneys were first developed to transport goods quickly, but are now used as public transport.",
+ "Since everybody has different tastes, you can see those with cool and elaborate decorations.",
+ "Of course you don't need to drive them yourselves, but you can ride them so please feel free to do so."
+ );
+}
+
+malaya,67,44,4 script Jeepney Driver#02 4_M_MALAYA,{
+ callfunc(
+ "F_Malaya_Jeepney",
+ "ma_zif02",
+ 12,
+
+ "Wha... What's... Going on in that hospital...",
+ "I think the moaning coming from the hospital has lessened...",
+ "I'm ^1561EAChui^000000, operating a 12 man Jeepney. Hi there~",
+
+ "Is this your first time in Port Malaya?",
+ "Jeepney drivers here also promote Jeepneys, so let me explain them to you.",
+ "Jeepneys were first developed to transport goods quickly, but are now used as public transport.",
+ "I modified my Jeepney myself...",
+ "For safety reasons there's a limit to the number of passengers, and it's safe so no worries..."
+ );
+}
+
+malaya,282,129,4 script Jeepney Driver#03 4_M_MALAYA,{
+ callfunc(
+ "F_Malaya_Jeepney",
+ "ma_zif03",
+ 12,
+
+ "It's not good for outsiders to have a chat... Perhaps the Mumbaki Leader may have the solution for this.",
+ "Are you the adventurer who recently met Mumbaki? No wait... Then you shouldn't be here... Yes it's a ghost... Arghhhh...",
+ "The name's ^1561EATop^000000, operating one of the 3 12 man Jeepneys in town.",
+
+ "First time in town?",
+ "Jeepney drivers here also promote Jeepneys, so let me explain them to you.",
+ "Jeepneys were first developed to transport goods quickly, but are now used as public transport.",
+ "They all look different depending on their drivers...",
+ "Now it is the fame of Port Malaya."
+ );
+}
+
+malaya,134,250,6 script Jeepney Driver#04 4_M_MALAYA,{
+ callfunc(
+ "F_Malaya_Jeepney",
+ "ma_zif04",
+ 30,
+
+ "G...Go... Go away...",
+ "Arghh... Scared the devil out of me... Go away... Shoo...",
+ "^1561EABrav^000000, 30 man Jeepney driver at your service, driving as safely as I can since I get scared easily.",
+
+ "Is this your first time in Port Malaya?",
+ "Jeepneys were first developed to transport goods quickly, but are now used as public transport.",
+ "The modified cars are decorated by their operators.",
+ "You come to Port Malaya, you must ride a Jeepney.",
+ "Ha ha ha, of course you can't drive it yourself."
+ );
+}
+
+malaya,341,153,4 script Jeepney Driver#05 4_M_MALAYA,{
+ callfunc(
+ "F_Malaya_Jeepney",
+ "ma_zif05",
+ 30,
+
+ "G... Ghosts in town... Hey... Do you have one on you?",
+ "I think there are fewer ghosts now... The town is slightly quieter...",
+ "Hi I'm ^1561EALivil^000000 operator for the 30 man Jeepney. Safety is my priority.",
+
+ "First time in town?",
+ "I'll give you a quick guide as a service.",
+ "Jeepneys were first developed to transport goods quickly, but are now used as public transport.",
+ "For safety reasons, Jeepneys have a limit on the number of passengers.",
+ "Some carried 180 people, but there aren't any of those in Port Malaya today."
+ );
+}
+
+malaya,293,290,6 script Jeepney Driver#06 4_M_MALAYA,{
+ callfunc(
+ "F_Malaya_Jeepney",
+ "ma_zif06",
+ 30,
+
+ "Gu... Guards... What are the guards doing...",
+ "Did the guards finally do something? Phew... What a rush...",
+ "I'm ^1561EAGad^000000, the trustworthy 30 man Jeepney driver.",
+
+ "I see you're new to this town.",
+ "To guide travelers is also my task!! Let me explain.",
+ "Jeepneys were goods transport vehicles, now decorated and modified with Port Malaya's new technology!!",
+ "This Jeepney is my very own handiwork. Ha ha ha... It's cool right? Ha ha ha",
+ "Even though the customer is king, I can't let you drive it... Ha ha ha"
+ );
+}
+
+malaya,242,221,4 script Jeepney Driver#07 4_M_MALAYA,{
+ callfunc(
+ "F_Malaya_Jeepney",
+ "ma_zif07",
+ 60,
+
+ "Oh no... I think the whole village is bewitched by ghosts... Maybe... I should give the Mumbaki Leader a visit...",
+ "Ghost... I'm sure the Mumbaki Leader knows how to get rid of these ghosts...",
+ "^1561EAHott^000000, at your service, the safest 60 man Jeepney Operator.",
+
+ "Jeepney is the public transportation of Port Malaya.",
+ "Therefore they are everywhere. And it's free! I know they all have different passenger limits, but that's no problem because they're everywhere."
+ );
+}
+
+malaya,62,245,6 script Jeepney Driver#08 4_M_MALAYA,{
+ callfunc(
+ "F_Malaya_Jeepney",
+ "ma_zif08",
+ 60,
+
+ "Shoo~ Be gone if you're a ghost, and go away even if you're human~ Shoo~",
+ "Hey... You... Are human right? Right? Huh? Say you are... Please...",
+ "Hullo, I'm ^1561EAMuyan^000000, operator of this 60 man Jeepney. Nice to meet you.",
+
+ "Jeepneys are public transport, so safety is our priority.",
+ "My Jeepney received the best class of Port Malaya, a '60 man Jeepney' certificate.",
+ "Meaning!! That it is perfectly safe!! Don't you worry about the ride."
+ );
+}
+
+malaya,257,58,6 script Jeepney Driver#09 4_M_MALAYA,{
+ callfunc(
+ "F_Malaya_Jeepney",
+ "ma_zif09",
+ 60,
+
+ "...You're an outsider... Don't go touching anything and be careful in town...",
+ "The town is still quite dangerous. Best not touch anything until it is safe.",
+ "Hi there. I'm ^1561EAGramma^000000, Operator of the 60 man Jeepney of Port Malaya.",
+
+ "Is this your first time in Port Malaya?",
+ "We Jeepney drivers here also promote Jeepneys, so let me explain them to you.",
+ "Jeepneys were first developed to transport goods quickly, but are now used as public transport.",
+ "Since everybody have different tastes, you can see those with cool and elaborate decorations.",
+ "Of course you don't need to drive them yourselves, but you can ride them so please feel free to do so."
+ );
+}
diff --git a/npc/re/cities/mora.txt b/npc/re/cities/mora.txt
index 80c1af43c..5fefc2059 100644
--- a/npc/re/cities/mora.txt
+++ b/npc/re/cities/mora.txt
@@ -1,321 +1,1186 @@
//===== Hercules Script ======================================
//= Mora Village
-//===== By: ==================================================
-//= SuperHulk
-//===== Current Version: =====================================
-//= 1.2
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== By: ==================================================
+//= Euphy
+//===== Current Version: =====================================
+//= 1.4
+//===== Description: =========================================
+//= [Official Conversion]
//= Mora Town Script
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First version. [SuperHulk]
//= 1.1 Translations to English. [Flaid]
//= 1.1a Standardized. [Euphy]
//= 1.2 Added new NPCs. [Flaid]
-//============================================================
+//= 1.3 Replaced with full iRO town NPCs. [Euphy]
+//= 1.4 Updated to match the official scripts. [Euphy]
+//============================================================
-mora,185,163,5 script Mora Citizen#1 516,{
- mes "[Scholar Gary]";
- mes "Hello, traveler!";
- mes "I'm Gary, the expert about enchantments in this area.";
- mes "What do you want to know?";
+// Set 1 :: mora_resident
+//============================================================
+mora,52,138,5 script Mungmung#p 4_M_RAFLE_GR,{
+ mes "[Mungmung]";
+ mes "I'm not the innkeeper!";
+ mes "Why do people want to pay me when they see me?";
+ close;
+}
+
+mora,160,123,3 script Nemnem#p 4_M_RAFLE_OLD,{
+ mes "[Nemnem]";
+ mes "My pain is getting worse and worse";
+ mes "since the crevice appeared in Bifrost.";
+ mes "Are you responsible for it, young one?";
+ next;
+ switch(select("Of course I am!:That's an unfair accusation!")) {
+ case 1:
+ mes "[Nemnem]";
+ mes "Bra~vo!";
+ emotion e_awsm;
+ close;
+ case 2:
+ mes "[Nemnem]";
+ mes "If not, never mind!";
+ emotion e_swt2,1;
+ close;
+ }
+}
+
+mora,105,104,3 script Boaster#podo 4_M_DOGTRAVELER2,{
+ mes "[Boaster]";
+ mes "So the situation";
+ mes "was at its worst.";
+ next;
+ mes "[Raffles]";
+ mes "Oh~!";
+ next;
+ mes "[Boaster]";
+ mes "Bored to death, I started to cry.";
+ mes "Then I fell asleep, tired from all the crying.";
+ mes "And when I woke up,";
+ mes "I was even more bored";
+ mes "than before!";
+ next;
+ mes "[Raffles]";
+ mes "Oh, oh!";
+ mes "That's terrible, so terrible.";
+ mes "How could that happen?!";
+ next;
+ mes "[Boaster]";
+ mes "So the situation got";
+ mes "more and more serious...";
+ mes "Now give me some more coins.";
+ emotion e_swt2,1;
+ close;
+}
+
+mora,105,100,1 script Rangrang#p 4_F_RAFLE_PK,{
+ mes "[Rangrang]";
+ mes "I've never heard such a boring and sad story.";
+ mes "I feel like crying!";
+ close;
+}
+
+/*
+// Disabled due to overlapping with RangRang,
+// and is not clickable on official servers.
+mora,105,100,1 script Gurgur#p 4_M_RAFLE_GR,{
+ mes "[Gurgur]";
+ mes "He's been crying, falling asleep,";
+ mes "and then waking up for 210 times now.";
+ mes "Isn't it just so original?";
+ mes "I wonder how the story will end.";
+ close;
+}
+*/
+
+mora,99,100,7 script Decoy#podo 4_F_DOGTRAVELER,{
+ mes "[A Decoy]";
+ mes "Oh~!";
+ mes "That's just so";
+ mes "unbelievable!";
+ mes "I'm so curious, let's give him some coins!";
+ close;
+}
+
+mora,98,104,5 script Moved Raffle#podo 4_M_RAFLE_GR,{
+ mes "[Moved Raffle]";
+ mes "This is sad, too sad!";
+ mes "I'm not sure why,";
+ mes "but it must be sad";
+ mes "because everybody else says so.";
+ close;
+}
+
+mora,102,107,5 script Relieved Raffle#podo 4_M_RAFLE_OLD,{
+ mes "[Relieved Raffle]";
+ mes "Wow~!";
+ mes "This is exciting.";
+ mes "He woke up safe and sound again!";
+ mes "Well, I'm sure he will next time!";
+ mes "...";
+ next;
+ mes "[Relieved Raffle]";
+ mes "Eh?";
+ close;
+}
+
+mora,101,107,5 script Excited Raffle#podo 4_F_RAFLE_PK,{
+ mes "[Excited Raffle]";
+ mes "Wow~";
+ mes "The story is no fun at all.";
+ mes "Wow~!";
+ mes "But it's as if we were singing in chorus -";
+ mes "it's really fun.";
+ mes "Wow~!";
+ close;
+}
+
+mora,103,100,5 script Impressed Raffle#podo 4_F_RAFLE_PK,{
+ mes "[Impressed Raffle]";
+ mes "Wow! Wow!";
+ close;
+}
+
+mora,123,94,7 script Visitor to Mora#podo1 4_F_DOGTRAVELER,{
+ mes "[Visitor to Mora]";
+ mes "I'm stuck here because of the crevice, which appeared out of nowhere.";
+ mes "Ha......";
+ close;
+}
+
+mora,155,72,3 script Visitor to Mora#podo2 4_M_DOGTRAVELER,{
+ mes "[Visitor to Mora]";
+ mes "Isn't this one cheerful village?";
+ mes "With Bifrost blocked like that, I'm thinking of settling here permanently.";
+ close;
+}
+
+mora,184,169,5 script Worker#mo1 4_M_RAFLE_GR,{
+ mes "[Worker]";
+ mes "I heard that somebody made it out of the Labyrinth Forest alive.";
+ mes "Whoever it is, I want to meet this person myself.";
+ close;
+}
+
+mora,179,155,1 script Novice Worker#mo 4_M_RAFLE_GR,{
+ mes "[Novice Worker]";
+ mes "I'll come out of the Labyrinth Forest and become a hero!";
+ next;
+ mes "[Indifferent Worker]";
+ mes "I hear somebody already did that.";
+ next;
+ mes "[Novice Worker]";
+ mes "What if I say I'm that somebody?";
+ next;
+ mes "[Indifferent Worker]";
+ mes "Forget it. It's more believable";
+ mes "to say I did it.";
+ next;
+ mes "[Novice Worker]";
+ mes "Well, that's true.";
+ close;
+}
+
+mora,177,157,5 script Indifferent Worker#mo 4_F_RAFLE_PK,{
+ mes "[Novice Worker]";
+ mes "I'll come out of the Labyrinth Forest and become a hero!";
+ next;
+ mes "[Indifferent Worker]";
+ mes "I hear somebody already did that.";
+ next;
+ mes "[Novice Worker]";
+ mes "What if I say I'm that somebody?";
+ next;
+ mes "[Indifferent Worker]";
+ mes "Forget it. It's more believable";
+ mes "to say I did it.";
+ next;
+ mes "[Novice Worker]";
+ mes "Well, that's true.";
+ close;
+}
+
+mora,108,182,5 script Worker#mo4 4_M_RAFLE_GR,{
+ mes "[Worker]";
+ mes "Stay clear of the Labyrinth Forest.";
+ mes "Don't ever dream of peeking in out of curiosity.";
+ mes "Lots of travelers have gone missing after going there.";
+ close;
+}
+
+// Set 2 :: npc
+//============================================================
+mora,122,97,6 script Relaxing Raffle#ep14_1 4_M_RAFLE_OLD,{
+ mes "[Relaxing Rafflesia]";
+ mes "The public bath in the center of the village is a symbol of Mora Village.";
+ next;
+ mes "[Relaxing Rafflesia]";
+ mes "It's not just a simple puddle.";
+ mes "It has tremendous power";
+ mes "to heal wounds.";
+ next;
+ mes "[Relaxing Rafflesia]";
+ mes "Try walking in the bath";
+ mes "if you want to see for yourself.";
+ mes "It will slowly but surely heal your wounds.";
+ close;
+}
+
+mora,174,171,0 script Warehouse Worker#mo1 4_F_RAFLE_PK,{
+ mes "[Shortffle]";
+ mes "I want to climb the ladder,";
+ mes "but my legs are too short to do that.";
+ emotion e_sob;
next;
- switch(select("Fundamentals of enchantment.:Nothing.")) {
+ mes "[Shortffle]";
+ mes "I wonder who brought it here.";
+ close;
+}
+
+mora,113,185,4 script Reading Raffle#ep14_1 4_M_RAFLE_GR,{
+ mes "You see a Rafflesia";
+ mes "lost in reading.";
+ next;
+ switch(select("See what he's reading.:Leave him alone.")) {
case 1:
- mes "[Scholar Gary]";
- mes "Ah, I see that you are interested";
- mes "in enchantments!";
- mes "Alright, here are the basics!!";
- mes "After this you should understand";
- mes "the mysteries of our enchantments!";
+ mes "Curious about what he's reading,";
+ mes "you quietly approach him from behind.";
+ mes "The Rafflesia is reading in a low voice.";
+ next;
+ mes "[Reading Rafflesia]";
+ mes "Seiren was going to Eremes's.";
+ mes "He was going there to borrow";
+ mes "Eremes's reference books,";
+ next;
+ mes "[Reading Rafflesia]";
+ mes "but he also hoped to see";
+ mes "his beautiful sister, Seiren.";
+ mes "Seiren knocked on Eremes's door";
+ mes "with his heart pounding.";
next;
- mes "[Scholar Gary]";
- mes "First of all, you must know";
- mes "that this is magic, not an";
- mes "exact science.";
+ mes "[Reading Rafflesia]";
+ mes "Knock! Knock! Knock!";
+ mes "Excuse me. Is anybody there?";
+ mes "... ... ...";
+ mes "He doesn't hear anything.";
next;
- mes "[Scholar Gary]";
- mes "You don't really know what will";
- mes "happen. You can be lucky or";
- mes "unlucky, and get a more or";
- mes "less powerful enchantment.";
+ mes "[Reading Rafflesia]";
+ mes "Is there nobody home?";
+ mes "He knocked again,";
+ mes "afraid that he might have";
+ mes "made the trip for nothing.";
next;
- mes "[Scholar Gary]";
- mes "You can miss the magic, too!";
- mes "If this happens while your equip";
- mes "is being enchanted, you'll lose it";
- mes "all previous enchantments, cards, and the refine!";
+ mes "[Reading Rafflesia]";
+ mes "Knock! Knock! Knock!";
+ mes "No answer again. Is there nobody home?";
+ mes "He knew it was rude to do that,";
+ mes "but he decided to enter anyway";
+ mes "and wait for Eremes to come back home.";
next;
- mes "[Scholar Gary]";
- mes "There is also a risk of";
- mes "breaking your equipment";
- mes "while trying to enchant";
- mes "your equip with a second enchantment!";
+ mes "[Reading Rafflesia]";
+ mes "Seiren opened the front door";
+ mes "with his heart throbbing.";
+ mes "*squeak*";
+ mes "The door wasn't locked.";
+ mes "Eremes seems to be away for a while.";
next;
- mes "[Scholar Gary]";
- mes "Each attempt to enchant will cost";
- mes "you 1 Mora coin and 100,000 zeny.";
- mes "If you don't know yet, the money";
- mes "made with this service goes";
- mes "straight to the people of Mora!";
+ mes "[Reading Rafflesia]";
+ mes "Seiren entered the house hesitantly.";
+ mes "The moment he stepped into the house,";
+ mes "he heard a sound of water running.";
next;
- mes "[Scholar Gary]";
- mes "Those were the basics.";
- mes "Take them to your heart.";
- mes "For more details, you can";
- mes "always visit my master,";
- mes "Gougueulé Tonami!";
+ mes "[Reading Rafflesia]";
+ mes "Seiren suddenly came to his senses,";
+ mes "and turned back to go out.";
+ mes "But right at the moment!!";
+ next;
+ mes "[Reading Rafflesia]";
+ mes "*thud*";
+ mes "The bathroom door opened,";
+ mes "and with white steam pouring out came a foot.";
+ next;
+ mes "[Reading Rafflesia]";
+ mes "Seiren's heart almost stopped";
+ mes "at the sight of it. And a moment later,";
+ mes "somebody came out from the bathroom,";
+ mes "with just a towel around her body.";
+ next;
+ mes "[Reading Rafflesia]";
+ mes "With her body still wet";
+ mes "from the shower...";
+ next;
+ mes "[Reading Rafflesia]";
+ mes "*gasp* Who are you? How long";
+ mes "were you standing there? How rude.";
+ emotion e_omg;
+ next;
+ mes "The Rafflesia closed the book hastily.";
+ mes "You're curious what will happen next,";
+ mes "but you've been rude enough,";
+ mes "so you just give up.";
close;
case 2:
- mes "[Scholar Gary]";
- mes "Goodbye, and good luck!";
+ mes "You leave the place quietly";
+ mes "in order not to disturb";
+ mes "the Rafflesia, who was lost in reading.";
close;
}
}
-mora,52,138,8 script Mora Citizen#2 516,{
- mes "[Valere]";
- mes "Hello, adventurer!";
- mes "You look like you're";
- mes "lost, aren't you!?";
+mora,99,65,6 script Banana Rafflesia#ep14_1 4_M_RAFLE_GR,{
+ mes "[Banana Rafflesia]";
+ mes "You want a banana?";
next;
- mes "[Valere]";
- mes "...";
- mes "Ah, okay.";
- mes "But you look like you want to";
- mes "enchant your equipment!";
- next;
- mes "[Valere]";
- mes "I only need to know one thing";
- mes "before telling you more about";
- mes "the Mora equipment enchants!";
- mes "So tell me, what is your class?";
- next;
- switch(select("Warlock.:Arch Bishop.:Ranger.:Guillotine Cross.:Rune Knight.:Other.:Goodbye.")) {
+ switch(select("Yes, I do.:No, thanks.")) {
case 1:
- mes "[Valere]";
- mes "Hmm, you should visit the";
- mes "Artifact Crafter.";
- mes "That is our enchantment specialist";
- mes "for Warlock equipment!";
+ mes "[Banana Rafflesia]";
+ mes "Take it if you can.";
+ mes "If you are successful, you can have it for free.";
+ emotion e_ok;
close;
case 2:
- mes "[Valere]";
- mes "Hmm, you should visit the";
- mes "Master of Relics.";
- mes "That is our enchantment specialist";
- mes "for Arch Bishop equipment!";
- close;
- case 3:
- case 4:
- case 5:
- mes "[Valere]";
- mes "Hmm, you should visit the";
- mes "Artifact Researcher.";
- mes "That is our enchantment specialist";
- mes "for Ranger, Guillotine Cross,";
- mes "and Rune Knight equipment!";
- close;
- case 6:
- mes "[Valere]";
- mes "Hmm, there is the Master Tailor";
- mes "who sells and enchants the 'Army Padding'.";
- next;
- mes "[Valere]";
- mes "There's also the Pendant Crafter";
- mes "who enchants 'Pendant of Guardian'.";
- next;
- mes "[Valere]";
- mes "And finally the Bulberry Westhood";
- mes "who enchants 'Loki's muffler'.";
- close;
- case 7:
- mes "[Valere]";
- mes "Goodbye, and good luck!";
+ mes "[Banana Rafflesia]";
+ mes "Well, I was going to give it for free,";
+ mes "but if you don't want it, it's fine with me.";
+ emotion e_pif;
close;
}
}
-mora,160,123,5 script Mora Citizen#3 517,{
- mes "[Boudril]";
- mes "Hey, you seem to be";
- mes "so far from home!";
- mes "Mora is a remote town.";
- mes "That's why we have";
- mes "own currency here!";
+mora,30,128,4 script Relaxing Traveler#ep14_1 4_M_DOGTRAVELER2,{
+ mes "[Traveler]";
+ mes "The Mora Inn is famous";
+ mes "for its unusual pieces of furniture.";
+ mes "Mushroom closets and apple dressers...";
+ mes "Aren't they so innovative?";
next;
- mes "[Boudril]";
- mes "Beyond that, our community";
- mes "developed this craft.";
- mes "Items found here cannot";
- mes "be found anywhere else!";
+ select("... ... ...");
+ mes "[Traveler]";
+ mes "Sorry... maybe it's just me...";
+ emotion e_sry;
close;
}
-mora,105,100,3 script Mora Citizen#4 518,{
- mes "[Buisso]";
- mes "Hello, my friend.";
- mes "What brings you to this";
- mes "place, so far from home?";
- mes "Are you looking for a challange?";
- mes "You won't be disappointed here!";
+mora,130,96,4 script Relaxing Traveler#ep14_2 4_M_DOGTRAVELER,{
+ mes "[Traveler]";
+ mes "The Rafflesia in Mora Village all look alike, so it's so confusing.";
+ mes "It's like looking at centuplets...";
next;
- mes "[Buisso]";
- mes "We are surrounded by the";
- mes "Bifrost, an area with powerful";
- mes "and deceitful monsters...";
- mes "So cute, but still dangerous.";
+ mes "[Traveler]";
+ mes "However! If you look closely,";
+ mes "you'll find each of them has a personality.";
+ mes "To find it is one of the fun things";
+ mes "you can do in the village.";
close;
}
-mora,98,104,4 script Mora Citizen#5 516,{
- mes "[Malavida]";
- mes "...";
- mes "What!? I look depressed!?";
- mes "It's normal living here!";
- mes "My dream was to be like you!";
- next;
- mes "[Malavida]";
- mes "Traveling around the world,";
- mes "chasing monsters,";
- mes "hunting treasure...";
- mes "You have the chance. Use it!";
+mora,43,113,4 script Wounded Rafflesia#ep14_1 4_M_RAFLE_OLD,{
+ mes "[Wounded Raffle]";
+ mes "Ugghh... What was it";
+ mes "that was in the bath... Arrrghh...";
+ mes "To attack suddenly like that... Be careful...";
+ mes "Whatever it is in there, it's very aggressive.";
close;
}
-mora,102,107,6 script Mora Citizen#6 517,{
- mes "[Skape]";
- mes "Have you tasted our dish?";
- mes "The beef toast!?";
- mes "This delicious beef only";
- mes "exists in the Bifrost!";
+mora,168,161,4 script Warehouse Worker#mo2 4_M_DOGTRAVELER,{
+ mes "[Lively]";
+ mes "The inn over there~";
+ mes "It should've been mine~";
+ next;
+ mes "[Lively]";
+ mes "The store over there~";
+ mes "It should've been mine as well~";
next;
- mes "[Skape]";
- mes "If you want to taste this";
- mes "dish, visit our chef.";
- mes "He makes the best";
- mes "Mora beef toast!";
+ mes "[Lively]";
+ mes "The warehouse here~";
+ mes "and all the things in it~";
+ mes "All of those should've been mine~";
+ mes "All of those should've been mine~";
+ next;
+ mes "[Lively]";
+ mes "Ahhh... I'd like to make money...";
+ emotion e_sob;
close;
}
-mora,101,107,4 script Mora Citizen#7 518,{
- mes "[Wouadel Kami]";
- mes "*Dances*";
- mes "I'm a choreographer, but";
- mes "nobody understands me.";
- mes "*doridori*";
- mes "*bingbing*";
- mes "*bangbang*";
+mora,175,161,6 script Warehouse Worker#mo3 4_F_RAFLE_PK,{
+ mes "[Kuorita]";
+ mes "Oh... this duck...";
+ next;
+ mes "[Kuorita]";
+ mes "Its slender red beak...";
+ mes "and the blush on its cheeks...";
+ mes "and its wings, ready to take off";
+ mes "any moment...";
+ emotion e_shy;
+ next;
+ mes "[Kuorita]";
+ mes "I want to have it badly...";
+ mes "What would happen if I stole it?";
+ emotion e_rice;
close;
}
-mora,103,100,6 script Mora Citizen#8 518,{
- mes "[Didier Lans]";
- mes "Yooo gaba gaba!";
- mes "Hello, my dear. You've heard";
- mes "about my teachings, have you?";
- mes "Do not hit your friends!";
- mes "*makes small steps backwards*";
- next;
- mes "[Didier Lans]";
- mes "Yooo gaba gaba!";
- mes "Eat your vegetables.";
- mes "*is the fool*";
- mes "Be smart, be polite!";
- mes "Yooo gaba gaba!";
+mora,140,186,3 script Raffle Philosopher 4_M_RAFLE_OLD,{
+ mes "[Raffle Philosopher]";
+ mes "With a little token of appreciation, I will tell you a quote that will help you in your life.";
+ next;
+ if(select("Give him a token of appreciation.:Can't you just tell me?") == 2) {
+ mes "[Raffle Philosopher]";
+ mes "You don't get something for nothing.";
+ close;
+ }
+ mes "[Raffle Philosopher]";
+ mes "How much are you willing to give me?";
+ mes "You can pay me in the currencies listed below.";
+ mes "Enter the sum you're willing to pay. Enter 0 if you don't want to pay anything.";
+ next;
+ input .@input;
+ if (.@input == 0) {
+ mes "[Raffle Philosopher]";
+ mes "So you don't want to hear a quote, eh?";
+ close;
+ } else if (.@input < 100 || .@input > 1000000) {
+ mes "[Raffle Philosopher]";
+ mes "You can pay between ^FF0000100 and 1000000^000000.";
+ close;
+ } else if (Zeny < .@input) {
+ mes "[Raffle Philosopher]";
+ mes "So you think this is what my time is worth?";
+ close;
+ }
+ mes "[Raffle Philosopher]";
+ mes "The quote I'm going to tell you is...";
+ mes "Let's see... Wait a second.";
+ Zeny -= .@input;
+ next;
+ mes ". . . . . . . . .";
+ next;
+ mes ". . . . . . . . .";
+ next;
+ mes ". . . . . . . . .";
+ next;
+ mes "[Raffle Philosopher]";
+ mes "Okay! I think this is the one for you.";
+ next;
+ mes "[Raffle Philosopher]";
+ mes strcharinfo(0)+", the quote I'm going to tell you is...";
+ switch(rand(1,70)) {
+ case 1:
+ mes "Nothing is more difficult,";
+ mes "and therefore more precious,";
+ mes "than to be able to decide.";
+ mes "- Napoleon Bonaparte -";
+ break;
+ case 2:
+ mes "Sometimes we stare so long at a door that is closing,";
+ mes "that we see too late the one that is open.";
+ mes "- Alexander Graham Bell -";
+ break;
+ case 3:
+ mes "If it's that painful, why do you keep doing it?";
+ mes "The answer's simple.";
+ mes "Because it makes my heart beat,";
+ mes "because it excites me.";
+ mes "My body might suffer, but I'm a lot happier";
+ mes "doing what I have always wanted to do.";
+ mes "- Biya Han -";
+ break;
+ case 4:
+ mes "You cannot persuade anybody";
+ mes "before you change yourself.";
+ mes "- Cheoljong Ko -";
+ break;
+ case 5:
+ mes "Never regret what you have chosen.";
+ mes "- Miyoung Ko -";
+ break;
+ case 6:
+ mes "A man is not finished when he is defeated.";
+ mes "He is finished when he quits.";
+ mes "- Richard Nixon -";
+ break;
+ case 7:
+ mes "Failure is instructive.";
+ mes "The person who really thinks";
+ mes "learns quite as much from his failures";
+ mes "as from his successes.";
+ mes "- John Dewey -";
+ break;
+ case 8:
+ mes "We sow our thoughts, and we reap our actions;";
+ mes "we sow our actions, and we reap our habits;";
+ mes "we sow our habits, and we reap our characters;";
+ mes "we sow our characters, and we reap our destiny.";
+ mes "- Erasmus -";
+ break;
+ case 9:
+ mes "There is no greater folly";
+ mes "in the world";
+ mes "than for a man to despair.";
+ mes "- Miguel de Cervantes -";
+ break;
+ case 10:
+ mes "Humility is the most difficult";
+ mes "of all virtues to achieve,";
+ mes "nothing dies harder than the desire";
+ mes "to think well of oneself.";
+ mes "- T. S. Eliot -";
+ break;
+ case 11:
+ mes "You have to assess your talent...";
+ mes "and ask yourself if this is going to be";
+ mes "an avocation or a job.";
+ mes "- Norma Clayton -";
+ break;
+ case 12:
+ mes "An eye for an eye";
+ mes "only ends up";
+ mes "making the whole world blind.";
+ mes "- Gandhi-";
+ break;
+ case 13:
+ mes "A man of no talent";
+ mes "craves long life,";
+ mes "yet a fool, if offered eternity,";
+ mes "would not know what to do with it.";
+ mes "- Solzhenitsyn -";
+ break;
+ case 14:
+ mes "It is not because the truth is too difficult to see that we make mistakes...";
+ mes "we make mistakes because the easiest and most comfortable course for us";
+ mes "is to seek insight where it accords with our emotions - especially selfish ones.";
+ mes "- Solzhenitsyn -";
+ break;
+ case 15:
+ mes "Beware of a man";
+ mes "of one book.";
+ mes "- English Proverb -";
+ break;
+ case 16:
+ mes "Bees drink water to make honey,";
+ mes "and snakes drink water to make poison.";
+ mes "- English Proverb -";
+ break;
+ case 17:
+ mes "Despair is an illness leading to death.";
+ mes "- Kierkegaard -";
+ break;
+ case 18:
+ mes "To eat bread without hope is";
+ mes "still slowly to starve to death.";
+ mes "- Pearl Buck -";
+ break;
+ case 19:
+ mes "Optimism is the faith that leads to achievement.";
+ mes "Nothing can be done";
+ mes "without hope and confidence.";
+ mes "- Helen Keller -";
+ break;
+ case 20:
+ mes "Look deep into nature,";
+ mes "and then you will understand";
+ mes "everything better.";
+ mes "- Albert Einstein -";
+ break;
+ case 21:
+ mes "Many of life's failures are";
+ mes "people who did not realize";
+ mes "how close they were";
+ mes "to success";
+ mes "when they gave up.";
+ mes "- Thomas Edison -";
+ break;
+ case 22:
+ mes "I have more fun and enjoy more financial success";
+ mes "when I stop trying";
+ mes "to get what I want";
+ mes "and start helping other people ";
+ mes "get what they want.";
+ mes "- Spencer Johnson, Larry Wilson -";
+ break;
+ case 23:
+ mes "Age is like love, it cannot be hid.";
+ mes "- Thomas Dekker -";
+ break;
+ case 24:
+ mes "We can't become";
+ mes "what we need to be";
+ mes "by remaining what we are.";
+ mes "- Oprah Winfrey -";
+ break;
+ case 25:
+ mes "Turn your wounds.";
+ mes "into wisdom.";
+ mes "- Oprah Winfrey -";
+ break;
+ case 26:
+ mes "Pain is the great teacher of mankind.";
+ mes "- Marie E. Eschenbach -";
+ break;
+ case 27:
+ mes "The superior man thinks always";
+ mes "of virtue; the common man";
+ mes "thinks of comfort.";
+ mes "- Confucius -";
+ break;
+ case 28:
+ mes "Pleasure is often spoiled by describing it.";
+ mes "- Stendhal -";
+ break;
+ case 29:
+ mes "The end comes when we";
+ mes "no longer talk with ourselves.";
+ mes "It is the end of genuine thinking";
+ mes "and the beginning of the final loneliness.";
+ mes "- Edward Gibbon -";
+ break;
+ case 30:
+ mes "They who have conquered doubt and fear";
+ mes "have conquered failure.";
+ mes "- James Allen -";
+ break;
+ case 31:
+ mes "Our greatest pride was";
+ mes "not that we never fail, but rather";
+ mes "that we always stand up when we fall.";
+ mes "- Confucius -";
+ break;
+ case 32:
+ mes "When you love a person";
+ mes "all fear disappears.";
+ mes "And when you are afraid all love disappears.";
+ mes "- Osho Rajneesh -";
+ break;
+ case 33:
+ mes "The power of our unconscious mind is enormous;";
+ mes "what we cannot do in our conscious state";
+ mes "we can do with the help";
+ mes "of the unconscious mind";
+ mes "more sensible than the conscious.";
+ mes "- Osho Rajneesh -";
+ break;
+ case 34:
+ mes "Truth is simple. Very simple-";
+ mes "so simple that a child can understand it.";
+ mes "In fact, so simple that only a child can understand it.";
+ mes "Unless you become a child again";
+ mes "you will not be able to understand it.";
+ mes "It is an experience, not speculation.";
+ mes "- Osho Rajneesh -";
+ break;
+ case 35:
+ mes "The best and most beautiful things in the world";
+ mes "cannot be seen or even touched -";
+ mes "they must be felt with the heart.";
+ mes "- Helen Keller -";
+ break;
+ case 36:
+ mes "Never bend your head. Always hold it high.";
+ mes "Look the world straight in the eye.";
+ mes "- Helen Keller -";
+ break;
+ case 37:
+ mes "Alone we can do so little;";
+ mes "together we can do so much.";
+ mes "- Helen Keller -";
+ break;
+ case 38:
+ mes "The highest result of education is tolerance.";
+ mes "- Helen Keller -";
+ break;
+ case 39:
+ mes "We are, each of us";
+ mes "angels with only one wing;";
+ mes "and we can only fly";
+ mes "by embracing one another.";
+ mes "- Luciano de Crescenzo -";
+ break;
+ case 40:
+ mes "He that feeds himself from waiting could die of hunger.";
+ mes "- Danish Proverb -";
+ break;
+ case 41:
+ mes "A bad peace is better";
+ mes "than a good war.";
+ mes "- Russian Proverb -";
+ break;
+ case 42:
+ mes "He who wants to warm himself";
+ mes "in old age must build";
+ mes "a fireplace in his youth.";
+ mes "- German Proverb -";
+ break;
+ case 43:
+ mes "Those who are choosy often pick the worst.";
+ mes "- Ilocano Proverb -";
+ break;
+ case 44:
+ mes "Even a God will lose money";
+ mes "after three days of gambling.";
+ mes "- Chinese Proverb -";
+ break;
+ case 45:
+ mes "I fear not the man";
+ mes "who has practiced 10,000 kicks once,";
+ mes "but I fear the man";
+ mes "who has practiced one kick 10,000 times.";
+ mes "- Bruce Lee -";
+ break;
+ case 46:
+ mes "The best way to be remembered";
+ mes "is to have a life.";
+ mes "worth remembering.";
+ mes "- Bruce Lee -";
+ break;
+ case 47:
+ mes "To know oneself is to study oneself";
+ mes "in action with another person.";
+ mes "- Bruce Lee -";
+ break;
+ case 48:
+ mes "I'm not one of those,";
+ mes "who do not believe";
+ mes "in love at first sight,";
+ mes "but I believe in taking a second look.";
+ mes "- Bruce Lee -";
+ break;
+ case 49:
+ mes "One should never rush marriage.";
+ mes "Unlike fruit, marriage is";
+ mes "always in season.";
+ mes "- Leo Tolstoy -";
+ break;
+ case 50:
+ mes "Those who want to succeed";
+ mes "will find a way, those who";
+ mes "don't will find an excuse.";
+ mes "- Leo Aguila -";
+ break;
+ case 51:
+ mes "Motivation is what gets you started.";
+ mes "Habit is what keeps you going.";
+ mes "- Jim Ryan -";
+ break;
+ case 52:
+ mes "He has achieved success who has lived well,";
+ mes "laughed often, and loved much.";
+ mes "- Bessie Stanley -";
+ break;
+ case 53:
+ mes "A poor person spends his money";
+ mes "and invests the rest.";
+ mes "A rich person invests his money";
+ mes "and spends what's left.";
+ mes "- Jim Rohn -";
+ break;
+ case 54:
+ mes "If you can't find the key to success,";
+ mes "pick the lock.";
+ mes "One of the most important principles of success is";
+ mes "developing the habit of going the extra mile.";
+ mes "- Napoleon Hill -";
+ break;
+ case 55:
+ mes "The human race has";
+ mes "one really effective weapon,";
+ mes "and that is laughter.";
+ mes "- Mark Twain -";
+ break;
+ case 56:
+ mes "A day without laughter is a day wasted.";
+ mes "- Charlie Chaplin -";
+ break;
+ case 57:
+ mes "He who laughs best today,";
+ mes "will also laugh last.";
+ mes "- Nietzsche -";
+ break;
+ case 58:
+ mes "Laughter is the sun that";
+ mes "drives winter from the human face.";
+ mes "- Victor Hugo -";
+ break;
+ case 59:
+ mes "Laugh, and the world laughs";
+ mes "with you; weep, and";
+ mes "you weep alone.";
+ mes "- Ella Wheeler Wilcox -";
+ break;
+ case 60:
+ mes "It is impossible for you to be angry";
+ mes "and laugh at the same time.";
+ mes "Anger and laughter are mutually exclusive";
+ mes "and you have the power to choose either.";
+ mes "- Wayne Dyer -";
+ break;
+ case 61:
+ mes "We don't laugh because we're happy";
+ mes "- we're happy because we laugh.";
+ mes "- William James -";
+ break;
+ case 62:
+ mes "The person who knows how to laugh at himself";
+ mes "will never cease to be amused.";
+ mes "- Shirley MacLaine -";
+ break;
+ case 63:
+ mes "The young man who has not wept is a savage,";
+ mes "and the older man who will not laugh is a fool.";
+ mes "- George Santayana -";
+ break;
+ case 64:
+ mes "I do not have much patience";
+ mes "with a thing of beauty";
+ mes "that must be explained";
+ mes "to be understood.";
+ mes "If it does need additional interpretation";
+ mes "then I question";
+ mes "whether it has fulfilled its purpose.";
+ mes "- Charlie Chaplin -";
+ break;
+ case 65:
+ mes "Life is a tragedy";
+ mes "when seen in close-up,";
+ mes "but a comedy";
+ mes "in long-shot.";
+ mes "- Charlie Chaplin -";
+ break;
+ case 66:
+ mes "The clearest sign of wisdom is continued cheerfulness.";
+ mes "- Michel de Montaigne -";
+ break;
+ case 67:
+ mes "The time you enjoyed wasting";
+ mes "was not wasted.";
+ mes "- John Lennon -";
+ break;
+ case 68:
+ mes "True humor springs not more from the head than from the heart.";
+ mes "It is not contempt; its essence is love.";
+ mes "It issues not in laughter,";
+ mes "but in still smiles, which lie far deeper.";
+ mes "- Thomas Carlyle -";
+ break;
+ case 69:
+ mes "Through humor, you can soften";
+ mes "some of the worst blows";
+ mes "that life delivers.";
+ mes "And once you find laughter,";
+ mes "no matter how painful";
+ mes "your situation might be,";
+ mes "you can survive it.";
+ mes "- Bill Cosby -";
+ break;
+ case 70:
+ mes "My great hope is to laugh";
+ mes "as much as I cry;";
+ mes "to get my work done";
+ mes "and try to love somebody";
+ mes "and have the courage";
+ mes "to accept the love in return.";
+ mes "- Maya Angelou -";
+ break;
+ }
+ next;
+ mes "[Raffle Philosopher]";
+ mes "People take what they hear";
+ mes "differently.";
+ next;
+ mes "[Raffle Philosopher]";
+ mes "I wonder what you think";
+ mes "about what I've told you.";
+ next;
+ input .@inputstr$;
+ mes "[Raffle Philosopher]";
+ mes "So you think that "+.@inputstr$+".";
+ next;
+ mes "[Raffle Philosopher]";
+ mes "... ... ... ...";
+ next;
+ mes "[Raffle Philosopher]";
+ mes "I don't know. There is no one answer";
+ mes "to this question...";
+ mes "Hold onto your thought.";
close;
}
-mora,184,169,3 script Mora Citizen#9 516,{
- mes "[Moussa Wi]";
- mes "Bleh, I've been";
- mes "here for too long.";
- mes "Living with these dogs...";
- mes "Having nothing to do...";
- mes "Hmm, how about you";
- mes "take care of them?";
+- script #mora_traveler -1,{
+ mes "[Upset Traveler]";
+ mes "You... you dare play a game with me?";
+ emotion e_ag,0,"Traveler#ep14_1_1";
+ next;
+ mes "[Traveler That Posed the Question]";
+ mes "What...? Do you have proof?";
+ mes "Do you have proof?!!";
+ emotion e_an,0,"Traveler#ep14_1_2";
+ next;
+ mes "[Traveler Trying to Stop the Fight]";
+ mes "Look, stop it, just stop it!";
+ mes "I'm afraid it will turn into a big fight...";
+ emotion e_swt2,0,"Traveler#ep14_1_3";
+ next;
+ mes "[Traveler Trying to Stop the Fight]";
+ mes "Oh! Why don't we ask";
+ mes "that person there...?";
+ next;
+ mes "[Upset Traveler]";
+ mes "Oh, yes! That's a great idea.";
+ mes "Well~ Hello there~";
+ mes "You there, traveler!";
+ emotion e_ic,0,"Traveler#ep14_1_1";
+ next;
+ mes "They seem to be calling out to you.";
+ next;
+ if(select("See what the matter is.:I have nothing to do with it.") == 2) {
+ mes "You went on your way";
+ mes "leaving the travelers behind you.";
+ close;
+ }
+ mes "["+strcharinfo(0)+"]";
+ mes "What's happening here?";
+ emotion e_what,1;
+ next;
+ mes "[Upset Traveler]";
+ mes "I'll tell you what.";
+ mes "Rose's mother had 10 sons.";
+ mes "The eldest son is called Roseone,";
+ mes "the second Rosetwo,";
+ mes "the third Rosethree...";
+ mes "the ninth Rosenine...";
+ mes "you get how it works, right?";
+ emotion e_ag,0,"Traveler#ep14_1_1";
+ next;
+ mes "[Traveler That Posed the Question]";
+ mes "Right, that's how it works.";
+ mes "So I asked what the youngest one would be called,";
+ mes "and when I told him the answer,";
+ mes "he got all upset and started cursing me.";
+ emotion e_an,0,"Traveler#ep14_1_2";
+ next;
+ mes "[Upset Traveler]";
+ mes "You... you bastard!";
+ mes "Hey there, what do you think";
+ mes "the answer to the question is?";
+ emotion e_ag,0,"Traveler#ep14_1_1";
+ next;
+ switch(select("Roseten.:Rose.:How would I know that?")) {
+ case 1:
+ mes "["+strcharinfo(0)+"]";
+ mes "The answer to the question is Roseten.";
+ mes "Why are you fighting over such a trivial matter?";
+ next;
+ mes "[Upset Traveler]";
+ mes "See? Even this traveler says";
+ mes "Roseten is the answer.";
+ mes "How dare you try to play tricks on me?";
+ emotion e_gg,0,"Traveler#ep14_1_1";
+ next;
+ mes "[Traveler That Posed the Question]";
+ mes "You idiot... you don't have the slightest clue!";
+ emotion e_an,0,"Traveler#ep14_1_2";
+ break;
+ case 2:
+ mes "["+strcharinfo(0)+"]";
+ mes "The answer to the question is Rose.";
+ mes "You said Rose's mother had 10 sons.";
+ mes "So even if the other sons' names are";
+ mes "Roseone, Rosetwo, ... Rosenine,";
+ mes "the youngest one must be Rose,";
+ mes "or she wouldn't be called Rose's mother.";
+ next;
+ mes "[Traveler That Posed the Question]";
+ mes "That's exactly what I mean!";
+ mes "I can't hang around with him.";
+ mes "I guess we live in two different worlds.";
+ emotion e_ok,0,"Traveler#ep14_1_2";
+ next;
+ mes "[Upset Traveler]";
+ mes "You bastard... What did you";
+ mes "get from this guy...?";
+ emotion e_ag,0,"Traveler#ep14_1_1";
+ break;
+ case 3:
+ mes "["+strcharinfo(0)+"]";
+ mes "I have no idea.";
+ mes "Try to sort it out yourselves.";
+ next;
+ mes "[Traveler Trying to Stop the Fight]";
+ mes "You good-for-nothing bastard,";
+ mes "you're trying to leave this mess to me?";
+ emotion e_an,0,"Traveler#ep14_1_3";
+ break;
+ }
+ next;
+ mes "*thud*";
+ mes "You feel a sudden impact on the back of your head.";
+ mes "Your sight is going blurry.";
+ specialeffect2 EF_HIT1;
+ sc_start SC_BLIND,20000,0;
+ next;
+ mes "You feel somebody rummaging through your pockets before you pass out.";
+ if (Zeny >= 5000)
+ Zeny -= 5000;
+ else
+ Zeny = 0;
+ close2;
+ percentheal -99,0;
+ warp "mora",31,132;
+ end;
+}
+mora,140,72,4 duplicate(#mora_traveler) Traveler#ep14_1_1 4_M_DOGTRAVELER //Upset Traveler
+mora,138,72,6 duplicate(#mora_traveler) Traveler#ep14_1_2 4_M_DOGTRAVELER //Traveler That Posed the Question
+mora,139,73,4 duplicate(#mora_traveler) Traveler#ep14_1_3 4_M_DOGTRAVELER //Traveler Trying to Stop the Fight
+
+// Set 3 :: tre
+//============================================================
+mora,132,185,5 script Mora Villager#sleep5 4_F_RAFLE_PK,{
+ mes "[Mora Villager]";
+ mes "Phew~ Phew~";
close;
}
-mora,108,182,3 script Mora Citizen#10 516,{
- mes "[Yosou Keh]";
- mes "Hello!";
- mes "I am Yosou Keh,";
- mes "a resident of Mora.";
- mes "The Bifrost is populated";
- mes "with many strong monsters...";
+mora,133,185,5 script Mora Villager#sleep2 4_M_RAFLE_VI,{
+ mes "[Mora Villager]";
+ mes "Snore...";
close;
}
-mora,113,185,5 script Mora Citizen#11 516,{
- mes "[Ninkasi]";
- mes "Hey, dude.";
- mes "How are you today, dude?";
- mes "What can I do for you, dude?";
- next;
- switch(select("Why do you call me 'dude'?:Goodbye.")) {
- case 1:
- mes "[Ninkasi]";
- mes "Why not?";
- mes "Calling others 'dude'";
- mes "is my brand mark.";
- mes "Be cool, dude, relax!";
- mes "Enjoy your life, dude!";
- close;
- case 2:
- mes "[Ninkasi]";
- mes "See you again, dude!";
- close;
- }
+mora,134,185,3 script Mora Villager#sleep1 4_F_RAFLE_VI,{
+ mes "[Mora Villager]";
+ mes "Snort--";
+ close;
}
-mora,43,127,4 script Mora Citizen#12 522,{
- mes "[Glouti Vori]";
- mes "Mm, I love this beef toast!";
- mes "That's the only reason I'm";
- mes "still here! There's nothing";
- mes "better than Mora beef toast!";
+mora,132,184,5 script Mora Villager#sleep6 4_M_RAFLE_OR,{
+ mes "[Mora Villager]";
+ mes "Snort--";
close;
}
-mora,35,119,7 script South World Dealer 513,{
- mes "[South World Dealer]";
- mes "...";
+mora,133,184,1 script Mora Villager#sleep4 G_RAFFLESIA,{
+ mes "[Mora Villager]";
+ mes "Moan...";
+ end;
+}
+
+mora,134,184,1 script Mora Villager#sleep3 4_M_RAFLE_GR,{
+ mes "[Mora Villager]";
+ mes "Phew phew pheeew~";
close;
}
-mora,139,102,4 script Milvida 515,{
- mes "[Milvida]";
- mes "Welcome to Mora~";
- mes "In the center of the city";
- mes "you can find all the shops";
- mes "and some enchanters.";
- next;
- mes "[Milvida]";
- mes "Northeast of the city is";
- mes "where the food is located.";
+mora,132,183,7 script Mora Villager#sleep7 4_M_RAFLE_VI,{
+ mes "[Mora Villager]";
+ mes "z Z";
close;
}
-mora,55,124,2 script Cat Traveler 495,{
- mes "[Cat Traveler]";
- mes "This city is like Malangdo";
- mes "in several aspects,";
- mes "don't you think?";
+mora,133,183,7 script Mora Villager#sleep8 4_F_RAFLE_PK,{
+ mes "[Mora Villager]";
+ mes "z Z";
+ end;
+}
+
+mora,134,183,1 script Mora Villager#sleep9 4_M_RAFLE_OR,{
+ mes "[Mora Villager]";
+ mes "z Z";
close;
}
-mora,131,165,4 script Bifrost Resident#1 520,{
- mes "[Bifrost Resident]";
- mes "Welcome to the workshop";
- mes "of the west clan. If you";
- mes "want your Loki Muffler";
- mes "enchanted, please contact";
- mes "my boss. He makes miracles!";
+mora,43,127,3 script Innkeeper#mora_inn 4_M_RAFLE_OR,{
+ mes "[Innkeeper]";
+ mes "Oh~ looks like we have another adventurer.";
+ mes "Where are you from?";
next;
- mes "[Bifrost Resident]";
- mes "On a side note... I think I'm";
- mes "really cute, don't you agree?";
- close;
-} \ No newline at end of file
+ switch(select("Just save the game.:I'd like to get some rest.:The place I used to live is called...:How can I use the warehouse?")) {
+ case 1:
+ mes "[Innkeeper]";
+ mes "Wow, what's the rush?";
+ mes "You've just come here, and you're already going someplace else?";
+ next;
+ mes "[Innkeeper]";
+ mes "You know, haste makes waste. Tsk tsk.";
+ mes "Well, the game's been saved.";
+ savepoint "mora",56,143;
+ close;
+ case 2:
+ mes "[Innkeeper]";
+ mes "My my, I need some rest also.";
+ mes "The rate is 5000 zeny. Do you want a room?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ if (Zeny < 5000) {
+ mes "[Innkeeper]";
+ mes "The rate is 5000z.";
+ close;
+ }
+ mes "[Innkeeper]";
+ mes "Make yourself at home.";
+ close2;
+ Zeny -= 5000;
+ percentheal 100,100;
+ warp "mora",32,123;
+ end;
+ case 2:
+ mes "[Innkeeper]";
+ mes "If you don't have the money, go soak yourself in the puddle in the center of the village.";
+ mes "It will warm you up.";
+ close;
+ }
+ case 3:
+ input .@inputstr$;
+ mes "["+strcharinfo(0)+"]";
+ mes "I come from a place called "+.@inputstr$+".";
+ next;
+ mes "[Innkeeper]";
+ mes "Oh, I think I've heard about the place before!";
+ next;
+ if (.@inputstr$ == "Shinlim") {
+ mes "[Innkeeper]";
+ mes "I heard there's an old tower where horrible witches put Savages in a giant cauldron and cast evil spells on them, right?";
+ next;
+ mes "[Innkeeper]";
+ mes "What's worse is that whoever takes medicine made out of Savages will come back for more!";
+ mes "And he will wander around looking for the tower, and eventually turn into an enormous Savage!";
+ emotion e_no,1;
+ next;
+ } else {
+ mes "[Innkeeper]";
+ mes "I heard that there are creeps there who won't get up at all even if it rains or snows, or their sweethearts or parents call them!";
+ mes "And that black clouds hover over them all the time, causing a storm!";
+ next;
+ }
+ mes "[Innkeeper]";
+ mes "How terrible!";
+ close;
+ case 4:
+ mes "[Innkeeper]";
+ mes "Search through the vegetable-shaped drawer to my right.";
+ close;
+ }
+}
+
+mora,48,128,0 script Drawer#mora_warehouse HIDDEN_NPC,{
+ if(basicskillcheck() && getskilllv("NV_BASIC") < 6) {
+ mes "- You don't remember how to open the warehouse. -";
+ close;
+ }
+ mes "- The figure 1 0 0 is written in small letters on the vegetable-shaped drawer. -";
+ next;
+ switch(select("Insert 100 zeny.:Don't do anything.")) {
+ case 1:
+ if (Zeny < 100) {
+ mes "- You don't seem to have 100 zeny with you. -";
+ close;
+ }
+ Zeny -= 100;
+ openstorage;
+ close;
+ case 2:
+ mes "- You gave up using the warehouse. -";
+ close;
+ }
+}
diff --git a/npc/re/cities/yuno.txt b/npc/re/cities/yuno.txt
new file mode 100644
index 000000000..ac2fb25fb
--- /dev/null
+++ b/npc/re/cities/yuno.txt
@@ -0,0 +1,20 @@
+//===== Hercules Script ======================================
+//= Juno City
+//===== By: ==================================================
+//= Euphy
+//===== Current Version: =====================================
+//= 1.0
+//===== Description: =========================================
+//= [Official Conversion]
+//= NPCs for the City of Juno
+//===== Additional Comments: =================================
+//= 1.0 First version.
+//============================================================
+
+yuno,150,283,4 duplicate(JunoSoldier1) Juno Soldier#juno 4_M_EIN_SOLDIER
+yuno,165,283,4 duplicate(JunoSoldier2) Juno Soldier#2juno 4_M_EIN_SOLDIER
+yuno,227,292,4 duplicate(JunoSoldier3) Juno Soldier#3juno 4_M_EIN_SOLDIER
+yuno,165,228,4 duplicate(JunoSoldier4) Juno Soldier#4juno 4_M_EIN_SOLDIER
+yuno,150,228,4 duplicate(JunoSoldier5) Juno Soldier#5juno 4_M_EIN_SOLDIER
+yuno,334,182,4 duplicate(JunoSoldier6) Juno Soldier#6juno 4_M_EIN_SOLDIER
+yuno,263,320,4 duplicate(JunoSoldier7) Juno Soldier#7juno 4_M_EIN_SOLDIER
diff --git a/npc/re/guides/guides_alberta.txt b/npc/re/guides/guides_alberta.txt
index 9b1b86a92..94c95279c 100644
--- a/npc/re/guides/guides_alberta.txt
+++ b/npc/re/guides/guides_alberta.txt
@@ -3,23 +3,24 @@
//===== By: ==================================================
//= L0ne_W0lf
//===== Current Version: =====================================
-//= 1.0
-//===== Compatible With: =====================================
-//= Hercules
+//= 1.1
//===== Description: =========================================
//= [Official Conversion]
//= Guides for the city of Alberta
//===== Additional Comments: =================================
//= 1.0 First version, Renewal guides.
+//= 1.1 Navigation system update. [Euphy]
//============================================================
-alberta,23,238,4 script Guide#01alberta::AlbertaGuide 105,{
+alberta,23,238,4 script Guide#01alberta::AlbertaGuide 8W_SOLDIER,{
cutin "prt_soldier",2;
mes "[Alberta Guide]";
mes "Welcome to ^8B4513Alberta^000000,";
mes "the Port City.";
mes "Do you need help navigating the city?";
+ F_Navi("[Alberta Guide]");
next;
+ set .@str$,"Would you like to check any other locations?";
while (1) {
switch(select("[ Main Facilities ]:[ Merchants & Helpers ]:[ Destination Ports ]:Remove Marks from Mini-Map:Cancel")) {
case 1:
@@ -29,54 +30,54 @@ alberta,23,238,4 script Guide#01alberta::AlbertaGuide 105,{
case 1:
mes "[Alberta Guide]";
mes "Let me mark the location of the";
- mes "the ^0000FFTool Shop^000000";
+ mes "the "+F_Navi("Tool Shop","alberta,98,154","^0000FF");
mes "on your mini-map.";
- mes "Would you like to check any other locations?";
+ mes .@str$;
viewpoint 1,98,154,0,0x0A82FF;
next;
break;
case 2:
mes "[Alberta Guide]";
- mes "The ^B9062FForge^000000 is currently";
+ mes "The "+F_Navi("Forge","alberta,35,41","^B9062F")+" is currently";
mes "located inside the Merchant Guild building.";
- mes "Would you like to check any other locations?";
+ mes .@str$;
viewpoint 1,35,41,1,0xFF0000;
next;
break;
case 3:
mes "[Alberta Guide]";
mes "Let me mark the location of the";
- mes "the ^FF5400Weapon & Armor Shop^000000";
+ mes "the "+F_Navi("Weapon & Armor Shop","alberta,117,37","^FF5400");
mes "on your mini-map.";
- mes "Would you like to check any other locations?";
+ mes .@str$;
viewpoint 1,117,37,2,0xFFB400;
next;
break;
case 4:
mes "[Alberta Guide]";
mes "Let me mark the location of the";
- mes "the ^006400Inn^000000";
+ mes "the "+F_Navi("Inn","alberta,65,233","^006400");
mes "on your mini-map.";
- mes "Would you like to check any other locations?";
+ mes .@str$;
viewpoint 1,65,233,3,0xAAFF00;
next;
break;
case 5:
mes "[Alberta Guide]";
mes "Let me mark the location of the";
- mes "the ^7F3300Beauty Salon^000000";
+ mes "the "+F_Navi("Beauty Salon","alberta,48,145","^7F3300");
mes "on your mini-map.";
- mes "Would you like to check any other locations?";
+ mes .@str$;
viewpoint 1,48,145,4,0xD2691E;
next;
break;
case 6:
mes "[Alberta Guide]";
- mes "The Merchant Guild is where";
- mes "you can change your job to ^800080Merchant.";
+ mes "The "+F_Navi("Merchant Guild","alberta,33,41")+" is where";
+ mes "you can change your job to ^800080Merchant^000000.";
mes "Let me mark its location";
mes "on your mini-map.";
- mes "Would you like to check any other locations?";
+ mes .@str$;
viewpoint 1,33,41,5,0xDA70D6;
next;
break;
@@ -92,10 +93,10 @@ alberta,23,238,4 script Guide#01alberta::AlbertaGuide 105,{
switch(select("[ Eden Teleport Officer ]:[ Kafra Employee ]:[ Cool Event Employee ]:[ Bullet Merchant ]:[ Cooking Ingredient Merchant ]:Previous Menu")) {
case 1:
mes "[Alberta Guide]";
- mes "^B9062FEden Teleport Officers^000000 are located in south Alberta";
- mes "and inside the Merchant Guild building.";
+ mes "^B9062FEden Teleport Officers^000000 are located in "+F_Navi("south Alberta","alberta,121,68");
+ mes "and inside the "+F_Navi("Merchant Guild","alberta,33,41")+" building.";
mes "Let me mark their locations on your mini-map.";
- mes "Would you like to check any other locations?";
+ mes .@str$;
viewpoint 1,33,41,6,0xFF0000;
viewpoint 1,121,68,7,0xFF0000;
next;
@@ -105,7 +106,7 @@ alberta,23,238,4 script Guide#01alberta::AlbertaGuide 105,{
mes "Let me mark the location of the";
mes "^0000FFKafra Employees^000000";
mes "on your mini-map.";
- mes "Would you like to check any other locations?";
+ mes .@str$;
viewpoint 1,33,41,8,0x0A82FF;
viewpoint 1,113,60,9,0x0A82FF;
next;
@@ -113,8 +114,8 @@ alberta,23,238,4 script Guide#01alberta::AlbertaGuide 105,{
case 3:
mes "[Alberta Guide]";
mes "When you win event items,";
- mes "you can claim them through the ^FF5400Cool Event Employee^000000.";
- mes "Would you like to check any other locations?";
+ mes "you can claim them through the "+F_Navi("Cool Event Employee","alberta,148,57","^FF5400")+".";
+ mes .@str$;
viewpoint 1,148,57,10,0xFFB400;
next;
break;
@@ -122,17 +123,17 @@ alberta,23,238,4 script Guide#01alberta::AlbertaGuide 105,{
mes "[Alberta Guide]";
mes "The ^7F3300Bullet Merchants^000000 for ^7F3300Gunslingers^000000";
mes "are located";
- mes "near the center of the city.";
- mes "Would you like to check any other locations?";
+ mes "near the "+F_Navi("center of the city","alberta,117,158")+".";
+ mes .@str$;
viewpoint 1,117,158,11,0xD2691E;
next;
break;
case 5:
mes "[Alberta Guide]";
- mes "The ^006400Chef Assistant^000000 in Alberta";
+ mes "The "+F_Navi("Chef Assistant","alberta,167,135","^006400")+" in Alberta";
mes "has many regular customers,";
mes "especially for his ^006400Delicious Fishes^000000.";
- mes "Would you like to check any other locations?";
+ mes .@str$;
viewpoint 1,167,135,12,0xAAFF00;
next;
break;
@@ -145,77 +146,32 @@ alberta,23,238,4 script Guide#01alberta::AlbertaGuide 105,{
case 3:
set .@loop,1;
while (.@loop) {
- switch(select("[ Port - Northern Dock ]:[ Port - Brasilis ]:[ Port - Amatsu ]:[ Port - Kunlun ]:[ Port - Moscovia ]:[ Port - Louyang ]:[ Port - Ayothaya ]:Previous Menu")) {
+ switch(select("[ Port - Northern Dock ]:[ Port - Central Dock ]:[ Port - Southern Dock ]:Previous Menu")) {
case 1:
mes "[Alberta Guide]";
- mes "You can use";
- mes "the ^B9062FNorthern Dock^000000";
- mes "to go to the ^B9062FSunken Ship^000000 or ^B9062FIzlude Marina^000000.";
- mes "Would you like to check any other locations?";
- viewpoint 1,192,151,13,0xFF0000;
+ mes "You can use the "+F_Navi("Northern Dock","alberta,192,196");
+ mes "to go to ^0000FFPort Malaya^000000 or ^0000FFDewata^000000.";
+ mes .@str$;
+ viewpoint 1,192,196,13,0xFF0000;
next;
break;
case 2:
mes "[Alberta Guide]";
- mes "Please talk to the ^800080Crewman^000000 at the Alberta Port";
- mes "if you'd like to visit ^800080Brasilis^000000,";
- mes "the City of Passion.";
- mes "Would you like to check any other locations?";
- viewpoint 1,246,82,14,0xDA70D6;
+ mes "You can use the "+F_Navi("Central Dock","alberta,192,151");
+ mes "to go to the ^B9062FSunken Ship^000000 or ^B9062FIzlude Marina^000000.";
+ mes .@str$;
+ viewpoint 1,192,151,14,0xFF0000;
next;
break;
case 3:
mes "[Alberta Guide]";
- mes "Please talk to the";
- mes "the ^0000FFSea Captain^000000 at the Alberta Port";
- mes "if you'd like to enjoy viewing cherry blossoms";
- mes "in ^0000FFAmatsu^000000.";
- mes "Would you like to check any other locations?";
- viewpoint 1,246,74,15,0x0A82FF;
+ mes "You can use the "+F_Navi("Southern Dock","alberta,245,86");
+ mes "to go to ^0000FFTurtle Island^000000, ^0000FFBrasilis^000000, ^0000FFAmatsu^000000, ^0000FFKunlun^000000, ^0000FFMoscovia^000000, ^0000FFLouyang^000000, or ^0000FFAyothaya^000000.";
+ mes .@str$;
+ viewpoint 1,245,86,15,0xFF0000;
next;
break;
case 4:
- mes "[Alberta Guide]";
- mes "Please talk to the";
- mes "^B9062FKunlun Envoy^000000 at the Alberta Port";
- mes "if you'd like to experience the exotic atmosphere of ^B9062FKunlun^000000.";
- mes "Would you like to check any other locations?";
- viewpoint 1,246,62,16,0xFF0000;
- next;
- break;
- case 5:
- mes "[Alberta Guide]";
- mes "Please talk to the";
- mes "^FF5400Moscovia P.R. Officer^000000 at the Alberta Port";
- mes "if you'd like to move to";
- mes "^FF5400Moscovia^000000,";
- mes "the Eden on the ocean.";
- mes "Would you like to check any other locations?";
- viewpoint 1,246,51,17,0xFFB400;
- next;
- break;
- case 6:
- mes "[Alberta Guide]";
- mes "Please talk to the";
- mes "^7F3300Girl^000000 at the Alberta Port";
- mes "if you'd like to move to the historical city,";
- mes "^7F3300Louyang^000000.";
- mes "Would you like to check any other locations?";
- viewpoint 1,246,40,18,0xD2691E;
- next;
- break;
- case 7:
- mes "[Alberta Guide]";
- mes "Please talk to";
- mes "^800080Aibakthing^000000 at the Alberta Port";
- mes "if you'd like to move to";
- mes "^800080Ayothaya^000000,";
- mes "the religious city.";
- mes "Would you like to check any other locations?";
- viewpoint 1,246,29,19,0xDA70D6;
- next;
- break;
- case 8:
set .@loop,0;
break;
}
@@ -241,10 +197,6 @@ alberta,23,238,4 script Guide#01alberta::AlbertaGuide 105,{
viewpoint 2,1,1,13,0xFFFF00;
viewpoint 2,1,1,14,0xFFFF00;
viewpoint 2,1,1,15,0xFFFF00;
- viewpoint 2,1,1,16,0xFFFF00;
- viewpoint 2,1,1,17,0xFFFF00;
- viewpoint 2,1,1,18,0xFFFF00;
- viewpoint 2,1,1,19,0xFFFF00;
next;
break;
case 5:
@@ -256,6 +208,5 @@ alberta,23,238,4 script Guide#01alberta::AlbertaGuide 105,{
}
}
}
-
-alberta,120,60,3 duplicate(AlbertaGuide) Guide#02alberta 105
-alberta,184,143,4 duplicate(AlbertaGuide) Guide#03alberta 105
+alberta,120,60,3 duplicate(AlbertaGuide) Guide#02alberta 8W_SOLDIER
+alberta,184,143,4 duplicate(AlbertaGuide) Guide#03alberta 8W_SOLDIER
diff --git a/npc/re/guides/guides_aldebaran.txt b/npc/re/guides/guides_aldebaran.txt
index 9593e0b2e..ef47d543d 100644
--- a/npc/re/guides/guides_aldebaran.txt
+++ b/npc/re/guides/guides_aldebaran.txt
@@ -1,25 +1,27 @@
-//===== Hercules Script ======================================
+//===== Hercules Script ======================================
//= Al De Baran Guides
//===== By: ==================================================
//= L0ne_W0lf
//===== Current Version: =====================================
-//= 1.0
-//===== Compatible With: =====================================
-//= Hercules
+//= 1.1
//===== Description: =========================================
//= [Official Conversion]
-//= Guides for the city of Al De baran
+//= Guides for the city of Al De Baran.
//===== Additional Comments: =================================
//= 1.0 First version, Renewal guide.
+//= 1.1 Navigation system update. [Euphy]
+//= Optimized.
//============================================================
-aldebaran,139,63,4 script Guide#01aldebaran::GuideAldearan 105,{
+aldebaran,139,63,4 script Guide#01aldebaran::GuideAldearan 8W_SOLDIER,{
cutin "prt_soldier",2;
mes "[Al De Baran Guide]";
mes "Welcome to ^8B4513Al De Baran^000000,";
mes "the Border City.";
mes "Do you need help navigating the city?";
+ F_Navi("[Al De Baran Guide]");
next;
+ set .@str$,"Would you like to check any other locations?";
while (1) {
switch(select("[ Main Facilities ]:[ Merchants & Helpers ]:Remove Marks from Mini-Map:Cancel")) {
case 1:
@@ -27,55 +29,43 @@ aldebaran,139,63,4 script Guide#01aldebaran::GuideAldearan 105,{
while (.@loop) {
switch(select("[ Kafra Headquarters ]:[ Alchemist Guild ]:[ Clock Tower ]:[ Inn & Tool Shop ]:[ Repair & Buy Equipment ]:[ Tavern ]:Previous Menu")) {
case 1:
- mes "[Al De Baran Guide]";
- mes "Let me mark the location of the";
- mes "^B9062FKafra Headquarters^000000";
- mes "on your mini-map.";
- mes "Would you like to check any other locations?";
+ callsub L_Mark, F_Navi("Kafra Headquarters","aldebaran,61,229","^B9062F");
+ mes .@str$;
viewpoint 1,61,229,0,0xFF0000;
next;
break;
case 2:
- mes "[Al De Baran Guide]";
- mes "Let me mark the location of the";
- mes "the ^0000FFAlchemist Guild^000000";
- mes "on your mini-map.";
- mes "Would you like to check any other locations?";
+ callsub L_Mark, F_Navi("Alchemist Guild","aldebaran,60,60","^0000FF");
+ mes .@str$;
viewpoint 1,60,60,1,0x0A82FF;
next;
break;
case 3:
- mes "[Al De Baran Guide]";
- mes "Let me mark the location of the";
- mes "the ^FF5400Clock Tower^000000";
- mes "on your mini-map.";
- mes "Would you like to check any other locations?";
+ callsub L_Mark, F_Navi("Clock Tower","aldebaran,139,133","^FF5400");
+ mes .@str$;
viewpoint 1,139,133,2,0xFFB400;
next;
break;
case 4:
mes "[Al De Baran Guide]";
mes "Let me mark the location of the";
- mes "the ^006400Inn^000000 and";
- mes "the ^006400Tool Shop^000000 building";
+ mes F_Navi("Inn & Tool Shop","aldebaran,197,70","^006400")+" building";
mes "on your mini-map.";
- mes "Would you like to check any other locations?";
+ mes .@str$;
viewpoint 1,197,70,3,0xAAFF00;
next;
break;
case 5:
mes "[Al De Baran Guide]";
- mes "If you'd like to ^7F3300Buy or Repair Equipment^000000,";
+ mes "If you'd like to ";
+ mes F_Navi("Buy or Repair Equipment","aldebaran,197,70","^7F3300")+",";
mes "then this is the place you'll want to visit.";
- mes "Would you like to check any other locations?";
+ mes .@str$;
viewpoint 1,72,197,4,0xD2691E;
next;
break;
case 6:
- mes "[Al De Baran Guide]";
- mes "Let me mark the location of the";
- mes "the ^800080Tavern^000000";
- mes "on your mini-map.";
+ callsub L_Mark, F_Navi("Tavern","aldebaran,231,106","^800080");
viewpoint 1,231,106,5,0xDA70D6;
next;
break;
@@ -90,38 +80,29 @@ aldebaran,139,63,4 script Guide#01aldebaran::GuideAldearan 105,{
while (.@loop) {
switch(select("[ Eden Teleport Officer ]:[ Kafra Employee ]:[ Mr. Claus ]:[ Chef Assistant ]:Previous Menu")) {
case 1:
- mes "[Al De Baran Guide]";
- mes "Let me mark the location of the";
- mes "^B9062FEden Teleport Officer^000000";
- mes "on your mini-map.";
- mes "Would you like to check any other locations?";
+ callsub L_Mark, F_Navi("Eden Teleport Officer","aldebaran,133,119","^B9062F");
+ mes .@str$;
viewpoint 1,133,119,6,0xFF0000;
next;
break;
case 2:
- mes "[Al De Baran Guide]";
- mes "Let me mark the location of the";
- mes "^0000FFKafra Employee^000000";
- mes "on your mini-map.";
+ callsub L_Mark, "^0000FFKafra Employee^000000";
viewpoint 1,143,119,7,0x0A82FF;
next;
break;
case 3:
mes "[Al De Baran Guide]";
mes "Mr. Claus can teleport";
- mes "you to ^006400Lutie^000000.";
+ mes "you to "+F_Navi("Lutie","aldebaran,168,168","^006400")+".";
mes "Let me mark his location";
mes "on your mini-map.";
- mes "Would you like to check any other locations?";
+ mes .@str$;
viewpoint 1,168,168,8,0xAAFF00;
next;
break;
case 4:
- mes "[Al De Baran Guide]";
- mes "Let me mark the location of the";
- mes "^7F3300Chef Assistant^000000";
- mes "on your mini-map.";
- mes "Would you like to check any other locations?";
+ callsub L_Mark, F_Navi("Chef Assistant","aldebaran,165,107","^7F3300");
+ mes .@str$;
viewpoint 1,165,107,9,0xD2691E;
next;
break;
@@ -156,8 +137,14 @@ aldebaran,139,63,4 script Guide#01aldebaran::GuideAldearan 105,{
end;
}
}
+ end;
+L_Mark:
+ mes "[Al De Baran Guide]";
+ mes "Let me mark the location of the";
+ mes getarg(0);
+ mes "on your mini-map.";
+ return;
}
-
-aldebaran,243,143,2 duplicate(GuideAldearan) Guide#02aldebaran 105
-aldebaran,135,243,4 duplicate(GuideAldearan) Guide#03aldebaran 105
-aldebaran,36,135,6 duplicate(GuideAldearan) Guide#04aldebaran 105
+aldebaran,243,143,2 duplicate(GuideAldearan) Guide#02aldebaran 8W_SOLDIER
+aldebaran,135,243,4 duplicate(GuideAldearan) Guide#03aldebaran 8W_SOLDIER
+aldebaran,36,135,6 duplicate(GuideAldearan) Guide#04aldebaran 8W_SOLDIER
diff --git a/npc/re/guides/guides_amatsu.txt b/npc/re/guides/guides_amatsu.txt
index 4ab124e27..e08569831 100644
--- a/npc/re/guides/guides_amatsu.txt
+++ b/npc/re/guides/guides_amatsu.txt
@@ -3,18 +3,17 @@
//===== By: ==================================================
//= L0ne_W0lf
//===== Current Version: =====================================
-//= 1.1
-//===== Compatible With: =====================================
-//= Hercules
+//= 1.2
//===== Description: =========================================
//= [Official Conversion]
//= Guide for the city of Amatsu.
//===== Additional Comments: =================================
//= 1.0 First version, Renewal guide.
//= 1.1 Optimized. [Euphy]
+//= 1.2 Navigation system update. [Euphy]
//============================================================
-amatsu,202,91,3 script Amatsu Guide#amatsu 758,{
+amatsu,202,91,3 script Amatsu Guide#amatsu 4_F_JPN,{
mes "[Amachang]";
mes "Welcome to ^8B4513Amatsu^000000,";
mes "the town of kind towners";
@@ -27,39 +26,40 @@ amatsu,202,91,3 script Amatsu Guide#amatsu 758,{
mes "as Miss Amatsu.";
mes "Please tell me";
mes "if you want to know something.";
+ F_Navi("[Amachang]");
while (1) {
next;
switch(select("[ Kafra Employee ]:[ Bar ]:[ Weapon Dealer ]:[ Tool Dealer ]:[ Amatsu Palace ]:[ Chef Assistant ]:[ Ninja Guild Building ]:[ Sea Captain ]:Remove Marks from Mini-Map:Cancel")) {
case 1:
- callsub L_Mark,"^0000FFKafra Employee";
+ callsub L_Mark, "^0000FFKafra Employee^000000";
viewpoint 1,102,149,0,0x0A82FF;
break;
case 2:
- callsub L_Mark,"^006400Bar";
+ callsub L_Mark, F_Navi("Bar","amatsu,215,116","^006400");
viewpoint 1,215,116,1,0xAAFF00;
break;
case 3:
- callsub L_Mark,"^008080Weapon Dealer";
+ callsub L_Mark, F_Navi("Weapon Dealer","amatsu,129,117","^008080");
viewpoint 1,129,117,2,0x008080;
break;
case 4:
- callsub L_Mark,"^FF1493Tool Dealer";
+ callsub L_Mark, F_Navi("Tool Dealer","amatsu,97,117","^FF1493");
viewpoint 1,97,117,3,0xFF1493;
break;
case 5:
- callsub L_Mark,"^8B4513Amatsu Palace";
+ callsub L_Mark, F_Navi("Amatsu Palace","amatsu,87,235","^8B4513");
viewpoint 1,87,235,4,0x8B4513;
break;
case 6:
- callsub L_Mark,"^8A2BE2Chef Assistant";
+ callsub L_Mark, F_Navi("Chef Assistant","amatsu,206,150","^8A2BE2");
viewpoint 1,206,150,5,0x8A2BE2;
break;
case 7:
- callsub L_Mark,"^4B0082Ninja Guild Building";
+ callsub L_Mark, F_Navi("Ninja Guild Building","amatsu,148,137","^4B0082");
viewpoint 1,148,137,6,0x4B0082;
break;
case 8:
- callsub L_Mark,"^00BFFFSea Captain";
+ callsub L_Mark, F_Navi("Sea Captain","amatsu,195,79","^00BFFF");
viewpoint 1,195,79,7,0x00BFFF;
break;
case 9:
@@ -84,7 +84,7 @@ amatsu,202,91,3 script Amatsu Guide#amatsu 758,{
end;
L_Mark:
mes "[Amachang]";
- mes "The "+getarg(0)+"^000000 is";
+ mes "The "+getarg(0)+" is";
mes "marked on your mini-map.";
mes "Is there anything else I can do for you?";
return;
diff --git a/npc/re/guides/guides_ayothaya.txt b/npc/re/guides/guides_ayothaya.txt
index 135e34671..6d351d4d6 100644
--- a/npc/re/guides/guides_ayothaya.txt
+++ b/npc/re/guides/guides_ayothaya.txt
@@ -3,73 +3,77 @@
//===== By: ==================================================
//= L0ne_W0lf
//===== Current Version: =====================================
-//= 1.1
-//===== Compatible With: =====================================
-//= Hercules
+//= 1.2
//===== Description: =========================================
//= [Official Conversion]
-//= Guide for the city of Ayothaya
+//= Guide for the city of Ayothaya.
//===== Additional Comments: =================================
//= 1.0 First version, Renewal guide.
//= 1.1 Added missing case. [Joseph]
+//= 1.2 Navigation system update. [Euphy]
//============================================================
-ayothaya,203,169,4 script Ayothaya Guide Noi#01ay 839,{
- mes "[Noi]";
+ayothaya,203,169,4 script Ayothaya Guide Noi#01ay 4_F_THAIGIRL,{
+ if (strnpcinfo(0) == "Ayothaya Guide Noi#01ay")
+ set .@n$, "[Noi]";
+ else
+ set .@n$, "[Noa]";
+ mes .@n$;
mes "Hello~";
mes "Welcome to ^8B4513Ayothaya^000000.";
mes "This town is linked to a river through the wild forest.";
mes "It's a really calm country.";
mes "Take your time to look around.";
+ F_Navi(.@n$);
while (1) {
next;
switch(select("[ Weapon Shop ]:[ Tool Shop ]:[ Tavern ]:[ Shrine ]:[ Fishing Spot ]:[ Aibakthing ]:Remove Marks from Mini-Map:Cancel")) {
case 1:
- mes "[Noi]";
- mes "The ^0000FFWeapon Shop^000000";
+ mes .@n$;
+ mes "The "+F_Navi("Weapon Shop","ayothaya,163,90","^0000FF");
mes "in Ayothaya has special weapons.";
mes "You can find great weapons there.";
mes "Is there anything else I can do for you?";
viewpoint 1,163,90,0,0x0A82FF;
break;
case 2:
- mes "[Noi]";
- mes "Our citizens purchase many products in the ^006400Tool Shop^000000.";
+ mes .@n$;
+ mes "Our citizens purchase many products in the "+F_Navi("Tool Shop","ayothaya,131,86","^006400")+".";
mes "Make sure you get all you need there.";
- mes "Do you need anything else??";
+ mes "Do you need anything else?";
viewpoint 1,131,86,1,0xAAFF00;
break;
case 3:
- mes "[Noi]";
+ mes .@n$;
mes "Part of adventuring is collecting information.";
- mes "The ^008080Tavern^000000 is crowded with lots of travelers where you can get useful information.";
+ mes "The "+F_Navi("Tavern","ayothaya,229,72","^008080")+" is crowded with lots of travelers where you can get useful information.";
mes "Is there anything else I can do for you?";
viewpoint 1,229,72,2,0x008080;
break;
case 4:
- mes "[Noi]";
- mes "To calm your heart, go to the ^FF1493Shrine^000000 and say a prayer.";
+ mes .@n$;
+ mes "To calm your heart, go to the "+F_Navi("Shrine","ayothaya,208,280","^FF1493")+" and say a prayer.";
mes "Is there anything else I can do for you?";
viewpoint 1,208,280,3,0xFF1493;
break;
case 5:
- mes "[Noi]";
+ mes .@n$;
mes "Ayothaya is close to the beach, so most people enjoy fishing.";
mes "They really love to fish.";
- mes "Go ^8B4513fishing^000000 and try to grab a big fish.";
+ mes "Go "+F_Navi("fishing","ayothaya,255,99","^8B4513")+" and try to grab a big fish.";
mes "Is there anything else I can do for you?";
viewpoint 1,255,99,4,0x8B4513;
break;
case 6:
- mes "[Noi]";
+ mes .@n$;
mes "If you want to return home";
- mes "find ^00BFFFAibakthing^000000";
+ mes "find "+F_Navi("Aibakthing","ayothaya,151,68","^00BFFF");
mes "and ask him to send you back.";
mes "Is there anything else I can do for you?";
viewpoint 1,151,68,5,0x00BFFF;
break;
case 7:
- mes "[Noi]";
+ mes .@n$;
mes "I'll remove all marks from your mini-map.";
mes "Do you need anything else??";
viewpoint 2,1,1,0,0xFFFFFF;
@@ -80,91 +84,10 @@ ayothaya,203,169,4 script Ayothaya Guide Noi#01ay 839,{
viewpoint 2,1,1,5,0xFFFFFF;
break;
case 8:
- mes "[Noi]";
- mes "Enjoy your trip~!";
- close;
- }
- }
-}
-
-ayothaya,146,86,4 script Ayothaya Guide Noa#01ay 839,{
- mes "[Noa]";
- mes "Hello~";
- mes "Welcome to ^8B4513Ayothaya^000000.";
- mes "This town is linked to a river through the wild forest.";
- mes "It's a really calm country.";
- mes "Take your time to look around.";
- while (1) {
- next;
- switch(select("[ Kafra Employee ]:[ Weapon Shop ]:[ Tool Shop ]:[ Tavern ]:[ Shrine ]:[ Fishing Spot ]:[ Aibakthing ]:Remove Marks from Mini-Map:Cancel")) {
- case 1:
- mes "[Noa]";
- mes "The ^0000FFKafra Employee^000000 is";
- mes "marked on your mini-map.";
- mes "Check your mini-map.";
- mes "Is there anything else I can do for you?";
- viewpoint 1,212,169,0,0x0A82FF;
- break;
- case 2:
- mes "[Noa]";
- mes "The ^0000FFWeapon Shop^000000";
- mes "in Ayothaya has special weapons.";
- mes "You can find great weapons there.";
- mes "Is there anything else I can do for you?";
- viewpoint 1,163,90,1,0xAAFF00;
- break;
- case 3:
- mes "[Noa]";
- mes "Our citizens purchase many products in the ^006400Tool Shop^000000.";
- mes "Make sure you get all you need there.";
- mes "Do you need anything else??";
- viewpoint 1,131,86,2,0x008080;
- break;
- case 4:
- mes "[Noa]";
- mes "Part of adventuring is collecting information.";
- mes "The ^008080Tavern^000000 is crowded with lots of travelers where you can get useful information.";
- mes "Is there anything else I can do for you?";
- viewpoint 1,229,72,3,0xFF1493;
- break;
- case 5:
- mes "[Noa]";
- mes "To calm your heart, go to the ^FF1493Shrine^000000 and say a prayer.";
- mes "Is there anything else I can do for you?";
- viewpoint 1,208,280,4,0x8B4513;
- break;
- case 6:
- mes "[Noa]";
- mes "Ayothaya is close to the beach, so most people enjoy fishing.";
- mes "They really love to fish.";
- mes "Go ^8B4513fishing^000000 and try to grab a big fish.";
- mes "Is there anything else I can do for you?";
- viewpoint 1,255,99,5,0x9400D3;
- break;
- case 7:
- mes "[Noa]";
- mes "If you want to return home";
- mes "find ^00BFFFAibakthing^000000";
- mes "and ask him to send you back.";
- mes "Is there anything else I can do for you?";
- viewpoint 1,151,68,6,0x00BFFF;
- break;
- case 8:
- mes "[Noa]";
- mes "I'll remove all marks from your mini-map.";
- mes "Do you need anything else??";
- viewpoint 2,1,1,0,0xFFFFFF;
- viewpoint 2,1,1,1,0xFFFFFF;
- viewpoint 2,1,1,2,0xFFFFFF;
- viewpoint 2,1,1,3,0xFFFFFF;
- viewpoint 2,1,1,4,0xFFFFFF;
- viewpoint 2,1,1,5,0xFFFFFF;
- viewpoint 2,1,1,6,0xFFFFFF;
- break;
- case 9:
- mes "[Noa]";
+ mes .@n$;
mes "Enjoy your trip~!";
close;
}
}
}
+ayothaya,146,86,4 duplicate(Ayothaya Guide Noi#01ay) Ayothaya Guide Noa#02ay 4_F_THAIGIRL
diff --git a/npc/re/guides/guides_brasilis.txt b/npc/re/guides/guides_brasilis.txt
index b94dc87f0..05f6a47d7 100644
--- a/npc/re/guides/guides_brasilis.txt
+++ b/npc/re/guides/guides_brasilis.txt
@@ -3,79 +3,73 @@
//===== By: ==================================================
//= L0ne_W0lf
//===== Current Version: =====================================
-//= 1.1
-//===== Compatible With: =====================================
-//= Hercules
+//= 1.2
//===== Description: =========================================
//= [Official Conversion]
-//= Guide for the city of Brasilis
+//= Guide for the city of Brasilis.
//===== Additional Comments: =================================
//= 1.0 First Version, Renewal guide.
//= 1.1 Added a missing close.
+//= 1.2 Navigation system update. [Euphy]
//============================================================
-brasilis,219,97,3 script Brasilis Guide 478,{
+brasilis,219,97,3 script Brasilis Guide 4_F_BRZ_WOMAN,{
mes "[Brasilis Guide]";
mes "Welcome to ^8B4513Brasilis^000000, a country as passionate as the sun.";
mes "If you have any questions, please ask me.";
+ F_Navi("[Brasilis Guide]");
next;
- mes "[Brasilis Guide]";
- mes "Where can I guide you?";
- while (1){
+ switch(select("Ask about locations:Remove Marks from Mini-Map:Cancel")) {
+ case 1:
+ mes "[Brasilis Guide]";
+ mes "Where can I guide you?";
next;
- switch(select("[ Hotel ]:[ Jungle Cable ]:[ Art Museum ]:[ Market ]:[ Verass Monument ]:Remove marks from Mini-Map:Cancel")) {
+ switch(select("[ Hotel ]:[ Jungle Cable ]:[ Art Museum ]:[ Market ]:[ Verass Monument ]")) {
case 1:
mes "[Brasilis Guide]";
- mes "The Brasilis Hotel is located just above, ^FF3355+^000000.";
+ mes "The "+F_Navi("Brasilis Hotel","brasilis,274,151")+" is located just above, ^FF3355+^000000.";
mes "Is there anything else I can do for you?";
viewpoint 1,274,151,2,0xFF3355;
- next;
- break;
+ close;
case 2:
mes "[Brasilis Guide]";
- mes "Do you want to go through the rough jungle? You can take a Jungle Cable here ^CE6300+^000000.";
+ mes "Do you want to go through the rough jungle? You can take a ";
+ mes F_Navi("Jungle Cable","brasilis,308,335")+" here ^CE6300+^000000.";
mes "Is there anything else I can do for you?";
viewpoint 1,308,335,3,0xCE6300;
- next;
- break;
+ close;
case 3:
mes "[Brasilis Guide]";
- mes "The pride of Brasilis, the world scale Art Museum is at ^A5BAAD+^000000.";
+ mes "The pride of Brasilis, the world scale "+F_Navi("Art Museum","brasilis,137,167")+" is at ^A5BAAD+^000000.";
mes "Is there anything else I can do for you?";
viewpoint 1,137,167,4,0x00FF00;
- next;
- break;
+ close;
case 4:
mes "[Brasilis Guide]";
- mes "You can buy items for hunting at the Market here ^55FF33+^000000.";
+ mes "You can buy items for hunting at the "+F_Navi("Market","brasilis,254,248")+" here ^55FF33+^000000.";
mes "Is there anything else I can do for you?";
viewpoint 1,254,248,5,0x55FF33;
- next;
- break;
+ close;
case 5:
mes "[Brasilis Guide]";
- mes "The iconic monument of Brasilis, the Verass Monument stands at ^3355FF+^000000.";
+ mes "The iconic monument of Brasilis, the "+F_Navi("Verass Monument","brasilis,195,222")+" stands at ^3355FF+^000000.";
mes "Is there anything else I can do for you?";
viewpoint 1,195,235,6,0x3355FF;
- next;
- break;
- case 6:
- mes "[Brasilis Guide]";
- mes "I'll remove all marks from your mini-map.";
- mes "Is there anything else I can do for you?";
- viewpoint 0,274,151,2,0x00FF00;
- viewpoint 0,308,335,3,0x00FF00;
- viewpoint 0,137,167,4,0x00FF00;
- viewpoint 0,254,248,5,0x00FF00;
- viewpoint 0,195,235,6,0x00FF00;
- next;
- break;
- case 7:
- mes "[Brasilis Guide]";
- mes "Wandering on your own is always the best way to explore. Anyway, take care.";
close;
}
+ case 2:
+ mes "[Brasilis Guide]";
+ mes "I'll remove all marks from your mini-map.";
+ mes "Is there anything else I can do for you?";
+ viewpoint 0,274,151,2,0x00FF00;
+ viewpoint 0,308,335,3,0x00FF00;
+ viewpoint 0,137,167,4,0x00FF00;
+ viewpoint 0,254,248,5,0x00FF00;
+ viewpoint 0,195,235,6,0x00FF00;
+ close;
+ case 3:
+ mes "[Brasilis Guide]";
+ mes "Wandering on your own is always the best way to explore. Anyway, take care.";
close;
- break;
}
}
diff --git a/npc/re/guides/guides_comodo.txt b/npc/re/guides/guides_comodo.txt
index 59988459e..6b584714e 100644
--- a/npc/re/guides/guides_comodo.txt
+++ b/npc/re/guides/guides_comodo.txt
@@ -3,22 +3,22 @@
//===== By: ==================================================
//= L0ne_W0lf
//===== Current Version: =====================================
-//= 1.1
-//===== Compatible With: =====================================
-//= Hercules
+//= 1.2
//===== Description: =========================================
//= [Official Conversion]
//= Guides for the city of Comodo.
//===== Additional Comments: =================================
//= 1.0 First version, Renewal guide.
//= 1.1 Fixed and optimized. [Euphy]
+//= 1.2 Navigation system update. [Euphy]
//============================================================
-comodo,322,178,4 script Comodo Guide#01comodo::GuideComodo 700,{
+comodo,322,178,4 script Comodo Guide#01comodo::GuideComodo 8_F_GIRL,{
mes "[Comodo Guide]";
mes "Welcome to ^8B4513Comodo^000000,";
mes "the Beach Town of the Rune-Midgarts Kingdom.";
mes "Do you need help navigating the town?";
+ F_Navi("[Comodo Guide]");
next;
while (1) {
switch(select("[ Main Facilities ]:[ Merchants & Helpers ]:Remove Marks from Mini-Map:Cancel:About ^8B4513Comodo^000000")) {
@@ -27,57 +27,61 @@ comodo,322,178,4 script Comodo Guide#01comodo::GuideComodo 700,{
while (.@loop) {
switch(select("[ Tavern ]:[ Casino ]:[ Weapon & Armor Shop ]:[ Tool Shop ]:[ Campsite ]:[ Souvenir Vendor ]:[ East Cave Mao ]:[ West Cave Karu ]:[ North Cave Ruanda ]:[ Hula Dance Stage ]:[ Kafra Co. Western Branch ]:Previous Menu")) {
case 1:
- callsub L_Mark,"^FF0000Tavern";
+ callsub L_Mark, F_Navi("Tavern","comodo,161,315","^FF0000");
viewpoint 1,166,298,0,0xFF0000;
next;
break;
case 2:
- callsub L_Mark,"^FFA500Casino";
+ callsub L_Mark, F_Navi("Casino","comodo,140,111","^FFA500");
viewpoint 1,140,98,1,0xFFA500;
next;
break;
case 3:
- callsub L_Mark,"^FF4500Weapon & Armor Shop";
+ callsub L_Mark, F_Navi("Weapon & Armor Shop","comodo,266,74","^FF4500");
viewpoint 1,266,70,2,0xFF4500;
next;
break;
case 4:
- callsub L_Mark,"^B8860BTool Shop";
+ callsub L_Mark, F_Navi("Tool Shop","comodo,92,128","^B8860B");
viewpoint 1,86,128,3,0xB8860B;
next;
break;
case 5:
- callsub L_Mark,"^32CD32Campsite";
+ callsub L_Mark, F_Navi("Campsite","comodo,209,308","^32CD32");
viewpoint 1,210,308,4,0x32CD32;
next;
break;
case 6:
- callsub L_Mark,"^6B8E23Souvenir Vendor";
+ callsub L_Mark, F_Navi("Souvenir Vendor","comodo,293,125","^6B8E23");
viewpoint 1,298,124,5,0x6B8E23;
next;
break;
case 7:
- callsub L_Mark,"^008B8BEast Cave Mao",1;
+ callsub L_Mark, F_Navi("East Cave Mao","comodo,333,175","^008B8B");
viewpoint 1,333,175,6,0x008B8B;
next;
break;
case 8:
- callsub L_Mark,"^1E90FFWest Cave Karu",1;
+ callsub L_Mark, F_Navi("West Cave Karu","comodo,24,214","^1E90FF");
viewpoint 1,24,214,7,0x1E90FF;
next;
break;
case 9:
- callsub L_Mark,"^0000CDNorth Cave Ruanda",1;
+ callsub L_Mark, F_Navi("North Cave Ruanda","comodo,176,358","^0000CD");
viewpoint 1,176,358,8,0x0000CD;
next;
break;
case 10:
- callsub L_Mark,"^C71585Hula Dance Stage";
+ callsub L_Mark, F_Navi("Hula Dance Stage","comodo,188,168","^C71585");
viewpoint 1,188,168,9,0xC71585;
next;
break;
case 11:
- callsub L_Mark,"^DB7093Kafra Corporation Western Branch";
+ mes "[Comodo Guide]";
+ mes "Let me mark the location of the";
+ mes F_Navi("Kafra Corporation Western Branch","comodo,131,195","^DB7093");
+ mes "on your mini-map.";
+ mes "Would you like to check any other locations?";
viewpoint 1,136,202,10,0xDB7093;
next;
break;
@@ -92,26 +96,26 @@ comodo,322,178,4 script Comodo Guide#01comodo::GuideComodo 700,{
while (.@loop) {
switch(select("[ Chief's House ]:[ Bor Robin ]:[ Kafra Employee ]:[ Roaming Bard ]:Previous Menu")) {
case 1:
- callsub L_Mark,"^6495EDChief's House";
+ callsub L_Mark, F_Navi("Chief's House","comodo,115,290","^6495ED");
viewpoint 1,114,294,11,0x6495ED;
next;
break;
case 2:
mes "[Comodo Guide]";
- mes "^228B22Bor Robin^000000";
+ mes F_Navi("Bor Robin","comodo,193,151","^228B22");
mes "helps adventurers to become ^228B22Dancers^000000.";
mes "Would you like to check any other locations?";
viewpoint 1,193,151,12,0x228B22;
next;
break;
case 3:
- callsub L_Mark,"^1E90FFKafra Employee";
+ callsub L_Mark,"^1E90FFKafra Employee^000000";
viewpoint 1,195,149,13,0x1E90FF;
next;
break;
case 4:
mes "[Comodo Guide]";
- mes "The ^DB7093Roaming Bard^000000";
+ mes "The "+F_Navi("Roaming Bard","comodo,211,155","^DB7093");
mes "helps adventurers to become ^DB7093Bards^000000.";
mes "Would you like to check any other locations?";
viewpoint 1,211,155,14,0xDB7093;
@@ -167,12 +171,11 @@ comodo,322,178,4 script Comodo Guide#01comodo::GuideComodo 700,{
L_Mark:
mes "[Comodo Guide]";
mes "Let me mark the location of";
- mes ((getarg(1,0))?"":"the ")+getarg(0)+"^000000";
+ mes "the "+getarg(0);
mes "on your mini-map.";
mes "Would you like to check any other locations?";
return;
}
-
-comodo,181,347,4 duplicate(GuideComodo) Comodo Guide#02comodo 700
-comodo,197,149,3 duplicate(GuideComodo) Comodo Guide#03comodo 700
-comodo,37,219,4 duplicate(GuideComodo) Comodo Guide#04comodo 700
+comodo,181,347,4 duplicate(GuideComodo) Comodo Guide#02comodo 8_F_GIRL
+comodo,197,149,3 duplicate(GuideComodo) Comodo Guide#03comodo 8_F_GIRL
+comodo,37,219,4 duplicate(GuideComodo) Comodo Guide#04comodo 8_F_GIRL
diff --git a/npc/re/guides/guides_dewata.txt b/npc/re/guides/guides_dewata.txt
index 28b8696c8..91786f2d6 100644
--- a/npc/re/guides/guides_dewata.txt
+++ b/npc/re/guides/guides_dewata.txt
@@ -1,19 +1,18 @@
//===== Hercules Script ======================================
//= Dewata Guide
-//===== By: ==================================================
+//===== By: ==================================================
//= Muad_Dib
-//===== Current Version: =====================================
-//= 1.0
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Current Version: =====================================
+//= 1.1
+//===== Description: =========================================
//= [Official Conversion]
//= Guide for the city of Dewata.
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First version. [Lemongrass]
-//============================================================
+//= 1.1 Navigation system update. [Euphy]
+//============================================================
-dewata,202,106,4 script Dewata Guide#dewata01 535,{
+dewata,202,106,4 script Dewata Guide#dewata01 4_M_DEWOLDWOMAN,{
mes "[Dewata Guide]";
mes "Welcome to ^8B4513Dewata Island^000000,";
mes "a place with dazzling waves and charming views it's a great place to relax.";
@@ -21,71 +20,63 @@ dewata,202,106,4 script Dewata Guide#dewata01 535,{
next;
mes "[Dewata Guide]";
mes "Where can I guide you?";
+ F_Navi("[Dewata Guide]");
while (1) {
next;
- switch(select("[ Kafra Employee ]:[ Weapon Dealer ]:[ Armor Dealer ]:[ Tool Dealer ]:[ Krakatau Gatekeeper ]:[ Lodge Owner ]:[ Alberta Sailor ]:Remove marks from Mini-Map:Cancel")) {
- case 1:
- callsub L_Mark,"^0000FFKafra Employee";
- viewpoint 1,202,184,0,0x000FFF;
- break;
-
- case 2:
- callsub L_Mark,"^008080Armor Dealer";
- viewpoint 1,218,163,1,0x008080;
- break;
-
- case 3:
- callsub L_Mark,"^008080Weapon Dealer";
- viewpoint 1,158,182,2,0x008080;
- break;
-
- case 4:
- callsub L_Mark,"^FF1493Tool Dealer";
- viewpoint 1,182,164,3,0xFF1493;
- break;
-
- case 5:
- callsub L_Mark,"^FF1493Krakau Gatekeeper";
- viewpoint 1,232,59,4,0xFF1493;
- break;
-
- case 6:
- callsub L_Mark,"^8A2BE2Lodge Owner";
- viewpoint 1,195,235,5,0x8A2BE2;
- break;
-
- case 7:
- callsub L_Mark,"^00BFFFAlberta Sailor";
- viewpoint 1,230,52,6,0x00BFFF;
- break;
-
- case 8:
- mes "[Dewata Guide]";
- mes "I'll remove all marks from your mini-map.";
- mes "Is there anything else I can do for you?";
- viewpoint 2,202,184,0,0xFFFFFF;
- viewpoint 2,218,163,1,0xFFFFFF;
- viewpoint 2,158,182,2,0xFFFFFF;
- viewpoint 2,182,164,3,0xFFFFFF;
- viewpoint 2,232,59,4,0xFFFFFF;
- viewpoint 2,195,235,5,0xFFFFFF;
- viewpoint 2,230,52,6,0xFFFFFF;
- break;
-
- case 9:
- mes "[Dewata Guide]";
- mes "Enjoy your trip!!";
- close;
+ switch(select("[ Kafra Employee ]:[ Weapon Dealer ]:[ Armor Dealer ]:[ Tool Dealer ]:[ Restauranteur ]:[ Krakatau Gatekeeper ]:[ Alberta Sailor ]:Remove marks from Mini-Map:Cancel")) {
+ case 1:
+ callsub L_Mark, "^0000FFKafra Employee^000000";
+ viewpoint 1,202,184,0,0x000FFF;
+ break;
+ case 2:
+ callsub L_Mark, F_Navi("Weapon Dealer","dewata,218,164","^008080");
+ viewpoint 1,218,163,1,0x008080;
+ break;
+ case 3:
+ callsub L_Mark, F_Navi("Armor Dealer","dewata,158,182","^008080");
+ viewpoint 1,158,182,2,0x008080;
+ break;
+ case 4:
+ callsub L_Mark, F_Navi("Tool Dealer","dewata,182,164","^FF1493");
+ viewpoint 1,182,164,3,0xFF1493;
+ break;
+ case 5:
+ callsub L_Mark, F_Navi("Restauranteur","dewata,146,109","^FF1493");
+ viewpoint 1,146,109,4,0xFF1493;
+ break;
+ case 6:
+ callsub L_Mark, F_Navi("Krakau Gatekeeper","dewata,235,56","^8A2BE2");
+ viewpoint 1,235,56,5,0x8A2BE2;
+ break;
+ case 7:
+ callsub L_Mark, F_Navi("Alberta Sailor","dewata,229,49","^00BFFF");
+ viewpoint 1,229,49,6,0x00BFFF;
+ break;
+ case 8:
+ mes "[Dewata Guide]";
+ mes "I'll remove all marks from your mini-map.";
+ mes "Is there anything else I can do for you?";
+ viewpoint 2,202,184,0,0xFFFFFF;
+ viewpoint 2,218,163,1,0xFFFFFF;
+ viewpoint 2,158,182,2,0xFFFFFF;
+ viewpoint 2,182,164,3,0xFFFFFF;
+ viewpoint 2,232,59,4,0xFFFFFF;
+ viewpoint 2,195,235,5,0xFFFFFF;
+ viewpoint 2,230,52,6,0xFFFFFF;
+ break;
+ case 9:
+ mes "[Dewata Guide]";
+ mes "Enjoy your trip!!";
+ close;
}
}
L_Mark:
mes "[Dewata Guide]";
- mes "The "+getarg(0)+"^000000 is";
+ mes "The "+getarg(0)+" is";
mes "marked on your mini-map.";
mes "Check your mini-map.";
mes "Is there anything else I can do for you?";
return;
}
-
-dewata,197,184,4 duplicate(Dewata Guide#dewata01) Dewata Guide#dewata02 535
+dewata,197,184,4 duplicate(Dewata Guide#dewata01) Dewata Guide#dewata02 4_M_DEWOLDWOMAN
diff --git a/npc/re/guides/guides_dicastes.txt b/npc/re/guides/guides_dicastes.txt
index d2e079da8..9feca9df7 100644
--- a/npc/re/guides/guides_dicastes.txt
+++ b/npc/re/guides/guides_dicastes.txt
@@ -1,20 +1,19 @@
//===== Hercules Script ======================================
//= El Dicastes Guide
-//===== By: ==================================================
+//===== By: ==================================================
//= Muad_Dib
-//===== Current Version: =====================================
-//= 1.1
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Current Version: =====================================
+//= 1.2
+//===== Description: =========================================
//= [Official Conversion]
//= Guide for the city of El Dicastes.
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First version. [Joseph]
//= 1.1 Fixed viewpoint syntax. [Euphy]
-//============================================================
+//= 1.2 Navigation system update. [Euphy]
+//============================================================
-dicastes01,181,191,5 script Traveler Ichack#info 481,2,2,{
+dicastes01,181,191,5 script Traveler Ichack#info 4_M_SHADOWCHASER,2,2,{
mes "[Traveler Ichack]";
mes "Oh!! You are a stranger!";
mes "I'm Ichack, the first adventurer that arrived here in El Dicastes!";
@@ -25,6 +24,7 @@ dicastes01,181,191,5 script Traveler Ichack#info 481,2,2,{
mes "[Traveler Ichack]";
mes "That's why I will provide a service to guide adventurers from Rune-Midgard.";
mes "What would you like to know?";
+ F_Navi("[Traveler Ichack]");
next;
switch(select("Dicastes Diel:Residential Area:Training Room:Factory:Pub:Cat Hand Caravan")) {
case 1:
@@ -33,9 +33,9 @@ dicastes01,181,191,5 script Traveler Ichack#info 481,2,2,{
mes "It's said they discuss important things...";
next;
mes "[Traveler Ichack]";
- mes "Please make sure you signed in at the dior, otherwise you'll get in trouble.";
+ mes "Please make sure you signed in at the "+F_Navi("Diel","dicastes01,198,351")+", otherwise you'll get in trouble.";
mes "Go directly north from here and you can't miss it.";
- viewpoint 1,351,198,0,0x00FF00;
+ viewpoint 1,198,351,0,0x00FF00;
close;
case 2:
mes "[Traveler Ichack]";
@@ -46,43 +46,45 @@ dicastes01,181,191,5 script Traveler Ichack#info 481,2,2,{
mes "You won't believe me until you see it! Go see it for yourself!";
next;
mes "[Traveler Ichack]";
- mes "The residential area is divided into 2 area's.";
- mes "The lower residential area is around 7 o'clock and, the upper area is around 1 o'clock.";
- viewpoint 1,283,280,1,0x01FF01;
- viewpoint 1,106,136,2,0x0066FF;
+ mes "The residential area is divided into 2 areas.";
+ mes "The "+F_Navi("lower residential area","dicastes01,136,106")+" is around 7 o'clock, and the ";
+ mes F_Navi("upper area","dicastes01,280,283")+" is around 1 o'clock.";
+ viewpoint 1,280,283,1,0x01FF01;
+ viewpoint 1,136,106,2,0x0066FF;
close;
case 3:
mes "[Traveler Ichack]";
- mes "Because of the dangers here, we need better security..";
- mes "Have you ever been to the training room? The training guards seem to never sleep!";
- viewpoint 1,172,255,3,0xFFCCCC;
+ mes "Because of the dangers here, we need better security...";
+ mes "Have you ever been to the ";
+ mes F_Navi("training room","dicastes01,255,172")+"? The training guards seem to never sleep!";
+ viewpoint 1,255,172,3,0xFFCCCC;
close;
case 4:
mes "[Traveler Ichack]";
mes "This is one of the most important reasons why they live here.";
- mes "If you go to factory, you can see the recently refined Bradium.";
- viewpoint 1,256,97,4,0x0066FF;
+ mes "If you go to the "+F_Navi("factory","dicastes01,97,256")+", you can see the recently refined Bradium.";
+ viewpoint 1,97,256,4,0x0066FF;
close;
case 5:
mes "[Traveler Ichack]";
mes "Although I arrived here as the first adventurer, the owner of the pub was the first person here.";
- mes "Bumen Florine's pub is located underground in the lower residential area.";
+ mes F_Navi("Bumen Florine's pub","dicastes01,136,106")+" is located underground in the lower residential area.";
mes "He might have some valuable information for you.";
- viewpoint 1,106,136,5,0xFF3300;
+ viewpoint 1,136,106,5,0xFF3300;
close;
case 6:
mes "[Traveler Ichack]";
- mes "The cats seems that don't have good relationship with sapha same as us.";
+ mes "The "+F_Navi("cats","dicastes01,199,39")+" don't seem to have a good relationship with the Sapha like we do.";
mes "Perhaps it's because trading is involved.";
mes "Poor cats. They must be shivering from the cold out there.";
next;
mes "[Traveler Ichack]";
mes "You can find their caravan just outside the gates.";
- viewpoint 1,39,199,6,0x9933FF;
+ viewpoint 1,199,39,6,0x9933FF;
close;
}
OnTouch:
- if (ep13_3_invite == 6)
+ if (ep13_3_invite == 6)
emotion e_gasp,0;
end;
}
diff --git a/npc/re/guides/guides_eclage.txt b/npc/re/guides/guides_eclage.txt
new file mode 100644
index 000000000..177813e1c
--- /dev/null
+++ b/npc/re/guides/guides_eclage.txt
@@ -0,0 +1,49 @@
+//===== Hercules Script ======================================
+//= Eclage Guides
+//===== By: ==================================================
+//= Euphy
+//===== Current Version: =====================================
+//= 1.0
+//===== Description: =========================================
+//= Guides for the city of Eclage.
+//===== Additional Comments: =================================
+//= 1.0 First version. [Euphy]
+//============================================================
+
+ecl_in01,48,60,4 script Eclage Guard#obb 4_M_FAIRYSOLDIER,{
+ mes "[Eclage Guard]";
+ mes "Welcome, Adventurer. This is the plaza of Eclage, a great and sacred tree. How can I help you?";
+ next;
+ switch(select("Palace:Orb:Store:Prison:Clinic:Residential Area:Finish the conversation")) {
+ case 1:
+ mes "[Eclage Guard]";
+ mes "Our great king, courageous generals, and scholars are all staying at the palace.";
+ mes "The palace is located at the top of Eclage. We usually fly there, but I see you don't have wings. Follow the path on your right then. It will lead you to the palace.";
+ close;
+ case 2:
+ mes "[Eclage Guard]";
+ mes "The Orb behind me is like a symbol of us Laphines.";
+ mes "It's filled with great and mysterious power. We always keep an eye on it and guard it carefully.";
+ close;
+ case 3:
+ mes "[Eclage Guard]";
+ mes "This is the plaza of Eclage. You'll find everything you need around here.";
+ close;
+ case 4:
+ mes "[Eclage Guard]";
+ mes "Prison is a place for criminals. Why would an adventurer like you go there?";
+ mes "Well, it's a little suspicious...but I'll tell you the location. Follow the path on your left. They don't let anyone in though.";
+ close;
+ case 5:
+ mes "[Eclage Guard]";
+ mes "All your pain and weariness melt away in the arms of nature. Restore your mind and body at Eclage Clinic.";
+ mes "Follow the path on your left.";
+ close;
+ case 6:
+ mes "[Eclage Guard]";
+ mes "Haven't you seen our decorations for Yai? Take a trip outside. You'll see our residential area.";
+ close;
+ case 7:
+ close;
+ }
+}
diff --git a/npc/re/guides/guides_einbroch.txt b/npc/re/guides/guides_einbroch.txt
index 6d28cffef..697450f51 100644
--- a/npc/re/guides/guides_einbroch.txt
+++ b/npc/re/guides/guides_einbroch.txt
@@ -1,19 +1,18 @@
//===== Hercules Script ======================================
-//= Einbroch, and Einbech Guides
-//===== By: ==================================================
+//= Einbroch and Einbech Guides
+//===== By: ==================================================
//= L0ne_W0lf
-//===== Current Version: =====================================
-//= 1.0
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Current Version: =====================================
+//= 1.1
+//===== Description: =========================================
//= [Official Conversion]
-//= Guides for the city of Einbroch, and Einbech
-//===== Additional Comments: =================================
-//= 1.0 First version, Renewal guide.
-//============================================================
+//= Guides for the cities of Einbroch and Einbech.
+//===== Additional Comments: =================================
+//= 1.0 First version, Renewal guides.
+//= 1.1 Navigation system update. [Euphy]
+//============================================================
-einbroch,72,202,4 script Einbroch Guide#ein01::GuideEinbroch 852,{
+einbroch,72,202,4 script Einbroch Guide#ein01::GuideEinbroch 4_M_EIN_SOLDIER,{
cutin "ein_soldier",2;
mes "[Einbroch Guide]";
mes "Welcome";
@@ -21,6 +20,7 @@ einbroch,72,202,4 script Einbroch Guide#ein01::GuideEinbroch 852,{
mes "the City of Steel.";
mes "Please ask me if you";
mes "have any questions.";
+ F_Navi("[Einbroch Guide]");
next;
while (1) {
switch(select("[ Main Facilities ]:[ Merchants & Helpers ]:Remove Marks from Mini-Map:Cancel")) {
@@ -30,7 +30,7 @@ einbroch,72,202,4 script Einbroch Guide#ein01::GuideEinbroch 852,{
switch(select("[ Airport ]:[ Factory ]:[ Plaza ]:[ Hotel ]:[ Train Station ]:[ Weapon Shop ]:[ Laboratory ]:[ Monument ]:[ Blacksmith Guild ]:[ Gunslinger Guild ]:Previous Menu")) {
case 1:
mes "[Einbroch Guide]";
- mes "The ^FF0000Airport^000000 is located";
+ mes "The "+F_Navi("Airport","einbroch,64,204","^FF0000")+" 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.";
@@ -39,7 +39,7 @@ einbroch,72,202,4 script Einbroch Guide#ein01::GuideEinbroch 852,{
break;
case 2:
mes "[Einbroch Guide]";
- mes "The Factory, perhaps the";
+ mes "The "+F_Navi("Factory","einbroch,129,79")+", perhaps the";
mes "most important facility in";
mes "Einbroch, is located in the";
mes "southern part of the city.";
@@ -48,7 +48,7 @@ einbroch,72,202,4 script Einbroch Guide#ein01::GuideEinbroch 852,{
break;
case 3:
mes "[Einbroch Guide]";
- mes "The Plaza, our biggest";
+ mes "The "+F_Navi("Plaza","einbroch,129,79")+", our biggest";
mes "shopping district, can be";
mes "found just east from the";
mes "center of Einbroch.";
@@ -57,7 +57,7 @@ einbroch,72,202,4 script Einbroch Guide#ein01::GuideEinbroch 852,{
break;
case 4:
mes "[Einbroch Guide]";
- mes "The Hotel is east of";
+ mes "The "+F_Navi("Hotel","einbroch,254,199")+" is east of";
mes "the Plaza and offers top";
mes "caliber accomodations.";
mes "There, you can enjoy your";
@@ -67,7 +67,7 @@ einbroch,72,202,4 script Einbroch Guide#ein01::GuideEinbroch 852,{
break;
case 5:
mes "[Einbroch Guide]";
- mes "The Train Station is";
+ mes "The "+F_Navi("Train Station","einbroch,232,272")+" is";
mes "located in the northeast";
mes "part of Einbroch. Trains";
mes "running between here";
@@ -78,7 +78,7 @@ einbroch,72,202,4 script Einbroch Guide#ein01::GuideEinbroch 852,{
break;
case 6:
mes "[Einbroch Guide]";
- mes "The Weapon Shop is";
+ mes "The "+F_Navi("Weapon Shop","einbroch,216,211")+" is";
mes "located north from the";
mes "Plaza. There you can";
mes "purchase weapons for";
@@ -88,7 +88,7 @@ einbroch,72,202,4 script Einbroch Guide#ein01::GuideEinbroch 852,{
break;
case 7:
mes "[Einbroch Guide]";
- mes "The Laboratory is an";
+ mes "The "+F_Navi("Laboratory","einbroch,55,52")+" is an";
mes "annex of the Factory and";
mes "is located in the southwest";
mes "sector of Einbroch.";
@@ -98,7 +98,7 @@ einbroch,72,202,4 script Einbroch Guide#ein01::GuideEinbroch 852,{
case 8:
mes "[Einbroch Guide]";
mes "I will mark the location";
- mes "of the ^808080Monument^000000";
+ mes "of the "+F_Navi("Monument","einbroch,178,173","^808080");
mes "on your mini-map.";
mes "Would you like to check any other locations?";
viewpoint 1,178,173,7,0x808080;
@@ -106,7 +106,7 @@ einbroch,72,202,4 script Einbroch Guide#ein01::GuideEinbroch 852,{
break;
case 9:
mes "[Einbroch Guide]";
- mes "The Blacksmith Guild is";
+ mes "The "+F_Navi("Blacksmith Guild","einbroch,255,110")+" is";
mes "located in the southeast";
mes "part of Einbroch. You can";
mes "upgrade your equipment";
@@ -117,7 +117,7 @@ einbroch,72,202,4 script Einbroch Guide#ein01::GuideEinbroch 852,{
case 10:
mes "[Einbroch Guide]";
mes "I will mark the location";
- mes "of the ^008080Gunslinger Guild^000000";
+ mes "of the "+F_Navi("Gunslinger Guild","einbroch,130,197","^008080");
mes "on your mini-map.";
mes "Would you like to check any other locations?";
viewpoint 1,130,197,9,0x008080;
@@ -142,7 +142,7 @@ einbroch,72,202,4 script Einbroch Guide#ein01::GuideEinbroch 852,{
next;
mes "[Einbroch Guide]";
mes "I will mark the location";
- mes "of the ^FF1493Armsmith^000000";
+ mes "of the "+F_Navi("Armsmith","einbroch,255,110","^FF1493");
mes "on your mini-map.";
mes "Would you like to check any other locations?";
next;
@@ -166,7 +166,7 @@ einbroch,72,202,4 script Einbroch Guide#ein01::GuideEinbroch 852,{
next;
mes "[Einbroch Guide]";
mes "I will mark the location";
- mes "of the ^CD1039Eden Teleport Officer^000000";
+ mes "of the "+F_Navi("Eden Teleport Officer","einbroch,130,197","^CD1039");
mes "on your mini-map.";
mes "Would you like to check any other locations?";
next;
@@ -206,12 +206,11 @@ einbroch,72,202,4 script Einbroch Guide#ein01::GuideEinbroch 852,{
}
}
}
+einbroch,155,43,4 duplicate(GuideEinbroch) Einbroch Guide#ein02 4_M_EIN_SOLDIER
+einbroch,162,317,4 duplicate(GuideEinbroch) Einbroch Guide#ein03 4_M_EIN_SOLDIER
+einbroch,252,320,3 duplicate(GuideEinbroch) Einbroch Guide#ein04 4_M_EIN_SOLDIER
-einbroch,155,43,4 duplicate(GuideEinbroch) Einbroch Guide#ein02 852
-einbroch,162,317,4 duplicate(GuideEinbroch) Einbroch Guide#ein03 852
-einbroch,252,320,3 duplicate(GuideEinbroch) Einbroch Guide#ein04 852
-
-einbech,67,37,4 script Einbech Guide#einbech01::GuideEinbech 852,{
+einbech,67,37,4 script Einbech Guide#einbech01::GuideEinbech 4_M_EIN_SOLDIER,{
cutin "ein_soldier",2;
mes "[Einbech Guide]";
mes "Welcome to ^8B4513Einbech^000000,";
@@ -219,12 +218,13 @@ einbech,67,37,4 script Einbech Guide#einbech01::GuideEinbech 852,{
mes "here to assist tourists,";
mes "so if you have any questions,";
mes "please feel free to ask us.";
+ F_Navi("[Einbech Guide]");
next;
while (1) {
switch(select("[ Tavern ]:[ Tool Shop ]:[ Train Station ]:[ Mine ]:[ Kafra Employee ]:Remove Marks from Mini-Map:Cancel")) {
case 1:
mes "[Einbech Guide]";
- mes "The Tavern is located";
+ mes "The "+F_Navi("Tavern","einbech,157,106")+" is located";
mes "in the southern part of";
mes "Einbech. It's a nice place";
mes "to relax after a long day.";
@@ -233,8 +233,7 @@ einbech,67,37,4 script Einbech Guide#einbech01::GuideEinbech 852,{
break;
case 2:
mes "[Einbech Guide]";
- mes "You can find the Tool";
- mes "Shop in the center of";
+ mes "You can find the "+F_Navi("Tool Shop","einbech,177,133")+" in the center of";
mes "Einbech. There, you can";
mes "purchase any tools you";
mes "might need for your travels.";
@@ -243,7 +242,7 @@ einbech,67,37,4 script Einbech Guide#einbech01::GuideEinbech 852,{
break;
case 3:
mes "[Einbech Guide]";
- mes "The Train Stations are";
+ mes "The "+F_Navi("Train Stations","einbech,39,215")+" are";
mes "located in the northwest";
mes "and northeast parts of";
mes "Einbech. There, you can";
@@ -253,7 +252,7 @@ einbech,67,37,4 script Einbech Guide#einbech01::GuideEinbech 852,{
break;
case 4:
mes "[Einbech Guide]";
- mes "The Mine, which is";
+ mes "The "+F_Navi("Mine","einbech,137,248")+", which is";
mes "Einbech's major industry,";
mes "is located in the northern";
mes "part of this town. It's where";
@@ -290,5 +289,4 @@ einbech,67,37,4 script Einbech Guide#einbech01::GuideEinbech 852,{
}
}
}
-
-einbech,48,214,4 duplicate(GuideEinbech) Einbech Guide#einbech02 852
+einbech,48,214,4 duplicate(GuideEinbech) Einbech Guide#einbech02 4_M_EIN_SOLDIER
diff --git a/npc/re/guides/guides_geffen.txt b/npc/re/guides/guides_geffen.txt
index de32bf185..3bcd4db5b 100644
--- a/npc/re/guides/guides_geffen.txt
+++ b/npc/re/guides/guides_geffen.txt
@@ -1,25 +1,25 @@
//===== Hercules Script ======================================
//= Geffen Guides
-//===== By: ==================================================
+//===== By: ==================================================
//= L0ne_W0lf
-//===== Current Version: =====================================
-//= 1.1
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Current Version: =====================================
+//= 1.2
+//===== Description: =========================================
//= [Official Conversion]
//= Guides for the city of Geffen.
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First version, Renewal guide.
//= 1.1 Fixed and optimized. [Euphy]
-//============================================================
+//= 1.2 Navigation system update. [Euphy]
+//============================================================
-geffen,203,116,4 script Guide#01geffen::GuideGeffen 705,{
+geffen,203,116,4 script Guide#01geffen::GuideGeffen 4_M_GEF_SOLDIER,{
cutin "gef_soldier",2;
mes "[Geffen Guide]";
mes "Welcome to ^8B4513Geffen^000000,";
mes "the City of Magic.";
mes "Do you need help navigating the city?";
+ F_Navi("[Geffen Guide]");
next;
while (1) {
switch(select("[ Main Facilities ]:[ Merchants & Helpers ]:Remove Marks from Mini-Map:Cancel")) {
@@ -29,7 +29,7 @@ geffen,203,116,4 script Guide#01geffen::GuideGeffen 705,{
switch(select("[ Magic Academy ]:[ Geffen Tower ]:[ Fountain ]:[ Tool Shop ]:[ Buy & Repair Equipment ]:[ Inn ]:[ Tavern ]:[ Christopher's Forge ]:Previous Menu")) {
case 1:
mes "[Geffen Guide]";
- mes "The ^B9062FMagic Academy^000000";
+ mes "The "+F_Navi("Magic Academy","geffen,61,180","^B9062F");
mes "handles all magic-related affairs,";
mes "including job changes.";
mes "Let me mark its location";
@@ -39,23 +39,24 @@ geffen,203,116,4 script Guide#01geffen::GuideGeffen 705,{
next;
break;
case 2:
- callsub L_Mark,"^0000FFGeffen Tower";
+ callsub L_Mark, F_Navi("Geffen Tower","geffen,120,114","^0000FF");
viewpoint 1,120,114,1,0x0000FF;
next;
break;
case 3:
- callsub L_Mark,"^FF5400Fountain";
+ callsub L_Mark, F_Navi("Fountain","geffen,126,48","^FF5400");
viewpoint 1,126,48,2,0xFFB400;
next;
break;
case 4:
- callsub L_Mark,"^006400Tool Shop";
+ callsub L_Mark, F_Navi("Tool Shop","geffen,44,86","^006400");
viewpoint 1,44,86,3,0xAAFF00;
next;
break;
case 5:
mes "[Geffen Guide]";
- mes "If you'd like to ^7F3300Buy or Repair Equipment^000000";
+ mes "If you'd like to ";
+ mes F_Navi("Buy or Repair Equipment","geffen,99,140","^7F3300");
mes "then this is the place you'll want to visit.";
mes "Let me mark its location";
mes "on your mini-map.";
@@ -64,18 +65,18 @@ geffen,203,116,4 script Guide#01geffen::GuideGeffen 705,{
next;
break;
case 6:
- callsub L_Mark,"^800080Inn";
+ callsub L_Mark, F_Navi("Inn","geffen,172,174","^800080");
viewpoint 1,172,174,5,0xDA70D6;
next;
break;
case 7:
- callsub L_Mark,"^B9062FTavern";
+ callsub L_Mark, F_Navi("Tavern","geffen,138,138","^B9062F");
viewpoint 1,138,138,6,0xFF0000;
next;
break;
case 8:
mes "[Geffen Guide]";
- mes "^0000FFChristopher's Forge^000000 is";
+ mes F_Navi("Christopher's Forge","geffen,182,59","^0000FF")+" is";
mes "where you can purchase";
mes "Refining materials.";
mes "It used to be the old Blacksmith Guild.";
@@ -93,29 +94,29 @@ geffen,203,116,4 script Guide#01geffen::GuideGeffen 705,{
while (.@loop) {
switch(select("[ Eden Teleport Officer ]:[ Kafra Employee ]:[ Pet Groomer ]:[ Chef Assistant ]:[ Dimensional Arcanist Guide ]:Previous Menu")) {
case 1:
- callsub L_Mark,"^B9062FEden Teleport Officers";
+ callsub L_Mark, F_Navi("Eden Teleport Officers","geffen,132,66","^B9062F");
viewpoint 1,61,180,7,0xFF0000;
viewpoint 1,132,66,8,0xFF0000;
next;
break;
case 2:
- callsub L_Mark,"^FF5400Kafra Employees";
+ callsub L_Mark, "^FF5400Kafra Employees^000000";
viewpoint 1,203,123,10,0xFFB400;
viewpoint 1,120,62,11,0xFFB400;
next;
break;
case 3:
- callsub L_Mark,"^006400Pet Groomer";
+ callsub L_Mark, F_Navi("Pet Groomer","geffen,193,152","^006400");
viewpoint 1,193,152,12,0xAAFF00;
next;
break;
case 4:
- callsub L_Mark,"^7F3300Chef Assistant";
+ callsub L_Mark, F_Navi("Chef Assistant","geffen,196,111","^7F3300");
viewpoint 1,196,111,13,0xD2691E;
next;
break;
case 5:
- callsub L_Mark,"^800080Dimensional Arcanist Guide";
+ callsub L_Mark, F_Navi("Dimensional Arcanist Guide","geffen,140,196","^800080");
viewpoint 1,140,196,14,0xDA70D6;
next;
break;
@@ -164,6 +165,6 @@ L_Mark:
return;
}
-geffen,118,62,0 duplicate(GuideGeffen) Guide#02geffen 705
-geffen,36,123,6 duplicate(GuideGeffen) Guide#03geffen 705
-geffen,123,203,4 duplicate(GuideGeffen) Guide#04geffen 705
+geffen,118,62,0 duplicate(GuideGeffen) Guide#02geffen 4_M_GEF_SOLDIER
+geffen,36,123,6 duplicate(GuideGeffen) Guide#03geffen 4_M_GEF_SOLDIER
+geffen,123,203,4 duplicate(GuideGeffen) Guide#04geffen 4_M_GEF_SOLDIER
diff --git a/npc/re/guides/guides_gonryun.txt b/npc/re/guides/guides_gonryun.txt
index 9aa3e2371..23f842758 100644
--- a/npc/re/guides/guides_gonryun.txt
+++ b/npc/re/guides/guides_gonryun.txt
@@ -1,20 +1,19 @@
//===== Hercules Script ======================================
//= Kunlun Guide
-//===== By: ==================================================
+//===== By: ==================================================
//= L0ne_W0lf
-//===== Current Version: =====================================
-//= 1.1
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Current Version: =====================================
+//= 1.2
+//===== Description: =========================================
//= [Official Conversion]
//= Guide for the city of Kunlun.
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First version, Renewal guide.
//= 1.1 Optimized. [Euphy]
-//============================================================
+//= 1.2 Navigation system update. [Euphy]
+//============================================================
-gonryun,163,60,4 script Kunlun Guide#01gonryun 780,{
+gonryun,163,60,4 script Kunlun Guide#01gonryun 8_M_TWSOLDIER,{
mes "[He Yuen Zhe]";
mes "Ni Hao!";
mes "Welcome to ^8B4513Kunlun^000000~";
@@ -26,35 +25,36 @@ gonryun,163,60,4 script Kunlun Guide#01gonryun 780,{
mes "I am responsible for helping you";
mes "with any questions you may have.";
mes "Please feel free to ask me anything.";
+ F_Navi("[He Yuen Zhe]");
while (1) {
next;
switch(select("[ Kafra Employee ]:[ Chief's Residence ]:[ Tool Dealer ]:[ Weapon Dealer ]:[ Armor Dealer ]:[ Wine Maker ]:[ Kunlun Envoy ]:Remove Marks from Mini-Map:Cancel")) {
case 1:
- callsub L_Mark,"^0000FFKafra Employee";
+ callsub L_Mark, "^0000FFKafra Employee^000000";
viewpoint 1,159,122,0,0x0A82FF;
break;
case 2:
- callsub L_Mark,"^006400Chief's Residence";
+ callsub L_Mark, F_Navi("Chief's Residence","gonryun,110,131","^006400");
viewpoint 1,110,131,1,0xAAFF00;
break;
case 3:
- callsub L_Mark,"^D8BFD8Tool Dealer";
+ callsub L_Mark, F_Navi("Tool Dealer","gonryun,147,84","^D8BFD8");
viewpoint 1,147,84,2,0xD8BFD8;
break;
case 4:
- callsub L_Mark,"^FF1493Weapon Dealer";
+ callsub L_Mark, F_Navi("Weapon Dealer","gonryun,174,101","^FF1493");
viewpoint 1,174,101,3,0xFF1493;
break;
case 5:
- callsub L_Mark,"^8B4513Armor Dealer";
+ callsub L_Mark, F_Navi("Armor Dealer","gonryun,173,84","^8B4513");
viewpoint 1,173,84,4,0x8B4513;
break;
case 6:
- callsub L_Mark,"^9400DWine Maker";
+ callsub L_Mark, F_Navi("Wine Maker","gonryun,213,115","^9400D3");
viewpoint 1,213,115,5,0x9400D3;
break;
case 7:
- callsub L_Mark,"^00BFFFKunlun Envoy";
+ callsub L_Mark, F_Navi("Kunlun Envoy","gonryun,161,11","^00BFFF");
viewpoint 1,161,11,6,0x00BFFF;
break;
case 8:
@@ -78,7 +78,7 @@ gonryun,163,60,4 script Kunlun Guide#01gonryun 780,{
end;
L_Mark:
mes "[He Yuen Zhe]";
- mes "The "+getarg(0)+"^000000 is";
+ mes "The "+getarg(0)+" is";
mes "marked on your mini-map.";
mes "Check your mini-map.";
mes "Is there anything else I can do for you?";
diff --git a/npc/re/guides/guides_hugel.txt b/npc/re/guides/guides_hugel.txt
index e80146ff3..0544ead01 100644
--- a/npc/re/guides/guides_hugel.txt
+++ b/npc/re/guides/guides_hugel.txt
@@ -1,24 +1,24 @@
//===== Hercules Script ======================================
//= Hugel Guides
-//===== By: ==================================================
+//===== By: ==================================================
//= L0ne_W0lf
-//===== Current Version: =====================================
-//= 1.1
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Current Version: =====================================
+//= 1.2
+//===== Description: =========================================
//= [Official Conversion]
//= Guides for the city of Hugel.
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First version, Renewal guide.
//= 1.1 Optimized. [Euphy]
-//============================================================
+//= 1.2 Navigation system update. [Euphy]
+//============================================================
-hugel,98,56,3 script Hugel Guide Granny#hugel 863,{
+hugel,98,56,3 script Hugel Guide Granny#hugel 4_F_LGTGRAND,{
mes "[Hugel Guide Granny]";
mes "Oh, hello~ you are one energetic adventurer.";
mes "Welcome to ^8B4513Hugel^000000. I am honored to guide you in this beautiful village.";
mes "If this is the first time for you to use the guide services, you should ask a lot of questions.";
+ F_Navi("[Hugel Guide Granny]");
next;
set .@str$,"Would you like to know more locations?";
while (1) {
@@ -29,7 +29,7 @@ hugel,98,56,3 script Hugel Guide Granny#hugel 863,{
switch(select("[ Church ]:[ Inn ]:[ Pub ]:[ Airport ]:[ Weapon Shop ]:[ Tool Shop ]:[ Bingo Game Room ]:[ ^3131FFHunter Guild^000000 ]:[ Party Supplies Shop ]:[ ^3131FFShrine Expedition^000000 ]:Previous Menu")) {
case 1:
mes "[Hugel Guide Granny]";
- mes "Well, to me, this Church is rather like a place for old folks like me, you know...";
+ mes "Well, to me, this "+F_Navi("Church","hugel,159,113")+" is rather like a place for old folks like me, you know...";
mes .@str$;
viewpoint 1,159,113,0,0xFF0000;
next;
@@ -37,14 +37,14 @@ hugel,98,56,3 script Hugel Guide Granny#hugel 863,{
case 2:
mes "[Hugel Guide Granny]";
mes "Pudding rather than praise.";
- mes "You'd better unpack your stuff first before you start looking around this village.";
+ mes "You'd better unpack your stuff at the "+F_Navi("Inn","hugel,101,77")+" first before you start looking around this village.";
mes .@str$;
viewpoint 1,101,77,1,0x8B4513;
next;
break;
case 3:
mes "[Hugel Guide Granny]";
- mes "Yes, when you travel, you want to drop by a Pub and make new friends.";
+ mes "Yes, when you travel, you want to drop by a "+F_Navi("Pub","hugel,126,65")+" and make new friends.";
mes "Go east from here, then you will arrive at the pub.";
mes .@str$;
viewpoint 1,126,65,2,0xDAA520;
@@ -52,7 +52,7 @@ hugel,98,56,3 script Hugel Guide Granny#hugel 863,{
break;
case 4:
mes "[Hugel Guide Granny]";
- mes "A while ago, strangers came to the village and built that strange Airport kind of thing...";
+ mes "A while ago, strangers came to the village and built that strange "+F_Navi("Airport","hugel,178,146")+" kind of thing...";
mes "What do they call it? Airship?";
mes .@str$;
viewpoint 1,178,146,3,0xD7567F;
@@ -60,7 +60,7 @@ hugel,98,56,3 script Hugel Guide Granny#hugel 863,{
break;
case 5:
mes "[Hugel Guide Granny]";
- mes "Well, we have a Weapon Shop in the center of the village.";
+ mes "Well, we have a "+F_Navi("Weapon Shop","hugel,88,167")+" in the center of the village.";
mes "But I don't know if there is any weapon that you find useful.";
mes .@str$;
viewpoint 1,88,167,4,0xCD5C5C;
@@ -69,7 +69,7 @@ hugel,98,56,3 script Hugel Guide Granny#hugel 863,{
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.";
+ mes "The "+F_Navi("Tool Shop","hugel,92,163")+" is located in the center of village.";
mes .@str$;
viewpoint 1,92,163,5,0x000080;
next;
@@ -77,7 +77,7 @@ hugel,98,56,3 script Hugel Guide Granny#hugel 863,{
case 7:
mes "[Hugel Guide Granny]";
mes "I will mark the location";
- mes "of the ^800080Bingo Game Room^000000";
+ mes "of the "+F_Navi("Bingo Game Room","hugel,58,206","^800080");
mes "on your mini-map.";
mes .@str$;
viewpoint 1,58,206,6,0x800080;
@@ -86,7 +86,7 @@ hugel,98,56,3 script Hugel Guide Granny#hugel 863,{
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 Guild.";
+ mes "Then head northeast following the beach, then you will find the "+F_Navi("Hunter Guild","hugel,209,224")+".";
mes .@str$;
viewpoint 1,209,224,7,0xFF1493;
next;
@@ -94,7 +94,7 @@ hugel,98,56,3 script Hugel Guide Granny#hugel 863,{
case 9:
mes "[Hugel Guide Granny]";
mes "I will mark the location";
- mes "of the ^483D8BParty Supplies Shop^000000";
+ mes "of the "+F_Navi("Party Supplies Shop","hugel,95,103","^483D8B");
mes "on your mini-map.";
mes .@str$;
viewpoint 1,95,103,8,0x483D8B;
@@ -102,7 +102,8 @@ hugel,98,56,3 script Hugel Guide Granny#hugel 863,{
break;
case 10:
mes "[Hugel Guide Granny]";
- mes "I heard that the Shrine Expedition is staying in a house at the west.";
+ mes "I heard that the ";
+ mes F_Navi("Shrine Expedition","hugel,52,95")+" 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.";
mes .@str$;
@@ -169,8 +170,8 @@ hugel,98,56,3 script Hugel Guide Granny#hugel 863,{
}
}
-hugel,187,172,6 script Guide Rich King#hugel 414,{
- mes "[Guide Rich King]";
+hugel,187,172,6 script Guide Rich King#hugel 4_M_CRU_KNT,{
+ mes "[Rich King]";
mes "What business do you have";
mes "in this countryside village?";
next;
@@ -178,6 +179,7 @@ hugel,187,172,6 script Guide Rich King#hugel 414,{
mes "This is ^8B4513Hugel^000000";
mes "in the Schwaltzvalt Republic.";
mes "You are very honored to receive guidance from a great person like me.";
+ F_Navi("[Rich King]");
next;
while (1) {
switch(select("[ Main Facilities ]:[ Merchants & Helpers ]:Remove Marks from Mini-Map:Cancel")) {
@@ -186,52 +188,52 @@ hugel,187,172,6 script Guide Rich King#hugel 414,{
while (.@loop) {
switch(select("[ Church ]:[ Inn ]:[ Pub ]:[ Airport ]:[ Weapon Shop ]:[ Tool Shop ]:[ Bingo Game Room ]:[ Hunter Guild ]:[ Party Supplies Shop ]:[ Shrine Expedition ]:Previous Menu")) {
case 1:
- callsub L_Mark,"^FF0000Church";
+ callsub L_Mark, F_Navi("Church","hugel,159,113","^FF0000");
viewpoint 1,159,113,0,0xFF0000;
next;
break;
case 2:
- callsub L_Mark,"^8B4513Inn";
+ callsub L_Mark, F_Navi("Inn","hugel,101,77","^8B4513");
viewpoint 1,101,77,1,0x8B4513;
next;
break;
case 3:
- callsub L_Mark,"^DAA520Pub";
+ callsub L_Mark, F_Navi("Pub","hugel,126,65","^DAA520");
viewpoint 1,126,65,2,0xDAA520;
next;
break;
case 4:
- callsub L_Mark,"^D7567FAirport";
+ callsub L_Mark, F_Navi("Airport","hugel,178,146","^D7567F");
viewpoint 1,178,146,3,0xD7567F;
next;
break;
case 5:
- callsub L_Mark,"^CD5C5CWeapon Shop";
+ callsub L_Mark, F_Navi("Weapon Shop","hugel,88,167","^CD5C5C");
viewpoint 1,88,167,4,0xCD5C5C;
next;
break;
case 6:
- callsub L_Mark,"^000080Tool Shop";
+ callsub L_Mark, F_Navi("Tool Shop","hugel,92,163","^000080");
viewpoint 1,92,163,5,0x000080;
next;
break;
case 7:
- callsub L_Mark,"^800080Bingo Game Room";
+ callsub L_Mark, F_Navi("Bingo Game Room","hugel,58,206","^800080");
viewpoint 1,58,206,6,0x800080;
next;
break;
case 8:
- callsub L_Mark,"^FF1493Hunter Guild";
+ callsub L_Mark, F_Navi("Hunter Guild","hugel,209,224","^FF1493");
viewpoint 1,209,224,7,0xFF1493;
next;
break;
case 9:
- callsub L_Mark,"^483D8BParty Supplies Shop";
+ callsub L_Mark, F_Navi("Party Supplies Shop","hugel,95,103","^483D8B");
viewpoint 1,95,103,8,0x483D8B;
next;
break;
case 10:
- callsub L_Mark,"^834683Shrine Expedition";
+ callsub L_Mark, F_Navi("Shrine Expedition","hugel,52,95","^834683");
viewpoint 1,52,95,9,0x834683;
next;
break;
@@ -246,12 +248,12 @@ hugel,187,172,6 script Guide Rich King#hugel 414,{
while (.@loop) {
switch(select("[ Monster Race Arena ]:[ Cool Event Corp. Staff ]:Previous Menu")) {
case 1:
- callsub L_Mark,"^FF1493Monster Race Arena";
+ callsub L_Mark, "^FF1493Monster Race Arena^000000";
viewpoint 1,60,71,10,0xFF1493;
next;
break;
case 2:
- callsub L_Mark,"^DA70D6Cool Event Corp. Staff";
+ callsub L_Mark, "^DA70D6Cool Event Corp. Staff^000000";
viewpoint 1,88,168,11,0xDA70D6;
next;
break;
@@ -290,7 +292,7 @@ hugel,187,172,6 script Guide Rich King#hugel 414,{
L_Mark:
mes "[Rich King]";
mes "I will mark the location";
- mes "of the "+getarg(0)+"^000000.";
+ mes "of the "+getarg(0)+".";
mes "Do you want to know more locations?";
mes "Are you going to keep bugging me and make me get upset?";
return;
diff --git a/npc/re/guides/guides_izlude.txt b/npc/re/guides/guides_izlude.txt
index 6f460ebcc..a3a37537b 100644
--- a/npc/re/guides/guides_izlude.txt
+++ b/npc/re/guides/guides_izlude.txt
@@ -1,83 +1,83 @@
//===== Hercules Script ======================================
//= Izlude Guides
-//===== By: ==================================================
+//===== By: ==================================================
//= L0ne_W0lf
-//===== Current Version: =====================================
-//= 1.1
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Current Version: =====================================
+//= 1.4
+//===== Description: =========================================
//= [Official Conversion]
-//= Guides for the city of Izlude
-//===== Additional Comments: =================================
+//= Guides for the city of Izlude.
+//===== Additional Comments: =================================
//= 1.0 First version, Renewal guide.
//= 1.1 Updated to match the new Izlude Map. [Masao]
-//============================================================
+//= 1.2 Added Renewal Izlude viewpoint coordinates.
+//= 1.3 Navigation system update. [Euphy]
+//= Optimized.
+//= 1.4 Added Izlude duplicates. [Euphy]
+//============================================================
-- script Guide#01izlude::GuideIzlude -1,{
+- script ::GuideIzlude -1,{
cutin "prt_soldier",2;
mes "[Izlude Guide]";
mes "Welcome to ^8B4513Izlude^000000,";
mes "Prontera's satellite town.";
mes "Do you need help navigating the town?";
+ F_Navi("[Izlude Guide]");
next;
+ set .@map$, strnpcinfo(4);
while (1) {
switch(select("[ Main Facilities ]:[ Merchants & Helpers ]:Remove Marks from Mini-Map:Cancel")) {
case 1:
set .@loop,1;
while (.@loop) {
- switch(select("[ Marina ]:[ Airport ]:[ Arena ]:[ Tool Shop ]:[ Weapon & Armor Shop ]:[ Swordsman Guild ]:[ Swordsman Association ]:Previous Menu")) {
+ switch(select("[ Cryptura Academy ]:[ Marina ]:[ International Airship ]:[ Arena ]:[ Kit Shop ]:[ Swordsman Guild ]:[ Enchant Association ]:[ Forge ]:Previous Menu")) {
case 1:
mes "[Izlude Guide]";
- mes "You can use the northeast ^B9062FMarina^000000";
+ mes "Novice adventurers should go to "+F_Navi("Cryptura Academy","iz_ac01,100,39")+" to receive more information and training!";
+ mes "Would you like to check any other locations?";
+ viewpoint 1,128,260,0,0xD2691E;
+ next;
+ break;
+ case 2:
+ mes "[Izlude Guide]";
+ mes "You can use the "+F_Navi("Marina",.@map$+",197,205","^B9062F");
mes "to go to ^8B4513Alberta^000000 or ^8B4513Byalan Island^000000.";
mes "Beware of ^8B4513Izlude Dungeon^000000";
mes "on Byalan Island since it is";
mes "filled with dreadful monsters.";
mes "Would you like to check any other locations?";
- viewpoint 1,197,205,0,0xFF0000;
+ viewpoint 1,197,205,1,0xFF0000;
next;
break;
- case 2:
+ case 3:
mes "[Izlude Guide]";
- mes "The ^0000FFInternational Airship^000000 to the southeast";
+ mes "The "+F_Navi("International Airship",.@map$+",202,75","^0000FF");
mes "goes to ^8B4513Juno^000000 and ^8B4513Rachel^000000.";
mes "Let me mark its location";
mes "on your mini-map.";
mes "Would you like to check any other locations?";
- viewpoint 1,204,75,1,0x0A82FF;
+ viewpoint 1,210,73,2,0x0A82FF;
next;
break;
- case 3:
+ case 4:
mes "[Izlude Guide]";
- mes "The ^FF5400Arena^000000 at the north";
+ mes "The "+F_Navi("Arena",.@map$+",213,161","^FF5400");
mes "is a perfect place to";
mes "test your combat capabilities.";
mes "Let me mark its location";
mes "on your mini-map.";
mes "Would you like to check any other locations?";
- viewpoint 1,128,255,2,0xFF5400;
- next;
- break;
- case 4:
- mes "[Izlude Guide]";
- mes "Let me mark the location of the ^006400Tool Shop^000000";
- mes "on your mini-map.";
- mes "Would you like to check any other locations?";
- viewpoint 1,160,125,3,0xAAFF00;
+ viewpoint 1,213,161,3,0xFF5400;
next;
break;
case 5:
- mes "[Izlude Guide]";
- mes "Let me mark the location of the ^7F3300Weapon & Armor Shop^000000";
- mes "on your mini-map.";
- mes "Would you like to check any other locations?";
- viewpoint 1,109,182,4,0xD2691E;
+ callsub L_Mark, F_Navi("Kit Shop",.@map$+",110,182","^006400");
+ viewpoint 1,108,179,4,0xAAFF00;
next;
break;
case 6:
mes "[Izlude Guide]";
- mes "The Swordsman Guild is where you can ^800080change your job to Swordsman.^000000";
+ mes "The "+F_Navi("Swordsman Guild",.@map$+",51,172")+" is where you can ^800080change your job to Swordsman.^000000";
mes "Let me mark its location";
mes "on your mini-map.";
mes "Would you like to check any other locations?";
@@ -85,14 +85,16 @@
next;
break;
case 7:
- mes "[Izlude Guide]";
- mes "Let me mark the location of the ^B9062FSwordsman Association^000000";
- mes "on your mini-map.";
- mes "Would you like to check any other locations?";
- viewpoint 1,212,161,6,0xFF0000;
+ callsub L_Mark, F_Navi("Enchant Association",.@map$+",97,125","^B9062F");
+ viewpoint 1,97,125,6,0xDA70D6;
next;
break;
case 8:
+ callsub L_Mark, F_Navi("Forge",.@map$+",153,126");
+ viewpoint 1,153,126,7,0xAAFF00;
+ next;
+ break;
+ case 9:
set .@loop,0;
break;
}
@@ -101,55 +103,48 @@
case 2:
set .@loop,1;
while (.@loop) {
- switch(select("[ Eden Teleport Officer ]:[ Kafra Employee ]:[ Newlywed Helper ]:[ Bullet Merchant ]:[ Mercenary Guildsman ]:Previous Menu")) {
+ switch(select("[ Eden Teleport Officer ]:[ Kafra Employee ]:[ Hypnotist ]:[ Newlywed Helper ]:[ Mercenary Guildsman ]:[ Pet Groomer ]:Previous Menu")) {
case 1:
mes "[Izlude Guide]";
- mes "The ^0000FFEden Teleport Officer^000000";
+ mes "The "+F_Navi("Eden Teleport Officer",.@map$+",131,148","^0000FF");
mes "is currently staying inside";
mes "the Swordsman Guild building.";
mes "Let me mark his location on your mini-map.";
mes "Would you like to check any other locations?";
- viewpoint 1,131,148,7,0x0A82FF;
+ viewpoint 1,131,148,8,0x0A82FF;
next;
break;
case 2:
- mes "[Izlude Guide]";
- mes "Let me mark the location of the";
- mes "^FF5400Kafra Employee^000000";
- mes "on your mini-map.";
- mes "Would you like to check any other locations?";
- viewpoint 1,128,148,8,0xFF5400;
+ callsub L_Mark, F_Navi("Kafra Employee",.@map$+",128,148","^FF5400"),1;
+ viewpoint 1,128,148,9,0xFF5400;
next;
break;
case 3:
- mes "[Izlude Guide]";
- mes "If you'd like to go on a honeymoon to";
- mes "^8B4513Jawaii^000000, the paradise of newlyweds,";
- mes "please speak to the ^B9062FNewlywed Helper^000000.";
- mes "Would you like to check any other locations?";
- viewpoint 1,180,224,9,0xFF0000;
+ callsub L_Mark, F_Navi("Hypnotist",.@map$+",127,175"),1;
+ viewpoint 1,127,175,10,0x006400;
next;
break;
case 4:
mes "[Izlude Guide]";
- mes "The ^7F3300Bullet Merchants^000000 for ^7F3300Gunslingers^000000";
- mes "is located to the east.";
- mes "Let me mark his location";
- mes "on your mini-map.";
+ mes "If you'd like to go on a honeymoon to";
+ mes "^8B4513Jawaii^000000, the paradise of newlyweds,";
+ mes "please speak to the ";
+ mes F_Navi("Newlywed Helper",.@map$+",180,224","^B9062F")+".";
mes "Would you like to check any other locations?";
- viewpoint 1,158,130,10,0xD2691E;
+ viewpoint 1,180,224,11,0xFF0000;
next;
break;
case 5:
- mes "[Izlude Guide]";
- mes "Let me mark the location of ^0000FFFencer Mercenary Manager^000000 and";
- mes "^0000FFMercenary Goods Merchant^000000";
- mes "on your mini-map.";
- mes "Would you like to check any other locations?";
- viewpoint 1,56,169,11,0xDA70D6;
+ callsub L_Mark, F_Navi("Mercenary Guildsman",.@map$+",47,170","^0000FF");
+ viewpoint 1,47,170,12,0xDA70D6;
next;
break;
case 6:
+ callsub L_Mark, F_Navi("Pet Groomer","izlude_in,72,98"),1;
+ viewpoint 1,108,179,13,0x006400;
+ next;
+ break;
+ case 7:
set .@loop,0;
break;
}
@@ -171,6 +166,8 @@
viewpoint 2,1,1,9,0xFFFF00;
viewpoint 2,1,1,10,0xFFFF00;
viewpoint 2,1,1,11,0xFFFF00;
+ viewpoint 2,1,1,12,0xFFFF00;
+ viewpoint 2,1,1,13,0xFFFF00;
next;
break;
case 4:
@@ -182,8 +179,29 @@
end;
}
}
+ end;
+L_Mark:
+ mes "[Izlude Guide]";
+ if (getarg(1,0)) {
+ mes "Let me mark the location of the";
+ mes getarg(0);
+ } else
+ mes "Let me mark the location of the "+getarg(0);
+ mes "on your mini-map.";
+ mes "Would you like to check any other locations?";
+ return;
}
-izlude,129,175,4 duplicate(GuideIzlude) Guide#02izlude 105
-izlude,133,113,4 duplicate(GuideIzlude) Guide#03izlude 105
-izlude,120,206,4 duplicate(GuideIzlude) Guide#04izlude 105
+izlude,129,175,4 duplicate(GuideIzlude) Guide#01izlude 8W_SOLDIER
+izlude_a,129,175,4 duplicate(GuideIzlude) Guide#01izlude_a 8W_SOLDIER
+izlude_b,129,175,4 duplicate(GuideIzlude) Guide#01izlude_b 8W_SOLDIER
+izlude_c,129,175,4 duplicate(GuideIzlude) Guide#01izlude_c 8W_SOLDIER
+izlude_d,129,175,4 duplicate(GuideIzlude) Guide#01izlude_d 8W_SOLDIER
+
+izlude,133,113,4 duplicate(GuideIzlude) Guide#02izlude 8W_SOLDIER
+izlude_a,133,113,4 duplicate(GuideIzlude) Guide#02izlude_a 8W_SOLDIER
+izlude_b,133,113,4 duplicate(GuideIzlude) Guide#02izlude_b 8W_SOLDIER
+izlude_c,133,113,4 duplicate(GuideIzlude) Guide#02izlude_c 8W_SOLDIER
+izlude_d,133,113,4 duplicate(GuideIzlude) Guide#02izlude_d 8W_SOLDIER
+
+//izlude,120,206,4 duplicate(GuideIzlude) Guide#03izlude 8W_SOLDIER
diff --git a/npc/re/guides/guides_juno.txt b/npc/re/guides/guides_juno.txt
index 8af05d5ae..dc85f0743 100644
--- a/npc/re/guides/guides_juno.txt
+++ b/npc/re/guides/guides_juno.txt
@@ -1,92 +1,96 @@
//===== Hercules Script ======================================
//= Juno Guides
-//===== By: ==================================================
+//===== By: ==================================================
//= L0ne_W0lf
-//===== Current Version: =====================================
-//= 1.1
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Current Version: =====================================
+//= 1.2
+//===== Description: =========================================
//= [Official Conversion]
//= Guides for the city of Juno.
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First version, Renewal guide.
//= 1.1 Fixed and optimized. [Euphy]
-//============================================================
+//= 1.2 Navigation system update. [Euphy]
+//============================================================
-yuno,59,212,4 script Juno Guide#yuno01::GuideJuno 700,{
+yuno,59,212,4 script Juno Guide#yuno01::GuideJuno 8_F_GIRL,{
mes "[Juno Guide]";
mes "A place that takes the vision of the future, and gives it form in the present. Welcome to";
mes "the city of ^8B4513Juno^000000!";
+ F_Navi("[Juno Guide]");
next;
while (1) {
switch(select("[ Main Facilities ]:[ Merchants & Helpers ]:Remove marks from Mini-Map:Cancel")) {
case 1:
set .@loop,1;
while (.@loop) {
- switch(select("[ Tool Shop ]:[ Forge ]:[ Airport ]:[ Government Building ]:[ Street of Book Stores ]:[ Inn & Pub ]:[ Sage Castle ]:[ Monster Academy ]:[ Library of the Republic ]:[ Weapon & Armor Shop ]:[ Juphero Plaze ]:[ Monster Museum ]:[ Schweicherbil Magic Academy ]:Previous Menu")) {
+ switch(select("[ Tool Shop ]:[ Forge ]:[ Airport ]:[ Government Building ]:[ Street of Book Stores ]:[ Inn & Pub ]:[ Sage Castle ]:[ Monster Academy ]:[ Library of the Republic ]:[ Weapon & Armor Shop ]:[ Juphero Plaza ]:[ Monster Museum ]:[ Schweicherbil Magic Academy ]:Previous Menu")) {
case 1:
- callsub L_Mark,"^FF0000Tool Shop";
+ callsub L_Mark, F_Navi("Tool Shop","yuno,194,140","^FF0000");
viewpoint 1,194,140,0,0xFF0000;
next;
break;
case 2:
- callsub L_Mark,"^FF4500Forge";
+ callsub L_Mark, F_Navi("Forge","yuno,120,137","^FF4500");
viewpoint 1,120,137,1,0xFF4500;
next;
break;
case 3:
- callsub L_Mark,"^DAA520Airport";
+ callsub L_Mark, F_Navi("Airport","yuno,16,261","^DAA520");
viewpoint 1,16,261,2,0xDAA520;
next;
break;
case 4:
- callsub L_Mark,"^008000Government Building";
+ callsub L_Mark, F_Navi("Government Building","yuno,157,317","^008000");
viewpoint 1,157,317,3,0x008000;
next;
break;
case 5:
- callsub L_Mark,"^0000FFStreet of Book Stores";
+ callsub L_Mark, F_Navi("Street of Book Stores","yuno,172,100","^0000FF");
viewpoint 1,172,100,4,0x0000FF;
next;
break;
case 6:
- callsub L_Mark,"^000080Inn & Pub";
+ callsub L_Mark, F_Navi("Inn & Pub","yuno,51,105","^000080");
viewpoint 1,51,105,5,0x000080;
next;
break;
case 7:
- callsub L_Mark,"^800080Sage Castle";
+ callsub L_Mark, F_Navi("Sage Castle","yuno,90,318","^800080");
viewpoint 1,90,318,6,0x800080;
next;
break;
case 8:
- callsub L_Mark,"^834683Monster Academy";
+ callsub L_Mark, F_Navi("Monster Academy","yuno,95,184","^834683");
viewpoint 1,95,184,7,0x834683;
next;
break;
case 9:
- callsub L_Mark,"^4B0082Juno Library";
+ callsub L_Mark, F_Navi("Juno Library","yuno,338,203","^4B0082");
viewpoint 1,338,203,8,0x4B0082;
next;
break;
case 10:
- callsub L_Mark,"^008080Weapon & Armor Shop";
+ callsub L_Mark, F_Navi("Weapon & Armor Shop","yuno,120,137","^008080");
viewpoint 1,120,137,9,0x008080;
next;
break;
case 11:
- callsub L_Mark,"^FF1493Juphero Plaza";
+ callsub L_Mark, F_Navi("Juphero Plaza","yuno,115,57","^FF1493");
viewpoint 1,115,157,10,0xFF1493;
next;
break;
case 12:
- callsub L_Mark,"^DA70D6Monster Museum";
+ callsub L_Mark, F_Navi("Monster Museum","yuno,278,290","^DA70D6");
viewpoint 1,278,290,11,0xDA70D6;
next;
break;
case 13:
- callsub L_Mark,"^CD1039Schweicherbil Magic Academy";
+ mes "[Juno Guide]";
+ mes "I will mark the location of the";
+ mes F_Navi("Schweicherbil Magic Academy","yuno,323,280","^CD1039");
+ mes "on your mini-map.";
+ mes "Would you like to check any other locations?";
viewpoint 1,323,280,12,0xCD1039;
next;
break;
@@ -101,14 +105,14 @@ yuno,59,212,4 script Juno Guide#yuno01::GuideJuno 700,{
while (.@loop) {
switch(select("[ Kafra Employees ]:[ Eden Teleport Officer ]:Previous Menu")) {
case 1:
- callsub L_Mark,"^FA8072Kafra Employees";
+ callsub L_Mark, "^FA8072Kafra Employees^000000";
viewpoint 1,152,187,13,0xFA8072;
viewpoint 1,277,221,14,0xFA8072;
viewpoint 1,327,108,15,0xFA8072;
next;
break;
case 2:
- callsub L_Mark,"^803232Eden Teleport Officer";
+ callsub L_Mark, F_Navi("Eden Teleport Officer","yuno,144,189","^803232");
viewpoint 1,144,189,16,0x803232;
next;
break;
@@ -151,10 +155,9 @@ yuno,59,212,4 script Juno Guide#yuno01::GuideJuno 700,{
L_Mark:
mes "[Juno Guide]";
mes "I will mark the location";
- mes "of the "+getarg(0)+"^000000";
+ mes "of the "+getarg(0);
mes "on your mini-map.";
mes "Would you like to check any other locations?";
return;
}
-
-yuno,153,47,4 duplicate(GuideJuno) Juno Guide#yuno02 700
+yuno,153,47,4 duplicate(GuideJuno) Juno Guide#yuno02 8_F_GIRL
diff --git a/npc/re/guides/guides_lighthalzen.txt b/npc/re/guides/guides_lighthalzen.txt
index fcfd1cca8..d7cd22aae 100644
--- a/npc/re/guides/guides_lighthalzen.txt
+++ b/npc/re/guides/guides_lighthalzen.txt
@@ -1,20 +1,19 @@
//===== Hercules Script ======================================
//= Lighthalzen Guides
-//===== By: ==================================================
+//===== By: ==================================================
//= L0ne_W0lf
-//===== Current Version: =====================================
-//= 1.1
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Current Version: =====================================
+//= 1.2
+//===== Description: =========================================
//= [Official Conversion]
//= Guides for the city of Lighthalzen.
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First version, Renewal guide.
//= 1.1 Optimized. [Euphy]
-//============================================================
+//= 1.2 Navigation system update. [Euphy]
+//============================================================
-lighthalzen,207,310,5 script Lighthalzen Guide#lhz01::GuideLighthazlen 852,{
+lighthalzen,207,310,5 script Lighthalzen Guide#lhz01::GuideLighthazlen 4_M_EIN_SOLDIER,{
cutin "ein_soldier",2;
mes "[Lighthalzen Guide]";
mes "Welcome to ^8B4513Lighthalzen^000000,";
@@ -31,6 +30,7 @@ lighthalzen,207,310,5 script Lighthalzen Guide#lhz01::GuideLighthazlen 852,{
mes "of ^8B4513Lighthalzen^000000. Now, please";
mes "select the location that you'd";
mes "like to learn more about.";
+ F_Navi("[Lighthalzen Guide]");
next;
while (1) {
switch(select("[ Main Facilities ]:[ Merchants & Helpers ]:Remove Marks from Mini-Map:Cancel")) {
@@ -39,52 +39,52 @@ lighthalzen,207,310,5 script Lighthalzen Guide#lhz01::GuideLighthazlen 852,{
while (.@loop) {
switch(select("[ Hotel ]:[ Bank ]:[ Airport ]:[ Weapon Shop ]:[ Department Store ]:[ Police Station ]:[ Jewelry Store ]:[ Cool Event Corp. ]:[ Somatology Laboratory ]:[ Alchemist Association ]:Previous Menu")) {
case 1:
- callsub L_Mark,"^FF0000Hotel";
+ callsub L_Mark, F_Navi("Hotel","lighthalzen,159,133","^FF0000");
viewpoint 1,160,217,0,0xFF0000;
next;
break;
case 2:
- callsub L_Mark,"^FF4500Bank";
+ callsub L_Mark, F_Navi("Bank","lighthalzen,203,257","^FF4500");
viewpoint 1,203,257,1,0xFF4500;
next;
break;
case 3:
- callsub L_Mark,"^DAA520Airport";
+ callsub L_Mark, F_Navi("Airport","lighthalzen,262,75","^DAA520");
viewpoint 1,262,75,2,0xDAA520;
next;
break;
case 4:
- callsub L_Mark,"^7B68EEWeapon Shop";
+ callsub L_Mark, F_Navi("Weapon Shop","lighthalzen,194,35","^7B68EE");
viewpoint 1,194,35,3,0x7B68EE;
next;
break;
case 5:
- callsub L_Mark,"^B91A4DDepartment Store";
+ callsub L_Mark, F_Navi("Department Store","lighthalzen,199,164","^B91A4D");
viewpoint 1,202,106,4,0xB91A4D;
next;
break;
case 6:
- callsub L_Mark,"^008000Police Station";
+ callsub L_Mark, F_Navi("Police Station","lighthalzen,234,276","^008000");
viewpoint 1,234,276,5,0x008000;
next;
break;
case 7:
- callsub L_Mark,"^0000FFJewelry Store";
+ callsub L_Mark, F_Navi("Jewelry Store","lighthalzen,96,110","^0000FF");
viewpoint 1,96,110,6,0x0000FF;
next;
break;
case 8:
- callsub L_Mark,"^000080Cool Event Corp.";
+ callsub L_Mark, F_Navi("Cool Event Corp.","lighthalzen,238,217","^000080");
viewpoint 1,238,217,7,0x000080;
next;
break;
case 9:
- callsub L_Mark,"^800080Somatology Laboratory";
+ callsub L_Mark, F_Navi("Somatology Laboratory","lighthalzen,101,243","^800080");
viewpoint 1,101,243,8,0x800080;
next;
break;
case 10:
- callsub L_Mark,"^0A9696Alchemist Association";
+ callsub L_Mark, F_Navi("Alchemist Association","lighthalzen,54,132","^0A9696");
viewpoint 1,54,132,9,0x0A9696;
next;
break;
@@ -105,7 +105,7 @@ lighthalzen,207,310,5 script Lighthalzen Guide#lhz01::GuideLighthazlen 852,{
mes "on the 1st floor of the Weapon Shop.";
viewpoint 1,194,35,10,0x0A9696;
next;
- callsub L_Mark,"^0A9696Armsmith";
+ callsub L_Mark, "^0A9696Armsmith^000000";
next;
break;
case 2:
@@ -116,22 +116,22 @@ lighthalzen,207,310,5 script Lighthalzen Guide#lhz01::GuideLighthazlen 852,{
mes "of the Weapon Shop.";
viewpoint 1,194,35,11,0x4B0082;
next;
- callsub L_Mark,"^4B0082Seiyablem",1;
+ callsub L_Mark, "^4B0082Seiyablem^000000",1;
next;
break;
case 3:
- callsub L_Mark,"^FF4500Pet Groomer";
+ callsub L_Mark, F_Navi("Pet Groomer","lighthalzen,222,191","^FF4500");
viewpoint 1,222,191,12,0xFF4500;
next;
break;
case 4:
- callsub L_Mark,"^008080Kafra Employees";
+ callsub L_Mark, "^008080Kafra Employees^000000";
viewpoint 1,164,99,13,0x008080;
viewpoint 1,164,99,14,0x008080;
next;
break;
case 5:
- callsub L_Mark,"^FF1493Cool Event Corp. Staff";
+ callsub L_Mark, F_Navi("Cool Event Corp. Staff","lighthalzen,94,247","^FF1493");
viewpoint 1,94,247,15,0xFF1493;
next;
break;
@@ -175,12 +175,11 @@ lighthalzen,207,310,5 script Lighthalzen Guide#lhz01::GuideLighthazlen 852,{
L_Mark:
mes "[Lighthalzen Guide]";
mes "I will mark the location";
- mes "of "+((getarg(1,0))?"":"the ")+getarg(0)+"^000000";
+ mes "of "+((getarg(1,0))?"":"the ")+getarg(0);
mes "on your mini-map.";
mes "Would you like to check any other locations?";
return;
}
-
-lighthalzen,220,310,3 duplicate(GuideLighthazlen) Lighthalzen Guide#lhz02 852
-lighthalzen,154,100,5 duplicate(GuideLighthazlen) Lighthalzen Guide#lhz03 852
-lighthalzen,307,224,3 duplicate(GuideLighthazlen) Lighthalzen Guide#lhz04 852
+lighthalzen,220,310,3 duplicate(GuideLighthazlen) Lighthalzen Guide#lhz02 4_M_EIN_SOLDIER
+lighthalzen,154,100,5 duplicate(GuideLighthazlen) Lighthalzen Guide#lhz03 4_M_EIN_SOLDIER
+lighthalzen,307,224,3 duplicate(GuideLighthazlen) Lighthalzen Guide#lhz04 4_M_EIN_SOLDIER
diff --git a/npc/re/guides/guides_louyang.txt b/npc/re/guides/guides_louyang.txt
index e5ff1d4c6..f79039e32 100644
--- a/npc/re/guides/guides_louyang.txt
+++ b/npc/re/guides/guides_louyang.txt
@@ -1,19 +1,18 @@
//===== Hercules Script ======================================
//= Louyang Guide
-//===== By: ==================================================
+//===== By: ==================================================
//= L0ne_W0lf
-//===== Current Version: =====================================
-//= 1.0
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Current Version: =====================================
+//= 1.1
+//===== Description: =========================================
//= [Official Conversion]
-//= Guide for the city of Louyang
-//===== Additional Comments: =================================
+//= Guide for the city of Louyang.
+//===== Additional Comments: =================================
//= 1.0 First version, Renewal guide.
-//============================================================
+//= 1.1 Navigation system update. [Euphy]
+//============================================================
-louyang,224,104,4 script Louyang Guide#01louyang 818,{
+louyang,224,104,4 script Louyang Guide#01louyang 4_F_CHNWOMAN,{
mes "[Representative]";
mes "Welcome to ^8B4513Louyang^000000,";
mes "an ancient land with";
@@ -26,86 +25,88 @@ louyang,224,104,4 script Louyang Guide#01louyang 818,{
mes "[Representative]";
mes "^8B4513Louyang^000000 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.";
+ F_Navi("[Representative]");
+ set .@str$,"Is there anything else I can do for you?";
while (1) {
next;
switch(select("[ Dragon Castle ]:[ Doctor's Office ]:[ City Hall ]:[ Weapon Shop ]:[ Tool Shop ]:[ Tavern ]:[ Observatory ]:[ Return to Alberta ]:Remove Marks from Mini-Map:Cancel")) {
case 1:
mes "[Representative]";
- mes "The Dragon Castle is located at ^0A82FF+^000000. It is where all the nobles reside, including our lord.";
+ mes "The "+F_Navi("Dragon Castle","louyang,218,253")+" is located at ^0A82FF+^000000. It is where all the nobles reside, including our lord.";
mes "Since you're an outsider, I guess it would be appropriate for you to visit our lord first.";
- mes "Is there anything else I can do for you?";
+ mes .@str$;
viewpoint 1,218,253,0,0x0A82FF;
break;
case 2:
mes "[Representative]";
- mes "It's a famous ^AAFF00Doctor's Office^000000";
+ mes "It's a famous "+F_Navi("Doctor's Office","louyang,261,93","^AAFF00");
mes "according to rumor it can cure all diseases. But I'm not sure if it's true or not.";
- mes "Is there anything else I can do for you?";
+ mes .@str$;
viewpoint 1,261,93,1,0xAAFF00;
break;
case 3:
mes "[Representative]";
- mes "We have a City Hall where the federal government operates.";
+ mes "We have a "+F_Navi("City Hall","louyang,309,78")+" where the federal government operates.";
mes "It is located at ^008080+^000000.";
next;
mes "[Representative]";
mes "If you have any problems,";
mes "you should talk with the";
mes "employees there.";
- mes "Is there anything else I can do for you?";
+ mes .@str$;
viewpoint 1,309,78,2,0x20B2AA;
break;
case 4:
mes "[Representative]";
- mes "The Weapon Shop is located at ^55FF33+^000000.";
+ mes "The "+F_Navi("Weapon Shop","louyang,145,172")+" 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.";
- mes "Is there anything else I can do for you?";
+ mes .@str$;
viewpoint 1,145,172,3,0xFF1493;
break;
case 5:
mes "[Representative]";
- mes "The Tool Shop is located at ^3355FF+^000000.";
+ mes "The "+F_Navi("Tool Shop","louyang,138,99")+" 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?";
- mes "Is there anything else I can do for you?";
+ mes .@str$;
viewpoint 1,138,99,4,0xFF0000;
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.";
+ mes "When you get tired during your trip, I suggest that you visit the "+F_Navi("Tavern","louyang,280,165")+". It's located at ^00FF00+^000000.";
next;
- mes "[Soldier]";
+ mes "[Representative]";
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.";
- mes "Is there anything else I can do for you?";
+ mes .@str$;
viewpoint 1,280,165,5,0xDAA520;
break;
case 7:
mes "[Representative]";
- mes "You won't get a better view of the world than you can at the Observatory.";
+ mes "You won't get a better view of the world than you can at the "+F_Navi("Observatory","louyang,136,245")+".";
mes "It's a must see here.";
- mes "Is there anything else I can do for you?";
+ mes .@str$;
viewpoint 1,136,245,6,0xD8BFD8;
break;
case 8:
mes "[Representative]";
mes "If you want to return to Alberta,";
- mes "find the ^00BFFFKGirl^000000 outside town on the docks.";
- mes "Is there anything else I can do for you?";
+ mes "find the "+F_Navi("Girl","louyang,218,22","^00BFFF")+" outside town on the docks.";
+ mes .@str$;
viewpoint 1,218,22,7,0x00BFFF;
break;
case 9:
mes "[Representative]";
mes "I'll remove all marks from your mini-map.";
- mes "Is there anything else I can do for you?";
+ mes .@str$;
viewpoint 2,1,1,0,0xFFFFFF;
viewpoint 2,1,1,1,0xFFFFFF;
viewpoint 2,1,1,2,0xFFFFFF;
diff --git a/npc/re/guides/guides_lutie.txt b/npc/re/guides/guides_lutie.txt
index 121744a24..86f283c98 100644
--- a/npc/re/guides/guides_lutie.txt
+++ b/npc/re/guides/guides_lutie.txt
@@ -1,49 +1,49 @@
//===== Hercules Script ======================================
//= Lutie Guide
-//===== By: ==================================================
+//===== By: ==================================================
//= L0ne_W0lf
-//===== Current Version: =====================================
-//= 1.1
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Current Version: =====================================
+//= 1.2
+//===== Description: =========================================
//= [Official Conversion]
//= Guide for the city of Lutie.
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First version, Renewal guide.
//= 1.1 Fixed and optimized. [Euphy]
-//============================================================
+//= 1.2 Navigation system update. [Euphy]
+//============================================================
-xmas,140,137,3 script Lutie Guide#xmas 717,{
+xmas,140,137,3 script Lutie Guide#xmas 4_F_KID3,{
mes "[Lutie Guide]";
mes "Welcome to ^8B4513Lutie^000000,";
mes "the Snow Village.";
mes "Do you need help navigating the village?";
+ F_Navi("[Lutie Guide]");
while (1) {
next;
switch(select("[ Gift Shop ]:[ Church ]:[ Weapon & Armor Shop ]:[ Tool Shop ]:[ Santa's House ]:[ Toy Factory ]:Remove Marks from Mini-Map:Cancel")) {
case 1:
- callsub L_Mark,"^008080Gift Shop";
+ callsub L_Mark, F_Navi("Gift Shop","xmas,172,131","^008080");
viewpoint 1,172,131,2,0x008080;
break;
case 2:
- callsub L_Mark,"^006400Church";
+ callsub L_Mark, F_Navi("Church","xmas,104,287","^006400");
viewpoint 1,104,287,1,0xAAFF00;
break;
case 3:
- callsub L_Mark,"^FF1493Weapon & Armor Shop";
+ callsub L_Mark, F_Navi("Weapon & Armor Shop","xmas,171,158","^FF1493");
viewpoint 1,171,158,3,0xFF1493;
break;
case 4:
- callsub L_Mark,"^8B4513Tool Shop";
+ callsub L_Mark, F_Navi("Tool Shop","xmas,122,131","^8B4513");
viewpoint 1,122,131,4,0x8B4513;
break;
case 5:
- callsub L_Mark,"^B9062FSanta's House",1;
+ callsub L_Mark, F_Navi("Santa's House","xmas,149,237","^B9062F"),1;
viewpoint 1,149,237,5,0x9400D3;
break;
case 6:
- callsub L_Mark,"^9400D3Toy Factory";
+ callsub L_Mark, F_Navi("Toy Factory","xmas,143,312","^9400D3");
viewpoint 1,143,312,6,0xFF0000;
break;
case 7:
diff --git a/npc/re/guides/guides_malaya.txt b/npc/re/guides/guides_malaya.txt
new file mode 100644
index 000000000..7120d843c
--- /dev/null
+++ b/npc/re/guides/guides_malaya.txt
@@ -0,0 +1,81 @@
+//===== Hercules Script ======================================
+//= Port Malaya Guides
+//===== By: ==================================================
+//= Euphy
+//===== Current Version: =====================================
+//= 1.1
+//===== Description: =========================================
+//= Guides for the city of Malaya.
+//===== Additional Comments: =================================
+//= 1.0 First version. [Euphy]
+//= 1.1 Navigation system update. [Euphy]
+//============================================================
+
+malaya,71,72,4 script Port Malaya Guide#01::GuideMalaya 4_F_BARYO_WOMAN,{
+ mes "[Port Malaya Guide]";
+ mes "Welcome to ^8B4513Port Malaya^000000, the Breathing Village.";
+ mes "Where cultures and legends come to life!";
+ mes "Do you need help navigating the village?";
+ F_Navi("[Port Malaya Guide]");
+ while(1) {
+ next;
+ switch(select("[ Kafra Employees ]:[ Inn & Tavern ]:[ Weapon & Armor Shop ]:[ Tool Shop ]:[ Hospital ]:[ Park ]:[ Harbor ]:Remove marks from Mini-Map:Cancel")) {
+ case 1:
+ callsub L_Mark, "^0000FFKafra Employees^000000",1;
+ viewpoint 1,71,79,0,0x0A82FF;
+ viewpoint 1,234,204,1,0x0A82FF;
+ break;
+ case 2:
+ callsub L_Mark, F_Navi("Inn & Tavern","malaya,193,215","^006400");
+ viewpoint 1,193,215,2,0xAAFF00;
+ break;
+ case 3:
+ callsub L_Mark, F_Navi("Weapon & Armor Shop","malaya,114,212","^008080");
+ viewpoint 1,114,212,3,0x4F543C;
+ break;
+ case 4:
+ callsub L_Mark, F_Navi("Tool Shop","malaya,297,167","^FF1493");
+ viewpoint 1,297,167,4,0xFF1493;
+ break;
+ case 5:
+ callsub L_Mark, F_Navi("Hospital","malaya,50,75","^8B4513");
+ viewpoint 1,50,75,5,0x8B4513;
+ break;
+ case 6:
+ callsub L_Mark, F_Navi("Park","malaya,280,371","^8B4513");
+ viewpoint 1,280,371,6,0x8B4513;
+ break;
+ case 7:
+ callsub L_Mark, F_Navi("Harbor","malaya,276,55","^8A2BE2");
+ viewpoint 1,276,55,7,0x8A2BE2;
+ break;
+ case 8:
+ mes "[Port Malaya Guide]";
+ mes "I'll remove all marks from your mini-map.";
+ mes "Is there anything else I can do for you?";
+ viewpoint 2,1,1,0,0xFFFFFF;
+ viewpoint 2,1,1,1,0xFFFFFF;
+ viewpoint 2,1,1,2,0xFFFFFF;
+ viewpoint 2,1,1,3,0xFFFFFF;
+ viewpoint 2,1,1,4,0xFFFFFF;
+ viewpoint 2,1,1,5,0xFFFFFF;
+ viewpoint 2,1,1,6,0xFFFFFF;
+ viewpoint 2,1,1,7,0xFFFFFF;
+ break;
+ case 9:
+ mes "[Port Malaya Guide]";
+ mes "I hope you enjoy your journey.";
+ close;
+ }
+ }
+ end;
+L_Mark:
+ mes "[Port Malaya Guide]";
+ mes "The "+getarg(0)+" "+((getarg(1,0))?"are":"is");
+ mes "marked on your mini-map.";
+ mes "Check your mini-map.";
+ mes "Is there anything else I can do for you?";
+ return;
+}
+malaya,250,83,6 duplicate(GuideMalaya) Port Malaya Guide#02 4_F_BARYO_WOMAN
+malaya,224,204,6 duplicate(GuideMalaya) Port Malaya Guide#03 4_F_BARYO_WOMAN
diff --git a/npc/re/guides/guides_mora.txt b/npc/re/guides/guides_mora.txt
index 0cb0db35d..87de33b35 100644
--- a/npc/re/guides/guides_mora.txt
+++ b/npc/re/guides/guides_mora.txt
@@ -1,48 +1,48 @@
-//===== rAthena Script =======================================
+//===== Hercules Script ======================================
//= Mora Guides
-//===== By: ==================================================
+//===== By: ==================================================
//= Euphy
-//===== Current Version: =====================================
-//= 1.0
-//===== Compatible With: =====================================
-//= rAthena SVN
-//===== Description: =========================================
+//===== Current Version: =====================================
+//= 1.1
+//===== Description: =========================================
//= Guides for the city of Mora.
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First version. [Euphy]
-//============================================================
+//= 1.1 Navigation system update. [Euphy]
+//============================================================
-mora,25,158,5 script Raffle Guide#north 516,{
+mora,25,158,5 script Raffle Guide#north 4_M_RAFLE_GR,{
mes "[Raffoh]";
mes "Laoh~!";
mes "Welcome to the Village of Mora.";
mes "I can tell you whatever you want to know about the village~!";
+ F_Navi("[Raffoh]");
next;
switch(select("[ Inn ]:[ Residences ]:[ Stores ]:[ Warehouse ]:Remove markers from the mini-map:Quit")) {
case 1:
mes "[Raffoh]";
mes "Laoh~!";
- mes "We have an inn but we can't make travelers sleep like Raffles...";
+ mes "We have an "+F_Navi("Inn","mora,44,138")+" but we can't make travelers sleep like Raffles...";
mes "Get some rest!";
viewpoint 1,44,134,0,0x0A82FF;
close;
case 2:
mes "[Raffoh]";
mes "Laoh~!";
- mes "This is where Raffles' houses are...";
+ mes F_Navi("This","mora,119,170")+" is where Raffles' houses are...";
mes "But keep the noise down because people are asleep~!";
viewpoint 1,119,170,1,0xAAFF00;
close;
case 3:
mes "[Raffoh]";
mes "Laoh~!";
- mes "If you are looking for souvenirs, you can buy some in this district.";
+ mes "If you are looking for souvenirs, you can buy some in this "+F_Navi("district","mora,112,110")+".";
viewpoint 1,112,110,2,0xDA70D6;
close;
case 4:
mes "[Raffoh]";
mes "Laoh~!";
- mes "This is where they keep all kinds of packages and groceries.";
+ mes F_Navi("This","mora,182,161")+" is where they keep all kinds of packages and groceries.";
mes "There are many things that don't belong to the Raffles, so be careful!";
viewpoint 1,182,161,3,0xFF1493;
close;
@@ -62,37 +62,38 @@ mora,25,158,5 script Raffle Guide#north 516,{
}
}
-mora,167,76,3 script Raffle Guide#east 522,{
+mora,167,76,3 script Raffle Guide#east 4_M_RAFLE_OR,{
mes "[Raffuh]";
mes "Uh...";
mes "This, this is the Village of Mora.";
mes "Uh... which place do you want to know about?";
+ F_Navi("[Raffuh]");
next;
switch(select("[ Inn ]:[ Residences ]:[ Stores ]:[ Warehouse ]:Remove markers from the mini-map:Quit")) {
case 1:
mes "[Raffuh]";
mes "Uh...";
mes "Are, are you sleepy?";
- mes "You can sleep here uh!! Put your stuff down uh! And-- and---";
+ mes "You can sleep "+F_Navi("here","mora,44,138")+" uh!! Put your stuff down uh! And-- and---";
viewpoint 1,44,134,0,0x0A82FF;
close;
case 2:
mes "[Raffuh]";
mes "Uh...";
- mes "Why are you trying to find out where I live--?";
+ mes "Why are you trying to find out "+F_Navi("where","mora,119,170")+" I live--?";
mes "Uh, no... I'd like to live with my friends--";
viewpoint 1,119,170,1,0xAAFF00;
close;
case 3:
mes "[Raffuh]";
mes "Uh...";
- mes "There are a lot of things in those stores-- oh, there is a hot spring also uh!";
+ mes "There are a lot of things in those "+F_Navi("stores","mora,112,110")+"-- oh, there is a hot spring also uh!";
viewpoint 1,112,110,2,0xDA70D6;
close;
case 4:
mes "[Raffuh]";
mes "Uh...";
- mes "You can't just march into the warehouse, or you'll be in trouble--";
+ mes "You can't just march into the "+F_Navi("warehouse","mora,182,161")+", or you'll be in trouble--";
mes "Many of the things there are from outside the village-- Raffuh has been in trouble several times--";
viewpoint 1,182,161,3,0xFF1493;
close;
@@ -112,24 +113,25 @@ mora,167,76,3 script Raffle Guide#east 522,{
}
}
-mora,115,138,5 script Raffle Guide#center 524,{
+mora,115,138,5 script Raffle Guide#center 4_M_RAFLE_VI,{
mes "[Raffla]";
mes "Lala!";
mes "Welcome to the Village of Mora la!";
mes "If you need to know anything about the village, just ask me la!";
+ F_Navi("[Raffla]");
next;
switch(select("[ Inn ]:[ Residences ]:[ Stores ]:[ Warehouse ]:Remove markers from the mini-map:Quit.")) {
case 1:
mes "[Raffla]";
mes "Lala!";
- mes "This is where travelers can rest la!";
+ mes F_Navi("This","mora,44,138")+" is where travelers can rest la!";
mes "The innkeeper is very kind, so try to talk to him a lot la!";
viewpoint 1,44,134,0,0x0A82FF;
close;
case 2:
mes "[Raffla]";
mes "Lala!";
- mes "This is where Raffles live la!";
+ mes F_Navi("This","mora,119,170")+" is where Raffles live la!";
mes "Head over there la!";
viewpoint 1,119,170,1,0xAAFF00;
close;
@@ -137,13 +139,13 @@ mora,115,138,5 script Raffle Guide#center 524,{
mes "[Raffla]";
mes "Lala!";
mes "So you want to buy something la?";
- mes "There are a lot of stores and cafes, so check them out la!";
+ mes "There are a lot of "+F_Navi("stores and cafes","mora,112,110")+", so check them out la!";
viewpoint 1,112,110,2,0xDA70D6;
close;
case 4:
mes "[Raffla]";
mes "Lala!";
- mes "The warehouse is where you keep your valuables la!";
+ mes "The "+F_Navi("Warehouse","mora,182,161")+" is where you keep your valuables la!";
mes "Be careful so you don't get robbed la!";
viewpoint 1,182,161,3,0xFF1493;
close;
@@ -163,24 +165,25 @@ mora,115,138,5 script Raffle Guide#center 524,{
}
}
-mora,72,51,3 script Raffle Guide#south 518,{
+mora,72,51,3 script Raffle Guide#south 4_F_RAFLE_PK,{
mes "[Raffli]";
mes "Lali?";
mes "Welcome to the Village of Mora.";
mes "If you need to know anything about the village, just ask me.";
+ F_Navi("[Raffli]");
next;
switch(select("[ Inn ]:[ Residences ]:[ Stores ]:[ Warehouse ]:Remove markers from the mini-map:Quit")) {
case 1:
mes "[Raffli]";
mes "Lali?";
- mes "This is where travelers can rest.";
+ mes F_Navi("This","mora,44,138")+" is where travelers can rest.";
mes "The innkeeper is very kind, so get to know him.";
viewpoint 1,44,134,0,0x0A82FF;
close;
case 2:
mes "[Raffli]";
mes "Lali?";
- mes "This is where Raffles live.";
+ mes F_Navi("This","mora,119,170")+" is where Raffles live.";
mes "Are you coming to Raffli's house li? I'm so happy.";
viewpoint 1,119,170,1,0xAAFF00;
close;
@@ -188,13 +191,13 @@ mora,72,51,3 script Raffle Guide#south 518,{
mes "[Raffli]";
mes "Lali?";
mes "There are a lot of things I want to buy.";
- mes "You can find tons of places to eat and shop, and tons of things to buy.";
+ mes "You can find tons of "+F_Navi("places","mora,112,110")+" to eat and shop, and tons of things to buy.";
viewpoint 1,112,110,2,0xDA70D6;
close;
case 4:
mes "[Raffli]";
mes "Lali?";
- mes "The warehouse is where you keep your valuables.";
+ mes "The "+F_Navi("Warehouse","mora,182,161")+" is where you keep your valuables.";
mes "But don't get robbed.";
viewpoint 1,182,161,3,0xFF1493;
close;
diff --git a/npc/re/guides/guides_morroc.txt b/npc/re/guides/guides_morroc.txt
index e9e662ecd..55b1ef58e 100644
--- a/npc/re/guides/guides_morroc.txt
+++ b/npc/re/guides/guides_morroc.txt
@@ -1,25 +1,25 @@
//===== Hercules Script ======================================
//= Morroc Guides
-//===== By: ==================================================
+//===== By: ==================================================
//= L0ne_W0lf
-//===== Current Version: =====================================
-//= 1.1
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Current Version: =====================================
+//= 1.2
+//===== Description: =========================================
//= [Official Conversion]
//= Guides for the city of Morroc and Morroc Ruins.
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First version, Renewal guide.
//= 1.1 Fixed and optimized. [Euphy]
-//============================================================
+//= 1.2 Navigation system update. [Euphy]
+//============================================================
-morocc,153,286,6 script Guide#01morocc::GuideMorroc 707,{
+morocc,153,286,6 script Guide#01morocc::GuideMorroc 4_M_MOC_SOLDIER,{
cutin "moc_soldier",2;
mes "[Morroc Guide]";
mes "Welcome to ^8B4513Morroc^000000,";
mes "the Desert Town.";
mes "Do you need help navigating the town?";
+ F_Navi("[Morroc Guide]");
next;
while (1) {
switch(select("[ Main Facilities ]:[ Merchants & Helpers ]:Remove Marks from Mini-Map:Cancel")) {
@@ -29,7 +29,7 @@ morocc,153,286,6 script Guide#01morocc::GuideMorroc 707,{
switch(select("[ Thief Guild ]:[ Sphinx Dungeon ]:[ Oasis Entrance ]:[ Forge ]:[ Weapon & Armor Shop ]:[ Inn ]:[ Tavern ]:Previous Menu")) {
case 1:
mes "[Morroc Guide]";
- mes "The ^B9062FThief Guild^000000 is located";
+ mes "The "+F_Navi("Thief Guild","morocc,26,294","^B9062F")+" is located";
mes "inside the ^B9062FPyramids^000000";
mes "that is near the ^B9062FOasis^000000.";
mes "Would you like to check any other locations?";
@@ -38,7 +38,7 @@ morocc,153,286,6 script Guide#01morocc::GuideMorroc 707,{
break;
case 2:
mes "[Morroc Guide]";
- mes "The ^0000FFSphinx Dungeon^000000 is";
+ mes "The "+F_Navi("Sphinx Dungeon","morocc,26,164","^0000FF")+" is";
mes "right outside the western gate.";
mes "Would you like to check any other locations?";
viewpoint 1,26,164,1,0x0A82FF;
@@ -46,25 +46,25 @@ morocc,153,286,6 script Guide#01morocc::GuideMorroc 707,{
break;
case 3:
mes "[Morroc Guide]";
- mes "Let me mark the entrance to the ^FF5400Oasis^000000";
+ mes "Let me mark the entrance to the "+F_Navi("Oasis","morocc,26,294","^FF5400");
mes "on your mini-map.";
mes "Would you like to check any other locations?";
viewpoint 1,26,294,2,0xFFB400;
next;
break;
case 4:
- callsub L_Mark,"^006400Forge";
+ callsub L_Mark, F_Navi("Forge","morocc,47,47","^006400");
viewpoint 1,47,47,3,0xAAFF00;
next;
break;
case 5:
- callsub L_Mark,"^7F3300Weapon & Armor Shop";
+ callsub L_Mark, F_Navi("Weapon & Armor Shop","morocc,253,56","^7F3300");
viewpoint 1,253,56,4,0xD2691E;
next;
break;
case 6:
mes "[Morroc Guide]";
- mes "Currently the ^800080Inn^000000";
+ mes "Currently the "+F_Navi("Inn","morocc,273,269","^800080");
mes "has been shut down until further notice,";
mes "but I'll mark its location";
mes "on your mini-map.";
@@ -73,7 +73,7 @@ morocc,153,286,6 script Guide#01morocc::GuideMorroc 707,{
next;
break;
case 7:
- callsub L_Mark,"^B9062FTavern";
+ callsub L_Mark, F_Navi("Tavern","morocc,52,259","^B9062F");
viewpoint 1,52,259,6,0xFF0000;
next;
break;
@@ -88,19 +88,19 @@ morocc,153,286,6 script Guide#01morocc::GuideMorroc 707,{
while (.@loop) {
switch(select("[ Kafra Employee ]:[ Poison Herb Salesman ]:[ Dye Maker ]:[ Seiyablem ]:Previous Menu")) {
case 1:
- callsub L_Mark,"^0000FFKafra Employees";
+ callsub L_Mark,"^0000FFKafra Employees^000000";
viewpoint 1,156,97,7,0x0A82FF;
viewpoint 1,160,258,8,0x0A82FF;
next;
break;
case 2:
- callsub L_Mark,"^006400Poison Herb Salesman";
+ callsub L_Mark, F_Navi("Poison Herb Salesman","morocc,191,94","^006400");
viewpoint 1,190,96,9,0xAAFF00;
next;
break;
case 3:
mes "[Morroc Guide]";
- mes "The ^7F3300Dye Maker^000000 is";
+ mes "The "+F_Navi("Dye Maker","morocc,273,269","^7F3300")+" is";
mes "currently staying";
mes "on the 1st floor of the Inn.";
mes "Let me mark his location";
@@ -111,7 +111,7 @@ morocc,153,286,6 script Guide#01morocc::GuideMorroc 707,{
break;
case 4:
mes "[Morroc Guide]";
- mes "^800080Seiyablem^000000";
+ mes F_Navi("Seiyablem","morocc,51,41","^800080");
mes "is a technician";
mes "who can create ^0000FFslots^000000 on weapons and armors,";
mes "but not all equipment";
@@ -156,22 +156,22 @@ morocc,153,286,6 script Guide#01morocc::GuideMorroc 707,{
L_Mark:
mes "[Morroc Guide]";
mes "Let me mark the location of the";
- mes getarg(0)+"^000000";
+ mes getarg(0);
mes "on your mini-map.";
mes "Would you like to check any other locations?";
return;
}
+morocc,154,38,6 duplicate(GuideMorroc) Guide#02morocc 4_M_MOC_SOLDIER
+morocc,296,213,4 duplicate(GuideMorroc) Guide#03morocc 4_M_MOC_SOLDIER
+morocc,28,170,5 duplicate(GuideMorroc) Guide#04morocc 4_M_MOC_SOLDIER
-morocc,154,38,6 duplicate(GuideMorroc) Guide#02morocc 707,{
-morocc,296,213,4 duplicate(GuideMorroc) Guide#03morocc 707,{
-morocc,28,170,5 duplicate(GuideMorroc) Guide#04morocc 707,{
-
-moc_ruins,159,53,3 script Guide#01ruins::GuideMocRuins 707,{
+moc_ruins,159,53,3 script Guide#01ruins::GuideMocRuins 4_M_MOC_SOLDIER,{
cutin "moc_soldier",2;
mes "[Morroc Guide]";
mes "Welcome to ^8B4513Morroc^000000,";
mes "the Desert Town.";
mes "Do you need help navigating the town?";
+ F_Navi("[Morroc Guide]");
next;
while (1) {
switch(select("[ Main Facilities ]:[ Merchants & Helpers ]:Remove Marks from Mini-Map:Cancel")) {
@@ -181,7 +181,7 @@ moc_ruins,159,53,3 script Guide#01ruins::GuideMocRuins 707,{
switch(select("[ Thief Guild ]:[ Sphinx Dungeon ]:[ Morroc Entrance ]:Previous Menu")) {
case 1:
mes "[Morroc Guide]";
- mes "The ^B9062FThief Guild^000000 is located";
+ mes "The "+F_Navi("Thief Guild","moc_ruins,56,161","^B9062F")+" is located";
mes "inside the ^B9062FPyramids^000000.";
mes "Let me mark its location";
mes "on your mini-map.";
@@ -191,7 +191,7 @@ moc_ruins,159,53,3 script Guide#01ruins::GuideMocRuins 707,{
break;
case 2:
mes "[Morroc Guide]";
- mes "The ^0000FFSphinx Dungeon^000000";
+ mes "The "+F_Navi("Sphinx Dungeon","moc_ruins,71,19","^0000FF");
mes "is outside the south entrance of this Oasis.";
mes "Would you like to check any other locations?";
viewpoint 1,71,19,1,0x0A82FF;
@@ -199,7 +199,7 @@ moc_ruins,159,53,3 script Guide#01ruins::GuideMocRuins 707,{
break;
case 3:
mes "[Morroc Guide]";
- mes "^FF5400Morroc^000000 is";
+ mes F_Navi("Morroc","moc_ruins,158,40","^FF5400")+" is";
mes "right outside the southeast entrance of this Oasis.";
mes "Let me mark its location";
mes "on your mini-map.";
@@ -218,39 +218,44 @@ moc_ruins,159,53,3 script Guide#01ruins::GuideMocRuins 707,{
while (.@loop) {
switch(select("[ Eden Teleport Officer ]:[ Tool Dealer ]:[ Kafra Employee ]:[ Repairman ]:[ Pet Groomer ]:[ Chef Assistant ]:[ Leablem ]:Previous Menu")) {
case 1:
- callsub L_Mark,"^006400Eden Teleport Officer";
+ callsub L_Mark, F_Navi("Eden Teleport Officer","moc_ruins,68,164","^006400");
viewpoint 1,68,164,3,0xAAFF00;
next;
break;
case 2:
- callsub L_Mark,"^800080Tool Dealers";
+ mes "[Morroc Guide]";
+ mes "Let me mark the location of the";
+ mes F_Navi("Northern Tool Dealer","moc_ruins,92,128","^800080");
+ mes "and "+F_Navi("Southern Tool Dealer","moc_ruins,114,63","^800080");
+ mes "on your mini-map.";
+ mes "Would you like to check any other locations?";
viewpoint 1,92,128,5,0xDA70D6;
viewpoint 1,114,63,6,0xDA70D6;
next;
break;
case 3:
- callsub L_Mark,"^B9062FKafra Employee";
+ callsub L_Mark, "^B9062FKafra Employee^000000";
viewpoint 1,59,157,7,0xFF0000;
next;
break;
case 4:
- callsub L_Mark,"^0000FFRepairman";
+ callsub L_Mark, F_Navi("Repairman","moc_ruins,107,94","^0000FF");
viewpoint 1,107,94,8,0x0A82FF;
next;
break;
case 5:
- callsub L_Mark,"^FF5400Pet Groomer";
+ callsub L_Mark, F_Navi("Pet Groomer","moc_ruins,118,170","^FF5400");
viewpoint 1,118,170,9,0xFFB400;
next;
break;
case 6:
- callsub L_Mark,"^006400Chef Assistant";
+ callsub L_Mark, F_Navi("Chef Assistant","moc_ruins,115,123","^006400");
viewpoint 1,115,123,10,0xAAFF00;
next;
break;
case 7:
mes "[Morroc Guide]";
- mes "^7F3300Leablem^000000";
+ mes F_Navi("Leablem","moc_ruins,154,86","^7F3300");
mes "is a technician";
mes "who can create ^0000FFslots^000000 on weapons and armors,";
mes "but not all equipment";
@@ -295,11 +300,10 @@ moc_ruins,159,53,3 script Guide#01ruins::GuideMocRuins 707,{
L_Mark:
mes "[Morroc Guide]";
mes "Let me mark the location of the";
- mes getarg(0)+"^000000";
+ mes getarg(0);
mes "on your mini-map.";
mes "Would you like to check any other locations?";
return;
}
-
-moc_ruins,70,164,3 duplicate(GuideMocRuins) Guide#02ruins 707
-moc_ruins,65,44,5 duplicate(GuideMocRuins) Guide#03ruins 707
+moc_ruins,70,164,3 duplicate(GuideMocRuins) Guide#02ruins 4_M_MOC_SOLDIER
+moc_ruins,65,44,5 duplicate(GuideMocRuins) Guide#03ruins 4_M_MOC_SOLDIER
diff --git a/npc/re/guides/guides_moscovia.txt b/npc/re/guides/guides_moscovia.txt
index 6627021f3..05664c06a 100644
--- a/npc/re/guides/guides_moscovia.txt
+++ b/npc/re/guides/guides_moscovia.txt
@@ -1,77 +1,85 @@
//===== Hercules Script ======================================
//= Moscovia Guide
-//===== By: ==================================================
+//===== By: ==================================================
//= L0ne_W0lf
-//===== Current Version: =====================================
-//= 1.1
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Current Version: =====================================
+//= 1.2
+//===== Description: =========================================
//= [Official Conversion]
//= Guide for the city of Moscovia.
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First version, Renewal guide.
//= 1.1 Optimized (a little bit). [Euphy]
-//============================================================
+//= 1.2 Navigation system update. [Euphy]
+//============================================================
-moscovia,226,191,4 script Moscovia Guide#02mosc 959,{
+moscovia,161,76,3 script Moscovia Guide#01mosc 4_F_RUSWOMAN1,{
mes "[Moscovia Guide]";
- mes "A paradise on the sea";
- mes "beautiful wave and warm sunshine";
- mes "^8B4513Moscovia^000000 is waitting for you";
- mes "welcome to come here.";
+ mes "A paradise on the sea,";
+ mes "beautiful waves and warm sunshine.";
+ mes "^8B4513Moscovia^000000 is waiting for you.";
mes "I'm supporting to offer information about here.";
- mes "if you want to ask anything just feel free tell me.";
+ mes "If you want to ask anything just feel free tell me.";
+ F_Navi("[Moscovia Guide]");
set .@str$,"Is there anything else I can do for you?";
while (1) {
next;
- switch(select("[ Palace ]:[ Chapel ]:[ Weapon Shop ]:[ Armor Shop ]:[ Tool Shop ]:[ Inn ]:[ Return to Alberta ]:Remove Marks from Mini-Map:Cancel")) {
+ switch(select("[ Kafra Employee ]:[ Palace ]:[ Chapel ]:[ Weapon Shop ]:[ Armor Shop ]:[ Tool Shop ]:[ Inn ]:[ Return to Alberta ]:Remove Marks from Mini-Map:Cancel")) {
case 1:
mes "[Moscovia Guide]";
- mes "In the ^006400Palace^000000 you will find our Lord the Czar and other servants.";
- mes .@str$;
- viewpoint 1,255,140,0,0x0A82FF;
+ mes "The ^0000FFKafra Employee^000000 has";
+ mes "been marked on your mini-map";
+ mes "Check your mini-map.";
+ mes "Do you need anything else?";
+ viewpoint 1,223,191,0,0x0A82FF;
break;
case 2:
mes "[Moscovia Guide]";
- mes "The ^008080Chapel^000000 is located here.";
+ mes "In the "+F_Navi("Palace","moscovia,255,140","^006400")+" you will find our Lord the Czar and other servants.";
mes .@str$;
- viewpoint 1,253,179,1,0xAAFF00;
+ viewpoint 1,255,140,1,0x0A82FF;
break;
case 3:
mes "[Moscovia Guide]";
- mes "You can buy weapons from the best craftsmen in Moscovia if you go to ^FF1493Weapon Shop^000000.";
+ mes "The "+F_Navi("Chapel","moscovia,253,179","^008080")+" is located here.";
mes .@str$;
- viewpoint 1,186,191,2,0x008080;
+ viewpoint 1,253,179,2,0xAAFF00;
break;
case 4:
mes "[Moscovia Guide]";
- mes "You will find only the best gear at the Moscovia ^8B4513Armor Shop^000000.";
+ mes "You can buy weapons from the best craftsmen in Moscovia if you go to the "+F_Navi("Weapon Shop","moscovia,186,191","^FF1493")+".";
mes .@str$;
- viewpoint 1,204,169,3,0xB200FF;
+ viewpoint 1,186,191,3,0x008080;
break;
case 5:
mes "[Moscovia Guide]";
- mes "The ^FF1493Tool Shop^000000 is located just south from the center of town.";
- mes "You can find all sorts of things you need for your travels.";
+ mes "You will find only the best gear at the Moscovia "+F_Navi("Armor Shop","moscovia,204,169","^8B4513")+".";
mes .@str$;
- viewpoint 1,221,176,4,0xFF1493;
+ viewpoint 1,204,169,4,0xB200FF;
break;
case 6:
mes "[Moscovia Guide]";
- mes "The Inn 'Sticky Herb Tree' is just north from the center of town.";
- mes "If you need to rest, there is no better place to stay.";
+ mes "The "+F_Navi("Tool Shop","moscovia,221,176","^FF1493")+" is located just south from the center of town.";
+ mes "You can find all sorts of things you need for your travels.";
mes .@str$;
- viewpoint 1,227,206,5,0x8B4513;
+ viewpoint 1,221,176,5,0xFF1493;
break;
case 7:
mes "[Moscovia Guide]";
- mes "You can go back to Alberta at the docks.";
+ mes "The Inn "+F_Navi("Sticky Herb Tree","moscovia,227,206")+" is just north from the center of town.";
+ mes "If you need to rest, there is no better place to stay.";
mes .@str$;
- viewpoint 1,166,53,6,0x00BFFF;
+ viewpoint 1,227,206,6,0x8B4513;
break;
case 8:
mes "[Moscovia Guide]";
+ mes "You can find the";
+ mes F_Navi("Moscovia P.R. Officer","moscovia,166,53")+" at the docks if";
+ mes "you want to return to Alberta.";
+ viewpoint 1,166,53,7,0x00BFFF;
+ break;
+ case 9:
+ mes "[Moscovia Guide]";
mes "I'll remove all marks from your mini-map.";
mes .@str$;
viewpoint 2,1,1,0,0xFFFFFF;
@@ -81,11 +89,13 @@ moscovia,226,191,4 script Moscovia Guide#02mosc 959,{
viewpoint 2,1,1,4,0xFFFFFF;
viewpoint 2,1,1,5,0xFFFFFF;
viewpoint 2,1,1,6,0xFFFFFF;
+ viewpoint 2,1,1,7,0xFFFFFF;
break;
- case 9:
+ case 10:
mes "[Moscovia Guide]";
mes "Enjoy your trip~!";
close;
}
}
}
+moscovia,226,191,4 duplicate(Moscovia Guide#01mosc) Moscovia Guide#02mosc 4_F_RUSWOMAN1
diff --git a/npc/re/guides/guides_niflheim.txt b/npc/re/guides/guides_niflheim.txt
index 32790bd44..141f14cfa 100644
--- a/npc/re/guides/guides_niflheim.txt
+++ b/npc/re/guides/guides_niflheim.txt
@@ -1,41 +1,45 @@
//===== Hercules Script ======================================
//= Niflheim Guide
-//===== By: ==================================================
+//===== By: ==================================================
//= L0ne_W0lf
-//===== Current Version: =====================================
-//= 1.1
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Current Version: =====================================
+//= 1.2
+//===== Description: =========================================
//= [Official Conversion]
-//= Guide for the city of Niflehim.
-//===== Additional Comments: =================================
+//= Guide for the city of Niflheim.
+//===== Additional Comments: =================================
//= 1.0 First version, Renewal guide.
//= 1.1 Optimized. [Euphy]
-//============================================================
+//= 1.2 Navigation system update. [Euphy]
+//============================================================
-niflheim,201,187,3 script Niflheim Guide#01nif 849,{
+niflheim,201,187,3 script Niflheim Guide#01nif 4_M_DIEMAN,{
mes "[Niflheim Guide]";
mes "Welcome to.. ^8B4513Niflheim^000000...";
mes "the Realm of the Dead...";
mes "Do you need help navigating the realm...?";
+ if (F_Navi() == 0) {
+ next;
+ mes "[Niflheim Guide]";
+ mes "When you click on the.. ^B9062F[location name]^000000... you'll receive the most advanced ^B9062FNavigation^000000 services...!";
+ }
while (1) {
next;
switch(select("[ Tool Shop ]:[ Pub ]:[ Weapon Shop ]:[ Witch's Castle ]:Remove Marks from Mini-Map:Cancel")) {
case 1:
- callsub L_Mark,"^0000FFTool Shop";
+ callsub L_Mark, F_Navi("Tool Shop","niflheim,218,196","^0000FF");
viewpoint 1,218,196,0,0x0A82FF;
break;
case 2:
- callsub L_Mark,"^006400Pub";
+ callsub L_Mark, F_Navi("Pub","niflheim,189,208","^006400");
viewpoint 1,189,208,1,0xAAFF00;
break;
case 3:
- callsub L_Mark,"^800080Weapon Shop";
+ callsub L_Mark, F_Navi("Weapon Shop","niflheim,218,170","^800080");
viewpoint 1,218,170,2,0xDA70D6;
break;
case 4:
- callsub L_Mark,"^FF1493Witch's Castle";
+ callsub L_Mark, F_Navi("Witch's Castle","niflheim,255,195","^FF1493");
viewpoint 1,255,195,3,0xFF1493;
break;
case 5:
diff --git a/npc/re/guides/guides_payon.txt b/npc/re/guides/guides_payon.txt
index e07ff5bfe..a165ad455 100644
--- a/npc/re/guides/guides_payon.txt
+++ b/npc/re/guides/guides_payon.txt
@@ -1,35 +1,35 @@
//===== Hercules Script ======================================
//= Payon Guides
-//===== By: ==================================================
+//===== By: ==================================================
//= L0ne_W0lf
-//===== Current Version: =====================================
-//= 1.1
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Current Version: =====================================
+//= 1.2
+//===== Description: =========================================
//= [Official Conversion]
//= Guides for the city of Payon.
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First version, Renewal guides.
//= 1.1 Fixed and optimized. [Euphy]
-//============================================================
+//= 1.2 Navigation system update. [Euphy]
+//============================================================
-payon,163,64,3 script Guide#01payon::GuidePayon 708,{
+payon,163,64,3 script Guide#01payon::GuidePayon 4_M_PAY_SOLDIER,{
cutin "pay_soldier",2;
mes "[Payon Guide]";
mes "Welcome to ^8B4513Payon^000000,";
mes "the Mountain Village.";
mes "Do you need help navigating the village?";
+ F_Navi("[Payon Guide]");
next;
while (1) {
switch(select("[ Main Facilities ]:[ Merchants & Helpers ]:Remove Marks from Mini-Map:Cancel")) {
case 1:
set .@loop,1;
while (.@loop) {
- switch(select("[ Archer Village ]:[ Tool Shop]:[ Weapon & Armor Shop ]:[ Inn & Tavern ]:[ Central Palace ]:[ Palace Court ]:[ Royal Kitchen ]:Previous Menu")) {
+ switch(select("[ Archer Village ]:[ Tool Shop ]:[ Weapon & Armor Shop ]:[ Inn & Tavern ]:[ Central Palace ]:[ Palace Court ]:[ Royal Kitchen ]:Previous Menu")) {
case 1:
mes "[Payon Guide]";
- mes "^B9062FArcher Village^000000 is where";
+ mes F_Navi("Archer Village","payon,227,328","^B9062F")+" is where";
mes "the Archer Association resides.";
mes "Please use the far north gate to enter the village.";
mes "Would you like to check any other locations?";
@@ -37,32 +37,32 @@ payon,163,64,3 script Guide#01payon::GuidePayon 708,{
next;
break;
case 2:
- callsub L_Mark,"^0000FFTool Shop";
+ callsub L_Mark, F_Navi("Tool Shop","payon,144,85","^0000FF");
viewpoint 1,144,85,1,0x0A82FF;
next;
break;
case 3:
- callsub L_Mark,"^FF5400Weapon & Armor Shop";
+ callsub L_Mark, F_Navi("Weapon & Armor Shop","payon,139,159","^FF5400");
viewpoint 1,139,159,2,0xFFB400;
next;
break;
case 4:
- callsub L_Mark,"^006400Inn & Tavern";
+ callsub L_Mark, F_Navi("Inn & Tavern","payon,220,117","^006400");
viewpoint 1,220,117,3,0xAAFF00;
next;
break;
case 5:
- callsub L_Mark,"^7F3300Central Palace";
+ callsub L_Mark, F_Navi("Central Palace","payon,155,245","^7F3300");
viewpoint 1,155,245,4,0xD2691E;
next;
break;
case 6:
- callsub L_Mark,"^800080Palace Court";
+ callsub L_Mark, F_Navi("Palace Court","payon,107,325","^800080");
viewpoint 1,107,325,5,0xDA70D6;
next;
break;
case 7:
- callsub L_Mark,"^B9062FRoyal Kitchen";
+ callsub L_Mark, F_Navi("Royal Kitchen","payon,154,325","^B9062F");
viewpoint 1,154,325,6,0xFF0000;
next;
break;
@@ -75,36 +75,36 @@ payon,163,64,3 script Guide#01payon::GuidePayon 708,{
case 2:
set .@loop,1;
while (.@loop) {
- switch(select("[ Eden Teleport Officer ]:[ Kafra Shop ]:[ Repair / Armsmith ]:[ Kafra Employee]:[ Trap Specialist ]:[ Seiayblem ]:[ Leablem ]:[ Jade ]:[ Pet Groomer ]:[ Chef Assistant ]:Previous Menu")) {
+ switch(select("[ Eden Teleport Officer ]:[ Kafra Shop ]:[ Repair / Armsmith ]:[ Kafra Employee ]:[ Trap Specialist ]:[ Seiayblem ]:[ Leablem ]:[ Jade ]:[ Pet Groomer ]:[ Chef Assistant ]:Previous Menu")) {
case 1:
- callsub L_Mark,"^0000FFEden Teleport Officer";
+ callsub L_Mark, F_Navi("Eden Teleport Officer","payon,177,111","^0000FF");
viewpoint 1,177,111,7,0x0A82FF;
next;
break;
case 2:
- callsub L_Mark,"^FF5400Kafra Shop Girls";
+ callsub L_Mark, F_Navi("Kafra Shop Girls","payon,164,157","^FF5400");
viewpoint 1,164,157,8,0xFFB400;
next;
break;
case 3:
- callsub L_Mark,"^006400Repairman & Armsmith";
+ callsub L_Mark, F_Navi("Repairman & Armsmith","payon,144,170","^006400");
viewpoint 1,144,170,9,0xAAFF00;
next;
break;
case 4:
- callsub L_Mark,"^7F3300Kafra Employees";
+ callsub L_Mark, "^7F3300Kafra Employees^000000";
viewpoint 1,181,104,10,0xD2691E;
viewpoint 1,175,226,11,0xD2691E;
next;
break;
case 5:
- callsub L_Mark,"^800080Trap Specialist";
+ callsub L_Mark, F_Navi("Trap Specialist","payon,123,109","^800080");
viewpoint 1,123,109,12,0xDA70D6;
next;
break;
case 6:
mes "[Payon Guide]";
- mes "^B9062FSeiyablem^000000";
+ mes F_Navi("Seiyablem","payon,140,151","^B9062F");
mes "is a technician";
mes "who can create ^0000FFslots^000000 on weapons and armors,";
mes "but not all equipment";
@@ -115,7 +115,7 @@ payon,163,64,3 script Guide#01payon::GuidePayon 708,{
break;
case 7:
mes "[Payon Guide]";
- mes "^0000FFLeablem^000000";
+ mes F_Navi("Leablem","payon,236,199","^0000FF");
mes "is a technician";
mes "who can create ^0000FFslots^000000 on weapons and armors,";
mes "but not all equipment";
@@ -126,7 +126,7 @@ payon,163,64,3 script Guide#01payon::GuidePayon 708,{
break;
case 8:
mes "[Payon Guide]";
- mes "^FF5400Jade^000000";
+ mes F_Navi("Jade","payon,173,238","^FF5400");
mes "can exchange different types of";
mes "^FF5400Gemstones^000000.";
mes "Would you like to check any other locations?";
@@ -134,12 +134,12 @@ payon,163,64,3 script Guide#01payon::GuidePayon 708,{
next;
break;
case 9:
- callsub L_Mark,"^006400Pet Groomer";
+ callsub L_Mark, F_Navi("Pet Groomer","payon,177,131","^006400");
viewpoint 1,177,131,16,0xAAFF00;
next;
break;
case 10:
- callsub L_Mark,"^7F3300Chef Assistant";
+ callsub L_Mark, F_Navi("Chef Assistant","payon,206,119","^7F3300");
viewpoint 1,206,119,17,0xD2691E;
next;
break;
@@ -185,22 +185,23 @@ payon,163,64,3 script Guide#01payon::GuidePayon 708,{
L_Mark:
mes "[Payon Guide]";
mes "Let me mark the location of the";
- mes getarg(0)+"^000000";
+ mes getarg(0);
mes "on your mini-map.";
mes "Would you like to check any other locations?";
return;
}
-payon,151,182,6 duplicate(GuidePayon) Guide#02payon 708
-payon,221,85,6 duplicate(GuidePayon) Guide#03payon 708
-payon,233,324,4 duplicate(GuidePayon) Guide#04payon 708
+payon,151,182,6 duplicate(GuidePayon) Guide#02payon 4_M_PAY_SOLDIER
+payon,221,85,6 duplicate(GuidePayon) Guide#03payon 4_M_PAY_SOLDIER
+payon,233,324,4 duplicate(GuidePayon) Guide#04payon 4_M_PAY_SOLDIER
-pay_arche,86,33,4 script Guide#05payon 708,{
+pay_arche,86,33,4 script Guide#05payon 4_M_PAY_SOLDIER,{
cutin "pay_soldier",2;
mes "[Payon Guide]";
mes "Welcome to ^8B4513Archer Village^000000,";
mes "a subsidiary village of Payon.";
mes "Do you need help navigating the village?";
+ F_Navi("[Payon Guide]");
next;
set .@str$,"Would you like to check any other locations?";
while (1) {
@@ -208,7 +209,7 @@ pay_arche,86,33,4 script Guide#05payon 708,{
case 1:
mes "[Payon Guide]";
mes "Let me mark the entrance of";
- mes "the ^B9062FPayon Dungeon^000000";
+ mes "the "+F_Navi("Payon Dungeon","pay_arche,38,131","^B9062F");
mes "on your mini-map.";
mes .@str$;
viewpoint 1,38,131,0,0xFF0000;
@@ -216,7 +217,7 @@ pay_arche,86,33,4 script Guide#05payon 708,{
break;
case 2:
mes "[Payon Guide]";
- mes "The ^0000FFArcher Guild^000000";
+ mes "The "+F_Navi("Archer Guild","pay_arche,143,164","^0000FF");
mes "is where you can change";
mes "your job to Archer.";
mes .@str$;
@@ -226,7 +227,7 @@ pay_arche,86,33,4 script Guide#05payon 708,{
case 3:
mes "[Payon Guide]";
mes "Let me mark the location of the";
- mes "^FF5400Tool Shop^000000";
+ mes F_Navi("Tool Shop","pay_arche,72,156","^FF5400");
mes "on your mini-map.";
mes .@str$;
viewpoint 1,72,156,2,0xFFB400;
@@ -243,8 +244,7 @@ pay_arche,86,33,4 script Guide#05payon 708,{
case 5:
mes "[Payon Guide]";
mes "Let me mark the location of the";
- mes "^7F3300Bow Mercenary Manager^000000 and";
- mes "^7F3300Mercenary Goods Merchant^000000";
+ mes F_Navi("Mercenary Guildsman","pay_arche,101,166","^7F3300");
mes "on your mini-map.";
mes .@str$;
viewpoint 1,101,166,4,0xD2691E;
@@ -253,7 +253,7 @@ pay_arche,86,33,4 script Guide#05payon 708,{
case 6:
mes "[Payon Guide]";
mes "Let me mark the location of the";
- mes "^800080Alchemist Guildsman^000000";
+ mes F_Navi("Alchemist Guildsman","pay_arche,126,113,","^800080");
mes "on your mini-map.";
mes .@str$;
viewpoint 1,127,113,5,0xDA70D6;
@@ -261,7 +261,7 @@ pay_arche,86,33,4 script Guide#05payon 708,{
break;
case 7:
mes "[Payon Guide]";
- mes "The ^0000FFEden Teleport Officer^000000";
+ mes "The "+F_Navi("Eden Teleport Officer","pay_arche,143,164","^0000FF");
mes "is currently staying inside";
mes "the Archer Guild building.";
mes .@str$;
diff --git a/npc/re/guides/guides_prontera.txt b/npc/re/guides/guides_prontera.txt
index f744a7a8c..c3ecea92f 100644
--- a/npc/re/guides/guides_prontera.txt
+++ b/npc/re/guides/guides_prontera.txt
@@ -1,26 +1,28 @@
//===== Hercules Script ======================================
//= Prontera Guides
-//===== By: ==================================================
+//===== By: ==================================================
//= L0ne_W0lf
-//===== Current Version: =====================================
-//= 1.0
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Current Version: =====================================
+//= 1.1
+//===== Description: =========================================
//= [Official Conversion]
-//= Guides for the city of Prontera
-//===== Additional Comments: =================================
+//= Guides for the city of Prontera.
+//===== Additional Comments: =================================
//= 1.0 First version, Renewal guides.
-//============================================================
+//= 1.1 Navigation system update. [Euphy]
+//= Optimized.
+//============================================================
-prontera,154,187,4 script Guide#01prontera::GuideProntera 105,{
+prontera,154,187,4 script Guide#01prontera::GuideProntera 8W_SOLDIER,{
cutin "prt_soldier",2;
mes "[Prontera Guide]";
mes "Welcome to ^8B4513Prontera^000000,";
mes "the beautiful capital of the";
mes "Rune-Midgarts Kingdom.";
mes "Do you need help navigating the city?";
+ F_Navi("[Prontera Guide]");
next;
+ set .@str$,"Would you like to check any other locations?";
while (1) {
switch(select("[ Main Facilities ]:[ Merchants & Helpers ]:Remove Marks from Mini-Map:Cancel")) {
case 1:
@@ -28,63 +30,53 @@ prontera,154,187,4 script Guide#01prontera::GuideProntera 105,{
while (.@loop) {
switch(select("[ Tool Shop ]:[ Weapon & Armor Shop ]:[ Forge ]:[ Sanctuary ]:[ Chivalry Office ]:[ Inn ]:[ Tavern ]:[ Library ]:[ Prontera Castle ]:[ Job Agency ]:[ City Hall ]:Previous Menu")) {
case 1:
- mes "[Prontera Guide]";
- mes "Let me mark the location of the ^B9062FTool Shop^000000";
- mes "on your mini-map.";
- mes "Would you like to check any other locations?";
+ callsub L_Mark, F_Navi("Tool Shop","prontera,134,221","^B9062F");
+ mes .@str$;
viewpoint 1,134,221,0,0xFF0000;
next;
break;
case 2:
- mes "[Prontera Guide]";
- mes "Let me mark the location of the ^0000FFWeapon & Armor Shop^000000";
- mes "on your mini-map.";
- mes "Would you like to check any other locations?";
+ callsub L_Mark, F_Navi("Weapon & Armor Shop","prontera,175,220","^0000FF");
+ mes .@str$;
viewpoint 1,175,220,1,0x0A82FF;
next;
break;
case 3:
- mes "[Prontera Guide]";
- mes "Let me mark the location of the ^FF5400Forge^000000";
- mes "on your mini-map.";
- mes "Would you like to check any other locations?";
+ callsub L_Mark, F_Navi("Forge","prontera,179,184","^FF5400");
+ mes .@str$;
viewpoint 1,179,184,2,0xFFB400;
next;
break;
case 4:
mes "[Prontera Guide]";
- mes "The ^006400Prontera Sanctuary^000000 is";
+ mes "The "+F_Navi("Prontera Sanctuary","prontera,236,316","^006400")+" is";
mes "where you can change your job to Acolyte,";
mes "its located in the far northeast of Prontera.";
mes "Let me mark the location on your mini-map.";
- mes "Would you like to check any other locations?";
+ mes .@str$;
viewpoint 1,236,316,3,0xAAFF00;
next;
break;
case 5:
mes "[Prontera Guide]";
- mes "The Chivalry Office is";
+ mes "The "+F_Navi("Chivalry Office","prontera,46,345")+" is";
mes "where you can change your job to ^7F3300Knight^000000";
mes "or apply for the ^7F3300Culvert^000000 Subjugation Party.";
- mes "Would you like to check any other locations?";
+ mes .@str$;
viewpoint 1,46,345,4,0xD2691E;
next;
break;
case 6:
- mes "[Prontera Guide]";
- mes "Let me mark the location of the ^800080Inn^000000";
- mes "on your mini-map.";
- mes "Would you like to check any other locations?";
+ callsub L_Mark, F_Navi("Inn","prontera,203,191","^800080");
+ mes .@str$;
viewpoint 1,204,191,5,0xDA70D6;
next;
break;
case 7:
- mes "[Prontera Guide]";
- mes "Let me mark the location of the ^B9062FTaverns^000000";
- mes "on your mini-map.";
- mes "Only the ^B9062Fnorthern^000000 tavern";
+ callsub L_Mark, "^B9062FTaverns^000000";
+ mes "Only the "+F_Navi("northern","prontera,208,154","^B9062F")+" tavern";
mes "is open for now.";
- mes "Would you like to check any other locations?";
+ mes .@str$;
viewpoint 1,208,154,6,0xFF0000;
viewpoint 1,46,67,7,0xFF0000;
next;
@@ -93,38 +85,36 @@ prontera,154,187,4 script Guide#01prontera::GuideProntera 105,{
mes "[Prontera Guide]";
mes "The ^0000FFLibrary^000000 is";
mes "where you can find useful information, like the Monster Encyclopedia.";
- mes "There are currently twi libaries available";
- mes "in the northern area of Prontera.";
- mes "Would you like to check any other locations?";
+ mes "There are currently two libaries available,";
+ mes "One to the "+F_Navi("northeast","prontera,120,264")+" and the other to the "+F_Navi("northwest","prontera,192,264")+".";
+ mes .@str$;
viewpoint 1,120,264,8,0x0A82FF;
viewpoint 1,192,264,9,0x0A82FF;
next;
break;
case 9:
mes "[Prontera Guide]";
- mes "The ^FF5400Prontera Castle^000000 is north from here,";
+ mes "The "+F_Navi("Prontera Castle","prontera,156,360","^FF5400")+" is north from here,";
mes "and its rear gate is connected to";
mes "the northern Prontera Fields.";
mes "Let me mark the castle on your mini-map.";
- mes "Would you like to check any other locations?";
+ mes .@str$;
viewpoint 1,156,360,10,0xFFB400;
next;
break;
case 10:
- mes "[Prontera Guide]";
- mes "Let me mark the location of the ^006400Job Agency^000000";
- mes "on your mini-map.";
- mes "Would you like to check any other locations?";
+ callsub L_Mark, F_Navi("Job Agency","prontera,133,183","^006400");
+ mes .@str$;
viewpoint 1,133,183,11,0xAAFF00;
next;
break;
case 11:
mes "[Prontera Guide]";
- mes "Let me mark the location of ^7F3300City Hall^000000";
+ mes "Let me mark the location of "+F_Navi("City Hall","prontera,75,91","^7F3300");
mes "on your mini-map.";
mes "There's a hairstylist";
mes "there that can change your hair color.";
- mes "Would you like to check any other locations?";
+ mes .@str$;
viewpoint 1,75,91,12,0xD2691E;
next;
break;
@@ -137,72 +127,66 @@ prontera,154,187,4 script Guide#01prontera::GuideProntera 105,{
case 2:
set .@loop,1;
while (.@loop) {
- switch(select("[ Eden Teleport Officer ]:[ Peco Peco Breeder ]:[ Riding Creature Master ]:[ Magic Gear Master ]:[ Peco Peco Remover ]:[ Rune Salesman ]:[ Mercenary Guildsman ]:[ Hypnotist ]:[ Kafra Employee ]:[ Leablem ]:[ Apprentice Craftsman ]:Previous Menu")) {
+ switch(select("[ Eden Teleport Officer ]:[ Peco Peco Breeder ]:[ Riding Creature Master ]:[ Magic Gear Master ]:[ Peco Peco Remover ]:[ Trading Merchants ]:[ Mercenary Guildsman ]:[ Hypnotist ]:[ Kafra Employee ]:[ Leablem ]:[ Apprentice Craftsman ]:[ Pet Groomer ]:Previous Menu")) {
case 1:
- mes "[Prontera Guide]";
- mes "Let me mark the location of the";
- mes "^800080Eden Teleport Officer^000000";
- mes "on your mini-map.";
- mes "Would you like to check any other locations?";
+ callsub L_Mark, F_Navi("Eden Teleport Officer","prontera,124,76","^800080"),1;
+ mes .@str$;
viewpoint 1,124,76,13,0xDA70D6;
next;
break;
case 2:
mes "[Prontera Guide]";
mes "Two ^0000FFPeco Peco Breeders^000000 are available,";
- mes "one for ^0000FFKnights^000000 to the ^0000FFnorthwest^000000";
- mes "and the other for ^0000FFCrusaders^000000 to the ^0000FFnortheast^000000.";
- viewpoint 1,55,350,15,0x0A82FF;
- viewpoint 1,232,310,16,0x0A82FF;
+ mes "one for ^0000FFKnights^000000 to the "+F_Navi("northwest","prontera,55,350","^0000FF");
+ mes "and the other for ^0000FFCrusaders^000000 to the "+F_Navi("northeast","prontera,232,310","^0000FF")+".";
+ viewpoint 1,55,350,14,0x0A82FF;
+ viewpoint 1,232,310,15,0x0A82FF;
next;
break;
case 3:
mes "[Prontera Guide]";
- mes "The ^FF5400Riding Creature Master^000000 provides services for";
+ mes "The "+F_Navi("Riding Creature Master","prontera,131,213","^FF5400")+" provides services for";
mes "^FF5400Rune Knights^000000 and ^FF5400Royal Guards^000000.";
mes "Let me mark his location";
mes "on your mini-map.";
- mes "Would you like to check any other locations?";
- viewpoint 1,131,213,17,0xFFB400;
+ mes .@str$;
+ viewpoint 1,131,213,16,0xFFB400;
next;
break;
case 4:
mes "[Prontera Guide]";
- mes "The ^006400Magic Gear Master^000000";
+ mes "The "+F_Navi("Magic Gear Master","prontera,163,178","^006400");
mes "provides services for";
mes "^006400Mechanics^000000.";
mes "Let me mark his location";
mes "on your mini-map.";
- mes "Would you like to check any other locations?";
- viewpoint 1,163,178,18,0xAAFF00;
+ mes .@str$;
+ viewpoint 1,163,178,17,0xAAFF00;
next;
break;
case 5:
mes "[Prontera Guide]";
mes "If your beloved Peco Peco refuses";
mes "to leave you,";
- mes "please talk to the ^7F3300Peco Peco Remover^000000";
+ mes "please talk to the "+F_Navi("Peco Peco Remover","prontera,125,208","^7F3300");
mes "near the central fountain.";
- mes "Would you like to check any other locations?";
- viewpoint 1,125,208,19,0xD2691E;
+ mes .@str$;
+ viewpoint 1,125,208,18,0xD2691E;
next;
break;
case 6:
mes "[Prontera Guide]";
- mes "Let me mark the location of";
- mes "the ^800080Rune Salesman^000000";
+ mes "The Rune Merchant, Amatsu Trader, and other";
+ mes F_Navi("Trading Merchants","prontera,178,244","^800080")+" have been marked";
mes "on your mini-map.";
- mes "Would you like to check any other locations?";
- viewpoint 1,168,228,20,0xDA70D6;
+ mes .@str$;
+ viewpoint 1,178,244,19,0xDA70D6;
next;
break;
case 7:
- mes "[Prontera Guide]";
- mes "Let me mark the location of ^0000FFSpear Mercenary Manager^000000 and";
- mes "^0000FFMercenary Goods Merchant^000000";
- mes "on your mini-map.";
- mes "Would you like to check any other locations?";
- viewpoint 1,35,337,21,0x0A82FF;
+ callsub L_Mark, F_Navi("Mercenary Guildsman","prontera,35,337","^0000FF"),1;
+ mes .@str$;
+ viewpoint 1,35,337,20,0x0A82FF;
next;
break;
case 8:
@@ -210,46 +194,46 @@ prontera,154,187,4 script Guide#01prontera::GuideProntera 105,{
mes "The ^FF5400Hypnotist^000000";
mes "helps beginner adventurers";
mes "to reset their skills.";
- mes "Let me mark his location";
- mes "on your mini-map.";
+ mes "He has moved to Izlude, Prontera's satellite town to the southeast.";
mes "Would you like to check any other locations?";
- viewpoint 1,146,232,22,0xFFB400;
+ mes .@str$;
+ //viewpoint 1,146,232,21,0xFFB400;
next;
break;
case 9:
- mes "[Prontera Guide]";
- mes "Let me mark the location of the";
- mes "^006400Kafra Employees^000000";
- mes "on your mini-map.";
- mes "Would you like to check any other locations?";
- viewpoint 1,152,326,23,0xAAFF00;
- viewpoint 1,30,207,24,0xAAFF00;
- viewpoint 1,282,200,25,0xAAFF00;
- viewpoint 1,151,29,26,0xAAFF00;
- viewpoint 1,146,89,27,0xAAFF00;
+ callsub L_Mark, "^006400Kafra Employees^000000",1;
+ mes .@str$;
+ viewpoint 1,152,326,22,0xAAFF00;
+ viewpoint 1,30,207,23,0xAAFF00;
+ viewpoint 1,282,200,24,0xAAFF00;
+ viewpoint 1,151,29,25,0xAAFF00;
+ viewpoint 1,146,89,26,0xAAFF00;
next;
break;
case 10:
mes "[Prontera Guide]";
- mes "^0000FFLeablem^000000";
+ mes F_Navi("Leablem","prontera,244,169","^0000FF");
mes "is a technician";
mes "who can create ^0000FFslots^000000 on weapons and armors,";
mes "As amazing as it sounds,";
mes "not all equipment can be slotted.";
- mes "Would you like to check any other locations?";
- viewpoint 1,244,169,28,0x0A82FF;
+ mes .@str$;
+ viewpoint 1,244,169,27,0x0A82FF;
next;
break;
case 11:
- mes "[Prontera Guide]";
- mes "Let me mark the location of the";
- mes "^800080Apprentice Craftsman^000000";
- mes "on your mini-map.";
- mes "Would you like to check any other locations?";
- viewpoint 1,165,60,29,0xDA70D6;
+ callsub L_Mark, F_Navi("Apprentice Craftsman","prontera,165,60","^800080"),1;
+ mes .@str$;
+ viewpoint 1,165,60,28,0xDA70D6;
next;
break;
case 12:
+ callsub L_Mark, F_Navi("Pet Groomer","prontera,218,211"),1;
+ mes .@str$;
+ viewpoint 1,218,211,29,0xFF0000;
+ next;
+ break;
+ case 13:
set .@loop,0;
break;
}
@@ -280,7 +264,7 @@ prontera,154,187,4 script Guide#01prontera::GuideProntera 105,{
viewpoint 2,1,1,18,0xFFFF00;
viewpoint 2,1,1,19,0xFFFF00;
viewpoint 2,1,1,20,0xFFFF00;
- viewpoint 2,1,1,21,0xFFFF00;
+ //viewpoint 2,1,1,21,0xFFFF00;
viewpoint 2,1,1,22,0xFFFF00;
viewpoint 2,1,1,23,0xFFFF00;
viewpoint 2,1,1,24,0xFFFF00;
@@ -299,9 +283,18 @@ prontera,154,187,4 script Guide#01prontera::GuideProntera 105,{
end;
}
}
+ end;
+L_Mark:
+ mes "[Prontera Guide]";
+ if (getarg(1,0)) {
+ mes "Let me mark the location of the";
+ mes getarg(0);
+ } else
+ mes "Let me mark the location of the "+getarg(0);
+ mes "on your mini-map.";
+ return;
}
-
-prontera,282,208,2 duplicate(GuideProntera) Guide#02prontera 105
-prontera,29,200,6 duplicate(GuideProntera) Guide#03prontera 105
-prontera,160,29,0 duplicate(GuideProntera) Guide#04prontera 105
-prontera,151,330,4 duplicate(GuideProntera) Guide#05prontera 105
+prontera,282,208,2 duplicate(GuideProntera) Guide#02prontera 8W_SOLDIER
+prontera,29,200,6 duplicate(GuideProntera) Guide#03prontera 8W_SOLDIER
+prontera,160,29,0 duplicate(GuideProntera) Guide#04prontera 8W_SOLDIER
+prontera,151,330,4 duplicate(GuideProntera) Guide#05prontera 8W_SOLDIER
diff --git a/npc/re/guides/guides_rachel.txt b/npc/re/guides/guides_rachel.txt
index e0aac2b8f..f7f1a2c87 100644
--- a/npc/re/guides/guides_rachel.txt
+++ b/npc/re/guides/guides_rachel.txt
@@ -1,22 +1,22 @@
//===== Hercules Script ======================================
//= Rachel Guides
-//===== By: ==================================================
+//===== By: ==================================================
//= L0ne_W0lf
-//===== Current Version: =====================================
-//= 1.0
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Current Version: =====================================
+//= 1.1
+//===== Description: =========================================
//= [Official Conversion]
-//= Guide for the city of Rachel
-//===== Additional Comments: =================================
+//= Guide for the city of Rachel.
+//===== Additional Comments: =================================
//= 1.0 First version, Renewal guide.
-//============================================================
+//= 1.1 Navigation system update. [Euphy]
+//============================================================
-rachel,138,146,5 script Rachel Guide#rachel 934,{
+rachel,138,146,5 script Rachel Guide#rachel 4_M_RASWORD,{
mes "[Rachel Guide]";
mes "Welcome to the capital of Arunafeltz, ^8B4513Rachel^000000 where the warm breath of the goddess Freya reaches.";
mes "If this is the first time for you to use the guide services, I suggest you ask many questions.";
+ F_Navi("[Rachel Guide]");
next;
while (1) {
switch(select("[ Main Facilities ]:[ Merchants & Helpers ]:Remove Marks from Mini-Map:Cancel")) {
@@ -26,35 +26,35 @@ rachel,138,146,5 script Rachel Guide#rachel 934,{
switch(select("[ Inn ]:[ Weapon Shop ]:[ Tool Shop ]:[ Airport ]:[ Cheshrumnir ]:[ Priest Zed's Mansion ]:Previous Menu")) {
case 1:
mes "[Rachel Guide]";
- mes "You can rest your fatigue of the journey in the Inn. The left building next to me is the Inn of Rachel.";
+ mes "You can rest your fatigue of the journey in the "+F_Navi("Inn","rachel,115,144")+". The left building next to me is the Inn of Rachel.";
mes "Would you like to check any other locations?";
viewpoint 1,115,144,0,0xFF0000;
next;
break;
case 2:
mes "[Rachel Guide]";
- mes "Do you want to check out the weapons that are sold in Rachel? The Weapon Shop is located near the west gate.";
+ mes "Do you want to check out the weapons that are sold in Rachel? The "+F_Navi("Weapon Shop","rachel,42,82")+" is located near the west gate.";
mes "Would you like to check any other locations?";
viewpoint 1,42,82,1,0xFF4500;
next;
break;
case 3:
mes "[Rachel Guide]";
- mes "Rachel's Tool Shop sells the best quality potions. It's located near the west gate.";
+ mes "Rachel's "+F_Navi("Tool Shop","rachel,83,73")+" sells the best quality potions. It's located near the west gate.";
mes "Would you like to check any other locations?";
viewpoint 1,83,73,2,0xDAA520;
next;
break;
case 4:
mes "[Rachel Guide]";
- mes "The Airport is located outside of the east gate.";
+ mes "The "+F_Navi("Airport","rachel,272,125")+" is located outside of the east gate.";
mes "Would you like to check any other locations?";
viewpoint 1,272,125,3,0x008000;
next;
break;
case 5:
mes "[Rachel Guide]";
- mes "Cheshrumnir is a holy ground where pope, the incarnation of goddess Freya stays.";
+ mes F_Navi("Cheshrumnir","rachel,150,243")+" is a holy ground where pope, the incarnation of goddess Freya stays.";
mes "Take the road to the north to find the building.";
mes "Would you like to check any other locations?";
viewpoint 1,150,243,4,0x0000FF;
@@ -63,7 +63,7 @@ rachel,138,146,5 script Rachel Guide#rachel 934,{
case 6:
mes "[Rachel Guide]";
mes "I will mark the location";
- mes "of the ^000080Priest Zed's Mansion^000000";
+ mes "of the "+F_Navi("Priest Zed's Mansion","rachel,98,238","^000080");
mes "on your mini-map.";
mes "Would you like to check any other locations?";
viewpoint 1,98,238,5,0x000080;
@@ -82,7 +82,7 @@ rachel,138,146,5 script Rachel Guide#rachel 934,{
case 1:
mes "[Rachel Guide]";
mes "I will mark the location";
- mes "of the ^803232Cool Event Corp. Staff^000000";
+ mes "of the "+F_Navi("Cool Event Corp. Staff","rachel,110,138","^803232");
mes "on your mini map.";
mes "Would you like to check any other locations?";
viewpoint 1,110,138,7,0x803232;
@@ -91,7 +91,7 @@ rachel,138,146,5 script Rachel Guide#rachel 934,{
case 2:
mes "[Rachel Guide]";
mes "I will mark the location";
- mes "of the ^556B2FEden Teleport Officer^000000";
+ mes "of the "+F_Navi("Eden Teleport Officer","rachel,125,144","^556B2F");
mes "on your mini-map.";
mes "Would you like to check any other locations?";
viewpoint 1,125,144,8,0x556B2F;
diff --git a/npc/re/guides/guides_umbala.txt b/npc/re/guides/guides_umbala.txt
index defb6e714..d2d3849ca 100644
--- a/npc/re/guides/guides_umbala.txt
+++ b/npc/re/guides/guides_umbala.txt
@@ -1,25 +1,27 @@
//===== Hercules Script ======================================
//= Umbala Guides
-//===== By: ==================================================
+//===== By: ==================================================
//= L0ne_W0lf
-//===== Current Version: =====================================
-//= 1.0
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Current Version: =====================================
+//= 1.1
+//===== Description: =========================================
//= [Official Conversion]
-//= Guides for the city of Umbala
-//===== Additional Comments: =================================
+//= Guides for the city of Umbala.
+//===== Additional Comments: =================================
//= 1.0 First version, Renewal guides.
-//============================================================
+//= 1.1 Navigation system update. [Euphy]
+//============================================================
-umbala,128,94,3 script Umbala Guide#01umbala::GuideUmbala 702,{
+umbala,128,94,3 script Umbala Guide#01umbala::GuideUmbala 4_F_GON,{
+ mes "[Umbala Guide]";
mes "Welcome to ^8B4513Umbala^000000,";
mes "the Village of the Utan Tribe.";
next;
+ mes "[Umbala Guide]";
mes "Since I have been exploring here for several months.";
mes "I am familiar with this area's geography and the points of interest in this village.";
mes "Do you need help navigating the village?";
+ F_Navi("[Umbala Guide]");
while (1) {
next;
switch(select("[ Kafra Employee ]:[ Chief's House ]:[ Shaman's House ]:[ Weapon Shop ]:[ Tool Shop ]:[ Bungee Jump Area ]:[ Tree of Yggdrasil ]:Remove Marks from Mini-Map:Cancel")) {
@@ -33,21 +35,21 @@ umbala,128,94,3 script Umbala Guide#01umbala::GuideUmbala 702,{
break;
case 2:
mes "[Umbala Guide]";
- mes "Only the ^006400Chief^000000 knows the language of the outside world.";
+ mes "Only the "+F_Navi("Chief","umbala,68,251","^006400")+" knows the language of the outside world.";
mes "So you'd better visit him before anything else.";
mes "Would you like to check any other locations?";
viewpoint 1,68,251,1,0xAAFF00;
break;
case 3:
mes "[Umbala Guide]";
- mes "The ^008080Shaman^000000 has some sort of mystic power.";
+ mes "The "+F_Navi("Shaman","umbala,219,188","^008080")+" has some sort of mystic power.";
mes "People say she can create rough enchanted stones, and divide a pure enchanted stone into rough ones.";
mes "Would you like to check any other locations?";
viewpoint 1,219,188,2,0x008080;
break;
case 4:
mes "[Umbala Guide]";
- mes "The ^FF1493Weapon Shop^000000 inside Umbala";
+ mes "The "+F_Navi("Weapon Shop","umbala,125,155","^FF1493")+" inside Umbala";
mes "supplies the weapons";
mes "for defending against their enemies.";
mes "Would you like to check any other locations?";
@@ -56,14 +58,14 @@ umbala,128,94,3 script Umbala Guide#01umbala::GuideUmbala 702,{
case 5:
mes "[Umbala Guide]";
mes "There are many useful things for";
- mes "traveling in the ^8B4513Tool Shop^000000 in Umbala.";
+ mes "traveling in the "+F_Navi("Tool Shop","umbala,136,127","^8B4513")+" in Umbala.";
mes "Would you like to check any other locations?";
viewpoint 1,136,127,4,0x8B4513;
break;
case 6:
mes "[Umbala Guide]";
mes "Umbala has a unique locale called";
- mes "the 'Bungee Jump Area'.";
+ mes "the "+F_Navi("Bungee Jump Area","umbala,138,198")+".";
mes "If you're interested in testing";
mes "your courage, why don't you try it.";
mes "Would you like to check any other locations?";
@@ -71,7 +73,7 @@ umbala,128,94,3 script Umbala Guide#01umbala::GuideUmbala 702,{
break;
case 7:
mes "[Umbala Guide]";
- mes "There's the Tree of Yggdrasil in the northern part of town.";
+ mes "There's the "+F_Navi("Tree of Yggdrasil","umbala,107,284")+" in the northern part of town.";
mes "You should pay it a visit since that's a place I recommend when you visit Umbala.";
mes "Would you like to check any other locations?";
viewpoint 1,107,284,6,0xA52A2A;
@@ -95,5 +97,4 @@ umbala,128,94,3 script Umbala Guide#01umbala::GuideUmbala 702,{
}
}
}
-
-umbala,99,158,3 duplicate(GuideUmbala) Umbala Guide#02umbala 702
+umbala,99,158,3 duplicate(GuideUmbala) Umbala Guide#02umbala 4_F_GON
diff --git a/npc/re/guides/guides_veins.txt b/npc/re/guides/guides_veins.txt
index 745872235..8c136f623 100644
--- a/npc/re/guides/guides_veins.txt
+++ b/npc/re/guides/guides_veins.txt
@@ -1,28 +1,28 @@
//===== Hercules Script ======================================
//= Veins Guides
-//===== By: ==================================================
+//===== By: ==================================================
//= L0ne_W0lf
-//===== Current Version: =====================================
-//= 1.0
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Current Version: =====================================
+//= 1.1
+//===== Description: =========================================
//= [Official Conversion]
//= Guides for the city of Veins
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First version, Renewal guides.
-//============================================================
+//= 1.1 Navigation system update. [Euphy]
+//============================================================
-veins,210,345,5 script Veins Guide#veins01::GuideVeins 934,{
+veins,210,345,5 script Veins Guide#veins01::GuideVeins 4_M_RASWORD,{
mes "[Veins Guide]";
mes "Thank you for coming through the rough sand storms. Welcome to ^8B4513Veins^000000, the Canyon Village.";
mes "If this is the first time for you to use the guide services, why don't you check the \"Notice\" menu first?";
+ F_Navi("[Veins Guide]");
next;
while (1) {
switch(select("[ Temple ]:[ Inn ]:[ Pub ]:[ Weapon Shop ]:[ Tool Shop ]:[ Airport ]:[ Geological Research Institute ]:[ Cool Event Corp. Staff ]:Remove Marks from Mini-Map:Cancel")) {
case 1:
mes "[Veins Guide]";
- mes "The Temple is always filled with praying the faithful of the incarnation of goddess Freya.";
+ mes "The "+F_Navi("Temple","veins,197,256")+" is always filled with praying the faithful of the incarnation of goddess Freya.";
mes "It's located on the North side of Veins.";
mes "Would you like to check any other locations?";
viewpoint 1,197,256,0,0xFF0000;
@@ -30,14 +30,14 @@ veins,210,345,5 script Veins Guide#veins01::GuideVeins 934,{
break;
case 2:
mes "[Veins Guide]";
- mes "You can rest your fatigue of the journey in the Inn. The Inn is located on the North-West side of Veins.";
+ mes "You can rest your fatigue of the journey in the "+F_Navi("Inn","veins,110,278")+". The Inn is located on the North-West side of Veins.";
mes "Would you like to check any other locations?";
viewpoint 1,110,278,1,0xFF4500;
next;
break;
case 3:
mes "[Veins Guide]";
- mes "If you want to talk to the Veins Towners, visit the Veins Pub.";
+ mes "If you want to talk to the Veins Towners, visit the Veins "+F_Navi("Pub","veins,150,215")+".";
mes "The pub is located on the west side of Veins.";
mes "Would you like to check any other locations?";
viewpoint 1,150,215,2,0xDAA520;
@@ -46,7 +46,7 @@ veins,210,345,5 script Veins Guide#veins01::GuideVeins 934,{
case 4:
mes "[Veins Guide]";
mes "You have to be able to protect your own body.";
- mes "The Weapon Shop in Veins is selling the good weapons at a reasonable price..";
+ mes "The "+F_Navi("Weapon Shop","veins,150,175")+" in Veins is selling the good weapons at a reasonable price..";
mes "It is located on the West side of Veins.";
mes "Would you like to check any other locations?";
viewpoint 1,150,175,3,0x008000;
@@ -54,14 +54,14 @@ veins,210,345,5 script Veins Guide#veins01::GuideVeins 934,{
break;
case 5:
mes "[Veins Guide]";
- mes "The essential items! Check out the Veins Tool Shop in the center of town..";
+ mes "The essential items! Check out the Veins "+F_Navi("Tool Shop","veins,230,161")+" in the center of town..";
mes "Would you like to check any other locations?";
viewpoint 1,230,161,4,0x0000FF;
next;
break;
case 6:
mes "[Veins Guide]";
- mes "The Airport of Veins is currently only used for Cargo.";
+ mes "The "+F_Navi("Airport","veins,273,287")+" of Veins is currently only used for Cargo.";
mes "Would you like to check any other locations?";
viewpoint 1,273,287,5,0x000080;
next;
@@ -69,7 +69,8 @@ veins,210,345,5 script Veins Guide#veins01::GuideVeins 934,{
case 7:
mes "[Veins Guide]";
mes "Are you interested in Geology?";
- mes "If so, please visit the Geological Research Institute at the second floor of Weapon Shop.";
+ mes "If so, please visit the ";
+ mes F_Navi("Geological Research Institute","veins,150,175")+" at the second floor of Weapon Shop.";
mes "Would you like to check any other locations?";
viewpoint 1,150,175,6,0x800080;
next;
@@ -77,7 +78,7 @@ veins,210,345,5 script Veins Guide#veins01::GuideVeins 934,{
case 8:
mes "[Veins Guide]";
mes "I will mark the location";
- mes "of the ^808080Cool Event Corp. Staff^000000";
+ mes "of the "+F_Navi("Cool Event Corp. Staff","veins,209,127","^808080");
mes "on your mini map.";
mes "Would you like to check any other locations?";
viewpoint 1,209,127,7,0x808080;
@@ -104,5 +105,4 @@ veins,210,345,5 script Veins Guide#veins01::GuideVeins 934,{
}
}
}
-
-veins,189,101,5 duplicate(GuideVeins) Veins Guide#veins02 934
+veins,189,101,5 duplicate(GuideVeins) Veins Guide#veins02 4_M_RASWORD
diff --git a/npc/re/guides/navigation.txt b/npc/re/guides/navigation.txt
new file mode 100644
index 000000000..b7bde6aab
--- /dev/null
+++ b/npc/re/guides/navigation.txt
@@ -0,0 +1,39 @@
+//===== Hercules Script ======================================
+//= Navigation Functions
+//===== By: ==================================================
+//= Euphy
+//===== Current Version: =====================================
+//= 1.0
+//===== Description: =========================================
+//= Controls the navigation system for Renewal guides.
+//= Clients before 2011-10-10 do not support navigation
+//= links, so disable the system if this applies to you.
+//===== Additional Comments: =================================
+//= 1.0 First version.
+//============================================================
+
+function script F_Navi {
+
+ // Uncomment to disable the navigation system.
+ //set .@disabled,1;
+
+ // This function takes 0 ~ 3 parameters.
+ switch(getargcount()) {
+ case 0: // Check if system is disabled.
+ return .@disabled;
+ case 1: // Display information message, if enabled.
+ if (!.@disabled) {
+ next;
+ mes getarg(0);
+ mes "When you click on the ^B9062F[location name]^000000, you'll receive the most advanced ^B9062FNavigation^000000 services!";
+ }
+ return;
+ default: // Display navigation link, if enabled; else set text color, if available.
+ if (!.@disabled)
+ return "<NAVI>[" + getarg(0) + "]<INFO>" + getarg(1) + ",0,000,0</INFO></NAVI>";
+ else if (getargcount() == 3)
+ return getarg(2)+getarg(0)+"^000000";
+ else
+ return getarg(0);
+ }
+}
diff --git a/npc/re/guild/invest_main.txt b/npc/re/guild/invest_main.txt
index e8c2a011a..50a4e7d35 100644
--- a/npc/re/guild/invest_main.txt
+++ b/npc/re/guild/invest_main.txt
@@ -1,18 +1,18 @@
-//===== rAthena Script =======================================
+//===== Hercules Script ======================================
//= Hall of Abyss - Core Scripts
//===== By: ==================================================
//= Euphy
//===== Current Version: =====================================
-//= 1.0
-//===== Compatible With: =====================================
-//= rAthena SVN
+//= 1.1
//===== Description: =========================================
+//= [Official Conversion]
//= Expansion for War of Emperium FE.
//= Invest in each realm to unlock new maps:
//= - Guild Dungeon F2, total 20,000,000z.
//= - Hall of Abyss, total 70,000,000z.
//===== Additional Comments: =================================
//= 1.0 First version. Missing official times. [Euphy]
+//= 1.1 Added GM management function. [Euphy]
//============================================================
// Global Variables
@@ -58,7 +58,7 @@ $@vfund_*_extra
// Investment Functions & Controller
//============================================================
-// Note: The time in this section are almost entirely custom.
+// Note: The times in this section are almost entirely custom.
- script #invest_timer -1,{
OnClock0000: // Open investments on Wed (1 hour after WoE)
@@ -163,7 +163,7 @@ function script F_Invest_Abyss {
mes getarg(1);
mes "You've invested "+.@units+" unit"+((.@units == 1)?"":"s")+" "+((.@units < 100)?.@units:insertchar(""+.@units,",",1))+"0,000 Zeny"+getarg(2,"")+".";
mes "Not much but this is a small gift. You can exchange it with items in Malangdo.";
- set Zeny, Zeny-.@zeny;
+ Zeny -= .@zeny;
setd getarg(0), getd(getarg(0)) + .@units;
getitem 6488,.@units; //Thanks_Invest_Ticket
close;
@@ -224,7 +224,7 @@ function script F_Invest_Abyss {
// Script Core
//============================================================
-prt_gld,1,1,0 script #fund_master 844,{
+prt_gld,1,1,0 script #fund_master CLEAR_NPC,{
end;
OnInit:
set .@invest_status, callfunc("F_Invest_Status");
@@ -386,12 +386,11 @@ OnReset:
end;
}
-prt_gld,2,2,0 script Investment_total#fund00 844,{
-/*
+prt_gld,2,2,0 script Investment_total#fund00 CLEAR_NPC,{
+ callfunc "F_GM_NPC";
mes "Is this not working properly?";
next;
- input .@input;
- if (.@input == 1854) {
+ if (callfunc("F_GM_NPC",1854,0) == 1) {
mes "If you think the investment timer is dead, please adjust the timer.";
next;
switch(select("Turn on the timer:Cancel")) {
@@ -407,8 +406,7 @@ prt_gld,2,2,0 script Investment_total#fund00 844,{
mes "I don't need to adjust anything now.";
close;
}
-*/
- end;
+
OnInit:
if (callfunc("F_Invest_Status") == 1) {
initnpctimer;
@@ -464,7 +462,7 @@ OnTimer3600000:
}
}
-prt_gld,164,98,3 script Revoting Manager#Invest1 421,{
+prt_gld,164,98,3 script Revoting Manager#Invest1 4_M_BOSSCAT,{
mes "[Revoting Manager]";
mes "We are not accepting additional votes.";
mes "Please wait for our results announcement.";
@@ -554,7 +552,7 @@ OnTimer60000:
end;
}
-prt_gld,164,98,3 script Revoting Manager#Invest2 421,{
+prt_gld,164,98,3 script Revoting Manager#Invest2 4_M_BOSSCAT,{
set .@invest, $2011_agit_invest;
if (.@invest < 11) {
mes "[Revoting Manager]";
@@ -668,7 +666,7 @@ OnTimer20000:
}
/*
-prtg_cas01,2,2,0 script Abrai 55,{
+prtg_cas01,2,2,0 script Abrai 1_M_JOBTESTER,{
mes "I should quit my steward job.";
close;
OnAgitInvest:
@@ -992,7 +990,7 @@ OnAgitInvest:
}
mes .@n$;
mes "I'm sending you to the "+.@realm$+" Agit Dungeon "+.@i+"F.";
- set Zeny, Zeny-10000;
+ Zeny -= 10000;
setd "$fund_"+.@npc$+"_extra", getd("$fund_"+.@npc$+"_extra") + 1;
close2;
if (compare(strnpcinfo(2),"alde"))
@@ -1147,7 +1145,7 @@ OnAgitInvest:
callfunc "F_Invest_Abyss","$fund_"+.@npc$+"0"+.@id,"[Gate Manager]";
end;
case 2:
- callsub L_Enter,1,.@realm$;
+ callsub L_Enter,1,.@realm$,.@npc$;
mes "[Gate Manager]";
mes "You are interested in exploring the "+.@realm$+" Guild Dungeon Deepest Layer (2F).";
mes "Let me guide you. Good luck.";
@@ -1187,7 +1185,7 @@ OnAgitInvest:
}
end;
case 3:
- callsub L_Enter,2,.@realm$;
+ callsub L_Enter,2,.@realm$,.@npc$;
mes "[Gate Manager]";
mes "Let me guide you to the Abyss Gap connected with "+.@realm$+", the Abyss Gate 'Way of the Warrior'.";
close2;
@@ -1235,7 +1233,7 @@ OnAgitInvest:
L_Enter:
set .@invest_status, callfunc("F_Invest_Status");
if (.@invest_status == 3) {
- set .@status, getd("$"+.@npc$+"_invest_result");
+ set .@status, getd("$"+getarg(2)+"_invest_result");
if ((getarg(0) == 1 && .@status == 2) || .@status == 3)
return;
else {
@@ -1261,7 +1259,7 @@ L_Enter:
// Item Investments
//============================================================
-malangdo,218,126,4 script Cat Paw Merchants Notice 857,{
+malangdo,218,126,4 script Cat Paw Merchants Notice 4_BOARD3,{
mes "<< Cat Paw Merchants Notice >>";
mes "'^C379CEInvest Unused Items for Prizes!^000000'";
next;
@@ -1327,7 +1325,7 @@ malangdo,218,126,4 script Cat Paw Merchants Notice 857,{
}
}
-malangdo,218,123,1 script Namis#invest 545,4,4,{
+malangdo,218,123,1 script Namis#invest 4_CAT_SAILOR2,4,4,{
if (checkweight(1201,1) == 0 || MaxWeight - Weight < 1000) {
mes "- Currently you're carrying -";
mes "- too many items with you. -";
@@ -1467,7 +1465,7 @@ OnTouch:
// Investment Rewards
//============================================================
-malangdo,215,119,4 script Thanks Ticket Machine 564,{
+malangdo,215,119,4 script Thanks Ticket Machine 2_VENDING_MACHINE1,{
if (MaxWeight - Weight < 4500 || checkweight(1201,1) == 0) {
mes "- Currently you're carrying -";
mes "- too many items with you. -";
diff --git a/npc/re/guild/invest_npc.txt b/npc/re/guild/invest_npc.txt
index 3c6c45ee5..a1d564e00 100644
--- a/npc/re/guild/invest_npc.txt
+++ b/npc/re/guild/invest_npc.txt
@@ -1,12 +1,11 @@
-//===== rAthena Script =======================================
+//===== Hercules Script ======================================
//= Hall of Abyss - NPC Duplicates
//===== By: ==================================================
//= Euphy
//===== Current Version: =====================================
//= 1.0
-//===== Compatible With: =====================================
-//= rAthena SVN
//===== Description: =========================================
+//= [Official Conversion]
//= Expansion for War of Emperium FE.
//= Invest in each realm to unlock new maps:
//= - Guild Dungeon F2, total 20,000,000z.
@@ -17,50 +16,50 @@
// Realms - Merchant Guilds, Gate Managers, Status Boards
//============================================================
-alde_gld,186,157,3 duplicate(Cat Paw Merchant Guild) Cat Paw Merchant Megrez 549
-alde_gld,191,164,3 duplicate(Gate Manager#realm) Gate Manager#alde_f00 421
-alde_gld,188,158,3 duplicate(Investment Status Board) Investment Status Board::InvestStatus_Alde 857
+alde_gld,186,157,3 duplicate(Cat Paw Merchant Guild) Cat Paw Merchant Megrez 4_CAT_MERMASTER
+alde_gld,191,164,3 duplicate(Gate Manager#realm) Gate Manager#alde_f00 4_M_BOSSCAT
+alde_gld,188,158,3 duplicate(Investment Status Board) Investment Status Board::InvestStatus_Alde 4_BOARD3
-gef_fild13,187,208,3 duplicate(Cat Paw Merchant Guild) Cat Paw Merchant Meraq 549
-gef_fild13,189,206,3 duplicate(Gate Manager#realm) Gate Manager#gef_f00 421
-gef_fild13,190,209,3 duplicate(Investment Status Board) Investment Status Board::InvestStatus_Gef 857
+gef_fild13,187,208,3 duplicate(Cat Paw Merchant Guild) Cat Paw Merchant Meraq 4_CAT_MERMASTER
+gef_fild13,189,206,3 duplicate(Gate Manager#realm) Gate Manager#gef_f00 4_M_BOSSCAT
+gef_fild13,190,209,3 duplicate(Investment Status Board) Investment Status Board::InvestStatus_Gef 4_BOARD3
-pay_gld,203,189,3 duplicate(Cat Paw Merchant Guild) Cat Paw Merchant Phecda 549
-pay_gld,206,189,3 duplicate(Gate Manager#realm) Gate Manager#pay_f00 421
-pay_gld,200,189,5 duplicate(Investment Status Board) Investment Status Board::InvestStatus_Pay 857
+pay_gld,203,189,3 duplicate(Cat Paw Merchant Guild) Cat Paw Merchant Phecda 4_CAT_MERMASTER
+pay_gld,206,189,3 duplicate(Gate Manager#realm) Gate Manager#pay_f00 4_M_BOSSCAT
+pay_gld,200,189,5 duplicate(Investment Status Board) Investment Status Board::InvestStatus_Pay 4_BOARD3
-prt_gld,158,96,5 duplicate(Cat Paw Merchant Guild) Cat Paw Merchant Dubae 549
-prt_gld,161,96,3 duplicate(Gate Manager#realm) Gate Manager#prt_f00 421
-prt_gld,163,99,3 duplicate(Investment Status Board) Investment Status Board::InvestStatus_Prt 857
+prt_gld,158,96,5 duplicate(Cat Paw Merchant Guild) Cat Paw Merchant Dubae 4_CAT_MERMASTER
+prt_gld,161,96,3 duplicate(Gate Manager#realm) Gate Manager#prt_f00 4_M_BOSSCAT
+prt_gld,163,99,3 duplicate(Investment Status Board) Investment Status Board::InvestStatus_Prt 4_BOARD3
// Inside Castles - Gate Managers
//============================================================
-aldeg_cas01,85,105,4 duplicate(Gate Manager#castle) Gate Manager#alde_f01 421
-aldeg_cas02,124,49,3 duplicate(Gate Manager#castle) Gate Manager#alde_f02 421
-aldeg_cas03,121,75,3 duplicate(Gate Manager#castle) Gate Manager#alde_f03 421
-aldeg_cas04,25,67,7 duplicate(Gate Manager#castle) Gate Manager#alde_f04 421
-aldeg_cas05,54,200,3 duplicate(Gate Manager#castle) Gate Manager#alde_f05 421
+aldeg_cas01,85,105,4 duplicate(Gate Manager#castle) Gate Manager#alde_f01 4_M_BOSSCAT
+aldeg_cas02,124,49,3 duplicate(Gate Manager#castle) Gate Manager#alde_f02 4_M_BOSSCAT
+aldeg_cas03,121,75,3 duplicate(Gate Manager#castle) Gate Manager#alde_f03 4_M_BOSSCAT
+aldeg_cas04,25,67,7 duplicate(Gate Manager#castle) Gate Manager#alde_f04 4_M_BOSSCAT
+aldeg_cas05,54,200,3 duplicate(Gate Manager#castle) Gate Manager#alde_f05 4_M_BOSSCAT
-gefg_cas01,39,49,4 duplicate(Gate Manager#castle) Gate Manager#gef_f01 421
-gefg_cas02,10,65,4 duplicate(Gate Manager#castle) Gate Manager#gef_f02 421
-gefg_cas03,100,87,4 duplicate(Gate Manager#castle) Gate Manager#gef_f03 421
-gefg_cas04,35,44,3 duplicate(Gate Manager#castle) Gate Manager#gef_f04 421
-gefg_cas05,84,46,3 duplicate(Gate Manager#castle) Gate Manager#gef_f05 421
+gefg_cas01,39,49,4 duplicate(Gate Manager#castle) Gate Manager#gef_f01 4_M_BOSSCAT
+gefg_cas02,10,65,4 duplicate(Gate Manager#castle) Gate Manager#gef_f02 4_M_BOSSCAT
+gefg_cas03,100,87,4 duplicate(Gate Manager#castle) Gate Manager#gef_f03 4_M_BOSSCAT
+gefg_cas04,35,44,3 duplicate(Gate Manager#castle) Gate Manager#gef_f04 4_M_BOSSCAT
+gefg_cas05,84,46,3 duplicate(Gate Manager#castle) Gate Manager#gef_f05 4_M_BOSSCAT
-payg_cas01,129,59,3 duplicate(Gate Manager#castle) Gate Manager#pay_f01 421
-payg_cas02,27,277,3 duplicate(Gate Manager#castle) Gate Manager#pay_f02 421
-payg_cas03,51,266,3 duplicate(Gate Manager#castle) Gate Manager#pay_f03 421
-payg_cas04,39,264,4 duplicate(Gate Manager#castle) Gate Manager#pay_f04 421
-payg_cas05,272,252,4 duplicate(Gate Manager#castle) Gate Manager#pay_f05 421
+payg_cas01,129,59,3 duplicate(Gate Manager#castle) Gate Manager#pay_f01 4_M_BOSSCAT
+payg_cas02,27,277,3 duplicate(Gate Manager#castle) Gate Manager#pay_f02 4_M_BOSSCAT
+payg_cas03,51,266,3 duplicate(Gate Manager#castle) Gate Manager#pay_f03 4_M_BOSSCAT
+payg_cas04,39,264,4 duplicate(Gate Manager#castle) Gate Manager#pay_f04 4_M_BOSSCAT
+payg_cas05,272,252,4 duplicate(Gate Manager#castle) Gate Manager#pay_f05 4_M_BOSSCAT
-prtg_cas01,114,178,3 duplicate(Gate Manager#castle) Gate Manager#prt_f01 421
-prtg_cas02,89,63,5 duplicate(Gate Manager#castle) Gate Manager#prt_f02 421
-prtg_cas03,72,109,3 duplicate(Gate Manager#castle) Gate Manager#prt_f03 421
-prtg_cas04,29,263,4 duplicate(Gate Manager#castle) Gate Manager#prt_f04 421
-prtg_cas05,24,23,4 duplicate(Gate Manager#castle) Gate Manager#prt_f05 421
+prtg_cas01,114,178,3 duplicate(Gate Manager#castle) Gate Manager#prt_f01 4_M_BOSSCAT
+prtg_cas02,89,63,5 duplicate(Gate Manager#castle) Gate Manager#prt_f02 4_M_BOSSCAT
+prtg_cas03,72,109,3 duplicate(Gate Manager#castle) Gate Manager#prt_f03 4_M_BOSSCAT
+prtg_cas04,29,263,4 duplicate(Gate Manager#castle) Gate Manager#prt_f04 4_M_BOSSCAT
+prtg_cas05,24,23,4 duplicate(Gate Manager#castle) Gate Manager#prt_f05 4_M_BOSSCAT
// iRO NPC Locations
//============================================================
-//prt_gld,148,253,4 duplicate(Cat Paw Merchants Notice) Cat Paw Merchants Notice::CatPawNotice_iRO 857
-//prt_gld,145,255,6 duplicate(Namis#invest) Namis::Namis_iRO 545,4,4
-//prt_gld,165,50,4 duplicate(Thanks Ticket Machine) Thanks Ticket Machine::ThanksMachine_iRO 564
+//prt_gld,148,253,4 duplicate(Cat Paw Merchants Notice) Cat Paw Merchants Notice::CatPawNotice_iRO 4_BOARD3
+//prt_gld,145,255,6 duplicate(Namis#invest) Namis::Namis_iRO 4_CAT_SAILOR2,4,4
+//prt_gld,165,50,4 duplicate(Thanks Ticket Machine) Thanks Ticket Machine::ThanksMachine_iRO 2_VENDING_MACHINE1
diff --git a/npc/re/instances/BakonawaLake.txt b/npc/re/instances/BakonawaLake.txt
new file mode 100644
index 000000000..89ce64ac4
--- /dev/null
+++ b/npc/re/instances/BakonawaLake.txt
@@ -0,0 +1,543 @@
+//===== Hercules Script ======================================
+//= Bakonawa Lake
+//===== By: ==================================================
+//= Euphy
+//===== Current Version: =====================================
+//= 1.1
+//===== Description: =========================================
+//= [Official Conversion]
+//= Defeat Bakonawa before he eats the moon.
+//= Part of the "Bakonawa Extermination" quest.
+//===== Additional Comments: =================================
+//= 1.0 First version. [Euphy]
+//= 1.1 Added GM management NPC. [Euphy]
+//============================================================
+
+1@ma_b mapflag src4instance
+//============================================================
+ma_scene01,174,179,4 script Taho 4_M_DEWZATIMAN,{
+ disable_items;
+ if (checkweight(1201,1) == 0) {
+ mes "You are carrying too many items. Come back after taking off some of them.";
+ close;
+ }
+ if (MaxWeight - Weight < 10000) {
+ mes "You are carrying too much weight. Come back after reducing the weight.";
+ close;
+ }
+ if (BaseLevel < 140) {
+ mes "[Taho]";
+ mes "Hey. This is too dangerous a place for you. You cannot keep yourself safe. Get out of here and go to the village right now!";
+ close;
+ }
+ if (malaya_bakona1 < 7 && malaya_bakona2 < 15) {
+ mes "[Taho]";
+ mes "We are gonna be killed all by that Bakonawa. Ah, we must slay him but unfortunately we are not prepared.";
+ close;
+ }
+
+ set .@party_id,getcharid(1);
+ set .@md_name$, "Bakonawa Lake";
+
+ set .@baku_time, checkquest(12278,PLAYTIME);
+ if (.@baku_time == -1) {
+ if (checkquest(12279) == -1) setquest 12279;
+ }
+ if (!.@party_id) {
+ mes "[Taho]";
+ mes "Isn't there any company who can go with you? Or even if you wanna go alone, come after organizing a party.";
+ close;
+ }
+ if (.@baku_time == -1) {
+ if (getcharid(0) == getpartyleader(.@party_id,2)) {
+ mes "[Taho]";
+ mes "Are you the leader of the Bakonawa slayers? The road is not well so we have to go down the cliff with a rope, is that OK?";
+ next;
+ set .@i, select("Please weave a rope.:Now I will go down.:Cancel.");
+ } else {
+ mes "[Taho]";
+ mes "You came for slaying Bakonawa. The leader of your party has to help me weaving the rope for going down.";
+ next;
+ set .@i, select(":Now I will go down.:Cancel.");
+ }
+ switch(.@i) {
+ case 1:
+ set .@instance,instance_create(.@md_name$,.@party_id);
+ if (.@instance < 0) {
+ mes "[Taho]";
+ mes "Oh, the rope got dropped. I have to make a new one.";
+ close;
+ }
+ if (instance_attachmap("1@ma_b",.@instance) == "") {
+ mes "^0000ff"+.@md_name$+"^000000 - Reservation Failed!";
+ instance_destroy(.@instance);
+ close;
+ }
+ instance_set_timeout 7200,300,.@instance;
+ instance_init(.@instance);
+ mes "[Taho]";
+ mes "Now I'm weaving, so you can go down when I'm done.";
+ close;
+ case 2:
+ if( has_instance("1@ma_b") == "" ) {
+ mes "The memorial dungeon "+.@md_name$+" does not exist.";
+ mes "The party leader did not generate the dungeon yet.";
+ close;
+ } else {
+ mapannounce "ma_scene01","A party memeber, "+strcharinfo(0)+" of the party "+getpartyname(.@party_id)+" is entering the dungeon, "+.@md_name$+".",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
+ setquest 12278;
+ warp "1@ma_b",64,51;
+ end;
+ }
+ case 3:
+ close;
+ }
+ } else if (.@baku_time == 0 || .@baku_time == 1) {
+ mes "[Taho]";
+ mes "The rope used for getting to the Lake is already broken. We are now cleaning up the surroundings so come back after some time.";
+ close;
+ } else if (.@baku_time == 2) {
+ mes "[Taho]";
+ mes "It's all cleaned up around here. Now you can go down again after getting a rope.";
+ erasequest 12278;
+ close;
+ }
+}
+
+sec_in02,26,26,4 script Bakonawa's Rage 4_M_DEWZATIMAN,{
+ callfunc "F_GM_NPC";
+ mes "[Taho]";
+ mes "My name is Minky.";
+ if (callfunc("F_GM_NPC",1854,0) == 1) {
+ erasequest 12278;
+ erasequest 12279;
+ set malaya_bakona1,7;
+ set malaya_bakona2,15;
+ }
+ close;
+}
+
+1@ma_b,62,52,4 script Taho#nf 4_M_DEWZATIMAN,{
+ mes "[Taho]";
+ mes "Heehee, I could join the Bakonawa hunt, but I'd rather hide behind that rock and cheer you guys on.";
+ next;
+ mes "[Taho]";
+ mes "Bakonawa becomes invincible at some point. When that time comes, listen to my guides carefully. Just trust me and all will be good.";
+ next;
+ if (getcharid(0) == getpartyleader(getcharid(1),2)) {
+ mes "[Taho]";
+ mes "Now I will make Bakonawa spring out from the lake.";
+ next;
+ switch(select("Hold on! I'm not ready yet!:Let's do it!")) {
+ case 1:
+ mes "[Taho]";
+ mes "Oh... alright... tell me when you are ready.";
+ close;
+ case 2:
+ mes "[Taho]";
+ mes "Then I will drop a drop of Albopal to this lake.";
+ next;
+ mes "[Taho]";
+ mes "Once Bakonawa tastes this, he will surface...";
+ donpcevent instance_npcname("#Bakonawan1")+"::OnStart";
+ disablenpc instance_npcname("Taho#nf");
+ close;
+ }
+ } else {
+ mes "[Taho]";
+ mes "I am dropping the Alpopal to make Bakonawa mad. Bakonawa can be a good source of protein once we get him.";
+ close;
+ }
+}
+
+1@ma_b,36,111,4 script #Bakonawan1 CLEAR_NPC,{
+ end;
+OnInstanceInit:
+ disablenpc instance_npcname("#Bakonawan1");
+ end;
+OnStart:
+ enablenpc instance_npcname("#Bakonawan1");
+ set .@map$, instance_mapname("1@ma_b");
+ mapannounce .@map$,"Taho: I can see him there on the surface! ATTACK!!!",bc_map,"0x00ffff"; //FW_NORMAL 15 0 0
+ monster .@map$,78,81,"Bakonawa",2320,1,instance_npcname("#Bakonawan1")+"::OnMyMobDead"; //original: (78,83)
+ initnpctimer;
+ end;
+OnFail:
+ killmonster instance_mapname("1@ma_b"),instance_npcname("#Bakonawan1")+"::OnMyMobDead";
+ end;
+OnMyMobDead:
+ set .@map$, instance_mapname("1@ma_b");
+ if (mobcount(.@map$,instance_npcname("#Bakonawan1")+"::OnMyMobDead") < 1) {
+ donpcevent instance_npcname("#BakonawaDeadn1")+"::OnStart";
+ killmonster .@map$,instance_npcname("#Bakonawan1")+"::OnMyMobDead";
+ stopnpctimer;
+ disablenpc instance_npcname("#Bakonawan1");
+ }
+ end;
+OnTimer1000: callsub OnAnnounce,"10 minutes";
+OnTimer60000: callsub OnAnnounce,"9 minutes";
+OnTimer120000: callsub OnAnnounce,"8 minutes";
+OnTimer180000: callsub OnAnnounce,"7 minutes";
+OnTimer240000: callsub OnAnnounce,"6 minutes";
+OnTimer300000: callsub OnAnnounce,"5 minutes";
+OnTimer360000: callsub OnAnnounce,"4 minutes";
+OnTimer420000: callsub OnAnnounce,"3 minutes";
+OnTimer480000: callsub OnAnnounce,"2 minutes";
+OnTimer540000: callsub OnAnnounce,"1 minute";
+OnTimer570000:
+ mapannounce instance_mapname("1@ma_b"),"Time Limit: 30 seconds",bc_map,"0xff4400"; //FW_NORMAL 18 0 0
+ donpcevent instance_npcname("#SummonPuppetsn1")+"::OnStart";
+ end;
+OnTimer600000:
+ set .@map$, instance_mapname("1@ma_b");
+ mapannounce .@map$,"Bakonawa has escaped deep into the lake.",bc_map,"0xffff00"; //FW_NORMAL 20 0 0
+ donpcevent instance_npcname("Taho#Fail")+"::OnStart";
+ donpcevent instance_npcname("#Bakonawan1")+"::OnFail";
+ killmonster .@map$,instance_npcname("#Bakonawan1")+"::OnMyMobDead";
+ stopnpctimer;
+ disablenpc instance_npcname("#Bakonawan1");
+ end;
+OnAnnounce:
+ mapannounce instance_mapname("1@ma_b"),"Time Limit: "+getarg(0),bc_map,"0xff4400"; //FW_NORMAL 15 0 0
+ donpcevent instance_npcname("#SummonPuppetsn1")+"::OnStart";
+ end;
+}
+
+1@ma_b,78,81,0 script #SummonPuppetsn1 HIDDEN_WARP_NPC,4,5,{
+ end;
+OnInstanceInit:
+ disablenpc instance_npcname("#SummonPuppetsn1");
+ end;
+OnStart:
+ stopnpctimer;
+ enablenpc instance_npcname("#SummonPuppetsn1");
+ initnpctimer;
+ end;
+OnTouch:
+ stopnpctimer;
+ disablenpc instance_npcname("#SummonPuppetsn1");
+ end;
+OnTimer5000:
+ setarray .@x[0],79,71,60,61,57,89,95,96,99;
+ setarray .@y[0],71,72,80,90,99,73,82,90,99;
+ set .@map$, instance_mapname("1@ma_b");
+ for(set .@i,0; .@i<9; set .@i,.@i+1) {
+ set .@rand, rand(1,10);
+ if (.@rand > 7)
+ monster .@map$,.@x[.@i],.@y[.@i],"Bakonawa's Will",2337,1,instance_npcname("#SummonPuppetsn1")+"::OnMyMobDead";
+ else if (.@rand < 4)
+ monster .@map$,.@x[.@i],.@y[.@i],"Bakonawa's Will",2343,1,instance_npcname("#SummonPuppetsn1")+"::OnMyMobDead";
+ }
+ end;
+OnTimer50000:
+ killmonster instance_mapname("1@ma_b"),instance_npcname("#SummonPuppetsn1")+"::OnMyMobDead";
+ stopnpctimer;
+ disablenpc instance_npcname("#SummonPuppetsn1");
+ end;
+OnMyMobDead:
+ end;
+}
+
+1@ma_b,1,5,4 script #BakonawaDeadn1 CLEAR_NPC,{
+ end;
+OnInstanceInit:
+ disablenpc instance_npcname("#BakonawaDeadn1");
+ end;
+OnStart:
+ enablenpc instance_npcname("#BakonawaDeadn1");
+ initnpctimer;
+ end;
+OnTimer100:
+ mapannounce instance_mapname("1@ma_b"),"Taho: Good! Bakonawa is hidden under water. He will now try to swallow the moon.",bc_map,"0x00ffff"; //FW_NORMAL 15 0 0
+ end;
+OnTimer5000:
+ mapannounce instance_mapname("1@ma_b"),"Taho: We must make loud noises with caldron and gong so he can never concentrate on the moon!",bc_map,"0x00ffff"; //FW_NORMAL 15 0 0
+ end;
+OnTimer10000:
+ mapannounce instance_mapname("1@ma_b"),"Taho: Do not engage on him even if he come above the surface. Just make loud noises!",bc_map,"0x00ffff"; //FW_NORMAL 15 0 0
+ end;
+OnTimer15000:
+ mapannounce instance_mapname("1@ma_b"),"Mission - Destroy 2 caldrons and 2 gongs on left and right sides of the lake.",bc_map,"0xff3300"; //FW_NORMAL 15 0 0
+ donpcevent instance_npcname("#Bakonawan2")+"::OnStart";
+ stopnpctimer;
+ disablenpc instance_npcname("#BakonawaDeadn1");
+ end;
+}
+
+1@ma_b,36,111,4 script #Bakonawan2 CLEAR_NPC,{
+ end;
+OnInstanceInit:
+ disablenpc instance_npcname("#Bakonawan2");
+ end;
+OnStart:
+ enablenpc instance_npcname("#Bakonawan2");
+ set .@label$, instance_npcname("#Bakonawan2")+"::OnMyMobDead";
+ set .@map$, instance_mapname("1@ma_b");
+ monster .@map$,95,98,"Caldron",2328,1,.@label$;
+ monster .@map$,60,98,"Caldron",2328,1,.@label$;
+ monster .@map$,97,104,"Gong",2328,1,.@label$;
+ monster .@map$,58,104,"Gong",2328,1,.@label$;
+ donpcevent instance_npcname("#Bakonawan2-1")+"::OnStart";
+ initnpctimer;
+ end;
+OnMyMobDead:
+ set .@map$, instance_mapname("1@ma_b");
+ set .@mob_dead_num, mobcount(.@map$,instance_npcname("#Bakonawan2")+"::OnMyMobDead");
+ if (.@mob_dead_num < 1) {
+ donpcevent instance_npcname("#Bakonawan2-1")+"::OnEnd";
+ stopnpctimer;
+ disablenpc instance_npcname("#Bakonawan2");
+ } else
+ mapannounce .@map$,"Taho: Good! "+.@mob_dead_num+" left to go!",bc_map,"0x00ffff"; //FW_NORMAL 15 0 0
+ end;
+OnTimer1000: callsub OnAnnounce,"5 minutes",15,1;
+OnTimer60000: callsub OnAnnounce,"4 minutes",15,1;
+OnTimer120000: callsub OnAnnounce,"3 minutes",15,1;
+OnTimer180000: callsub OnAnnounce,"2 minutes",15,1;
+OnTimer240000: callsub OnAnnounce,"1 minute",15,1;
+OnTimer270000: callsub OnAnnounce,"30 seconds",15,0;
+OnTimer280000: callsub OnAnnounce,"20 seconds",15,0;
+OnTimer290000: callsub OnAnnounce,"10 seconds",15,0;
+OnTimer295000: callsub OnAnnounce,"5 seconds",16,0;
+OnTimer296000: callsub OnAnnounce,"4 seconds",17,0;
+OnTimer297000: callsub OnAnnounce,"3 seconds",18,0;
+OnTimer298000: callsub OnAnnounce,"2 seconds",19,0;
+OnTimer299000: callsub OnAnnounce,"1 second",20,0;
+OnTimer300000:
+ set .@map$, instance_mapname("1@ma_b");
+ mapannounce .@map$,"Bakonawa has escaped deep into the lake.",bc_map,"0xffff00"; //FW_NORMAL 20 0 0
+ donpcevent instance_npcname("Taho#Fail")+"::OnStart";
+ donpcevent instance_npcname("#Bakonawan2-1")+"::OnFail";
+ killmonster .@map$,instance_npcname("#Bakonawan2")+"::OnMyMobDead";
+ stopnpctimer;
+ disablenpc instance_npcname("#Bakonawan2");
+ end;
+OnAnnounce:
+ mapannounce instance_mapname("1@ma_b"),"Time Limit: "+getarg(0),bc_map,"0xff4400"; //FW_NORMAL getarg(1) 0 0
+ if (getarg(2)) donpcevent instance_npcname("#SummonPuppetsn1")+"::OnStart";
+ end;
+}
+
+1@ma_b,36,111,4 script #Bakonawan2-1 CLEAR_NPC,{
+ end;
+OnInstanceInit:
+ disablenpc instance_npcname("#Bakonawan2-1");
+ end;
+OnStart:
+ enablenpc instance_npcname("#Bakonawan2-1");
+ monster instance_mapname("1@ma_b"),78,81,"Enraged Bakonawa",2321,1,instance_npcname("#Bakonawan2-1")+"::OnMyMobDead"; //original: (78,93)
+ end;
+OnFail:
+ killmonster instance_mapname("1@ma_b"),instance_npcname("#Bakonawan2-1")+"::OnMyMobDead";
+ end;
+OnEnd:
+ enablenpc instance_npcname("#Bakonawan2-1");
+ killmonster instance_mapname("1@ma_b"),instance_npcname("#Bakonawan2-1")+"::OnMyMobDead";
+ initnpctimer;
+ end;
+OnTimer1000:
+ mapannounce instance_mapname("1@ma_b"),"Taho: He is back into the lake again. Is it over?",bc_map,"0x00ffff"; //FW_NORMAL 15 0 0
+ end;
+OnTimer5000:
+ mapannounce instance_mapname("1@ma_b"),"Taho: UHM! Something is moving up rapidly under the water! Ba... Bakonawa is coming!!",bc_map,"0x00ffff"; //FW_NORMAL 15 0 0
+ end;
+OnTimer10000:
+ mapannounce instance_mapname("1@ma_b"),"Mission - Eliminate Bakonawa who became more fierce.",bc_map,"0xff3300"; //FW_NORMAL 15 0 0
+ donpcevent instance_npcname("#Bakonawan3")+"::OnStart";
+ stopnpctimer;
+ disablenpc instance_npcname("#Bakonawan2-1");
+ end;
+OnMyMobDead:
+ end;
+}
+
+1@ma_b,36,111,4 script #Bakonawan3 CLEAR_NPC,{
+ end;
+OnInstanceInit:
+ disablenpc instance_npcname("#Bakonawan3");
+ end;
+OnStart:
+ enablenpc instance_npcname("#Bakonawan3");
+ initnpctimer;
+ monster instance_mapname("1@ma_b"),78,81,"Enraged Bakonawa",2322,1,instance_npcname("#Bakonawan3")+"::OnMyMobDead"; //original: (78,83)
+ donpcevent instance_npcname("#Bakonawan3-1")+"::OnStart";
+ end;
+OnMyMobDead:
+ set .@map$, instance_mapname("1@ma_b");
+ set .@mob_dead_num, mobcount(.@map$,instance_npcname("#Bakonawan3")+"::OnMyMobDead");
+ if (.@mob_dead_num < 1) {
+ mapannounce .@map$,"Taho: We got him! I can see he has threw up something that looks like a box.",bc_map,"0x00ffff"; //FW_NORMAL 15 0 0
+ donpcevent instance_npcname("Taho#Completed")+"::OnStart";
+ donpcevent instance_npcname("#Bakonawan3-1")+"::OnEnd";
+ killmonster .@map$,instance_npcname("#Bakonawan3")+"::OnMyMobDead";
+ stopnpctimer;
+ disablenpc instance_npcname("#Bakonawan3");
+ }
+ end;
+OnTimer1000:
+ callsub OnAnnounce,"10 minutes",15,1;
+ end;
+OnTimer60000:
+OnTimer120000:
+OnTimer180000:
+OnTimer240000:
+ donpcevent instance_npcname("#SummonPuppetsn1")+"::OnStart";
+ end;
+OnTimer300000: callsub OnAnnounce,"5 minutes",15,1;
+OnTimer360000: callsub OnAnnounce,"4 minutes",15,1;
+OnTimer420000: callsub OnAnnounce,"3 minutes",15,1;
+OnTimer480000: callsub OnAnnounce,"2 minutes",15,1;
+OnTimer540000: callsub OnAnnounce,"1 minute",15,1;
+OnTimer570000: callsub OnAnnounce,"30 seconds",15,0;
+OnTimer580000: callsub OnAnnounce,"20 seconds",15,0;
+OnTimer590000: callsub OnAnnounce,"10 seconds",15,0;
+OnTimer595000: callsub OnAnnounce,"5 seconds",16,0;
+OnTimer596000: callsub OnAnnounce,"4 seconds",17,0;
+OnTimer597000: callsub OnAnnounce,"3 seconds",18,0;
+OnTimer598000: callsub OnAnnounce,"2 seconds",19,0;
+OnTimer599000: callsub OnAnnounce,"1 second",20,0;
+OnTimer600000:
+ set .@map$, instance_mapname("1@ma_b");
+ mapannounce .@map$,"Bakonawa has escaped deep into the lake.",bc_map,"0xffff00"; //FW_NORMAL 20 0 0
+ donpcevent instance_npcname("Taho#Fail")+"::OnStart";
+ killmonster .@map$,instance_npcname("#Bakonawan3")+"::OnMyMobDead";
+ stopnpctimer;
+ disablenpc instance_npcname("#Bakonawan3");
+ end;
+OnAnnounce:
+ mapannounce instance_mapname("1@ma_b"),"Time Limit: "+getarg(0),bc_map,"0xff4400"; //FW_NORMAL getarg(1) 0 0
+ if (getarg(2)) donpcevent instance_npcname("#SummonPuppetsn1")+"::OnStart";
+ end;
+}
+
+1@ma_b,36,111,4 script #Bakonawan3-1 CLEAR_NPC,{
+ end;
+OnInstanceInit:
+ disablenpc instance_npcname("#Bakonawan3-1");
+ end;
+OnStart:
+ initnpctimer;
+ end;
+OnEnd:
+ killmonster instance_mapname("1@ma_b"),instance_npcname("#Bakonawan3-1")+"::OnMyMobDead";
+ //showdigit 0;
+ stopnpctimer;
+ end;
+OnMyMobDead:
+ showdigit mobcount(instance_mapname("1@ma_b"),instance_npcname("#Bakonawan3-1")+"::OnMyMobDead");
+ end;
+OnTimer120000: callsub OnMobSpawn,10;
+OnTimer180000: callsub OnMobSpawn,15;
+OnTimer240000: callsub OnMobSpawn,20;
+//OnTimer300000: callsub OnMobSpawn,25;
+OnTimer300000: callsub OnMobSpawn,30;
+OnTimer360000: callsub OnMobSpawn,35;
+OnTimer420000: callsub OnMobSpawn,40;
+OnTimer480000: callsub OnMobSpawn,45;
+OnTimer540000: callsub OnMobSpawn,50;
+OnTimer600000:
+ killmonster instance_mapname("1@ma_b"),instance_npcname("#Bakonawan3-1")+"::OnMyMobDead";
+ stopnpctimer;
+ end;
+OnMobSpawn:
+ set .@label$, instance_npcname("#Bakonawan3-1")+"::OnMyMobDead";
+ set .@map$, instance_mapname("1@ma_b");
+ killmonster .@map$,.@label$;
+ set .@mob_dead_num, mobcount(.@map$,.@label$);
+ if (.@mob_dead_num < 50) {
+ set .@mob_rg, 50 - .@mob_dead_num;
+ if (.@mob_rg > getarg(0))
+ set .@mob_rg, getarg(0);
+ while(1) {
+ areamonster .@map$,74,74,82,74,"Bakonawa's Puppet",2334,1,.@label$;
+ set .@mob_dead_num, mobcount(.@map$,.@label$);
+ if (.@mob_dead_num >= .@mob_rg) {
+ break;
+ }
+ }
+ }
+ end;
+}
+
+1@ma_b,62,52,4 script Taho#Completed 4_M_DEWZATIMAN,{
+ disable_items;
+ if (checkweight(1201,1) == 0) {
+ mes "It seems you are carrying too many different kinds of items. Please try again after reducing it.";
+ close;
+ }
+ if (MaxWeight - Weight < 10000) {
+ mes "It seems you are already carrying items of too much weight. Please try again after reducing the weight.";
+ close;
+ }
+ if (checkquest(12279,HUNTING) == 2) {
+ erasequest 12279;
+ mes "[Taho]";
+ mes "This was found from Bakonawa's corpse. It would be better if you take this.";
+// if (IsPremiumPcCafe == 10)
+ getitem 6499,7; //Ancient_Grudge
+// else
+// getitem 6499,5; //Ancient_Grudge
+ getexp 0,100000;
+ next;
+ }
+ mes "[Taho]";
+ mes "We better hurry and get out of this place. This place is still dangerous even without Bakonawa...";
+ next;
+ mes "[Taho]";
+ mes "Then let's use to the rope to go up!";
+ close2;
+ warp "ma_scene01",175,176;
+ end;
+OnInstanceInit:
+ disablenpc instance_npcname("Taho#Completed");
+ end;
+OnStart:
+ enablenpc instance_npcname("Taho#Completed");
+ initnpctimer;
+ end;
+OnTimer1000:
+ monster instance_mapname("1@ma_b"),78,74,"Bakonawa Treasure Box",2335,1;
+ end;
+OnTimer10000:
+ mapannounce instance_mapname("1@ma_b"),"Taho: After opening the treasure box, please visit me at the top of the hill. I've got something to give to you.",bc_map,"0x00ffff"; //FW_NORMAL 15 0 0
+ stopnpctimer;
+ end;
+}
+
+1@ma_b,62,52,4 script Taho#Fail 4_M_DEWZATIMAN,{
+ mes "[Taho]";
+ mes "HMM. We almost got him but he is one fast creature...";
+ next;
+ if (getcharid(0) == getpartyleader(getcharid(1),2)) {
+ mes "[Taho]";
+ mes "Are we going to try again?";
+ next;
+ switch(select("Hold on a sec!:Of couse! We cannot stand back now!")) {
+ case 1:
+ mes "[Taho]";
+ mes "AWW... I almost brought him out.";
+ close;
+ case 2:
+ mes "[Taho]";
+ mes "Then I will use Albopal once again to the lake.";
+ next;
+ mes "[Taho]";
+ mes "We are about to see Bakonawa with intenser anger...";
+ disablenpc instance_npcname("Taho#Fail");
+ donpcevent instance_npcname("#Bakonawan1")+"::OnStart";
+ close;
+ }
+ close;
+ } else {
+ mes "[Taho]";
+ mes "I am dropping Albopal like I did a while ago. I hope it pisses him off...";
+ close;
+ }
+
+OnInstanceInit:
+ disablenpc instance_npcname("Taho#Fail");
+ end;
+OnStart:
+ enablenpc instance_npcname("Taho#Fail");
+ end;
+}
diff --git a/npc/re/instances/BangungotHospital.txt b/npc/re/instances/BangungotHospital.txt
new file mode 100644
index 000000000..b995092a1
--- /dev/null
+++ b/npc/re/instances/BangungotHospital.txt
@@ -0,0 +1,1101 @@
+//===== Hercules Script ======================================
+//= Bangungot Hospital 2F
+//===== By: ==================================================
+//= Euphy
+//===== Current Version: =====================================
+//= 1.1
+//===== Description: =========================================
+//= [Official Conversion]
+//= Save the hospital in Port Malaya from Bangungot.
+//= Part of the "Nurse in Port Malaya" quest.
+//===== Additional Comments: =================================
+//= 1.0 First version. [Euphy]
+//= 1.1 Added GM management function. [Euphy]
+//============================================================
+
+1@ma_h mapflag src4instance
+//============================================================
+
+// Instance Creation
+//============================================================
+ma_dun01,147,10,5 script Nurse#ma_dun01 4_F_NURSE,{
+ if (BaseLevel < 100) end;
+
+ set .@party_id,getcharid(1);
+ cutin "malaya_nurseB",2;
+ if (checkquest(9223) == -1) {
+ set .@quest, checkquest(9222);
+ if (.@quest == -1) {
+ if (!.@party_id) {
+ if (malaya_bang == 30)
+ callsub L_Closed,1;
+ else if (malaya_bang == 31)
+ callsub L_Closed,0;
+ else
+ goto L_NoParty;
+ }
+ if (checkquest(11309,HUNTING) < 2) {
+ set .@playtime, checkquest(9224,PLAYTIME);
+ if (.@playtime == -1) {
+ if (malaya_bang == 30)
+ callsub L_Closed,1;
+ else if (malaya_bang == 31)
+ callsub L_Closed,0;
+ else if (malaya_bang > 39)
+ callsub L_Enter,(getcharid(0) == getpartyleader(.@party_id,2))?1:0,0,0;
+ else {
+ mes "[Nurse Maenne]";
+ mes "..........";
+ close2;
+ cutin "",255;
+ end;
+ }
+ } else if (.@playtime == 0 || .@playtime == 1) {
+ if (checkquest(11309) == -1) {
+ mes "[Nurse Maenne]";
+ mes "This is a fatal situation.";
+ close2;
+ cutin "",255;
+ end;
+ } else {
+ mes "[Nurse Maenne]";
+ mes "Now the entrance";
+ mes "to the second floor";
+ mes "is closed.";
+ next;
+ mes "[Nurse Maenne]";
+ mes "To go up to";
+ mes "the second floor again,";
+ mes "open the gate";
+ mes "after a lapse of time.";
+ close2;
+ cutin "",255;
+ end;
+ }
+ } else {
+ set .@quest2, checkquest(11309);
+ if (.@quest2 == -1) {
+ callsub L_Closed,0;
+ } else if (.@quest2 == 0 || .@quest2 == 1) {
+ callsub L_Complete;
+ completequest 9224;
+ erasequest 9224;
+ close2;
+ cutin "",255;
+ end;
+ } else {
+ //if (!.@party_id) goto L_NoParty; //unneeded
+ if (malaya_bang > 39)
+ callsub L_Enter,(getcharid(0) == getpartyleader(.@party_id,2))?1:0,1,1;
+ else {
+ mes "[Nurse Maenne]";
+ mes ".......";
+ close2;
+ cutin "",255;
+ end;
+ }
+ }
+ }
+ } else {
+ mes "[Nurse Maenne]";
+ mes "You got rid of Bangungot!"; //?
+ mes "The nurse might be waiting for you";
+ mes "in front of the hospital!";
+ close2;
+ cutin "",255;
+ end;
+ }
+ } else if (.@quest == 0 || .@quest == 1) {
+ if (!.@party_id) goto L_NoParty;
+ if (malaya_bang > 39) {
+ set .@hunting, checkquest(9222,HUNTING);
+ if (.@hunting == 0 || .@hunting == 1) {
+ set .@playtime, checkquest(9224,PLAYTIME);
+ if (.@playtime == 0 || .@playtime == 1) {
+ mes "[Nurse Maenne]";
+ mes "Do you want go up to the second floor again?";
+ next;
+ callsub L_Enter,0,0;
+ } else if (.@playtime == 2) {
+ //if (!.@party_id) goto L_NoParty; //unneeded
+ if (malaya_bang > 39)
+ callsub L_Enter,(getcharid(0) == getpartyleader(.@party_id,2))?1:0,1,1;
+ else {
+ mes "[Nurse Maenne]";
+ mes ".......";
+ close2;
+ cutin "",255;
+ end;
+ }
+ } else {
+ mes "[Nurse Maenne]";
+ mes "This is a fatal situation.";
+ mes "You can't go up to the 2nd floor.";
+ close2;
+ cutin "",255;
+ end;
+ }
+ } else {
+ if (checkweight(607,1) == 0) {
+ mes "[Nurse Maenne]";
+ mes "You have too much stuff.";
+ mes "Please reduce your stuff and";
+ mes "come to me again.";
+ close2;
+ cutin "",255;
+ end;
+ }
+ if (checkweight(607,11) == 0) {
+ mes "[Nurse Maenne]";
+ mes "It's too heavy.";
+ mes "Please reduce the weight and";
+ mes "come to me again.";
+ close2;
+ cutin "",255;
+ end;
+ }
+ callsub L_Complete;
+ completequest 9222;
+ erasequest 9222;
+ completequest 9224;
+ erasequest 9224;
+ setquest 9223;
+ getexp 500000,0;
+// if (IsPremiumPcCafe == 10)
+ getitem 6499,7; //Ancient_Grudge
+// else
+// getitem 6499,5; //Ancient_Grudge
+ close2;
+ cutin "",255;
+ end;
+ }
+ } else {
+ mes "[Nurse Maenne]";
+ mes ".....?";
+ mes "Now you can't go up";
+ mes "to the 2nd floor.";
+ close2;
+ cutin "",255;
+ end;
+ }
+ } else {
+ callsub L_Complete;
+ completequest 9222;
+ erasequest 9222;
+ completequest 9224;
+ erasequest 9224;
+ setquest 9223;
+ close2;
+ cutin "",255;
+ end;
+ }
+ } else {
+ if (checkquest(9223,PLAYTIME) == 0 || checkquest(9223,PLAYTIME) == 1) {
+ callsub L_Complete;
+ close2;
+ cutin "",255;
+ end;
+ } else {
+ if (!.@party_id) goto L_NoParty;
+ if (malaya_bang > 39)
+ callsub L_Enter,(getcharid(0) == getpartyleader(.@party_id,2))?1:0,1,1;
+ else {
+ mes "[Nurse Maenne]";
+ mes ".......";
+ close2;
+ cutin "",255;
+ end;
+ }
+ }
+ }
+
+L_Closed:
+ mes "[Nurse Maenne]";
+ mes "- The door is closed to 1st floor";
+ mes "When this Nurse came in?";
+ mes "I call her behind, but";
+ mes "she doesn't respond. -";
+ if (getarg(0)) {
+ set malaya_bang,31;
+ changequest 11302,11303;
+ }
+ close2;
+ cutin "",255;
+ end;
+
+L_NoParty:
+ mes "- I guess...";
+ mes "I can't talk him alone.";
+ mes "After registering a party";
+ mes "let me try to say something. -";
+ close2;
+ cutin "",255;
+ end;
+
+L_Enter:
+ set .@md_name$,"Bangungot Hospital 2F";
+ if (getarg(2) == 0) {
+ mes "[Nurse Maenne]";
+ mes "I already heard that story so";
+ mes "I pretty much know that.";
+ mes "What are you going to do?";
+ mes "Do you want to go up";
+ mes "to the second floor?";
+ } else {
+ mes "[Nurse Maenne]";
+ mes "You are back...";
+ mes "There is bad news.";
+ mes "I heard that";
+ mes "the Bangungot has";
+ mes "appeared again.";
+ next;
+ mes "[Nurse Maenne]";
+ mes strcharinfo(0) + "'s help";
+ mes "is needed again.";
+ mes "Please, could you give me";
+ mes "one more chance?";
+ }
+ next;
+ switch(select(((getarg(0))?"Prepare to enter the second floor.":"")+":Enter the second floor.:Do not enter.")) {
+ case 1:
+ set .@instance, instance_create(.@md_name$,getcharid(1));
+ if (.@instance < 0) {
+ mes "[Nurse Maenne]";
+ mes "A critical situation has happened.";
+ mes "You can't go up to the 2nd floor.";
+ close2;
+ cutin "",255;
+ end;
+ }
+ if (instance_attachmap("1@ma_h",.@instance) == "") {
+ mes "^0000ff"+.@md_name$+"^000000 - Reservation Failed!";
+ instance_destroy(.@instance);
+ close;
+ }
+ instance_set_timeout 3600,300,.@instance;
+ instance_init(.@instance);
+ mes "[Nurse Maenne]";
+ mes "We are preparing to go up";
+ mes "to the second floor.";
+ mes "At the second floor";
+ mes "there is a chaotic rumor that";
+ mes "the dead do not die.";
+ mes "Please refer to this story.";
+ next;
+ mes "[Nurse Maenne]";
+ mes "When you finish everything,";
+ mes "please talk to me again.";
+ mes "I really appreciate it.";
+ close2;
+ cutin "",255;
+ end;
+ case 2:
+ if( has_instance("1@ma_h") == "" ) {
+ mes "The memorial dungeon "+.@md_name$+" does not exist.";
+ mes "The party leader did not generate the dungeon yet.";
+ close;
+ } else {
+ mapannounce "ma_dun01", getpartyname(getcharid(1))+" party's "+strcharinfo(0)+" member entered "+.@md_name$+".",bc_map,"0x00ff99";
+ if (getarg(1)) {
+ if (checkquest(9223) > -1) {
+ completequest 9223;
+ erasequest 9223;
+ }
+ if (checkquest(9222) > -1)
+ erasequest 9222;
+ if (checkquest(9224) > -1)
+ erasequest 9224;
+ setquest 9222;
+ }
+ setquest 9224;
+ cutin "",255;
+ warp "1@ma_h",40,157;
+ end;
+ }
+ case 3:
+ mes "[Nurse Maenne]";
+ mes "Alright.";
+ mes "If you change mind, come back again.";
+ close2;
+ cutin "",255;
+ end;
+ }
+
+L_Complete:
+ mes "[Nurse Maenne]";
+ mes "You returned safely from the Bangungot on the second floor!!";
+ mes "However, it's not";
+ mes "really over yet.";
+ next;
+ mes "[Nurse Maenne]";
+ mes "I'm pretty sure it";
+ mes "never disappears easily.";
+ mes "I don't know what will happen";
+ mes "about Bangungot, so";
+ mes "after a lapse of time";
+ mes "please return to me.";
+ return;
+}
+
+sec_in02,27,30,0 script Bangungot Gate 2_MONEMUS,{
+ callfunc "F_GM_NPC";
+ mes "Password";
+ next;
+ if (callfunc("F_GM_NPC","1854",1) == 0) {
+ mes "Good Luck.";
+ close;
+ }
+ switch(select("Receive 9222:Receive 9223:Erase 9222:Erase 9223:Receive 9224:Erase 9224:Receive malaya_bang 30:Receive malaya_bang 40:Receive 11309:Erase 11309:Cancel")) {
+ case 1: setquest 9222; close;
+ case 2: setquest 9223; close;
+ case 3: erasequest 9222; close;
+ case 4: erasequest 9223; close;
+ case 5: setquest 9224; close;
+ case 6: erasequest 9224; close;
+ case 7: set malaya_bang,30; close;
+ case 8: set malaya_bang,40; close;
+ case 9: setquest 11309; close;
+ case 10: completequest 11309; close;
+ case 11: close;
+ }
+}
+
+// Instance Scripts
+//============================================================
+1@ma_h,43,157,0 script #Memorial Start HIDDEN_WARP_NPC,2,2,{
+ end;
+OnTouch:
+ set .@map$, instance_mapname("1@ma_h");
+ mapannounce .@map$,"Bangungot: You silly "+strcharinfo(0)+" ....",bc_map,"0xFF82FF";
+ mapannounce .@map$,"Bangungot: Get out before you die...",bc_map,"0xFF82FF";
+ areamonster .@map$,44,156,46,158,"Bangungot's Mangkukulam",2339,1,instance_npcname("#Memorial Start")+"::OnMyMobDead";
+ donpcevent instance_npcname("#Memorial Start_time")+"::OnEnable";
+ end;
+OnMyMobDead:
+ initnpctimer;
+ end;
+OnTimer1000:
+ set .@map$, instance_mapname("1@ma_h");
+ if (mobcount(.@map$,instance_npcname("#Memorial Start")+"::OnMyMobDead") < 1) {
+ donpcevent instance_npcname("#Ward1 Entry")+"::OnEnable1";
+ donpcevent instance_npcname("#Memorial Start_time")+"::OnDisable";
+ mapannounce .@map$,"Bangungot: This is where your NIGHTMARE starts...",bc_map,"0xFF82FF";
+ disablenpc instance_npcname("#Memorial Start");
+ }
+ stopnpctimer;
+ end;
+}
+
+1@ma_h,43,157,0 script #Memorial Start_time HIDDEN_WARP_NPC,{ //2,2
+ end;
+OnInstanceInit:
+ disablenpc instance_npcname("#Memorial Start_time");
+ end;
+OnEnable:
+ specialeffect EF_BAT2,AREA,instance_npcname("#Memorial Start");
+ initnpctimer;
+ end;
+OnDisable:
+ stopnpctimer;
+ end;
+OnTimer5000:
+ mapannounce instance_mapname("1@ma_h"),"Bangungot: You cannot help.... you can't defeat me.",bc_map,"0xFF82FF";
+ end;
+OnTimer10000:
+ mapannounce instance_mapname("1@ma_h"),"Bangungot: HAHAHAHAHAHAHAHA!!!!",bc_map,"0xFF82FF";
+ stopnpctimer;
+ end;
+}
+
+1@ma_h,46,165,0 script #Ward1 Entry HIDDEN_WARP_NPC,{ //3,3
+ end;
+OnInstanceInit:
+ disablenpc instance_npcname(strnpcinfo(0));
+ end;
+OnEnable1:
+ set .@map$, instance_mapname("1@ma_h");
+ set .@label$, instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
+ enablenpc instance_npcname(strnpcinfo(0));
+ specialeffect EF_BAT2;
+ switch(atoi(charat(strnpcinfo(2),4))) {
+ case 1:
+ areamonster .@map$,49,171,51,173,"Bangungot's Mangkukulam",2339,1,.@label$;
+ areamonster .@map$,51,171,53,173,"Bangungot's Mangkukulam",2339,1,.@label$;
+ end;
+ case 2:
+ areamonster .@map$,49,137,51,139,"Bangungot's Mangkukulam",2339,1,.@label$;
+ areamonster .@map$,51,137,53,139,"Bangungot's Mangkukulam",2339,1,.@label$;
+ end;
+ case 3:
+ areamonster .@map$,69,171,71,173,"Bangungot's Mangkukulam",2339,1,.@label$;
+ areamonster .@map$,71,171,73,173,"Bangungot's Mangkukulam",2339,1,.@label$;
+ areamonster .@map$,73,171,75,173,"Bangungot's Mangkukulam",2339,1,.@label$;
+ end;
+ case 4:
+ areamonster .@map$,71,139,73,141,"Bangungot's Mangkukulam",2339,1,.@label$;
+ areamonster .@map$,73,139,75,141,"Bangungot's Mangkukulam",2339,1,.@label$;
+ areamonster .@map$,75,139,77,141,"Bangungot's Mangkukulam",2339,1,.@label$;
+ end;
+ case 5:
+ areamonster .@map$,93,173,95,175,"Bangungot's Mangkukulam",2339,1,.@label$;
+ areamonster .@map$,95,173,97,175,"Bangungot's Mangkukulam",2339,1,.@label$;
+ areamonster .@map$,97,173,99,175,"Bangungot's Mangkukulam",2339,1,.@label$;
+ areamonster .@map$,93,175,95,177,"Bangungot's Mangkukulam",2339,1,.@label$;
+ end;
+ }
+/*
+// Not called in official scripts.
+OnEnable2:
+ areamonster instance_mapname("1@ma_h"),140,38,142,40,"Bangungot's Mangkukulam",2339,1,instance_npcname("#Ward1 Entry")+"::OnMyMobDead";
+ end;
+*/
+OnEnable3:
+ set .@i, atoi(charat(strnpcinfo(2),4))+1;
+ donpcevent instance_npcname("#Ward"+.@i+" Entry")+"::OnEnable1";
+ disablenpc instance_npcname(strnpcinfo(0));
+ end;
+OnMyMobDead:
+ initnpctimer;
+ end;
+OnTimer1000:
+ set .@map$, instance_mapname("1@ma_h");
+ if (mobcount(.@map$,instance_npcname(strnpcinfo(0))+"::OnMyMobDead") < 1) {
+ specialeffect EF_BAT2;
+ donpcevent instance_npcname(strnpcinfo(0))+"::OnEnable3";
+ switch(atoi(charat(strnpcinfo(2),4))) {
+ case 1: set .@str$,"Bangungot: I will let you see the pain and the agony actually be real....."; break;
+ case 2: set .@str$,"Bangungot: Diseased spirits are the source of my energy, and my life..."; break;
+ case 3: set .@str$,"Bangungot: Scream more....and more...... your pain..."; break;
+ case 4: set .@str$,"Bangungot: Deeply and more deeply in pain..."; break;
+ case 5: set .@str$,"Bangungot: Be horrified...be petrified."; break;
+ }
+ mapannounce .@map$,.@str$,bc_map,"0xFF82FF";
+ }
+ stopnpctimer;
+ end;
+}
+1@ma_h,57,147,0 duplicate(#Ward1 Entry) #Ward2 Entry HIDDEN_WARP_NPC //3,3
+1@ma_h,67,165,0 duplicate(#Ward1 Entry) #Ward3 Entry HIDDEN_WARP_NPC //3,3
+1@ma_h,79,147,0 duplicate(#Ward1 Entry) #Ward4 Entry HIDDEN_WARP_NPC //3,3
+1@ma_h,90,165,0 duplicate(#Ward1 Entry) #Ward5 Entry HIDDEN_WARP_NPC //3,3
+
+1@ma_h,101,147,0 script #Ward6 Entry HIDDEN_WARP_NPC,{ //2,2
+ end;
+OnInstanceInit:
+ disablenpc instance_npcname("#Ward6 Entry");
+ end;
+OnEnable1:
+ set .@map$, instance_mapname("1@ma_h");
+ set .@label$, instance_npcname("#Ward6 Entry")+"::OnMyMobDead";
+ enablenpc instance_npcname("#Ward6 Entry");
+ specialeffect EF_BAT2;
+ areamonster .@map$,93,137,95,139,"Bangungot's Mangkukulam",2339,1,.@label$;
+ areamonster .@map$,95,137,97,139,"Bangungot's Mangkukulam",2339,1,.@label$;
+ areamonster .@map$,97,137,99,139,"Bangungot's Mangkukulam",2339,1,.@label$;
+ areamonster .@map$,93,139,95,141,"Bangungot's Mangkukulam",2339,1,.@label$;
+ areamonster .@map$,95,139,97,141,"Bangungot's Manananggal",2338,1,.@label$;
+ end;
+/*
+// Not called in official scripts.
+OnEnable2:
+ areamonster instance_mapname("1@ma_h"),140,38,142,40,"Bangungot's Mangkukulam",2339,1,instance_npcname("#Ward6 Entry")+"::OnMyMobDead";
+ end;
+*/
+OnMyMobDead:
+ initnpctimer;
+ end;
+OnTimer3000:
+ set .@map$, instance_mapname("1@ma_h");
+ if (mobcount(.@map$,instance_npcname("#Ward6 Entry")+"::OnMyMobDead") < 1) {
+ specialeffect EF_BAT2;
+ donpcevent instance_npcname("#Summon Boss")+"::OnEnable";
+ mapannounce .@map$,"Bangungot: You had the choice to enter here, but you have no choice to get out as you want...",bc_map,"0xFF82FF";
+ }
+ stopnpctimer;
+ end;
+}
+
+1@ma_h,110,177,0 script #Summon Boss HIDDEN_WARP_NPC,{
+ end;
+OnInstanceInit:
+ disablenpc instance_npcname("#Summon Boss");
+ end;
+OnEnable:
+ enablenpc instance_npcname("#Summon Boss");
+ monster instance_mapname("1@ma_h"),143,158,"Bangungot",2317,1,instance_npcname("#Summon Boss")+"::OnMyMobDead";
+ donpcevent instance_npcname("#Boss Room Entry")+"::OnEnableEntry";
+ donpcevent instance_npcname("#Boss Room Entry")+"::OnEnable";
+ end;
+OnMyMobDead:
+ initnpctimer;
+ end;
+OnTimer1000:
+ if (mobcount(instance_mapname("1@ma_h"),instance_npcname("#Summon Boss")+"::OnMyMobDead") < 1) {
+ donpcevent instance_npcname("#Summon Pillar")+"::OnEnable1";
+ mapannounce instance_mapname("1@ma_h"),"Bangungot: I....cannot.....finish...like.......this.",bc_map,"0xFF82FF";
+ disablenpc instance_npcname("#Summon Boss");
+ }
+ stopnpctimer;
+ end;
+}
+
+1@ma_h,147,143,0 script #Boss Room Entry HIDDEN_WARP_NPC,10,10,{
+ end;
+OnInstanceInit:
+ disablenpc instance_npcname("#Boss Room Entry");
+ end;
+OnTouch:
+ specialeffect EF_GHOST;
+ donpcevent instance_npcname("#Boss Room Entry")+"::OnDisableEntry";
+ donpcevent instance_npcname("#Boss Room Entry_time")+"::OnEnable";
+ end;
+OnEnable:
+ enablenpc instance_npcname("#Boss Room Entry");
+ enablenpc instance_npcname("#Boss Room Door");
+ enablenpc instance_npcname("#Boss Room Door1");
+ end;
+OnSpawn:
+ areamonster instance_mapname("1@ma_h"),123,152,137,166,"Bangungot's Manananggal",2338,1,instance_npcname("#Boss Room Entry")+"::OnMyMobDead";
+ end;
+OnReset:
+ killmonster instance_mapname("1@ma_h"),instance_npcname("#Boss Room Entry")+"::OnMyMobDead";
+ end;
+OnMyMobDead:
+ initnpctimer;
+ end;
+OnTimer1000:
+ set .@map$, instance_mapname("1@ma_h");
+ if (mobcount(.@map$,instance_npcname("#Boss Room Entry")+"::OnMyMobDead") < 1)
+ mapannounce .@map$,"Bangungot: HAHAHAH... That's not enough, I will be even stronger....",bc_map,"0xFF82FF";
+ stopnpctimer;
+ end;
+
+// Unofficial labels (to avoid duplicating code).
+OnEnableEntry:
+ enablenpc instance_npcname("#Boss Room Entry");
+ enablenpc instance_npcname("#Boss Room Entry_a");
+ enablenpc instance_npcname("#Boss Room Entry_b");
+ enablenpc instance_npcname("#Boss Room Entry_c");
+ enablenpc instance_npcname("#Boss Room Entry_d");
+ enablenpc instance_npcname("#Boss Room Entry_e");
+ enablenpc instance_npcname("#Boss Room Entry_f");
+ enablenpc instance_npcname("#Boss Room Entry_g");
+ enablenpc instance_npcname("#Boss Room Entry_h");
+ end;
+OnDisableEntry:
+ disablenpc instance_npcname("#Boss Room Entry");
+ disablenpc instance_npcname("#Boss Room Entry_a");
+ disablenpc instance_npcname("#Boss Room Entry_b");
+ disablenpc instance_npcname("#Boss Room Entry_c");
+ disablenpc instance_npcname("#Boss Room Entry_d");
+ disablenpc instance_npcname("#Boss Room Entry_e");
+ disablenpc instance_npcname("#Boss Room Entry_f");
+ disablenpc instance_npcname("#Boss Room Entry_g");
+ disablenpc instance_npcname("#Boss Room Entry_h");
+ end;
+}
+
+1@ma_h,147,143,0 script #Boss Room Entry_time HIDDEN_WARP_NPC,{ //10,10
+ end;
+OnInstanceInit:
+ disablenpc instance_npcname("#Boss Room Entry_time");
+ end;
+OnEnable:
+ mapannounce instance_mapname("1@ma_h"),"Bangungot: You poor little things. I will invite you to the world of infectious disease...",bc_map,"0xFF82FF";
+ initnpctimer;
+ end;
+OnTimer25000:
+ mapannounce instance_mapname("1@ma_h"),"Bangungot: You will know what it is...",bc_map,"0xFF82FF";
+ for(set .@i,10; .@i<=22; set .@i,.@i+1)
+ disablenpc instance_npcname("#Patternwarp"+.@i);
+ end;
+OnTimer35000:
+ mapannounce instance_mapname("1@ma_h"),"Bangungot: Real pain! You will know!!",bc_map,"0xFF82FF";
+ for(set .@i,25; .@i<=33; set .@i,.@i+1)
+ disablenpc instance_npcname("#Patternwarp"+.@i);
+ end;
+OnTimer45000:
+ mapannounce instance_mapname("1@ma_h"),"Bangungot: Have you ever heard the patients screaming?",bc_map,"0xFF82FF";
+ end;
+OnTimer55000:
+ mapannounce instance_mapname("1@ma_h"),"Bangungot: If you haven't, I will let you!!",bc_map,"0xFF82FF";
+ enablenpc instance_npcname("#Summon Ward Mob");
+ donpcevent instance_npcname("#Summon Ward Mob")+"::OnEnable7";
+ end;
+OnTimer60000:
+ for(set .@i,1; .@i<=8; set .@i,.@i+1)
+ enablenpc instance_npcname("#Patternwarp"+.@i);
+ for(set .@i,34; .@i<=38; set .@i,.@i+1)
+ enablenpc instance_npcname("#Patternwarp"+.@i);
+ end;
+OnTimer60500:
+ for(set .@i,41; .@i<=49; set .@i,.@i+1)
+ enablenpc instance_npcname("#Patternwarp"+.@i);
+ end;
+OnTimer90000:
+ mapannounce instance_mapname("1@ma_h"),"Bangungot: Delight coming from agony is my nutrient.",bc_map,"0xFF82FF";
+ donpcevent instance_npcname("#Boss Room Entry")+"::OnSpawn";
+ end;
+OnTimer110000:
+ mapannounce instance_mapname("1@ma_h"),"Bangungot: Remain here, cursed disease.....",bc_map,"0xFF82FF";
+ donpcevent instance_npcname("#Boss Room Entry")+"::OnSpawn";
+ end;
+OnTimer125000:
+ mapannounce instance_mapname("1@ma_h"),"Bangungot: You wanna hang out with me ......?",bc_map,"0xFF82FF";
+ end;
+OnTimer128000:
+ for(set .@i,1; .@i<=8; set .@i,.@i+1)
+ disablenpc instance_npcname("#Patternwarp"+.@i);
+ for(set .@i,34; .@i<=38; set .@i,.@i+1)
+ disablenpc instance_npcname("#Patternwarp"+.@i);
+ end;
+OnTimer128500:
+ for(set .@i,41; .@i<=49; set .@i,.@i+1)
+ disablenpc instance_npcname("#Patternwarp"+.@i);
+ end;
+OnTimer129000:
+ donpcevent instance_npcname("#Boss Room Entry")+"::OnEnableEntry";
+ end;
+OnTimer129500:
+ donpcevent instance_npcname("#Boss Room Entry")+"::OnSpawn";
+ for(set .@i,10; .@i<=22; set .@i,.@i+1)
+ enablenpc instance_npcname("#Patternwarp"+.@i);
+ end;
+OnTimer130000:
+ for(set .@i,25; .@i<=33; set .@i,.@i+1)
+ enablenpc instance_npcname("#Patternwarp"+.@i);
+ stopnpctimer;
+ end;
+OnStopTimer:
+ stopnpctimer;
+ end;
+}
+
+1@ma_h,111,177,0 script #Boss Room Entry_2 WARPNPC,{
+ end;
+OnInstanceInit:
+ disablenpc instance_npcname("#Boss Room Entry_2");
+ end;
+OnEnable:
+ mapannounce instance_mapname("1@ma_h"),"Bangungot: You are pretty powerful...",bc_map,"0xFF82FF";
+ initnpctimer;
+ end;
+OnTimer3000:
+ mapannounce instance_mapname("1@ma_h"),"Bangungot: But can you...",bc_map,"0xFF82FF";
+ end;
+OnTimer6000:
+ mapannounce instance_mapname("1@ma_h"),"Bangungot: ...defeat me again...?",bc_map,"0xFF82FF";
+ end;
+OnTimer9000:
+ for(set .@i,1; .@i<=8; set .@i,.@i+1)
+ disablenpc instance_npcname("#Patternwarp"+.@i);
+ for(set .@i,34; .@i<=38; set .@i,.@i+1)
+ disablenpc instance_npcname("#Patternwarp"+.@i);
+ end;
+OnTimer9500:
+ for(set .@i,41; .@i<=49; set .@i,.@i+1)
+ disablenpc instance_npcname("#Patternwarp"+.@i);
+ end;
+OnTimer10000:
+ mapannounce instance_mapname("1@ma_h"),"Bangungot: You stupid persoon....",bc_map,"0xFF82FF";
+ for(set .@i,10; .@i<=22; set .@i,.@i+1)
+ enablenpc instance_npcname("#Patternwarp"+.@i);
+ end;
+OnTimer10500:
+ for(set .@i,25; .@i<=33; set .@i,.@i+1)
+ enablenpc instance_npcname("#Patternwarp"+.@i);
+ stopnpctimer;
+ end;
+}
+
+1@ma_h,118,63,0 script #Summon Ward Mob HIDDEN_WARP_NPC,4,4,{
+ end;
+OnInstanceInit:
+ disablenpc instance_npcname("#Summon Ward Mob");
+ end;
+OnTouch:
+ donpcevent instance_npcname("#Summon Ward Mob_time")+"::OnEnable";
+ specialeffect EF_CURSEATTACK;
+ end;
+OnEnable1:
+ set .@map$, instance_mapname("1@ma_h");
+ set .@label$, instance_npcname("#Summon Ward Mob")+"::OnMyMobDead";
+ areamonster .@map$,47,77,49,79,"Bangungot's Tiyanak",2340,1,.@label$;
+ areamonster .@map$,49,77,51,79,"Bangungot's Tiyanak",2340,1,.@label$;
+ areamonster .@map$,51,77,53,79,"Bangungot's Tiyanak",2340,1,.@label$;
+ areamonster .@map$,47,79,49,81,"Bangungot's Tiyanak",2340,1,.@label$;
+ areamonster .@map$,49,79,51,81,"Bangungot's Mangkukulam",2339,1,.@label$;
+ areamonster .@map$,47,81,49,83,"Bangungot's Tiyanak",2339,1,.@label$;
+ areamonster .@map$,49,81,51,83,"Bangungot's Tiyanak",2339,1,.@label$;
+ end;
+OnEnable2:
+ set .@map$, instance_mapname("1@ma_h");
+ set .@label$, instance_npcname("#Summon Ward Mob")+"::OnMyMobDead";
+ areamonster .@map$,51,45,53,47,"Bangungot's Tiyanak",2339,1,.@label$;
+ areamonster .@map$,53,45,55,47,"Bangungot's Tiyanak",2339,1,.@label$;
+ areamonster .@map$,49,47,51,49,"Bangungot's Mangkukulam",2339,1,.@label$;
+ areamonster .@map$,53,47,55,49,"Bangungot's Tiyanak",2340,1,.@label$;
+ areamonster .@map$,49,49,51,51,"Bangungot's Tiyanak",2340,1,.@label$;
+ areamonster .@map$,51,49,53,51,"Bangungot's Tiyanak",2340,1,.@label$;
+ areamonster .@map$,53,49,55,51,"Bangungot's Tiyanak",2340,1,.@label$;
+ end;
+OnEnable3:
+ set .@map$, instance_mapname("1@ma_h");
+ set .@label$, instance_npcname("#Summon Ward Mob")+"::OnMyMobDead";
+ areamonster .@map$,69,75,71,77,"Bangungot's Tiyanak",2340,1,.@label$;
+ areamonster .@map$,71,75,73,77,"Bangungot's Tiyanak",2340,1,.@label$;
+ areamonster .@map$,73,75,75,77,"Bangungot's Tiyanak",2340,1,.@label$;
+ areamonster .@map$,69,77,71,79,"Bangungot's Tiyanak",2340,1,.@label$;
+ areamonster .@map$,71,77,73,79,"Bangungot's Mangkukulam",2339,1,.@label$;
+ areamonster .@map$,69,79,71,81,"Bangungot's Tiyanak",2339,1,.@label$;
+ areamonster .@map$,71,79,73,81,"Bangungot's Tiyanak",2339,1,.@label$;
+ end;
+OnEnable4:
+ set .@map$, instance_mapname("1@ma_h");
+ set .@label$, instance_npcname("#Summon Ward Mob")+"::OnMyMobDead";
+ areamonster .@map$,73,45,75,47,"Bangungot's Tiyanak",2339,1,.@label$;
+ areamonster .@map$,75,45,77,47,"Bangungot's Tiyanak",2339,1,.@label$;
+ areamonster .@map$,71,47,73,49,"Bangungot's Mangkukulam",2339,1,.@label$;
+ areamonster .@map$,75,47,77,49,"Bangungot's Tiyanak",2340,1,.@label$;
+ areamonster .@map$,71,49,73,51,"Bangungot's Tiyanak",2340,1,.@label$;
+ areamonster .@map$,73,49,75,51,"Bangungot's Tiyanak",2340,1,.@label$;
+ areamonster .@map$,75,49,77,51,"Bangungot's Tiyanak",2340,1,.@label$;
+ end;
+OnEnable5:
+ set .@map$, instance_mapname("1@ma_h");
+ set .@label$, instance_npcname("#Summon Ward Mob")+"::OnMyMobDead";
+ areamonster .@map$,93,77,95,79,"Bangungot's Tiyanak",2340,1,.@label$;
+ areamonster .@map$,95,77,97,79,"Bangungot's Tiyanak",2340,1,.@label$;
+ areamonster .@map$,97,77,99,79,"Bangungot's Tiyanak",2340,1,.@label$;
+ areamonster .@map$,93,79,95,81,"Bangungot's Tiyanak",2340,1,.@label$;
+ areamonster .@map$,95,79,97,81,"Bangungot's Mangkukulam",2339,1,.@label$;
+ areamonster .@map$,93,81,95,83,"Bangungot's Tiyanak",2339,1,.@label$;
+ areamonster .@map$,95,81,97,83,"Bangungot's Tiyanak",2339,1,.@label$;
+ end;
+OnEnable6:
+ set .@map$, instance_mapname("1@ma_h");
+ set .@label$, instance_npcname("#Summon Ward Mob")+"::OnMyMobDead";
+ areamonster .@map$,93,43,95,45,"Bangungot's Tiyanak",2339,1,.@label$;
+ areamonster .@map$,95,43,97,45,"Bangungot's Tiyanak",2339,1,.@label$;
+ areamonster .@map$,91,45,93,47,"Bangungot's Mangkukulam",2339,1,.@label$;
+ areamonster .@map$,95,45,97,47,"Bangungot's Tiyanak",2340,1,.@label$;
+ areamonster .@map$,91,47,93,49,"Bangungot's Tiyanak",2340,1,.@label$;
+ areamonster .@map$,93,47,95,49,"Bangungot's Tiyanak",2340,1,.@label$;
+ areamonster .@map$,95,47,97,49,"Bangungot's Tiyanak",2340,1,.@label$;
+ end;
+OnEnable7:
+ killmonster instance_mapname("1@ma_h"),instance_npcname("#Summon Ward Mob")+"::OnMyMobDead";
+ end;
+OnMyMobDead:
+ initnpctimer;
+ end;
+OnTimer1000:
+ if (mobcount(instance_mapname("1@ma_h"),instance_npcname("#Summon Ward Mob")+"::OnMyMobDead") < 1) {
+ donpcevent instance_npcname("#Boss Room Entry_2")+"::OnEnable";
+ donpcevent instance_npcname("#Boss Room Entry")+"::OnEnableEntry";
+ donpcevent instance_npcname("#Boss Room Entry_time")+"::OnStopTimer";
+ }
+ stopnpctimer;
+ end;
+}
+
+1@ma_h,118,64,0 script #Summon Ward Mob_time HIDDEN_WARP_NPC,{ //4,4
+ end;
+OnInstanceInit:
+ disablenpc instance_npcname("#Summon Ward Mob_time");
+ end;
+OnEnable:
+ initnpctimer;
+ disablenpc instance_npcname("#Summon Ward Mob");
+ end;
+OnTimer2000:
+ mapannounce instance_mapname("1@ma_h"),"Bangungot: My spirit will be with your cursed body...",bc_map,"0xFF82FF";
+ end;
+OnTimer4000:
+ mapannounce instance_mapname("1@ma_h"),"Bangungot: My inferiors...!! Go!! Go torment the patients in the wards!!",bc_map,"0xFF82FF";
+ end;
+OnTimer6000:
+ mapannounce instance_mapname("1@ma_h"),"- Bangungot's inferiors are bothering patients!! If you don't slay them all, Bangungot will be stronger. -",bc_map,"0xFF8200";
+ end;
+OnTimer10000:
+ setarray .@npc$[1],
+ "Moaning Patient","Screaming Patient","Patient in Pain","Passed Out Patient","Patient with Nightmare","Sick Looking Patient",
+ "Horrified Patient","Patient in Sorrow","Suffering Patient","Wriggling Patient","Patient in Cold Sweat","Howling Patient";
+ enablenpc instance_npcname("#Summon Ward Mob");
+ set .@rand, rand(1,6);
+ donpcevent instance_npcname("#Summon Ward Mob")+"::OnEnable"+.@rand;
+ set .@id, (.@rand*2)-rand(2);
+ donpcevent instance_npcname(.@npc$[.@id]+"#"+.@id)+"::OnEnable";
+ stopnpctimer;
+ end;
+}
+
+1@ma_h,112,177,0 script #Summon Pillar HIDDEN_WARP_NPC,{
+ end;
+OnInstanceInit:
+ disablenpc instance_npcname("#Summon Pillar");
+ end;
+OnEnable1:
+ enablenpc instance_npcname("#Summon Pillar");
+ donpcevent instance_npcname("#Boss Room Entry_time")+"::OnStopTimer";
+ donpcevent instance_npcname("#Summon Pillar_time")+"::OnEnable";
+ monster instance_mapname("1@ma_h"),131,157,"Pillar of Spirit",2327,1,instance_npcname("#Summon Pillar")+"::OnMyMobDead";
+ end;
+OnEnable3:
+ enablenpc instance_npcname("#Boss Room Exit");
+ disablenpc instance_npcname("#Summon Pillar");
+ end;
+OnReset:
+ killmonster instance_mapname("1@ma_h"),instance_npcname("#Summon Pillar")+"::OnMyMobDead";
+ end;
+OnMyMobDead:
+ initnpctimer;
+ end;
+OnTimer1000:
+ set .@map$, instance_mapname("1@ma_h");
+ if (mobcount(.@map$,instance_npcname("#Summon Pillar")+"::OnMyMobDead") < 1) {
+ donpcevent instance_npcname("#Summon Pillar_time")+"::OnStopTimer";
+ donpcevent instance_npcname("#Summon Pillar")+"::OnEnable3";
+ donpcevent instance_npcname("#Boss Room Entry")+"::OnReset";
+ mapannounce .@map$,"Bangungot: Oh....cannot believe that I lost...",bc_map,"0xFF4500";
+ mapannounce .@map$,"Bangungot: But don't think this is the end!!",bc_map,"0xFF4500";
+ mapannounce .@map$,"Bangungot: I WILL BE BACK!!!!!",bc_map,"0xFF4500";
+ }
+ stopnpctimer;
+ end;
+}
+
+1@ma_h,112,178,0 script #Summon Pillar_time HIDDEN_WARP_NPC,{
+ end;
+OnInstanceInit:
+ disablenpc instance_npcname("#Summon Pillar_time");
+ end;
+OnEnable:
+ initnpctimer;
+ end;
+OnStopTimer:
+ stopnpctimer;
+ end;
+OnTimer1000:
+ mapannounce instance_mapname("1@ma_h"),"- Bangungot's Pillar of Spirit is curing Bangungot. If you don't hunt it now, he will fully recover!! -",bc_map,"0xFF8200";
+ specialeffect EF_MAPPILLAR2,AREA,instance_npcname("#Patternwarp45");
+ end;
+OnTimer7000:
+ mapannounce instance_mapname("1@ma_h"),"Bangungot: I never die!!!!",bc_map,"0xFF82FF";
+ specialeffect EF_MAPPILLAR2,AREA,instance_npcname("#Patternwarp45");
+ end;
+OnTimer14000:
+ mapannounce instance_mapname("1@ma_h"),"Bangungot: If you dare, kill me!! I will revive soon!!!",bc_map,"0xFF82FF";
+ specialeffect EF_MAPPILLAR2,AREA,instance_npcname("#Patternwarp45");
+ end;
+OnTimer21000:
+ mapannounce instance_mapname("1@ma_h"),"Bangungot: I cannot die this way...!!!!",bc_map,"0xFF82FF";
+ specialeffect EF_MAPPILLAR2,AREA,instance_npcname("#Patternwarp45");
+ end;
+OnTimer30000:
+ donpcevent instance_npcname("#Summon Pillar")+"::OnReset";
+ end;
+OnTimer31000:
+ mapannounce instance_mapname("1@ma_h"),"Bangungot: Hahahahaha!! I'm back with the power from the pillar of spirit!!!",bc_map,"0xFF82FF";
+ donpcevent instance_npcname("#Summon Pillar")+"::OnReset";
+ end;
+OnTimer36000:
+ donpcevent instance_npcname("#Boss Room Entry")+"::OnEnableEntry";
+ donpcevent instance_npcname("#Summon Boss")+"::OnEnable";
+ stopnpctimer;
+ end;
+}
+
+1@ma_h,118,171,0 script #Boss Room Entry_a HIDDEN_WARP_NPC,10,10,{
+ end;
+OnInstanceInit:
+ disablenpc instance_npcname(strnpcinfo(0));
+ end;
+OnTouch:
+ specialeffect EF_GHOST;
+ donpcevent instance_npcname("#Boss Room Entry")+"::OnDisableEntry";
+ donpcevent instance_npcname("#Boss Room Entry_time")+"::OnEnable";
+ end;
+}
+1@ma_h,132,171,0 duplicate(#Boss Room Entry_a) #Boss Room Entry_b HIDDEN_WARP_NPC,10,10
+1@ma_h,147,171,0 duplicate(#Boss Room Entry_a) #Boss Room Entry_c HIDDEN_WARP_NPC,10,10
+1@ma_h,118,157,0 duplicate(#Boss Room Entry_a) #Boss Room Entry_d HIDDEN_WARP_NPC,10,10
+1@ma_h,132,157,0 duplicate(#Boss Room Entry_a) #Boss Room Entry_e HIDDEN_WARP_NPC,10,10
+1@ma_h,147,157,0 duplicate(#Boss Room Entry_a) #Boss Room Entry_f HIDDEN_WARP_NPC,10,10
+1@ma_h,118,143,0 duplicate(#Boss Room Entry_a) #Boss Room Entry_g HIDDEN_WARP_NPC,10,10
+1@ma_h,132,143,0 duplicate(#Boss Room Entry_a) #Boss Room Entry_h HIDDEN_WARP_NPC,10,10
+
+1@ma_h,131,62,0 script #Boss Effect HIDDEN_WARP_NPC,{ //4,4
+ end;
+OnInstanceInit:
+ disablenpc instance_npcname("#Boss Effect");
+ initnpctimer;
+ end;
+OnTimer3000:
+ specialeffect EF_BARRIER;
+ stopnpctimer;
+ initnpctimer;
+ end;
+}
+
+1@ma_h,43,86,4 script Moaning Patient#1 4_F_PATIENT,{
+ end;
+OnInstanceInit:
+ monster instance_mapname("1@ma_h"),131,62,"Bangungot",2318,1;
+ end;
+OnEnable:
+ mapannounce instance_mapname("1@ma_h"),"Moaning Patient: aaawwww....",bc_map,"0xFF0000";
+ initnpctimer;
+ end;
+OnTimer5000:
+OnTimer8000:
+OnTimer11000:
+OnTimer14000:
+OnTimer17000:
+OnTimer20000:
+OnTimer23000:
+OnTimer26000:
+ specialeffect EF_POTION_BERSERK;
+ specialeffect EF_CURSEATTACK;
+ end;
+OnTimer30000:
+ specialeffect EF_POTION_BERSERK;
+ specialeffect EF_CURSEATTACK;
+ stopnpctimer;
+ end;
+}
+
+1@ma_h,60,87,4 script Screaming Patient#2 4_M_PATIENT,{
+ end;
+OnEnable:
+ switch(atoi(strnpcinfo(2))) {
+ case 2: set .@str$,"Screaming Patient: Aaaaargh!!"; break;
+ case 3: set .@str$,"Patient in Pain: Oooooowwww!! It's killing me!!!"; break;
+ case 4: set .@str$,"Passed Out Patient: ........"; break;
+ case 5: set .@str$,"Patient with Nightmare: Help~!!! Save me!!!"; break;
+ case 6: set .@str$,"Sick Looking Patient: Hu..a...aaah.."; break;
+ case 7: set .@str$,"Horrified Patient: Get away!! Please...."; break;
+ case 8: set .@str$,"Patient in Sorrow: crying and crying......"; break;
+ case 9: set .@str$,"Suffering Patient: Stop... please..."; break;
+ case 10: set .@str$,"Wriggling Patient: awwww..."; break;
+ case 11: set .@str$,"Patient in Cold Sweat: Help.....help...."; break;
+ case 12: set .@str$,"Howling Patient: aaaaahhhhhhhhhh!!"; break;
+ }
+ mapannounce instance_mapname("1@ma_h"),.@str$,bc_map,"0xFF0000";
+ initnpctimer;
+ end;
+OnTimer5000:
+OnTimer8000:
+OnTimer11000:
+OnTimer14000:
+OnTimer17000:
+OnTimer20000:
+OnTimer23000:
+OnTimer26000:
+ specialeffect EF_POTION_BERSERK;
+ specialeffect EF_CURSEATTACK;
+ end;
+OnTimer30000:
+ specialeffect EF_POTION_BERSERK;
+ specialeffect EF_CURSEATTACK;
+ stopnpctimer;
+ end;
+}
+1@ma_h,60,39,7 duplicate(Screaming Patient#2) Patient in Pain#3 4_F_PATIENT
+1@ma_h,43,39,7 duplicate(Screaming Patient#2) Passed Out Patient#4 4_M_PATIENT
+1@ma_h,77,86,4 duplicate(Screaming Patient#2) Patient with Nightmare#5 4_F_PATIENT
+1@ma_h,69,87,4 duplicate(Screaming Patient#2) Sick Looking Patient#6 4_M_PATIENT
+1@ma_h,73,39,7 duplicate(Screaming Patient#2) Horrified Patient#7 4_F_PATIENT
+1@ma_h,65,51,7 duplicate(Screaming Patient#2) Patient in Sorrow#8 4_M_PATIENT
+1@ma_h,87,86,4 duplicate(Screaming Patient#2) Suffering Patient#9 4_F_PATIENT
+1@ma_h,104,86,4 duplicate(Screaming Patient#2) Wriggling Patient#10 4_M_PATIENT
+1@ma_h,99,39,7 duplicate(Screaming Patient#2) Patient in Cold Sweat#11 4_F_PATIENT
+1@ma_h,87,39,7 duplicate(Screaming Patient#2) Howling Patient#12 4_M_PATIENT
+
+1@ma_h,43,181,4 script Moaning Patient#b 4_F_PATIENT,{ end; }
+1@ma_h,60,182,4 script Screaming Patient#b 4_M_PATIENT,{ end; }
+1@ma_h,60,132,7 script Patient in Pain#b 4_F_PATIENT,{ end; }
+1@ma_h,43,132,7 script Passed Out Patient#b 4_M_PATIENT,{ end; }
+1@ma_h,77,182,4 script Patient with Nightmare#b 4_F_PATIENT,{ end; }
+1@ma_h,69,182,4 script Sick Looking Patient#b 4_M_PATIENT,{ end; }
+1@ma_h,73,132,7 script Horrified Patient#b 4_F_PATIENT,{ end; }
+1@ma_h,65,144,7 script Patient in Sorrow#b 4_M_PATIENT,{ end; }
+1@ma_h,87,181,4 script Suffering Patient#b 4_F_PATIENT,{ end; }
+1@ma_h,104,181,4 script Wriggling Patient#b 4_M_PATIENT,{ end; }
+1@ma_h,99,132,7 script Patient in Cold Sweat#b 4_F_PATIENT,{ end; }
+1@ma_h,87,132,7 script Howling Patient#b 4_M_PATIENT,{ end; }
+
+// Warp Portals
+//============================================================
+1@ma_h,35,156,0 warp #Boss Room Exit 2,2,ma_dun01,150,9
+1@ma_h,105,157,0 warp #Boss Room Door 2,2,1@ma_h,116,157
+1@ma_h,112,157,0 warp #Boss Room Door1 2,2,1@ma_h,100,157
+1@ma_h,104,63,0 warp #Boss Room Door2 2,2,1@ma_h,117,63
+1@ma_h,112,63,0 warp #Boss Room Door3 2,2,1@ma_h,100,63
+1@ma_h,36,157,0 warp #Patternwarp1 7,7,1@ma_h,117,63
+1@ma_h,46,157,0 warp #Patternwarp2 7,7,1@ma_h,117,63
+1@ma_h,57,157,0 warp #Patternwarp3 7,7,1@ma_h,117,63
+1@ma_h,67,157,0 warp #Patternwarp4 7,7,1@ma_h,117,63
+1@ma_h,79,157,0 warp #Patternwarp5 7,7,1@ma_h,117,63
+1@ma_h,89,157,0 warp #Patternwarp6 7,7,1@ma_h,117,63
+1@ma_h,100,157,0 warp #Patternwarp7 7,7,1@ma_h,117,63
+1@ma_h,51,173,0 warp #Patternwarp8 10,10,1@ma_h,117,63
+1@ma_h,52,140,0 warp #Patternwarp34 10,10,1@ma_h,117,63
+1@ma_h,73,173,0 warp #Patternwarp35 10,10,1@ma_h,117,63
+1@ma_h,73,140,0 warp #Patternwarp36 10,10,1@ma_h,117,63
+1@ma_h,95,173,0 warp #Patternwarp37 10,10,1@ma_h,117,63
+1@ma_h,95,140,0 warp #Patternwarp38 10,10,1@ma_h,117,63
+//1@ma_h,70,170,0 warp #Patternwarp39 10,10,1@ma_h,117,63
+//1@ma_h,77,169,0 warp #Patternwarp40 10,10,1@ma_h,117,63
+1@ma_h,117,171,0 warp #Patternwarp41 10,10,1@ma_h,117,63
+1@ma_h,131,171,0 warp #Patternwarp42 10,10,1@ma_h,117,63
+1@ma_h,146,171,0 warp #Patternwarp43 10,10,1@ma_h,117,63
+1@ma_h,117,157,0 warp #Patternwarp44 10,10,1@ma_h,117,63
+1@ma_h,131,157,0 warp #Patternwarp45 10,10,1@ma_h,117,63
+1@ma_h,146,157,0 warp #Patternwarp46 10,10,1@ma_h,117,63
+1@ma_h,117,143,0 warp #Patternwarp47 10,10,1@ma_h,117,63
+1@ma_h,131,143,0 warp #Patternwarp48 10,10,1@ma_h,117,63
+1@ma_h,146,143,0 warp #Patternwarp49 10,10,1@ma_h,117,63
+1@ma_h,36,63,0 warp #Patternwarp10 7,7,1@ma_h,116,157
+1@ma_h,46,63,0 warp #Patternwarp11 7,7,1@ma_h,116,157
+1@ma_h,56,63,0 warp #Patternwarp12 7,7,1@ma_h,116,157
+1@ma_h,67,63,0 warp #Patternwarp13 7,7,1@ma_h,116,157
+1@ma_h,78,63,0 warp #Patternwarp14 7,7,1@ma_h,116,157
+1@ma_h,89,63,0 warp #Patternwarp15 7,7,1@ma_h,116,157
+1@ma_h,100,63,0 warp #Patternwarp16 7,7,1@ma_h,116,157
+1@ma_h,51,79,0 warp #Patternwarp17 10,10,1@ma_h,116,157
+1@ma_h,51,46,0 warp #Patternwarp18 10,10,1@ma_h,116,157
+1@ma_h,73,80,0 warp #Patternwarp19 10,10,1@ma_h,116,157
+1@ma_h,73,46,0 warp #Patternwarp20 10,10,1@ma_h,116,157
+1@ma_h,95,79,0 warp #Patternwarp21 10,10,1@ma_h,116,157
+1@ma_h,95,46,0 warp #Patternwarp22 10,10,1@ma_h,116,157
+//1@ma_h,193,82,0 warp #Patternwarp23 7,7,1@ma_h,116,157
+//1@ma_h,193,82,0 warp #Patternwarp24 7,7,1@ma_h,116,157
+1@ma_h,117,77,0 warp #Patternwarp25 10,10,1@ma_h,116,157
+1@ma_h,131,77,0 warp #Patternwarp26 10,10,1@ma_h,116,157
+1@ma_h,146,77,0 warp #Patternwarp27 10,10,1@ma_h,116,157
+1@ma_h,117,63,0 warp #Patternwarp28 10,10,1@ma_h,116,157
+1@ma_h,131,63,0 warp #Patternwarp29 10,10,1@ma_h,116,157
+1@ma_h,146,63,0 warp #Patternwarp30 10,10,1@ma_h,116,157
+1@ma_h,117,49,0 warp #Patternwarp31 10,10,1@ma_h,116,157
+1@ma_h,131,49,0 warp #Patternwarp32 10,10,1@ma_h,116,157
+1@ma_h,146,49,0 warp #Patternwarp33 10,10,1@ma_h,116,157
+
+// Disable select warps.
+// Custom, but saves processing and lines.
+1@ma_h,1,1,0 script #ma_hos_warp_init CLEAR_NPC,{
+ end;
+OnInstanceInit:
+ disablenpc instance_npcname("#Boss Room Exit");
+ disablenpc instance_npcname("#Boss Room Door");
+ disablenpc instance_npcname("#Boss Room Door1");
+ for(set .@i,1; .@i<=8; set .@i,.@i+1)
+ disablenpc instance_npcname("#Patternwarp"+.@i);
+ for(set .@i,34; .@i<=38; set .@i,.@i+1)
+ disablenpc instance_npcname("#Patternwarp"+.@i);
+ // Skip 39-40 since they're disabled in the official script.
+ for(set .@i,41; .@i<=49; set .@i,.@i+1)
+ disablenpc instance_npcname("#Patternwarp"+.@i);
+ disablenpc instance_npcname("#ma_hos_warp_init");
+ end;
+}
diff --git a/npc/re/instances/BuwayaCave.txt b/npc/re/instances/BuwayaCave.txt
new file mode 100644
index 000000000..0a26dab9c
--- /dev/null
+++ b/npc/re/instances/BuwayaCave.txt
@@ -0,0 +1,459 @@
+//===== Hercules Script ======================================
+//= Buwaya Cave
+//===== By: ==================================================
+//= Euphy
+//===== Current Version: =====================================
+//= 1.0
+//===== Description: =========================================
+//= [Official Conversion]
+//= Defeat Buwaya in his cave.
+//= Part of the "Secret in the Woods" quest.
+//===== Additional Comments: =================================
+//= 1.0 First version. [Euphy]
+//============================================================
+
+1@ma_c mapflag src4instance
+//============================================================
+ma_fild02,312,317,5 script Guard#buwaya_cave 4_MAL_SOLDIER,{
+ if (BaseLevel < 130) {
+ mes "[Guard]";
+ mes "People under ^ff0000level 130^000000";
+ mes "cannot enter this place.";
+ mes "This place is dangerous. Please go back.";
+ close;
+ }
+
+ set .@party_id,getcharid(1);
+ set .@md_name$,"Buwaya Cave";
+
+ if (!.@party_id) {
+ mes "[Guard]";
+ mes "Buwaya is dangerous.";
+ mes "Please come back after you form a";
+ mes "team with other people.";
+ close;
+ }
+ if (getcharid(0) == getpartyleader(.@party_id,2)) {
+ mes "[Guard]";
+ mes "This place is dangerous. Please go back.";
+ mes "If you dont have any business here, please go back.";
+ next;
+ while(1) {
+ switch(select("Why is it so dangerous?:I'm here to hunt down Buwaya.:End conversation.")) {
+ case 1:
+ mes "[Guard]";
+ mes "Recently, there has been a case";
+ mes "where villagers have disappeared.";
+ mes "After investigating the tracks, ";
+ mes "we found out the giant monster Buwaya";
+ mes "was responsible.";
+ next;
+ mes "[Guard]";
+ mes "Soldiers and mercenaries have been dispatched to ";
+ mes "hunt down Buwaya, but were never";
+ mes "completely successful.";
+ next;
+ mes "[Guard]";
+ mes "Buwaya is still kidnapping";
+ mes "the villagers to this day.";
+ mes "Please gather some people to get rid of Buwaya.";
+ next;
+ break;
+ case 2:
+ set .@playtime, checkquest(4229,PLAYTIME);
+ if (.@playtime == -1) {
+ // fall through
+ } else if (.@playtime == 0 || .@playtime == 1) {
+ mes "[Guard]";
+ mes "Buwaya is still hiding.";
+ mes "Even if you enter now, Buwaya will not come out. ";
+ mes "Please come back later.";
+ close;
+ } else {
+ erasequest 4229;
+ // fall through
+ }
+ set .@instance,instance_create(.@md_name$,.@party_id);
+ if (.@instance < 0) {
+ mes "[Guard]";
+ mes "Party name is... "+getpartyname(.@party_id)+".";;
+ mes "Party leader is... "+strcharinfo(0);
+ mes "^0000ff"+.@md_name$+"^000000 cannot be opened now.";
+ mes "Please try a moment later.";
+ close;
+ }
+ if (instance_attachmap("1@ma_c",.@instance) == "") {
+ mes "^0000ff"+.@md_name$+"^000000 - Reservation Failed!";
+ instance_destroy(.@instance);
+ close;
+ }
+ instance_set_timeout 3600,300,.@instance;
+ instance_init(.@instance);
+
+ mes "[Guard]";
+ mes "I will open up the tunnel to ^0000ff"+.@md_name$+"^000000.";
+ mes "I wish you good luck.";
+ close;
+ case 3:
+ mes "[Guard]";
+ mes "This place is dangerous. You cannot enter.";
+ close;
+ }
+ }
+ } else {
+ mes "[Guard]";
+ mes "Let me talk with the party leader.";
+ mes "Please call forth the leader.";
+ close;
+ }
+}
+
+ma_fild02,315,323,0 script Cave Entrance#buwaya WARPNPC,2,2,{
+ end;
+OnTouch:
+ if (BaseLevel < 130) {
+ mes "[Guard]";
+ mes "People under ^ff0000level 130^000000";
+ mes "cannot enter this place.";
+ mes "This place is dangerous. Please go back.";
+ close;
+ }
+ set .@playtime, checkquest(4229,PLAYTIME);
+ if (.@playtime == -1) {
+ // fall through
+ } else if (.@playtime == 0 || .@playtime == 1) {
+ mes "[Guard]";
+ mes "Buwaya is still hiding.";
+ mes "Even if you enter now, Buwaya will not come out.";
+ mes "Please come back later.";
+ close;
+ } else {
+ erasequest 4229;
+ // fall through
+ }
+ switch(select("Enter.:Turn back.")) {
+ case 1:
+ if( has_instance("1@ma_c") == "" ) {
+ mes "The memorial dungeon Buwaya Cave does not exist.";
+ mes "The party leader did not generate the dungeon yet.";
+ close;
+ } else {
+ mapannounce "ma_fild02",getpartyname(getcharid(1))+" party's "+strcharinfo(0)+" member began hunting Buwaya in Buwaya Cave.",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
+ setquest 4229;
+ warp "1@ma_c",35,57;
+ end;
+ }
+ case 2:
+ mes "[Guard]";
+ mes "You must value your life.";
+ mes "It is better to think carefully before you act.";
+ close;
+ }
+}
+
+1@ma_c,33,112,0 script #damage HIDDEN_WARP_NPC,7,7,{
+ end;
+OnInstanceInit:
+ initnpctimer;
+ disablenpc instance_npcname("#damage");
+ end;
+OnTimer1000:
+ enablenpc instance_npcname("#damage");
+ specialeffect EF_POISONHIT;
+ end;
+OnTimer2000:
+ stopnpctimer;
+ initnpctimer;
+ disablenpc instance_npcname("#damage");
+ end;
+OnTouch:
+ percentheal -10,-10;
+ sc_start SC_BLOODING,60000,0;
+ sc_start SC_POISON,60000,0;
+ end;
+}
+
+1@ma_c,29,110,5 script Kidnapped People#1 4_F_BARYO_OLD,{
+ mes "[Kidnapped Residents]";
+ mes "Buwaya was running around,";
+ mes "and new people got caught.";
+ mes "We will be stuck in here for the rest of our lives.";
+ next;
+ switch(select("Get me outta here!!:Ca...can't escape?")) {
+ case 1:
+ mes "[Kidnapped Residents]";
+ mes "We don't have enough power to destroy it but Buwaya has a weakness.";
+ mes "Look at the wall over there.";
+ mes "If you knock there, Buywaya will feel pain and spit you out.";
+ donpcevent instance_npcname("#box_mob_call")+"::OnEnable";
+ close2;
+ disablenpc instance_npcname("Kidnapped People#1");
+ end;
+ case 2:
+ mes "[Kidnapped People]";
+ mes "Somthing is wrong here...";
+ mes "Have you experienced this before?";
+ close;
+ }
+ end;
+OnInstanceInit:
+ disablenpc instance_npcname("Kidnapped People#1");
+ end;
+OnEnable:
+ enablenpc instance_npcname("Kidnapped People#1");
+ donpcevent instance_npcname("#box_mob_call")+"::OnDisable";
+ end;
+}
+
+1@ma_c,36,110,5 script Kidnapped People#2 4_M_BARYO_OLD,{
+ mes "[Kidnapped Residents]";
+ mes "Ahaa! I wish I had a little more power...";
+ mes "I know its weakness...";
+ next;
+ switch(select("Tell me.:Do you really know?")) {
+ case 1:
+ mes "[Kidnapped Residents]";
+ mes "Are you sure you can do it...?";
+ mes "Ok, listen carefully,";
+ mes "its weakness is...";
+ next;
+ mes "[Kidnapped Residents]";
+ mes "...behind us on the walls.";
+ sc_start SC_ATKPOTION,60000,45;
+ sc_start SC_MATKPOTION,60000,45;
+ disablenpc instance_npcname("Kidnapped People#2");
+ close;
+ case 2:
+ mes "[Kidnapped Residents]";
+ mes "WHAT?!";
+ mes "Are you ignoring me";
+ mes "because I'm captured in here?";
+ close;
+ }
+ end;
+OnInstanceInit:
+ disablenpc instance_npcname("Kidnapped People#2");
+ end;
+OnEnable:
+ enablenpc instance_npcname("Kidnapped People#2");
+ end;
+}
+
+1@ma_c,3,3,0 script #box_mob_call HIDDEN_WARP_NPC,1,1,{
+ end;
+OnInstanceInit:
+ setcell instance_mapname("1@ma_c"),30,118,35,118,cell_shootable,1; //custom
+ disablenpc instance_npcname("#box_mob_call");
+ end;
+OnEnable:
+ enablenpc instance_npcname("#box_mob_call");
+ set .@label$, instance_npcname("#box_mob_call")+"::OnMyMobDead";
+ set .@map$, instance_mapname("1@ma_c");
+ monster .@map$,30,118,"Buwaya's Weakness",2333,1,.@label$;
+ monster .@map$,35,118,"Buwaya's Weakness",2333,1,.@label$;
+ end;
+OnDisable:
+ killmonster instance_mapname("1@ma_c"),instance_npcname("#box_mob_call")+"::OnMyMobDead";
+ disablenpc instance_npcname("#box_mob_call");
+ end;
+OnMyMobDead:
+ if (mobcount(instance_mapname("1@ma_c"),instance_npcname("#box_mob_call")+"::OnMyMobDead") < 1)
+ donpcevent instance_npcname("#box_out")+"::OnEnable";
+ end;
+}
+
+1@ma_c,38,118,0 script #box_out WARPNPC,2,2,{
+OnInstanceInit:
+OnDisable:
+ disablenpc instance_npcname("#box_out");
+ end;
+OnEnable:
+ enablenpc instance_npcname("#box_out");
+ end;
+OnTouch:
+ set .@x, rand(1,20) + 97;
+ set .@y, rand(1,20) + 74;
+ warp instance_mapname("1@ma_c"),.@x,.@y;
+ end;
+}
+
+1@ma_c,97,74,0 script #box_call HIDDEN_WARP_NPC,50,50,{
+ end;
+OnInstanceInit:
+ disablenpc instance_npcname("#box_call");
+ initnpctimer;
+ end;
+OnTimer30000:
+ mapannounce instance_mapname("1@ma_c"),"Buwaya : I will put you in my treasure box!",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
+ // Should execute OnTimer33000, but client doesn't render the effect fast enough.
+ for(set .@i,1; .@i<=9; set .@i,.@i+1)
+ donpcevent instance_npcname("#yunobi"+.@i)+"::OnEnable";
+ end;
+OnTimer33000:
+ donpcevent instance_npcname("#box_out")+"::OnDisable";
+ donpcevent instance_npcname("#box_mob_call")+"::OnDisable";
+ donpcevent instance_npcname("Kidnapped People#1")+"::OnEnable";
+ donpcevent instance_npcname("Kidnapped People#2")+"::OnEnable";
+ end;
+OnTimer34000:
+ enablenpc instance_npcname("#box_call");
+ end;
+OnTimer35000:
+ stopnpctimer;
+ initnpctimer;
+ disablenpc instance_npcname("#box_call");
+ end;
+OnTouch:
+ specialeffect2 EF_GUIDEDATTACK;
+ warp instance_mapname("1@ma_c"),33,112;
+ end;
+OnDisable:
+ stopnpctimer;
+ disablenpc instance_npcname("#box_call");
+ end;
+}
+
+1@ma_c,97,74,0 script #yunobi1 HIDDEN_WARP_NPC,{
+ end;
+OnInstanceInit:
+ hideonnpc instance_npcname(strnpcinfo(0));
+ end;
+OnEnable:
+ specialeffect EF_MAPPILLAR2;
+ end;
+}
+1@ma_c,97,94,0 duplicate(#yunobi1) #yunobi2 HIDDEN_WARP_NPC
+1@ma_c,117,94,0 duplicate(#yunobi1) #yunobi3 HIDDEN_WARP_NPC
+1@ma_c,117,74,0 duplicate(#yunobi1) #yunobi4 HIDDEN_WARP_NPC
+1@ma_c,117,54,0 duplicate(#yunobi1) #yunobi5 HIDDEN_WARP_NPC
+1@ma_c,97,54,0 duplicate(#yunobi1) #yunobi6 HIDDEN_WARP_NPC
+1@ma_c,77,54,0 duplicate(#yunobi1) #yunobi7 HIDDEN_WARP_NPC
+1@ma_c,77,74,0 duplicate(#yunobi1) #yunobi8 HIDDEN_WARP_NPC
+1@ma_c,77,94,0 duplicate(#yunobi1) #yunobi9 HIDDEN_WARP_NPC
+
+1@ma_c,1,1,0 script #bunshin HIDDEN_WARP_NPC,{
+ end;
+OnInstanceInit:
+ initnpctimer;
+ end;
+OnTimer58000:
+ mapannounce instance_mapname("1@ma_c"),"Buwaya : I had enough with this, let's go till the end!",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
+ end;
+OnTimer61000:
+ mapannounce instance_mapname("1@ma_c"),"Buwaya : This is!",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
+ end;
+OnTimer62000:
+ mapannounce instance_mapname("1@ma_c"),"Buwaya : This is...MY!",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
+ end;
+OnTimer63000:
+ mapannounce instance_mapname("1@ma_c"),"Buwaya : This is...MY...Deadly!",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
+ end;
+OnTimer64000:
+ mapannounce instance_mapname("1@ma_c"),"Buwaya : This is...MY...Deadly... ATTACK!",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
+ end;
+OnTimer65000:
+ set .@label$, instance_npcname("#bunshin")+"::OnMyMobDead";
+ set .@map$, instance_mapname("1@ma_c");
+ areamonster .@map$,112,89,122,99,"Buwaya",2332,1,.@label$;
+ areamonster .@map$,112,49,122,59,"Buwaya",2332,1,.@label$;
+ areamonster .@map$,72,49,82,59,"Buwaya",2332,1,.@label$;
+ areamonster .@map$,72,89,82,99,"Buwaya",2332,1,.@label$;
+ end;
+OnTimer66000:
+ mapannounce instance_mapname("1@ma_c"),"Buwaya : Are you scared?",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
+ end;
+OnTimer105000:
+ killmonster instance_mapname("1@ma_c"),instance_npcname("#bunshin")+"::OnMyMobDead";
+ stopnpctimer;
+ initnpctimer;
+ end;
+OnMyMobDead:
+ if (mobcount(instance_mapname("1@ma_c"),instance_npcname("#bunshin")+"::OnMyMobDead") < 1) {
+ stopnpctimer;
+ initnpctimer;
+ }
+ end;
+OnDisable:
+ stopnpctimer;
+ killmonster instance_mapname("1@ma_c"),instance_npcname("#bunshin")+"::OnMyMobDead";
+ disablenpc instance_npcname("#bunshin");
+ end;
+}
+
+1@ma_c,2,2,0 script #buwaya_con HIDDEN_WARP_NPC,{
+ end;
+OnInstanceInit:
+ areamonster instance_mapname("1@ma_c"),90,67,104,81,"Buwaya",2319,1,instance_npcname("#buwaya_con")+"::OnMyMobDead";
+ end;
+OnMyMobDead:
+ set .@map$, instance_mapname("1@ma_c");
+ if (mobcount(.@map$,instance_npcname("#buwaya_con")+"::OnMyMobDead") < 1) {
+ donpcevent instance_npcname("#box_call")+"::OnDisable";
+ donpcevent instance_npcname("#bunshin")+"::OnDisable";
+ donpcevent instance_npcname("#exit_mob")+"::OnDisable";
+ donpcevent instance_npcname("#cave_out")+"::OnEnable";
+ mapannounce .@map$,"Guard : You did great work. Please hurry up and escape to the way you came in!",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
+ }
+ end;
+}
+
+1@ma_c,3,3,0 script #exit_mob HIDDEN_WARP_NPC,{
+ end;
+OnInstanceInit:
+ initnpctimer;
+ end;
+OnTimer60000:
+ set .@label$, instance_npcname("#exit_mob")+"::OnMyMobDead";
+ set .@map$, instance_mapname("1@ma_c");
+ if (mobcount(.@map$,.@label$) < 30)
+ set .@amount,10;
+ else
+ set .@amount,1;
+ areamonster .@map$,43,58,47,60,"Water Plant",2331,.@amount,.@label$;
+ areamonster .@map$,43,58,47,60,"Egg",2329,.@amount,.@label$;
+ stopnpctimer;
+ initnpctimer;
+ end;
+OnDisable:
+ stopnpctimer;
+ killmonster instance_mapname("1@ma_c"),instance_npcname("#exit_mob")+"::OnMyMobDead";
+ disablenpc instance_npcname("#exit_mob");
+ end;
+OnMyMobDead:
+ end;
+}
+
+1@ma_c,28,57,0 script #cave_out WARPNPC,2,2,{
+OnInstanceInit:
+ disablenpc instance_npcname("#cave_out");
+ end;
+OnEnable:
+ enablenpc instance_npcname("#cave_out");
+ end;
+OnTouch:
+ mes "Would like to go out?";
+ next;
+ if(select("Yes!:No, I will stay.") == 1)
+ warp "ma_fild02",315,315;
+ close;
+}
+
+1@ma_c,1,1,0 script #buwaya_spawn_mobs -1,{
+OnInstanceInit:
+ set .@map$, instance_mapname("1@ma_c");
+ areamonster .@map$,73,81,93,101,"Seaweed",2331,18;
+ areamonster .@map$,110,97,116,103,"Seaweed",2331,8;
+ areamonster .@map$,59,63,63,67,"Seaweed",2331,8;
+ areamonster .@map$,73,55,77,59,"Seaweed",2331,4;
+ areamonster .@map$,103,69,107,73,"Seaweed",2331,4;
+ areamonster .@map$,108,45,122,63,"Seaweed",2331,15;
+ areamonster .@map$,73,81,93,101,"Buwaya's Egg",2329,10;
+ areamonster .@map$,110,97,116,103,"Buwaya's Egg",2329,8;
+ areamonster .@map$,59,63,63,67,"Buwaya's Egg",2329,4;
+ areamonster .@map$,73,55,77,59,"Buwaya's Egg",2329,3;
+ areamonster .@map$,103,69,107,73,"Buwaya's Egg",2329,3;
+ areamonster .@map$,108,45,122,63,"Buwaya's Egg",2329,15;
+ monster .@map$,0,0,"Seaweed",2331,5;
+ monster .@map$,0,0,"Buwaya's Slave",2330,5;
+ end;
+}
diff --git a/npc/re/instances/HazyForest.txt b/npc/re/instances/HazyForest.txt
index cecdadd20..0c32c73c6 100644
--- a/npc/re/instances/HazyForest.txt
+++ b/npc/re/instances/HazyForest.txt
@@ -3,20 +3,22 @@
//===== By: ==================================================
//= Euphy
//===== Current Version: =====================================
-//= 1.0
-//===== Compatible With: =====================================
-//= Hercules
+//= 1.1
//===== Description: =========================================
//= [Official Conversion]
//= Cross through the Hazy Forest to reach the Bifrost.
-//= Contains the Wandering Guardian quest.
+//= Contains the "Wandering Guardian" quest.
//===== Additional Comments: =================================
//= 1.0 First version. [Euphy]
+//= 1.1 Instance system rewrite. [Euphy]
+//============================================================
+
+1@mist mapflag src4instance
//============================================================
// Instance Creation
//============================================================
-bif_fild01,158,340,5 script Laphine Soldier#mist 447,{
+bif_fild01,158,340,5 script Laphine Soldier#mist 4_M_FAIRYSOLDIER,{
set .@party_id,getcharid(1);
set .@md_name$,"Mistwood Maze";
@@ -79,71 +81,39 @@ bif_fild01,158,340,5 script Laphine Soldier#mist 447,{
next;
switch(select("Venture into the Hazy Forest.:Give up.")) {
case 1:
- set .@instance, instance_create(.@md_name$,.@party_id);
- if (.@instance >= 0) {
- if (instance_attachmap("1@mist",.@instance) != "") {
-
- instance_attach(.@instance);
- instance_set_timeout 7200,300,.@instance;
- instance_init(.@instance);
-
- donpcevent instance_npcname("#Whisper_mist", instance_id())+"::OnInstanceInit";
- donpcevent instance_npcname("Tom's Garden Tree", instance_id())+"::OnInstanceInit";
- donpcevent instance_npcname("Tomba's Garden Tree", instance_id())+"::OnInstanceInit";
- donpcevent instance_npcname("Remi's Garden Tree", instance_id())+"::OnInstanceInit";
- donpcevent instance_npcname("Tired Rem's Garden Tree", instance_id())+"::OnInstanceInit";
- donpcevent instance_npcname("Ron's Garden Tree", instance_id())+"::OnInstanceInit";
- donpcevent instance_npcname("Rover's Garden Tree", instance_id())+"::OnInstanceInit";
- donpcevent instance_npcname("Mona's Garden Tree", instance_id())+"::OnInstanceInit";
- donpcevent instance_npcname("Namon's Garden Tree", instance_id())+"::OnInstanceInit";
- donpcevent instance_npcname("Sad Neoron's Garden Tree", instance_id())+"::OnInstanceInit";
- donpcevent instance_npcname("Spyder's Garden Tree", instance_id())+"::OnInstanceInit";
- donpcevent instance_npcname("Tito's Garden Tree", instance_id())+"::OnInstanceInit";
- donpcevent instance_npcname("Pumba's Garden Tree", instance_id())+"::OnInstanceInit";
- donpcevent instance_npcname("Tete's Garden Tree", instance_id())+"::OnInstanceInit";
- donpcevent instance_npcname("The Gardeners' Tree", instance_id())+"::OnInstanceInit";
- donpcevent instance_npcname("#Dragon Herder", instance_id())+"::OnInstanceInit";
- donpcevent instance_npcname("Mysterious Young Man#mis", instance_id())+"::OnInstanceInit";
- donpcevent instance_npcname("Loki#mist", instance_id())+"::OnInstanceInit";
- donpcevent instance_npcname("Collapsed Girl#mist", instance_id())+"::OnInstanceInit";
- donpcevent instance_npcname("#Mist Mobs Respawn1", instance_id())+"::OnInstanceInit";
- donpcevent instance_npcname("#Mist Mobs Respawn2", instance_id())+"::OnInstanceInit";
- donpcevent instance_npcname("#Mist Mobs Respawn3", instance_id())+"::OnInstanceInit";
- donpcevent instance_npcname("#Mist Mobs Respawn4", instance_id())+"::OnInstanceInit";
- donpcevent instance_npcname("#Mist Mobs Respawn5", instance_id())+"::OnInstanceInit";
- donpcevent instance_npcname("#Fragments of Memory", instance_id())+"::OnInstanceInit";
- donpcevent instance_npcname("#mist_warp_init", instance_id())+"::OnInstanceInit";
-
- mes "[Laphine Soldier]";
- mes "Party Name "+getpartyname(.@party_id)+"...";
- mes "Party Leader "+strcharinfo(0)+"...";
- mes "I've got it. I've written them down on the report here.";
- next;
- mes "[Laphine Soldier]";
- mes "You'll get permission soon.";
- mes "Now go to the log tunnel, the only way to get into the Hazy Forest.";
- mes "You understand?";
- next;
- mes "[Laphine Soldier]";
- mes "We can't go against the forest,";
- mes "but maybe you humans can.";
- mes "Good luck!";
- close;
- } else
- instance_destroy(.@instance);
- }
mes "[Laphine Soldier]";
mes "Party Name "+getpartyname(.@party_id)+"...";
mes "Party Leader "+strcharinfo(0)+"...";
- mes "Hmm...";
- next;
- mes "[Laphine Soldier]";
- if (.@playtime == -1)
- mes "It's dangerous in the forest.";
- else
- mes "The atmosphere is somewhat tense in the forest.";
- mes "...Why don't you just go back today?";
- close;
+ set .@instance, instance_create(.@md_name$, .@party_id);
+ if (.@instance < 0) {
+ mes "Hmm...";
+ next;
+ mes "[Laphine Soldier]";
+ if (.@playtime == -1)
+ mes "It's dangerous in the forest.";
+ else
+ mes "The atmosphere is somewhat tense in the forest.";
+ mes "...Why don't you just go back today?";
+ close;
+ }
+ if (instance_attachmap("1@mist",.@instance) != "") {
+ instance_set_timeout 7200,300,.@instance;
+ instance_init(.@instance);
+ mes "I've got it. I've written them down on the report here.";
+ next;
+ mes "[Laphine Soldier]";
+ mes "You'll get permission soon.";
+ mes "Now go to the log tunnel, the only way to get into the Hazy Forest.";
+ mes "You understand?";
+ next;
+ mes "[Laphine Soldier]";
+ mes "We can't go against the forest,";
+ mes "but maybe you humans can.";
+ mes "Good luck!";
+ close;
+ } else {
+ instance_destroy(.@instance);
+ }
case 2:
mes "[Laphine Soldier]";
mes "Well, you've made the right decision.";
@@ -171,21 +141,12 @@ bif_fild01,158,340,5 script Laphine Soldier#mist 447,{
}
}
-bif_fild01,161,355,0 script Log Tunnel 844,{
+bif_fild01,161,355,0 script Log Tunnel CLEAR_NPC,{
mes "I see the forest through the log tunnel.";
mes "It looks like I can enter the forest through the log tunnel.";
next;
if(select("Enter the tunnel.:Give up.") == 2)
close;
- // TODO: Add official MD_Enter cases.
- if (!getcharid(1)) {
- mes "[Laphine Soldier]";
- mes "Hey, look!";
- mes "Are you going alone?";
- mes "That's impossible. Too rash.";
- mes "Team up with some friends and go together!";
- close;
- }
set .@playtime, checkquest(7211,PLAYTIME);
if (has_instance("1@mist") == "") {
if (.@playtime == 0 || .@playtime == 1) {
@@ -196,347 +157,350 @@ bif_fild01,161,355,0 script Log Tunnel 844,{
mes "The world beyond the log tunnel looks dark and suffocating.";
mes "Your instinct is screaming that this forest is dangerous.";
close;
+ } else {
+ if (checkquest(7211,PLAYTIME) == 2) erasequest 7211;
+ if (checkquest(7211,PLAYTIME) == -1) setquest 7211;
+ mapannounce "bif_fild01",getpartyname(getcharid(1))+" party's "+strcharinfo(0)+" member is entering the Mistwood Maze.",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
+ warp "1@mist",89,29;
+ close;
}
- if (.@playtime == 2) erasequest 7211;
- if (checkquest(7211,PLAYTIME) == -1) setquest 7211;
- mapannounce "bif_fild01",getpartyname(getcharid(1))+" party's "+strcharinfo(0)+" member is entering the Mistwood Maze.",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
- warp "1@mist",89,29;
- close;
}
// Instance Scripts
//============================================================
-1@mist,89,29,0 script #Whisper_mist 844,1,1,{
+1@mist,89,29,0 script #Whisper_mist CLEAR_NPC,1,1,{
end;
OnInstanceInit:
- enablenpc instance_npcname("#Whisper_mist", instance_id());
+ enablenpc instance_npcname("#Whisper_mist");
end;
OnTouch:
- disablenpc instance_npcname("#Whisper_mist", instance_id());
+ disablenpc instance_npcname("#Whisper_mist");
initnpctimer;
end;
OnTimer10000:
OnTimer20000:
- instance_announce 0,"Whisper: Who's this? Who's this!? The forest is open! Tom, Tomba, Tired Rem, Remi! Wake up!",bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
+ mapannounce instance_mapname("1@mist"),"Whisper: Who's this? Who's this!? The forest is open! Tom, Tomba, Tired Rem, Remi! Wake up!",bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
end;
OnTimer60000:
- instance_announce 0,"Loud Whisper: What are the forest keepers doing? What are the gardeners doing??",bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
+ mapannounce instance_mapname("1@mist"),"Loud Whisper: What are the forest keepers doing? What are the gardeners doing??",bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
end;
OnTimer120000:
- instance_announce 0,"Loud Whisper: Don't go out, wander around forever, and play with us!",bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
+ mapannounce instance_mapname("1@mist"),"Loud Whisper: Don't go out, wander around forever, and play with us!",bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
end;
OnTimer180000:
- instance_announce 0,"Loud Whisper: Useless, useless. Wandering around and around, you'll meet your end!",bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
+ mapannounce instance_mapname("1@mist"),"Loud Whisper: Useless, useless. Wandering around and around, you'll meet your end!",bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
stopnpctimer;
end;
}
// callfunc "F_Mora_Mist",<warp to enable>,<success message>,<fail message>{,<end flag>}
function script F_Mora_Mist {
- if (mobcount("1@mist",instance_npcname(strnpcinfo(0), instance_id())+"::OnMyMobDead") == 0) {
+ set .@map$, instance_mapname("1@mist");
+ if (mobcount(.@map$,instance_npcname(strnpcinfo(0))+"::OnMyMobDead") == 0) {
mes "Obviously no one is taking care of it.";
mes "It seems like you can chop down the garden tree.";
next;
if(select("Chop down the garden tree.:Give up.") == 2)
close;
mes "You chop down the tree, which was blocking the path of the maze, "+((getarg(3,0))?"clearing the way out of the forest.":"so now you can continue.");
- instance_announce 0,getarg(1),bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
- enablenpc instance_npcname(getarg(0), instance_id());
- disablenpc instance_npcname(strnpcinfo(0), instance_id());
+ mapannounce .@map$,getarg(1),bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
+ enablenpc instance_npcname(getarg(0));
+ disablenpc instance_npcname(strnpcinfo(0));
close;
} else
- instance_announce 0,((getarg(3,0))?getarg(2):getarg(2)+"'s Cry: Huh? Who's doing bad things to my tree?!"),bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
+ mapannounce .@map$,((getarg(3,0))?getarg(2):getarg(2)+"'s Cry: Huh? Who's doing bad things to my tree?!"),bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
end;
}
-1@mist,251,121,3 script Tom's Garden 858,{ end; }
-1@mist,247,123,0 script Tom's Garden Tree 527,{
+1@mist,251,121,3 script Tom's Garden 4_BULLETIN_BOARD2,{ end; }
+1@mist,247,123,0 script Tom's Garden Tree 4_CREEPER,{
callfunc "F_Mora_Mist",
"a25_a18-1",
"Roaring Cry: Tom's bolt is broken! Watch out, Tomba! Watch out, Tomba!",
"Tom";
end;
OnInstanceInit:
- monster "1@mist",249,120,"Tom",2136,1,instance_npcname("Tom's Garden Tree", instance_id())+"::OnMyMobDead";
+ monster instance_mapname("1@mist"),249,120,"Tom",2136,1,instance_npcname("Tom's Garden Tree")+"::OnMyMobDead";
end;
OnMyMobDead:
end;
}
-1@mist,226,95,3 script Tomba's Garden 858,{ end; }
-1@mist,225,98,0 script Tomba's Garden Tree 527,{
+1@mist,226,95,3 script Tomba's Garden 4_BULLETIN_BOARD2,{ end; }
+1@mist,225,98,0 script Tomba's Garden Tree 4_CREEPER,{
callfunc "F_Mora_Mist",
"a27-2_af1-2",
"Roaring Cry: Tomba's Garden Tree is gone with Tomba. Remi, what are you going to do now?",
"Tomba";
end;
OnInstanceInit:
- monster "1@mist",200,64,"Tomba",2136,1,instance_npcname("Tomba's Garden Tree", instance_id())+"::OnMyMobDead";
+ monster instance_mapname("1@mist"),200,64,"Tomba",2136,1,instance_npcname("Tomba's Garden Tree")+"::OnMyMobDead";
end;
OnMyMobDead:
end;
}
-1@mist,157,183,3 script Remi's Garden 858,{ end; }
-1@mist,159,184,0 script Remi's Garden Tree 527,{
+1@mist,157,183,3 script Remi's Garden 4_BULLETIN_BOARD2,{ end; }
+1@mist,159,184,0 script Remi's Garden Tree 4_CREEPER,{
callfunc "F_Mora_Mist",
"a15-2_a4-1",
"Roaring Cry: Remi, Remi's Garden Tree was chopped down- Rem, it's your turn next. Poor Rem!",
"Remi";
end;
OnInstanceInit:
- monster "1@mist",154,184,"Remi the Tired",2137,1,instance_npcname("Remi's Garden Tree", instance_id())+"::OnMyMobDead";
+ monster instance_mapname("1@mist"),154,184,"Remi the Tired",2137,1,instance_npcname("Remi's Garden Tree")+"::OnMyMobDead";
end;
OnMyMobDead:
end;
}
-1@mist,58,39,3 script Tired Rem's Garden 858,{ end; }
-1@mist,61,39,0 script Tired Rem's Garden Tree 527,{
+1@mist,58,39,3 script Tired Rem's Garden 4_BULLETIN_BOARD2,{ end; }
+1@mist,61,39,0 script Tired Rem's Garden Tree 4_CREEPER,{
callfunc "F_Mora_Mist",
"a4-2_a11",
"Rem's Desperate Cry: Argh... Rem will sleep. Rem will sleep now, and won't wake up forever!",
"Rem";
end;
OnInstanceInit:
- monster "1@mist",101,107,"Rem the Gardener",2136,1,instance_npcname("Tired Rem's Garden Tree", instance_id())+"::OnMyMobDead";
+ monster instance_mapname("1@mist"),101,107,"Rem the Gardener",2136,1,instance_npcname("Tired Rem's Garden Tree")+"::OnMyMobDead";
end;
OnTimer10000:
- instance_announce 0,"Whisper of the Forest: So Tom's, Tomba's, Remi's, and Rem's garden trees were all chopped down?",bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
+ mapannounce instance_mapname("1@mist"),"Whisper of the Forest: So Tom's, Tomba's, Remi's, and Rem's garden trees were all chopped down?",bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
end;
OnTimer15000:
- instance_announce 0,"Whisper of the Forest: Trouble, trouble, we're in big trouble.",bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
+ mapannounce instance_mapname("1@mist"),"Whisper of the Forest: Trouble, trouble, we're in big trouble.",bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
end;
OnTimer20000:
- instance_announce 0,"Loud Whisper: They've come to the second deepest forest. Gardeners of the deep forest, watch out!",bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
+ mapannounce instance_mapname("1@mist"),"Loud Whisper: They've come to the second deepest forest. Gardeners of the deep forest, watch out!",bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
stopnpctimer;
end;
OnMyMobDead:
end;
}
-1@mist,227,179,3 script Ron's Garden 858,{ end; }
-1@mist,230,179,0 script Ron's Garden Tree 527,{
+1@mist,227,179,3 script Ron's Garden 4_BULLETIN_BOARD2,{ end; }
+1@mist,230,179,0 script Ron's Garden Tree 4_CREEPER,{
callfunc "F_Mora_Mist",
"b4-2_b2",
"Ron the Gardener's Cry: I'm getting off work! Don't look for Ron, the second gardener, any more!!",
"Ron";
end;
OnInstanceInit:
- monster "1@mist",227,178,"Ron the Gardener",2134,1,instance_npcname("Ron's Garden Tree", instance_id())+"::OnMyMobDead";
+ monster instance_mapname("1@mist"),227,178,"Ron the Gardener",2134,1,instance_npcname("Ron's Garden Tree")+"::OnMyMobDead";
end;
OnMyMobDead:
end;
}
-1@mist,288,226,3 script Rover's Garden 858,{ end; }
-1@mist,285,225,0 script Rover's Garden Tree 527,{
+1@mist,288,226,3 script Rover's Garden 4_BULLETIN_BOARD2,{ end; }
+1@mist,285,225,0 script Rover's Garden Tree 4_CREEPER,{
callfunc "F_Mora_Mist",
"b7_bf1-2",
"Roaring Whisper: Ron's, and Rover's trees were chopped down as well. Who is forcing his way into the forest? Who is it?",
"Rover";
end;
OnInstanceInit:
- monster "1@mist",304,237,"Rover the Strutter",2134,1,instance_npcname("Rover's Garden Tree", instance_id())+"::OnMyMobDead";
+ monster instance_mapname("1@mist"),304,237,"Rover the Strutter",2134,1,instance_npcname("Rover's Garden Tree")+"::OnMyMobDead";
end;
OnMyMobDead:
end;
}
-1@mist,159,318,3 script Mona's Garden 858,{ end; }
-1@mist,161,316,0 script Mona's Garden Tree 527,{
+1@mist,159,318,3 script Mona's Garden 4_BULLETIN_BOARD2,{ end; }
+1@mist,161,316,0 script Mona's Garden Tree 4_CREEPER,{
callfunc "F_Mora_Mist",
"b31_b16",
"Clamoring Whisper: Mona the Seedseeker's garden tree is gone! Mona is gone too! Namon will be okay, because he is brave, right? Namon, are you okay?",
"Mona";
end;
OnInstanceInit:
- monster "1@mist",239,253,"Mona the Seedseeker",2133,1,instance_npcname("Mona's Garden Tree", instance_id())+"::OnMyMobDead";
+ monster instance_mapname("1@mist"),239,253,"Mona the Seedseeker",2133,1,instance_npcname("Mona's Garden Tree")+"::OnMyMobDead";
end;
OnMyMobDead:
end;
}
-1@mist,205,300,3 script Namon's Garden 858,{ end; }
-1@mist,204,299,0 script Namon's Garden Tree 527,{
+1@mist,205,300,3 script Namon's Garden 4_BULLETIN_BOARD2,{ end; }
+1@mist,204,299,0 script Namon's Garden Tree 4_CREEPER,{
callfunc "F_Mora_Mist",
"b27-3_bN-1",
"Clamoring Whisper: Brave Namon met his fate not so bravely... *giggle*",
"Namon";
end;
OnInstanceInit:
- monster "1@mist",89,173,"Brave Namon",2134,1,instance_npcname("Namon's Garden Tree", instance_id())+"::OnMyMobDead";
+ monster instance_mapname("1@mist"),89,173,"Brave Namon",2134,1,instance_npcname("Namon's Garden Tree")+"::OnMyMobDead";
end;
OnMyMobDead:
end;
}
-1@mist,219,232,3 script Sad Neoron's Garden 858,{ end; }
-1@mist,221,236,0 script Sad Neoron's Garden Tree 527,{
+1@mist,219,232,3 script Sad Neoron's Garden 4_BULLETIN_BOARD2,{ end; }
+1@mist,221,236,0 script Sad Neoron's Garden Tree 4_CREEPER,{
callfunc "F_Mora_Mist",
"b6-1_b33",
"Lamenting Whisper: Sad Neoron has become cheerful! Spyder the Superior Spider, what are you going to do? What are you going to do now?",
"Neoron";
end;
OnInstanceInit:
- monster "1@mist",143,265,"Sad Neoron",2137,1,instance_npcname("Sad Neoron's Garden Tree", instance_id())+"::OnMyMobDead";
+ monster instance_mapname("1@mist"),143,265,"Sad Neoron",2137,1,instance_npcname("Sad Neoron's Garden Tree")+"::OnMyMobDead";
end;
OnMyMobDead:
end;
}
-1@mist,206,202,3 script Spyder's Garden 858,{ end; }
-1@mist,206,200,0 script Spyder's Garden Tree 527,{
+1@mist,206,202,3 script Spyder's Garden 4_BULLETIN_BOARD2,{ end; }
+1@mist,206,200,0 script Spyder's Garden Tree 4_CREEPER,{
callfunc "F_Mora_Mist",
"b5_b14",
"Depressed Whisper: Now it's all over with the second deepest forest. Gardeners are dying out-",
"Spyder";
end;
OnInstanceInit:
- monster "1@mist",209,200,"Spyder the Eight-Legged",2132,1,instance_npcname("Spyder's Garden Tree", instance_id())+"::OnMyMobDead";
+ monster instance_mapname("1@mist"),209,200,"Spyder the Eight-Legged",2132,1,instance_npcname("Spyder's Garden Tree")+"::OnMyMobDead";
end;
OnTimer5000:
- instance_announce 0,"Roaring Whisper: The path is about to open. The tight bolts have been removed!",bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
+ mapannounce instance_mapname("1@mist"),"Roaring Whisper: The path is about to open. The tight bolts have been removed!",bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
end;
OnTimer9000:
- instance_announce 0,"Roaring Whisper: A forest opened, another opened, and the other is going to open as well. Tito and Pumba, they are heading your way!",bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
+ mapannounce instance_mapname("1@mist"),"Roaring Whisper: A forest opened, another opened, and the other is going to open as well. Tito and Pumba, they are heading your way!",bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
end;
OnTimer13000:
- instance_announce 0,"Roaring Whisper: Where you get after wandering around, around and around, everybody you've met while wandering around, around and around,",bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
+ mapannounce instance_mapname("1@mist"),"Roaring Whisper: Where you get after wandering around, around and around, everybody you've met while wandering around, around and around,",bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
end;
OnTimer17000:
- instance_announce 0,"Roaring Whisper: all the gardeners will be waiting for you, with their clippers in their hands-!",bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
+ mapannounce instance_mapname("1@mist"),"Roaring Whisper: all the gardeners will be waiting for you, with their clippers in their hands-!",bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
stopnpctimer;
end;
OnMyMobDead:
end;
}
-1@mist,96,288,3 script Tito's Garden 858,{ end; }
-1@mist,95,287,0 script Tito's Garden Tree 527,{
+1@mist,96,288,3 script Tito's Garden 4_BULLETIN_BOARD2,{ end; }
+1@mist,95,287,0 script Tito's Garden Tree 4_CREEPER,{
callfunc "F_Mora_Mist",
"c1_c13-1",
"Tito's Cry: *sob* *sob* Tito's gone now! Tito's done for! Boo hoo!!",
"Tito";
end;
OnInstanceInit:
- monster "1@mist",264,291,"Tito the Flipper",2133,1,instance_npcname("Tito's Garden Tree", instance_id())+"::OnMyMobDead";
+ monster instance_mapname("1@mist"),264,291,"Tito the Flipper",2133,1,instance_npcname("Tito's Garden Tree")+"::OnMyMobDead";
end;
OnMyMobDead:
end;
}
-1@mist,326,325,3 script Pumba's Garden 858,{ end; }
-1@mist,324,325,0 script Pumba's Garden Tree 527,{
+1@mist,326,325,3 script Pumba's Garden 4_BULLETIN_BOARD2,{ end; }
+1@mist,324,325,0 script Pumba's Garden Tree 4_CREEPER,{
callfunc "F_Mora_Mist",
"c13-3_c4",
"Roaring Whisper: Tito the Hard Worker was defeated! Stop playing and go to work, Tete! Start working!",
"Pumba";
end;
OnInstanceInit:
- monster "1@mist",309,165,"Diligent Pumba",2134,1,instance_npcname("Pumba's Garden Tree", instance_id())+"::OnMyMobDead";
+ monster instance_mapname("1@mist"),309,165,"Diligent Pumba",2134,1,instance_npcname("Pumba's Garden Tree")+"::OnMyMobDead";
end;
OnMyMobDead:
end;
}
-1@mist,278,345,3 script Tete's Garden 858,{ end; }
-1@mist,280,344,0 script Tete's Garden Tree 527,{
+1@mist,278,345,3 script Tete's Garden 4_BULLETIN_BOARD2,{ end; }
+1@mist,280,344,0 script Tete's Garden Tree 4_CREEPER,{
callfunc "F_Mora_Mist",
"c19_c4",
"Whisper: They are strong, strong indeed. What are we going to do now? Are there any gardeners left? Are there any?",
"Tete";
end;
OnInstanceInit:
- monster "1@mist",277,343,"Carefree Tete",2136,1,instance_npcname("Tete's Garden Tree", instance_id())+"::OnMyMobDead";
+ monster instance_mapname("1@mist"),277,343,"Carefree Tete",2136,1,instance_npcname("Tete's Garden Tree")+"::OnMyMobDead";
end;
OnMyMobDead:
end;
}
-1@mist,345,186,0 script The Gardeners' Tree 527,{
+1@mist,345,186,0 script The Gardeners' Tree 4_CREEPER,{
callfunc "F_Mora_Mist",
"#to_bif02",
"Roaring Whisper: The forest will remember you! It will remember you, the one who broke the clippers of all the gardeners!",
"Gardeners: We're not dead, yet!!!!",1;
end;
OnInstanceInit:
- monster "1@mist",318,137,"Baby Tom",2136,1,instance_npcname("The Gardeners' Tree", instance_id())+"::OnMyMobDead";
- monster "1@mist",321,137,"Tomba the Baby",2136,1,instance_npcname("The Gardeners' Tree", instance_id())+"::OnMyMobDead";
- monster "1@mist",324,137,"Exhausted Remi",2137,1,instance_npcname("The Gardeners' Tree", instance_id())+"::OnMyMobDead";
- monster "1@mist",319,135,"Rem the Exhausted",2136,1,instance_npcname("The Gardeners' Tree", instance_id())+"::OnMyMobDead";
- monster "1@mist",323,135,"Ron the Ex-Gardener",2134,1,instance_npcname("The Gardeners' Tree", instance_id())+"::OnMyMobDead";
- monster "1@mist",320,133,"Rover the Strutter",2134,1,instance_npcname("The Gardeners' Tree", instance_id())+"::OnMyMobDead";
- monster "1@mist",323,133,"Mona the Seedpicker",2133,1,instance_npcname("The Gardeners' Tree", instance_id())+"::OnMyMobDead";
- monster "1@mist",317,132,"Timid Namon",2134,1,instance_npcname("The Gardeners' Tree", instance_id())+"::OnMyMobDead";
- monster "1@mist",326,132,"Indifferent Neoron",2137,1,instance_npcname("The Gardeners' Tree", instance_id())+"::OnMyMobDead";
- monster "1@mist",317,129,"Spyder the Seven-Legged",2132,1,instance_npcname("The Gardeners' Tree", instance_id())+"::OnMyMobDead";
- monster "1@mist",320,129,"Tito the Flapper",2133,1,instance_npcname("The Gardeners' Tree", instance_id())+"::OnMyMobDead";
- monster "1@mist",324,129,"Lazy Pumba",2134,1,instance_npcname("The Gardeners' Tree", instance_id())+"::OnMyMobDead";
- monster "1@mist",327,129,"Careless Tete",2136,1,instance_npcname("The Gardeners' Tree", instance_id())+"::OnMyMobDead";
+ set .@map$, instance_mapname("1@mist");
+ monster .@map$,318,137,"Baby Tom",2136,1,instance_npcname("The Gardeners' Tree")+"::OnMyMobDead";
+ monster .@map$,321,137,"Tomba the Baby",2136,1,instance_npcname("The Gardeners' Tree")+"::OnMyMobDead";
+ monster .@map$,324,137,"Exhausted Remi",2137,1,instance_npcname("The Gardeners' Tree")+"::OnMyMobDead";
+ monster .@map$,319,135,"Rem the Exhausted",2136,1,instance_npcname("The Gardeners' Tree")+"::OnMyMobDead";
+ monster .@map$,323,135,"Ron the Ex-Gardener",2134,1,instance_npcname("The Gardeners' Tree")+"::OnMyMobDead";
+ monster .@map$,320,133,"Rover the Strutter",2134,1,instance_npcname("The Gardeners' Tree")+"::OnMyMobDead";
+ monster .@map$,323,133,"Mona the Seedpicker",2133,1,instance_npcname("The Gardeners' Tree")+"::OnMyMobDead";
+ monster .@map$,317,132,"Timid Namon",2134,1,instance_npcname("The Gardeners' Tree")+"::OnMyMobDead";
+ monster .@map$,326,132,"Indifferent Neoron",2137,1,instance_npcname("The Gardeners' Tree")+"::OnMyMobDead";
+ monster .@map$,317,129,"Spyder the Seven-Legged",2132,1,instance_npcname("The Gardeners' Tree")+"::OnMyMobDead";
+ monster .@map$,320,129,"Tito the Flapper",2133,1,instance_npcname("The Gardeners' Tree")+"::OnMyMobDead";
+ monster .@map$,324,129,"Lazy Pumba",2134,1,instance_npcname("The Gardeners' Tree")+"::OnMyMobDead";
+ monster .@map$,327,129,"Careless Tete",2136,1,instance_npcname("The Gardeners' Tree")+"::OnMyMobDead";
end;
OnMyMobDead:
end;
}
-1@mist,73,290,0 script Mysterious Flower#1 844,{
+1@mist,73,290,0 script Mysterious Flower#1 CLEAR_NPC,{
specialeffect EF_LEVEL99_4;
- disablenpc instance_npcname(strnpcinfo(0), instance_id());
+ disablenpc instance_npcname(strnpcinfo(0));
getitem 12561,1; //Mysterious_Seed
end;
}
-1@mist,69,295,0 duplicate(Mysterious Flower#1) Mysterious Flower#2 844
-1@mist,62,291,0 duplicate(Mysterious Flower#1) Mysterious Flower#3 844
-1@mist,54,293,0 duplicate(Mysterious Flower#1) Mysterious Flower#4 844
-1@mist,48,286,0 duplicate(Mysterious Flower#1) Mysterious Flower#5 844
-1@mist,54,277,0 duplicate(Mysterious Flower#1) Mysterious Flower#6 844
-1@mist,52,270,0 duplicate(Mysterious Flower#1) Mysterious Flower#7 844
-1@mist,62,268,0 duplicate(Mysterious Flower#1) Mysterious Flower#8 844
-1@mist,72,271,0 duplicate(Mysterious Flower#1) Mysterious Flower#9 844
-1@mist,72,276,0 duplicate(Mysterious Flower#1) Mysterious Flower#10 844
-1@mist,118,194,0 duplicate(Mysterious Flower#1) Mysterious Flower#11 844
-1@mist,122,204,0 duplicate(Mysterious Flower#1) Mysterious Flower#12 844
-1@mist,137,209,0 duplicate(Mysterious Flower#1) Mysterious Flower#13 844
-1@mist,144,203,0 duplicate(Mysterious Flower#1) Mysterious Flower#14 844
-1@mist,146,186,0 duplicate(Mysterious Flower#1) Mysterious Flower#15 844
-1@mist,142,182,0 duplicate(Mysterious Flower#1) Mysterious Flower#16 844
-1@mist,132,179,0 duplicate(Mysterious Flower#1) Mysterious Flower#17 844
-1@mist,123,184,0 duplicate(Mysterious Flower#1) Mysterious Flower#18 844
-1@mist,194,118,0 duplicate(Mysterious Flower#1) Mysterious Flower#19 844
-1@mist,188,109,0 duplicate(Mysterious Flower#1) Mysterious Flower#20 844
-1@mist,193,94,0 duplicate(Mysterious Flower#1) Mysterious Flower#21 844
-1@mist,205,92,0 duplicate(Mysterious Flower#1) Mysterious Flower#22 844
-1@mist,213,96,0 duplicate(Mysterious Flower#1) Mysterious Flower#23 844
-1@mist,216,103,0 duplicate(Mysterious Flower#1) Mysterious Flower#24 844
-1@mist,212,116,0 duplicate(Mysterious Flower#1) Mysterious Flower#25 844
-1@mist,207,120,0 duplicate(Mysterious Flower#1) Mysterious Flower#26 844
-1@mist,169,310,0 duplicate(Mysterious Flower#1) Mysterious Flower#27 844
-1@mist,172,296,0 duplicate(Mysterious Flower#1) Mysterious Flower#28 844
-1@mist,191,301,0 duplicate(Mysterious Flower#1) Mysterious Flower#30 844
-1@mist,195,301,0 duplicate(Mysterious Flower#1) Mysterious Flower#31 844
-1@mist,192,316,0 duplicate(Mysterious Flower#1) Mysterious Flower#32 844
-1@mist,187,320,0 duplicate(Mysterious Flower#1) Mysterious Flower#33 844
-1@mist,174,318,0 duplicate(Mysterious Flower#1) Mysterious Flower#34 844
-1@mist,308,136,0 duplicate(Mysterious Flower#1) Mysterious Flower#35 844
-1@mist,314,122,0 duplicate(Mysterious Flower#1) Mysterious Flower#36 844
-1@mist,321,118,0 duplicate(Mysterious Flower#1) Mysterious Flower#37 844
-1@mist,331,123,0 duplicate(Mysterious Flower#1) Mysterious Flower#38 844
-1@mist,335,126,0 duplicate(Mysterious Flower#1) Mysterious Flower#39 844
-1@mist,332,141,0 duplicate(Mysterious Flower#1) Mysterious Flower#40 844
-1@mist,328,144,0 duplicate(Mysterious Flower#1) Mysterious Flower#41 844
-1@mist,314,144,0 duplicate(Mysterious Flower#1) Mysterious Flower#42 844
-1@mist,238,224,0 duplicate(Mysterious Flower#1) Mysterious Flower#43 844
-1@mist,244,231,0 duplicate(Mysterious Flower#1) Mysterious Flower#44 844
-1@mist,257,232,0 duplicate(Mysterious Flower#1) Mysterious Flower#45 844
-1@mist,262,229,0 duplicate(Mysterious Flower#1) Mysterious Flower#46 844
-1@mist,265,216,0 duplicate(Mysterious Flower#1) Mysterious Flower#47 844
-1@mist,260,214,0 duplicate(Mysterious Flower#1) Mysterious Flower#48 844
-1@mist,252,206,0 duplicate(Mysterious Flower#1) Mysterious Flower#49 844
-1@mist,244,211,0 duplicate(Mysterious Flower#1) Mysterious Flower#50 844
+1@mist,69,295,0 duplicate(Mysterious Flower#1) Mysterious Flower#2 CLEAR_NPC
+1@mist,62,291,0 duplicate(Mysterious Flower#1) Mysterious Flower#3 CLEAR_NPC
+1@mist,54,293,0 duplicate(Mysterious Flower#1) Mysterious Flower#4 CLEAR_NPC
+1@mist,48,286,0 duplicate(Mysterious Flower#1) Mysterious Flower#5 CLEAR_NPC
+1@mist,54,277,0 duplicate(Mysterious Flower#1) Mysterious Flower#6 CLEAR_NPC
+1@mist,52,270,0 duplicate(Mysterious Flower#1) Mysterious Flower#7 CLEAR_NPC
+1@mist,62,268,0 duplicate(Mysterious Flower#1) Mysterious Flower#8 CLEAR_NPC
+1@mist,72,271,0 duplicate(Mysterious Flower#1) Mysterious Flower#9 CLEAR_NPC
+1@mist,72,276,0 duplicate(Mysterious Flower#1) Mysterious Flower#10 CLEAR_NPC
+1@mist,118,194,0 duplicate(Mysterious Flower#1) Mysterious Flower#11 CLEAR_NPC
+1@mist,122,204,0 duplicate(Mysterious Flower#1) Mysterious Flower#12 CLEAR_NPC
+1@mist,137,209,0 duplicate(Mysterious Flower#1) Mysterious Flower#13 CLEAR_NPC
+1@mist,144,203,0 duplicate(Mysterious Flower#1) Mysterious Flower#14 CLEAR_NPC
+1@mist,146,186,0 duplicate(Mysterious Flower#1) Mysterious Flower#15 CLEAR_NPC
+1@mist,142,182,0 duplicate(Mysterious Flower#1) Mysterious Flower#16 CLEAR_NPC
+1@mist,132,179,0 duplicate(Mysterious Flower#1) Mysterious Flower#17 CLEAR_NPC
+1@mist,123,184,0 duplicate(Mysterious Flower#1) Mysterious Flower#18 CLEAR_NPC
+1@mist,194,118,0 duplicate(Mysterious Flower#1) Mysterious Flower#19 CLEAR_NPC
+1@mist,188,109,0 duplicate(Mysterious Flower#1) Mysterious Flower#20 CLEAR_NPC
+1@mist,193,94,0 duplicate(Mysterious Flower#1) Mysterious Flower#21 CLEAR_NPC
+1@mist,205,92,0 duplicate(Mysterious Flower#1) Mysterious Flower#22 CLEAR_NPC
+1@mist,213,96,0 duplicate(Mysterious Flower#1) Mysterious Flower#23 CLEAR_NPC
+1@mist,216,103,0 duplicate(Mysterious Flower#1) Mysterious Flower#24 CLEAR_NPC
+1@mist,212,116,0 duplicate(Mysterious Flower#1) Mysterious Flower#25 CLEAR_NPC
+1@mist,207,120,0 duplicate(Mysterious Flower#1) Mysterious Flower#26 CLEAR_NPC
+1@mist,169,310,0 duplicate(Mysterious Flower#1) Mysterious Flower#27 CLEAR_NPC
+1@mist,172,296,0 duplicate(Mysterious Flower#1) Mysterious Flower#28 CLEAR_NPC
+1@mist,191,301,0 duplicate(Mysterious Flower#1) Mysterious Flower#30 CLEAR_NPC
+1@mist,195,301,0 duplicate(Mysterious Flower#1) Mysterious Flower#31 CLEAR_NPC
+1@mist,192,316,0 duplicate(Mysterious Flower#1) Mysterious Flower#32 CLEAR_NPC
+1@mist,187,320,0 duplicate(Mysterious Flower#1) Mysterious Flower#33 CLEAR_NPC
+1@mist,174,318,0 duplicate(Mysterious Flower#1) Mysterious Flower#34 CLEAR_NPC
+1@mist,308,136,0 duplicate(Mysterious Flower#1) Mysterious Flower#35 CLEAR_NPC
+1@mist,314,122,0 duplicate(Mysterious Flower#1) Mysterious Flower#36 CLEAR_NPC
+1@mist,321,118,0 duplicate(Mysterious Flower#1) Mysterious Flower#37 CLEAR_NPC
+1@mist,331,123,0 duplicate(Mysterious Flower#1) Mysterious Flower#38 CLEAR_NPC
+1@mist,335,126,0 duplicate(Mysterious Flower#1) Mysterious Flower#39 CLEAR_NPC
+1@mist,332,141,0 duplicate(Mysterious Flower#1) Mysterious Flower#40 CLEAR_NPC
+1@mist,328,144,0 duplicate(Mysterious Flower#1) Mysterious Flower#41 CLEAR_NPC
+1@mist,314,144,0 duplicate(Mysterious Flower#1) Mysterious Flower#42 CLEAR_NPC
+1@mist,238,224,0 duplicate(Mysterious Flower#1) Mysterious Flower#43 CLEAR_NPC
+1@mist,244,231,0 duplicate(Mysterious Flower#1) Mysterious Flower#44 CLEAR_NPC
+1@mist,257,232,0 duplicate(Mysterious Flower#1) Mysterious Flower#45 CLEAR_NPC
+1@mist,262,229,0 duplicate(Mysterious Flower#1) Mysterious Flower#46 CLEAR_NPC
+1@mist,265,216,0 duplicate(Mysterious Flower#1) Mysterious Flower#47 CLEAR_NPC
+1@mist,260,214,0 duplicate(Mysterious Flower#1) Mysterious Flower#48 CLEAR_NPC
+1@mist,252,206,0 duplicate(Mysterious Flower#1) Mysterious Flower#49 CLEAR_NPC
+1@mist,244,211,0 duplicate(Mysterious Flower#1) Mysterious Flower#50 CLEAR_NPC
// Wandering Guardian Quest
//============================================================
-1@mist,2,2,0 script #Dragon Herder 844,{
+1@mist,2,2,0 script #Dragon Herder CLEAR_NPC,{
end;
OnInstanceInit:
switch(rand(1,6)) {
@@ -547,25 +511,26 @@ OnInstanceInit:
case 5: setarray .@c[0],268,183; break;
case 6: setarray .@c[0],65,278; break;
}
- monster "1@mist",.@c[0],.@c[1],"Wandering Purple Dragon",2131,1,instance_npcname("#Dragon Herder", instance_id())+"::OnMyMobDead";
+ monster instance_mapname("1@mist"),.@c[0],.@c[1],"Wandering Purple Dragon",2131,1,instance_npcname("#Dragon Herder")+"::OnMyMobDead";
end;
OnMyMobDead:
- if (mobcount("1@mist",instance_npcname("#Dragon Herder", instance_id())+"::OnMyMobDead") == 0) {
- donpcevent instance_npcname("Collapsed Girl#mist", instance_id())+"::OnEnable";
- donpcevent instance_npcname("Mysterious Young Man#mis", instance_id())+"::OnEnable";
- donpcevent instance_npcname("Loki#mist", instance_id())+"::OnEnable";
- instance_announce 0,"The Dragon's Cry: Am I being punished... for abandoning the way... of the guardian...?",bc_map,"0xffff00"; //FW_NORMAL 12 0 0
- disablenpc instance_npcname("#Dragon Herder", instance_id());
+ set .@map$, instance_mapname("1@mist");
+ if (mobcount(.@map$,instance_npcname("#Dragon Herder")+"::OnMyMobDead") == 0) {
+ donpcevent instance_npcname("Collapsed Girl#mist")+"::OnEnable";
+ donpcevent instance_npcname("Mysterious Young Man#mis")+"::OnEnable";
+ donpcevent instance_npcname("Loki#mist")+"::OnEnable";
+ mapannounce .@map$,"The Dragon's Cry: Am I being punished... for abandoning the way... of the guardian...?",bc_map,"0xffff00"; //FW_NORMAL 12 0 0
+ disablenpc instance_npcname("#Dragon Herder");
initnpctimer;
}
end;
OnTimer3000:
stopnpctimer;
- instance_announce 0,"Voice in your head: ...Will you... save... me... please......?",bc_map,"0xffff00"; //FW_NORMAL 12 0 0
+ mapannounce instance_mapname("1@mist"),"Voice in your head: ...Will you... save... me... please......?",bc_map,"0xffff00"; //FW_NORMAL 12 0 0
end;
}
-1@mist,97,30,3 script Mysterious Young Man#mis 512,{
+1@mist,97,30,3 script Mysterious Young Man#mis 4_M_ROKI2,{
if (BaseLevel < 98) {
mes "[Mysterious Young Man]";
mes "Huh? Do you plan to pass through here?";
@@ -705,16 +670,15 @@ OnTimer3000:
close;
}
end;
-OnInstanceInit:
OnEnable:
- enablenpc instance_npcname("Mysterious Young Man#mis", instance_id());
+ enablenpc instance_npcname("Mysterious Young Man#mis");
end;
OnDisable:
- disablenpc instance_npcname("Mysterious Young Man#mis", instance_id());
+ disablenpc instance_npcname("Mysterious Young Man#mis");
end;
}
-1@mist,183,304,3 script Loki#mist 512,{
+1@mist,183,304,3 script Loki#mist 4_M_ROKI2,{
if (ep14_1_mistwoods < 2) {
mes "[Loki]";
mes "An adventurer in the forest.";
@@ -761,27 +725,27 @@ OnDisable:
end;
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname("Loki#mist", instance_id());
+ disablenpc instance_npcname("Loki#mist");
end;
OnEnable:
- enablenpc instance_npcname("Loki#mist", instance_id());
+ enablenpc instance_npcname("Loki#mist");
end;
}
-1@mist,181,303,3 script Collapsed Girl#mist 511,{
+1@mist,181,303,3 script Collapsed Girl#mist 4_F_NYDHOG2,{
mes "You see a girl with mysterious hair collapsed on the ground.";
mes "As you approach her, you smell the scent of flowers so strong that it makes you dizzy.";
close;
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname("Collapsed Girl#mist", instance_id());
+ disablenpc instance_npcname("Collapsed Girl#mist");
end;
OnEnable:
- enablenpc instance_npcname("Collapsed Girl#mist", instance_id());
+ enablenpc instance_npcname("Collapsed Girl#mist");
end;
}
-mora,46,152,5 script Flower Smelling Lady 510,{
+mora,46,152,5 script Flower Smelling Lady 4_F_NYDHOG,{
if (ep14_1_mistwoods < 3) {
mes "[Flower Smell Lady]";
mes "I need rest.";
@@ -836,7 +800,7 @@ mora,46,152,5 script Flower Smelling Lady 510,{
}
}
-mora,48,152,3 script Sharp Eyed Man 512,{
+mora,48,152,3 script Sharp Eyed Man 4_M_ROKI2,{
if (checkweight(1201,1) == 0 || MaxWeight - Weight < 1000) {
mes "- You have too many items to do this quest. -";
close;
@@ -905,7 +869,7 @@ mora,48,152,3 script Sharp Eyed Man 512,{
mes "You still have things to do.";
next;
mes "[Nydhogg the Guardian]";
- mes "... Oh, yes. It's late, but I have to fulfill my duties as a guardian.";
+ mes "...Oh, yes. It's late, but I have to fulfill my duties as a guardian.";
mes "Now I know. I'll destroy Morroc with my own hands.";
mes "I will fulfill my duties as a guardian.";
next;
@@ -958,77 +922,82 @@ mora,48,152,3 script Sharp Eyed Man 512,{
// Monster Spawns
//============================================================
-1@mist,1,1,0 script #Mist Mobs Respawn1 844,{
+1@mist,1,1,0 script #Mist Mobs Respawn1 CLEAR_NPC,{
end;
OnInstanceInit:
- monster "1@mist",0,0,"Miming",2137,15,instance_npcname("#Mist Mobs Respawn1", instance_id())+"::OnMyMobDead";
+ monster instance_mapname("1@mist"),0,0,"Miming",2137,15,instance_npcname("#Mist Mobs Respawn1")+"::OnMyMobDead";
end;
OnMyMobDead:
- set .@num_mobs, 15 - mobcount("1@mist",instance_npcname("#Mist Mobs Respawn1", instance_id())+"::OnMyMobDead");
+ set .@map$, instance_mapname("1@mist");
+ set .@num_mobs, 15 - mobcount(.@map$,instance_npcname("#Mist Mobs Respawn1")+"::OnMyMobDead");
if (.@num_mobs > 0)
- monster "1@mist",0,0,"Miming",2137,.@num_mobs,instance_npcname("#Mist Mobs Respawn1", instance_id())+"::OnMyMobDead";
+ monster .@map$,0,0,"Miming",2137,.@num_mobs,instance_npcname("#Mist Mobs Respawn1")+"::OnMyMobDead";
end;
}
-1@mist,1,2,0 script #Mist Mobs Respawn2 844,{
+1@mist,1,2,0 script #Mist Mobs Respawn2 CLEAR_NPC,{
end;
OnInstanceInit:
- monster "1@mist",0,0,"Pom Spider",2132,35,instance_npcname("#Mist Mobs Respawn2", instance_id())+"::OnMyMobDead";
+ monster instance_mapname("1@mist"),0,0,"Pom Spider",2132,35,instance_npcname("#Mist Mobs Respawn2")+"::OnMyMobDead";
end;
OnMyMobDead:
- set .@num_mobs, 35 - mobcount("1@mist",instance_npcname("#Mist Mobs Respawn2", instance_id())+"::OnMyMobDead");
+ set .@map$, instance_mapname("1@mist");
+ set .@num_mobs, 35 - mobcount(.@map$,instance_npcname("#Mist Mobs Respawn2")+"::OnMyMobDead");
if (.@num_mobs > 0)
- monster "1@mist",0,0,"Pom Spider",2132,.@num_mobs,instance_npcname("#Mist Mobs Respawn2", instance_id())+"::OnMyMobDead";
+ monster .@map$,0,0,"Pom Spider",2132,.@num_mobs,instance_npcname("#Mist Mobs Respawn2")+"::OnMyMobDead";
end;
}
-1@mist,1,3,0 script #Mist Mobs Respawn3 844,{
+1@mist,1,3,0 script #Mist Mobs Respawn3 CLEAR_NPC,{
end;
OnInstanceInit:
- monster "1@mist",0,0,"Angra Mantis",2133,35,instance_npcname("#Mist Mobs Respawn3", instance_id())+"::OnMyMobDead";
+ monster instance_mapname("1@mist"),0,0,"Angra Mantis",2133,35,instance_npcname("#Mist Mobs Respawn3")+"::OnMyMobDead";
end;
OnMyMobDead:
- set .@num_mobs, 35 - mobcount("1@mist",instance_npcname("#Mist Mobs Respawn3", instance_id())+"::OnMyMobDead");
+ set .@map$, instance_mapname("1@mist");
+ set .@num_mobs, 35 - mobcount(.@map$,instance_npcname("#Mist Mobs Respawn3")+"::OnMyMobDead");
if (.@num_mobs > 0)
- monster "1@mist",0,0,"Angra Mantis",2133,.@num_mobs,instance_npcname("#Mist Mobs Respawn3", instance_id())+"::OnMyMobDead";
+ monster .@map$,0,0,"Angra Mantis",2133,.@num_mobs,instance_npcname("#Mist Mobs Respawn3")+"::OnMyMobDead";
end;
}
-1@mist,1,4,0 script #Mist Mobs Respawn4 844,{
+1@mist,1,4,0 script #Mist Mobs Respawn4 CLEAR_NPC,{
end;
OnInstanceInit:
- monster "1@mist",0,0,"Parus",2134,35,instance_npcname("#Mist Mobs Respawn4", instance_id())+"::OnMyMobDead";
+ monster instance_mapname("1@mist"),0,0,"Parus",2134,35,instance_npcname("#Mist Mobs Respawn4")+"::OnMyMobDead";
end;
OnMyMobDead:
- set .@num_mobs, 35 - mobcount("1@mist",instance_npcname("#Mist Mobs Respawn4", instance_id())+"::OnMyMobDead");
+ set .@map$, instance_mapname("1@mist");
+ set .@num_mobs, 35 - mobcount(.@map$,instance_npcname("#Mist Mobs Respawn4")+"::OnMyMobDead");
if (.@num_mobs > 0)
- monster "1@mist",0,0,"Parus",2134,.@num_mobs,instance_npcname("#Mist Mobs Respawn4", instance_id())+"::OnMyMobDead";
+ monster .@map$,0,0,"Parus",2134,.@num_mobs,instance_npcname("#Mist Mobs Respawn4")+"::OnMyMobDead";
end;
}
-1@mist,1,5,0 script #Mist Mobs Respawn5 844,{
+1@mist,1,5,0 script #Mist Mobs Respawn5 CLEAR_NPC,{
end;
OnInstanceInit:
- monster "1@mist",0,0,"Little Fatum",2136,15,instance_npcname("#Mist Mobs Respawn5", instance_id())+"::OnMyMobDead";
+ monster instance_mapname("1@mist"),0,0,"Little Fatum",2136,15,instance_npcname("#Mist Mobs Respawn5")+"::OnMyMobDead";
end;
OnMyMobDead:
- set .@num_mobs, 15 - mobcount("1@mist",instance_npcname("#Mist Mobs Respawn5", instance_id())+"::OnMyMobDead");
+ set .@map$, instance_mapname("1@mist");
+ set .@num_mobs, 15 - mobcount(.@map$,instance_npcname("#Mist Mobs Respawn5")+"::OnMyMobDead");
if (.@num_mobs > 0)
- monster "1@mist",0,0,"Little Fatum",2136,.@num_mobs,instance_npcname("#Mist Mobs Respawn5", instance_id())+"::OnMyMobDead";
+ monster .@map$,0,0,"Little Fatum",2136,.@num_mobs,instance_npcname("#Mist Mobs Respawn5")+"::OnMyMobDead";
end;
}
-1@mist,1,6,0 script #Fragments of Memory 844,{
+1@mist,1,6,0 script #Fragments of Memory CLEAR_NPC,{
end;
OnInstanceInit:
- disablenpc instance_npcname("#Fragments of Memory", instance_id());
- monster "1@mist",0,0,"Guardian's Fragments of Memory",2138,15;
+ disablenpc instance_npcname("#Fragments of Memory");
+ monster instance_mapname("1@mist"),0,0,"Guardian's Fragments of Memory",2138,15;
end;
}
// Warp Portals
//============================================================
-bif_fild01,38,374,0 script Mysterious Flower#ep14_1 844,{
+bif_fild01,38,374,0 script Mysterious Flower#ep14_1 CLEAR_NPC,{
mes "It's a giant flower with mysterious energy.";
if (countitem(12561)) {
mes "It's reacting to the Mysterious Flower Seeds you have with you.";
@@ -1053,12 +1022,12 @@ bif_fild01,38,374,0 script Mysterious Flower#ep14_1 844,{
1@mist,104,23,0 warp #to_bif01 1,1,bif_fild01,160,352
-1@mist,109,70,0 script a1_a2 45,1,1,{
+1@mist,109,70,0 script a1_a2 WARPNPC,1,1,{
end;
OnTouch:
if (checkquest(7211,PLAYTIME) == -1)
setquest 7211;
- warp "1@mist",116,40;
+ warp instance_mapname("1@mist"),116,40;
end;
}
@@ -1157,24 +1126,24 @@ OnTouch:
// Disable Garden Tree warps.
// Custom, but saves processing and lines.
-1@mist,1,1,0 script #mist_warp_init 844,{
+1@mist,1,1,0 script #mist_warp_init CLEAR_NPC,{
end;
OnInstanceInit:
- disablenpc instance_npcname("a25_a18-1", instance_id());
- disablenpc instance_npcname("a27-2_af1-2", instance_id());
- disablenpc instance_npcname("a15-2_a4-1", instance_id());
- disablenpc instance_npcname("a4-2_a11", instance_id());
- disablenpc instance_npcname("b4-2_b2", instance_id());
- disablenpc instance_npcname("b7_bf1-2", instance_id());
- disablenpc instance_npcname("b31_b16", instance_id());
- disablenpc instance_npcname("b27-3_bN-1", instance_id());
- disablenpc instance_npcname("b6-1_b33", instance_id());
- disablenpc instance_npcname("b5_b14", instance_id());
- disablenpc instance_npcname("c1_c13-1", instance_id());
- disablenpc instance_npcname("c13-3_c4", instance_id());
- disablenpc instance_npcname("c19_c4", instance_id());
- disablenpc instance_npcname("#to_bif02", instance_id());
- disablenpc instance_npcname("#mist_warp_init", instance_id());
+ disablenpc instance_npcname("a25_a18-1");
+ disablenpc instance_npcname("a27-2_af1-2");
+ disablenpc instance_npcname("a15-2_a4-1");
+ disablenpc instance_npcname("a4-2_a11");
+ disablenpc instance_npcname("b4-2_b2");
+ disablenpc instance_npcname("b7_bf1-2");
+ disablenpc instance_npcname("b31_b16");
+ disablenpc instance_npcname("b27-3_bN-1");
+ disablenpc instance_npcname("b6-1_b33");
+ disablenpc instance_npcname("b5_b14");
+ disablenpc instance_npcname("c1_c13-1");
+ disablenpc instance_npcname("c13-3_c4");
+ disablenpc instance_npcname("c19_c4");
+ disablenpc instance_npcname("#to_bif02");
+ disablenpc instance_npcname("#mist_warp_init");
end;
}
1@mist,247,123,0 warp a25_a18-1 1,1,1@mist,164,66 //Tom
diff --git a/npc/re/instances/MalangdoCulvert.txt b/npc/re/instances/MalangdoCulvert.txt
new file mode 100644
index 000000000..f209f409b
--- /dev/null
+++ b/npc/re/instances/MalangdoCulvert.txt
@@ -0,0 +1,1051 @@
+//===== Hercules Script ======================================
+//= Malangdo Culvert
+//===== By: ==================================================
+//= Euphy
+//===== Current Version: =====================================
+//= 1.1
+//===== Description: =========================================
+//= [Official Conversion]
+//= Clean the culverts and defeat the Coelacanth.
+//= Daily and weekly quests are available.
+//= Contains a normal mode and hard mode.
+//===== Additional Comments: =================================
+//= 1.0 First version. [Euphy]
+//= Letters "n" and "h" in NPC names indicate difficulty.
+//= 1.0a There is no minimum party size on official servers.
+//= 1.0b Fixed incorrect use of 'close'. [Joseph]
+//= 1.1 Instance system rewrite. [Euphy]
+//============================================================
+
+1@pump mapflag src4instance
+2@pump mapflag src4instance
+//============================================================
+
+// Quest NPCs
+//============================================================
+mal_in01,172,28,2 script Albo#mal 4_CAT_SAILOR5,{
+ if (checkweight(1201,1) == 0) {
+ mes "You have too many kinds of objects. Try to continue after reducing those objects.";
+ close;
+ }
+ if (MaxWeight - Weight < 1000) {
+ mes "You have too many heavy objects. Try to continue after reducing your weight.";
+ close;
+ }
+ if (BaseLevel < 90) {
+ mes "[Albo]";
+ mes "Who are you?";
+ mes "We don't need a weaking!!";
+ close;
+ }
+ setarray .@quests[0],12271,12272,12273,12274;
+ setarray .@names$[0],
+ "General Culvert Daily Service","^990000Hard Culvert Daily Service^000000",
+ "General Culvert Weekly Service","^990000Hard Culvert Weekly Service^000000";
+ set .@menu$,"Why are doing this job?:";
+ for(set .@i,0; .@i<4; set .@i,.@i+1) {
+ if (checkquest(.@quests[.@i],PLAYTIME) > -1) {
+ set .@status[.@i],2;
+ set .@menu$, .@menu$+"^aaaaaa- There is no new task -^000000:";
+ } else if (.@i%2 && BaseLevel < 140) {
+ set .@status[.@i],0;
+ set .@menu$, .@menu$+"^aaaaaaCan't take this job because level is too low^000000:";
+ } else {
+ set .@status[.@i],1;
+ set .@menu$, .@menu$+.@names$[.@i]+":";
+ }
+ }
+ mes "[Albo]";
+ mes "We crossed the sea!";
+ mes "We are great heroes of Culvert! We do not forgive the seafood that aims at Culvert!";
+ next;
+ set .@i, select(.@menu$)-1;
+ if (.@i == 0) {
+ mes "[Albo]";
+ mes "We used to be the henchmen of Mr. Missing! We almost became guards of such a historic site.";
+ next;
+ mes "[Albo]";
+ mes "However, when sea water flooded all precious the resources, my dream... all my dreams melted away...";
+ next;
+ mes "[Albo]";
+ mes "We do not forgive the seafood that invaded our territory. I'll eat them with spicy paste!!!";
+ next;
+ mes "^0000ffAlbo's voice shakes with anger. He smacked his lips when he mentioned spicy paste.^000000";
+ close;
+ }
+ switch(.@status[.@i-1]) {
+ case 0:
+ mes "[Albo]";
+ mes "That task is really hard for you, so I can't tell you about it. Why don't you find another one?";
+ close;
+ case 1:
+ break;
+ case 2:
+ mes "[Albo]";
+ mes "I'm sorry. There is no new task yet! If I find any work, I'll tell you so!";
+ close;
+ }
+ switch(.@i) {
+ case 1: // General Culvert Daily Service
+ switch(rand(1,6)) {
+ case 1: callsub L_GiveQuest,.@i,12255,12271,"Deep Sea Crab";
+ case 2: callsub L_GiveQuest,.@i,12256,12271,"Deep Sea Marse";
+ case 3: callsub L_GiveQuest,.@i,12257,12271,"Deep Sea Vadon";
+ case 4: callsub L_GiveQuest,.@i,12258,12271,"Deep Sea Shellfish";
+ case 5: callsub L_GiveQuest,.@i,12259,12271,"Deep Sea Kukre";
+ case 6: callsub L_GiveQuest,.@i,12260,12271,"Deep Sea Cornutus";
+ }
+ case 2: // Hard Culvert Daily Service
+ switch(rand(1,6)) {
+ case 1: callsub L_GiveQuest,.@i,12261,12272,"Deep Sea Marc";
+ case 2: callsub L_GiveQuest,.@i,12262,12272,"Deep Sea Sword Fish";
+ case 3: callsub L_GiveQuest,.@i,12263,12272,"Deep Sea Strouf";
+ case 4: callsub L_GiveQuest,.@i,12264,12272,"Deep Sea Anolian";
+ case 5: callsub L_GiveQuest,.@i,12265,12272,"Deep Sea Obeanue";
+ case 6: callsub L_GiveQuest,.@i,12266,12272,"Deep Sea Kapha";
+ }
+ case 3: // General Culvert Weekly Service
+ switch(rand(1,2)) {
+ case 1: callsub L_GiveQuest,.@i,12267,12273,"Weird Coelacanth";
+ case 2: callsub L_GiveQuest,.@i,12268,12273,"Gloomy Coelacanth";
+ }
+ case 4: // Hard Culvert Weekly Service
+ switch(rand(1,2)) {
+ case 1: callsub L_GiveQuest,.@i,12269,12274,"Violent Coelacanth";
+ case 2: callsub L_GiveQuest,.@i,12270,12274,"Mutant Coelacanth";
+ }
+ default:
+ mes "[Albo]";
+ mes "Uh!? Where is the task? Let me find that quickly. You must speak with Madeca!";
+ close;
+ }
+ end;
+
+// callsub L_GiveQuest,.@i,<quest 1>,<quest 2>,<monster>;
+L_GiveQuest:
+ setquest getarg(1);
+ setquest getarg(2);
+ mes "[Albo]";
+ mes "Today, the heroes of Culvert!";
+ mes "We raise our voices and set a date for the extermination of ^0000ff"+getarg(3)+"^000000!";
+ next;
+ mes "[Albo]";
+ switch(getarg(0)) {
+ case 1:
+ case 2:
+ mes "Come on, heroes! Don't be afraid of them! Just go on, since it's a one-day mission!";
+ break;
+ case 3:
+ mes "I'll give you one week to finish this job! Terminate all of them in Culvert Dungeon, Normal Mode!";
+ break;
+ case 4:
+ mes "I'll give you one week to finish this job! Terminate all of them in Culvert Dungeon, Hard Mode!";
+ break;
+ }
+ next;
+ mes "You received a request for the Extermination of ^005500"+getarg(3)+"^000000. If you need more details, please check the quest window.";
+ close;
+}
+
+mal_in01,172,26,2 script Madeca#mal 4_CAT_SAILOR1,{
+ if (checkweight(1201,1) == 0) {
+ mes "You have too many kinds of objects. Try to continue after reducing those objects.";
+ close;
+ }
+ if (MaxWeight - Weight < 1000) {
+ mes "You have too many heavy objects. Try to continue after reducing your weight.";
+ close;
+ }
+ if (BaseLevel < 90) {
+ mes "[Madeca]";
+ mes "Karrrrrrr!!";
+ mes "Let's have some bad seafood that can be boiled or grilled!";
+ next;
+ mes "[Madeca]";
+ mes "Who are you? You are such a totterer. Even seaweed could kill you!";
+ close;
+ }
+ mes "[Madeca]";
+ mes "Oh?";
+ mes "You're the one who took care of my big brother Albo's request. It was a hard job!";
+ next;
+ set .@i, select("What are you doing here?:General Culvert Daily Service Compensation:Hard Culvert Daily Service Compensation:General Culvert Weekly Service Compensation:Hard Culvert Weekly Service Compensation")-1;
+ if (.@i == 0) {
+ mes "[Madeca]";
+ mes "I'm here to help my big brother Albo!";
+ next;
+ mes "[Madeca]";
+ mes "We provide precious materials to humans who make sludge out of the bad seafood in the Culverts!";
+ next;
+ mes "[Madeca]";
+ mes "We provide A~B Grade Coins as compensation for daily service, and the precious Sea God's Wrath as compensation for weekly service.";
+ next;
+ mes "[Madeca]";
+ mes "If you take care of big brother Albo's request, I will see you very often. So, let's stay close!";
+ close;
+ }
+ mes "[Madeca]";
+ mes "I can't give you compensation for an expired request, so let me check if any of yours have expired.";
+ next;
+ specialeffect2 EF_SPHERE;
+ progressbar "0xFFFF00",3;
+ specialeffect2 EF_STEAL;
+ switch(.@i) {
+ case 1: // General Culvert Daily Service
+ if (checkquest(12271,PLAYTIME) == 2)
+ callsub L_EraseQuest,12255,12256,12257,12258,12259,12260,12271;
+ else {
+ // Reward: 2x B Grade Coin
+ callsub L_CheckQuest,12255,"Deep Sea Crab",6419,2;
+ callsub L_CheckQuest,12256,"Deep Sea Marse",6419,2;
+ callsub L_CheckQuest,12257,"Deep Sea Vadon",6419,2;
+ callsub L_CheckQuest,12258,"Deep Sea Shellfish",6419,2;
+ callsub L_CheckQuest,12259,"Deep Sea Kukre",6419,2;
+ callsub L_CheckQuest,12260,"Deep Sea Cornutus",6419,2;
+ }
+ break;
+ case 2: // Hard Culvert Daily Service
+ if (checkquest(12272,PLAYTIME) == 2)
+ callsub L_EraseQuest,12261,12262,12263,12264,12265,12266,12272;
+ else {
+ // Reward: 1x A Grade Coin
+ callsub L_CheckQuest,12261,"Deep Sea Marc",6418,1;
+ callsub L_CheckQuest,12262,"Deep Sea Sword Fish",6418,1;
+ callsub L_CheckQuest,12263,"Deep Sea Strouf",6418,1;
+ callsub L_CheckQuest,12264,"Deep Sea Anolian",6418,1;
+ callsub L_CheckQuest,12265,"Deep Sea Obeaune",6418,1;
+ callsub L_CheckQuest,12266,"Deep Sea Kapha",6418,1;
+ }
+ break;
+ case 3: // General Culvert Weekly Service
+ if (checkquest(12273,PLAYTIME) == 2)
+ callsub L_EraseQuest,12267,12268,12273;
+ else {
+ // Reward: 1x Sea God's Wrath
+ callsub L_CheckQuest,12267,"Weird Coelacanth",6423,1;
+ callsub L_CheckQuest,12268,"Gloomy Coelacanth",6423,1;
+ }
+ break;
+ case 4: // Hard Culvert Weekly Service
+ if (checkquest(12274,PLAYTIME) == 2)
+ callsub L_EraseQuest,12269,12270,12274;
+ else {
+ // Reward: 5x Sea God's Wrath
+ callsub L_CheckQuest,12269,"Violent Coelacanth",6423,5;
+ callsub L_CheckQuest,12270,"Mutant Coelacanth",6423,5;
+ }
+ break;
+ default:
+ mes "[Madeca]";
+ mes "Something is wrong. Please check this again!";
+ close;
+ }
+ mes "[Madeca]";
+ mes "I don't see any completed mission!";
+ close;
+
+L_EraseQuest:
+ for(set .@j,0; .@j<getargcount(); set .@j,.@j+1) {
+ if (checkquest(getarg(.@j)) > -1)
+ erasequest getarg(.@j);
+ }
+ mes "[Madeca]";
+ mes "Um, I'm sorry. You exceeded the time limit, so I can't give you any payment.";
+ close;
+
+// callsub L_CheckQuest,<quest ID>,<monster>,<reward item ID>,<reward item amount>;
+L_CheckQuest:
+ if (checkquest(getarg(0),HUNTING) == 2) {
+ mes "[Madeca]";
+ mes "You've punished ^0000ff"+getarg(1)+"^000000!";
+ mes "Here's your pay!";
+ erasequest getarg(0);
+ specialeffect2 EF_STEAL;
+ getitem getarg(2),getarg(3);
+ close;
+ }
+ return;
+}
+
+// Instance Creation
+//============================================================
+mal_in01,160,34,4 script Missing, the Cleaner 4_CAT_SAILOR2,{
+ if (BaseLevel < 90) {
+ mes "[Missing, the Cleaner]";
+ mes "Are you talking to me?!";
+ next;
+ mes "[Missing, the Cleaner]";
+ mes "I'm not sure what made you come here but you can't enter!";
+ mes "Tomas' orders...";
+ next;
+ mes "^770099You must be Base level 90 to enter.^000000";
+ close;
+ }
+ if (in_canal_n == 0) {
+ mes "[Missing, the Cleaner]";
+ mes "(trembling)";
+ next;
+ mes "^660066This cat looks like it's in bad shape. It is slightly trembling.^000000";
+ next;
+ if(select("Pet the cat:Are you ok?") == 1) {
+ mes "[Missing, the Cleaner]";
+ mes "Are you talking to me?!";
+ next;
+ mes "^660066A trembling cat is looking up at you.^000000";
+ close;
+ }
+ mes "[Missing, the Cleaner]";
+ mes "Achoo!";
+ next;
+ mes "[Missing, the Cleaner]";
+ mes "We have had many issues during the";
+ mes "cleaning of the culverts. But a";
+ mes "cat's gotta do it...";
+ next;
+ select("What culvert are you cleaning?");
+ mes "[Missing, the Cleaner]";
+ mes "It might look unfamiliar for an";
+ mes "outsider, but actually this place";
+ mes "is made to keep souvenirs and";
+ mes "luxurious things.";
+ next;
+ mes "[Missing, the Cleaner]";
+ mes "After there was a big trembling on";
+ mes "this island, things started leaking";
+ mes "around here. So that's why I became";
+ mes "a cleaner here, though I used";
+ mes "to be a manager.";
+ next;
+ mes "^660066The cat looks like it's been crying...^000000";
+ next;
+ mes "[Missing, the Cleaner]";
+ mes "There is a culvert along this way";
+ mes "to the basement. There are many bad";
+ mes "guys who hurt me. I am tired of";
+ mes "fighting with them so many times a";
+ mes "day!";
+ next;
+ mes "[Missing, the Cleaner]";
+ mes "Ohh! You touched my fur!";
+ mes "My fur is falling out... it's all";
+ mes "those guys' fault~";
+ next;
+ mes "^660066You just now notice that the cat's fur is missing in some places.^000000";
+ next;
+ select("Why don't you just quit!");
+ mes "[Missing, the Cleaner]";
+ mes "I still have to make a living, don't I?";
+ next;
+ mes "[Missing, the Cleaner]";
+ mes "Sometimes I can get a lucky box,";
+ mes "or even better, I can get cans...";
+ next;
+ if(select("Okay, cheers!:I will help if possible...") == 1) {
+ mes "[Missing, the Cleaner]";
+ mes "Thank you. I am going back to pour the water!";
+ close;
+ }
+ mes "[Missing, the Cleaner]";
+ mes "(turns down his voice)";
+ mes "If you really want to help, come closer!";
+ next;
+ select("(get in closer)");
+ mes "[Missing, the Cleaner]";
+ mes "Not everyone can be an assistant";
+ mes "here. But I can't help choosing";
+ mes "anyone at the moment...";
+ next;
+ mes "[Missing, the Cleaner]";
+ mes "If you want to go down here, let me get this code.";
+ next;
+ mes "^660066The cat scribbles a memo for code to you.^000000";
+ next;
+ select("Open the memo.");
+ mes "^660000Aragam insulted me.^000000";
+ next;
+ mes "[Missing, the Cleaner]";
+ mes "You must be here with friends";
+ mes "because you can't go in alone! And";
+ mes "the password code will be from the";
+ mes "party leader!";
+ next;
+ mes "[Missing, the Cleaner]";
+ mes "What is also important is you must";
+ mes "have a Seagod Protection with you.";
+ next;
+ mes "[Missing, the Cleaner]";
+ mes "Don't forget! I will not open the";
+ mes "door if you do not have Seagod Protection!";
+ set in_canal_n,1;
+ close;
+ }
+ if (countitem(6436) == 0) {
+ mes "[Missing, the Cleaner]";
+ mes "You don't look like you have Seagod Protection. I can't open door at the moment!";
+ close;
+ }
+ set .@party_id,getcharid(1);
+ set .@md_name$,"Culvert";
+ if (!.@party_id) {
+ mes "^0000ffYou have to organize a party of";
+ mes "more than 1 member or be a member";
+ mes "of the party and come back.^000000";
+ close;
+ }
+ set .@playtime, checkquest(12254,PLAYTIME);
+ if (.@playtime == -1) {
+ if (getcharid(0) == getpartyleader(.@party_id,2)) {
+ mes "[Missing, the Cleaner]";
+ mes "Ummm? What's up? Tell me the password if you're the leader!";
+ next;
+ switch(select("No... nothing.:Aragam insulted me.:Enter the Culvert.")) {
+ case 1:
+ mes "[Missing, the Cleaner]";
+ mes "What a rookie.";
+ close;
+ case 2:
+ set .@instance,instance_create(.@md_name$,.@party_id);
+ if (.@instance < 0) {
+ mes "Party name: "+getpartyname(.@party_id);
+ mes "Party leader: "+strcharinfo(0);
+ mes "^0000ff"+.@md_name$+"^000000 - Reservation Failed!";
+ close;
+ }
+ if (instance_attachmap("1@pump",.@instance) == "" || instance_attachmap("2@pump",.@instance) == "") {
+ mes "^0000ff"+.@md_name$+"^000000 - Reservation Failed!";
+ instance_destroy(.@instance);
+ close;
+ }
+ instance_set_timeout 3600,300,.@instance;
+ instance_init(.@instance);
+
+ mes "^3333FF"+.@md_name$+"^000000 - Reserving";
+ mes "After making the reservation, you";
+ mes "have to select Enter the Culvert.";
+ close;
+ case 3:
+ callsub L_Enter,0;
+ }
+ }
+ if(select("Enter Culvert:Cancel") == 2)
+ end;
+ callsub L_Enter,1;
+ } else if (.@playtime == 0 || .@playtime == 1) {
+ mes "You can enter the Culvert if the gate is open.";
+ next;
+ if(select("Enter Culvert:Cancel") == 2)
+ close;
+ callsub L_Enter,0;
+ } else if (.@playtime == 2) {
+ mes "^0000ffThe gate to the Culvert is open again.^000000";
+ erasequest 12254;
+ close;
+ }
+ end;
+L_Enter:
+ if (has_instance("1@pump") == "") {
+ if (checkquest(12254,PLAYTIME) == 0 || checkquest(12254,PLAYTIME) == 1) {
+ mes "The gate to the Culvert is still closed.";
+ mes "You must wait until you are able to enter or find a party leader who can create the instance.";
+ close;
+ }
+ mes "The memorial dungeon Culvert does not exist.";
+ mes "The party leader has not reserved entrance to the dungeon yet.";
+ close;
+ }
+ mapannounce "mal_in01", strcharinfo(0)+" of the party "+getpartyname(.@party_id)+" is entering the Culvert.",bc_map,"0x00ff99";
+ if (checkquest(12254) == -1) setquest 12254;
+ warp "1@pump",63,98;
+ end;
+}
+
+// Instance: Common Scripts
+//============================================================
+1@pump,63,100,4 script Missing, the Cleaner#0 4_CAT_SAILOR2,{
+ if (getcharid(0) != getpartyleader(getcharid(1),2)) {
+ mes "[Missing, the Cleaner]";
+ mes "I am trying to have a conversation with your leader now. Please don't disturb and wait!";
+ close;
+ }
+ mes "[Missing, the Cleaner]";
+ mes "This is the underground culvert where you will clean with your friends!";
+ next;
+ mes "[Missing, the Cleaner]";
+ mes "I'll open the door first. By the way, do you know how to fight?";
+ next;
+ switch(select("I'm pretty good at delivering bread.:I know how to fight.:^ffffffGive me the diamond.^000000")) {
+ case 1:
+ mes "[Missing, the Cleaner]";
+ mes "Ok then, I'll let you clean the culverts here as usual! I will prepare at the right-hand corner, please follow me!";
+ next;
+ if(select("Wait! I changed my mind!:As you wish~") == 1) {
+ mes "[Missing, the Cleaner]";
+ mes "Huh? Not ready yet? Talk to me again when you're ready.";
+ close;
+ }
+ set 'party_id,getcharid(1);
+ mapannounce instance_mapname("1@pump"),"Missing: Move toward the 3 o'clock direction and wait for my next order!",bc_map,"0xff88ff",FW_NORMAL,15;
+ disablenpc instance_npcname("Missing, the Cleaner#0");
+ enablenpc instance_npcname("Missing, the Cleaner#n");
+ close;
+ case 2:
+ if (BaseLevel < 140) {
+ mes "[Missing, the Cleaner]";
+ mes "Hmmm... Missing thinks you're weak! Tell me the truth!!";
+ close;
+ }
+ mes "[Missing, the Cleaner]";
+ mes "Huh? You have some fighting skills? Well, then, there is one place I wasn't able to clean... why don't you go there?!";
+ next;
+ mes "[Missing, the Cleaner]";
+ mes "I must tell you that it's been such a long~~ time since we've cleaned that place, so anyone under level 140 cannot even enter! Are you sure you still want to go?";
+ next;
+ if(select("Wait! I changed my mind!:Sure, I'm prepared already~") == 1) {
+ mes "[Missing, the Cleaner]";
+ mes "Hmm? Talk to me again when you're ready.";
+ close;
+ }
+ set 'party_id,getcharid(1);
+ mapannounce instance_mapname("1@pump"),"Missing: I'll go in first, so follow me! I'll open up a gate at the 3 o'clock direction!",bc_map,"0xff88ff",FW_NORMAL,15;
+ disablenpc instance_npcname("Missing, the Cleaner#0");
+ enablenpc instance_npcname("Culvert Entrance#i");
+ close;
+ case 3:
+ mes "[Missing, the Cleaner]";
+ mes "I told you not to play with me~!";
+ close;
+ }
+ end;
+}
+
+1@pump,84,105,0 script Culvert Entrance#i WARPNPC,3,3,{
+ end;
+OnInstanceInit:
+ disablenpc instance_npcname("Culvert Entrance#i");
+ end;
+OnTouch:
+ if (BaseLevel >= 140)
+ warp instance_mapname("2@pump"),38,88;
+ else
+ warp instance_mapname("1@pump"),74,105;
+ end;
+}
+
+function script F_mal_missing {
+ mes "[Missing, the Cleaner]";
+ mes "I will tell you how to clean shortly. Can you see the culverts around you?";
+ next;
+ if(select("What culverts??:Yes, I see them.") == 1) {
+ mes "[Missing, the Cleaner]";
+ mes "Huh? Is this your first time seeing culverts? You'll see many buried machines in the ground. You may look around and come back!";
+ close;
+ }
+ mes "[Missing, the Cleaner]";
+ mes "That's right! Those culverts are very important! We must clean the culverts to prevent seaweed from blocking them. This is what we, cleaners, do!";
+ next;
+ mes "[Missing, the Cleaner]";
+ mes "Watch out! Some monsters will be after you while you're cleaning the culverts! But do not yield to them!";
+ next;
+ mes "[Missing, the Cleaner]";
+ mes "And... NEVER let 6 seaweeds stack! Up to 5 is acceptable! If there are 6, I'll drag you out of here!!";
+ next;
+ mes "[Missing, the Cleaner]";
+ mes "I don't care if you get help from your friends or not. I want you to clean up all culverts! Don't forget! I will watch you and give you instructions. Just do what I said!!";
+ next;
+ if (getcharid(0) != getpartyleader(getcharid(1),2)) {
+ mes "[Missing, the Cleaner]";
+ mes "Once your leader finishes preparing, it will begin, so get your hearts ready for it!!";
+ close;
+ }
+ mes "[Missing, the Cleaner]";
+ mes "So, are you ready to clean now?";
+ next;
+ switch(select("Wait! Not yet!:Let's start!")) {
+ case 1:
+ mes "[Missing, the Cleaner]";
+ mes "Huh? Not ready yet? Then talk to me when you're ready.";
+ close;
+ case 2:
+ mes "[Missing, the Cleaner]";
+ mes "OK! Now it begins!";
+ return;
+ }
+}
+
+// Instance: Normal Mode
+//============================================================
+1@pump,84,105,4 script Missing, the Cleaner#nf 4_CAT_SAILOR2,{
+ mes "[Missing, the Cleaner]";
+ mes "I have the cleaning job for 40 years and I've never seen such a terrible team!!";
+ next;
+ mes "[Missing, the Cleaner]";
+ mes "I see seaweed everywhere because you're wiggling! All the culverts will be blocked with seaweed!";
+ next;
+ if (getcharid(0) != getpartyleader(getcharid(1),2)) {
+ mes "[Missing, the Cleaner]";
+ mes "Once your leader finishes preparing, settlement will be decided so get your hearts ready for it!!";
+ close;
+ }
+ mes "[Missing, the Cleaner]";
+ mes "If you got some guts to challenge again, I'll give you another chance! What's your choice going to be!?";
+ next;
+ switch(select("Wait! Not yet!:Okay, let's start again!")) {
+ case 1:
+ mes "[Missing, the Cleaner]";
+ mes "You're still slow! Talk to me again whenever your're ready.";
+ close;
+ case 2:
+ mes "[Missing, the Cleaner]";
+ mes "Ok! Let's start now!";
+ set .@i$, charat(strnpcinfo(2),0);
+ enablenpc instance_npcname("Missing, the Cleaner#"+.@i$);
+ donpcevent instance_npcname("Missing, the Cleaner#"+.@i$)+"::OnStart";
+ disablenpc instance_npcname("Culvert Entrance#"+.@i$);
+ disablenpc instance_npcname("Missing, the Cleaner#"+.@i$+"o");
+ donpcevent instance_npcname("Monster Hole#"+.@i$)+"::OnClear";
+ disablenpc instance_npcname(strnpcinfo(0));
+ close;
+ }
+ close;
+OnInstanceInit:
+ disablenpc instance_npcname(strnpcinfo(0));
+ end;
+}
+
+1@pump,84,105,4 script Missing, the Cleaner#n 4_CAT_SAILOR2,{
+ callfunc "F_mal_missing";
+ donpcevent instance_npcname("Missing, the Cleaner#n")+"::OnStart";
+ close;
+OnInstanceInit:
+ disablenpc instance_npcname("Missing, the Cleaner#n");
+ end;
+OnStart:
+ killmonster instance_mapname("1@pump"),instance_npcname("Missing, the Cleaner#n")+"::OnMyMobDead";
+ disablenpc instance_npcname("Missing, the Cleaner#n");
+ initnpctimer;
+ end;
+OnAddSeaweed:
+ set .@map$, instance_mapname("1@pump");
+ areamonster .@map$,55,99,61,105,"Contaminated Seaweed",2191,1,instance_npcname("Missing, the Cleaner#n")+"::OnMyMobDead";
+ set .@mob_dead_num, mobcount(.@map$,instance_npcname("Missing, the Cleaner#n")+"::OnMyMobDead");
+ if (.@mob_dead_num >= 6)
+ donpcevent instance_npcname("Missing, the Cleaner#n")+"::OnFail";
+ else
+ mapannounce .@map$,"Contaminated Seaweed: "+.@mob_dead_num+" stem",bc_map,"0xff3333",FW_NORMAL,20;
+ end;
+OnMyMobDead:
+ end;
+OnFail:
+ stopnpctimer;
+ donpcevent instance_npcname("Monster Hole#n")+"::OnClear";
+ set .@map$, instance_mapname("1@pump");
+ killmonster .@map$,instance_npcname("Missing, the Cleaner#n")+"::OnMyMobDead";
+ enablenpc instance_npcname("Missing, the Cleaner#nf");
+ mapannounce .@map$,"What is this!! Seaweed is all over the culverts! You're done with cleaning! Get out!!",bc_map,"0xff88ff",FW_NORMAL,15;
+ disablenpc instance_npcname("Missing, the Cleaner#n");
+ end;
+OnTimer100:
+ mapannounce instance_mapname("1@pump"),"First culvert will be opened in 5 sec. Cleaner can find the opened drain and click to start cleaning.",bc_map,"0x00ffcc",FW_NORMAL,15;
+ end;
+OnTimer5500:
+ mapannounce instance_mapname("1@pump"),"The one who's in charge of cleaning the culvert cannot move or be attacked until the casting is over.",bc_map,"0x00ffcc",FW_NORMAL,15;
+ donpcevent instance_npcname("Monster Hole#n")+"::OnSpawn";
+ end;
+OnTimer45000:
+OnTimer95000:
+OnTimer145000:
+OnTimer195000:
+OnTimer245000:
+OnTimer295000:
+OnTimer345000:
+OnTimer395000:
+OnTimer445000:
+ mapannounce instance_mapname("1@pump"),"Next culvert will be opened in 5 sec. Please hurry up and find the position of the next culvert.",bc_map,"0x00ffcc",FW_NORMAL,15;
+ end;
+OnTimer50000:
+OnTimer100000:
+OnTimer150000:
+ donpcevent instance_npcname("Monster Hole#n")+"::OnSpawn";
+ end;
+OnTimer200000:
+OnTimer250000:
+OnTimer300000:
+OnTimer350000:
+OnTimer400000:
+OnTimer450000:
+ set .@mob_dead_num, mobcount(instance_mapname("1@pump"),instance_npcname("Missing, the Cleaner#n")+"::OnMyMobDead");
+ if (.@mob_dead_num >= 6)
+ donpcevent instance_npcname("Missing, the Cleaner#n")+"::OnFail";
+ else
+ donpcevent instance_npcname("Monster Hole#n")+"::OnSpawn";
+ end;
+OnTimer515000:
+ set .@map$, instance_mapname("1@pump");
+ set .@mob_dead_num, mobcount(.@map$,instance_npcname("Missing, the Cleaner#n")+"::OnMyMobDead");
+ mapannounce .@map$,"Contaminated Seaweed: "+.@mob_dead_num+" stem. Missing will come and inspect the results of the cleaning soon.",bc_map,"0xff3333",FW_NORMAL,20;
+ end;
+OnTimer520000:
+ stopnpctimer;
+ set .@mob_dead_num, mobcount(instance_mapname("1@pump"),instance_npcname("Missing, the Cleaner#n")+"::OnMyMobDead");
+ if (.@mob_dead_num >= 6)
+ donpcevent instance_npcname("Missing, the Cleaner#n")+"::OnFail";
+ else
+ donpcevent instance_npcname("Boss Creation#n")+"::OnEnable";
+ end;
+}
+
+1@pump,1,1,4 script Monster Hole#n -1,{
+ end;
+OnSpawn:
+ set .@i$, charat(strnpcinfo(2),0);
+ if (.@i$ == "n")
+ set .@n,6;
+ else if (.@i$ == "h")
+ set .@n,10;
+ donpcevent instance_npcname("#Culvert_"+.@i$+rand(1,.@n))+"::OnEnable";
+ end;
+OnClear:
+ set .@i$, charat(strnpcinfo(2),0);
+ if (.@i$ == "n")
+ set .@n,6;
+ else if (.@i$ == "h")
+ set .@n,10;
+ for(set .@i,1; .@i<=.@n; set .@i,.@i+1)
+ donpcevent instance_npcname("#Culvert_"+.@i$+.@n)+"::OnClear";
+ end;
+}
+
+1@pump,36,111,4 script #Culvert_n1 CLEAR_NPC,14,14,{ //temporary workaround for ALL_SAMEMAP
+ progressbar "0xFFFF00",10;
+ stopnpctimer;
+ disablenpc instance_npcname(strnpcinfo(0));
+ end;
+OnInstanceInit:
+ disablenpc instance_npcname(strnpcinfo(0));
+ end;
+OnEnable:
+ enablenpc instance_npcname(strnpcinfo(0));
+ set .@label$, instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
+ set .@map$, instance_mapname("1@pump");
+ set .@index, atoi(charat(strnpcinfo(2),9));
+ switch(.@index) {
+ case 1: setarray .@c[0],32,107,40,115; break;
+ case 2: setarray .@c[0],64,120,72,128; break;
+ case 3: setarray .@c[0],76,110,84,118; break;
+ case 4: setarray .@c[0],36,76,44,84; break;
+ case 5: setarray .@c[0],71,76,79,84; break;
+ case 6: setarray .@c[0],54,97,62,105; break;
+ }
+ areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"Abysmal Crab",2176,rand(1,3),.@label$;
+ areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"Abysmal Marse",2175,rand(1,3),.@label$;
+ areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"Ancient Vadon",2174,rand(1,3),.@label$;
+ areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"Abysmal Shellfish",2178,rand(1,3),.@label$;
+ areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"Ancient Kukre",2179,rand(1,3),.@label$;
+ areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"Abysmal Cornutus",2177,rand(1,3),.@label$;
+ specialeffect EF_MAPPILLAR2,ALL_SAMEMAP; //currently broken
+ getmapxy(.@map$,.@x,.@y,1);
+ getpartymember 'party_id,2;
+ copyarray .@partymemberaid[0],$@partymemberaid[0],$@partymembercount;
+ for(set .@i,0; .@i<$@partymembercount; set .@i,.@i+1) {
+ if (attachrid(.@partymemberaid[.@i])) {
+ if (strcharinfo(3) == .@map$)
+ viewpoint 0,.@x,.@y,.@index,0xFFFF00;
+ detachrid;
+ }
+ }
+ initnpctimer;
+ end;
+OnMyMobDead:
+ end;
+OnClear:
+ stopnpctimer;
+ killmonster instance_mapname("1@pump"),instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
+ end;
+OnTimer49500: //OnTimer50000 clashes with the timer in "Missing, the Cleaner#h".
+ donpcevent instance_npcname("Missing, the Cleaner#n")+"::OnAddSeaweed";
+ donpcevent instance_npcname(strnpcinfo(0))+"::OnClear";
+ disablenpc instance_npcname(strnpcinfo(0));
+ end;
+OnTouch:
+ specialeffect EF_MAPPILLAR2;
+ end;
+}
+1@pump,68,124,4 duplicate(#Culvert_n1) #Culvert_n2 CLEAR_NPC,14,14
+1@pump,80,114,4 duplicate(#Culvert_n1) #Culvert_n3 CLEAR_NPC,14,14
+1@pump,40,80,4 duplicate(#Culvert_n1) #Culvert_n4 CLEAR_NPC,14,14
+1@pump,75,80,4 duplicate(#Culvert_n1) #Culvert_n5 CLEAR_NPC,14,14
+1@pump,58,101,4 duplicate(#Culvert_n1) #Culvert_n6 CLEAR_NPC,14,14
+
+1@pump,1,1,4 script Boss Creation#n -1,{
+ end;
+OnInstanceInit:
+ disablenpc instance_npcname(strnpcinfo(0));
+ end;
+OnEnable:
+ enablenpc instance_npcname(strnpcinfo(0));
+ initnpctimer;
+ end;
+OnTimer100:
+ set .@i$, charat(strnpcinfo(2),0);
+ if (.@i$ == "n")
+ mapannounce instance_mapname("1@pump"),"Hmm! That wasn't so bad!",bc_map,"0xff88ff",FW_NORMAL,15;
+ else if (.@i$ == "h")
+ mapannounce instance_mapname("2@pump"),"Hmm! You guys are pretty good!!",bc_map,"0xff88ff",FW_NORMAL,15;
+ end;
+OnTimer5000:
+ mapannounce strnpcinfo(4),"Let's pack up and go... WHAT!!?",bc_map,"0xff88ff",FW_NORMAL,15;
+ end;
+OnTimer10000:
+ mapannounce strnpcinfo(4),"I sense something strange!! Don't loosen up-- prepare for a fight!!",bc_map,"0xff88ff",FW_NORMAL,15;
+ end;
+OnTimer20000:
+ stopnpctimer;
+ set .@i$, charat(strnpcinfo(2),0);
+ set .@label$, instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
+ if (rand(1,100) > 50) {
+ if (.@i$ == "n")
+ monster instance_mapname("1@pump"),0,0,"Weird Coelacanth",2188,1,.@label$;
+ else if (.@i$ == "h")
+ monster instance_mapname("2@pump"),0,0,"Mutant Coelacanth",2189,1,.@label$;
+ mapannounce strnpcinfo(4),"Something big inside the abyss appears with a huge noise.",bc_map,"0x00ffcc",FW_NORMAL,15;
+ } else {
+ if (.@i$ == "n")
+ monster instance_mapname("1@pump"),0,0,"Gloomy Coelacanth",2187,1,.@label$;
+ else if (.@i$ == "h")
+ monster instance_mapname("2@pump"),0,0,"Violent Coelacanth",2190,1,.@label$;
+ mapannounce strnpcinfo(4),"Something savage inside the abyss appears with a huge noise.",bc_map,"0x00ffcc",FW_NORMAL,15;
+ }
+ end;
+OnMyMobDead:
+ if (mobcount(strnpcinfo(4),instance_npcname(strnpcinfo(0))+"::OnMyMobDead") < 1) {
+ mapannounce strnpcinfo(4),"You've destroyed all monsters in the culverts. There are trophies lying on the ground, please look for them.",bc_map,"0xffff00",FW_NORMAL,15;
+ set .@i$, charat(strnpcinfo(2),0);
+ set .@map$, strnpcinfo(4);
+ enablenpc instance_npcname("Culvert Entrance#"+.@i$);
+ enablenpc instance_npcname("Missing, the Cleaner#"+.@i$+"o");
+ if (.@i$ == "n") {
+ for(set .@i,0; .@i<10; set .@i,.@i+1) {
+ set .@j, rand(1,6401);
+ if (.@j < 5001) set .@item,12636; //Malang_Sp_Can
+ else if (.@j < 5501) set .@item,12615; //Low_Coin_Pocket
+ else if (.@j < 6001) set .@item,12621; //Egrade_Pocket
+ else if (.@j < 6201) set .@item,12620; //Dgrade_Pocket
+ else if (.@j < 6401) set .@item,12623; //High_Weapon_Box
+ else continue;
+ makeitem .@item,1,.@map$,rand(40,77),rand(87,120);
+ }
+ } else if (.@i$ == "h") {
+ for(set .@i,0; .@i<10; set .@i,.@i+1) {
+ set .@j, rand(1,5001);
+ if (.@j < 2001) set .@item,12615; //Low_Coin_Pocket
+ else if (.@j < 3001) set .@item,12621; //Egrade_Pocket
+ else if (.@j < 4001) set .@item,12620; //Dgrade_Pocket
+ else if (.@j < 4501) set .@item,12619; //Cgrade_Pocket
+ else if (.@j < 5001) set .@item,12623; //High_Weapon_Box
+ else continue;
+ makeitem .@item,1,.@map$,rand(40,77),rand(87,120);
+ }
+ }
+ } else
+ mapannounce strnpcinfo(4),"There are still monsters alive.",bc_map,"0x00ff99",FW_NORMAL,20;
+ end;
+}
+
+1@pump,84,105,4 script Missing, the Cleaner#no 4_CAT_SAILOR2,{
+ set .@i$, charat(strnpcinfo(2),0);
+ if (.@i$ == "n") {
+ mes "[Missing, the Cleaner]";
+ mes "I was very surprised!!";
+ next;
+ mes "[Missing, the Cleaner]";
+ mes "That funny-looking fish seems to be one of Coelacanths living around here. This is my first time seeing one coming here alone!";
+ next;
+ mes "[Missing, the Cleaner]";
+ mes "I'll clean up the remains. Go pack and leave! Enterance is located on the other side, look for it!";
+ next;
+ } else if (.@i$ == "h") {
+ mes "[Missing, the Cleaner]";
+ mes "You've destroyed an immense monster!";
+ next;
+ mes "[Missing, the Cleaner]";
+ mes "The one you destroyed was among the variety of Coelacanths. Others have tried to destroy them but failed.";
+ next;
+ mes "[Missing, the Cleaner]";
+ mes "I'll clean up the remains. You go ahead to get trophies and leave!";
+ next;
+ }
+ mes "[Missing, the Cleaner]";
+ mes "One more thing! DO NOT TALK to ANYONE about what you've seen here today!!";
+ next;
+ mes "[Missing, the Cleaner]";
+ mes "If Tomas closes this down, we will lose our jobs!";
+ close;
+OnInstanceInit:
+ disablenpc instance_npcname(strnpcinfo(0));
+ end;
+}
+
+1@pump,32,100,0 script Culvert Entrance#n WARPNPC,3,3,{
+ end;
+OnInstanceInit:
+ disablenpc instance_npcname(strnpcinfo(0));
+ end;
+OnTouch:
+ warp "mal_in01",161,32;
+ end;
+}
+
+//MD_Putmob "1@pump" 0 0 0 0 20 HYDRA 0 0 2
+1@pump,1,1,4 script Hydra#n -1,{
+OnInstanceInit:
+ monster strnpcinfo(4),0,0,"Hydra",1068,20;
+ end;
+}
+
+// Instance: Hard Mode
+//============================================================
+2@pump,39,88,4 duplicate(Missing, the Cleaner#nf) Missing, the Cleaner#hf 4_CAT_SAILOR2
+
+2@pump,39,88,4 script Missing, the Cleaner#h 4_CAT_SAILOR2,{
+ callfunc "F_mal_missing";
+ donpcevent instance_npcname("Missing, the Cleaner#h")+"::OnStart";
+ close;
+OnStart:
+ killmonster instance_mapname("2@pump"),instance_npcname("Missing, the Cleaner#h")+"::OnMyMobDead";
+ disablenpc instance_npcname("Missing, the Cleaner#h");
+ initnpctimer;
+ end;
+OnAddSeaweed:
+ set .@map$, instance_mapname("2@pump");
+ areamonster .@map$,75,78,85,88,"Contaminated Seaweed",2191,1,instance_npcname("Missing, the Cleaner#h")+"::OnMyMobDead";
+ set .@mob_dead_num, mobcount(.@map$,instance_npcname("Missing, the Cleaner#h")+"::OnMyMobDead");
+ if (.@mob_dead_num >= 6)
+ donpcevent instance_npcname("Missing, the Cleaner#h")+"::OnFail";
+ else
+ mapannounce .@map$,"Proliferous Contaminated Seaweed: "+.@mob_dead_num+" stem",bc_map,"0xff3333",FW_NORMAL,20;
+ end;
+OnMyMobDead:
+ end;
+OnFail:
+ stopnpctimer;
+ donpcevent instance_npcname("Monster Hole#h")+"::OnClear";
+ set .@map$, instance_mapname("2@pump");
+ killmonster .@map$, instance_npcname("Missing, the Cleaner#h")+"::OnMyMobDead";
+ enablenpc instance_npcname("Missing, the Cleaner#hf");
+ mapannounce .@map$,"What is this!! Seaweed is all over the culverts! You're done with cleaning! Get out!!",bc_map,"0xff88ff",FW_NORMAL,15;
+ disablenpc instance_npcname("Missing, the Cleaner#h");
+ end;
+OnTimer100:
+ mapannounce instance_mapname("2@pump"),"First culvert will be opened in 5 sec. Cleaner can find the opened drain and click to start cleaning.",bc_map,"0x00ffcc",FW_NORMAL,15;
+ end;
+OnTimer5500:
+ mapannounce instance_mapname("2@pump"),"The one who's in charge of cleaning the culvert cannot move or be attacked until the casting is over.",bc_map,"0x00ffcc",FW_NORMAL,15;
+ donpcevent instance_npcname("Monster Hole#h")+"::OnSpawn";
+ end;
+OnTimer35000:
+OnTimer75000:
+OnTimer115000:
+OnTimer155000:
+OnTimer195000:
+OnTimer235000:
+OnTimer275000:
+OnTimer315000:
+OnTimer355000:
+ mapannounce instance_mapname("2@pump"),"Next culvert will be opened in 5 sec. Please hurry up and find the position of the next culvert.",bc_map,"0x00ffcc",FW_NORMAL,15;
+ end;
+OnTimer40000:
+OnTimer80000:
+OnTimer120000:
+ donpcevent instance_npcname("Monster Hole#h")+"::OnSpawn";
+ end;
+OnTimer160000:
+OnTimer200000:
+OnTimer240000:
+OnTimer280000:
+OnTimer320000:
+OnTimer360000:
+ set .@mob_dead_num, mobcount(instance_mapname("2@pump"),instance_npcname("Missing, the Cleaner#h")+"::OnMyMobDead");
+ if (.@mob_dead_num >= 6)
+ donpcevent instance_npcname("Missing, the Cleaner#h")+"::OnFail";
+ else
+ donpcevent instance_npcname("Monster Hole#h")+"::OnSpawn";
+ end;
+OnTimer420000:
+ mapannounce instance_mapname("2@pump"),"It seems Missing will come and inspect the results of the cleaning soon. Shall we clean up the mess around here?",bc_map,"0xff3333",FW_NORMAL,20;
+ end;
+OnTimer425000:
+ stopnpctimer;
+ set .@mob_dead_num, mobcount(instance_mapname("2@pump"),instance_npcname("Missing, the Cleaner#h")+"::OnMyMobDead");
+ if (.@mob_dead_num >= 6)
+ donpcevent instance_npcname("Missing, the Cleaner#h")+"::OnFail";
+ else
+ donpcevent instance_npcname("Boss Creation#h")+"::OnEnable";
+ end;
+}
+
+2@pump,53,114,4 script #Culvert_h1 CLEAR_NPC,14,14,{ //temporary workaround for ALL_SAMEMAP
+ progressbar "0xFFFF00",15;
+ stopnpctimer;
+ disablenpc instance_npcname(strnpcinfo(0));
+ end;
+OnInstanceInit:
+ disablenpc instance_npcname(strnpcinfo(0));
+ end;
+OnEnable:
+ enablenpc instance_npcname(strnpcinfo(0));
+ set .@label$, instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
+ set .@map$, instance_mapname("2@pump");
+ set .@index, atoi(substr(strnpcinfo(2),9,getstrlen(strnpcinfo(2))-1));
+ switch(.@index) {
+ case 1: setarray .@c[0],49,110,57,118; break;
+ case 2: setarray .@c[0],75,105,83,113; break;
+ case 3: setarray .@c[0],110,110,118,118; break;
+ case 4: setarray .@c[0],94,94,102,102; break;
+ case 5: setarray .@c[0],58,92,66,100; break;
+ case 6: setarray .@c[0],53,66,61,74; break;
+ case 7: setarray .@c[0],43,45,51,53; break;
+ case 8: setarray .@c[0],77,59,85,67; break;
+ case 9: setarray .@c[0],96,70,104,78; break;
+ case 10: setarray .@c[0],111,46,119,54; break;
+ }
+ areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"Ancient Marc",2182,rand(2,3),.@label$;
+ areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"Ancient Sword Fish",2181,rand(2,3),.@label$;
+ areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"Ancient Strouf",2180,rand(2,3),.@label$;
+ areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"Mutant Anolian",2183,rand(2,3),.@label$;
+ areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"Abysmal Obeaune",2184,rand(2,3),.@label$;
+ areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"Metamorphous Kapha",2185,rand(2,3),.@label$;
+ specialeffect EF_MAPPILLAR2,ALL_SAMEMAP; //currently broken
+ initnpctimer;
+ end;
+OnMyMobDead:
+ end;
+OnClear:
+ stopnpctimer;
+ killmonster instance_mapname("2@pump"),instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
+ end;
+OnTimer39500: //OnTimer40000 clashes with the timer in "Missing, the Cleaner#h".
+ donpcevent instance_npcname("Missing, the Cleaner#h")+"::OnAddSeaweed";
+ donpcevent instance_npcname(strnpcinfo(0))+"::OnClear";
+ disablenpc instance_npcname(strnpcinfo(0));
+ end;
+OnTouch:
+ specialeffect EF_MAPPILLAR2;
+ end;
+}
+2@pump,79,109,4 duplicate(#Culvert_h1) #Culvert_h2 CLEAR_NPC,14,14
+2@pump,114,114,4 duplicate(#Culvert_h1) #Culvert_h3 CLEAR_NPC,14,14
+2@pump,98,98,4 duplicate(#Culvert_h1) #Culvert_h4 CLEAR_NPC,14,14
+2@pump,62,96,4 duplicate(#Culvert_h1) #Culvert_h5 CLEAR_NPC,14,14
+2@pump,57,70,4 duplicate(#Culvert_h1) #Culvert_h6 CLEAR_NPC,14,14
+2@pump,47,49,4 duplicate(#Culvert_h1) #Culvert_h7 CLEAR_NPC,14,14
+2@pump,81,63,4 duplicate(#Culvert_h1) #Culvert_h8 CLEAR_NPC,14,14
+2@pump,100,74,4 duplicate(#Culvert_h1) #Culvert_h9 CLEAR_NPC,14,14
+2@pump,115,50,4 duplicate(#Culvert_h1) #Culvert_h10 CLEAR_NPC,14,14
+
+2@pump,1,1,4 duplicate(Monster Hole#n) Monster Hole#h -1
+2@pump,1,1,4 duplicate(Boss Creation#n) Boss Creation#h -1
+2@pump,39,88,4 duplicate(Missing, the Cleaner#no) Missing, the Cleaner#ho 4_CAT_SAILOR2
+2@pump,38,100,0 duplicate(Culvert Entrance#n) Culvert Entrance#h WARPNPC,3,3
+
+//MD_Putmob "2@pump" 0 0 0 0 20 HYDRA 0 0 2
+2@pump,1,1,4 duplicate(Hydra#n) Hydra#h -1
diff --git a/npc/re/instances/OctopusCave.txt b/npc/re/instances/OctopusCave.txt
new file mode 100644
index 000000000..43c2ac66f
--- /dev/null
+++ b/npc/re/instances/OctopusCave.txt
@@ -0,0 +1,712 @@
+//===== Hercules Script ======================================
+//= Octopus Cave
+//===== By: ==================================================
+//= Muad_Dib
+//===== Current Version: =====================================
+//= 1.1
+//===== Description: =========================================
+//= [Official Conversion]
+//= Defeat the Disgusting Octopus.
+//===== Additional Comments: =================================
+//= 1.0 First version. [Euphy]
+//= 1.1 Instance system rewrite. [Euphy]
+//============================================================
+
+1@cash mapflag src4instance
+//============================================================
+
+// Instance Creation
+//============================================================
+mal_dun01,151,235,5 script Starfish 4_ASTER,{
+
+ set .@party_id,getcharid(1);
+ set .@md_name$,"Octopus Cave";
+
+ if (!.@party_id) {
+ mes "[Starfish]";
+ mes "You alone is powerless, hehe!";
+ mes "Better get someone to help you out.";
+ mes "Make a party, and come back later.";
+ close;
+ }
+ if (getcharid(0) != getpartyleader(.@party_id,2)) {
+ mes "[Starfish]";
+ mes "Where is your leader, hehe.";
+ mes "I don't talk to some random people.";
+ mes "Bring your boss to me.";
+ close;
+ }
+ mes "[Starfish]";
+ mes "I am guarding here, hehe!";
+ mes "It is just roughly blocked for now.";
+ mes "But someday this cave must be sealed forever, hehe!";
+ next;
+ while(1) {
+ switch(select("Ask what's going on.:Ask to open the gate.:Go to other location.")) {
+ case 1:
+ mes "[Starfish]";
+ mes "Lately, our Starfish lady is";
+ mes "suffering with some issues, ooh ooh.";
+ mes "Something bad happen in this";
+ mes "peaceful place, hehe!";
+ next;
+ mes "[Starfish]";
+ mes "Weird looking limbs came out";
+ mes "from the hole there,";
+ mes "tried to kidnap our lady Starfish.";
+ mes "Ooh Ooh.";
+ next;
+ mes "[Starfish]";
+ mes "It seems those limbs belong to";
+ mes "that ugly octopus.";
+ mes "That monster should be taken care of,";
+ mes "but it's hard for ourselves only to make it happen, hehe.";
+ next;
+ mes "[Starfish]";
+ mes "I want to find someone special,";
+ mes "and ask to punish this ugly octopus.";
+ mes "I hope this octopus won't ever";
+ mes "harass our lady, hehe.";
+ next;
+ mes "[Starfish]";
+ mes "Go catch that octopus and stick it to this pick.";
+ mes "If you bring back the pick, I will";
+ mes "open this gate for a while.";
+ mes "You should challenge if you are interested, hehe.";
+ next;
+ break;
+ case 2:
+ set .@playtime, checkquest(4197,PLAYTIME);
+ if (.@playtime == 0 || .@playtime == 1) {
+ mes "[Starfish]";
+ mes "Octopus is not around now, hehe.";
+ mes "Please come back later.";
+ close;
+ }
+ if (.@playtime == 2) erasequest 4197;
+ if (countitem(6442)) {
+ set .@instance,instance_create(.@md_name$,.@party_id);
+ if (.@instance < 0) {
+ mes "[Starfish]";
+ mes "Party name is... "+getpartyname(.@party_id)+".";
+ mes "Party leader is... "+strcharinfo(0)+".";
+ mes "^0000ff"+.@md_name$+"^000000, I cannot open now, hehe.";
+ mes "Now is not the time, please wait.";
+ close;
+ }
+ if (instance_attachmap("1@cash",.@instance) == "") {
+ mes "^0000ff"+.@md_name$+"^000000 - Reservation Failed!";
+ instance_destroy(.@instance);
+ close;
+ }
+ instance_set_timeout 3600,300,.@instance;
+ instance_init(.@instance);
+
+ mes "[Starfish]";
+ mes "I will open the gate for a while to ^0000ff"+.@md_name$+"^000000.";
+ mes "Please catch that pervert octopus,";
+ mes "and come back with it sticked to the pick, hehe.";
+ close;
+ }
+ mes "[Starfish]";
+ mes "Prepare a pick first,";
+ mes "so you can thread that octopus";
+ mes "with that pick.";
+ mes "Then, I will let you in for a while, hehe.";
+ close;
+ case 3:
+ mes "[Starfish]";
+ mes "This is not a good location, check someplace else.";
+ close;
+ }
+ }
+}
+
+mal_dun01,153,237,5 script Weird Entrance CLEAR_NPC,{
+ mes "There is a strange entrance";
+ mes "blocked roughly with some boards.";
+ next;
+ switch(select("Go in.:Stop.")) {
+ case 1:
+ if (countitem(6442)) {
+ if (has_instance("1@cash") == "") {
+ if (checkquest(4197,PLAYTIME) == 0 || checkquest(4197,PLAYTIME) == 1) {
+ mes "[Starfish]";
+ mes "Ah, now is not the time...";
+ mes "Would you come back later? Hehe.";
+ close;
+ }
+ mes "[Starfish]";
+ mes "Shhh... Weird aura is";
+ mes "coming from that entrance.";
+ mes "Big trouble is waiting, if you go in now.";
+ close;
+ }
+ mapannounce "mal_dun01", getpartyname(getcharid(1))+" party's "+strcharinfo(0)+" member started to hunt the Octopus!",bc_map,"0x00ff99";
+ if (checkquest(4197) == -1) setquest 4197;
+ warp "1@cash",199,99;
+ end;
+ }
+ mes "[Starfish]";
+ mes "You should definitely prepare";
+ mes "hunting stick if you want to";
+ mes "punish the Octopus.";
+ mes "Or I will not let you in! Hehe.";
+ close;
+ case 2:
+ mes "[Starfish]";
+ mes "Yes Yes, you better quit.";
+ close;
+ }
+}
+
+// Instance Scripts
+//============================================================
+1@cash,199,99,0 script oct_enter HIDDEN_WARP_NPC,4,4,{
+ end;
+OnTouch:
+ donpcevent instance_npcname("oct_enter_broad")+"::OnEnable";
+ specialeffect EF_BASH;
+ disablenpc instance_npcname("oct_enter");
+ end;
+}
+
+1@cash,1,1,0 script oct_enter_broad -1,{
+ end;
+OnInstanceInit:
+ donpcevent instance_npcname("oct_enter_broad")+"::OnDisable";
+ end;
+OnEnable:
+ enablenpc instance_npcname("oct_enter_broad");
+ donpcevent instance_npcname("oct_foot_4")+"::OnEnable";
+ donpcevent instance_npcname("oct_mob_con")+"::OnEnable";
+ initnpctimer;
+ end;
+OnDisable:
+ disablenpc instance_npcname("oct_enter_broad");
+ end;
+OnTimer1000:
+ mapannounce instance_mapname("1@cash"),"Pervert Octopus : How dare you to come inside of my place!",bc_map,"0xFFFF00";
+ end;
+OnTimer4000:
+ mapannounce instance_mapname("1@cash"),"Pervert Octopus : But I blocked all the cave gates!! There is nothing you can do!",bc_map,"0xFFFF00";
+ end;
+OnTimer7000:
+ mapannounce instance_mapname("1@cash"),"Pervert Octopus : My juniors~ There is your toy! Play with it~ kakaka",bc_map,"0xFFFF00";
+ stopnpctimer;
+ donpcevent instance_npcname("oct_enter_broad")+"::OnDisable";
+ end;
+}
+
+1@cash,3,3,0 script oct_foot_4 -1,{
+ end;
+OnInstanceInit:
+ donpcevent instance_npcname("oct_foot_4")+"::OnDisable";
+ end;
+OnEnable:
+ enablenpc instance_npcname("oct_foot_4");
+ donpcevent instance_npcname("oct_foot1")+"::OnEnable";
+ donpcevent instance_npcname("oct_foot2")+"::OnEnable";
+ donpcevent instance_npcname("oct_foot3")+"::OnEnable";
+ donpcevent instance_npcname("oct_foot4")+"::OnEnable";
+ set .@map$, instance_mapname("1@cash");
+ monster .@map$,20,114,"Octopus Leg#1",2193,1,instance_npcname("oct_foot_4")+"::OnMyMobDead";
+ monster .@map$,88,190,"Octopus Leg#2",2193,1,instance_npcname("oct_foot_4")+"::OnMyMobDead";
+ monster .@map$,307,215,"Octopus Leg#3",2193,1,instance_npcname("oct_foot_4")+"::OnMyMobDead";
+ monster .@map$,372,131,"Octopus Leg#4",2193,1,instance_npcname("oct_foot_4")+"::OnMyMobDead";
+ end;
+OnDisable:
+ disablenpc instance_npcname("oct_foot_4");
+ end;
+OnMyMobDead:
+ set .@map$, instance_mapname("1@cash");
+ if (mobcount(.@map$,instance_npcname("oct_foot_4")+"::OnMyMobDead") < 1) {
+ donpcevent instance_npcname("oct_boss_con")+"::OnEnable";
+ mapannounce .@map$,"Hey you!! I'll personally take care of you all! Let's bring it on!",bc_map,"0x00ff99";
+ enablenpc instance_npcname("oct_boss_warp");
+ instance_warpall .@map$,199,99;
+ end;
+ }
+ mapannounce .@map$,"Arrgg!! That hurts!!! I need another strategy...",bc_map,"0x00ff99";
+ end;
+}
+
+1@cash,20,114,0 script oct_foot1 HIDDEN_WARP_NPC,6,6,{
+ end;
+OnInstanceInit:
+ donpcevent instance_npcname(strnpcinfo(0))+"::OnDisable";
+ end;
+OnEnable:
+ enablenpc instance_npcname(strnpcinfo(0));
+ set .@label$, instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
+ set .@i, atoi(charat(strnpcinfo(0),8));
+ set .@map$, instance_mapname("1@cash");
+ switch(.@i) {
+ case 1:
+ areamonster .@map$,34,96,38,100,"Octopus's Henchman",2192,3,.@label$;
+ areamonster .@map$,39,90,41,92,"Octopus's Henchman",2192,2,.@label$;
+ areamonster .@map$,38,76,40,78,"Octopus's Henchman",2192,2,.@label$;
+ areamonster .@map$,39,58,41,60,"Octopus's Henchman",2192,2,.@label$;
+ areamonster .@map$,50,38,56,44,"Octopus's Henchman",2192,5,.@label$;
+ areamonster .@map$,68,32,72,36,"Octopus's Henchman",2192,5,.@label$;
+ areamonster .@map$,83,26,85,28,"Octopus's Henchman",2192,2,.@label$;
+ areamonster .@map$,107,28,109,30,"Octopus's Henchman",2192,1,.@label$;
+ areamonster .@map$,123,28,125,30,"Octopus's Henchman",2192,2,.@label$;
+ areamonster .@map$,134,31,138,35,"Octopus's Henchman",2192,5,.@label$;
+ areamonster .@map$,142,39,146,43,"Octopus's Henchman",2192,2,.@label$;
+ break;
+ case 2:
+ areamonster .@map$,139,113,143,117,"Octopus's Henchman",2192,5,.@label$;
+ areamonster .@map$,135,104,137,106,"Octopus's Henchman",2192,2,.@label$;
+ areamonster .@map$,123,93,127,97,"Octopus's Henchman",2192,3,.@label$;
+ areamonster .@map$,113,90,115,92,"Octopus's Henchman",2192,2,.@label$;
+ areamonster .@map$,103,89,105,91,"Octopus's Henchman",2192,2,.@label$;
+ areamonster .@map$,89,90,91,92,"Octopus's Henchman",2192,2,.@label$;
+ areamonster .@map$,74,104,76,106,"Octopus's Henchman",2192,2,.@label$;
+ areamonster .@map$,74,120,76,122,"Octopus's Henchman",2192,2,.@label$;
+ areamonster .@map$,83,131,87,135,"Octopus's Henchman",2192,3,.@label$;
+ areamonster .@map$,92,142,94,144,"Octopus's Henchman",2192,2,.@label$;
+ areamonster .@map$,98,159,100,161,"Octopus's Henchman",2192,2,.@label$;
+ areamonster .@map$,94,180,98,184,"Octopus's Henchman",2192,5,.@label$;
+ break;
+ case 3:
+ areamonster .@map$,299,209,303,213,"Octopus's Henchman",2192,3,.@label$;
+ areamonster .@map$,292,203,296,207,"Octopus's Henchman",2192,3,.@label$;
+ areamonster .@map$,291,186,293,188,"Octopus's Henchman",2192,2,.@label$;
+ areamonster .@map$,292,166,294,168,"Octopus's Henchman",2192,2,.@label$;
+ areamonster .@map$,293,151,295,153,"Octopus's Henchman",2192,2,.@label$;
+ areamonster .@map$,299,137,303,141,"Octopus's Henchman",2192,2,.@label$;
+ areamonster .@map$,300,123,304,127,"Octopus's Henchman",2192,2,.@label$;
+ areamonster .@map$,300,104,304,108,"Octopus's Henchman",2192,3,.@label$;
+ areamonster .@map$,279,101,281,103,"Octopus's Henchman",2192,2,.@label$;
+ monster .@map$,260,103,"Octopus's Henchman",2192,1,.@label$;
+ break;
+ case 4:
+ areamonster .@map$,363,123,367,127,"Octopus's Henchman",2192,2,.@label$;
+ areamonster .@map$,364,108,368,112,"Octopus's Henchman",2192,5,.@label$;
+ areamonster .@map$,363,93,367,97,"Octopus's Henchman",2192,3,.@label$;
+ areamonster .@map$,364,72,366,74,"Octopus's Henchman",2192,2,.@label$;
+ areamonster .@map$,364,58,366,60,"Octopus's Henchman",2192,2,.@label$;
+ areamonster .@map$,355,44,359,48,"Octopus's Henchman",2192,3,.@label$;
+ areamonster .@map$,346,36,350,40,"Octopus's Henchman",2192,3,.@label$;
+ areamonster .@map$,319,28,325,34,"Octopus's Henchman",2192,5,.@label$;
+ areamonster .@map$,305,27,307,29,"Octopus's Henchman",2192,2,.@label$;
+ areamonster .@map$,276,29,280,33,"Octopus's Henchman",2192,5,.@label$;
+ areamonster .@map$,258,37,262,41,"Octopus's Henchman",2192,2,.@label$;
+ break;
+ }
+ end;
+OnDisable:
+ killmonster instance_mapname("1@cash"),instance_npcname(strnpcinfo(0))+"::OnMyMobDead"; // Not in official script.
+ disablenpc instance_npcname(strnpcinfo(0));
+ end;
+OnTouch:
+ if (getd("."+strnpcinfo(0)+instance_id())) end;
+ setd "."+strnpcinfo(0)+instance_id(),1;
+ hideonnpc instance_npcname(strnpcinfo(0));
+ mapannounce instance_mapname("1@cash"),"Come out all my babies and help me out!",bc_map,"0xFFFF00";
+ initnpctimer;
+ end;
+OnTimer5000:
+ set .@map$, instance_mapname("1@cash");
+ mapannounce .@map$,"Let's give them a lesson!",bc_map,"0xFFFF00";
+ set .@label$, instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
+ set .@i, atoi(charat(strnpcinfo(0),8));
+ switch(.@i) {
+ case 1:
+ areamonster .@map$,18,112,22,116,"Octopus's Henchman",2192,3,.@label$;
+ areamonster .@map$,18,112,22,116,"Octopus's Henchman",2192,3,.@label$;
+ break;
+ case 2:
+ areamonster .@map$,86,188,90,192,"Octopus's Henchman",2192,3,.@label$;
+ areamonster .@map$,96,98,100,102,"Octopus's Henchman",2192,3,.@label$;
+ break;
+ case 3:
+ areamonster .@map$,305,213,309,217,"Octopus's Henchman",2192,3,.@label$;
+ areamonster .@map$,305,213,309,217,"Octopus's Henchman",2192,3,.@label$;
+ break;
+ case 4:
+ areamonster .@map$,370,129,374,133,"Octopus's Henchman",2192,3,.@label$;
+ areamonster .@map$,370,129,374,133,"Octopus's Henchman",2192,3,.@label$;
+ break;
+ }
+ end;
+OnTimer30000:
+ setd "."+strnpcinfo(0)+instance_id(),0;
+ stopnpctimer;
+ set .@i, atoi(charat(strnpcinfo(0),8));
+ donpcevent instance_npcname("oct_foot_exit"+.@i)+"::OnEnable";
+ donpcevent instance_npcname(strnpcinfo(0))+"::OnDisable";
+ end;
+OnMyMobDead:
+ set .@map$, instance_mapname("1@cash");
+ if (mobcount(.@map$,instance_npcname(strnpcinfo(0))+"::OnMyMobDead") < 1) {
+ mapannounce .@map$,"You hurt my babies!!? You'll have to pay for this!!!",bc_map,"0x00ff99";
+ setd "."+strnpcinfo(0)+instance_id(),0;
+ stopnpctimer;
+ set .@i, atoi(charat(strnpcinfo(0),8));
+ donpcevent instance_npcname("oct_foot_exit"+.@i)+"::OnEnable";
+ donpcevent instance_npcname(strnpcinfo(0))+"::OnDisable";
+ end;
+ }
+ end;
+}
+1@cash,88,190,0 duplicate(oct_foot1) oct_foot2 HIDDEN_WARP_NPC,6,6
+1@cash,307,215,0 duplicate(oct_foot1) oct_foot3 HIDDEN_WARP_NPC,6,6
+1@cash,372,131,0 duplicate(oct_foot1) oct_foot4 HIDDEN_WARP_NPC,6,6
+
+1@cash,16,117,0 script oct_foot_exit1 WARPNPC,2,2,{
+ end;
+OnInstanceInit:
+ disablenpc instance_npcname(strnpcinfo(0));
+ end;
+OnEnable:
+ enablenpc instance_npcname(strnpcinfo(0));
+ end;
+OnTouch:
+ warp instance_mapname("1@cash"),198,99;
+ end;
+}
+1@cash,77,193,0 duplicate(oct_foot_exit1) oct_foot_exit2 WARPNPC,2,2
+1@cash,312,214,0 duplicate(oct_foot_exit1) oct_foot_exit3 WARPNPC,2,2
+1@cash,370,139,0 duplicate(oct_foot_exit1) oct_foot_exit4 WARPNPC,2,2
+
+1@cash,15,15,0 script oct_mob_con -1,{
+ end;
+OnInstanceInit:
+ donpcevent instance_npcname("oct_mob_con")+"::OnDisable";
+ end;
+OnEnable:
+ set .@map$, instance_mapname("1@cash");
+ enablenpc instance_npcname("oct_mob_con");
+ monster .@map$,32,94,"Hydra",1068,1;
+ monster .@map$,41,101,"Hydra",1068,1;
+ monster .@map$,35,78,"Hydra",1068,1;
+ monster .@map$,35,62,"Hydra",1068,1;
+ monster .@map$,49,54,"Hydra",1068,1;
+ monster .@map$,70,28,"Hydra",1068,1;
+ monster .@map$,83,22,"Hydra",1068,1;
+ monster .@map$,99,23,"Hydra",1068,1;
+ monster .@map$,115,23,"Hydra",1068,1;
+ monster .@map$,132,25,"Hydra",1068,1;
+ monster .@map$,100,185,"Hydra",1068,1;
+ monster .@map$,92,178,"Hydra",1068,1;
+ monster .@map$,92,162,"Hydra",1068,1;
+ monster .@map$,70,121,"Hydra",1068,1;
+ monster .@map$,70,105,"Hydra",1068,1;
+ monster .@map$,105,85,"Hydra",1068,1;
+ monster .@map$,121,84,"Hydra",1068,1;
+ monster .@map$,292,209,"Hydra",1068,1;
+ monster .@map$,303,206,"Hydra",1068,1;
+ monster .@map$,290,163,"Hydra",1068,1;
+ monster .@map$,299,150,"Hydra",1068,1;
+ monster .@map$,308,141,"Hydra",1068,1;
+ monster .@map$,308,125,"Hydra",1068,1;
+ monster .@map$,295,97,"Hydra",1068,1;
+ monster .@map$,279,97,"Hydra",1068,1;
+ monster .@map$,370,111,"Hydra",1068,1;
+ monster .@map$,370,110,"Hydra",1068,1;
+ monster .@map$,371,96,"Hydra",1068,1;
+ monster .@map$,371,80,"Hydra",1068,1;
+ monster .@map$,367,55,"Hydra",1068,1;
+ monster .@map$,343,29,"Hydra",1068,1;
+ monster .@map$,327,24,"Hydra",1068,1;
+ monster .@map$,311,22,"Hydra",1068,1;
+ monster .@map$,295,22,"Hydra",1068,1;
+ monster .@map$,279,22,"Hydra",1068,1;
+ areamonster .@map$,30,67,50,87,"Stapo",1784,1;
+ areamonster .@map$,102,19,122,39,"Stapo",1784,1;
+ areamonster .@map$,89,138,109,158,"Stapo",1784,1;
+ areamonster .@map$,112,83,132,103,"Stapo",1784,1;
+ areamonster .@map$,283,168,303,188,"Stapo",1784,1;
+ areamonster .@map$,292,97,312,117,"Stapo",1784,1;
+ areamonster .@map$,355,64,375,84,"Stapo",1784,1;
+ areamonster .@map$,317,17,337,37,"Stapo",1784,1;
+ donpcevent instance_npcname("oct_backattack1")+"::OnEnable";
+ donpcevent instance_npcname("oct_backattack2")+"::OnEnable";
+ donpcevent instance_npcname("oct_backattack3")+"::OnEnable";
+ donpcevent instance_npcname("oct_backattack4")+"::OnEnable";
+ donpcevent instance_npcname("oct_mob_con")+"::OnDisable";
+ end;
+OnDisable:
+ disablenpc instance_npcname("oct_mob_con");
+ end;
+}
+
+1@cash,45,53,0 script oct_backattack1 HIDDEN_WARP_NPC,3,3,{
+ end;
+OnInstanceInit:
+ disablenpc instance_npcname("oct_backattack1");
+ end;
+OnTouch:
+ set .@map$, instance_mapname("1@cash");
+ monster .@map$,39,59,"Hydra",1068,1;
+ monster .@map$,40,59,"Hydra",1068,1;
+ monster .@map$,41,59,"Hydra",1068,1;
+ monster .@map$,47,50,"Hydra",1068,1;
+ monster .@map$,48,50,"Hydra",1068,1;
+ monster .@map$,49,50,"Hydra",1068,1;
+ monster .@map$,41,53,"Octopus's Henchman",2192,1;
+ mapannounce .@map$,"Don't let them break through, stop them!!!",bc_map,"0x00ff99";
+ specialeffect EF_BASH;
+ disablenpc instance_npcname("oct_backattack1");
+ end;
+OnEnable:
+ enablenpc instance_npcname("oct_backattack1");
+ end;
+}
+
+1@cash,78,99,0 script oct_backattack2 HIDDEN_WARP_NPC,3,3,{
+ end;
+OnInstanceInit:
+ disablenpc instance_npcname("oct_backattack2");
+ end;
+OnTouch:
+ if (getd("."+instance_id())) end;
+ setd "."+instance_id(),1;
+ initnpctimer;
+ set .@map$, instance_mapname("1@cash");
+ monster .@map$,71,105,"Octopus's Henchman ",2192,1;
+ mapannounce .@map$,"Headquarters are empty, GO!!!",bc_map,"0x00ff99";
+ hideonnpc instance_npcname("oct_backattack2");
+ end;
+OnTimer2000:
+ set .@map$, instance_mapname("1@cash");
+ monster .@map$,71,105,"Octopus's Henchman ",2192,1;
+ mapannounce .@map$,"Run, RUN! Go, GO!!!",bc_map,"0x00ff99";
+ end;
+OnTimer4000:
+ set .@map$, instance_mapname("1@cash");
+ monster .@map$,71,105,"Octopus's Henchman ",2192,1;
+ mapannounce .@map$,"No time, come out fast!",bc_map,"0x00ff99";
+ end;
+OnTimer6000:
+ set .@map$, instance_mapname("1@cash");
+ monster .@map$,71,105,"Octopus's Henchman ",2192,3;
+ mapannounce .@map$,"Let's take over the headquarters!!!",bc_map,"0x00ff99";
+ end;
+OnTimer8000:
+ set .@map$, instance_mapname("1@cash");
+ monster .@map$,71,105,"Octopus's Henchman ",2192,1;
+ mapannounce .@map$,"There is no time to lose, hurry up!!!",bc_map,"0x00ff99";
+ stopnpctimer;
+ end;
+OnEnable:
+ enablenpc instance_npcname("oct_backattack2");
+ end;
+}
+
+1@cash,299,144,0 script oct_backattack3 HIDDEN_WARP_NPC,3,3,{
+ end;
+OnInstanceInit:
+ disablenpc instance_npcname("oct_backattack3");
+ end;
+OnTouch:
+ if (getd("."+instance_id())) end;
+ setd "."+instance_id(),1;
+ set .@map$, instance_mapname("1@cash");
+ monster .@map$,293,153,"Octopus's Henchman ",2192,1;
+ monster .@map$,294,152,"Octopus's Henchman ",2192,1;
+ monster .@map$,292,153,"Octopus's Henchman ",2192,1;
+ monster .@map$,293,151,"Octopus's Henchman ",2192,1;
+ monster .@map$,293,152,"Octopus's Henchman ?",2175,1;
+ mapannounce .@map$,"Kakaka! Suprised??!!",bc_map,"0x00ff99";
+ initnpctimer;
+ hideonnpc instance_npcname("oct_backattack3");
+ end;
+OnTimer5000:
+ mapannounce instance_mapname("1@cash"),"... Looks like we have a spy among us.",bc_map,"0x00ff99";
+ stopnpctimer;
+ end;
+OnEnable:
+ enablenpc instance_npcname("oct_backattack3");
+ end;
+}
+
+1@cash,336,36,0 script oct_backattack4 HIDDEN_WARP_NPC,3,3,{
+ end;
+OnInstanceInit:
+ disablenpc instance_npcname("oct_backattack4");
+ end;
+OnTouch:
+ if (getd("."+instance_id())) end;
+ setd "."+instance_id(),1;
+ set .@map$, instance_mapname("1@cash");
+ monster .@map$,332,37,"Octopus's Henchman ",2192,1;
+ monster .@map$,332,36,"Octopus's Henchman ",2192,1;
+ monster .@map$,332,35,"Octopus's Henchman ",2192,1;
+ monster .@map$,332,34,"Octopus's Henchman ",2192,1;
+ monster .@map$,341,37,"Octopus's Henchman ",2192,1;
+ monster .@map$,341,36,"Octopus's Henchman ",2192,1;
+ monster .@map$,341,35,"Octopus's Henchman ",2192,1;
+ monster .@map$,341,34,"Octopus's Henchman ",2192,1;
+ monster .@map$,260,40,"Mercenary Squid",2175,1;
+ monster .@map$,260,41,"Mercenary Squid",2175,1;
+ monster .@map$,260,39,"Mercenary Squid",2175,1;
+ monster .@map$,259,40,"Mercenary Squid",2175,1;
+ monster .@map$,261,40,"Mercenary Squid",2175,1;
+ mapannounce .@map$,"What a successful pincer tactic! The enemy is strong! Let's not lose yourselves! Anyway, where are all the mercenaries??",bc_map,"0x00ff99";
+ initnpctimer;
+ hideonnpc instance_npcname("oct_backattack4");
+ end;
+OnTimer5000:
+ mapannounce instance_mapname("1@cash"),"Mercenary Squid : eh...eh... wrong direction. No enemies are shown in this direction.",bc_map,"0x00ff99";
+ end;
+OnTimer7000:
+ mapannounce instance_mapname("1@cash"),"Pervert Octopus : Fools! Can't you read the map??!! Useless!!",bc_map,"0x00ff99";
+ stopnpctimer;
+ end;
+OnEnable:
+ enablenpc instance_npcname("oct_backattack4");
+ end;
+}
+
+1@cash,2,2,0 script oct_boss_con -1,{
+ end;
+OnInstanceInit:
+ donpcevent instance_npcname("oct_boss_con")+"::OnDisable";
+ end;
+OnDisable:
+ disablenpc instance_npcname("oct_boss_con");
+ end;
+OnEnable:
+ enablenpc instance_npcname("oct_boss_con");
+ donpcevent instance_npcname("oct_boss_foot")+"::OnEnable";
+ monster instance_mapname("1@cash"),199,188,"Disgusting Octopus",2194,1,instance_npcname("oct_boss_con")+"::OnMyMobDead";
+ initnpctimer;
+ end;
+OnTimer7000:
+ callsub OnAnnounce,
+ "You won't attack the one man.",
+ "I got fired from ink manufacturer last week.",
+ "Disgusting Octopus : Arghhhhh, come on!";
+ end;
+OnTimer14000:
+ callsub OnAnnounce,
+ "Why... why can't you know my heart!",
+ "Do you know how hard it is to live these days because there are not many new adventurers?",
+ "You.. I'll destroy you all...!";
+ end;
+OnTimer21000:
+ callsub OnAnnounce,
+ "What? I'm a disgusting octopus? You're sadists.",
+ "Let's not do this and how about we look for the best solution, huh??",
+ "Even if I fail here, I will keep coming back, forever!!!";
+ end;
+OnTimer28000:
+ callsub OnAnnounce,
+ "Instinct of mating is for males, what did I do wrong?",
+ "Do you really want to solve the problem between humans by violence?? Ah, I'm an octopus...",
+ "That's enough! Back off!";
+ end;
+OnTimer35000:
+ callsub OnAnnounce,
+ "Do I have to spend Christmas alone again...",
+ "Youth unemployment became a big issue these days... You won't get a job if you keep playing with me here.",
+ "This is as far as I can go!";
+ end;
+OnTimer42000:
+ callsub OnAnnounce,
+ "Hand on your heart and think if you come onto anyone...",
+ "Let's not do this here and follow the law!",
+ "You'll keep on doing this til the end, is that it?";
+ end;
+OnTimer49000:
+ callsub OnAnnounce,
+ "errrrrrrrrrrrrrrrrrrrrrrrr... Cough! Cough!",
+ "Disgusting Octopus : Violence cannot be justified in any case.",
+ "This is my place!!!";
+ stopnpctimer;
+ initnpctimer;
+ end;
+OnAnnounce:
+ mapannounce instance_mapname("1@cash"),"Disgusting Octopus : "+getarg(rand(3)),bc_map,"0xFFFF00";
+ return;
+OnMyMobDead:
+ set .@map$, instance_mapname("1@cash");
+ if (mobcount(.@map$,instance_npcname("oct_boss_con")+"::OnMyMobDead") < 1) {
+ mapannounce .@map$,"Disgusting Octopus : That's it for the today! Next time, I will play with you badly!",bc_map,"0xFFFF00";
+ enablenpc instance_npcname("oct_exit_1");
+ enablenpc instance_npcname("oct_exit_2");
+ donpcevent instance_npcname("oct_boss_foot")+"::OnDisable";
+ stopnpctimer;
+ donpcevent instance_npcname("oct_boss_con")+"::OnDisable";
+ end;
+ }
+ end;
+}
+
+1@cash,4,4,0 script oct_boss_foot -1,{
+ end;
+OnInstanceInit:
+ donpcevent instance_npcname("oct_boss_foot")+"::OnDisable";
+ end;
+OnEnable:
+ enablenpc instance_npcname("oct_boss_foot");
+ initnpctimer;
+ end;
+OnCall:
+ set .@map$, instance_mapname("1@cash");
+ if (mobcount(.@map$,instance_npcname("oct_boss_foot")+"::OnMyMobDead") < 100) {
+ switch(rand(2)) {
+ case 0:
+ mapannounce .@map$,"Disgusting Octopus : Do you know how many legs octopus have? It doesn't matter, I have unlimited legs!!",bc_map,"0xFFFF00";
+ areamonster .@map$,192,181,206,195,"Octopus Leg",2193,1,instance_npcname("oct_boss_foot")+"::OnMyMobDead";
+ break;
+ case 1:
+ mapannounce .@map$,"Disgusting Octopus : I...cannot..hold anymore, my babies~ please come out and fight!",bc_map,"0xFFFF00";
+ areamonster .@map$,192,181,206,195,"Octopus's Henchman ",2192,5,instance_npcname("oct_boss_foot")+"::OnMyMobDead";
+ break;
+ }
+ }
+ initnpctimer;
+ end;
+OnTimer10000:
+ stopnpctimer;
+ donpcevent instance_npcname("oct_boss_foot")+"::OnCall";
+ end;
+OnDisable:
+ stopnpctimer;
+ killmonster instance_mapname("1@cash"),instance_npcname("oct_boss_foot")+"::OnMyMobDead"; // Not in official script.
+ disablenpc instance_npcname("oct_boss_foot");
+ end;
+OnMyMobDead:
+ end;
+}
+
+1@cash,198,116,0 script oct_boss_warp WARPNPC,2,2,{
+ end;
+OnInstanceInit:
+ disablenpc instance_npcname("oct_boss_warp");
+ end;
+OnTouch:
+ warp instance_mapname("1@cash"),210,172;
+ end;
+}
+
+1@cash,190,208,0 script oct_exit_1 WARPNPC,2,2,{
+ end;
+OnInstanceInit:
+ disablenpc instance_npcname(strnpcinfo(0));
+ end;
+OnTouch:
+ mes "Do you want to go out from the octopus dungeon?";
+ next;
+ if(select("No!:Yes!") == 2)
+ warp "mal_dun01",153,233;
+ close;
+}
+1@cash,198,82,0 duplicate(oct_exit_1) oct_exit_2 WARPNPC,2,2
+// This is never enabled in the official script.
+//1@cash,200,161,0 duplicate(oct_exit_1) oct_exit_3 WARPNPC,2,2
+
+// Warp Portals
+//============================================================
+1@cash,193,82,0 warp oct_door1 2,2,1@cash,151,48
+1@cash,154,53,0 warp oct_door2 2,2,1@cash,197,87
+1@cash,187,99,0 warp oct_door3 2,2,1@cash,148,128
+1@cash,153,133,0 warp oct_door4 2,2,1@cash,197,99
+1@cash,209,100,0 warp oct_door5 2,2,1@cash,250,111
+1@cash,244,118,0 warp oct_door6 2,2,1@cash,199,100
+1@cash,209,83,0 warp oct_door7 2,2,1@cash,252,46
+1@cash,246,53,0 warp oct_door8 2,2,1@cash,203,83
diff --git a/npc/re/instances/OldGlastHeim.txt b/npc/re/instances/OldGlastHeim.txt
new file mode 100644
index 000000000..4be3133bc
--- /dev/null
+++ b/npc/re/instances/OldGlastHeim.txt
@@ -0,0 +1,2059 @@
+//===== Hercules Script ======================================
+//= Old Glast Heim
+//===== By: ==================================================
+//= Ziu, Heris (translation)
+//===== Current Version: =====================================
+//= 1.0
+//===== Description: =========================================
+//= Discover the history of events that took place in the
+//= Glast Heim castle and how it ended up in ruins.
+//===== Additional Comments: =================================
+//= 1.0 First version. [Euphy]
+//============================================================
+
+1@gl_k mapflag src4instance
+2@gl_k mapflag src4instance
+//============================================================
+glast_01,204,273,6 script Hugin#ghinstance 4_M_SAGE_C,{
+ mes "^ff0000This isn't considered a normal progression dungeon. Please note this point.^000000";
+ next;
+ mes "[Hugin]";
+ mes "Huh? You feel like you have seen me in different places? I see. What can I say?";
+ next;
+ set .@ghins_time, checkquest(12317,PLAYTIME);
+ if (.@ghins_time == -1) {
+
+ set .@party_id,getcharid(1);
+ set .@p_name$,getpartyname(.@party_id);
+ set .@md_name$,"Old Glast Heim";
+
+ if (!instance_check_party(.@party_id,2)) {
+ //custom
+ mes "[Hugin]";
+ mes "Where are your party members?";
+ close;
+ }
+
+ if (getcharid(0) == getpartyleader(.@party_id,2))
+ set .@menu$, "Create the time gap.:Enter the Old Glast Heim.:Cancel.";
+ else
+ set .@menu$, ":Enter the Old Glast Heim.:Cancel.";
+ switch(select(.@menu$)) {
+ case 1:
+ set .@instance, instance_create(.@md_name$,.@party_id);
+ if (.@instance < 0) {
+ mes "Party Name: "+.@p_name$;
+ mes "Party Leader: "+strcharinfo(0);
+ mes "^0000ff"+.@md_name$+" ^000000- Reservation Failed!";
+ close;
+ }
+ if (instance_attachmap("1@gl_k",.@instance) == "" || instance_attachmap("2@gl_k",.@instance) == "") {
+ mes "^0000ff"+.@md_name$+"^000000 - Reservation Failed!";
+ instance_destroy(.@instance);
+ close;
+ }
+ instance_set_timeout 3600,300,.@instance;
+ instance_init(.@instance);
+ mes "[Hugin]";
+ mes "The time gap was created. When you're ready, talk to me again.";
+ close;
+ case 2:
+ if( has_instance("1@gl_k") == "" ) {
+ mes "The memorial dungeon "+.@md_name$+" does not exist.";
+ mes "The party leader did not generate the dungeon yet.";
+ close;
+ } else {
+ mapannounce "glast_01",strcharinfo(0)+", member of the party "+.@p_name$+" entered the instance "+.@md_name$+".",bc_map,"0x00ff99";
+ setquest 12317;
+ setquest 12318;
+ warp "1@gl_k",150,20;
+ end;
+ }
+ case 3:
+ close;
+ }
+ } else if (.@ghins_time == 0 || .@ghins_time == 1) {
+ mes "[Hugin]";
+ mes "Oh, geez.";
+ mes "Your body is still under the effects of time travel. In this state, you will not be able to travel again.";
+ next;
+ mes "[Hugin]";
+ mes "You should rest and come back later for more.";
+ close;
+ } else {
+ mes "^0000ffOld Glast Heim access trail has been cleared. It is now possible to talk to Hugin.^000000";
+ erasequest 12317;
+ if (checkquest(12318) > -1) erasequest 12318;
+ if (checkquest(12319) > -1) erasequest 12319;
+ close;
+ }
+}
+
+// Floor 1
+//============================================================
+1@gl_k,149,41,6 script Varmunt#ghinstance1 4_M_BARMUND,{
+ if (getcharid(0) == getpartyleader(getcharid(1),2)) {
+ mes "Hey ^0000ffguys^000000, were you sent here to help me?";
+ npctalk "Hey guys, were you sent here to help me?";
+ cutin "gl_barmund1",2;
+ next;
+ select("Oh. Well, about that...");
+ mes "["+strcharinfo(0)+"]";
+ mes "Oh yeah, hahaha, we were told to meet someone called Varmunt.";
+ unittalk getcharid(3),"Oh yeah, hahaha, we were told to meet someone called Varmunt.";
+ next;
+ mes "[Varmunt]";
+ mes "We don't have time. We must tell Sir Heinrich about Himmelmez's invasion.";
+ npctalk "We don't have time. We must tell Sir Heinrich about Himmelmez's invasion.";
+ cutin "gl_barmund2",2;
+ next;
+ select("What Himmelmez...");
+ mes "["+strcharinfo(0)+"]";
+ mes "Himmelmez? Who the hell is she?";
+ unittalk getcharid(3),"Himmelmez? Who the hell is she?";
+ next;
+ mes "[Varmunt]";
+ mes "Didn't anybody give you the basic informations?";
+ npctalk "Didn't anybody give you the basic informations?";
+ cutin "gl_barmund3",2;
+ next;
+ mes "[Varmunt]";
+ mes "The Valkyrie of the dead. She's after the Ymir's Heart pieces hidden here.";
+ npctalk "The Valkyrie of the dead. She's after the Ymir's Heart pieces hidden here";
+ cutin "gl_barmund2",2;
+ next;
+ mes "[Varmunt]";
+ mes "She's capable of destroying the whole castle for this purpose.";
+ npctalk "She's capable of destroying the whole castle for this purpose.";
+ next;
+ mes "[Varmunt]";
+ mes "Hurry up! Inform Sir Heinrich that Himmelmez is coming. I will briefly explore the enchantments she made to this place!";
+ npctalk "Hurry up! Inform Sir Heinrich that Himmelmez is coming. I will briefly explore the enchantments she made to this place!";
+ close2;
+ cutin "gl_barmund2",255;
+ donpcevent instance_npcname("Varmunt#ghinstance1")+"::OnDisable2";
+ end;
+ } else {
+ mes "[Varmunt]";
+ mes "Where is he? We";
+ mes "need his help.";
+ cutin "gl_barmund2",2;
+ close2;
+ cutin "gl_barmund2",255;
+ end;
+ }
+OnInstanceInit:
+ donpcevent instance_npcname("Varmunt#ghinstance1")+"::OnEnable";
+ end;
+OnDisable:
+ hideonnpc instance_npcname("Varmunt#ghinstance1");
+ end;
+OnDisable2:
+ hideonnpc instance_npcname("Varmunt#ghinstance1");
+
+ for(set .@i,1; .@i<=20; set .@i,.@i+4) {
+ hideoffnpc instance_npcname("Khalitzburg Crusader#"+.@i);
+ hideoffnpc instance_npcname("Khalitzburg Crusader#"+(.@i+1));
+ hideoffnpc instance_npcname("White Knight#"+(.@i+2));
+ hideoffnpc instance_npcname("White Knight#"+(.@i+3));
+ }
+ hideoffnpc instance_npcname("Khalitzburg Crusader#21");
+ hideoffnpc instance_npcname("Khalitzburg Crusader#22");
+
+ hideoffnpc instance_npcname("Heinrich#ghinstance1");
+ hideoffnpc instance_npcname("Varmunt#ghinstance2");
+ end;
+OnEnable:
+ hideoffnpc instance_npcname("Varmunt#ghinstance1");
+ end;
+}
+
+1@gl_k,145,54,6 script Khalitzburg Crusader#1 4_F_KHALITZBURG,{
+ mes "["+strnpcinfo(1)+"]";
+ switch((atoi(strnpcinfo(2)) + 1) / 2) {
+ case 1: mes "Would I be recruited?"; break;
+ case 2: mes "May I help you?"; break;
+ case 3: mes "..."; break;
+ case 4: mes "I do not like to chit-chat during work."; break;
+ case 5: mes "The aura of the castle has changed, don't you think? Something like a presence seemed to appear a little while ago."; break;
+ case 6: mes "I wonder what commandant Varmunt is doing. I heard people are running away..."; break;
+ case 7: mes "Quiet please."; break;
+ case 8: mes "A fuss seems to be near."; break;
+ case 9: mes "A dream last night really bothered me. My mother used to say that these dreams may come true..."; break;
+ case 10: mes "Is Varmunt going with you? The commandant is waiting for you."; break;
+ case 11: mes "Soon it's time to change shifts. I wonder what happened to the other knights."; break;
+ }
+ close;
+OnInstanceInit:
+ donpcevent instance_npcname(strnpcinfo(0))+"::OnDisable";
+ end;
+OnDisable:
+ hideonnpc instance_npcname(strnpcinfo(0));
+ end;
+OnEnable:
+ hideoffnpc instance_npcname(strnpcinfo(0));
+ end;
+}
+1@gl_k,154,54,3 duplicate(Khalitzburg Crusader#1) Khalitzburg Crusader#2 4_F_KHALITZBURG
+1@gl_k,145,59,6 duplicate(Khalitzburg Crusader#1) White Knight#3 4_WHITEKNIGHT
+1@gl_k,154,59,3 duplicate(Khalitzburg Crusader#1) White Knight#4 4_WHITEKNIGHT
+1@gl_k,145,64,6 duplicate(Khalitzburg Crusader#1) Khalitzburg Crusader#5 4_F_KHALITZBURG
+1@gl_k,154,64,3 duplicate(Khalitzburg Crusader#1) Khalitzburg Crusader#6 4_F_KHALITZBURG
+1@gl_k,145,69,6 duplicate(Khalitzburg Crusader#1) White Knight#7 4_WHITEKNIGHT
+1@gl_k,154,69,3 duplicate(Khalitzburg Crusader#1) White Knight#8 4_WHITEKNIGHT
+1@gl_k,145,74,6 duplicate(Khalitzburg Crusader#1) Khalitzburg Crusader#9 4_F_KHALITZBURG
+1@gl_k,154,74,3 duplicate(Khalitzburg Crusader#1) Khalitzburg Crusader#10 4_F_KHALITZBURG
+1@gl_k,145,79,6 duplicate(Khalitzburg Crusader#1) White Knight#11 4_WHITEKNIGHT
+1@gl_k,154,79,3 duplicate(Khalitzburg Crusader#1) White Knight#12 4_WHITEKNIGHT
+1@gl_k,145,84,6 duplicate(Khalitzburg Crusader#1) Khalitzburg Crusader#13 4_F_KHALITZBURG
+1@gl_k,154,84,3 duplicate(Khalitzburg Crusader#1) Khalitzburg Crusader#14 4_F_KHALITZBURG
+1@gl_k,145,89,6 duplicate(Khalitzburg Crusader#1) White Knight#15 4_WHITEKNIGHT
+1@gl_k,154,89,3 duplicate(Khalitzburg Crusader#1) White Knight#16 4_WHITEKNIGHT
+1@gl_k,145,94,6 duplicate(Khalitzburg Crusader#1) Khalitzburg Crusader#17 4_F_KHALITZBURG
+1@gl_k,154,94,3 duplicate(Khalitzburg Crusader#1) Khalitzburg Crusader#18 4_F_KHALITZBURG
+1@gl_k,145,99,6 duplicate(Khalitzburg Crusader#1) White Knight#19 4_WHITEKNIGHT
+1@gl_k,154,99,3 duplicate(Khalitzburg Crusader#1) White Knight#20 4_WHITEKNIGHT
+1@gl_k,145,104,6 duplicate(Khalitzburg Crusader#1) Khalitzburg Crusader#21 4_F_KHALITZBURG
+1@gl_k,154,104,3 duplicate(Khalitzburg Crusader#1) Khalitzburg Crusader#22 4_F_KHALITZBURG
+
+1@gl_k,149,100,6 script Heinrich#ghinstance1 4_M_HEINRICH,{
+ if (getcharid(0) == getpartyleader(getcharid(1),2)) {
+ cutin "gl_heinrich2",2;
+ select("Heinrich, about the castle...");
+ mes "["+strcharinfo(0)+"]";
+ mes "Do you know what is happening now in the castle, Heinrich?";
+ unittalk getcharid(3),"Do you know what is happening now in the castle, Heinrich?";
+ next;
+ mes "[Heinrich]";
+ mes "You are the adventurers who have come with Varmunt, right?";
+ npctalk "You are the adventurers who have come with Varmunt, right?";
+ next;
+ mes "[Heinrich]";
+ mes "What can I do for you? Is there something wrong?";
+ npctalk "What can I do for you? Is there something wrong?";
+ next;
+ select("The Ymir's Heart. Himmelmez...");
+ mes "["+strcharinfo(0)+"]";
+ mes "Himmelmez, the Valkyrie of the dead is looking to get a piece of the Ymir's heart hidden in the castle!";
+ unittalk getcharid(3),"Himmelmez, the Valkyrie of the dead is looking to get a piece of the Ymir's heart hidden in the castle!";
+ next;
+ mes "[Heinrich]";
+ mes "Haha. That's a nice joke. Now tell me what brings you here.";
+ npctalk "Haha. That's a nice joke. Now tell me what brings you here.";
+ cutin "gl_heinrich1",2;
+ next;
+ mes "[Varmunt]";
+ mes "I am not joking Heinrich, Sir. Now, if my judgement is correct, she will be here soon.";
+ donpcevent instance_npcname("Varmunt#ghinstance2")+"::OnTalk1";
+ cutin "gl_barmund2",2;
+ next;
+ mes "[Varmunt]";
+ mes "I trust this guy following me. The Ymir's Heart pieces must be hidden in a safe place before Himmelmez takes them!";
+ donpcevent instance_npcname("Varmunt#ghinstance2")+"::OnTalk2";
+ next;
+ select("Even if you do not believe...");
+ mes "["+strcharinfo(0)+"]";
+ mes "Even if you don't believe it, do something. We do not have much time!";
+ unittalk getcharid(3),"Even if you don't believe it, do something. We do not have much time!";
+ cutin "gl_barmund2",255;
+ next;
+ mes "[Heinrich]";
+ mes "I will be glad if you give me two minutes, please. But now the king isn't in his room.";
+ npctalk "I will be glad if you give me two minutes, please. But now the king isn't in his room.";
+ cutin "gl_heinrich1",2;
+ next;
+ mes "[Heinrich]";
+ mes "But I think that with such a busy agenda, he won't be able to take care of this.";
+ npctalk "But I think that with such a busy agenda, he won't be able to take care of this.";
+ donpcevent instance_npcname("Heinrich#ghinstance1")+"::OnDisable";
+ donpcevent instance_npcname("Heinrich#ghinstance2")+"::OnEnable";
+ donpcevent instance_npcname("Himmelmez#ghinstance1")+"::OnEnable";
+ donpcevent instance_npcname("#talkinstance1")+"::OnEnable";
+ mapannounce instance_mapname("1@gl_k"), "???? Shout: Ohohohoho~!",bc_map,"0xFFFF00";
+ close2;
+ cutin "gl_heinrich1",255;
+ end;
+ } else {
+ mes "[Heinrich]";
+ mes "Where is your representative?";
+ mes "I need to talk to him.";
+ cutin "gl_heinrich2",2;
+ close2;
+ cutin "gl_heinrich2",255;
+ end;
+ }
+OnInstanceInit:
+ donpcevent instance_npcname("Heinrich#ghinstance1")+"::OnDisable";
+ end;
+OnDisable:
+ hideonnpc instance_npcname("Heinrich#ghinstance1");
+ end;
+OnEnable:
+ hideoffnpc instance_npcname("Heinrich#ghinstance1");
+ end;
+}
+
+1@gl_k,152,97,3 script Varmunt#ghinstance2 4_M_BARMUND,{
+ end;
+OnInstanceInit:
+ donpcevent instance_npcname("Varmunt#ghinstance2")+"::OnDisable";
+ end;
+OnDisable:
+ hideonnpc instance_npcname("Varmunt#ghinstance2");
+ end;
+OnEnable:
+ hideoffnpc instance_npcname("Varmunt#ghinstance2");
+ end;
+OnTalk1:
+ npctalk "I am not joking Heinrich, Sir. Now, if my judgement is correct, she will be here soon.";
+ end;
+OnTalk2:
+ npctalk "I trust this guy following me. The Ymir's Heart pieces must be hidden in a safe place before Himmelmez takes them!";
+ end;
+OnTalk3:
+ npctalk "Himmelmez!! Through the cracks!";
+ end;
+OnTalk4:
+ npctalk "Unbelievable. My men are...This kind of thing is not possible!";
+ end;
+OnTalk5:
+ npctalk "Heinrich, Sir! I need a quick decision.";
+ end;
+OnTalk6:
+ npctalk "To prevent other attacks, go chase her!";
+ end;
+OnTalk7:
+ npctalk "Now, your help is desperately needed. I hopefully ask you.";
+ end;
+}
+
+1@gl_k,149,97,6 script Heinrich#ghinstance2 4_M_HEINRICH,{
+ end;
+OnInstanceInit:
+ donpcevent instance_npcname("Heinrich#ghinstance2")+"::OnDisable";
+ end;
+OnDisable:
+ hideonnpc instance_npcname("Heinrich#ghinstance2");
+ end;
+OnEnable:
+ hideoffnpc instance_npcname("Heinrich#ghinstance2");
+ end;
+OnTalk1:
+ npctalk "Who?!";
+ end;
+OnTalk2:
+ npctalk "That who rules the dead? No doubt, a pretty story. Here, some tea will be served to entertain the ladies. Unfortunately, I do not...";
+ end;
+OnTalk3:
+ npctalk "What did you say?";
+ end;
+OnTalk4:
+ npctalk "The King responded to the invitation of the Rune Midgard's Royal Family and hasn't come back yet.";
+ end;
+OnTalk5:
+ npctalk "Just leave before you get in trouble. This is the King's will!";
+ end;
+OnTalk6:
+ npctalk "Damn! She has detected the position of the Ymir's Heart pieces.";
+ end;
+OnTalk7:
+ npctalk "Now, Khalitzburg Crusaders and White Knights, follow me...";
+ end;
+OnTalk8:
+ npctalk "Unbelievable. My men are...This kind of thing is not possible!";
+ end;
+OnTalk9:
+ npctalk "I'm sorry...";
+ end;
+OnTalk10:
+ npctalk "I'm sorry, my lord! Do not forgive me!";
+ end;
+}
+
+1@gl_k,149,100,6 script Heinrich#ghinstance3 4_M_HEINRICH,{
+ end;
+OnInstanceInit:
+ donpcevent instance_npcname("Heinrich#ghinstance3")+"::OnDisable";
+ end;
+OnDisable:
+ hideonnpc instance_npcname("Heinrich#ghinstance3");
+ end;
+OnEnable:
+ hideoffnpc instance_npcname("Heinrich#ghinstance3");
+ end;
+OnTalk1:
+ npctalk "I cannot believe I killed my men with my own hands!";
+ end;
+OnTalk2:
+ npctalk "Varmunt is right about that. Now is not the time to regret.";
+ end;
+OnTalk3:
+ npctalk "People, gather around and follow my orders.";
+ end;
+OnTalk4:
+ npctalk "Himmelmez is turning into monsters all the people she put to sleep.";
+ end;
+OnTalk5:
+ npctalk "I don't know if there are survivors around here yet.";
+ end;
+OnTalk6:
+ npctalk "If there are survivors from this evil thing, please rescue them.";
+ end;
+OnTalk7:
+ npctalk "With Varmunt by my side, I'm going to chase Himmelmez down.";
+ end;
+OnTalk8:
+ npctalk "Hurry up Varmunt, let's chase her down.";
+ end;
+}
+
+1@gl_k,149,89,1 script Himmelmez#ghinstance1 4_F_HIMEL,{
+ end;
+OnInstanceInit:
+ donpcevent instance_npcname("Himmelmez#ghinstance1")+"::OnDisable";
+ end;
+OnDisable:
+ hideonnpc instance_npcname("Himmelmez#ghinstance1");
+ end;
+OnEnable:
+ hideoffnpc instance_npcname("Himmelmez#ghinstance1");
+ end;
+OnTalk1:
+ npctalk "This~ Did I interrupt your conversation? The thing is, it's been too long since the last guests saw some sadness spread...";
+ end;
+OnTalk2:
+ npctalk "My name is Lisa Kahn Himmelmez. I am called the Valkyrie of the dead, master of the Dullahan.";
+ end;
+OnTalk3:
+ npctalk "There's no need to pretend to be so laid back. Don't bluff about the whereabouts of you Majesty and things will be alright.";
+ end;
+OnTalk4:
+ npctalk "Hohoho, do you have any questions? You're a really mysterious man.";
+ end;
+OnTalk5:
+ npctalk "Not coveting the king's throne, you're such a stupid man, only waiting for his return. Your innocence is true, I love it.";
+ end;
+OnTalk6:
+ npctalk "You make me wish we hadn't met in this situation. Too bad we did.";
+ end;
+OnTalk7:
+ npctalk "Well~ Today, with such a busy commandant, I won't be able to talk as much as I'd love for you to contemplate my explanation~";
+ end;
+OnTalk8:
+ npctalk "I gotta get my job done. Meanwhile why don't you meet my men? Hohoho.";
+ end;
+}
+
+// Control Timer
+//============================================================
+1@gl_k,0,0,0 script #talkinstance1 -1,{
+OnInstanceInit:
+ donpcevent instance_npcname("#talkinstance1")+"::OnDisable";
+ end;
+OnDisable:
+ disablenpc instance_npcname("#talkinstance1");
+ end;
+OnEnable:
+ enablenpc instance_npcname("#talkinstance1");
+ initnpctimer;
+ end;
+OnTimer5000:
+ donpcevent instance_npcname("Heinrich#ghinstance2")+"::OnTalk1";
+ end;
+OnTimer10000:
+ donpcevent instance_npcname("Himmelmez#ghinstance1")+"::OnTalk1";
+ end;
+OnTimer15000:
+ donpcevent instance_npcname("Varmunt#ghinstance2")+"::OnTalk3";
+ end;
+OnTimer20000:
+ donpcevent instance_npcname("Himmelmez#ghinstance1")+"::OnTalk2";
+ end;
+OnTimer25000:
+ donpcevent instance_npcname("Heinrich#ghinstance2")+"::OnTalk2";
+ end;
+OnTimer30000:
+ donpcevent instance_npcname("Himmelmez#ghinstance1")+"::OnTalk3";
+ end;
+OnTimer35000:
+ donpcevent instance_npcname("Heinrich#ghinstance2")+"::OnTalk3";
+ end;
+OnTimer45000:
+ donpcevent instance_npcname("Himmelmez#ghinstance1")+"::OnTalk4";
+ end;
+OnTimer50000:
+ donpcevent instance_npcname("Himmelmez#ghinstance1")+"::OnTalk5";
+ end;
+OnTimer55000:
+ donpcevent instance_npcname("Himmelmez#ghinstance1")+"::OnTalk6";
+ end;
+OnTimer60000:
+ donpcevent instance_npcname("Heinrich#ghinstance2")+"::OnTalk4";
+ end;
+OnTimer65000:
+ donpcevent instance_npcname("Heinrich#ghinstance2")+"::OnTalk5";
+ end;
+OnTimer70000:
+ donpcevent instance_npcname("Himmelmez#ghinstance1")+"::OnTalk7";
+ end;
+OnTimer75000:
+ donpcevent instance_npcname("Himmelmez#ghinstance1")+"::OnTalk8";
+ end;
+OnTimer80000:
+ donpcevent instance_npcname("Heinrich#ghinstance2")+"::OnTalk6";
+ donpcevent instance_npcname("Himmelmez#ghinstance1")+"::OnDisable";
+ end;
+OnTimer85000:
+ donpcevent instance_npcname("Heinrich#ghinstance2")+"::OnTalk7";
+ hideonnpc instance_npcname("Varmunt#ghinstance1");
+
+ for(set .@i,1; .@i<=20; set .@i,.@i+4) {
+ hideonnpc instance_npcname("Khalitzburg Crusader#"+.@i);
+ hideonnpc instance_npcname("Khalitzburg Crusader#"+(.@i+1));
+ hideonnpc instance_npcname("White Knight#"+(.@i+2));
+ hideonnpc instance_npcname("White Knight#"+(.@i+3));
+ }
+ hideonnpc instance_npcname("Khalitzburg Crusader#21");
+ hideonnpc instance_npcname("Khalitzburg Crusader#22");
+
+ set .@map$, instance_mapname("1@gl_k");
+ set .@label$, instance_npcname("#talkinstance1")+"::OnMyMobDead";
+ monster .@map$,145,59,"Abyss Knight",2470,1,.@label$;
+ monster .@map$,154,59,"Abyss Knight",2470,1,.@label$;
+ monster .@map$,145,69,"Abyss Knight",2470,1,.@label$;
+ monster .@map$,154,69,"Abyss Knight",2470,1,.@label$;
+ monster .@map$,145,79,"Abyss Knight",2470,1,.@label$;
+ monster .@map$,154,79,"Abyss Knight",2470,1,.@label$;
+ monster .@map$,145,89,"Abyss Knight",2470,1,.@label$;
+ monster .@map$,154,89,"Abyss Knight",2470,1,.@label$;
+ monster .@map$,145,99,"Abyss Knight",2470,1,.@label$;
+ monster .@map$,154,99,"Abyss Knight",2470,1,.@label$;
+
+ for(set .@i,1; .@i<=22; set .@i,.@i+1)
+ hideoffnpc instance_npcname(".#ghinstance"+.@i);
+
+ donpcevent instance_npcname(".#ghinstance22")+"::OnTalkK";
+ donpcevent instance_npcname(".#ghinstance21")+"::OnTalkK";
+ donpcevent instance_npcname(".#ghinstance18")+"::OnTalkK";
+ donpcevent instance_npcname(".#ghinstance17")+"::OnTalkK";
+ donpcevent instance_npcname(".#ghinstance14")+"::OnTalkK";
+ donpcevent instance_npcname(".#ghinstance13")+"::OnTalkK";
+ donpcevent instance_npcname(".#ghinstance10")+"::OnTalkK";
+ donpcevent instance_npcname(".#ghinstance9")+"::OnTalkK";
+ donpcevent instance_npcname(".#ghinstance6")+"::OnTalkK";
+ donpcevent instance_npcname(".#ghinstance5")+"::OnTalkK";
+ donpcevent instance_npcname(".#ghinstance2")+"::OnTalkK";
+ donpcevent instance_npcname(".#ghinstance1")+"::OnTalkK";
+ end;
+OnTimer88000:
+ donpcevent instance_npcname("Heinrich#ghinstance2")+"::OnTalk8";
+
+ for(set .@i,1; .@i<=20; set .@i,.@i+4) {
+ hideonnpc instance_npcname(".#ghinstance"+.@i);
+ hideonnpc instance_npcname(".#ghinstance"+(.@i+1));
+ disablenpc instance_npcname(".#ghinstance"+(.@i+2));
+ disablenpc instance_npcname(".#ghinstance"+(.@i+3));
+ }
+ hideonnpc instance_npcname(".#ghinstance21");
+ hideonnpc instance_npcname(".#ghinstance22");
+
+ set .@map$, instance_mapname("1@gl_k");
+ set .@label$, instance_npcname("#talkinstance1")+"::OnMyMobDead";
+ monster .@map$,145,54,"Khalitzburg",2471,1,.@label$;
+ monster .@map$,154,54,"Khalitzburg",2471,1,.@label$;
+ monster .@map$,145,64,"Khalitzburg",2471,1,.@label$;
+ monster .@map$,154,64,"Khalitzburg",2471,1,.@label$;
+ monster .@map$,145,74,"Khalitzburg",2471,1,.@label$;
+ monster .@map$,154,74,"Khalitzburg",2471,1,.@label$;
+ monster .@map$,145,84,"Khalitzburg",2471,1,.@label$;
+ monster .@map$,154,84,"Khalitzburg",2471,1,.@label$;
+ monster .@map$,145,94,"Khalitzburg",2471,1,.@label$;
+ monster .@map$,154,94,"Khalitzburg",2471,1,.@label$;
+ monster .@map$,145,104,"Khalitzburg",2471,1,.@label$;
+ monster .@map$,154,104,"Khalitzburg",2471,1,.@label$;
+ end;
+OnTimer93000:
+ donpcevent instance_npcname("Varmunt#ghinstance2")+"::OnTalk4";
+ end;
+OnTimer97000:
+ donpcevent instance_npcname("Heinrich#ghinstance2")+"::OnTalk9";
+ end;
+OnTimer105000:
+ donpcevent instance_npcname("Heinrich#ghinstance2")+"::OnTalk10";
+ mapannounce instance_mapname("1@gl_k"), "Heinrich's Shout: Dead men, dead men all over the place!",bc_map,"0xFFFF00";
+ end;
+OnTimer107000:
+ mapannounce instance_mapname("1@gl_k"), "Heinrich's Shout: Everybody! Go back!",bc_map,"0xFFFF00";
+ end;
+OnTimer110000:
+ donpcevent instance_npcname(".#ghinstance22")+"::OnEffect1";
+ donpcevent instance_npcname(".#ghinstance21")+"::OnEffect1";
+ end;
+OnTimer110500:
+ enablenpc instance_npcname(".#ghinstance20");
+ enablenpc instance_npcname(".#ghinstance19");
+ donpcevent instance_npcname(".#ghinstance20")+"::OnEffect1";
+ donpcevent instance_npcname(".#ghinstance19")+"::OnEffect1";
+ end;
+OnTimer111000:
+ donpcevent instance_npcname(".#ghinstance18")+"::OnEffect1";
+ donpcevent instance_npcname(".#ghinstance17")+"::OnEffect1";
+ end;
+OnTimer111500:
+ enablenpc instance_npcname(".#ghinstance16");
+ enablenpc instance_npcname(".#ghinstance15");
+ donpcevent instance_npcname(".#ghinstance16")+"::OnEffect1";
+ donpcevent instance_npcname(".#ghinstance15")+"::OnEffect1";
+ end;
+OnTimer112000:
+ donpcevent instance_npcname(".#ghinstance14")+"::OnEffect1";
+ donpcevent instance_npcname(".#ghinstance13")+"::OnEffect1";
+ end;
+OnTimer112500:
+ enablenpc instance_npcname(".#ghinstance12");
+ enablenpc instance_npcname(".#ghinstance11");
+ donpcevent instance_npcname(".#ghinstance12")+"::OnEffect1";
+ donpcevent instance_npcname(".#ghinstance11")+"::OnEffect1";
+ end;
+OnTimer113000:
+ donpcevent instance_npcname(".#ghinstance10")+"::OnEffect1";
+ donpcevent instance_npcname(".#ghinstance9")+"::OnEffect1";
+ end;
+OnTimer113500:
+ enablenpc instance_npcname(".#ghinstance8");
+ enablenpc instance_npcname(".#ghinstance7");
+ donpcevent instance_npcname(".#ghinstance8")+"::OnEffect1";
+ donpcevent instance_npcname(".#ghinstance7")+"::OnEffect1";
+ end;
+OnTimer114000:
+ donpcevent instance_npcname(".#ghinstance6")+"::OnEffect1";
+ donpcevent instance_npcname(".#ghinstance5")+"::OnEffect1";
+ end;
+OnTimer114500:
+ enablenpc instance_npcname(".#ghinstance4");
+ enablenpc instance_npcname(".#ghinstance3");
+ donpcevent instance_npcname(".#ghinstance4")+"::OnEffect1";
+ donpcevent instance_npcname(".#ghinstance3")+"::OnEffect1";
+ end;
+OnTimer114750: //custom time
+ disablenpc instance_npcname(".#ghinstance3");
+ disablenpc instance_npcname(".#ghinstance4");
+ disablenpc instance_npcname(".#ghinstance7");
+ disablenpc instance_npcname(".#ghinstance8");
+ disablenpc instance_npcname(".#ghinstance11");
+ disablenpc instance_npcname(".#ghinstance12");
+ disablenpc instance_npcname(".#ghinstance15");
+ disablenpc instance_npcname(".#ghinstance16");
+ disablenpc instance_npcname(".#ghinstance19");
+ disablenpc instance_npcname(".#ghinstance20");
+ end;
+OnTimer115000:
+ donpcevent instance_npcname("Heinrich#ghinstance3")+"::OnEnable";
+ donpcevent instance_npcname("Heinrich#ghinstance2")+"::OnDisable";
+ donpcevent instance_npcname("Heinrich#ghinstance3")+"::OnTalk1";
+ donpcevent instance_npcname(".#ghinstance2")+"::OnEffect1";
+ donpcevent instance_npcname(".#ghinstance1")+"::OnEffect1";
+ killmonster instance_mapname("1@gl_k"),instance_npcname("#talkinstance1")+"::OnMyMobDead";
+ end;
+OnTimer120000:
+ donpcevent instance_npcname("Varmunt#ghinstance2")+"::OnTalk5";
+ end;
+OnTimer125000:
+ donpcevent instance_npcname("Varmunt#ghinstance2")+"::OnTalk6";
+ end;
+OnTimer130000:
+ donpcevent instance_npcname("Heinrich#ghinstance3")+"::OnTalk2";
+ end;
+OnTimer135000:
+ donpcevent instance_npcname("Heinrich#ghinstance3")+"::OnTalk3";
+ end;
+OnTimer140000:
+ donpcevent instance_npcname("Heinrich#ghinstance3")+"::OnTalk4";
+ end;
+OnTimer145000:
+ donpcevent instance_npcname("Heinrich#ghinstance3")+"::OnTalk5";
+ end;
+OnTimer150000:
+ donpcevent instance_npcname("Heinrich#ghinstance3")+"::OnTalk6";
+ end;
+OnTimer155000:
+ donpcevent instance_npcname("Heinrich#ghinstance3")+"::OnTalk7";
+ end;
+OnTimer160000:
+ donpcevent instance_npcname("Varmunt#ghinstance2")+"::OnTalk7";
+ end;
+OnTimer165000:
+ donpcevent instance_npcname("Heinrich#ghinstance3")+"::OnTalk8";
+ end;
+OnTimer167000:
+ donpcevent instance_npcname("Heinrich#ghinstance3")+"::OnDisable";
+ end;
+OnTimer168000:
+ donpcevent instance_npcname("Varmunt#ghinstance2")+"::OnDisable";
+ donpcevent instance_npcname("Heinrich#ghinstance3")+"::OnDisable";
+ stopnpctimer;
+ donpcevent instance_npcname("#ghinstancewarp1")+"::OnEnable";
+ donpcevent instance_npcname("#ghinstancewarp2")+"::OnEnable";
+ mapannounce instance_mapname("1@gl_k"), "9 o'clock warp leading to zone 2 is now open.",bc_map,"0xFFFF00";
+ donpcevent instance_npcname("#talkinstance1")+"::OnDisable";
+ donpcevent instance_npcname("#ghmemorialmob01")+"::OnEnable";
+ end;
+OnMyMobDead:
+ end;
+}
+
+1@gl_k,145,54,6 script .#ghinstance1 MG_KHALITZBURG,{
+ end;
+OnInstanceInit:
+ donpcevent instance_npcname(strnpcinfo(0))+"::OnDisable";
+ end;
+OnDisable:
+ hideonnpc instance_npcname(strnpcinfo(0));
+ end;
+OnEnable:
+ hideoffnpc instance_npcname(strnpcinfo(0));
+ end;
+OnEffect1:
+ specialeffect EF_GRANDCROSS;
+ specialeffect EF_LEXAETERNA;
+ end;
+OnTalkK:
+ switch(atoi(replacestr(strnpcinfo(2),"ghinstance",""))) {
+ case 1: npctalk "I do not want to die."; break;
+ case 2: npctalk "Mom..."; break;
+ case 5: npctalk "Help."; break;
+ case 6: npctalk "My stomach hurts..."; break;
+ case 9: npctalk "Heinrich Sir, help!"; break;
+ case 10: npctalk "Ack... Ugh."; break;
+ case 13: npctalk "I'm thirsty."; break;
+ case 14: npctalk "Oh... No... I cannot die..."; break;
+ case 17: npctalk "This is so uncomfortable. Eww!"; break;
+ case 18: npctalk "Who am I..."; break;
+ case 21: npctalk "Uhh... My body."; break;
+ case 22: npctalk "I'm so thirsty!"; break;
+ }
+ end;
+}
+1@gl_k,154,54,3 duplicate(.#ghinstance1) .#ghinstance2 MG_KHALITZBURG
+1@gl_k,145,64,6 duplicate(.#ghinstance1) .#ghinstance5 MG_KHALITZBURG
+1@gl_k,154,64,3 duplicate(.#ghinstance1) .#ghinstance6 MG_KHALITZBURG
+1@gl_k,145,74,6 duplicate(.#ghinstance1) .#ghinstance9 MG_KHALITZBURG
+1@gl_k,154,74,3 duplicate(.#ghinstance1) .#ghinstance10 MG_KHALITZBURG
+1@gl_k,145,84,6 duplicate(.#ghinstance1) .#ghinstance13 MG_KHALITZBURG
+1@gl_k,154,84,3 duplicate(.#ghinstance1) .#ghinstance14 MG_KHALITZBURG
+1@gl_k,145,94,6 duplicate(.#ghinstance1) .#ghinstance17 MG_KHALITZBURG
+1@gl_k,154,94,3 duplicate(.#ghinstance1) .#ghinstance18 MG_KHALITZBURG
+1@gl_k,145,104,6 duplicate(.#ghinstance1) .#ghinstance21 MG_KHALITZBURG
+1@gl_k,154,104,3 duplicate(.#ghinstance1) .#ghinstance22 MG_KHALITZBURG
+
+1@gl_k,145,59,6 script .#ghinstance3 HIDDEN_NPC,{
+ end;
+OnInstanceInit:
+ donpcevent instance_npcname(strnpcinfo(0))+"::OnDisable";
+ end;
+OnDisable:
+ hideonnpc instance_npcname(strnpcinfo(0));
+ end;
+OnEnable:
+ hideoffnpc instance_npcname(strnpcinfo(0));
+ end;
+OnEffect1:
+ specialeffect EF_GRANDCROSS;
+ specialeffect EF_LEXAETERNA;
+ end;
+}
+1@gl_k,154,59,3 duplicate(.#ghinstance3) .#ghinstance4 HIDDEN_NPC
+1@gl_k,145,69,6 duplicate(.#ghinstance3) .#ghinstance7 HIDDEN_NPC
+1@gl_k,154,69,3 duplicate(.#ghinstance3) .#ghinstance8 HIDDEN_NPC
+1@gl_k,145,79,6 duplicate(.#ghinstance3) .#ghinstance11 HIDDEN_NPC
+1@gl_k,154,79,3 duplicate(.#ghinstance3) .#ghinstance12 HIDDEN_NPC
+1@gl_k,145,89,6 duplicate(.#ghinstance3) .#ghinstance15 HIDDEN_NPC
+1@gl_k,154,89,3 duplicate(.#ghinstance3) .#ghinstance16 HIDDEN_NPC
+1@gl_k,145,99,6 duplicate(.#ghinstance3) .#ghinstance19 HIDDEN_NPC
+1@gl_k,154,99,3 duplicate(.#ghinstance3) .#ghinstance20 HIDDEN_NPC
+
+1@gl_k,96,80,0 script #ghinstancewarp1 WARPNPC,1,2,{
+ end;
+OnInstanceInit:
+ donpcevent instance_npcname(strnpcinfo(0))+"::OnDisable";
+ end;
+OnDisable:
+ disablenpc instance_npcname(strnpcinfo(0));
+ end;
+OnEnable:
+ enablenpc instance_npcname(strnpcinfo(0));
+ end;
+OnTouch:
+ set .@map1$, instance_mapname("1@gl_k");
+ set .@map2$, instance_mapname("2@gl_k");
+ switch(atoi(replacestr(strnpcinfo(2),"ghinstancewarp",""))) {
+ case 1: warp .@map1$,80,80; break;
+ case 2: warp .@map1$,105,80; break;
+ case 3: warp .@map1$,215,79; break;
+ case 4: warp .@map1$,195,79; break;
+ case 5: warp .@map1$,215,216; break;
+ case 6: warp .@map1$,235,216; break;
+ case 7: warp .@map2$,150,46; break;
+ case 8: warp .@map2$,126,123; break;
+ case 9: warp .@map2$,150,116; break;
+ case 10: warp .@map2$,174,101; break;
+ case 11: warp .@map2$,150,110; break;
+ case 12: warp .@map2$,150,179; break;
+ }
+ end;
+}
+1@gl_k,90,80,0 duplicate(#ghinstancewarp1) #ghinstancewarp2 WARPNPC,1,2
+1@gl_k,202,79,0 duplicate(#ghinstancewarp1) #ghinstancewarp3 WARPNPC,1,2
+1@gl_k,206,79,0 duplicate(#ghinstancewarp1) #ghinstancewarp4 WARPNPC,1,2
+1@gl_k,228,216,0 duplicate(#ghinstancewarp1) #ghinstancewarp5 WARPNPC,1,2
+1@gl_k,222,216,0 duplicate(#ghinstancewarp1) #ghinstancewarp6 WARPNPC,1,2
+1@gl_k,150,284,0 duplicate(#ghinstancewarp1) #ghinstancewarp7 WARPNPC,1,2
+2@gl_k,145,123,0 duplicate(#ghinstancewarp1) #ghinstancewarp8 WARPNPC,1,2
+2@gl_k,136,122,0 duplicate(#ghinstancewarp1) #ghinstancewarp9 WARPNPC,1,2
+2@gl_k,154,101,0 duplicate(#ghinstancewarp1) #ghinstancewarp10 WARPNPC,1,2
+2@gl_k,165,101,0 duplicate(#ghinstancewarp1) #ghinstancewarp11 WARPNPC,1,2
+2@gl_k,150,163,0 duplicate(#ghinstancewarp1) #ghinstancewarp12 WARPNPC,1,2
+
+
+// Sector 1 Mobs
+//============================================================
+1@gl_k,0,0,0 script #ghmemorialmob01 -1,{
+OnInstanceInit:
+ donpcevent instance_npcname("#ghmemorialmob01")+"::OnDisable";
+ end;
+OnDisable:
+ disablenpc instance_npcname("#ghmemorialmob01");
+ end;
+OnEnable:
+ enablenpc instance_npcname("#ghmemorialmob01");
+ set .@map$, instance_mapname("1@gl_k");
+ set .@label$, instance_npcname("#ghmemorialmob01")+"::OnMyMobDead";
+ areamonster .@map$,76,99,87,10,"Suffering Chamberlain",2466,15,.@label$;
+ areamonster .@map$,67,39,12,6,"Fallen Monk",2465,20,.@label$;
+ areamonster .@map$,67,39,12,6,"Suffering Chamberlain",2466,3,.@label$;
+ areamonster .@map$,32,75,51,58,"Decayed Butler",2464,6,.@label$;
+ areamonster .@map$,45,84,6,137,"Decayed Butler",2464,12,.@label$;
+ end;
+OnMyMobDead:
+ set .@map$, instance_mapname("1@gl_k");
+ set .@label$, instance_npcname("#ghmemorialmob01")+"::OnMyMobDead";
+ set .@mob_dead_num, 56 - mobcount(.@map$,.@label$);
+ if (.@mob_dead_num > 35) {
+ mapannounce .@map$, "Seems like Himmelmez drains the dead's souls. They must be destroyed.",bc_map,"0xFFFFFF";
+ killmonster .@map$,.@label$;
+ donpcevent instance_npcname("Aspiring Butcher#clearGH")+"::OnEnable";
+ donpcevent instance_npcname("#ghmemorialmob01")+"::OnDisable";
+ }
+ end;
+}
+
+1@gl_k,17,51,3 script Aspiring Butcher#clearGH 4_M_KID1,{
+ if (getcharid(0) == getpartyleader(getcharid(1),2)) {
+ mes "[Aspiring Butcher]";
+ mes "Help me! Help me!!!";
+ next;
+ select("Hey, wake up! Are there any other survivors?");
+ mes "["+strcharinfo(0)+"]";
+ mes "Hey, wake up! Are you alone?";
+ unittalk getcharid(3),"Hey, wake up! Are you alone?";
+ next;
+ mes "[Aspiring Butcher]";
+ mes "The Chamberlain... the Monk... They've become monsters. I couldn't do anything.";
+ npctalk "The Chamberlain... the Monk... They've become monsters. I couldn't do anything.";
+ next;
+ mes "[Aspiring Butcher]";
+ mes "I just stood still... Nothing, I couldn't do anything...";
+ npctalk "I just stood still... Nothing, I couldn't do anything...";
+ next;
+ select("Wake up!");
+ mes "["+strcharinfo(0)+"]";
+ mes "Wake up kid! Go east along the central passage to the outside! The path is safe!";
+ unittalk getcharid(3),"Wake up kid! Go east along the central passage to the outside! The path is safe!";
+ next;
+ mes "[Aspiring Butcher]";
+ mes "East passage? Alone? How?";
+ npctalk "East passage? Alone? How?";
+ next;
+ select("I can guide you through the path.");
+ mes "["+strcharinfo(0)+"]";
+ mes "I will guide you, perhaps that will help. If you want to close your eyes try not to hit anything.";
+ unittalk getcharid(3),"I will guide you, perhaps that will help. If you want to close your eyes try not to hit anything.";
+ next;
+ mes "[Aspiring Butcher]";
+ mes "Aspiring Butcher: I know, I... I'm trying to.";
+ npctalk "Aspiring Butcher: I know, I... I'm trying to.";
+ donpcevent instance_npcname("Aspiring Butcher#clearGH")+"::OnDisable";
+ donpcevent instance_npcname("#ghmemorialmob02")+"::OnEnable";
+ close;
+ } else {
+ mes "[Aspiring Butcher]";
+ mes "Somebody help me, somebody help me, please.";
+ close;
+ }
+OnInstanceInit:
+ donpcevent instance_npcname("Aspiring Butcher#clearGH")+"::OnDisable";
+ end;
+OnDisable:
+ hideonnpc instance_npcname("Aspiring Butcher#clearGH");
+ end;
+OnEnable:
+ hideoffnpc instance_npcname("Aspiring Butcher#clearGH");
+ end;
+}
+
+// Sector 2 Mobs
+//============================================================
+1@gl_k,291,145,3 script Hollgrehenn Destroyer 4_F_JOB_BLACKSMITH,{
+ if (getcharid(0) == getpartyleader(getcharid(1),2)) {
+ mes "[Hollgrehenn Destroyer]";
+ mes "Yaaa!! Die!!!";
+ npctalk "Yaaa!! Die!!!";
+ specialeffect EF_CRASHEARTH;
+ next;
+ select("Don't worry!");
+ mes "["+strcharinfo(0)+"]";
+ mes "Don't worry! Mam. Are you alone? No other survivors?";
+ unittalk getcharid(3),"Don't worry! Mam. Are you alone? No other survivors?";
+ next;
+ mes "[Hollgrehenn Destroyer]";
+ mes "I'm the only survivor left";
+ npctalk "I'm the only survivor left";
+ next;
+ select("This is a very dangerous place.");
+ mes "["+strcharinfo(0)+"]";
+ mes "This is a very dangerous place. You know the central passage? Do you think you can move... and get to a safer place?";
+ unittalk getcharid(3),"This is a very dangerous place. You know the central passage? Do you think you can move... and get to a safer place?";
+ next;
+ mes "[Hollgrehenn Destroyer]";
+ mes "Yes, I am able to move. I'll move for my baby's sake.";
+ npctalk "Yes, I am able to move. I'll move for my baby's sake.";
+ next;
+ select("Survive the road...");
+ mes "["+strcharinfo(0)+"]";
+ mes "You and your baby will get out of here safely. But I'm sorry I can't help you more.";
+ unittalk getcharid(3),"You and your baby will get out of here safely. But I'm sorry I can't help you more.";
+ next;
+ mes "[Hollgrehenn Destroyer]";
+ mes "That's ok. Thank you for helping us. I'm good to go alone. Ah and good luck also.";
+ npctalk "That's ok. Thank you for helping us. I'm good to go alone. Ah and good luck also.";
+ donpcevent instance_npcname("Hollgrehenn Destroyer")+"::OnDisable";
+ donpcevent instance_npcname("#ghmemorialmob03")+"::OnEnable";
+ close;
+ } else {
+ mes "[Hollgrehenn Destroyer]";
+ mes "Somebody help me, somebody help me, please";
+ close;
+ }
+OnInstanceInit:
+ donpcevent instance_npcname("Hollgrehenn Destroyer")+"::OnDisable";
+ end;
+OnDisable:
+ hideonnpc instance_npcname("Hollgrehenn Destroyer");
+ end;
+OnEnable:
+ hideoffnpc instance_npcname("Hollgrehenn Destroyer");
+ end;
+}
+
+1@gl_k,0,0,0 script #ghmemorialmob02 -1,{
+OnInstanceInit:
+ donpcevent instance_npcname("#ghmemorialmob02")+"::OnDisable";
+ end;
+OnDisable:
+ disablenpc instance_npcname("#ghmemorialmob02");
+ end;
+OnEnable:
+ enablenpc instance_npcname("#ghmemorialmob02");
+ donpcevent instance_npcname("#ghinstancewarp3")+"::OnEnable";
+ donpcevent instance_npcname("#ghinstancewarp4")+"::OnEnable";
+ set .@map$, instance_mapname("1@gl_k");
+ set .@label$, instance_npcname("#ghmemorialmob02")+"::OnMyMobDead";
+ mapannounce .@map$,"3 o'clock warp leading to zone 3 is now open.",bc_map,"0xFFFF00";
+ areamonster .@map$,241,113,291,19,"Suffering Chamberlain",2466,12,.@label$;
+ areamonster .@map$,241,113,291,19,"Decayed Monk",2464,12,.@label$;
+ areamonster .@map$,227,217,291,135,"Suffering Chamberlain",2466,12,.@label$;
+ areamonster .@map$,227,217,291,135,"Decayed Monk",2464,12,.@label$;
+ end;
+OnMyMobDead:
+ set .@map$, instance_mapname("1@gl_k");
+ set .@label$, instance_npcname("#ghmemorialmob02")+"::OnMyMobDead";
+ set .@mob_dead_num, 48 - mobcount(.@map$,.@label$);
+ if (.@mob_dead_num > 28) {
+ mapannounce .@map$, "Seems like Himmelmez drains the dead's souls. They must be destroyed.",bc_map,"0xFFFFFF";
+ killmonster .@map$,.@label$;
+ donpcevent instance_npcname("Hollgrehenn Destroyer")+"::OnEnable";
+ donpcevent instance_npcname("#ghmemorialmob02")+"::OnDisable";
+ }
+ end;
+}
+
+// Tramp Mobs
+//============================================================
+1@gl_k,221,82,3 script Breathless Man#GHtramp1 4_M_DIEMAN,4,4,{
+ end;
+OnTouch:
+ set .@i, rand(1,10);
+ if (.@i == 1) set .@mobs,3;
+ else if (.@i == 2) set .@mobs,4;
+ else if (.@i == 3) set .@mobs,5;
+ else if (.@i < 7) set .@mobs,6;
+ else set .@mobs,7;
+ getmapxy(.@map$,.@x,.@y,1);
+ specialeffect EF_VENOMDUST;
+ monster .@map$,.@x,.@y,"Muck Worm",2467,.@mobs,instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
+ disablenpc instance_npcname(strnpcinfo(0));
+ end;
+OnMyMobDead:
+ end;
+OnInstanceInit:
+ donpcevent instance_npcname(strnpcinfo(0))+"::OnEnable";
+ end;
+OnEnable:
+ enablenpc instance_npcname(strnpcinfo(0));
+ end;
+OnDisable:
+ disablenpc instance_npcname(strnpcinfo(0));
+ end;
+}
+1@gl_k,213,63,7 duplicate(Breathless Man#GHtramp1) Breathless Man#GHtramp2 4_M_DIEMAN,4,4
+1@gl_k,230,50,2 duplicate(Breathless Man#GHtramp1) Breathless Man#GHtramp3 4_M_DIEMAN,4,4
+1@gl_k,222,39,2 duplicate(Breathless Man#GHtramp1) Breathless Man#GHtramp4 4_M_DIEMAN,4,4
+1@gl_k,214,27,3 duplicate(Breathless Man#GHtramp1) Breathless Man#GHtramp5 4_M_DIEMAN,4,4
+1@gl_k,223,17,2 duplicate(Breathless Man#GHtramp1) Breathless Man#GHtramp6 4_M_DIEMAN,4,4
+1@gl_k,235,16,4 duplicate(Breathless Man#GHtramp1) Breathless Man#GHtramp7 4_M_DIEMAN,4,4
+1@gl_k,251,20,5 duplicate(Breathless Man#GHtramp1) Breathless Man#GHtramp8 4_M_DIEMAN,4,4
+1@gl_k,240,43,5 duplicate(Breathless Man#GHtramp1) Breathless Man#GHtramp9 4_M_DIEMAN,4,4
+1@gl_k,271,19,1 duplicate(Breathless Man#GHtramp1) Breathless Man#GHtramp10 4_M_DIEMAN,4,4
+1@gl_k,246,62,7 duplicate(Breathless Man#GHtramp1) Breathless Man#GHtramp11 4_M_DIEMAN,4,4
+1@gl_k,282,48,7 duplicate(Breathless Man#GHtramp1) Breathless Man#GHtramp12 4_M_DIEMAN,4,4
+1@gl_k,285,81,7 duplicate(Breathless Man#GHtramp1) Breathless Man#GHtramp13 4_M_DIEMAN,4,4
+1@gl_k,241,86,5 duplicate(Breathless Man#GHtramp1) Breathless Man#GHtramp14 4_M_DIEMAN,4,4
+1@gl_k,249,101,3 duplicate(Breathless Man#GHtramp1) Breathless Man#GHtramp15 4_M_DIEMAN,4,4
+1@gl_k,276,106,7 duplicate(Breathless Man#GHtramp1) Breathless Man#GHtramp16 4_M_DIEMAN,4,4
+1@gl_k,252,120,7 duplicate(Breathless Man#GHtramp1) Breathless Man#GHtramp17 4_M_DIEMAN,4,4
+1@gl_k,258,150,1 duplicate(Breathless Man#GHtramp1) Breathless Man#GHtramp18 4_M_DIEMAN,4,4
+1@gl_k,255,157,6 duplicate(Breathless Man#GHtramp1) Breathless Man#GHtramp19 4_M_DIEMAN,4,4
+1@gl_k,261,164,7 duplicate(Breathless Man#GHtramp1) Breathless Man#GHtramp20 4_M_DIEMAN,4,4
+1@gl_k,269,173,7 duplicate(Breathless Man#GHtramp1) Breathless Man#GHtramp21 4_M_DIEMAN,4,4
+1@gl_k,280,167,3 duplicate(Breathless Man#GHtramp1) Breathless Man#GHtramp22 4_M_DIEMAN,4,4
+1@gl_k,293,161,3 duplicate(Breathless Man#GHtramp1) Breathless Man#GHtramp23 4_M_DIEMAN,4,4
+1@gl_k,226,96,3 duplicate(Breathless Man#GHtramp1) Breathless Man#GHtramp24 4_M_DIEMAN,4,4
+1@gl_k,222,119,5 duplicate(Breathless Man#GHtramp1) Breathless Man#GHtramp25 4_M_DIEMAN,4,4
+1@gl_k,233,123,3 duplicate(Breathless Man#GHtramp1) Breathless Man#GHtramp26 4_M_DIEMAN,4,4
+2@gl_k,147,203,5 duplicate(Breathless Man#GHtramp1) Breathless Man#GHtramp27 4_M_DIEMAN,4,4
+2@gl_k,141,222,1 duplicate(Breathless Man#GHtramp1) Breathless Man#GHtramp28 4_M_DIEMAN,4,4
+2@gl_k,167,225,3 duplicate(Breathless Man#GHtramp1) Breathless Man#GHtramp29 4_M_DIEMAN,4,4
+2@gl_k,145,236,3 duplicate(Breathless Man#GHtramp1) Breathless Man#GHtramp30 4_M_DIEMAN,4,4
+2@gl_k,143,260,3 duplicate(Breathless Man#GHtramp1) Breathless Man#GHtramp31 4_M_DIEMAN,4,4
+2@gl_k,173,258,3 duplicate(Breathless Man#GHtramp1) Breathless Man#GHtramp32 4_M_DIEMAN,4,4
+
+// Sector 3 Mobs
+//============================================================
+1@gl_k,0,0,0 script #ghmemorialmob03 -1,{
+OnInstanceInit:
+ donpcevent instance_npcname("#ghmemorialmob03")+"::OnDisable";
+ end;
+OnDisable:
+ disablenpc instance_npcname("#ghmemorialmob03");
+ end;
+OnEnable:
+ enablenpc instance_npcname("#ghmemorialmob03");
+ donpcevent instance_npcname("#ghinstancewarp5")+"::OnEnable";
+ donpcevent instance_npcname("#ghinstancewarp6")+"::OnEnable";
+ set .@map$, instance_mapname("1@gl_k");
+ set .@label$, instance_npcname("#ghmemorialmob03")+"::OnMyMobDead";
+ mapannounce .@map$,"12 o'clock warp leading to the zone 4 was opened.",bc_map,"0xFFFF00";
+ areamonster .@map$,17,259,53,180,"Decayed Guard",2468,11,.@label$;
+ areamonster .@map$,17,259,53,180,"Sharpshooter Ranger",2469,14,.@label$;
+ areamonster .@map$,62,281,73,186,"Decayed Guard",2468,11,.@label$;
+ areamonster .@map$,62,281,73,186,"Sharpshooter Ranger",2469,14,.@label$;
+ areamonster .@map$,74,251,109,224,"Decayed Guard",2468,11,.@label$;
+ areamonster .@map$,74,251,109,224,"Sharpshooter Ranger",2469,14,.@label$;
+ areamonster .@map$,108,281,231,234,"Decayed Guard",2468,11,.@label$;
+ areamonster .@map$,108,281,231,234,"Sharpshooter Ranger",2469,14,.@label$;
+ end;
+OnMyMobDead:
+ set .@map$, instance_mapname("1@gl_k");
+ set .@label$, instance_npcname("#ghmemorialmob03")+"::OnMyMobDead";
+ set .@mob_dead_num, 100 - mobcount(.@map$,.@label$);
+ if (.@mob_dead_num > 85) {
+ mapannounce .@map$,"Himmelmez: Nice parry. I thought you were going to die slowly surrounded by the dead I summoned~",bc_map,"0xFFFFFF";
+ killmonster .@map$,.@label$;
+ donpcevent instance_npcname("#GHMclear3")+"::OnEnable";
+ donpcevent instance_npcname("Heinrich#ghinstance4")+"::OnEnable";
+ donpcevent instance_npcname("Himmelmez#ghinstance2")+"::OnEnable";
+ donpcevent instance_npcname("Varmunt#ghinstance3")+"::OnEnable";
+ donpcevent instance_npcname("#ghmemorialmob03")+"::OnDisable";
+ }
+ end;
+}
+
+// 1st MVP
+//============================================================
+1@gl_k,0,0,0 script #ghmemorialmob04 -1,{
+OnInstanceInit:
+ donpcevent instance_npcname("#ghmemorialmob04")+"::OnDisable";
+ end;
+OnDisable:
+ disablenpc instance_npcname("#ghmemorialmob04");
+ end;
+OnEnable:
+ enablenpc instance_npcname("#ghmemorialmob04");
+ monster instance_mapname("1@gl_k"),150,258,"Root of Corruption",2475,1,instance_npcname("#ghmemorialmob04")+"::OnMyMobDead";
+ end;
+OnMyMobDead:
+ set .@map$, instance_mapname("1@gl_k");
+ if (mobcount(.@map$,instance_npcname("#ghmemorialmob04")+"::OnMyMobDead") < 1) {
+ mapannounce .@map$, "12 o'clock warp leading to the Chivalry's Second Floor is now open.",bc_map,"0xFFFF00";
+ donpcevent instance_npcname("#ghinstancewarp7")+"::OnEnable";
+ donpcevent instance_npcname("Varmunt#ghinstance3")+"::OnTalk2";
+ donpcevent instance_npcname("#effectGH01")+"::OnEnable";
+ donpcevent instance_npcname("Heinrich#ghinstance5")+"::OnEnable";
+ donpcevent instance_npcname("Varmunt#ghinstance4")+"::OnEnable";
+ donpcevent instance_npcname("#ghmemorialmob04")+"::OnDisable";
+ }
+ end;
+}
+
+1@gl_k,150,257,3 script #GHMclear3 HIDDEN_NPC,9,9,{
+ end;
+OnTouch:
+ donpcevent instance_npcname("#controlGH3")+"::OnEnable";
+ specialeffect EF_BASH;
+ donpcevent instance_npcname("#GHMclear3")+"::OnDisable";
+ end;
+OnInstanceInit:
+ donpcevent instance_npcname("#GHMclear3")+"::OnDisable";
+ end;
+OnDisable:
+ disablenpc instance_npcname("#GHMclear3");
+ end;
+OnEnable:
+ enablenpc instance_npcname("#GHMclear3");
+ initnpctimer;
+ end;
+OnTimer2000:
+ mapannounce instance_mapname("1@gl_k"), "Himmelmez: You got me tempted to go to the 2nd floor, come to the entrance. I'm curious about how far your luck goes.",bc_map,"0xFFFFFF";
+ stopnpctimer;
+ end;
+}
+
+1@gl_k,0,0,0 script #controlGH3 -1,{
+OnInstanceInit:
+ donpcevent instance_npcname("#controlGH3")+"::OnDisable";
+ end;
+OnDisable:
+ disablenpc instance_npcname("#controlGH3");
+ end;
+OnEnable:
+ enablenpc instance_npcname("#controlGH3");
+ initnpctimer;
+ end;
+OnTimer3000:
+ donpcevent instance_npcname("Himmelmez#ghinstance2")+"::OnTalk1";
+ end;
+OnTimer6000:
+ donpcevent instance_npcname("Himmelmez#ghinstance2")+"::OnTalk2";
+ end;
+OnTimer9000:
+ donpcevent instance_npcname("Himmelmez#ghinstance2")+"::OnTalk3";
+ end;
+OnTimer12000:
+ donpcevent instance_npcname("Heinrich#ghinstance4")+"::OnTalk1";
+ end;
+OnTimer15000:
+ donpcevent instance_npcname("Himmelmez#ghinstance2")+"::OnTalk4";
+ end;
+OnTimer18000:
+ donpcevent instance_npcname("Varmunt#ghinstance3")+"::OnTalk1";
+ end;
+OnTimer21000:
+ donpcevent instance_npcname("Heinrich#ghinstance4")+"::OnTalk2";
+ end;
+OnTimer24000:
+ donpcevent instance_npcname("Himmelmez#ghinstance2")+"::OnTalk5";
+ end;
+OnTimer27000:
+ donpcevent instance_npcname("Himmelmez#ghinstance2")+"::OnTalk6";
+ end;
+OnTimer28000:
+ donpcevent instance_npcname("Himmelmez#ghinstance2")+"::OnDisable";
+ end;
+OnTimer31000:
+ donpcevent instance_npcname("Heinrich#ghinstance4")+"::OnTalk3";
+ end;
+OnTimer32000:
+ donpcevent instance_npcname("Heinrich#ghinstance4")+"::OnDisable";
+ end;
+OnTimer35000:
+ mapannounce instance_mapname("1@gl_k"), "An eerie echo from the depths can be heard as you get closer.",bc_map,"0xFFFFFF";
+ end;
+OnTimer38000:
+ donpcevent instance_npcname("#ghmemorialmob04")+"::OnEnable";
+ stopnpctimer;
+ donpcevent instance_npcname("#controlGH3")+"::OnDisable";
+ end;
+}
+
+1@gl_k,144,258,6 script Heinrich#ghinstance4 4_M_HEINRICH,{
+ mes "[Heinrich]";
+ mes "Himmelmez... You made my men get killed and I will never forget that.";
+ cutin "gl_heinrich1",2;
+ close2;
+ cutin "gl_heinrich1",255;
+ end;
+OnInstanceInit:
+ donpcevent instance_npcname("Heinrich#ghinstance4")+"::OnDisable";
+ end;
+OnDisable:
+ hideonnpc instance_npcname("Heinrich#ghinstance4");
+ end;
+OnEnable:
+ hideoffnpc instance_npcname("Heinrich#ghinstance4");
+ end;
+OnTalk1:
+ npctalk "Himmelmez! I won't let you take even a single more step here.";
+ end;
+OnTalk2:
+ npctalk "What... is this?!";
+ end;
+OnTalk3:
+ npctalk "Varmunt Sir! Help the adventurers and I'll chase Himmelmez!";
+ end;
+}
+
+1@gl_k,150,257,3 script Himmelmez#ghinstance2 4_F_HIMEL,{
+ mes "[Himmelmez]";
+ mes "No need to stare at me with so insecure eyes. Soon they'll become relaxed...";
+ cutin "gl_himel2",2;
+ close2;
+ cutin "gl_himel2",255;
+ end;
+OnInstanceInit:
+ donpcevent instance_npcname("Himmelmez#ghinstance2")+"::OnDisable";
+ end;
+OnDisable:
+ hideonnpc instance_npcname("Himmelmez#ghinstance2");
+ end;
+OnEnable:
+ hideoffnpc instance_npcname("Himmelmez#ghinstance2");
+ end;
+OnTalk1:
+ npctalk "What an awfully lucky, I flew all the way over here and just one of them is really powerful.";
+ end;
+OnTalk2:
+ npctalk "But it doesn't matter to me.";
+ end;
+OnTalk3:
+ npctalk "Now, all of you will die.";
+ end;
+OnTalk4:
+ npctalk "Hahaha, so you guys thought I would come alone?";
+ end;
+OnTalk5:
+ npctalk "This is my new toy to keep you at my feet. Why don't you guys play while I entertain?";
+ end;
+OnTalk6:
+ npctalk "Sincerely~, If I am given the opportunity I'd like to meet you again, Heinrich.";
+ end;
+}
+
+1@gl_k,156,259,3 script Varmunt#ghinstance3 4_M_BARMUND,{
+ if (checkquest(12318,HUNTING) == 2) {
+ if (checkquest(12319,HUNTING) == -1) {
+ mes "[Varmunt]";
+ mes "There's something unusual about this thing's aura. Maybe someday we will be able to understand what is behind all of this.";
+ cutin "gl_barmund1",2;
+ getitem 6608,1; //Coagulated Spell
+ setquest 12319;
+ close2;
+ cutin "gl_barmund1",255;
+ end;
+ }
+ }
+ mes "[Varmunt]";
+ mes "Even after all this time, it is impossible to prevent from the will of the Transcendent.";
+ cutin "gl_barmund1",2;
+ close2;
+ cutin "gl_barmund2",255;
+ end;
+OnInstanceInit:
+ donpcevent instance_npcname("Varmunt#ghinstance3")+"::OnDisable";
+ end;
+OnDisable:
+ hideonnpc instance_npcname("Varmunt#ghinstance3");
+ end;
+OnEnable:
+ hideoffnpc instance_npcname("Varmunt#ghinstance3");
+ end;
+OnTalk1:
+ npctalk "Heinrich Sir! Something unknown holds an inexplicably powerful force!";
+ end;
+OnTalk2:
+ npctalk "From the monster I picked up some great stuff. People who are interested, talk to me.";
+ end;
+}
+
+// Floor 2
+//============================================================
+2@gl_k,148,67,1 script Heinrich#ghinstance5 4_M_HEINRICH,{
+ mes "[Heinrich]";
+ mes "Himmelmez's blocking spells";
+ mes "are everywhere around here...";
+ cutin "gl_heinrich1",2;
+ close2;
+ cutin "gl_heinrich1",255;
+ end;
+OnInstanceInit:
+ donpcevent instance_npcname("Heinrich#ghinstance5")+"::OnDisable";
+ end;
+OnDisable:
+ hideonnpc instance_npcname("Heinrich#ghinstance5");
+ end;
+OnEnable:
+ hideoffnpc instance_npcname("Heinrich#ghinstance5");
+ end;
+OnTalk1:
+ npctalk "These things have never been in the castle!";
+ end;
+OnTalk2:
+ npctalk "Trying to break this power with common weapons doesn't work. I tried it.";
+ end;
+OnTalk3:
+ npctalk "It is really unforgivable.";
+ end;
+OnTalk4:
+ npctalk "I, who already was a subordinate of genocide. How much more in the future...";
+ end;
+OnTalk5:
+ npctalk "...";
+ end;
+}
+
+2@gl_k,151,71,7 script Varmunt#ghinstance4 4_M_BARMUND,{
+ mes "[Varmunt]";
+ mes "Why am I doing this again? Doesn't seem like the first time. I've seen this place repeatedly dozens of times in my dreams. This feeling...";
+ cutin "gl_barmund1",2;
+ close2;
+ cutin "gl_barmund1",255;
+ end;
+OnInstanceInit:
+ donpcevent instance_npcname("Varmunt#ghinstance4")+"::OnDisable";
+ end;
+OnDisable:
+ hideonnpc instance_npcname("Varmunt#ghinstance4");
+ end;
+OnEnable:
+ hideoffnpc instance_npcname("Varmunt#ghinstance4");
+ end;
+OnTalk2:
+ npctalk "Himmelmez's enchantment has completely blocked the passage to each section.";
+ end;
+OnTalk3:
+ npctalk "Get out of the way for a moment. I'll try to somehow break the spell with magical powers.";
+ end;
+OnTalk4:
+ npctalk "The enchantment seems to be broken.";
+ end;
+OnTalk5:
+ npctalk "I've never seen this spell before.";
+ end;
+OnTalk6:
+ npctalk "Himmelmez doesn't use a seal on a person's body to turn it into an undead.";
+ end;
+OnTalk7:
+ npctalk "She uses enchantment stones.This way, the spell is probably maintained.";
+ end;
+OnTalk8:
+ npctalk "We should kill the people who have the enchantment stones to break the spell.";
+ end;
+OnTalk9:
+ npctalk "However, we can't identify them. The purification can only be done randomly.";
+ end;
+OnTalk10:
+ npctalk "Commandant...";
+ end;
+OnTalk11:
+ npctalk "Commandant, it seems too loose.";
+ end;
+OnTalk12:
+ npctalk "We are related to all these people, not just a few.";
+ end;
+OnTalk13:
+ npctalk "We can't deny that it's not their fault for what is going on.";
+ end;
+OnTalk14:
+ npctalk "Well, let's do it then.";
+ end;
+OnTalk15:
+ npctalk "You guys are of a great help. Try to follow us.";
+ end;
+OnTalk16:
+ npctalk "There can be a tough fight. Hold on, and it would be nice to eat something.";
+ end;
+OnTalk17:
+ npctalk "Guys. It is time to depart, Heinrich Sir.";
+ end;
+}
+
+2@gl_k,150,67,0 script #effectGH01 HIDDEN_NPC,10,10,{
+ end;
+OnTouch:
+ specialeffect EF_BASH;
+ donpcevent instance_npcname("#controlGH4")+"::OnEnable";
+ donpcevent instance_npcname("#effectGH01")+"::OnDisable";
+ end;
+OnEffect:
+ specialeffect EF_LORD;
+ end;
+OnInstanceInit:
+ donpcevent instance_npcname("#effectGH01")+"::OnDisable";
+ end;
+OnDisable:
+ disablenpc instance_npcname("#effectGH01");
+ end;
+OnEnable:
+ enablenpc instance_npcname("#effectGH01");
+ end;
+}
+
+2@gl_k,0,0,0 script #controlGH4 -1,{
+OnInstanceInit:
+ donpcevent instance_npcname("#controlGH4")+"::OnDisable";
+ end;
+OnDisable:
+ disablenpc instance_npcname("#controlGH4");
+ end;
+OnEnable:
+ enablenpc instance_npcname("#controlGH4");
+ initnpctimer;
+ end;
+OnTimer3000:
+ donpcevent instance_npcname("Heinrich#ghinstance5")+"::OnTalk1";
+ donpcevent instance_npcname("#ghmemorialmob05")+"::OnEnable";
+ end;
+OnTimer6000:
+ donpcevent instance_npcname("Varmunt#ghinstance4")+"::OnTalk2";
+ end;
+OnTimer9000:
+ donpcevent instance_npcname("Heinrich#ghinstance5")+"::OnTalk2";
+ end;
+OnTimer12000:
+ donpcevent instance_npcname("Varmunt#ghinstance4")+"::OnTalk3";
+ end;
+OnTimer15000:
+ donpcevent instance_npcname("#effectGH01")+"::OnEnable";
+ donpcevent instance_npcname("#effectGH01")+"::OnEffect";
+ end;
+OnTimer18000:
+ donpcevent instance_npcname("#effectGH01")+"::OnDisable";
+ donpcevent instance_npcname("Varmunt#ghinstance4")+"::OnTalk4";
+ end;
+OnTimer21000:
+ donpcevent instance_npcname("Varmunt#ghinstance4")+"::OnTalk5";
+ end;
+OnTimer24000:
+ donpcevent instance_npcname("Varmunt#ghinstance4")+"::OnTalk6";
+ end;
+OnTimer27000:
+ donpcevent instance_npcname("Varmunt#ghinstance4")+"::OnTalk7";
+ end;
+OnTimer30000:
+ donpcevent instance_npcname("Varmunt#ghinstance4")+"::OnTalk8";
+ end;
+OnTimer33000:
+ donpcevent instance_npcname("Varmunt#ghinstance4")+"::OnTalk9";
+ end;
+OnTimer36000:
+ donpcevent instance_npcname("Heinrich#ghinstance5")+"::OnTalk3";
+ end;
+OnTimer39000:
+ donpcevent instance_npcname("Heinrich#ghinstance5")+"::OnTalk4";
+ end;
+OnTimer42000:
+ donpcevent instance_npcname("Varmunt#ghinstance4")+"::OnTalk10";
+ end;
+OnTimer45000:
+ donpcevent instance_npcname("Varmunt#ghinstance4")+"::OnTalk11";
+ end;
+OnTimer48000:
+ donpcevent instance_npcname("Varmunt#ghinstance4")+"::OnTalk12";
+ end;
+OnTimer51000:
+ donpcevent instance_npcname("Varmunt#ghinstance4")+"::OnTalk13";
+ end;
+OnTimer54000:
+ donpcevent instance_npcname("Heinrich#ghinstance5")+"::OnTalk5";
+ end;
+OnTimer57000:
+ donpcevent instance_npcname("Varmunt#ghinstance4")+"::OnTalk14";
+ end;
+OnTimer60000:
+ donpcevent instance_npcname("Varmunt#ghinstance4")+"::OnTalk15";
+ end;
+OnTimer63000:
+ donpcevent instance_npcname("Varmunt#ghinstance4")+"::OnTalk16";
+ end;
+OnTimer66000:
+ donpcevent instance_npcname("Varmunt#ghinstance4")+"::OnTalk17";
+ end;
+OnTimer69000:
+ mapannounce instance_mapname("2@gl_k"), "9 o'clock positioned warp leading to the 1st zone has been opened. Move from the central hallway. A being with an evil aura seems to be appearing in this region.",bc_map,"0xFFFF00";
+ donpcevent instance_npcname("#ghinstancewarp8")+"::OnEnable";
+ donpcevent instance_npcname("#ghinstancewarp9")+"::OnEnable";
+ donpcevent instance_npcname("#ghmemorialmob06")+"::OnEnable";
+ donpcevent instance_npcname("Varmunt#ghinstance4")+"::OnDisable";
+ donpcevent instance_npcname("Heinrich#ghinstance5")+"::OnDisable";
+ end;
+OnTimer70000:
+ stopnpctimer;
+ donpcevent instance_npcname("#controlGH4")+"::OnDisable";
+ end;
+}
+
+2@gl_k,0,0,0 script #ghmemorialmob05 -1,{
+OnInstanceInit:
+ donpcevent instance_npcname("#ghmemorialmob05")+"::OnDisable";
+ end;
+OnDisable:
+ disablenpc instance_npcname("#ghmemorialmob05");
+ end;
+OnEnable:
+ enablenpc instance_npcname("#ghmemorialmob05");
+ set .@map$, instance_mapname("2@gl_k");
+ set .@label$, instance_npcname("#ghmemorialmob05")+"::OnMyMobDead";
+ areamonster .@map$,124,20,31,162,"Decayed Guard",2468,8,.@label$;
+ areamonster .@map$,124,20,31,162,"Sharpshooter Ranger",2469,8,.@label$;
+ areamonster .@map$,124,20,31,162,"Fallen Abyss Knight",2470,8,.@label$;
+ areamonster .@map$,124,20,31,162,"Suffering Khalitzburg",2471,8,.@label$;
+ areamonster .@map$,124,20,31,162,"Swollen Knight",2472,8,.@label$;
+ set .MyMobs,80;
+ end;
+OnMyMobDead:
+ set .@map$, instance_mapname("2@gl_k");
+ set .MyMobs, .MyMobs-1;
+ if (.MyMobs == 0) {
+ mapannounce .@map$, "A being with an evil aura seems to be appearing in this region.",bc_map,"0xFFFF00";
+ donpcevent instance_npcname("#ghmemorialmob06")+"::OnDisable2";
+ donpcevent instance_npcname("#ghmemorialmob07")+"::OnEnable";
+ donpcevent instance_npcname("#ghmemorialmob05")+"::OnDisable";
+ } else {
+ set .@label$, instance_npcname("#ghmemorialmob05")+"::OnMyMobDead";
+ switch(rand(5)) {
+ case 0:
+ areamonster .@map$,124,20,31,162,"Decayed Guard",2468,1,.@label$;
+ break;
+ case 1:
+ areamonster .@map$,124,20,31,162,"Sharpshooter Ranger",2469,1,.@label$;
+ break;
+ case 2:
+ areamonster .@map$,124,20,31,162,"Fallen Abyss Knight",2470,1,.@label$;
+ break;
+ case 3:
+ areamonster .@map$,124,20,31,162,"Suffering Khalitzburg",2471,1,.@label$;
+ break;
+ case 4:
+ areamonster .@map$,124,20,31,162,"Swollen Knight",2472,1,.@label$;
+ break;
+ }
+ }
+ end;
+}
+
+2@gl_k,0,0,0 script #ghmemorialmob06 -1,{
+OnInstanceInit:
+ donpcevent instance_npcname("#ghmemorialmob06")+"::OnDisable";
+ end;
+OnDisable:
+ disablenpc instance_npcname("#ghmemorialmob06");
+ end;
+OnDisable2:
+ stopnpctimer;
+ disablenpc instance_npcname("#ghmemorialmob06");
+ end;
+OnEnable:
+ enablenpc instance_npcname("#ghmemorialmob06");
+ donpcevent instance_npcname("#ghmemorialmob06")+"::OnSpawn";
+ end;
+OnSpawn:
+ initnpctimer;
+ end;
+OnTimer90000:
+ set .@map$, instance_mapname("2@gl_k");
+ set .@label$, instance_npcname("#ghmemorialmob05")+"::OnMyMobDead";
+ setarray .@c[0],
+ 114,141,118,139,
+ 128,83,131,78,
+ 88,53,93,48,
+ 54,47,61,40,
+ 58,83,63,78,
+ 69,138,80,127,
+ 34,143,39,138;
+ for(set .@i,0; .@i<getarraysize(.@c); set .@i,.@i+4) {
+ areamonster .@map$,.@c[.@i],.@c[.@i+1],.@c[.@i+2],.@c[.@i+3],"Decayed Guard",2468,1,.@label$;
+ areamonster .@map$,.@c[.@i],.@c[.@i+1],.@c[.@i+2],.@c[.@i+3],"Sharpshooter Ranger",2469,1,.@label$;
+ areamonster .@map$,.@c[.@i],.@c[.@i+1],.@c[.@i+2],.@c[.@i+3],"Fallen Abyss Knight",2470,1,.@label$;
+ areamonster .@map$,.@c[.@i],.@c[.@i+1],.@c[.@i+2],.@c[.@i+3],"Suffering Khalitzburg",2471,1,.@label$;
+ areamonster .@map$,.@c[.@i],.@c[.@i+1],.@c[.@i+2],.@c[.@i+3],"Swollen Knight",2472,1,.@label$;
+ }
+ end;
+OnTimer92000:
+ stopnpctimer;
+ donpcevent instance_npcname("#ghmemorialmob06")+"::OnSpawn";
+ end;
+}
+
+2@gl_k,0,0,0 script #ghmemorialmob07 -1,{
+OnInstanceInit:
+ donpcevent instance_npcname("#ghmemorialmob07")+"::OnDisable";
+ end;
+OnDisable:
+ disablenpc instance_npcname("#ghmemorialmob07");
+ end;
+OnEnable:
+ enablenpc instance_npcname("#ghmemorialmob07");
+ areamonster instance_mapname("2@gl_k"),124,20,31,162,"The Destruction of the First Captain",2473,1,instance_npcname("#ghmemorialmob07")+"::OnMyMobDead";
+ end;
+OnMyMobDead:
+ set .@map$, instance_mapname("2@gl_k");
+ if (mobcount(.@map$,instance_npcname("#ghmemorialmob07")+"::OnMyMobDead") < 1) {
+ mapannounce .@map$, "3 o'clock positioned warp leading to the 2nd zone has been opened. Use the central hallway to get there.",bc_map,"0xFFFF00";
+ donpcevent instance_npcname("#ghinstancewarp10")+"::OnEnable";
+ donpcevent instance_npcname("#ghinstancewarp11")+"::OnEnable";
+ donpcevent instance_npcname("#ghmemorialmob08")+"::OnEnable";
+ donpcevent instance_npcname("#ghmemorialmob07")+"::OnDisable";
+ }
+ end;
+}
+
+2@gl_k,0,0,0 script #ghmemorialmob08 -1,{
+OnInstanceInit:
+ donpcevent instance_npcname("#ghmemorialmob08")+"::OnDisable";
+ end;
+OnDisable:
+ disablenpc instance_npcname("#ghmemorialmob08");
+ end;
+OnEnable:
+ enablenpc instance_npcname("#ghmemorialmob08");
+ set .@map$, instance_mapname("2@gl_k");
+ set .@label$, instance_npcname("#ghmemorialmob08")+"::OnMyMobDead";
+ areamonster .@map$,175,163,265,18,"Decayed Guard",2468,7,.@label$;
+ areamonster .@map$,175,163,265,18,"Sharpshooter Ranger",2469,7,.@label$;
+ areamonster .@map$,175,163,265,18,"Fallen Abyss Knight",2470,7,.@label$;
+ areamonster .@map$,175,163,265,18,"Suffering Khalitzburg",2471,7,.@label$;
+ areamonster .@map$,175,163,265,18,"Swollen Knight",2472,7,.@label$;
+ set .MyMobs,35;
+ end;
+OnMyMobDead:
+ set .@map$, instance_mapname("2@gl_k");
+ set .MyMobs, .MyMobs-1;
+ if (.MyMobs == 0) {
+ mapannounce .@map$, "A being with an evil aura seems to be appearing in this region.",bc_map,"0xFFFF00";
+ donpcevent instance_npcname("#ghmemorialmob09")+"::OnEnable";
+ donpcevent instance_npcname("#ghmemorialmob08")+"::OnDisable";
+ } else {
+ set .@label$, instance_npcname("#ghmemorialmob08")+"::OnMyMobDead";
+ switch(rand(5)) {
+ case 0:
+ areamonster .@map$,175,163,265,18,"Decayed Guard",2468,1,.@label$;
+ break;
+ case 1:
+ areamonster .@map$,175,163,265,18,"Sharpshooter Ranger",2469,1,.@label$;
+ break;
+ case 2:
+ areamonster .@map$,175,163,265,18,"Fallen Abyss Knight",2470,1,.@label$;
+ break;
+ case 3:
+ areamonster .@map$,175,163,265,18,"Suffering Khalitzburg",2471,1,.@label$;
+ break;
+ case 4:
+ areamonster .@map$,175,163,265,18,"Swollen Knight",2472,1,.@label$;
+ break;
+ }
+ }
+ end;
+}
+
+2@gl_k,0,0,0 script #ghmemorialmob09 -1,{
+OnInstanceInit:
+ donpcevent instance_npcname("#ghmemorialmob09")+"::OnDisable";
+ end;
+OnDisable:
+ disablenpc instance_npcname("#ghmemorialmob09");
+ end;
+OnEnable:
+ enablenpc instance_npcname("#ghmemorialmob09");
+ areamonster instance_mapname("2@gl_k"),175,163,265,18,"The Destruction of the Second Captain",2474,1,instance_npcname("#ghmemorialmob09")+"::OnMyMobDead";
+ end;
+OnMyMobDead:
+ set .@map$, instance_mapname("2@gl_k");
+ if (mobcount(.@map$,instance_npcname("#ghmemorialmob09")+"::OnMyMobDead") < 1) {
+ mapannounce .@map$, "12 o'clock positioned warp leading to the 3rd zone has been opened. Use the central hallway to get there.",bc_map,"0xFFFF00";
+ donpcevent instance_npcname("#ghinstancewarp12")+"::OnEnable";
+ donpcevent instance_npcname("#controlGH6")+"::OnEnable";
+ donpcevent instance_npcname("#ghmemorialmob08")+"::OnDisable";
+ donpcevent instance_npcname("#ghmemorialmob09")+"::OnDisable";
+ }
+ end;
+}
+
+2@gl_k,0,0,0 script #ghmemorialmob10 -1,{
+OnInstanceInit:
+ donpcevent instance_npcname("#ghmemorialmob10")+"::OnDisable";
+ end;
+OnDisable:
+ disablenpc instance_npcname("#ghmemorialmob10");
+ end;
+OnEnable:
+ enablenpc instance_npcname("#ghmemorialmob10");
+ donpcevent instance_npcname("Gerhard#ghinstance1")+"::OnDisable";
+ monster instance_mapname("2@gl_k"),158,255,"Amdarias",2476,1,instance_npcname("#ghmemorialmob10")+"::OnMyMobDead";
+ end;
+OnMyMobDead:
+ if (mobcount(instance_mapname("2@gl_k"),instance_npcname("#ghmemorialmob10")+"::OnMyMobDead") < 1) {
+ donpcevent instance_npcname("Hugin#ghinstance1")+"::OnEnable";
+ donpcevent instance_npcname("#ghmemorialmob10")+"::OnDisable";
+ }
+ end;
+}
+
+2@gl_k,155,250,7 script Heinrich#ghinstance6 4_M_HEINRICH,{
+ end;
+OnInstanceInit:
+ donpcevent instance_npcname("Heinrich#ghinstance6")+"::OnDisable";
+ end;
+OnDisable:
+ hideonnpc instance_npcname("Heinrich#ghinstance6");
+ end;
+OnEnable:
+ hideoffnpc instance_npcname("Heinrich#ghinstance6");
+ end;
+OnTalk1:
+ npctalk "Gerhard!";
+ end;
+OnTalk2:
+ npctalk "What are you doing to my men, Himmelmez?!";
+ end;
+OnTalk3:
+ npctalk "Himmelmez! You don't need to make any more sacrifices!";
+ end;
+OnTalk4:
+ npctalk "Let him go! I don't want one more sacrifice!";
+ end;
+OnTalk5:
+ npctalk "I will not forgive you.";
+ end;
+OnTalk6:
+ npctalk "Just leave us alone, Himmelmez!!";
+ end;
+}
+
+2@gl_k,162,250,1 script Varmunt#ghinstance5 4_M_BARMUND,{
+ mes "[Varmunt]";
+ mes "We can't escape this";
+ mes "eternal confinement...";
+ cutin "gl_barmund2",2;
+ close2;
+ cutin "gl_barmund2",255;
+ end;
+OnInstanceInit:
+ donpcevent instance_npcname("Varmunt#ghinstance5")+"::OnDisable";
+ end;
+OnDisable:
+ hideonnpc instance_npcname("Varmunt#ghinstance5");
+ end;
+OnEnable:
+ hideoffnpc instance_npcname("Varmunt#ghinstance5");
+ end;
+OnTalk1:
+ npctalk "What? This cannot be. We must prevent Amdarias's attacks!";
+ end;
+}
+
+2@gl_k,158,252,3 script Himmelmez#ghinstance4 4_F_HIMEL,4,4,{
+ end;
+OnInstanceInit:
+ donpcevent instance_npcname("Himmelmez#ghinstance4")+"::OnDisable";
+ end;
+OnDisable:
+ hideonnpc instance_npcname("Himmelmez#ghinstance4");
+ end;
+OnEnable:
+ hideoffnpc instance_npcname("Himmelmez#ghinstance4");
+ end;
+OnTalk1:
+ npctalk "Great~ I thought you wouldn't come near the end...";
+ end;
+OnTalk2:
+ npctalk "Huhu, I have already found a piece of Ymir's Heart, Heinrich.";
+ end;
+OnTalk3:
+ npctalk "It would've been faster if there were no distractions.";
+ end;
+OnTalk4:
+ npctalk "What do you think? Making it look like an accidental disease infected the king and the people around...";
+ end;
+OnTalk5:
+ npctalk "You want that?";
+ end;
+OnTalk6:
+ npctalk "This one is your final blow, Heinrich.";
+ end;
+OnTalk7:
+ npctalk "It is said that stopping me requires a skillfull person.";
+ end;
+OnTalk8:
+ npctalk "Seems like a perfect scenario to make my new monster, Amdarias.";
+ end;
+OnTalk9:
+ npctalk "Booh~ I'm scared.";
+ end;
+OnTalk10:
+ npctalk "Anyway, it was nice talking to you. Maybe we'll have the chance to meet again in the next story.";
+ end;
+OnTalk11:
+ npctalk "Well, make sure you will come back again.";
+ end;
+}
+
+2@gl_k,150,179,0 script #controlGH6 HIDDEN_NPC,2,2,{
+ end;
+OnTouch:
+ mapannounce instance_mapname("2@gl_k"), "???: Do not come! There are traps everywhere here... Aaaaack!!!!",bc_map,"0xFF0000";
+ specialeffect EF_BASH;
+ donpcevent instance_npcname("Himmelmez#ghinstance3")+"::OnEnable";
+ donpcevent instance_npcname("Heinrich#ghinstance6")+"::OnEnable";
+ donpcevent instance_npcname("Varmunt#ghinstance5")+"::OnEnable";
+ donpcevent instance_npcname("Gerhard#ghinstance1")+"::OnEnable";
+ donpcevent instance_npcname("#controlGH6")+"::OnDisable";
+ end;
+OnInstanceInit:
+ donpcevent instance_npcname("#controlGH6")+"::OnDisable";
+ end;
+OnDisable:
+ hideonnpc instance_npcname("#controlGH6");
+ end;
+OnEnable:
+ hideoffnpc instance_npcname("#controlGH6");
+ end;
+}
+
+2@gl_k,158,252,1 script Himmelmez#ghinstance3 4_F_HIMEL,7,7,{
+ end;
+OnTouch:
+ specialeffect EF_BASH;
+ donpcevent instance_npcname("#controlGH5")+"::OnEnable";
+ donpcevent instance_npcname("Himmelmez#ghinstance4")+"::OnEnable";
+ donpcevent instance_npcname("Himmelmez#ghinstance3")+"::OnDisable";
+ end;
+OnInstanceInit:
+ donpcevent instance_npcname("Himmelmez#ghinstance3")+"::OnDisable";
+ end;
+OnDisable:
+ disablenpc instance_npcname("Himmelmez#ghinstance3");
+ end;
+OnEnable:
+ enablenpc instance_npcname("Himmelmez#ghinstance3");
+ end;
+}
+
+2@gl_k,158,255,3 script Gerhard#ghinstance1 4_LEVITATEMAN,{
+ end;
+OnInstanceInit:
+ donpcevent instance_npcname("Gerhard#ghinstance1")+"::OnDisable";
+ end;
+OnDisable:
+ hideonnpc instance_npcname("Gerhard#ghinstance1");
+ end;
+OnEnable:
+ hideoffnpc instance_npcname("Gerhard#ghinstance1");
+ end;
+OnTalk1:
+ npctalk "Damn it! Run away! I can't withstand anymore!";
+ end;
+OnTalk2:
+ npctalk "Commandant... Come on, you need to run away from here... Ugh.";
+ end;
+OnTalk3:
+ npctalk "Even if you defile my body, I won't let you take my soul, Himmelmez!";
+ end;
+OnEffect1:
+ specialeffect EF_BARRIER;
+ end;
+OnEffect2:
+ specialeffect EF_CHAINCOMBO;
+ end;
+OnEffect3:
+ specialeffect EF_MAPPILLAR2;
+ end;
+OnEffect4:
+ specialeffect EF_MAPPILLAR;
+ end;
+OnEffect5:
+ specialeffect EF_LORD;
+ end;
+}
+
+2@gl_k,0,0,0 script #controlGH5 -1,{
+OnInstanceInit:
+ donpcevent instance_npcname("#controlGH5")+"::OnDisable";
+ end;
+OnDisable:
+ disablenpc instance_npcname("#controlGH5");
+ end;
+OnEnable:
+ enablenpc instance_npcname("#controlGH5");
+ initnpctimer;
+ end;
+OnTimer3000:
+ donpcevent instance_npcname("Himmelmez#ghinstance4")+"::OnTalk1";
+ end;
+OnTimer6000:
+ donpcevent instance_npcname("Gerhard#ghinstance1")+"::OnTalk1";
+ end;
+OnTimer9000:
+ donpcevent instance_npcname("Heinrich#ghinstance6")+"::OnTalk1";
+ end;
+OnTimer12000:
+ donpcevent instance_npcname("Gerhard#ghinstance1")+"::OnTalk2";
+ end;
+OnTimer15000:
+ donpcevent instance_npcname("Heinrich#ghinstance6")+"::OnTalk2";
+ end;
+OnTimer18000:
+ donpcevent instance_npcname("Himmelmez#ghinstance4")+"::OnTalk2";
+ end;
+OnTimer21000:
+ donpcevent instance_npcname("Himmelmez#ghinstance4")+"::OnTalk3";
+ end;
+OnTimer24000:
+ donpcevent instance_npcname("Gerhard#ghinstance1")+"::OnTalk3";
+ end;
+OnTimer27000:
+ donpcevent instance_npcname("Himmelmez#ghinstance4")+"::OnTalk4";
+ end;
+OnTimer30000:
+ donpcevent instance_npcname("Heinrich#ghinstance6")+"::OnTalk3";
+ end;
+OnTimer33000:
+ donpcevent instance_npcname("Heinrich#ghinstance6")+"::OnTalk4";
+ end;
+OnTimer36000:
+ donpcevent instance_npcname("Himmelmez#ghinstance4")+"::OnTalk5";
+ end;
+OnTimer39000:
+ donpcevent instance_npcname("Himmelmez#ghinstance4")+"::OnTalk6";
+ end;
+OnTimer42000:
+ donpcevent instance_npcname("Himmelmez#ghinstance4")+"::OnTalk7";
+ end;
+OnTimer45000:
+ donpcevent instance_npcname("Himmelmez#ghinstance4")+"::OnTalk8";
+ end;
+OnTimer48000:
+ donpcevent instance_npcname("Heinrich#ghinstance6")+"::OnTalk5";
+ end;
+OnTimer51000:
+ donpcevent instance_npcname("Himmelmez#ghinstance4")+"::OnTalk9";
+ end;
+OnTimer54000:
+ donpcevent instance_npcname("Himmelmez#ghinstance4")+"::OnTalk10";
+ end;
+OnTimer57000:
+ donpcevent instance_npcname("Himmelmez#ghinstance4")+"::OnTalk11";
+ end;
+OnTimer60000:
+ donpcevent instance_npcname("Gerhard#ghinstance1")+"::OnEffect1";
+ end;
+OnTimer63000:
+ donpcevent instance_npcname("Himmelmez#ghinstance4")+"::OnDisable";
+ end;
+OnTimer65000:
+ donpcevent instance_npcname("Gerhard#ghinstance1")+"::OnEffect3";
+ end;
+OnTimer66000:
+ donpcevent instance_npcname("Gerhard#ghinstance1")+"::OnEffect2";
+ end;
+OnTimer67000:
+ donpcevent instance_npcname("Heinrich#ghinstance6")+"::OnTalk6";
+ donpcevent instance_npcname("Gerhard#ghinstance1")+"::OnEffect4";
+ end;
+OnTimer70000:
+ donpcevent instance_npcname("Gerhard#ghinstance1")+"::OnEffect3";
+ donpcevent instance_npcname("Gerhard#ghinstance1")+"::OnEffect4";
+ donpcevent instance_npcname("Heinrich#ghinstance6")+"::OnDisable";
+ donpcevent instance_npcname("Varmunt#ghinstance5")+"::OnTalk1";
+ end;
+OnTimer73000:
+ mapannounce instance_mapname("2@gl_k"), "Leads toward Gerhard's body.",bc_map,"0xFFFFFF";
+ end;
+OnTimer76000:
+ donpcevent instance_npcname("Gerhard#ghinstance1")+"::OnEffect5";
+ end;
+OnTimer80000:
+ donpcevent instance_npcname("#ghmemorialmob10")+"::OnEnable";
+ stopnpctimer;
+ donpcevent instance_npcname("#controlGH5")+"::OnDisable";
+ end;
+}
+
+2@gl_k,158,241,1 script Hugin#ghinstance1 4_M_SAGE_C,{
+ if (checkquest(12319,HUNTING) == 2) {
+ mes "[Hugin]";
+ mes "Well, you are pretty ridiculous. Beginners shouldn't get the loot Amdarias drops.";
+ erasequest 12318;
+ erasequest 12319;
+ getitem 6608,1; //Coagulated Spell
+ next;
+ mes "[Hugin]";
+ mes "Varmunt, I have arbitrarily stopped time. And soon, the time gap will be gone.";
+ specialeffect2 EF_BLIND,AREA;
+ soundeffect "_blind.wav",0;
+ next;
+ mes "[Hugin]";
+ mes "Poor time travelers.";
+ mes "They will endlessly retry to prevent the tragedy that affected this city.";
+ next;
+ mes "[Hugin]";
+ mes "But the beggining of these time travels won't redempt your actions.";
+ mes "This will continue forever...";
+ next;
+ mes "[Hugin]";
+ mes "Now, I may erase your memory again. Perhaps you will have a different fate next time.";
+ specialeffect2 EF_FREEZE;
+ close2;
+ getmapxy(.@map$,.@x,.@y,0);
+ warp .@map$,.@x,.@y;
+ end;
+ } else {
+ mes "[Hugin]";
+ mes "The gap of time is almost distorted.";
+ mes "Done. There you go. Come!";
+ mes "I have to get out!";
+ next;
+ select("Bah... Soon after you...");
+ mes "[Hugin]";
+ mes "Soon after me? Anyways...";
+ mes "Doesn't matter, soon the gap of time will be closed, I have to get out of here.";
+ next;
+ switch(select("Since I'm here, let's explore more.:Please, send me out.")) {
+ case 1:
+ mes "[Hugin]";
+ mes "..................";
+ close;
+ case 2:
+ close2;
+ warp "glast_01",204,270;
+ end;
+ }
+ }
+OnInstanceInit:
+ donpcevent instance_npcname("Hugin#ghinstance1")+"::OnDisable";
+ end;
+OnDisable:
+ disablenpc instance_npcname("Hugin#ghinstance1");
+ end;
+OnEnable:
+ enablenpc instance_npcname("Hugin#ghinstance1");
+ end;
+}
diff --git a/npc/re/instances/WolfchevLaboratory.txt b/npc/re/instances/WolfchevLaboratory.txt
new file mode 100644
index 000000000..70cc81b8f
--- /dev/null
+++ b/npc/re/instances/WolfchevLaboratory.txt
@@ -0,0 +1,3296 @@
+//===== Hercules Script ========================================================
+//= Wolfchev's Laboratory
+//===== By: ====================================================================
+//= Kisuka (1.0)
+//===== Current Version: =======================================================
+//= 1.0.1
+//===== File Encoding ==========================================================
+//= CP-949 (EUC-KR compatible). Do NOT read/save it as UTF-8.
+//===== Description: ===========================================================
+//= Defeat Wolfchev's human experimentations.
+//===== Additional Comments: ===================================================
+//= 1.0.0 Initial Release. [Kisuka]
+//= 1.0.1 Some Clean-Up and Fixes. [Euphy]
+//==============================================================================
+
+1@lhz mapflag src4instance
+
+// Giacomo Girolam
+//==============================================================================
+lighthalzen,303,303,6 script Giacomo Girolamo#kiup2 4_M_KHMAN,3,3,{
+ if ((MaxWeight - Weight) < 1000 || !checkweight(1201, 1)) {
+ mes "^FF0000 Check up your inventory. You got too many items to carry out the quest. ^000000";
+ close;
+ }
+ if (lhz_boss > 30) {
+ if (!lght_duk01) {
+ if (Sex) {
+ emotion e_pif, "Giacomo Girolamo#kiup2";
+ mes "[Giacomo Girolamo]";
+ mes "....a guy....?";
+ next;
+ mes "[Giacomo Girolamo]";
+ mes "Ah! Hey! Man!";
+ next;
+ select("What's up?");
+ emotion e_what, 1;
+ mes "[Giacomo Girolamo]";
+ mes "Have you ever heard of horrific human experimentation committed in Rekenber Corporation whose head office is here in Lighthalzen?";
+ next;
+ select("Whaaat?! human experimentation?");
+ emotion e_omg, 1;
+ mes "[Giacomo Girolamo]";
+ mes "Yea! human experimentation!!";
+ mes "There are a lot of rumors that horrible human experimentation is actually performed, but these people in the slum....don't want to believe that due to the welfare movement from Rekenber.";
+ next;
+ emotion e_swt2, "Giacomo Girolamo#kiup2";
+ mes "[Giacomo Girolamo]";
+ mes "Well! and those rich people, seem to know something but they never mention that...";
+ next;
+ mes "[Giacomo Girolamo]";
+ mes "Ahh!! And this is a secret that just SOME PEOPLE know. I heard that from Rekenber Lab.,.. a person named...um...Wol....";
+ next;
+ emotion e_hmm, "Giacomo Girolamo#kiup2";
+ mes "[Giacomo Girolamo]";
+ mes "Anyway!! A scientist named Wolf.. something suddenly got sacked. and he must be related with this rumor, I think...";
+ next;
+ select("You mean... Wolfchev?");
+ emotion e_gasp, "Giacomo Girolamo#kiup2";
+ mes "[Giacomo Girolamo]";
+ mes "Ohhhh?! yeah Wolfchev!! That's right, the name was Wolfchev.. The mad scientist..";
+ next;
+ emotion e_ok, "Giacomo Girolamo#kiup2";
+ mes "[Giacomo Girolamo]";
+ mes "I suppose you can then understand the story faster... I am sure that he's involved in the rumor. I swear.";
+ next;
+ mes "[Giacomo Girolamo]";
+ mes "By the way..what about you? Is there anything that you know about him?";
+ next;
+ if(select("Pretend you know nothing.", "Tell him what you know.") == 1) {
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "Not really. I've ever heard of his name, but I don't know anything about him..";
+ next;
+ mes "[Giacomo Girolamo]";
+ mes "Hm.... You sound suspicious, dude! huh?";
+ next;
+ } else {
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "He happens to research into Human 'Homunculus' without telling that to Rekenber Corp., and there was a whistle-blower who reported to the corp. so he was fired.";
+ next;
+ emotion e_no1, "Giacomo Girolamo#kiup2";
+ mes "[Giacomo Girolamo]";
+ mes "Oh! Man..! You seem to know pretty much! By any chance, are you concerned with Rekenber??";
+ next;
+ emotion e_dots;
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "... .... ...";
+ next;
+ }
+ emotion e_hmm, "Giacomo Girolamo#kiup2";
+ mes "[Giacomo Girolamo]";
+ mes "Don't worry. I didn't mean anything.";
+ next;
+ mes "[Giacomo Girolamo]";
+ mes "Well! I am just curious only because some people in the slum and some adventurers were missing,";
+ mes "and I heard that Rekenber was doing human experimentation with those missing people. Hope you don't get me wrong.";
+ next;
+ lght_duk01 = 1;
+ setquest 5109;
+ mes "Actually, it is not a funny rumor.";
+ mes "Should investigate the lab where the experiment was carried out.";
+ close;
+ } else {
+ emotion e_lv, "Giacomo Girolamo#kiup2";
+ mes "[Giacomo Girolamo]";
+ mes "Oh! What a beautiful lady!!";
+ next;
+ emotion e_what, "Giacomo Girolamo#kiup2";
+ mes "[Giacomo Girolamo]";
+ mes "How come a beauty is here, in a place with dangerous rumor?";
+ next;
+ switch(select("Walking..", "To hang out..", "Shopping..")) {
+ case 1:
+ mes "[Giacomo Girolamo]";
+ mes "Ahh.. Lady, you are so graceful even when you are just walking.....";
+ next;
+ break;
+ case 2:
+ mes "[Giacomo Girolamo]";
+ mes "Lady. You are a dignified lady even if you hang out in this poor town...";
+ next;
+ break;
+ case 3:
+ mes "[Giacomo Girolamo]";
+ mes "Ahh.. Lady.. Shopping in the slum!!.. Are you a type who needs to look around every single shop?";
+ next;
+ break;
+ }
+ }
+ select("... .... ... ....");
+ mes "[Giacomo Girolamo]";
+ mes "Well, how dare I ask you and be interested in what the lady does...";
+ next;
+ emotion e_ok, "Giacomo Girolamo#kiup2";
+ mes "[Giacomo Girolamo]";
+ mes "I just hope that the lady gets out of this town with dangerous rumors..";
+ next;
+ select("Dangerous rumors?");
+ emotion e_what, 1;
+ mes "[Giacomo Girolamo]";
+ mes "Ah... Lady may not have heard of the rumor.";
+ next;
+ mes "[Giacomo Girolamo]";
+ mes "Recently, some people from this town, actually from the slum...and some adventurers are missing...";
+ next;
+ mes "[Giacomo Girolamo]";
+ mes "and then the rumor came up, since disappearance cases happen pretty often, that Rekenber is committing a horrible human experimentation in their secret lab.";
+ next;
+ select("Excuse me?! human experimentation?");
+ emotion e_omg, 1;
+ mes "[Giacomo Girolamo]";
+ mes "Yea! human experimentation!!";
+ mes "There are a lot of rumors that horrible human experimentation is actually performed, but these people in the slum....don't want to believe that due to the welfare movement from Rekenber.";
+ next;
+ mes "[Giacomo Girolamo]";
+ mes "Well! the rich people either want to believe..I think.. Ah!! And couple of weeks ago. um. what's his name? Wolfchev??";
+ next;
+ mes "[Giacomo Girolamo]";
+ mes "Anyway!! that research got fired from the lab. I think he must be involved with this rumor.";
+ next;
+ mes "[Giacomo Girolamo]";
+ mes "So, please, lady. Please don't be in a place like this and stay in safe ways.";
+ next;
+ lght_duk01 = 1;
+ setquest 5109;
+ mes "............ It seems a pretty serious matter.";
+ mes "Should investigate the lab where the experiment was carried out.";
+ close;
+ } else {
+ mes "[Giacomo Girolamo]";
+ if (Sex) {
+ emotion e_paper, "Giacomo Girolamo#kiup2";
+ mes "Take care yourself and don't disappear!";
+ } else {
+ emotion e_lv2, "Giacomo Girolamo#kiup2";
+ mes "Be careful, Lady.";
+ }
+ close;
+ }
+ } else {
+ if (Sex) {
+ emotion e_ho, "Giacomo Girolamo#kiup2";
+ mes "[Giacomo Girolamo]";
+ mes "Only those beautiful ladies are the reason of my life~!";
+ mes "I, Giacomo Girolamo Casanova de Seingalt am never interested in guys like you though!!";
+ next;
+ emotion e_an, "Giacomo Girolamo#kiup2";
+ mes "[Giacomo Girolamo]";
+ mes "but I can listen to you...you wanna say anything to me?";
+ next;
+ switch(select("No..?", "About ladies..", "You Womanizer!!", "Envy you...", "What's the rumor lately?")) {
+ case 1:
+ emotion e_hmm, "Giacomo Girolamo#kiup2";
+ mes "[Giacomo Girolamo]";
+ mes "Hey you, get out of my way then..";
+ close;
+ case 2:
+ emotion e_an, "Giacomo Girolamo#kiup2";
+ mes "[Giacomo Girolamo]";
+ mes "I don't feel like talking about my precious ladies making fun of them. You do it with your friends.";
+ close;
+ case 3:
+ mes "[Giacomo Girolamo]";
+ mes "Hey.. Excuse me!!! but I'm not a 'Womanizer', I am just a person who adores ladies.";
+ next;
+ emotion e_ok, "Giacomo Girolamo#kiup2";
+ mes "[Giacomo Girolamo]";
+ mes "Of course..... Yea... If I'm a womanizer, all the men on earth are too! I'm just Casanova. umhahahaha.";
+ close;
+ case 4:
+ emotion e_what, "Giacomo Girolamo#kiup2";
+ mes "[Giacomo Girolamo]";
+ mes "Haa.. Do you....? not have any woman but your sister and mother around you?";
+ next;
+ mes "[Giacomo Girolamo]";
+ mes "... .... ...";
+ next;
+ emotion e_swt2, "Giacomo Girolamo#kiup2";
+ mes "[Giacomo Girolamo]";
+ mes "Oh...... sorry.. I got your point....";
+ close;
+ case 5:
+ mes "[Giacomo Girolamo]";
+ mes "You.. are not like how you seem? Interesting..";
+ next;
+ mes "[Giacomo Girolamo]";
+ mes "Yea, actually recently a lot of people from the slum and some wandering adventurers got disappeared. and I don't know why.";
+ next;
+ mes "[Giacomo Girolamo]";
+ mes "You gotta be careful too..";
+ close;
+ }
+ } else {
+ emotion e_what, "Giacomo Girolamo#kiup2";
+ mes "[Giacomo Girolamo]";
+ mes "Hey, lady?";
+ next;
+ mes "[Giacomo Girolamo]";
+ switch(rand(1,10)) {
+ case 1:
+ mes "Wasn't it painful when you fell down from Heaven, my Angel?";
+ next;
+ break;
+ case 2:
+ mes "You must be tired. Because you are always wandering my mind.";
+ next;
+ break;
+ case 3:
+ mes "Are you not tired of walking around in my dream last night?";
+ next;
+ break;
+ case 4:
+ mes "Excuse me. But I think I lost my heart. Could you please borrow me yours?";
+ next;
+ break;
+ case 5:
+ mes "Do you believe in love at first sight?? Or can we start again..?";
+ next;
+ break;
+ case 6:
+ mes "I am so sorry but, can you kiss with a person who just met?? Noo? Ok then let me introduce myself.";
+ next;
+ break;
+ case 7:
+ mes "I'm so lost here since it's the first time. Can you let me know which is the way to your heart?";
+ next;
+ break;
+ case 8:
+ mes "Give me a map please.. To get a way....I'm fallen in your eyes.";
+ next;
+ break;
+ case 9:
+ mes "Your eyes....I wanna be forever there.";
+ next;
+ break;
+ case 10:
+ mes "I promise that I will be your everything in any case, in any difficult situation.";
+ next;
+ break;
+ }
+ emotion e_lv2, "Giacomo Girolamo#kiup2";
+ mes "[Giacomo Girolamo]";
+ mes "Today is the first day we met, but I love you, Lady <3 ";
+ next;
+ mes "[Giacomo Girolamo]";
+ mes "And I am telling you this because I'm just worried about you. You need to get out of this town which is full of disappearance cases.";
+ close;
+ }
+ }
+
+ OnTouch:
+ if (!lght_duk01)
+ emotion (Sex ? e_pif : e_lv2), "Giacomo Girolamo#kiup2";
+ end;
+}
+
+// Weird Old Man (Rewards)
+//==============================================================================
+lighthalzen,342,291,4 script Weird old man#Bio4Reward 4_M_EINOLD,{
+ if ((MaxWeight - Weight) < 2800 || !checkweight(1201, 1)) {
+ mes "^FF0000 Check up your inventory. You got too many items to carry out the quest. ^000000";
+ close;
+ }
+ mes "[Weird old man]";
+ mes "Phew, those young people nowadays, are so rude and have no manners.";
+ next;
+ if(select("Ignore him", "Talk with him") == 1) {
+ mes "[Weird old man]";
+ mes "You, Very bad young man!";
+ close;
+ }
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "Sir, Are you alright??";
+ next;
+ mes "[Weird old man]";
+ mes "....?? You are not like other young people. You have good manners! You know what happened to me..?";
+ next;
+ switch(rand(1,2)) {
+ case 1:
+ mes "[Weird old man]";
+ mes "I was on the way to visit my son who lives in Rune Midgarts. It's really far away, so I took the airplane, and..";
+ next;
+ mes "[Weird old man]";
+ mes "those young people...so noisy.... I was standing but non of them offered me a seat..and they were just talking in loud voices which bothered everyone.";
+ next;
+ mes "[Weird old man]";
+ mes "I could lecture them if I were 10 years younger than now..";
+ next;
+ mes "[Weird old man]";
+ mes "Pffff.. Never like the time passing....";
+ next;
+ mes "[Weird old man]";
+ mes "So, you... what would you do??";
+ next;
+ mes "[Weird old man]";
+ mes "In an open, public place, you are supposed to stay quiet to the destination and offer your seat to the elderly and the infirm.";
+ next;
+ break;
+ case 2:
+ mes "[Weird old man]";
+ mes "I was on the way to visit my son who lives in Rune Midgarts. It's really far away, so I took the airplane, and..";
+ next;
+ mes "[Weird old man]";
+ mes "those young people...so noisy.... I was standing but non of them offered me a seat..and they were just talking in loud voices which bothered everyone.";
+ next;
+ mes "[Weird old man]";
+ mes "I could lecture them if I were 10 years younger than now..";
+ next;
+ mes "[Weird old man]";
+ mes "Pffff.. Never like the time passing....";
+ next;
+ mes "[Weird old man]";
+ mes "So, you... what would you do??";
+ next;
+ mes "[Weird old man]";
+ mes "In an open, public place, you are supposed to stay quiet to the destination and offer your seat to the elderly and the infirm. Right?";
+ next;
+ mes "[Weird old man]";
+ mes "Isn't that right?!";
+ next;
+ switch(rand(1,2)) {
+ case 1:
+ mes "[Weird old man]";
+ mes "Oh, and then! you know what...?";
+ next;
+ mes "[Weird old man]";
+ mes "Once I was walking in the town, and some boy were spitting on the street, and were bothering girls who were passing by...tut tut!";
+ next;
+ mes "[Weird old man]";
+ mes "The world is going to the dogs.. How will it be?? It was even a day time when they were doing it..tut tut.";
+ next;
+ switch(rand(1,2)) {
+ case 1:
+ mes "[Weird old man]";
+ mes "Oh, and then! you know what...?";
+ next;
+ break;
+ case 2:
+ mes "[Weird old man]";
+ mes "Oh, and then! you know what...?";
+ next;
+ mes "[Weird old man]";
+ mes "Lately young people are not so patient!!!!";
+ next;
+ mes "[Weird old man]";
+ mes "That often, they say they will quit.. they say they can't more. How will they live all the lift with that kind of mentality..tut tut.";
+ next;
+ mes "[Weird old man]";
+ mes "It's not easy to find a job, it is very difficult to be hired. But then they even cannot stand a week there, and leave the work already.";
+ next;
+ mes "[Weird old man]";
+ mes "How impatient and irresponsible!!";
+ next;
+ mes "[Weird old man]";
+ mes "Oh, and then! you know what...?";
+ next;
+ break;
+ }
+ case 2:
+ mes "[Weird old man]";
+ mes "Oh, and then! you know what...?";
+ next;
+ break;
+ }
+ }
+ mes "^E7A43DThe old man talked over and over again.^000000";
+ next;
+ mes "[Weird old man]";
+ mes "Hm......You are not like common young people, you seem pretty patient too. I like that!!!";
+ next;
+ mes "[Weird old man]";
+ mes "Now I am just an old, weak man but when I was young, I was a famous merchant in the town.";
+ next;
+ mes "[Weird old man]";
+ mes "It's been a while since I stopped the business,";
+ mes "but a former client of mine contacted me and asked me";
+ next;
+ mes "[Weird old man]";
+ mes "If I could get him some unknown objects named 'Will of Warrior', 'Thirst for Blood', 'Chill of the Dead'.";
+ next;
+ mes "[Weird old man]";
+ mes "I liked your politeness which is not like most of young people, so if you get me those, I will dare to give you some stuffs that I consider as my treasures.";
+ next;
+ while(1) {
+ switch(select("When I gather them, I will come back", "Show me the armors", "Show me the weapons")) {
+ case 1:
+ mes "[Weird old man]";
+ mes "OK, young man. See you later";
+ close;
+ case 2:
+ mes "[Weird old man]";
+ mes "So, you are interested in armors.";
+ next;
+ mes "[Weird old man]";
+ mes "These are the armors I have.";
+ next;
+ for(.@i = 1; .@i < 8; .@i++) {
+ if(((.@i == 1 || .@i == 5) && (countitem(Will_Of_Warrior) >= 100) && (countitem(Blood_Thirst) >= 50) && (countitem(Goast_Chill) >= 35)) ||
+ ((.@i == 2 || .@i == 3) && (countitem(Will_Of_Warrior) >= 100) && (countitem(Blood_Thirst) >= 50) && (countitem(Goast_Chill) >= 22)) ||
+ ((.@i == 4 || .@i == 7) && (countitem(Will_Of_Warrior) >= 300) && (countitem(Blood_Thirst) >= 300) && (countitem(Goast_Chill) >= 400)) ||
+ ((.@i == 6) && (countitem(Will_Of_Warrior) >= 100) && (countitem(Blood_Thirst) >= 50) && (countitem(Goast_Chill) >= 30))) {
+ .@armor$[.@i] = "^0000FF";
+ } else {
+ .@armor$[.@i] = "^FF0000";
+ }
+ }
+ while(1) {
+ switch(select(
+ "Show me other items.",
+ ""+.@armor$[1]+"Giant Shield^000000",
+ ""+.@armor$[2]+"Acient Book of Geffenia-Water^000000",
+ ""+.@armor$[3]+"Bible of Promise(2nd Vol.)^000000",
+ ""+.@armor$[4]+"Salvage Cape^000000",
+ ""+.@armor$[5]+"Assassin's Handcuffs^000000",
+ ""+.@armor$[6]+"Green Operating Gown^000000",
+ ""+.@armor$[7]+"Ancient Gold Decoration^000000"
+ )) {
+ case 1:
+ mes "[Weird old man]";
+ mes "Have a look.";
+ next;
+ .@break = 1;
+ break;
+ case 2:
+ mes "<<Giant Shield[1]>>";
+ mes "Decrease 5% of Damage from Large Monsters, if Refine Lv is 9, decrease 5% more of the Damage.";
+ mes "Shield / Def 130 / Weight 280 / Required Lv 100 / Socket 1 / for 3rd Swordman Classes";
+ callsub L_Reward, Giant_Shield, 100, 50, 35;
+ break;
+ case 3:
+ mes "<<Acient Book of Geffenia-Water[1]>>";
+ mes "INT + 1, MDEF + 2. If Original INT point is 120, MATK + 10, MHP + 800.";
+ mes "When equipping with Lacryma Stick, the casting % from Storm Gust, Frost Misty and Jack frost will discount equivalent to 4 times Refine Lv.";
+ mes "Shield / Def 30 / Weight 100 / Required Lv 100 / Socket 1 / for Warlock";
+ callsub L_Reward, Geffenia_Book_Water, 100, 50, 22;
+ break;
+ case 4:
+ mes "<<Bible of Promise(2nd Vol.)[1]>>";
+ mes "MDEF + 5, Allow to use 'Odin's Power'(Lv 2). Increase 5% more for Heal skill.";
+ mes "Shield / Def 20 / Weight 50 / Required Lv 140 / Socket 1 / for Archbishop";
+ callsub L_Reward, Bible_Of_Promise2, 100, 50, 22;
+ break;
+ case 5:
+ mes "<<Salvage Cape[0]>>";
+ mes "Allow to use 'Cicada Skin Shed'(Lv 1). Cool time for this skill will be 30 seconds. When equiping it, SP consumption for using any skill will be doubled, When taking it off, SP - 1200.";
+ mes "Garment / Def 1 / Weight 40 / Required Lv 130 / Socket 0 / for Archbishop";
+ callsub L_Reward, Salvage_Cape, 100, 50, 35;
+ break;
+ case 6:
+ mes "<<Assassin's Handcuffs[1]>>";
+ mes "MSP + 20, CRI + 3. When equipping with Krishna, ATK + 50, ATK power from 'Sonic Blow' 50% increased, FLEE - 30. When equipping with Cakram CRI + 4, Critical ATK power 40% increased, MHP - 10%.";
+ mes "Accessory / Def 3 / Weight 40 / Required Lv 100 / Socket 1 / for Guillotine Cross";
+ callsub L_Reward, Assassin_Handcuffs, 300, 300, 400;
+ break;
+ case 7:
+ mes "<<Green Operating Gown[1]>>";
+ mes "DEX + 1, MSP + 30. Equipping with Scalpel will let to drop 'Immortal Heart', 'Alcohol' with a certain chance when hunting Human, Animal type monsters. Refine Lv affects the drop rate.";
+ mes "Armor / Def 66 / Weight 66 / Required Lv 100 / Socket 1 / for Generic";
+ callsub L_Reward, Green_Operation_Coat, 100, 50, 30;
+ break;
+ case 8:
+ mes "<<Green Operating Gown[1]>>";
+ mes "DEX + 1, MSP + 30. Equipping with Scalpel will let to drop 'Immortal Heart', 'Alcohol' with a certain chance when hunting Human, Animal type monsters. Refine Lv affects the drop rate.";
+ mes "Armor / Def 66 / Weight 66 / Required Lv 100 / Socket 1 / for Generic";
+ callsub L_Reward, Ancient_Gold_Deco, 300, 300, 400;
+ break;
+ }
+ if(.@break)
+ break;
+ }
+ case 3:
+ mes "[Weird old man]";
+ mes "So, you are interested in weapons.";
+ next;
+ mes "[Weird old man]";
+ mes "These are the weapons I've got.";
+ next;
+ for(.@i = 1; .@i < 15; .@i++) {
+ if(((.@i == 1) && (countitem(Will_Of_Warrior) >= 50) && (countitem(Blood_Thirst) >= 100) &&
+ (countitem(Goast_Chill) >= 10)) ||
+ ((.@i == 2) && (countitem(Will_Of_Warrior) >= 50) && (countitem(Blood_Thirst) >= 100) &&
+ (countitem(Goast_Chill) >= 85)) ||
+ ((.@i == 3 || .@i == 4 || (.@i >= 8 && .@i < 11) || .@i >= 12) && (countitem(Will_Of_Warrior) >= 50) &&
+ (countitem(Blood_Thirst) >= 100) && (countitem(Goast_Chill) >= 35)) ||
+ ((.@i == 5 || .@i == 7 || .@i == 11) && (countitem(Will_Of_Warrior) >= 50) && (countitem(Blood_Thirst) >= 100)
+ && (countitem(Goast_Chill) >= 40)) ||
+ ((.@i == 6) && (countitem(Will_Of_Warrior) >= 300) && (countitem(Blood_Thirst) >= 300) &&
+ (countitem(Goast_Chill) >= 400))) {
+ .@weapon$[.@i] = "^0000FF";
+ } else {
+ .@weapon$[.@i] = "^FF0000";
+ }
+ }
+ while(1) {
+ switch(select(
+ "Show me other items.",
+ ""+.@weapon$[1]+"Agent Katar^000000",
+ ""+.@weapon$[2]+"Guillotine Katar^000000",
+ ""+.@weapon$[3]+"Ygnus Stale^000000",
+ ""+.@weapon$[4]+"End Sektura^000000",
+ ""+.@weapon$[5]+"Cannon Spear^000000",
+ ""+.@weapon$[6]+"Giant Lance^000000",
+ ""+.@weapon$[7]+"Chilly Spell Book^000000",
+ ""+.@weapon$[8]+"Recovery Light^000000",
+ ""+.@weapon$[9]+"Aztoe Nail^000000",
+ ""+.@weapon$[10]+"Scarletto Nail^000000",
+ ""+.@weapon$[11]+"Bloody Cross^000000",
+ ""+.@weapon$[12]+"Catapult^000000",
+ ""+.@weapon$[13]+"Big CrossBow^000000",
+ ""+.@weapon$[14]+"Creeper Bow^000000"
+ )) {
+ case 1:
+ mes "[Weird old man]";
+ mes "Have a look.";
+ next;
+ .@break = 1;
+ break;
+ case 2:
+ mes "<<Agent Katar[1]>>";
+ mes "Every 2 Original LUK points gets additional 1 HIT point";
+ mes "Katar / ATK 170 / Weight 120 / Weapon Lv 3 / Required Lv 100 / Socket 1 / for Guillotine Cross";
+ callsub L_Reward, Agent_Katar, 50, 100, 10;
+ break;
+ case 3:
+ mes "<<Guillotine Katar[1]>>";
+ mes "DEX + 2. FLEE - 30. 50% more damage to Human monsters. Add 30% more damage for Cross Impact skill.";
+ mes "Katar / ATK 200 / Weight 150 / Weapon Lv 4 / Required Lv 140 / Socket 1 / for Guillotine Cross";
+ callsub L_Reward, Guillotine_Katar, 50, 100, 85;
+ break;
+ case 4:
+ mes "<<Ygnus Stale[1]>>";
+ // FIXME[Haru]: Anyone knows what ¹ßÈ­ means?
+ mes "When doing short distance attack, cast ¹ßÈ­ to the player and to the enemy with a certain chance.";
+ mes "Two-Handed Axe / ATK 250 / Weight 190 / Fire Property / Weapon Lv 4 / Required Lv 95 / Socket 1 / for High Swordman/Merchant Classes";
+ callsub L_Reward, Ygnus_Stale, 50, 100, 35;
+ break;
+ case 5:
+ mes "<<End Sektura[1]>>";
+ mes "When doing short distance attack, cast Freezing to the player and to the enemy with a certain chance.";
+ mes "Two-Handed Axe / ATK 250 / Weight 190 / Water Property / Weapon Lv 4 / Required Lv 95 / Socket 1 / for High Swordman/Merchant Classes";
+ callsub L_Reward, End_Sektura, 50, 100, 35;
+ break;
+ case 6:
+ mes "<<Cannon Spear[1]>>";
+ mes "MSP - 100, Increases 10% of Damage impacted with Cannon Spear, Additional ATK power of Cannon Spear equivalent to 3 times Refine Lv.";
+ mes "One-Handed Spear / ATK 180 / Weight 160 / Weapon Lv 4 / Required Lv 100 / Socket 1 / for Royal Guard";
+ callsub L_Reward, Cannon_Spear, 50, 100, 40;
+ break;
+ case 7:
+ mes "<<Giant Lance[0]>>";
+ mes "ASPD - 10, When it's taken off, the character gets SP - 600. 20 more seconds of Delay time exists before using back the Clashing Spiral. If the original STR points are 120, + ATK 300.";
+ mes "Two-Handed Lance / ATK 20 / Weight 2000 / Weapon Lv 4 / Required Lv 140 / Socket 0 / for Rune Knight";
+ callsub L_Reward, Giant_Lance, 300, 300, 400;
+ break;
+ case 8:
+ mes "<<Chilly Spell Book[2]>>";
+ mes "MATK + 160, DEX + 1. Increases ATK % of Cold Bolt, Diamond Dust equivalent to 3 times Refine Lv, also SP consumption from those skills increased equivalent to 5 times Refine Lv. Undestroyable.";
+ mes "Book / ATK 100 / Weight 100 / Water Property / Weapon Lv 4 / Required Lv 100 / Socket 2 / for Sorcerer";
+ callsub L_Reward, Chilly_Spell_Book, 50, 100, 40;
+ break;
+ case 9:
+ mes "<<Recovery Light[1]>>";
+ mes "MATK + 160. Depending on its Refine Lv, Heal Ability and SP consumption for the skill increased. Indestructible.";
+ mes "One-Handed Staff / ATK 30 / Weight 40 / Saint Property / Weapon Lv 4 / Required Lv 110 / Socket 1 / for Archbishop.";
+ callsub L_Reward, Recovery_Light, 50, 100, 35;
+ break;
+ case 10:
+ mes "<<Aztoe Nail[0]>>";
+ mes "MATK + 80. For Physical Melee Attack, cast Freezing to the target with a certain chance. The chance is affected by Refine Lv.";
+ mes "Dagger / ATK 160 / Weight 50 / Wind Property / Weapon Lv 4 / Required Lv 110 / Socket 0 / for High Swordman/Merchant/Theif Classes";
+ callsub L_Reward, Aztoe_Nail, 50, 100, 35;
+ break;
+ case 11:
+ mes "<<Scarletto Nail[0]>>";
+ mes "MATK + 80. For Physical Melee Attack, cast Stone curse to the target with a certain chance. The chance is affected by Refine Lv.";
+ mes "Dagger / ATK 160 / Weight 50 / Fire Property / Weapon Lv 4 / Required Lv 110 / Socket 0 / for High Swordman/Merchant/Theif Classes";
+ callsub L_Reward, Scarletto_Nail, 50, 100, 35;
+ break;
+ case 12:
+ mes "<<Bloody Cross[0]>>";
+ mes "For Physical Melee Attack, autocast 'Hell Inferno'(Lv 1) with a certain chance. The chance is affected by Refine Lv.";
+ mes "Mace / ATK 170 / Weight 150 / Darkness Property / Weapon Lv 4 / Required Lv 100 / Socket 0 / for High Acolyte Classes";
+ callsub L_Reward, Bloody_Cross, 50, 100, 40;
+ break;
+ case 13:
+ mes "<<Catapult[2]>>";
+ mes "Increases ATK % of 'Triangle Shot' equivalent to 2 times Refine Lv, Also SP consumption from the skill increased.";
+ mes "Bow / ATK 150 / Weight 110 / Weapon Lv 4 / Required Lv 100 / Socket 2 / for Shadow Chaser";
+ callsub L_Reward, Catapult, 50, 100, 35;
+ break;
+ case 14:
+ mes "<<Big CrossBow[2]>>";
+ mes "Increases ATK % of 'Arrow Storm' equivalent to 5 times Refine Lv. Also SP consumption from the skill increased, If the Original AGI points are 120, ASPD + 1.";
+ mes "Bow / ATK 160 / Weight 90 / Weapon Lv 4 / Required Lv 110 / Socket 2 / for Ranger";
+ callsub L_Reward, Big_CrossBow, 50, 100, 35;
+ break;
+ case 15:
+ mes "<<Creeper Bow[2]>>";
+ mes "DEX + 1, For Physical Attack, auto-cast 'Fiber Lock'(Lv 1) with a certain chance.";
+ mes "Bow / ATK 150 / Weight 150 / Weapon Lv 3 / Required Lv 120 / Socket 2 / for 3rd Archer Classes";
+ callsub L_Reward, Creeper_Bow, 50, 100, 35;
+ break;
+ }
+ if(.@break)
+ break;
+ }
+ }
+ }
+
+ L_Reward:
+ next;
+ mes ""+getarg(1)+" Will of Warrior, "+getarg(2)+" Thirst for Blood, "+getarg(3)+" Chill of the Dead are needed for the exchange";
+ next;
+ if(countitem(Will_Of_Warrior) >= getarg(1) && countitem(Blood_Thirst) >= getarg(2) && countitem(Goast_Chill) >= getarg(3)) {
+ if(select("Don't exchange", "Exchange") == 1) {
+ mes "[Weird old man]";
+ mes "Okay..";
+ close;
+ }
+ emotion e_swt2, "Weird old man#Bio4Reward";
+ progressbar "FF00FF", 2;
+ delitem Will_Of_Warrior, getarg(1);
+ delitem Blood_Thirst, getarg(2);
+ delitem Goast_Chill, getarg(3);
+ getitem getarg(0), 1;
+ mes "[Weird old man]";
+ mes "There you go. Visit me sometimes and we could talk.";
+ close;
+ }
+ return;
+}
+
+// Sorcerer (Rewards)
+//==============================================================================
+lhz_cube,233,24,4 script Sorcerer#Bio4Reward 4_M_UMDANCEKID,{
+ if ((MaxWeight - Weight) < 1200 || !checkweight(1201, 1)) {
+ mes "^FF0000 Check up your inventory. You got too many items to carry out the quest. ^000000";
+ close;
+ }
+ disable_items;
+ mes "[Pudding]";
+ mes "... .... ...";
+ next;
+ switch(select("Umba umba humbaa", "What are you doing here?", "Which are the equipments found so far?", "Here you are, Sir.")) {
+ case 1:
+ emotion e_an;
+ mes "[Pudding]";
+ mes "Hey, excuse me, but I'm not from Umbala! You are so rude.";
+ close2;
+ enable_items;
+ end;
+ case 2:
+ mes "[Pudding]";
+ mes "As you can see, I'm a training Sorcerer, and my name is Pudding.";
+ next;
+ select("....?");
+ emotion e_an;
+ mes "[Pudding]";
+ mes "... What's that face? I'm starting to feel unpleasant..";
+ next;
+ emotion e_ok;
+ mes "[Pudding]";
+ mes "Couple of days ago, while I was undergoing discipline, I felt a strange, bizzare tinge. So I followed that and it brought me here.";
+ next;
+ select("I see.");
+ mes "[Pudding]";
+ mes "OK, let me continue. I am so bothered if you disturb me while I'm talking.";
+ next;
+ mes "[Pudding]";
+ mes "And I entered to the laboratory here in order to investigate, and oh gosh! I found those monsters which were like doppelgangers from 'Geffen Dungeon'. It was full of them.";
+ next;
+ mes "[Pudding]";
+ mes "From those monsters, I could find rare items like '^F2766EWill of Warrior^000000' '^952420Thirst for Blood^000000' '^88C6F7Chill of the Dead^000000' which you cannot find from any other place.";
+ next;
+ emotion e_what, "Sorcerer#Bio4Reward";
+ mes "[Pudding]";
+ mes "And after many hours of research on my own, I finally figured out a way to use those items. Do you wanna know?";
+ next;
+ switch(select("Oh....pardon?!", "Of course, I really wanna know.")) {
+ case 1:
+ emotion e_omg, 1;
+ emotion e_an, "Sorcerer#Bio4Reward";
+ mes "[Pudding]";
+ mes "Oh my! You fell asleep after you asked me something? Well, anyway I feel lazy to explain again so I will just continue.";
+ next;
+ break;
+ case 2:
+ emotion e_heh, "Sorcerer#Bio4Reward";
+ mes "[Pudding]";
+ mes "Good, I am content that you are listening to my story carefully. Then I will keep explaining.";
+ next;
+ break;
+ }
+ mes "[Pudding]";
+ mes "Those '^F2766EWill of Warrior^000000' and '^952420Thirst for Blood^000000'..... are aggresive but warm materials.";
+ next;
+ mes "[Pudding]";
+ mes "So '^F2766EWill of Warrior^000000' can dwell a special power to the 4th slot of an equipment,";
+ next;
+ mes "[Pudding]";
+ mes "and '^952420Thirst for Blood^000000' can dwell a special power to the 3rd slot.";
+ next;
+ mes "[Pudding]";
+ mes "Whereas!!!";
+ mes "'^88C6F7Chill of the Dead^000000' is a cold type material.";
+ mes "which allows to return the power from '^F2766EWill of Warrior^000000' or '^952420Thirst for Blood^000000' so it let the equipment to be 'ZERO'.";
+ next;
+ mes "[Pudding]";
+ mes "What do you say? Doesn't it sound interesting? But, there's a problem...";
+ next;
+ mes "[Pudding]";
+ mes "Since those materials can only be found from the monsters in the Lab., the special power also can be dwelt into certain equipments which can be obtained from the Lab.";
+ next;
+ select("So what's the conclusion?");
+ emotion e_what, 1;
+ emotion e_an;
+ mes "[Pudding]";
+ mes "Gee.. I told you not to cut while I talk, didn't I? Well, I will answer that becuase that's important.";
+ next;
+ mes "[Pudding]";
+ mes "If you bring me 10 '^F2766EWill of Warrior^000000' or 10 '^952420Thirst for Blood^000000', I will dwell some power to certain equipments that you can find in the Lab..";
+ next;
+ mes "[Pudding]";
+ mes "And if you are not satisfied with the power you got, bring me 10 '^88C6F7Chill of the Dead^000000', and I will take off that power.";
+ next;
+ mes "[Pudding]";
+ mes "WHat do you say? Having both options.....quite nice, huh?";
+ next;
+ mes "[Pudding]";
+ mes "If you obtain '^F2766EWill of Warrior^000000' or '^952420Thirst for Blood^000000', and obtain also equipment which is capable to accept their power, bring them to me. I will be waiting.";
+ close2;
+ enable_items;
+ end;
+ case 3:
+ mes "[Pudding]";
+ mes "Hm.... Equipment which are discovered so far are....";
+ next;
+ mes "- checking -";
+ mes "Pudding takes some paper out from a pocket.";
+ next;
+ mes "[Pudding]";
+ mes "Let me see.. the equipments discovered until now are....";
+ mes "6 Armors, 14 Weapons.";
+ next;
+ while(1) {
+ switch(select("Ok, I don't have to know more.", "6 Armors", "14 Weapons")) {
+ case 1:
+ mes "[Pudding]";
+ mes "If you obtain '^F2766EWill of Warrior^000000' or '^952420Thirst for Blood^000000', and obtain also equipment which is capable to accept their power, bring them to me. I will be waiting.";
+ close2;
+ enable_items;
+ end;
+ case 2:
+ mes "< Armor List >";
+ mes "Giant Shield[1]";
+ mes "Acient Book of Geffenia-Water[1]";
+ mes "Bible of Promise(2nd Vol.)[1]";
+ mes "Salvage Cape[0]";
+ mes "Assassin's Handcuffs[1]";
+ mes "Green Operating Gown[1]";
+ mes "Ancient Gold Decoration[1]";
+ next;
+ mes "[Pudding]";
+ mes "So far these are the Armors discovered. Do you wanna see other things?";
+ next;
+ break;
+ case 3:
+ mes "< Weapon List >";
+ mes "Agent Katar[1]";
+ mes "Guillotine Katar[1]";
+ mes "Ygnus Stale[1]";
+ mes "End Sektura[1]";
+ mes "Cannon Spear[1]";
+ mes "Giant Lance[0]";
+ mes "Chilly Spell Book[2]";
+ mes "Recovery Light[1]";
+ mes "Aztoe Nail[0]";
+ mes "Scarletto Nail[0]";
+ mes "Bloody Cross[0]";
+ mes "Catapult[2]";
+ mes "Big CrossBow[2]";
+ mes "Creeper Bow[2]";
+ next;
+ mes "[Pudding]";
+ mes "So far these are the Weapons discovered. Do you wanna see other things?";
+ next;
+ break;
+ }
+ }
+ case 4:
+ emotion e_flash;
+ mes "[Pudding]";
+ mes "Ohhhhh Have you brought them?";
+ next;
+ break;
+ }
+ mes "[Pudding]";
+ mes "OKAY! In which equipment you want to dwell the power?";
+ next;
+ setarray .@parts[0], EQI_ARMOR, EQI_HAND_L, EQI_HAND_R, EQI_GARMENT, EQI_ACC_L, EQI_ACC_R, EQI_HEAD_LOW;
+ for(.@i = 0; .@i < 7; .@i++) {
+ if(!getequipisequiped(.@parts[.@i])) {
+ switch(.@i) {
+ case 0:
+ .@equipped$[.@i] = "^999999Armor-[Not equipped]^000000";
+ break;
+ case 1:
+ .@equipped$[.@i] = "^999999Left Hand-[Not equipped]^000000";
+ break;
+ case 2:
+ .@equipped$[.@i] = "^999999Right Hand-[Not equipped]^000000";
+ break;
+ case 3:
+ .@equipped$[.@i] = "^999999Garment-[Not equipped]^000000";
+ break;
+ case 4:
+ .@equipped$[.@i] = "^999999Accessory-[Not equipped]^000000";
+ break;
+ case 5:
+ .@equipped$[.@i] = "^999999Accessory-[Not equipped]^000000";
+ break;
+ case 6:
+ .@equipped$[.@i] = "^999999Helm-[Not equipped]^000000";
+ break;
+ }
+ } else {
+ .@equipped$[.@i] = getequipname(.@parts[.@i]);
+ }
+ }
+ switch(select("I changed my mind.", .@equipped$[0], .@equipped$[1], .@equipped$[2], .@equipped$[3], .@equipped$[4],
+ .@equipped$[5], .@equipped$[6])) {
+ case 1:
+ mes "[Pudding]";
+ mes "Well, I was looking forward to doing it, but I cannot help then.";
+ close2;
+ enable_items;
+ end;
+ case 2:
+ if(!getequipisequiped(EQI_ARMOR)) {
+ mes "[Pudding]";
+ mes "Hey..Where is the armor?";
+ close2;
+ enable_items;
+ end;
+ }
+ .@position = EQI_ARMOR;
+ break;
+ case 3:
+ if(!getequipisequiped(EQI_HAND_L)) {
+ mes "[Pudding]";
+ mes "Well.. You are not equipping anything on the left hand.";
+ close2;
+ enable_items;
+ end;
+ }
+ .@position = EQI_HAND_L;
+ break;
+ case 4:
+ if(!getequipisequiped(EQI_HAND_R)) {
+ mes "[Pudding]";
+ mes "Well.. You are not equipping anything on the right hand.";
+ close2;
+ enable_items;
+ end;
+ }
+ .@position = EQI_HAND_R;
+ break;
+ case 5:
+ if(!getequipisequiped(EQI_GARMENT)) {
+ mes "[Pudding]";
+ mes "Um.... Where's your robe?";
+ close2;
+ enable_items;
+ end;
+ }
+ .@position = EQI_GARMENT;
+ break;
+ case 6:
+ if(!getequipisequiped(EQI_ACC_L)) {
+ mes "[Pudding]";
+ mes ".....Where's the accessory?";
+ close2;
+ enable_items;
+ end;
+ }
+ .@position = EQI_ACC_L;
+ break;
+ case 7:
+ if(!getequipisequiped(EQI_ACC_R)) {
+ mes "[Pudding]";
+ mes ".....Where's the accessory?";
+ close2;
+ enable_items;
+ end;
+ }
+ .@position = EQI_ACC_R;
+ break;
+ case 8:
+ if(!getequipisequiped(EQI_HEAD_LOW)) {
+ mes "[Pudding]";
+ mes "Hey.. Are you not wearing any Helm?";
+ close2;
+ enable_items;
+ end;
+ }
+ .@position = EQI_HEAD_LOW;
+ break;
+ }
+ .@refine_count = getequiprefinerycnt(.@position);
+ .@equip_item = getequipid(.@position);
+ .@lhz_max_num = 4000;
+ if(.@equip_item == Agent_Katar || .@equip_item == Guillotine_Katar || .@equip_item == Ygnus_Stale ||
+ .@equip_item == End_Sektura || .@equip_item = Cannon_Spear || .@equip_item == Giant_Lance ||
+ .@equip_item == Aztoe_Nail || .@equip_item == Scarletto_Nail || .@equip_item == Bloody_Cross) {
+ .@type = 1;
+ if(.@equip_item == Giant_Lance)
+ .@lhz_max_num = 4200;
+ } else if (.@equip_item == Catapult || .@equip_item == Big_CrossBow || .@equip_item == Creeper_Bow) {
+ .@type = 2;
+ } else if (.@equip_item == Chilly_Spell_Book || .@equip_item == Recovery_Light) {
+ .@type = 3;
+ } else if (.@equip_item== Giant_Shield || .@equip_item == Geffenia_Book_Water || .@equip_item == Bible_Of_Promise2 ||
+ .@equip_item == Salvage_Cape || .@equip_item == Assassin_Handcuffs || .@equip_item == Green_Operation_Coat ||
+ .@equip_item == Ancient_Gold_Deco) {
+ if(.@equip_item == Salvage_Cape || .@equip_item == Ancient_Gold_Deco)
+ .@lhz_max_num = 4200;
+ } else {
+ mes "[Pudding]";
+ mes "Before! I need to check if this equipment can accept the power.";
+ next;
+ specialeffect2 EF_SPHERE;
+ progressbar "ffff00", 2;
+ specialeffect2 EF_SUI_EXPLOSION;
+ emotion e_sob;
+ mes "[Pudding]";
+ mes "Hm.... This equipment cannot accept the power of '^F2766EWill of Warrior^000000' or '^952420Thirst for Blood^000000'.";
+ close2;
+ enable_items;
+ end;
+ }
+ emotion e_ho;
+ mes "[Pudding]";
+ mes "OHHH.. This equipment could accept the power of '^F2766EWill of Warrior^000000' or '^952420Thirst for Blood^000000'.";
+ next;
+ if (countitem(Will_Of_Warrior) >= 10)
+ .@menu_in$[1] = "Dwell the power of '^F2766EWill of Warrior^000000'";
+ else
+ .@menu_in$[1] = "Not enough ^999999'Will of Warrior'^000000";
+
+ if (countitem(Blood_Thirst) >= 10)
+ .@menu_in$[2] = "Dwell the power of '^952420Thirst for Blood^000000'";
+ else
+ .@menu_in$[2] = "Not enough ^999999'Thirst for Blood'^000000";
+
+ if (countitem(Goast_Chill) >= 10)
+ .@menu_in$[3] = "Consume the '^88C6F7Chill of the Dead^000000'";
+ else
+ .@menu_in$[3] = "Not enough ^999999'Chill of the Dead'^000000";
+ mes "[Pudding]";
+ mes "OK! Which power do you want to dwell in your equipment?";
+ next;
+ switch(select("I say no! I don't need that!!", .@menu_in$[1], .@menu_in$[2], .@menu_in$[3])) {
+ case 1:
+ mes "[Pudding]";
+ mes "Ohhh.. I was looking forward to doing it, but it's all up to you......";
+ close2;
+ enable_items;
+ end;
+ case 2:
+ if (countitem(Will_Of_Warrior) < 10) {
+ mes "[Pudding]";
+ mes "Not enough '^F2766EWill of Warrior^000000', You need to bring 10 '^F2766EWill of Warrior^000000'";
+ close2;
+ enable_items;
+ end;
+ }
+ else if (getequipcardid(.@position, 3) > 0) {
+ mes "[Pudding]";
+ mes "This equipment already got the power of '^F2766EWill of Warrior^000000'.";
+ close2;
+ enable_items;
+ end;
+ } else {
+ .@socket_type = 4;
+ }
+ break;
+ case 3:
+ if (countitem(Blood_Thirst) < 10) {
+ mes "[Pudding]";
+ mes "Not enough '^952420Thirst for Blood^000000', You need to bring 10 '^952420Thirst for Blood^000000'";
+ close2;
+ enable_items;
+ end;
+ }
+ else if (getequipcardid(.@position, 2) > 0) {
+ mes "[Pudding]";
+ mes "This equipment already got the power of '^952420Thirst for Blood^000000'.";
+ close2;
+ enable_items;
+ end;
+ } else {
+ .@socket_type = 3;
+ }
+ break;
+ case 4:
+ //---------- Enchant Removal Script ----------//
+ if (countitem(Goast_Chill) < 10) {
+ .@menu_clear$[1] = "^999999Not enough 'Chill of the Dead'^000000";
+ .@menu_clear$[2] = "^999999Not enough 'Chill of the Dead'^000000";
+ .@4thzptsodyd = 1;
+ .@3thzptsodyd = 1;
+ } else {
+ if (getequipcardid(.@position, 3) > 0) {
+ .@menu_clear$[1] = "Remove the power of '^F2766EWill of Warrior^000000'";
+ } else {
+ .@menu_clear$[1] = "^999999There's no power to remove^000000";
+ .@4thzptsodyd = 1;
+ }
+ if (getequipcardid(.@position, 2) > 0) {
+ .@menu_clear$[2] = "Remove the power of '^952420Thirst for Blood^000000'";
+ } else {
+ .@menu_clear$[2] = "^999999There's no power to remove^000000";
+ .@3thzptsodyd = 1;
+ }
+ }
+ mes "[Pudding]";
+ mes "Alright, which power do you want to remove?";
+ next;
+ .@menu = select("No, I don't wannna remove any.", .@menu_clear$[1], .@menu_clear$[2]);
+ switch(.@menu){
+ case 1:
+ mes "[Pudding]";
+ mes "Really? Ok. I got it..";
+ close2;
+ enable_items;
+ end;
+ case 2:
+ case 3:
+ if (countitem(Goast_Chill) < 10) {
+ mes "[Pudding]";
+ mes "Not enough '^88C6F7Chill of the Dead^000000', You need to bring 10 '^88C6F7Chill of the Dead^000000'";
+ close2;
+ enable_items;
+ end;
+ }
+ if ( (.@menu==3 && .@3thzptsodyd == 1) || (.@menu==2 && .@4thzptsodyd == 1) ) {
+ mes "[Pudding]";
+ mes "This equipment didn't get any special power.";
+ close2;
+ enable_items;
+ end;
+ }
+ setarray .@equip_card[0], getequipcardid(.@position,0), getequipcardid(.@position,1), getequipcardid(.@position,2), getequipcardid(.@position,3);
+ if (.@menu==2){ .@equip_card[3] = 0; }
+ else { .@equip_card[2] = 0; }
+ .@equip_item = getequipid(.@position);
+ specialeffect EF_BEGINSPELL2, AREA, "Sorcerer#Bio4Reward";
+ progressbar "ffff00", 2;
+ specialeffect2 EF_FROSTWEAPON;
+ delitem Goast_Chill, 10;
+ delequip .@position;
+ getitem2 .@equip_item, 1, 1, .@refine_count, 0, .@equip_card[0], .@equip_card[1], .@equip_card[2], .@equip_card[3];
+ mes "[Pudding]";
+ if(.@menu==3)
+ mes "The power of '^952420Thirst for Blood^000000' has been perfectly removed.";
+ else
+ mes "The power of '^F2766EWill of Warrior^000000' has been perfectly removed.";
+ close2;
+ enable_items;
+ end;
+ }
+ }
+ mes "[Pudding]";
+ mes "Before I dwell the power, let me explain to you cautions.";
+ next;
+ mes "[Pudding]";
+ mes "While dwelling the power of '^F2766EWill of Warrior^000000' or '^952420Thirst for Blood^000000', the equipment would be not capable to accept that and will be destryed..";
+ next;
+ mes "[Pudding]";
+ mes "^9D2628If the equipment is destroyed, you will also lose the cards you inserted in it, and the refine Lv will be removed too.^000000";
+ next;
+ mes "[Pudding]";
+ mes "Alright. will you really wish to dwell the power into the equipment?";
+ next;
+ if(select("Wait, I will think again.", "Sure, carry on.") == 1) {
+ mes "[Pudding]";
+ mes "OK. I will be hoping to see you again.";
+ close2;
+ enable_items;
+ end;
+ }
+ mes "[Pudding]";
+ mes "I wish you made a correct decision...";
+ next;
+ if(.@socket_type >= 3) {
+ switch(.@type){
+ case 1:
+ // Short Distance
+ .@i = rand(1, .@lhz_max_num);
+ if (.@i < 401) .@enchant = Strength1;
+ else if (.@i < 441) .@enchant = Strength2;
+ else if (.@i < 445) .@enchant = Strength3;
+ else if (.@i < 845) .@enchant = Agility1;
+ else if (.@i < 885) .@enchant = Agility2;
+ else if (.@i < 889) .@enchant = Agility3;
+ else if (.@i < 1289) .@enchant = Vitality1;
+ else if (.@i < 1329) .@enchant = Vitality2;
+ else if (.@i < 1333) .@enchant = Vitality3;
+ else if (.@i < 1523) .@enchant = Inteligence1;
+ else if (.@i < 1542) .@enchant = Inteligence2;
+ else if (.@i < 1544) .@enchant = Inteligence3;
+ else if (.@i < 1844) .@enchant = Dexterity1;
+ else if (.@i < 1874) .@enchant = Dexterity2;
+ else if (.@i < 1877) .@enchant = Dexterity3;
+ else if (.@i < 2067) .@enchant = Luck1;
+ else if (.@i < 2086) .@enchant = Luck2;
+ else if (.@i < 2088) .@enchant = Luck3;
+ else if (.@i < 2491) .@enchant = 0;
+ else if (.@i < 2891) .@enchant = Fighting_Spirit1;
+ else if (.@i < 2931) .@enchant = Fighting_Spirit2;
+ else if (.@i < 2935) .@enchant = Fighting_Spirit3;
+ else if (.@i < 3125) .@enchant = Spell1;
+ else if (.@i < 3144) .@enchant = Spell2;
+ else if (.@i < 3146) .@enchant = Spell3;
+ else if (.@i < 3148) .@enchant = Atk_Speed1;
+ else if (.@i < 3348) .@enchant = Sharp1;
+ else if (.@i < 3368) .@enchant = Sharp2;
+ else if (.@i < 3370) .@enchant = Sharp3;
+ else if (.@i < 3560) .@enchant = Expert_Archer1;
+ else if (.@i < 3579) .@enchant = Expert_Archer2;
+ else if (.@i < 3581) .@enchant = Expert_Archer3;
+ else .@enchant = 0;
+ break;
+ case 2:
+ // Long Distance
+ .@i = rand(1, .@lhz_max_num);
+ if (.@i < 191) .@enchant = Strength1;
+ else if (.@i < 210) .@enchant = Strength2;
+ else if (.@i < 212) .@enchant = Strength3;
+ else if (.@i < 612) .@enchant = Agility1;
+ else if (.@i < 652) .@enchant = Agility2;
+ else if (.@i < 656) .@enchant = Agility3;
+ else if (.@i < 846) .@enchant = Vitality1;
+ else if (.@i < 865) .@enchant = Vitality2;
+ else if (.@i < 867) .@enchant = Vitality3;
+ else if (.@i < 1167) .@enchant = Inteligence1;
+ else if (.@i < 1197) .@enchant = Inteligence2;
+ else if (.@i < 1200) .@enchant = Inteligence3;
+ else if (.@i < 1600) .@enchant = Dexterity1;
+ else if (.@i < 1640) .@enchant = Dexterity2;
+ else if (.@i < 1644) .@enchant = Dexterity3;
+ else if (.@i < 1834) .@enchant = Luck1;
+ else if (.@i < 1853) .@enchant = Luck2;
+ else if (.@i < 1855) .@enchant = Luck3;
+ else if (.@i < 2258) .@enchant = 0;
+ else if (.@i < 2448) .@enchant = Fighting_Spirit1;
+ else if (.@i < 2467) .@enchant = Fighting_Spirit2;
+ else if (.@i < 2469) .@enchant = Fighting_Spirit3;
+ else if (.@i < 2669) .@enchant = Spell1;
+ else if (.@i < 2689) .@enchant = Spell2;
+ else if (.@i < 2691) .@enchant = Spell3;
+ else if (.@i < 2693) .@enchant = Atk_Speed1;
+ else if (.@i < 3093) .@enchant = Sharp1;
+ else if (.@i < 3133) .@enchant = Sharp2;
+ else if (.@i < 3137) .@enchant = Sharp3;
+ else if (.@i < 3537) .@enchant = Expert_Archer1;
+ else if (.@i < 3577) .@enchant = Expert_Archer2;
+ else if (.@i < 3581) .@enchant = Expert_Archer3;
+ else .@enchant = 0;
+ break;
+ case 3:
+ .@i = rand(1, .@lhz_max_num);
+ if (.@i < 301) .@enchant = Strength1;
+ else if (.@i < 331) .@enchant = Strength2;
+ else if (.@i < 334) .@enchant = Strength3;
+ else if (.@i < 534) .@enchant = Agility1;
+ else if (.@i < 554) .@enchant = Agility2;
+ else if (.@i < 556) .@enchant = Agility3;
+ else if (.@i < 956) .@enchant = Vitality1;
+ else if (.@i < 996) .@enchant = Vitality2;
+ else if (.@i < 1000) .@enchant = Vitality3;
+ else if (.@i < 1400) .@enchant = Inteligence1;
+ else if (.@i < 1440) .@enchant = Inteligence2;
+ else if (.@i < 1444) .@enchant = Inteligence3;
+ else if (.@i < 1844) .@enchant = Dexterity1;
+ else if (.@i < 1884) .@enchant = Dexterity2;
+ else if (.@i < 1888) .@enchant = Dexterity3;
+ else if (.@i < 2078) .@enchant = Luck1;
+ else if (.@i < 2097) .@enchant = Luck2;
+ else if (.@i < 2099) .@enchant = Luck3;
+ else if (.@i < 2502) .@enchant = 0;
+ else if (.@i < 2692) .@enchant = Fighting_Spirit1;
+ else if (.@i < 2711) .@enchant = Fighting_Spirit2;
+ else if (.@i < 2713) .@enchant = Fighting_Spirit3;
+ else if (.@i < 3113) .@enchant = Spell1;
+ else if (.@i < 3153) .@enchant = Spell2;
+ else if (.@i < 3157) .@enchant = Spell3;
+ else if (.@i < 3159) .@enchant = Atk_Speed1;
+ else if (.@i < 3349) .@enchant = Sharp1;
+ else if (.@i < 3368) .@enchant = Sharp2;
+ else if (.@i < 3370) .@enchant = Sharp3;
+ else if (.@i < 3560) .@enchant = Expert_Archer1;
+ else if (.@i < 3579) .@enchant = Expert_Archer2;
+ else if (.@i < 3581) .@enchant = Expert_Archer3;
+ else .@enchant = 0;
+ break;
+ case 4:
+ // Armor
+ .@i = rand(1, .@lhz_max_num);
+ if (.@i < 301) .@enchant = Strength1;
+ else if (.@i < 331) .@enchant = Strength2;
+ else if (.@i < 334) .@enchant = Strength3;
+ else if (.@i < 634) .@enchant = Agility1;
+ else if (.@i < 664) .@enchant = Agility2;
+ else if (.@i < 667) .@enchant = Agility3;
+ else if (.@i < 967) .@enchant = Vitality1;
+ else if (.@i < 997) .@enchant = Vitality2;
+ else if (.@i < 1000) .@enchant = Vitality3;
+ else if (.@i < 1300) .@enchant = Inteligence1;
+ else if (.@i < 1330) .@enchant = Inteligence2;
+ else if (.@i < 1333) .@enchant = Inteligence3;
+ else if (.@i < 1633) .@enchant = Dexterity1;
+ else if (.@i < 1663) .@enchant = Dexterity2;
+ else if (.@i < 1666) .@enchant = Dexterity3;
+ else if (.@i < 1966) .@enchant = Luck1;
+ else if (.@i < 1996) .@enchant = Luck2;
+ else if (.@i < 1999) .@enchant = Luck3;
+ else if (.@i < 2399) .@enchant = 0;
+ else if (.@i < 2549) .@enchant = Mdef2;
+ else if (.@i < 2599) .@enchant = Mdef4;
+ else if (.@i < 2609) .@enchant = Mdef6;
+ else if (.@i < 2614) .@enchant = Mdef8;
+ else if (.@i < 2616) .@enchant = Mdef10;
+ else if (.@i < 2766) .@enchant = Def3;
+ else if (.@i < 2866) .@enchant = Def6;
+ else if (.@i < 2876) .@enchant = Def9;
+ else if (.@i < 2878) .@enchant = Def12;
+ else if (.@i < 3278) .@enchant = 0;
+ else if (.@i < 3428) .@enchant = Evasion1;
+ else if (.@i < 3478) .@enchant = Evasion3;
+ else if (.@i < 3488) .@enchant = Evasion6;
+ else if (.@i < 3498) .@enchant = SP50;
+ else if (.@i < 3734) .@enchant = HP100;
+ else if (.@i < 3834) .@enchant = HP200;
+ else if (.@i < 3884) .@enchant = HP300;
+ else .@enchant = 0;
+ break;
+ }
+ setarray .@equip_card[0], getequipcardid(.@position,0),getequipcardid(.@position,1),getequipcardid(.@position,2),getequipcardid(.@position,3);
+ .@equip_card[(.@socket_type-1)] = .@enchant;
+ .@equip_item = getequipid(.@position);
+ specialeffect EF_BEGINSPELL3, AREA, "Sorcerer#Bio4Reward";
+ progressbar "ffff00", 2;
+ if (.@socket_type == 3)
+ delitem Blood_Thirst, 10;
+ else
+ delitem Will_Of_Warrior, 10;
+ delequip .@position;
+ if (.@enchant == 0) {
+ specialeffect2 EF_SUI_EXPLOSION;
+ emotion e_otl;
+ mes "[Pudding]";
+ mes "...Well....the equipment could not accept the power of "+((.@socket_type==3)?"'^952420Thirst for Blood^000000'":"'^F2766EWill of Warrior^000000'")+" and it got destroyed.";
+ close2;
+ enable_items;
+ end;
+ } else {
+ specialeffect2 EF_FIREHIT;
+ getitem2 .@equip_item, 1, 1, .@refine_count, 0, .@equip_card[0], .@equip_card[1], .@equip_card[2], .@equip_card[3];
+ emotion e_ho;
+ mes "[Pudding]";
+ mes "Fortunately the power of "+((.@socket_type==3)?"'^952420Thirst for Blood^000000'":"'^F2766EWill of Warrior^000000'")+" has been dwelt well in your equipment..";
+ close2;
+ enable_items;
+ end;
+ }
+ }
+ enable_items;
+ end;
+}
+
+// Warp portal to the 4th Fl.
+//==============================================================================
+lhz_dun03,239,78,1 script lhz_dun03_lhz_dun04 WARPNPC,1,1,{
+ end;
+
+ OnTouch:
+ if (lght_duk01 > 0 && lght_duk01 < 6) {
+ mes "In order to investigate human experimentation, I had to go down whilst I didn't want to because of gruesome sound.";
+ close2;
+ if (lght_duk01 < 3) {
+ warp "que_lhz", 245, 56;
+ } else if (lght_duk01 == 3) {
+ warp "que_lhz", 96, 136;
+ } else {
+ warp "que_lhz", 148, 215;
+ }
+ } else {
+ if (lhz_boss < 31) {
+ mes "- Whistling sound -";
+ mes "From below, there comes a gruesome sound mingling with the wind.";
+ close2;
+ }
+ warp "lhz_dun04", 245, 56;
+ }
+ end;
+}
+
+// Warp Portal to the 3rd Fl.
+//==============================================================================
+lhz_dun04,244,61,1 warp lhz_dun04_lhz_dun03 1,1,lhz_dun03,240,75
+
+// Inside the Lab
+//==============================================================================
+que_lhz,242,50,0 script #01Startpoint -1,3,3,{
+ end;
+
+ OnInit:
+ initnpctimer;
+ end;
+
+ OnTimer60000:
+ mapannounce "que_lhz", "Man's whisper: Pl.. please.. save me.. I don't wanna die.. wouaaaa..", bc_map, "0x7DCBF0";
+ end;
+
+ OnTimer120000:
+ mapannounce "que_lhz", "Woman's whisper: .. Save.. aaaah.. us...", bc_map, "0x7DCBF0";
+ end;
+
+ OnTimer180000:
+ mapannounce "que_lhz", "Kid's whisper: Bawwww~ Where am I? Mama......aaaa....", bc_map, "0x7DCBF0";
+ end;
+
+ OnTimer240000:
+ mapannounce "que_lhz", "Oldman's whisper: Kirk...hel...help......", bc_map, "0x7DCBF0";
+ end;
+
+ OnTimer300000:
+ stopnpctimer;
+ initnpctimer;
+ end;
+
+ OnTouch:
+ if (lght_duk01 == 1) {
+ mes "I arrived at a research facility which seems it has been used till these days.";
+ next;
+ mes "There are some destroyed part, but the basic facility seem fine.";
+ next;
+ lght_duk01 = 2;
+ mes "Get around a little more..";
+ close;
+ }
+ end;
+}
+
+// Wolfchev
+//==============================================================================
+que_lhz,206,74,4 script Researcher#02 4_LGTSCIENCE,3,3,{
+ end;
+
+ OnTouch:
+ if (lght_duk01 == 2) {
+ emotion e_omg, 1;
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "You!!!! are Wolfchev?";
+ next;
+ emotion e_gg, "Researcher#02";
+ mes "[Wolfchev]";
+ mes "A Human! kaahaha. People tend to hate this place, why are you here?";
+ next;
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "You!!! I heard that you were committing human experimentation. Wolfchev!!";
+ next;
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "And I see that you are still committing that!!!";
+ next;
+ emotion e_gg, "Researcher#02";
+ mes "[Wolfchev]";
+ mes "Kihihihi. I can see that you know something about me. Is that you who accused me?";
+ mes "How dare you come back to me after you did that. Kihihih";
+ next;
+ mes "[Wolfchev]";
+ mes "I feel good to see a human";
+ mes "in a long time, but I gotta go. Kihihihi.";
+ next;
+ mes "- Wolfchev ran away giving a awkward laughing sound. -";
+ next;
+ erasequest 5109;
+ setquest 5110;
+ lght_duk01 = 3;
+ emotion e_omg, 1;
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "Whoa! Wolfchev, stop!";
+ close2;
+ warp "que_lhz", 96, 136;
+ }
+ end;
+}
+
+// Wolfchev
+//==============================================================================
+que_lhz,94,119,4 script Researcher#03 4_LGTSCIENCE,{
+ if ((MaxWeight - Weight) < 1000 || !checkweight(1201, 1)) {
+ mes "^FF0000 Check up your inventory. You got too many items to carry out the quest. ^000000";
+ close;
+ }
+ if (lght_duk01 == 3) {
+ emotion e_swt2, "Researcher#03";
+ mes "[Wolfchev]";
+ mes "(Gasping) Pshaw... you are still following me. Hey, why do you keep following me?";
+ next;
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "Wolfchev.. You said before. that you are doing research for everybody.";
+ next;
+ mes "[Wolfchev]";
+ mes "I might have said that.... so what?";
+ next;
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "But, your experiment seem really dangerous. How come this is what everybody wants?";
+ next;
+ emotion e_gg, "Researcher#03";
+ mes "[Wolfchev]";
+ mes "Everyone has a desire to be stronger and wants to dominate others so those other people obey and admire you. Do you not have that desire?";
+ next;
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "... .... ...";
+ next;
+ mes "[Wolfchev]";
+ mes "If you want to save yourself, should stop following me. Bugger off.";
+ next;
+ mes "Wolfchev is again running away with a strange sound.";
+ next;
+ lght_duk01 = 4;
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "Awwww!! You!! running away again..... Stop!";
+ close2;
+ warp "que_lhz", 148, 215;
+ }
+ end;
+}
+
+// Wolfchev
+//==============================================================================
+que_lhz,147,224,4 script Researcher#04 4_LGTSCIENCE,{
+ if ((MaxWeight - Weight) < 1000 || !checkweight(1201, 1)) {
+ mes "^FF0000 Check up your inventory. You got too many items to carry out the quest. ^000000";
+ close;
+ }
+ if (lght_duk01 == 4) {
+ mes "[Wolfchev]";
+ mes "You are pretty persistent, aren't you? Or I think.......that you like me, huh? Kihihii.";
+ next;
+ emotion e_dots;
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "... .... ...";
+ next;
+ specialeffect EF_SIGHTRASHER;
+ mes "Wolfchev mocked you at your silence and pressed a button in his hand. Then guinea pigs woken up around him.";
+ next;
+ for(.@i = 1; .@i < 9; .@i++)
+ donpcevent "Human Guinea pig#0"+.@i+"::OnEnable";
+ mes "[Wolfchev]";
+ mes "Again.. it's time to say goodbye.";
+ next;
+ emotion e_gasp, "Researcher#04";
+ mes "[Wolfchev]";
+ mes "Well! May be....";
+ next;
+ mes "[Wolfchev]";
+ mes "If you come to me for the experimentation, I can treat you better.";
+ next;
+ donpcevent "#Eventctrl::OnEnable";
+ progressbar "FF00FF", 5;
+ emotion e_omg, "Researcher#04";
+ mes "[Wolfchev]";
+ mes "Oh my,... What happened?";
+ next;
+ donpcevent "#Eventctrl::OnEnable2";
+ for(.@i = 1; .@i < 9; .@i++)
+ donpcevent "Human Guinea pig#0"+.@i+"::OnDisable";
+ mes "[Wolfchev]";
+ mes "No! Don't come to me! Don't!!";
+ next;
+ lght_duk01 = 5;
+ mes "First of all, I gotta handle those guinea pigs!";
+ close;
+ } else if (lght_duk01 == 5) {
+ .@i = rand(1,3);
+ if (.@i == 2) {
+ mes "Wolfchev is confused and has no idea now since those monsters are attacking him too.";
+ next;
+ specialeffect EF_STUNATTACK;
+ specialeffect EF_STUNATTACK;
+ mes "- Hit him to wake him up -";
+ next;
+ specialeffect EF_DARKBREATH;
+ emotion e_no;
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "Hey Dude! Anyway let's get out of here first! Isn't there any place where they cannot reach?";
+ next;
+ mes "[Wolfchev]";
+ mes "Oooops.. then my....my lab....to my lab...";
+ next;
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "Your lab?? Okay, where's that?";
+ next;
+ mes "[Wolfchev]";
+ mes "to the north....... . Not so far from here..";
+ next;
+ erasequest 5110;
+ setquest 5111;
+ lght_duk01 = 6;
+ mes "Go to '^0000FFWolfchev's Lab^000000' at the 12 o'clock direction...";
+ close;
+ } else {
+ emotion e_spin, "Researcher#04";
+ mes "Wolfchev is confused and has no idea now since those monsters are attacking him too.";
+ close;
+ }
+ } else if (lght_duk01 == 6) {
+ mes "Go to '^0000FFWolfchev's Lab^000000' at the 12 o'clock direction...";
+ close;
+ }
+ end;
+}
+
+// Warp to lhz_dun04 from Wolfchev's Lab
+//==============================================================================
+que_lhz,148,251,0 script #Move2lab -1,12,0,{
+ end;
+
+ OnTouch:
+ if (lght_duk01 == 6) {
+ mes "I arrived at '^0000FFWolfchev's Lab^000000'.";
+ close2;
+ warp "lhz_dun04", 148, 269;
+ end;
+ } else {
+ mes "I still have something to do with Wolfchev.";
+ close;
+ }
+}
+
+// Event Controller
+//==============================================================================
+que_lhz,1,1,0 script #Eventctrl -1,{
+ end;
+
+ OnEnable:
+ initnpctimer;
+ end;
+
+ OnEnable2:
+ monster "que_lhz", 139, 232, "Human Guinea pig", QUEST_CHEN, 1, "#Eventctrl::OnMyMobDead";
+ monster "que_lhz", 147, 232, "Human Guinea pig", QUEST_CHEN, 1, "#Eventctrl::OnMyMobDead";
+ monster "que_lhz", 156, 232, "Human Guinea pig", QUEST_CHEN, 1, "#Eventctrl::OnMyMobDead";
+ monster "que_lhz", 156, 224, "Human Guinea pig", QUEST_CHEN, 1, "#Eventctrl::OnMyMobDead";
+ monster "que_lhz", 156, 215, "Human Guinea pig", QUEST_CHEN, 1, "#Eventctrl::OnMyMobDead";
+ monster "que_lhz", 147, 215, "Human Guinea pig", QUEST_CHEN, 1, "#Eventctrl::OnMyMobDead";
+ monster "que_lhz", 139, 215, "Human Guinea pig", QUEST_CHEN, 1, "#Eventctrl::OnMyMobDead";
+ monster "que_lhz", 139, 224, "Human Guinea pig", QUEST_CHEN, 1, "#Eventctrl::OnMyMobDead";
+ end;
+
+ OnTimer1000:
+ specialeffect EF_SUI_EXPLOSION,AREA, "#01";
+ specialeffect EF_BEGINASURA, "Human Guinea pig#01";
+ end;
+
+ OnTimer2000:
+ specialeffect EF_SUI_EXPLOSION,AREA, "#02";
+ specialeffect EF_BEGINASURA, "Human Guinea pig#02";
+ end;
+
+ OnTimer3000:
+ specialeffect EF_SUI_EXPLOSION,AREA, "#03";
+ specialeffect EF_BEGINASURA, "Human Guinea pig#03";
+ end;
+
+ OnTimer4000:
+ specialeffect EF_SUI_EXPLOSION,AREA, "#04";
+ specialeffect EF_BEGINASURA, "Human Guinea pig#04";
+ end;
+
+ OnTimer5000:
+ specialeffect EF_SUI_EXPLOSION,AREA, "#05";
+ specialeffect EF_BEGINASURA, "Human Guinea pig#05";
+ end;
+
+ OnTimer6000:
+ specialeffect EF_SUI_EXPLOSION,AREA, "#06";
+ specialeffect EF_BEGINASURA, "Human Guinea pig#06";
+ end;
+
+ OnTimer7000:
+ specialeffect EF_SUI_EXPLOSION,AREA, "#07";
+ specialeffect EF_BEGINASURA, "Human Guinea pig#07";
+ end;
+
+ OnTimer8000:
+ specialeffect EF_SUI_EXPLOSION,AREA, "#08";
+ specialeffect EF_BEGINASURA, "Human Guinea pig#08";
+ stopnpctimer;
+ end;
+
+ OnMyMobDead:
+ if(mobcount("que_lhz", "#Eventctrl::OnMyMobDead") < 4)
+ killmonster "que_lhz", "#Eventctrl::OnMyMobDead";
+}
+
+que_lhz,139,232,0 script #01 -1,{ end; }
+que_lhz,147,232,0 script #02 -1,{ end; }
+que_lhz,156,232,0 script #03 -1,{ end; }
+que_lhz,156,224,0 script #04 -1,{ end; }
+que_lhz,156,215,0 script #05 -1,{ end; }
+que_lhz,147,215,0 script #06 -1,{ end; }
+que_lhz,139,215,0 script #07 -1,{ end; }
+que_lhz,139,224,0 script #08 -1,{ end; }
+
+// Human Guinea pigs
+//==============================================================================
+que_lhz,140,231,1 script Human Guinea pig#01 CHEN,{
+ end;
+
+ OnInit:
+ disablenpc strnpcinfo(0);
+ end;
+
+ OnEnable:
+ enablenpc strnpcinfo(0);
+ end;
+
+ OnDisable:
+ specialeffect EF_FLASHER;
+ disablenpc strnpcinfo(0);
+ end;
+}
+
+que_lhz,147,231,0 duplicate(Human Guinea pig#01) Human Guinea pig#02 CHEN
+que_lhz,155,231,7 duplicate(Human Guinea pig#01) Human Guinea pig#03 CHEN
+que_lhz,155,224,6 duplicate(Human Guinea pig#01) Human Guinea pig#04 CHEN
+que_lhz,155,216,5 duplicate(Human Guinea pig#01) Human Guinea pig#05 CHEN
+que_lhz,147,216,4 duplicate(Human Guinea pig#01) Human Guinea pig#06 CHEN
+que_lhz,140,216,3 duplicate(Human Guinea pig#01) Human Guinea pig#07 CHEN
+que_lhz,140,224,2 duplicate(Human Guinea pig#01) Human Guinea pig#08 CHEN
+
+// Wolfchev
+//==============================================================================
+lhz_dun04,151,276,3 script Researcher#memo 4_LGTSCIENCE,{
+ if ((MaxWeight - Weight) < 1000 || !checkweight(1201, 1)) {
+ mes "^FF0000You cannot continue the process due to possessing too many belongings.^000000";
+ close;
+ }
+ .@quest_time = checkquest(5112, PLAYTIME);
+ .@killed_bosses = true;
+ for(.@quest_id = 5113; .@quest_id <= 5125; .@quest_id++) {
+ if(checkquest(.@quest_id, HUNTING) <= 1)
+ .@killed_bosses = false;
+ }
+ if (lght_duk01 < 6) {
+ mes "[Researcher]";
+ mes "What! Do you have any business here?";
+ next;
+ if(select("Yes I do!!", "Umm.. No..") == 1) {
+ mes "[Researcher]";
+ mes "Why don't stop staring at other's laboratory, and be on your way?";
+ close;
+ }
+ mes "[Researcher]";
+ mes "Stop wondering here, and be on your way. Will you? Khh Khh.";
+ close;
+ } else if (lght_duk01 == 6) {
+ mes "It seems experimental creatures cannot come near the laboratory, just like Wolfchev said.";
+ next;
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "Hey, is there any way to stop those creatures? You should know something, you made those things!";
+ next;
+ mes "[Wolfchev]";
+ mes "Urrgg.. I didn't expect them to loose control like that...";
+ next;
+ mes "[Wolfchev]";
+ mes "What is wrong with this whole thing?";
+ next;
+ mes "[Wolfchev]";
+ mes "Urr.. I think they will ruin my whole laboratory!";
+ next;
+ emotion e_loud, 1;
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "Hey! Wolfchev!!";
+ next;
+ mes "[Wolfchev]";
+ mes "You!? Hey, please stop them!";
+ mes "Creatures are ^9f6077organically connected with same job field^000000.";
+ next;
+ mes "[Wolfchev]";
+ mes "There is one special creature being their ^46B951boss position^000000...";
+ mes "If you could deactivate that creature, all ^A1BB44slave creatures^000000 walking around here will stop moving right away.";
+ next;
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "Boss creature?";
+ mes "Hey! Wolfchev! Where is that ^46B951Boss creature^000000?";
+ next;
+ mes "[Wolfchev]";
+ mes "Inside.. of laboratory.. It should be waken up now. It's sad to destroy my life of work, but I can't take this any more.. ...";
+ next;
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "How can I get into the Wolfchev's laboratory?";
+ next;
+ mes "[Wolfchev]";
+ mes "Oh.. Wait!";
+ mes "I will help you get in there.";
+ next;
+ mes "[Wolfchev]";
+ mes "Good news is that boss creatures are not set up to wake up all at once, even though slaves are.";
+ next;
+ erasequest 5111;
+ lght_duk01 = 7;
+ for(.@i = 5113; .@i <= 5125; .@i++)
+ setquest .@i;
+ mes "[Wolfchev]";
+ mes "But still, it is really dangerous since we don't know when they will escape from there.";
+ mes "So, please prepare your party members, and take care of those boss creatures. I'm not sure how long this place can hold.";
+ close;
+ } else if (lght_duk01 > 6) {
+ if (getcharid(1) > 0) {
+ mes "[Wolfchev]";
+ mes "Are you all set there? I will prepare the entrance if you are the leader of that party.";
+ next;
+ switch(select("Any warnings?", "Going into the laboratory", "Do not enter")) {
+ case 1:
+ mes "[Wolfchev]";
+ mes "I didn't know pressing the emergency alarm would cause such problem. The management system seems to be changed to emergency mode.";
+ next;
+ mes "[Wolfchev]";
+ mes "There are so many systems set up inside of the laboratory, so eve I cannot be sure how systems are twisted by now.";
+ next;
+ mes "[Wolfchev]";
+ mes "Ah! If the emergency system is activating, only the leader of party should control everything. It is a lot of pressure I understand.";
+ next;
+ mes "[Wolfchev]";
+ mes "And just so you know, please do not touch random things out of curiosity. I don't want you to get hurt.";
+ close;
+ case 2:
+ if (.@quest_time == 0) {
+ mes "[Wolfchev]";
+ mes "I'm sorry, but it seems you still cannot enter to the laboratory yet. Will you come back later? The system is kind of tricky you know.";
+ close;
+ } else {
+ //if (.@quest_time == 2)
+ //recall_completequest 5112;
+ if (.@quest_time >= 0)
+ erasequest 5112;
+ if (!.@killed_bosses) {
+ if (lght_duk01 == 9) {
+ mes "[Wolfchev]";
+ mes "You came back, Ka Ha Ha.";
+ next;
+ mes "[Wolfchev]";
+ mes "After you left, I was fixing some system parts. And then suddenly strange thing happened.";
+ next;
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "What was that?";
+ next;
+ mes "[Wolfchev]";
+ mes "All those boss creatures you took care of started to regenerate themselves..";
+ next;
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "What.. How is that possible...?!";
+ next;
+ mes "[Wolfchev]";
+ mes "I am also completely lost here.. But, this should not be happening..";
+ next;
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "... .... ...";
+ next;
+ mes "[Wolfchev]";
+ mes "As you can see, you are the only one I can trust. Would you and your party help me once again deactivating those creatures?";
+ next;
+ if(select("I am not sure", "Why not") == 1) {
+ mes "[Wolfchev]";
+ mes "I see. I understand why you are hesitating, and don't want to press you any more. But, still I'm not sure why you want go there anyways,";
+ next;
+ } else {
+ for(.@i = 5113; .@i <= 5125; .@i++) {
+ setquest .@i;
+ }
+ lght_duk01 = 10;
+ mes "[Wolfchev]";
+ mes "Thank you very much. "+strcharinfo(PC_NAME)+"";
+ mes "I will help you get in the laboratory right away.";
+ next;
+ }
+ } else {
+ mes "[Wolfchev]";
+ mes "Hmm.. Those boss creatures regenerating once again..";
+ next;
+ mes "[Wolfchev]";
+ mes "Can you help me just one more time?";
+ next;
+ if(select("I am not sure", "Why not") == 1) {
+ mes "[Wolfchev]";
+ mes "I see. I understand why you are hesitating, and don't want to press you any more. But, still I'm not sure why you want go there anyways,";
+ next;
+ } else {
+ for(.@i = 5113; .@i <= 5125; .@i++) {
+ setquest .@i;
+ }
+ lght_duk01 = 10;
+ mes "[Wolfchev]";
+ mes "Thank you. "+strcharinfo(PC_NAME)+"";
+ mes "You want to get in there fast, right?";
+ next;
+ }
+ }
+ }
+ }
+ if (getpartyleader(getcharid(1),2) == getcharid(0)) {
+ .@instance = instance_create("Worsef", getcharid(1));
+ if (.@instance < 0) {
+ mes "[Wolfchev]";
+ mes "Hmm.. Lab entering system is a bit weird. Would wait for me to check the system?";
+ } else {
+ mes "[Wolfchev]";
+ mes "Please hold on..";
+ next;
+ mes "Wolfchev starts to control certain gear.";
+ next;
+ progressbar "FF00FF", 2;
+ if (instance_attachmap("1@lhz", .@instance) != "") {
+ instance_set_timeout 14400, 300, .@instance;
+ instance_init(.@instance);
+ mes "[Wolfchev]";
+ mes "Alright! I have marked lan entering system code as";
+ mes "^0000ff"+ strcharinfo(1) +"^000000 party leader's name ^0000ff"+ strcharinfo(PC_NAME) +"^000000!!.";
+ next;
+ mes "[Wolfchev]";
+ mes "Now, your party is free to pass the entrance.";
+ } else {
+ instance_destroy(.@instance);
+ }
+ }
+ close;
+ } else {
+ mes "[Wolfchev]";
+ mes "You are not the ^0000ffLeader of the party^000000, are you? Please go get the leader.";
+ close;
+ }
+ case 3:
+ mes "[Wolfchev]";
+ mes "Need more preparation? Please, we don't have all day.";
+ close;
+ }
+ } else {
+ mes "[Wolfchev]";
+ mes "Are you trying to go there along? That is a suicide! Our lab entering system is not as easy as you thinkz`.";
+ close;
+ }
+ } else {
+ mes "[Wolfchev]";
+ mes "Woot! Something weird just happen. If this keep happening, maybe we should try other way..";
+ close;
+ }
+}
+
+//
+//==============================================================================
+lhz_dun04,147,279,0 script Laboratory Entrance#memo CLEAR_NPC,{
+ if ((MaxWeight - Weight) < 1000 || !checkweight(1201, 1)) {
+ mes "^FF0000You cannot continue the process due to possessing too many belongings.^000000";
+ close;
+ }
+ .@lhz_time = checkquest(5112, PLAYTIME);
+ if (lght_duk01 < 7) {
+ mes "It says,";
+ mes "'^0000FF****'s laboratory member only^000000'";
+ close;
+ }
+ if (.@lhz_time == -1) {
+ mes "This is an entrance towards Wolfchev's laboratory. Something is howling over the entrance.";
+ next;
+ if(select("Go inside", "Think one more time") == 2) {
+ mes "You have stopped entering to Wolfchev's laboratory.";
+ close;
+ }
+ if (has_instance("1@lhz") == "") {
+ mes "^FF0000Warning^000000";
+ mes ""+ strcharinfo(PC_NAME) +". . .";
+ mes "^FF0000Unregistered personnel^000000";
+ next;
+ pushpc 0, 10;
+ percentheal -5,0;
+ specialeffect EF_AUTOCOUNTER;
+ specialeffect2 EF_BASH;
+ mes "You have been wounded by laboratory entrance system attack.";
+ close;
+ } else {
+ mapannounce "lhz_dun04","Laboratory entrance system ["+ strcharinfo(1) +"] member ["+ strcharinfo(PC_NAME) +"] access granted..",bc_map,"0x0DF297";
+ setquest 5112;
+ warp "1@lhz.gat", 45, 148;
+ close;
+ }
+ } else if (.@lhz_time == 0) {
+ mes "Di Rit- Di- Di- Dit-";
+ next;
+ mes ""+ strcharinfo(PC_NAME) +". . .";
+ mes "^FF0000Forbidden personnel^000000";
+ next;
+ mes "The system denied your entrance.";
+ close;
+ } else if (.@lhz_time >= 1) {
+ mes "Di Rit- Di- Di- Dit-";
+ next;
+ //if (.@lhz_time == 2)
+ //recall_completequest 5112;
+ erasequest 5112;
+ mes ""+ strcharinfo(PC_NAME) +". . .";
+ mes "^FF0000Access denial has been deactivated.^000000";
+ close;
+ } else {
+ mes "^FF0000Error! Error!^000000";
+ mes "^FF0000Please try again.^000000";
+ close;
+ }
+}
+
+// The Lab No.1 : System 1_1
+//==============================================================================
+1@lhz,35,108,4 script Lab1#1_1 CLEAR_NPC,{
+ end;
+
+ OnInstanceInit:
+ initnpctimer;
+ end;
+
+ OnDisable:
+ stopnpctimer;
+ end;
+
+ OnType_02:
+ donpcevent instance_npcname("Manual Sheet#1_1")+"::OnEnable";
+ donpcevent instance_npcname("Valve#1_2")+"::OnEnable";
+ donpcevent instance_npcname("Valve#1_3")+"::OnEnable";
+ mapannounce instance_mapname("1@lhz"),"[Security System] the persons concerned, access with the emergency access method.",bc_map,"0xff9977";
+ end;
+
+ OnTimer1000:
+ mapannounce instance_mapname("1@lhz"),"[Security System] This is a warning notice! Warning notice! Intruder Detected.",bc_map,"0xff9977";
+ end;
+
+ OnTimer2000:
+ mapannounce instance_mapname("1@lhz"),"[Security System] In 5 seconds, The Lab No.1's security system will be activated.",bc_map,"0xff9977";
+ end;
+
+ OnTimer7000:
+ donpcevent instance_npcname("MobCtrl1#mob01")+"::OnEnable";
+ end;
+}
+
+// The Lab No.1 Monster Control
+//==============================================================================
+1@lhz,37,108,4 script MobCtrl1#mob01 CLEAR_NPC,{
+ end;
+
+ OnEnable:
+ .@map$ = instance_mapname("1@lhz");
+ mapannounce .@map$,"[Security System] Security system Activated !! Experimental animals are released. The persons concerned have to evacuate.",bc_map,"0xff9977";
+ areamonster .@map$,35,159,50,169,"Starving Lab animal",MD_DESERT_WOLF,rand(10,15),instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
+ initnpctimer;
+ end;
+
+ OnDisable:
+ killmonster instance_mapname("1@lhz"),instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
+ end;
+
+ OnTimer180000:
+ stopnpctimer;
+ if(mobcount(instance_mapname("1@lhz"), instance_npcname(strnpcinfo(0))+"::OnMyMobDead") < 1) {
+ donpcevent instance_npcname("Lab1#1_1")+"::OnType_02";
+ mapannounce instance_mapname("1@lhz"),"[Security System] The Lab No.1's security system has been stopped.",bc_map,"0xff9977";
+ } else {
+ initnpctimer;
+ }
+ end;
+
+ OnMyMobDead:
+ if(mobcount(instance_mapname("1@lhz"), instance_npcname(strnpcinfo(0))+"::OnMyMobDead") < 1) {
+ donpcevent instance_npcname("Lab1#1_1")+"::OnType_02";
+ mapannounce instance_mapname("1@lhz"),"[Security System] The Lab No.1's security system has been stopped.",bc_map,"0xff9977";
+ stopnpctimer;
+ }
+ end;
+}
+
+// Emergency Access Valve Manual
+//==============================================================================
+1@lhz,39,168,0 script Manual Sheet#1_1 CLEAR_NPC,{
+ mes "There are valve manual sheets littered on the floor.";
+ next;
+ if (getpartyleader(getcharid(1),2) == getcharid(0)) {
+ mes "You the party leader, started to read the manual.";
+ next;
+ mes "[Emergency Access Valve Manual]";
+ switch(lght_duk02) {
+ case 0:
+ switch(rand(1,6)) {
+ case 1:
+ lght_duk02 = 1;
+ mes "Turn the left valve Clockwise twice, Counterclockwise once, Clockwise once";
+ break;
+ case 2:
+ lght_duk02 = 2;
+ mes "Turn the left valve Clockwise once, Counterclockwise twice, Clockwise once";
+ break;
+ case 3:
+ lght_duk02 = 3;
+ mes "Turn the left valve Clockwise once, Counterclockwise once, Clockwise twice";
+ break;
+ case 4:
+ lght_duk02 = 4;
+ mes "Turn the right valve Counterclockwise twice, Clockwise once, Counterclockwise once";
+ break;
+ case 5:
+ lght_duk02 = 5;
+ mes "Turn the right valve Counterclockwise once, Clockwise twice, Counterclockwise once";
+ break;
+ case 6:
+ lght_duk02 = 6;
+ mes "Turn the right valve Counterclockwise once, Clockwise once, Counterclockwise twice";
+ break;
+ default:
+ mes "This is a unknown Error. If you get the same problem after trying one more time, contact GM.";
+ break;
+ }
+ break;
+ case 1:
+ mes "Turn the left valve Clockwise twice, Counterclockwise once, Clockwise once";
+ break;
+ case 2:
+ mes "Turn the left valve Clockwise once, Counterclockwise twice, Clockwise once";
+ break;
+ case 3:
+ mes "Turn the left valve Clockwise once, Counterclockwise once, Clockwise twice";
+ break;
+ case 4:
+ mes "Turn the right valve Counterclockwise twice, Clockwise once, Counterclockwise once";
+ break;
+ case 5:
+ mes "Turn the right valve Counterclockwise once, Clockwise twice, Counterclockwise once";
+ break;
+ case 6:
+ mes "Turn the right valve Counterclockwise once, Clockwise once, Counterclockwise twice";
+ break;
+ default:
+ mes "This is a unknown Error. If you get the same problem after trying one more time, contact GM.";
+ break;
+ }
+ } else {
+ mes "Let your party leader handle the valve.";
+ }
+ close;
+
+ OnInstanceInit:
+ disablenpc instance_npcname("Manual Sheet#1_1");
+ end;
+
+ OnEnable:
+ specialeffect EF_LIGHTSPHERE;
+ enablenpc instance_npcname("Manual Sheet#1_1");
+ end;
+}
+
+// Left Valve
+//==============================================================================
+1@lhz,41,172,0 script Valve#1_2 CLEAR_NPC,{
+ .@open_portal = 0;
+ mes "This is the left valve for the emergency access.";
+ if (getpartyleader(getcharid(1),2) == getcharid(0)) {
+ next;
+ mes "To which direction do you wish to turn?";
+ next;
+ if(lght_duk02 < 1 || lght_duk02 > 3) {
+ for(.@i = 1; .@i <= 4; .@i++) {
+ select("Clockwise", "Counterclockwise");
+ mes "-A metal sound-";
+ if(.@i != 4)
+ mes "and, to which direction then?";
+ next;
+ }
+ } else {
+ // lght_duk02 == 1 : Clockwise, Clockwise, Counterclockwise, Clockwise
+ // lght_duk02 == 2 : Clockwise, Counterclockwise, Counterclockwise, Clockwise
+ // lght_duk02 == 3 : Clockwise, Counterclockwise, Clockwise, Clockwise
+ for(.@i = 1; .@i <= 4; .@i++) {
+ switch(select("Clockwise", "Counterclockwise")) {
+ case 1:
+ if((.@i == 1 || .@i == 4) || (.@i == 2 && lght_duk02 == 1) || (.@i == 3 && lght_duk02 == 3)) {
+ .@open_portal += 1;
+ }
+ case 2:
+ if((.@i == 2 && lght_duk02 != 1) || (.@i == 3 && lght_duk02 != 3)) {
+ .@open_portal += 1;
+ }
+ }
+ mes "-A metal sound-";
+ if(.@i != 4)
+ mes "and, to which direction then?";
+ next;
+ }
+ }
+ if (.@open_portal == 4) {
+ donpcevent instance_npcname("#potal_01")+"::OnEnable";
+ lght_duk02 = 0;
+ mes "-Door opened-";
+ next;
+ mes "The door which connects to the Lab No.2 is now open.";
+ } else {
+ lght_duk02 = 0;
+ mes "Nothing happened.";
+ next;
+ mes "You need to review the manual.";
+ }
+ }
+ close;
+
+ OnInstanceInit:
+ disablenpc instance_npcname("Valve#1_2");
+ end;
+
+ OnEnable:
+ specialeffect EF_LIGHTSPHERE;
+ enablenpc instance_npcname("Valve#1_2");
+ end;
+}
+
+// Right Valve
+//==============================================================================
+1@lhz,52,172,0 script Valve#1_3 CLEAR_NPC,{
+ .@open_portal = 0;
+ mes "This is the left valve for the emergency access.";
+ if (getpartyleader(getcharid(1),2) == getcharid(0)) {
+ next;
+ mes "To which direction do you wish to turn?";
+ next;
+ if(lght_duk02 < 4 || lght_duk02 > 6) {
+ for(.@i = 1; .@i <= 4; .@i++) {
+ select("Clockwise", "Counterclockwise");
+ mes "-A metal sound-";
+ if(.@i != 4)
+ mes "and, to which direction then?";
+ next;
+ }
+ } else {
+ // lght_duk02 == 4 : Counterclockwise, Counterclockwise, Clockwise, Counterclockwise
+ // lght_duk02 == 5 : Counterclockwise, Clockwise, Clockwise, Counterclockwise
+ // lght_duk02 == 6 : Counterclockwise, Clockwise, Counterclockwise, Counterclockwise
+ for(.@i = 1; .@i <= 4; .@i++) {
+ switch(select("Clockwise", "Counterclockwise")) {
+ case 1:
+ if((.@i == 2 && lght_duk02 != 4) || (.@i == 3 && lght_duk02 != 6))
+ .@open_portal += 1;
+ break;
+ case 2:
+ if((.@i == 1 || .@i == 4) || (.@i == 2 && lght_duk02 == 4) || (.@i == 3 && lght_duk02 == 6))
+ .@open_portal += 1;
+ break;
+ }
+ mes "-A metal sound-";
+ if(.@i != 4)
+ mes "and, to which direction then?";
+ next;
+ }
+ }
+ if (.@open_portal == 4) {
+ donpcevent instance_npcname("#potal_01")+"::OnEnable";
+ lght_duk02 = 0;
+ mes "-Door opened-";
+ next;
+ mes "The door which connects to the Lab No.2 is now open.";
+ } else {
+ lght_duk02 = 0;
+ mes "Nothing happened.";
+ next;
+ mes "You need to review the manual.";
+ }
+ }
+ close;
+
+ OnInstanceInit:
+ disablenpc instance_npcname("Valve#1_3");
+ end;
+
+ OnEnable:
+ specialeffect EF_LIGHTSPHERE;
+ enablenpc instance_npcname("Valve#1_3");
+ end;
+}
+
+
+// The Lab No.1 >> The Lab No.2 Warp portal
+//==============================================================================
+1@lhz,45,173,0 script #potal_01 WARPNPC,2,2,{
+ end;
+
+ OnInstanceInit:
+ OnDisable:
+ disablenpc instance_npcname("#potal_01");
+ end;
+
+ OnEnable:
+ mapannounce instance_mapname("1@lhz"),"[Management System] The door which connects to the Lab No.2 is now open.",bc_map,"0xff9977";
+ enablenpc instance_npcname("#potal_01");
+ end;
+
+ OnTouch:
+ warp instance_mapname("1@lhz"), 151, 29;
+ end;
+}
+
+// The Lab No.2
+//==============================================================================
+1@lhz,151,29,0 script #2_0 -1,1,1,{
+ end;
+
+ OnEnable:
+ enablenpc instance_npcname("#2_0");
+ end;
+
+ OnDisable:
+ disablenpc instance_npcname("#2_0");
+ end;
+
+ OnTouch:
+ donpcevent instance_npcname("Lab2#2_1")+"::OnEnable";
+ donpcevent instance_npcname("#2_0")+"::OnDisable";
+ end;
+}
+
+// The Lab No.2 2_1 System - Control of Monster Wave and Pipe right before exploding
+//==============================================================================
+1@lhz,35,106,4 script Lab2#2_1 CLEAR_NPC,{
+ end;
+
+ OnInstanceInit:
+ OnDisable:
+ stopnpctimer;
+ end;
+
+ OnEnable:
+ initnpctimer;
+ end;
+
+ OnTimer1000:
+ mapannounce instance_mapname("1@lhz"),"[Security System] This is a warning notice! Warning notice! Intruder Detected in The Lab No.2!!",bc_map,"0xff9977";
+ end;
+
+ OnTimer3000:
+ mapannounce instance_mapname("1@lhz"),"[Security System] In 5 seconds, The Lab No.2 Security system will start working.",bc_map,"0xff9977";
+ end;
+
+ OnTimer5000:
+ mapannounce instance_mapname("1@lhz"),"[Management System] Warning! The pipe pressure in the Lab No.2 is too high.",bc_map,"0xff99ff";
+ end;
+
+ OnTimer8000:
+ mapannounce instance_mapname("1@lhz"),"[Security System] First security system activated !! The persons concerned have to evacuate.",bc_map,"0xff9977";
+ donpcevent instance_npcname("MobCtrl2#mob02")+"::On01";
+ end;
+
+ OnTimer10000:
+ mapannounce instance_mapname("1@lhz"),"[Management System] Warning! The pipe pressure is too high. Open the valve.",bc_map,"0xff99ff";
+ donpcevent instance_npcname("Lab2#2_2")+"::OnPipePressure";
+ end;
+
+ OnTimer190000:
+ mapannounce instance_mapname("1@lhz"),"[Management System] Warning! The pipe pressure is too high. Open the valve.",bc_map,"0xff99ff";
+ donpcevent instance_npcname("Lab2#2_2")+"::OnPipePressure";
+ end;
+
+ OnTimer303000:
+ mapannounce instance_mapname("1@lhz"),"[Security System] In 5 seconds, Second Security system will start working.",bc_map,"0xff9977";
+ end;
+
+ OnTimer308000:
+ mapannounce instance_mapname("1@lhz"),"[Security System] Second security system activated !! The persons concerned have to evacuate.",bc_map,"0xff9977";
+ donpcevent instance_npcname("MobCtrl2#mob02")+"::On02";
+ end;
+
+ OnTimer370000:
+ mapannounce instance_mapname("1@lhz"),"[Management System] Warning! The pipe pressure is too high. Open the valve.",bc_map,"0xff99ff";
+ donpcevent instance_npcname("Lab2#2_2")+"::OnPipePressure";
+ end;
+
+ OnTimer550000:
+ mapannounce instance_mapname("1@lhz"),"[Management System] Warning! The pipe pressure is too high. Open the valve.",bc_map,"0xff99ff";
+ donpcevent instance_npcname("Lab2#2_2")+"::OnPipePressure";
+ end;
+
+ OnTimer603000:
+ mapannounce instance_mapname("1@lhz"),"[Security System] In 5 seconds, Third Security system will start working.",bc_map,"0xff9977";
+ end;
+
+ OnTimer608000:
+ mapannounce instance_mapname("1@lhz"),"[Security System] Third security system activated !! The persons concerned have to evacuate.",bc_map,"0xff9977";
+ donpcevent instance_npcname("MobCtrl2#mob02")+"::On03";
+ end;
+
+ OnTimer730000:
+ mapannounce instance_mapname("1@lhz"),"[Management System] Warning! The pipe pressure is too high. Open the valve.",bc_map,"0xff99ff";
+ donpcevent instance_npcname("Lab2#2_2")+"::OnPipePressure";
+ end;
+
+ OnTimer903000:
+ mapannounce instance_mapname("1@lhz"),"[Security System] In 5 seconds, Fourth Security system will start working.",bc_map,"0xff9977";
+ end;
+
+ OnTimer908000:
+ mapannounce instance_mapname("1@lhz"),"[Security System] Fourth security system activated !! The persons concerned have to evacuate.",bc_map,"0xff9977";
+ donpcevent instance_npcname("MobCtrl2#mob02")+"::On04";
+ end;
+
+ OnTimer910000:
+ mapannounce instance_mapname("1@lhz"),"[Management System] Warning! The pipe pressure is too high. Open the valve.",bc_map,"0xff99ff";
+ donpcevent instance_npcname("Lab2#2_2")+"::OnPipePressure";
+ end;
+
+ OnTimer1090000:
+ mapannounce instance_mapname("1@lhz"),"[Management System] Warning! The pipe pressure is too high. Open the valve.",bc_map,"0xff99ff";
+ donpcevent instance_npcname("Lab2#2_2")+"::OnPipePressure";
+ end;
+
+ OnTimer1203000:
+ mapannounce instance_mapname("1@lhz"),"[Security System] In 5 seconds, Fifth Security system will start working.",bc_map,"0xff9977";
+ end;
+
+ OnTimer1208000:
+ mapannounce instance_mapname("1@lhz"),"[Security System] Fifth security system activated !! The persons concerned have to evacuate.",bc_map,"0xff9977";
+ donpcevent instance_npcname("MobCtrl2#mob02")+"::On05";
+ end;
+
+ OnTimer1270000:
+ mapannounce instance_mapname("1@lhz"),"[Management System] Warning! The pipe pressure is too high. Open the valve.",bc_map,"0xff99ff";
+ donpcevent instance_npcname("Lab2#2_2")+"::OnPipePressure";
+ stopnpctimer;
+ end;
+}
+
+// The Lab No.2 2_2 System - Pipe Operation Control
+// When 3 pipes explode, system will shut down.
+//==============================================================================
+1@lhz,37,106,4 script Lab2#2_2 CLEAR_NPC,{
+ end;
+
+ OnInstanceInit:
+ 'broken_pipes = 0;
+ stopnpctimer;
+ end;
+
+ OnPipePressure:
+ switch(rand(1,6)) {
+ case 1:
+ donpcevent instance_npcname("Valve#2_1")+"::OnEnable";
+ donpcevent instance_npcname("MobCtrl2#mob02")+"::On2_01";
+ case 2:
+ donpcevent instance_npcname("Valve#2_2")+"::OnEnable";
+ donpcevent instance_npcname("MobCtrl2#mob02")+"::On2_02";
+ case 3:
+ donpcevent instance_npcname("Valve#2_3")+"::OnEnable";
+ donpcevent instance_npcname("MobCtrl2#mob02")+"::On2_03";
+ case 4:
+ donpcevent instance_npcname("Valve#2_4")+"::OnEnable";
+ donpcevent instance_npcname("MobCtrl2#mob02")+"::On2_04";
+ case 5:
+ donpcevent instance_npcname("Valve#2_5")+"::OnEnable";
+ donpcevent instance_npcname("MobCtrl2#mob02")+"::On2_05";
+ case 6:
+ donpcevent instance_npcname("Valve#2_6")+"::OnEnable";
+ donpcevent instance_npcname("MobCtrl2#mob02")+"::On2_06";
+ }
+ initnpctimer;
+ end;
+
+ OnDisableValve1:
+ disablenpc instance_npcname("Valve#2_1");
+ stopnpctimer;
+ end;
+
+ OnDisableValve2:
+ disablenpc instance_npcname("Valve#2_2");
+ stopnpctimer;
+ end;
+
+ OnDisableValve3:
+ disablenpc instance_npcname("Valve#2_3");
+ stopnpctimer;
+ end;
+
+ OnDisableValve4:
+ disablenpc instance_npcname("Valve#2_4");
+ stopnpctimer;
+ end;
+
+ OnDisableValve5:
+ disablenpc instance_npcname("Valve#2_5");
+ stopnpctimer;
+ end;
+
+ OnDisableValve6:
+ disablenpc instance_npcname("Valve#2_6");
+ stopnpctimer;
+ end;
+
+ OnTimer63000:
+ for(.@i = 1; .@i < 7; .@i++) {
+ specialeffect EF_SUI_EXPLOSION, AREA, instance_npcname("Valve#2_"+.@i+"");
+ disablenpc instance_npcname("Valve#2_"+.@i+"");
+ }
+ 'broken_pipes += 1;
+ if ('broken_pipes == 3) {
+ donpcevent instance_npcname("#2_3")+"::OnEnable";
+ stopnpctimer;
+ } else {
+ mapannounce instance_mapname("1@lhz"),"[Management System] Pipe explosion detected! When "+ (3 - 'broken_pipes) +" more break, the system will stop.",bc_map,"0xff99ff";
+ }
+ end;
+}
+
+// The Lab No.2 2_3 System
+//==============================================================================
+1@lhz,151,48,0 script #2_3 -1,20,20,{
+ end;
+
+ OnInstanceInit:
+ disablenpc instance_npcname("#2_3");
+ end;
+
+ OnEnable:
+ initnpctimer;
+ end;
+
+ OnTimer1000:
+ mapannounce instance_mapname("1@lhz"),"[Management System] System Freezes! System Freezes! Evacuate from the Lab in 10 seconds.",bc_map,"0xff99ff";
+ end;
+
+ OnTimer11000:
+ mapannounce instance_mapname("1@lhz"),"[Management System] Evacuate!!",bc_map,"0xff99ff";
+ enablenpc instance_npcname("#2_3");
+ end;
+
+ OnTouch:
+ warp "lhz_dun04", 147, 273;
+ end;
+}
+
+// The Lab No.2 Monster Control
+//==============================================================================
+1@lhz,39,106,4 script MobCtrl2#mob02 CLEAR_NPC,{
+ end;
+
+ On01:
+ .@map$ = instance_mapname("1@lhz");
+ .@label$ = instance_npcname("MobCtrl2#mob02")+"::OnMyMobDead";
+ areamonster .@map$,139,37,164,58,"Starving Lab animal",MD_DESERT_WOLF,10,.@label$;
+ end;
+
+ On02:
+ .@map$ = instance_mapname("1@lhz");
+ .@label$ = instance_npcname("MobCtrl2#mob02")+"::OnMyMobDead";
+ areamonster .@map$,139,37,164,58,"Starving Lab animal",MD_DESERT_WOLF,20,.@label$;
+ end;
+
+ On03:
+ .@map$ = instance_mapname("1@lhz");
+ .@label$ = instance_npcname("MobCtrl2#mob02")+"::OnMyMobDead";
+ areamonster .@map$,139,37,164,58,"Starving Lab animal",MD_DESERT_WOLF,16,.@label$;
+ end;
+
+ On04:
+ .@map$ = instance_mapname("1@lhz");
+ .@label$ = instance_npcname("MobCtrl2#mob02")+"::OnMyMobDead";
+ areamonster .@map$,139,37,164,58,"Starving Lab animal",MD_DESERT_WOLF,19,.@label$;
+ end;
+
+ On05:
+ .@map$ = instance_mapname("1@lhz");
+ .@label$ = instance_npcname("MobCtrl2#mob02")+"::OnMyMobDead";
+ areamonster .@map$,139,37,164,58,"Starving Lab animal",MD_DESERT_WOLF,20,.@label$;
+ end;
+
+ On2_01:
+ .@label$ = instance_npcname("MobCtrl2#mob02")+"::OnMyMobDead";
+ areamonster instance_mapname("1@lhz"),155,43,161,49,"Starving Lab animal",MD_DESERT_WOLF_B,5,.@label$;
+ end;
+
+ On2_02:
+ .@label$ = instance_npcname("MobCtrl2#mob02")+"::OnMyMobDead";
+ areamonster instance_mapname("1@lhz"),137,40,143,46,"Starving Lab animal",MD_DESERT_WOLF_B,5,.@label$;
+ end;
+
+ On2_03:
+ .@label$ = instance_npcname("MobCtrl2#mob02")+"::OnMyMobDead";
+ areamonster instance_mapname("1@lhz"),137,51,143,57,"Starving Lab animal",MD_DESERT_WOLF_B,5,.@label$;
+ end;
+
+ On2_04:
+ .@label$ = instance_npcname("MobCtrl2#mob02")+"::OnMyMobDead";
+ areamonster instance_mapname("1@lhz"),143,56,149,62,"Starving Lab animal",MD_DESERT_WOLF_B,5,.@label$;
+ end;
+
+ On2_05:
+ .@label$ = instance_npcname("MobCtrl2#mob02")+"::OnMyMobDead";
+ areamonster instance_mapname("1@lhz"),160,48,166,54,"Starving Lab animal",MD_DESERT_WOLF_B,5,.@label$;
+ end;
+
+ On2_06:
+ .@label$ = instance_npcname("MobCtrl2#mob02")+"::OnMyMobDead";
+ areamonster instance_mapname("1@lhz"),135,44,141,50,"Starving Lab animal",MD_DESERT_WOLF_B,5,.@label$;
+ end;
+
+ OnDisable:
+ killmonster instance_mapname("1@lhz"),instance_npcname("MobCtrl2#mob02")+"::OnMyMobDead";
+ end;
+
+ OnMyMobDead:
+ if (mobcount(instance_mapname("1@lhz"),instance_npcname("MobCtrl2#mob02")+"::OnMyMobDead") < 1) {
+ donpcevent instance_npcname("#potal_02")+"::OnEnable";
+ donpcevent instance_npcname("Lab2#2_1")+"::OnDisable";
+ mapannounce instance_mapname("1@lhz"),"[Security System] The Security system of The Lab No.2 has been stopped.",bc_map,"0xff9977";
+ }
+ end;
+}
+
+// The Lab No.2 Valves
+//==============================================================================
+- script bio4FLab2Valve -1,{
+ if (getpartyleader(getcharid(1),2) == getcharid(0)) {
+ progressbar "0xffff00", 20;
+ stopnpctimer;
+ donpcevent instance_npcname("Lab2#2_2")+"::OnDisableValve1";
+ disablenpc instance_npcname(strnpcinfo(0));
+ end;
+ } else {
+ mes "Let your party leader handle the valve.";
+ close;
+ }
+
+ OnInstanceInit:
+ disablenpc instance_npcname(strnpcinfo(0));
+ end;
+
+ OnEnable:
+ enablenpc instance_npcname(strnpcinfo(0));
+ initnpctimer;
+ end;
+
+ OnTimer3000:
+ specialeffect EF_DRAGONSMOKE,AREA,instance_npcname(strnpcinfo(0));
+ stopnpctimer;
+ initnpctimer;
+ end;
+}
+
+1@lhz,158,46,0 duplicate(bio4FLab2Valve) Valve#2_1 CLEAR_NPC
+1@lhz,138,43,0 duplicate(bio4FLab2Valve) Valve#2_2 CLEAR_NPC
+1@lhz,139,54,0 duplicate(bio4FLab2Valve) Valve#2_3 CLEAR_NPC
+1@lhz,145,60,0 duplicate(bio4FLab2Valve) Valve#2_4 CLEAR_NPC
+1@lhz,165,51,0 duplicate(bio4FLab2Valve) Valve#2_5 CLEAR_NPC
+1@lhz,137,47,0 duplicate(bio4FLab2Valve) Valve#2_6 CLEAR_NPC
+
+// The Lab No.2 >> The Lab No.3 Warp portal(General)
+//==============================================================================
+1@lhz,151,64,0 script #potal_02 WARPNPC,2,2,{
+ end;
+
+ OnInstanceInit:
+ disablenpc instance_npcname("#potal_02");
+ end;
+
+ OnEnable:
+ mapannounce instance_mapname("1@lhz"),"[Management System] The door which connects to the Lab No.3 is now open.",bc_map,"0xff99ff";
+ enablenpc instance_npcname("#potal_02");
+ end;
+
+ OnDisable:
+ disablenpc instance_npcname("#potal_02");
+ end;
+
+ OnTouch:
+ warp instance_mapname("1@lhz"), 84, 28;
+ end;
+}
+
+// The Lab No.3
+//==============================================================================
+1@lhz,84,28,0 script #3_0 -1,1,1,{
+ end;
+
+ OnEnable:
+ enablenpc instance_npcname("#3_0");
+ end;
+
+ OnDisable:
+ disablenpc instance_npcname("#3_0");
+ end;
+
+ OnTouch:
+ donpcevent instance_npcname("Lab3#3_1")+"::OnEnable";
+ donpcevent instance_npcname("#3_0")+"::OnDisable";
+ end;
+}
+
+// The Lab No.3 3_1 System - Monster wave control
+//==============================================================================
+1@lhz,35,104,4 script Lab3#3_1 CLEAR_NPC,{
+ end;
+
+ OnEnable:
+ initnpctimer;
+ end;
+
+ OnDisable:
+ stopnpctimer;
+ end;
+
+ OnTimer1000:
+ mapannounce instance_mapname("1@lhz"),"[Security System] This is a warning notice! Warning notice!",bc_map,"0xff9977";
+ donpcevent instance_npcname("MobCtrl3#mob03")+"::OnDisable";
+ end;
+
+ OnTimer5000:
+ mapannounce instance_mapname("1@lhz"),"[Security System] Intruder Detected in The Lab No.3!!",bc_map,"0xff9977";
+ end;
+
+ OnTimer7000:
+ mapannounce instance_mapname("1@lhz"),"[Security System] In 5 seconds, The Security system of The Lab No.3 will start working.",bc_map,"0xff9977";
+ end;
+
+ OnTimer12000:
+ mapannounce instance_mapname("1@lhz"),"[Security System] First security system of The Lab No.3 activated !! The persons concerned have to evacuate.",bc_map,"0xff9977";
+ donpcevent instance_npcname("MobCtrl3#mob03")+"::On01";
+ end;
+
+ OnTimer192000:
+ mapannounce instance_mapname("1@lhz"),"[Security System] Second security system of The Lab No.3 activated !! The persons concerned have to evacuate.",bc_map,"0xff9977";
+ donpcevent instance_npcname("MobCtrl3#mob03")+"::On02";
+ end;
+
+ OnTimer372000:
+ mapannounce instance_mapname("1@lhz"),"[Security System] Third security system of The Lab No.3 activated !! The persons concerned have to evacuate.",bc_map,"0xff9977";
+ donpcevent instance_npcname("MobCtrl3#mob03")+"::On03";
+ end;
+
+ OnTimer552000:
+ mapannounce instance_mapname("1@lhz"),"[Security System] Fourth security system of The Lab No.3activated !! The persons concerned have to evacuate.",bc_map,"0xff9977";
+ donpcevent instance_npcname("MobCtrl3#mob03")+"::On04";
+ end;
+
+ OnTimer732000:
+ mapannounce instance_mapname("1@lhz"),"[Security System] Fifth security system of The Lab No.3 activated !! The persons concerned have to evacuate.",bc_map,"0xff9977";
+ donpcevent instance_npcname("MobCtrl3#mob03")+"::On05";
+ stopnpctimer;
+ end;
+}
+
+// The Lab No.3 Monster Control
+//==============================================================================
+1@lhz,37,104,4 script MobCtrl3#mob03 CLEAR_NPC,{
+ end;
+
+ On01:
+ .@map$ = instance_mapname("1@lhz");
+ .@label$ = instance_npcname("MobCtrl3#mob03")+"::OnMyMobDead";
+ monster .@map$,80,60,"Starving Lab animal",MD_DESERT_WOLF,1,.@label$;
+ monster .@map$,81,58,"Starving Lab animal",MD_DESERT_WOLF,1,.@label$;
+ monster .@map$,82,56,"Starving Lab animal",MD_DESERT_WOLF,1,.@label$;
+ monster .@map$,84,60,"Starving Lab animal",MD_DESERT_WOLF,1,.@label$;
+ monster .@map$,85,58,"Starving Lab animal",MD_DESERT_WOLF,1,.@label$;
+ monster .@map$,82,60,"Starving Lab animal",MD_DESERT_WOLF_B,1,.@label$;
+ monster .@map$,83,58,"Starving Lab animal",MD_DESERT_WOLF_B,1,.@label$;
+ monster .@map$,85,56,"Starving Lab animal",MD_DESERT_WOLF_B,1,.@label$;
+ monster .@map$,86,60,"Starving Lab animal",MD_DESERT_WOLF_B,1,.@label$;
+ monster .@map$,87,58,"Starving Lab animal",MD_DESERT_WOLF_B,1,.@label$;
+ end;
+
+ On02:
+ .@map$ = instance_mapname("1@lhz");
+ .@amount1 = rand(1,5);
+ .@amount2 = rand(1,5);
+ .@label$ = instance_npcname("MobCtrl3#mob03")+"::OnMyMobDead";
+ monster .@map$,80,60,"Starving Lab animal",MD_DESERT_WOLF,.@amount1,.@label$;
+ monster .@map$,82,60,"Starving Lab animal",MD_DESERT_WOLF,.@amount2,.@label$;
+ monster .@map$,84,60,"Starving Lab animal",MD_DESERT_WOLF_B,.@amount1,.@label$;
+ monster .@map$,86,60,"Starving Lab animal",MD_DESERT_WOLF,.@amount2,.@label$;
+ monster .@map$,81,58,"Starving Lab animal",MD_DESERT_WOLF,.@amount1,.@label$;
+ monster .@map$,83,58,"Starving Lab animal",MD_DESERT_WOLF_B,.@amount2,.@label$;
+ monster .@map$,85,58,"Starving Lab animal",MD_DESERT_WOLF,.@amount1,.@label$;
+ monster .@map$,87,58,"Starving Lab animal",MD_DESERT_WOLF,.@amount2,.@label$;
+ monster .@map$,82,56,"Starving Lab animal",MD_DESERT_WOLF_B,.@amount1,.@label$;
+ monster .@map$,85,56,"Starving Lab animal",MD_DESERT_WOLF,.@amount2,.@label$;
+ end;
+
+ On03:
+ .@map$ = instance_mapname("1@lhz");
+ .@amount1 = rand(1,5);
+ .@amount2 = rand(1,5);
+ .@amount3 = rand(1,5);
+ .@label$ = instance_npcname("MobCtrl3#mob03")+"::OnMyMobDead";
+ monster .@map$,80,60,"Starving Lab animal",MD_DESERT_WOLF,.@amount1,.@label$;
+ monster .@map$,82,60,"Starving Lab animal",MD_DESERT_WOLF,.@amount2,.@label$;
+ monster .@map$,84,60,"Starving Lab animal",MD_DESERT_WOLF,.@amount3,.@label$;
+ monster .@map$,86,60,"Starving Lab animal",MD_DESERT_WOLF_B,.@amount1,.@label$;
+ monster .@map$,81,58,"Starving Lab animal",MD_DESERT_WOLF,.@amount2,.@label$;
+ monster .@map$,83,58,"Starving Lab animal",MD_DESERT_WOLF,.@amount3,.@label$;
+ monster .@map$,85,58,"Starving Lab animal",MD_DESERT_WOLF,.@amount1,.@label$;
+ monster .@map$,87,58,"Starving Lab animal",MD_DESERT_WOLF_B,.@amount2,.@label$;
+ monster .@map$,82,56,"Starving Lab animal",MD_DESERT_WOLF,.@amount3,.@label$;
+ monster .@map$,85,56,"Starving Lab animal",MD_DESERT_WOLF,.@amount1,.@label$;
+ end;
+
+ On04:
+ .@map$ = instance_mapname("1@lhz");
+ .@amount1 = rand(1,5);
+ .@amount2 = rand(1,5);
+ .@amount3 = rand(1,5);
+ .@amount4 = rand(1,5);
+ .@label$ = instance_npcname("MobCtrl3#mob03")+"::OnMyMobDead";
+ monster .@map$,80,60,"Starving Lab animal",MD_DESERT_WOLF,.@amount1,.@label$;
+ monster .@map$,82,60,"Starving Lab animal",MD_DESERT_WOLF,.@amount2,.@label$;
+ monster .@map$,84,60,"Starving Lab animal",MD_DESERT_WOLF,.@amount3,.@label$;
+ monster .@map$,86,60,"Starving Lab animal",MD_DESERT_WOLF,.@amount4,.@label$;
+ monster .@map$,81,58,"Starving Lab animal",MD_DESERT_WOLF_B,.@amount1,.@label$;
+ monster .@map$,83,58,"Starving Lab animal",MD_DESERT_WOLF,.@amount2,.@label$;
+ monster .@map$,85,58,"Starving Lab animal",MD_DESERT_WOLF,.@amount3,.@label$;
+ monster .@map$,87,58,"Starving Lab animal",MD_DESERT_WOLF,.@amount4,.@label$;
+ monster .@map$,82,56,"Starving Lab animal",MD_DESERT_WOLF_B,.@amount1,.@label$;
+ monster .@map$,85,56,"Starving Lab animal",MD_DESERT_WOLF,.@amount2,.@label$;
+ end;
+
+ On05:
+ .@map$ = instance_mapname("1@lhz");
+ .@amount1 = rand(1,5);
+ .@amount2 = rand(1,5);
+ .@amount3 = rand(1,5);
+ .@amount4 = rand(1,5);
+ .@amount5 = rand(1,5);
+ .@label$ = instance_npcname("MobCtrl3#mob03")+"::OnMyMobDead";
+ monster .@map$,80,60,"Starving Lab animal",MD_DESERT_WOLF_B,.@amount1,.@label$;
+ monster .@map$,82,60,"Starving Lab animal",MD_DESERT_WOLF,.@amount2,.@label$;
+ monster .@map$,84,60,"Starving Lab animal",MD_DESERT_WOLF,.@amount3,.@label$;
+ monster .@map$,86,60,"Starving Lab animal",MD_DESERT_WOLF_B,.@amount4,.@label$;
+ monster .@map$,81,58,"Starving Lab animal",MD_DESERT_WOLF,.@amount5,.@label$;
+ monster .@map$,83,58,"Starving Lab animal",MD_DESERT_WOLF,.@amount1,.@label$;
+ monster .@map$,85,58,"Starving Lab animal",MD_DESERT_WOLF_B,.@amount2,.@label$;
+ monster .@map$,87,58,"Starving Lab animal",MD_DESERT_WOLF,.@amount3,.@label$;
+ monster .@map$,82,56,"Starving Lab animal",MD_DESERT_WOLF,.@amount4,.@label$;
+ monster .@map$,85,56,"Starving Lab animal",MD_DESERT_WOLF_B,.@amount5,.@label$;
+ end;
+
+ OnDisable:
+ killmonster instance_mapname("1@lhz"),instance_npcname("MobCtrl3#mob03")+"::OnMyMobDead";
+ end;
+
+ OnMyMobDead:
+ if (mobcount(instance_mapname("1@lhz"),instance_npcname("MobCtrl3#mob03")+"::OnMyMobDead") < 1) {
+ donpcevent instance_npcname("#potal_03")+"::OnEnable";
+ donpcevent instance_npcname("Lab3#3_1")+"::OnDisable";
+ mapannounce instance_mapname("1@lhz"),"[Security System] The Security system of The Lab No.3 has been stopped.",bc_map,"0xff9977";
+ }
+ end;
+}
+
+// The Lab No.3 >> Boss's Room Warp portal
+//==============================================================================
+1@lhz,83,62,0 script #potal_03 WARPNPC,2,2,{
+ end;
+
+ OnInstanceInit:
+ disablenpc instance_npcname("#potal_03");
+ end;
+
+ OnEnable:
+ mapannounce instance_mapname("1@lhz"),"[Management System] The door which connects to the Lab No.4 is now open.",bc_map,"0x7799ff";
+ enablenpc instance_npcname("#potal_03");
+ end;
+
+ OnDisable:
+ disablenpc instance_npcname("#potal_03");
+ end;
+
+ OnTouch:
+ warp instance_mapname("1@lhz"), 137, 100;
+ end;
+}
+
+// The Lab No.4
+//==============================================================================
+1@lhz,137,100,0 script #4_0 -1,1,1,{
+ end;
+
+ OnEnable:
+ enablenpc instance_npcname("#4_0");
+ end;
+
+ OnDisable:
+ disablenpc instance_npcname("#4_0");
+ end;
+
+ OnTouch:
+ donpcevent instance_npcname("Lab4#4_1")+"::OnEnable";
+ donpcevent instance_npcname("#4_0")+"::OnEnable";
+ end;
+}
+
+// The Lab No.4 4_1 System - Summon of Boss Monster
+//==============================================================================
+1@lhz,35,102,4 script Lab4#4_1 CLEAR_NPC,{
+ end;
+
+ OnEnable:
+ initnpctimer;
+ end;
+
+ OnDisable:
+ stopnpctimer;
+ end;
+
+ OnTimer1000:
+ mapannounce instance_mapname("1@lhz"),"Whisper: Who are you....",bc_map,"0x7DCBF0";
+ specialeffect EF_SPHERE,AREA,instance_npcname("Seyren Windsor#boss01");
+ end;
+
+ OnTimer2000:
+ specialeffect EF_SPHERE,AREA,instance_npcname("Cecile Damon#boss02");
+ end;
+
+ OnTimer3000:
+ mapannounce instance_mapname("1@lhz"),"Whisper: Do not approach more...",bc_map,"0x7DCBF0";
+ specialeffect EF_SPHERE,AREA,instance_npcname("Gertie Wie#boss03");
+ end;
+
+ OnTimer4000:
+ specialeffect EF_SPHERE,AREA,instance_npcname("Eremes Guile#boss04");
+ end;
+
+ OnTimer5000:
+ mapannounce instance_mapname("1@lhz"),"Whisper: This is a very dangerous place..",bc_map,"0x7DCBF0";
+ specialeffect EF_SPHERE,AREA,instance_npcname("Trentini#boss05");
+ end;
+
+ OnTimer6000:
+ specialeffect EF_SPHERE,AREA,instance_npcname("Chen Liu#boss06");
+ end;
+
+ OnTimer7000:
+ mapannounce instance_mapname("1@lhz"),"Whisper: You won't go out alive....",bc_map,"0x7DCBF0";
+ specialeffect EF_SPHERE,AREA,instance_npcname("Alphochio Basil#boss07");
+ end;
+
+ OnTimer8000:
+ specialeffect EF_SPHERE,AREA,instance_npcname("Flamel Emul#boss08");
+ end;
+
+ OnTimer9000:
+ mapannounce instance_mapname("1@lhz"),"Whisper: If you don't want to be a part of us....",bc_map,"0x7DCBF0";
+ specialeffect EF_SPHERE,AREA,instance_npcname("Randel Lawrence#boss09");
+ end;
+
+ OnTimer10000:
+ specialeffect EF_SPHERE,AREA,instance_npcname("Celia Alde#boss10");
+ end;
+
+ OnTimer11000:
+ mapannounce instance_mapname("1@lhz"),"Whisper: Leave now....",bc_map,"0x7DCBF0";
+ specialeffect EF_SPHERE,AREA,instance_npcname("Kathryne Keyron#boss11");
+ end;
+
+ OnTimer12000:
+ specialeffect EF_SPHERE,AREA,instance_npcname("Margaretha Sorin#boss12");
+ end;
+
+ OnTimer13000:
+ mapannounce instance_mapname("1@lhz"),"Whisper: Before this place is thoroughly filled with sorrow and pain....",bc_map,"0x7DCBF0";
+ specialeffect EF_SPHERE,AREA,instance_npcname("Howard Alt-Eisen#boss13");
+ end;
+
+ OnTimer14000:
+ specialeffect EF_SPHERE,AREA,instance_npcname("Type_**Gren#boss14");
+ end;
+
+ OnTimer15000:
+ specialeffect EF_SPHERE,AREA,instance_npcname("Type_**Roke#boss15");
+ end;
+
+ OnTimer16000:
+ specialeffect EF_SPHERE,AREA,instance_npcname("Type_**Dree#boss16");
+ end;
+
+ OnTimer17000:
+ mapannounce instance_mapname("1@lhz"),"Whisper: Ah....it....it's too late......",bc_map,"0x7DCBF0";
+ donpcevent instance_npcname("MobCtrl4#mob04")+"::OnEnable";
+ stopnpctimer;
+ end;
+}
+
+// Area No. 4 - Boss Summon Control
+//==============================================================================
+1@lhz,37,102,4 script MobCtrl4#mob04 CLEAR_NPC,{
+ end;
+
+ OnEnable:
+ switch(rand(1,13)) {
+ case 1:
+ donpcevent instance_npcname("Seyren Windsor#boss01")+"::OnEnable";
+ end;
+ case 2:
+ donpcevent instance_npcname("Cecile Damon#boss02")+"::OnEnable";
+ end;
+ case 3:
+ donpcevent instance_npcname("Gertie Wie#boss03")+"::OnEnable";
+ end;
+ case 4:
+ donpcevent instance_npcname("Eremes Guile#boss04")+"::OnEnable";
+ end;
+ case 5:
+ donpcevent instance_npcname("Trentini#boss05")+"::OnEnable";
+ end;
+ case 6:
+ donpcevent instance_npcname("Chen Liu#boss06")+"::OnEnable";
+ end;
+ case 7:
+ donpcevent instance_npcname("Alphochio Basil#boss07")+"::OnEnable";
+ end;
+ case 8:
+ donpcevent instance_npcname("Flamel Emul#boss08")+"::OnEnable";
+ end;
+ case 9:
+ donpcevent instance_npcname("Randel Lawrence#boss09")+"::OnEnable";
+ end;
+ case 10:
+ donpcevent instance_npcname("Celia Alde#boss10")+"::OnEnable";
+ end;
+ case 11:
+ donpcevent instance_npcname("Kathryne Keyron#boss11")+"::OnEnable";
+ end;
+ case 12:
+ donpcevent instance_npcname("Margaretha Sorin#boss12")+"::OnEnable";
+ end;
+ case 13:
+ donpcevent instance_npcname("Howard Alt-Eisen#boss13")+"::OnEnable";
+ end;
+ }
+
+ OnDisable:
+ //stopnpctimer;
+ end;
+}
+
+// Random Experiments in Tubes
+//==============================================================================
+1@lhz,156,148,3 script Type_**Gren#boss14 4_M_03,{ end; }
+1@lhz,152,152,3 script Type_**Roke#boss15 4_M_HUMAN_01,{ end; }
+1@lhz,148,156,3 script Type_**Dree#boss16 4_M_DWARF,{ end; }
+
+// Bosses
+//==============================================================================
+- script bio4FBoss -1,{
+ end;
+
+ OnEnable:
+ .@map$ = instance_mapname("1@lhz");
+ .@label$ = instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
+ specialeffect EF_SUI_EXPLOSION;
+ if(strnpcinfo(0) == "Seyren Windsor#boss01") {
+ monster .@map$,129,154,"Load Knight Seyren",B_SEYREN,1,.@label$;
+ }
+ if(strnpcinfo(0) == "Cecile Damon#boss02") {
+ monster .@map$,125,150,"Sniper Cecile",B_SHECIL,1,.@label$;
+ }
+ if(strnpcinfo(0) == "Gertie Wie#boss03") {
+ monster .@map$,121,146,"Stalker Gertie",B_GERTIE,1,.@label$;
+ }
+ if(strnpcinfo(0) == "Eremes Guile#boss04") {
+ monster .@map$,117,142,"Assassin Cross Eremes",B_EREMES,1,.@label$;
+ }
+ if(strnpcinfo(0) == "Trentini#boss05") {
+ monster .@map$,117,125,"Gypsy Trentini",B_TRENTINI,1,.@label$;
+ }
+ if(strnpcinfo(0) == "Chen Liu#boss06") {
+ monster .@map$,121,121,"Champion Chen",B_CHEN,1,.@label$;
+ }
+ if(strnpcinfo(0) == "Alphochio Basil#boss07") {
+ monster .@map$,125,117,"Crown Alphochio",B_ALPHOCCIO,1,.@label$;
+ }
+ if(strnpcinfo(0) == "Flamel Emul#boss08") {
+ monster .@map$,129,113,"Creator Flamel",B_FLAMEL,1,.@label$;
+ }
+ if(strnpcinfo(0) == "Randel Lawrence#boss09") {
+ monster .@map$,146,113,"Paladin Randel",B_RANDEL,1,.@label$;
+ }
+ if(strnpcinfo(0) == "Celia Alde#boss10") {
+ monster .@map$,150,117,"Professor Celia",B_CELIA,1,.@label$;
+ }
+ if(strnpcinfo(0) == "Kathryne Keyron#boss11") {
+ monster .@map$,154,121,"High Wizard Kathryne",B_KATRINN,1,.@label$;
+ }
+ if(strnpcinfo(0) == "Margaretha Sorin#boss12") {
+ monster .@map$,158,125,"High Priest Margaretha",B_MAGALETA,1,.@label$;
+ }
+ if(strnpcinfo(0) == "Howard Alt-Eisen#boss13") {
+ monster .@map$,158,142,"White Smith Howard",B_HARWORD,1,.@label$;
+ }
+ disablenpc instance_npcname(strnpcinfo(0));
+ end;
+
+ OnDisable:
+ killmonster instance_mapname("1@lhz"),instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
+ disablenpc instance_npcname(strnpcinfo(0));
+ end;
+
+ OnMyMobDead:
+ if (mobcount(instance_mapname("1@lhz"), instance_npcname(strnpcinfo(0))+"::OnMyMobDead") < 1) {
+ .@map$ = instance_mapname("1@lhz");
+ if(strnpcinfo(0) == "Seyren Windsor#boss01")
+ mapannounce .@map$,"Awww... Where are all my fellows....",bc_map,"0xFD3B02";
+ else if (strnpcinfo(0) == "Cecile Damon#boss02")
+ mapannounce .@map$,"Any..one, please help.. please.....",bc_map,"0xFD3B02";
+ else if (strnpcinfo(0) == "Gertie Wie#boss03")
+ mapannounce .@map$,".. did I act too.. rashly...?",bc_map,"0xFD3B02";
+ else if (strnpcinfo(0) == "Eremes Guile#boss04")
+ mapannounce .@map$,"Ah..... I am absolutely defeated....",bc_map,"0xFD3B02";
+ else if (strnpcinfo(0) == "Trentini#boss05")
+ mapannounce .@map$,"ah.. If I.. ever can ... dance and.... sing...happily....",bc_map,"0xFD3B02";
+ else if (strnpcinfo(0) == "Chen Liu#boss06")
+ mapannounce .@map$,"I.... am so .. sorry....",bc_map,"0xFD3B02";
+ else if (strnpcinfo(0) == "Alphochio Basil#boss07")
+ mapannounce .@map$,"...the new song......was ....for.....her....",bc_map,"0xFD3B02";
+ else if (strnpcinfo(0) == "Flamel Emul#boss08")
+ mapannounce .@map$,"Ha...I wanted to show.... the new potion....",bc_map,"0xFD3B02";
+ else if (strnpcinfo(0) == "Randel Lawrence#boss09")
+ mapannounce .@map$,"Wooooo.. everyone got defeated.....??",bc_map,"0xFD3B02";
+ else if (strnpcinfo(0) == "Celia Alde#boss10")
+ mapannounce .@map$,"No..... this experiment is.....dang...",bc_map,"0xFD3B02";
+ else if (strnpcinfo(0) == "Kathryne Keyron#boss11")
+ mapannounce .@map$,"awww.. is everyone Ok....?",bc_map,"0xFD3B02";
+ else if (strnpcinfo(0) == "Margaretha Sorin#boss12")
+ mapannounce .@map$,"My good boy.. Don't cry... ah.... our Great Odin.. please save us...",bc_map,"0xFD3B02";
+ else if (strnpcinfo(0) == "Howard Alt-Eisen#boss13")
+ mapannounce .@map$,"oh...no.... can't breath.... and my sister...?? sister!!",bc_map,"0xFD3B02";
+ donpcevent instance_npcname("Wolfchev#last")+"::OnEnable";
+ donpcevent instance_npcname(strnpcinfo(0))+"::OnDisable";
+ }
+ end;
+}
+
+1@lhz,127,156,5 duplicate(bio4FBoss) Seyren Windsor#boss01 B_SEYREN
+1@lhz,123,152,5 duplicate(bio4FBoss) Cecile Damon#boss02 B_SHECIL
+1@lhz,119,148,5 duplicate(bio4FBoss) Gertie Wie#boss03 B_GERTIE
+1@lhz,115,144,5 duplicate(bio4FBoss) Eremes Guile#boss04 B_EREMES
+1@lhz,115,123,7 duplicate(bio4FBoss) Trentini#boss05 B_TRENTINI
+1@lhz,119,119,7 duplicate(bio4FBoss) Chen Liu#boss06 B_CHEN
+1@lhz,123,115,7 duplicate(bio4FBoss) Alphochio Basil#boss07 B_ALPHOCCIO
+1@lhz,127,111,7 duplicate(bio4FBoss) Flamel Emul#boss08 B_FLAMEL
+1@lhz,148,111,1 duplicate(bio4FBoss) Randel Lawrence#boss09 B_RANDEL
+1@lhz,152,115,1 duplicate(bio4FBoss) Celia Alde#boss10 B_CELIA
+1@lhz,156,119,1 duplicate(bio4FBoss) Kathryne Keyron#boss11 B_KATRINN
+1@lhz,160,123,1 duplicate(bio4FBoss) Margaretha Sorin#boss12 B_MAGALETA
+1@lhz,160,144,3 duplicate(bio4FBoss) Howard Alt-Eisen#boss13 B_HARWORD
+
+// Wolfchev - Final encounter
+//==============================================================================
+1@lhz,137,156,7 script Wolfchev#last 4_LGTSCIENCE,{
+ if ((MaxWeight - Weight) < 1000 || !checkweight(1201, 1)) {
+ mes "^FF0000 Check up your inventory. You got too many items to carry out the quest. ^000000";
+ close;
+ }
+ .@all_quests_complete = true;
+ for(.@i = 5113; .@i <= 5125; .@i++) {
+ if(checkquest(.@i, HUNTING) != 2)
+ .@all_quests_complete = false;
+ }
+ if (.@all_quests_complete) {
+ // Quests Complete. Get Rewards.
+ .@reward = rand(1, 1000);
+ if (lght_duk01 == 8) {
+ // First time beating the instance.
+ mes "[Wolfchev]";
+ mes "You finally defeated my Boss creature.";
+ next;
+ mes "[Wolfchev]";
+ mes "Finally. is this the result?? For whom did I experiment? Did they cheat me?";
+ next;
+ mes "[Wolfchev]";
+ mes "The button was supposed to be pressed for an emergency case...but..";
+ next;
+ mes "[Wolfchev]";
+ mes "Hey.. You and I met by a bad connection....";
+ next;
+ mes "[Wolfchev]";
+ mes "But...., you helped me... How could you do that?";
+ next;
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "When I met you for the first time, you seemed mad but sad, even if you could commit those cruel and horrific experiments.";
+ next;
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "But actually, you did that because you was lonely,.. you just concentrated on that for this reason, huh?";
+ next;
+ mes "[Wolfchev]";
+ mes "HAHAHAHa. Loneliness.. You say?";
+ next;
+ mes "[Wolfchev]";
+ mes "It might be seen like that to you. But, it isn't. Loneliness is just a good and easy excuse of the losers.";
+ next;
+ mes "[Wolfchev]";
+ mes "I'm so happy doing experiments pursuing for a perfection, I never feel lonely.";
+ next;
+ mes "[Wolfchev]";
+ mes "Anyway, since I realized that Rekenber betrayed me, I cannot just let them do what they want.";
+ next;
+ mes "[Wolfchev]";
+ mes "For now, I will leave them alone, but I will make them cry and regret for trying to remove Wolfchev.";
+ next;
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "... .... ... ....";
+ next;
+ for(.@i = 5113; .@i <= 5125; .@i++) {
+ erasequest .@i;
+ }
+ lght_duk01 = 9;
+ if (.@reward >= 1 && .@reward < 84) {
+ getitem Salvage_Cape, 1;
+ } else if (.@reward >= 84 && .@reward < 167) {
+ getitem Ancient_Gold_Deco, 1;
+ } else if (.@reward >= 167 && .@reward < 250) {
+ getitem Giant_Lance, 1;
+ } else if (.@reward >= 250 && .@reward < 333) {
+ getitem Bloody_Cross, 1;
+ } else if (.@reward >= 333 && .@reward < 416) {
+ getitem Guillotine_Katar, 1;
+ } else if (.@reward >= 416 && .@reward < 499) {
+ getitem Chilly_Spell_Book, 1;
+ } else if (.@reward >= 499 && .@reward < 582) {
+ getitem Goast_Chill, 10;
+ } else if (.@reward >= 582 && .@reward < 665) {
+ getitem Blood_Thirst, 10;
+ } else if (.@reward >= 665 && .@reward < 748) {
+ getitem Will_Of_Warrior, 10;
+ } else if (.@reward >= 748 && .@reward < 831) {
+ getitem Goast_Chill, 20;
+ } else if (.@reward >= 831 && .@reward < 914) {
+ getitem Blood_Thirst, 20;
+ } else {
+ getitem Will_Of_Warrior, 20;
+ }
+ mes "[Wolfchev]";
+ mes "aaaaaah, "+ strcharinfo(PC_NAME) +" Thank you so much to remove my boys who had gone mad. Not a big gift but I wish you don't deny, I don't need this anymore.";
+ next;
+ mes "[Wolfchev]";
+ mes "And, if you can...hope you to come back often, especially with your friends. I want the place to be with human heart again so the sadness in here gets disappear.";
+ next;
+ mes "I looked at Wolfchev again before leaving his lab. and I could feel that he was not obsessed anymore..";
+ close2;
+ warp "lhz_dun04", 147, 273;
+ end;
+ } else {
+ mes "[Wolfchev]";
+ mes "You did defeat all of the Boss creatures. Thank you again.";
+ next;
+ for(.@i = 5113; .@i <= 5125; .@i++) {
+ erasequest .@i;
+ }
+ if (.@reward >= 1 && .@reward < 84) {
+ getitem Salvage_Cape, 1;
+ } else if (.@reward >= 84 && .@reward < 167) {
+ getitem Ancient_Gold_Deco, 1;
+ } else if (.@reward >= 167 && .@reward < 250) {
+ getitem Giant_Lance, 1;
+ } else if (.@reward >= 250 && .@reward < 333) {
+ getitem Bloody_Cross, 1;
+ } else if (.@reward >= 333 && .@reward < 416) {
+ getitem Guillotine_Katar, 1;
+ } else if (.@reward >= 416 && .@reward < 499) {
+ getitem Chilly_Spell_Book, 1;
+ } else if (.@reward >= 499 && .@reward < 582) {
+ getitem Goast_Chill, 10;
+ } else if (.@reward >= 582 && .@reward < 665) {
+ getitem Blood_Thirst, 10;
+ } else if (.@reward >= 665 && .@reward < 748) {
+ getitem Will_Of_Warrior, 10;
+ } else if (.@reward >= 748 && .@reward < 831) {
+ getitem Goast_Chill, 20;
+ } else if (.@reward >= 831 && .@reward < 914) {
+ getitem Blood_Thirst, 20;
+ } else {
+ getitem Will_Of_Warrior, 20;
+ }
+ mes "[Wolfchev]";
+ mes "I say again, "+ strcharinfo(PC_NAME) +" Thank you so much to remove my boys who had gone mad. Not a big gift but I wish you don't deny, I don't need this anymore.";
+ next;
+ mes "[Wolfchev]";
+ mes "Khahaha, See you again. Do you want to get out of here now?";
+ next;
+ if(select("Not yet", "Yes") == 1) {
+ mes "[Wolfchev]";
+ mes "Then tell me when you want to.";
+ close;
+ }
+ mes "[Wolfchev]";
+ mes "Then I will send you out.";
+ close2;
+ warp "lhz_dun04", 147, 273;
+ end;
+ }
+ } else {
+ if (!.@all_quests_complete) {
+ mes "[Wolfchev]";
+ mes "I was looking at the system.... don't know who made this..... but it's so complicated to get..no idea...";
+ next;
+ } else {
+ mes "[Wolfchev]";
+ mes "kakakaah.. Thank you. You handled those Boss creatures well..";
+ next;
+ }
+ if (lght_duk01 == 7) {
+ lght_duk01 = 8;
+ mes "[Wolfchev]";
+ mes "While you were struggling...";
+ next;
+ mes "[Wolfchev]";
+ mes "I figured out something..and there's a system error which doesn't let us come and go freely, so you could help me in 72 hours... Go somewhere to take rest before you come back..";
+ next;
+ mes "[Wolfchev]";
+ mes "Ah.. and I can send you out of my laboratory. Do you want?";
+ next;
+ } else {
+ mes "[Wolfchev]";
+ mes "Do you want to get out of here now?";
+ next;
+ }
+ if(select("Not yet", "Yes") == 1) {
+ mes "[Wolfchev]";
+ mes "Then tell me when you want to.";
+ close;
+ }
+ mes "[Wolfchev]";
+ mes "Then I will send you out.";
+ close2;
+ warp "lhz_dun04", 147, 273;
+ end;
+ }
+
+ OnInstanceInit:
+ OnDisable:
+ disablenpc instance_npcname("Wolfchev#last");
+ end;
+
+ OnEnable:
+ enablenpc instance_npcname("Wolfchev#last");
+ end;
+}
diff --git a/npc/re/jobs/1-1/acolyte.txt b/npc/re/jobs/1-1/acolyte.txt
index 4ab8837d3..07c37a07c 100644
--- a/npc/re/jobs/1-1/acolyte.txt
+++ b/npc/re/jobs/1-1/acolyte.txt
@@ -1,18 +1,18 @@
//===== Hercules Script ======================================
//= Renewal Acolyte Job Quest
-//===== By: ==================================================
+//===== By: ==================================================
//= Kisuka
-//===== Current Version: =====================================
+//===== Current Version: =====================================
//= 1.3
-//===== Description: =========================================
+//===== Description: =========================================
//= Job Change to Acolyte Class
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First Version. [Kisuka]
//= 1.1 Added back the npcs used for the priest quest.
//= 1.2 Added Baby Job compatibility [Streusel]
//= 1.3 Rewrote bits [Euphy]
-//============================================================
-prt_church,184,41,4 script Cleric#aco 60,{
+//============================================================
+prt_church,184,41,4 script Cleric#aco 1_M_PASTOR,{
if (Upper == 1) {
if (ADVJOB == Job_High_Priest || ADVJOB == Job_Champion) {
if (Class == Job_Novice_High) {
@@ -110,7 +110,7 @@ prt_church,184,41,4 script Cleric#aco 60,{
}
}
-prt_fild03,365,255,2 script Ascetic#aco 89,{
+prt_fild03,365,255,2 script Ascetic#aco 4_M_ORIENT02,{
mes "[Father Rubalkabara]";
if (BaseJob == Job_Novice) {
if (job_acolyte_q == 6) {
@@ -187,7 +187,7 @@ prt_fild03,365,255,2 script Ascetic#aco 89,{
}
}
-moc_fild07,41,355,4 script Ascetic#2aco 95,{
+moc_fild07,41,355,4 script Ascetic#2aco 4_F_SISTER,{
mes "[Mother Mathilda]";
if (BaseJob == Job_Novice) {
if (job_acolyte_q == 7) {
@@ -256,7 +256,7 @@ moc_fild07,41,355,4 script Ascetic#2aco 95,{
}
}
-prt_fild00,208,218,6 script Ascetic#3aco 98,{
+prt_fild00,208,218,6 script Ascetic#3aco 4W_M_02,{
mes "[Father Yosuke]";
if (BaseJob == Job_Novice) {
if (job_acolyte_q == 8) {
diff --git a/npc/re/jobs/1-1/archer.txt b/npc/re/jobs/1-1/archer.txt
index 8e8bedc5f..c18d60c5c 100644
--- a/npc/re/jobs/1-1/archer.txt
+++ b/npc/re/jobs/1-1/archer.txt
@@ -1,17 +1,17 @@
//===== Hercules Script ======================================
//= Renewal Archer Job Quest
-//===== By: ==================================================
+//===== By: ==================================================
//= Kisuka
-//===== Current Version: =====================================
+//===== Current Version: =====================================
//= 1.2
-//===== Description: =========================================
+//===== Description: =========================================
//= Job Change to Archer Class
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First Version. [Kisuka]
//= 1.1 Added Baby Job compatibility [Streusel]
//= 1.2 Rewrote bits [Euphy]
-//============================================================
-payon_in02,64,71,4 script Archer Guildsman#archer 85,{
+//============================================================
+payon_in02,64,71,4 script Archer Guildsman#archer 4_M_03,{
if (Upper == 1) {
if (Class == Job_Novice_High && (ADVJOB == Job_Sniper || ADVJOB == Job_Clown || ADVJOB == Job_Gypsy)) {
mes "[Archer Guildsman]";
@@ -39,7 +39,7 @@ payon_in02,64,71,4 script Archer Guildsman#archer 85,{
mes "I know you'll make a great Archer...";
next;
skill 143,0,0;
- jobchange Job_Archer_high;
+ jobchange Job_Archer_High;
skill 147,1,0;
skill 148,1,0;
mes "[Archer Guildsman]";
diff --git a/npc/re/jobs/1-1/mage.txt b/npc/re/jobs/1-1/mage.txt
index 1fce4269e..e87f89328 100644
--- a/npc/re/jobs/1-1/mage.txt
+++ b/npc/re/jobs/1-1/mage.txt
@@ -1,19 +1,17 @@
//===== Hercules Script ======================================
//= Renewal Mage Job Quest
-//===== By: ==================================================
+//===== By: ==================================================
//= Kisuka
-//===== Current Version: =====================================
+//===== Current Version: =====================================
//= 1.2
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Description: =========================================
//= Job Change to Mage Class
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First Version. [Kisuka]
//= 1.1 Added Baby Job compatibility [Streusel]
//= 1.2 Rewrote bits [Euphy]
-//============================================================
-geffen_in,164,124,4 script Mage Guildsman#mage 123,{
+//============================================================
+geffen_in,164,124,4 script Mage Guildsman#mage 2_F_MAGICMASTER,{
if (Upper == 1) {
if (ADVJOB == Job_High_Wizard || ADVJOB == Job_Professor) {
if (Class == Job_Novice_High) {
diff --git a/npc/re/jobs/1-1/merchant.txt b/npc/re/jobs/1-1/merchant.txt
index 58c13ae17..619a2a465 100644
--- a/npc/re/jobs/1-1/merchant.txt
+++ b/npc/re/jobs/1-1/merchant.txt
@@ -1,19 +1,17 @@
//===== Hercules Script ======================================
//= Renewal Merchant Job Quest
-//===== By: ==================================================
+//===== By: ==================================================
//= Kisuka
-//===== Current Version: =====================================
+//===== Current Version: =====================================
//= 1.2
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Description: =========================================
//= Job Change to Merchant Class
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First Version. [Kisuka]
//= 1.1 Added Baby Job compatibility [Streusel]
//= 1.2 Rewrote bits [Euphy]
-//============================================================
-alberta_in,53,43,6 script Merchant#mer 86,{
+//============================================================
+alberta_in,53,43,6 script Merchant#mer 4_M_04,{
if (Upper == 1) {
if (Class == Job_Novice_High && (ADVJOB == Job_Whitesmith || ADVJOB == Job_Creator)) {
mes "[Chief Mahnsoo]";
diff --git a/npc/re/jobs/1-1/swordman.txt b/npc/re/jobs/1-1/swordman.txt
index 0d47f0b3a..d8bd67711 100644
--- a/npc/re/jobs/1-1/swordman.txt
+++ b/npc/re/jobs/1-1/swordman.txt
@@ -1,19 +1,17 @@
//===== Hercules Script ======================================
//= Renewal Swordman Job Quest
-//===== By: ==================================================
+//===== By: ==================================================
//= Kisuka
-//===== Current Version: =====================================
+//===== Current Version: =====================================
//= 1.2
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Description: =========================================
//= Job Change to Swordman Class
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First Version. [Kisuka]
//= 1.1 Added Baby Job compatibility [Streusel]
//= 1.2 Rewrote bits [Euphy]
-//============================================================
-izlude_in,74,172,4 script Swordman#swd 119,{
+//============================================================
+izlude_in,74,172,4 script Swordman#swd 2_M_SWORDMASTER,{
if (Upper == 1) {
if (Class == Job_Novice_High && (ADVJOB == Job_Lord_Knight || ADVJOB == Job_Paladin)) {
mes "[Swordman]";
diff --git a/npc/re/jobs/1-1/thief.txt b/npc/re/jobs/1-1/thief.txt
index 23b23bd96..4b04f9efa 100644
--- a/npc/re/jobs/1-1/thief.txt
+++ b/npc/re/jobs/1-1/thief.txt
@@ -1,19 +1,17 @@
//===== Hercules Script ======================================
//= Renewal Thief Job Quest
-//===== By: ==================================================
+//===== By: ==================================================
//= Kisuka
-//===== Current Version: =====================================
+//===== Current Version: =====================================
//= 1.2
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Description: =========================================
//= Job Change to Thief Class
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First Version. [Kisuka]
//= 1.1 Added Baby Job compatibility [Streusel]
//= 1.2 Rewrote bits [Euphy]
-//============================================================
-moc_prydb1,39,129,2 script Thief Guide#thief 69,{
+//============================================================
+moc_prydb1,39,129,2 script Thief Guide#thief 1_F_04,{
if (Upper == 1) {
if (ADVJOB == Job_Assassin_Cross || ADVJOB == Job_Stalker) {
if (Class == Job_Novice_High) {
@@ -42,7 +40,7 @@ moc_prydb1,39,129,2 script Thief Guide#thief 69,{
close;
}else{
mes "[Thief Guide]";
- if (sex)
+ if (Sex)
mes "Hey, dude.";
else
mes "Hey, baby~";
@@ -50,7 +48,7 @@ moc_prydb1,39,129,2 script Thief Guide#thief 69,{
}
}else{
mes "[Thief Guide]";
- if (sex)
+ if (Sex)
mes "Hey, dude.";
else
mes "Hey, baby.";
@@ -157,7 +155,7 @@ moc_prydb1,39,129,2 script Thief Guide#thief 69,{
close;
}
-moc_prydb1,42,133,2 script Thief Guildsman#thief 118,{
+moc_prydb1,42,133,2 script Thief Guildsman#thief 2_M_THIEFMASTER,{
if(q_job_thief == 1) {
mes "[Thief Guildsman]";
mes "Alright. You must have passed the job interview, huh?";
diff --git a/npc/re/jobs/3-1/archbishop.txt b/npc/re/jobs/3-1/archbishop.txt
index c71e2abd3..26782eb94 100644
--- a/npc/re/jobs/3-1/archbishop.txt
+++ b/npc/re/jobs/3-1/archbishop.txt
@@ -1,10 +1,10 @@
-//===== Hercules Script =======================================
+//===== Hercules Script ======================================
//= Arch Bishop Job Quest
//===== By: ==================================================
//= L0ne_W0lf
//= Credits: Gepard
//===== Current Version: =====================================
-//= 1.7a
+//= 1.9
//===== Description: =========================================
//= [Official Conversion]
//= Job change Quest from Priest / High Priest -> Arch Bishop.
@@ -20,9 +20,11 @@
//= 1.6 Fixed bugs where players unable to continue the quest. [Joseph]
//= 1.7 Updated script, many bugs fixed. [Euphy]
//= 1.7a Moved warps to separate file. [Euphy]
+//= 1.8 Bug fixes and corrections. [Euphy]
+//= 1.9 Added GM management function. [Euphy]
//============================================================
-prt_church,103,88,3 script Praying Minister#arch 60,{
+prt_church,103,88,3 script Praying Minister#arch 1_M_PASTOR,{
if (BaseJob != Job_Priest) {
if (Class == Job_Arch_Bishop || Class == Job_Arch_Bishop_T || Class == Job_Baby_Bishop) {
mes "[Praying Minister]";
@@ -91,7 +93,7 @@ prt_church,103,88,3 script Praying Minister#arch 60,{
mes "But, I recommend this.";
next;
mes "[Praying Minister]";
- mes "Have you ever heard of a^3131FFHoly Pilgrimage^000000?";
+ mes "Have you ever heard of a ^3131FFHoly Pilgrimage^000000?";
mes "A Holy Pilgrimage means going to a holy place to pray to the God Odin for protection and grace.";
next;
mes "[Praying Minister]";
@@ -160,13 +162,13 @@ prt_church,103,88,3 script Praying Minister#arch 60,{
close;
}
-umbala,137,227,5 script Utan Boy#arch 787,{
+umbala,137,227,5 script Utan Boy#arch 4_M_UMKID,{
mes "[Utan Boy]";
mes "........";
close;
}
-umbala,139,227,3 script Priest#arch 60,{
+umbala,139,227,3 script Priest#arch 1_M_PASTOR,{
if (job_arch == 0) {
mes "[Priest]";
mes "Un...ba... Unba?";
@@ -276,7 +278,7 @@ umbala,139,227,3 script Priest#arch 60,{
mes "And in Asgard, the world of the Gods, there is the Word spring.";
next;
mes "[Priest Dayan]";
- mes "Mimir'Â’s spring wells with intelligence, myth says that if Odin lets you have his eye that you will gain all of the knowledge within that spring.";
+ mes "Mimir's spring wells with intelligence, myth says that if Odin lets you have his eye that you will gain all of the knowledge within that spring.";
next;
mes "[Priest Dayan]";
mes Sex?"Brother.":"Sister.";
@@ -412,7 +414,7 @@ umbala,139,227,3 script Priest#arch 60,{
close;
}
-yggdrasil01,220,47,0 script #arch_pilgrimage 139,5,5,{
+yggdrasil01,220,47,0 script #arch_pilgrimage HIDDEN_WARP_NPC,5,5,{
OnTouch:
if (job_arch == 2) {
mes "[" + strcharinfo(0) + "]";
@@ -571,7 +573,7 @@ OnTouch:
end;
}
-hu_in01,205,204,7 script Praying Nun#benew 79,{
+hu_in01,205,204,7 script Praying Nun#benew 1_F_PRIEST,{
if (job_arch == 4) {
mes "- There is a nun closing her eyes as she murmurs something which sounds like a prayer. -";
next;
@@ -720,14 +722,14 @@ hu_in01,205,204,7 script Praying Nun#benew 79,{
close;
}
-odin_tem02,282,263,0 script #find_val 139,3,3,{
+odin_tem02,282,263,0 script #find_val HIDDEN_WARP_NPC,3,3,{
OnTouch:
if ((job_arch > 4) && (job_arch < 100))
hideoffnpc "Valkyrie Illusion#arch";
end;
}
-odin_tem02,281,275,3 script Valkyrie Illusion#arch 403,{
+odin_tem02,281,275,3 script Valkyrie Illusion#arch 4_F_VALKYRIE2,{
if ((job_arch > 4) && (job_arch < 100)) {
mes "You can see Valkyrie who has a despairing face.";
next;
@@ -752,7 +754,7 @@ OnInit:
end;
}
-job3_arch01,29,34,3 script Valkyrie#arch 403,{
+job3_arch01,29,34,3 script Valkyrie#arch 4_F_VALKYRIE2,{
if (checkweight(1201,1) == 0 || (MaxWeight - Weight) < 2000) {
mes "- Wait a Sec !! -";
mes "- You are carrying too many items, -";
@@ -774,7 +776,10 @@ job3_arch01,29,34,3 script Valkyrie#arch 403,{
mes "You can't progress without using all your skill points. Please use all of your skill points before progressing~";
close;
}
- if (Class != Job_Arch_Bishop || Class != Job_Arch_Bishop_T || Class != Job_Baby_Bishop) {
+ if (Class != Job_Priest && Class != Job_High_Priest && Class != Job_Baby_Priest) {
+ warp "odin_tem02",282,263;
+ end;
+ } else if (Class != Job_Arch_Bishop && Class != Job_Arch_Bishop_T && Class != Job_Baby_Bishop) {
if (job_arch < 5) {
warp "odin_tem02",282,263;
end;
@@ -951,7 +956,7 @@ job3_arch01,29,34,3 script Valkyrie#arch 403,{
mes "OK. now I'm going to send you there.";
mes "^FF0000When you go there, you have to summon my impersonation with the scroll^000000.";
mes "An impersonation will help when you move or attack as you want through ^FF0000ALT+click^000000.";
- mes "But you have to be careful if an imeprsonation falls down.";
+ mes "But you have to be careful if an impersonation falls down.";
close2;
nude;
if (countitem(2798))
@@ -970,17 +975,17 @@ job3_arch01,29,34,3 script Valkyrie#arch 403,{
end;
OnBc:
set $@archbs,0;
- mapannounce "job3_arch01","Valkyrie: I think someone fell down in the shrine. I can hear the devil's unpleasant laugh.",bc_map,"0xFFCE00"; //FW_NORMAL 12 0 0
+ mapannounce "job3_arch01","Valkyrie: I think someone fell down in the shrine. I can hear the devil's unpleasant laugh.",bc_map,"0xFFCE00";
hideoffnpc "Valkyrie#arch";
end;
}
-job3_arch02,119,49,0 script #arch_1_start 139,6,6,{
+job3_arch02,119,49,0 script #arch_1_start HIDDEN_WARP_NPC,6,6,{
OnTouch:
if (countitem(12381) == 0)
getitem 12381,1; //ValkyrieA_Scroll
- mapannounce "job3_arch02","Whispering of an impersonation: I feel heavy! Set me free!",bc_map,"0xFFCE00"; //FW_NORMAL 12 0 0
- hideonnpc "#arch_1_start";
+ mapannounce "job3_arch02","Whispering of an impersonation: I feel heavy! Set me free!",bc_map,"0xFFCE00";
+ disablenpc "#arch_1_start";
end;
}
@@ -988,49 +993,46 @@ OnTouch:
OnTouch:
if (countitem(12381)) {
delitem 12381,1; //ValkyrieA_Scroll
- mapannounce "job3_arch02","Whispering of an impersonation: You can't do anything by yourself! Let's go back!",bc_map,"0xFFCE00"; //FW_NORMAL 12 0 0
- mapwarp "job3_arch02","job3_arch01",29,29;
- }
- if (getmercinfo(1) == 2037) {
+ // fall through
+ } else if (getmercinfo(1) == 2037) {
+ if (strnpcinfo(0) == "#arch_1_10")
+ viewpoint 1,113,327,1,0xFF9900;
set .@randht, rand(1,10);
if (.@randht < 8)
- mapannounce "job3_arch02","Whispering of an impersonation: I can feel the devil's spirits! Be careful!",bc_map,"0xFFCE00"; //FW_NORMAL 12 0 0
+ mapannounce "job3_arch02","Whispering of an impersonation: I can feel the devil's spirits! Be careful!",bc_map,"0xFFCE00";
else if ((.@randht == 8) || (.@randht == 9))
- mapannounce "job3_arch02","Whispering of an impersonation: They are coming!",bc_map,"0xFFCE00"; //FW_NORMAL 12 0 0
+ mapannounce "job3_arch02","Whispering of an impersonation: They are coming!",bc_map,"0xFFCE00";
end;
}
- mapannounce "job3_arch02","Whispering of an impersonation: You can't do anything by yourself! Let's go back!",bc_map,"0xFFCE00"; //FW_NORMAL 12 0 0
+ mapannounce "job3_arch02","Whispering of an impersonation: You can't do anything by yourself! Let's go back!",bc_map,"0xFFCE00";
mapwarp "job3_arch02","job3_arch01",29,29;
end;
}
-job3_arch02,112,73,0 duplicate(archbjcq) #arch_1_01 139,5,5
-job3_arch02,94,123,0 duplicate(archbjcq) #arch_1_02 139,5,5
-job3_arch02,93,173,0 duplicate(archbjcq) #arch_1_03 139,5,5
-job3_arch02,114,186,0 duplicate(archbjcq) #arch_1_04 139,5,5
-job3_arch02,134,201,0 duplicate(archbjcq) #arch_1_05 139,5,5
-job3_arch02,154,211,0 duplicate(archbjcq) #arch_1_06 139,5,5
-job3_arch02,175,227,0 duplicate(archbjcq) #arch_1_07 139,5,5
-job3_arch02,201,240,0 duplicate(archbjcq) #arch_1_08 139,5,5
-job3_arch02,223,252,0 duplicate(archbjcq) #arch_1_09 139,5,5
-job3_arch02,255,268,0 duplicate(archbjcq) #arch_1_10 139,5,5
-job3_arch02,269,302,0 duplicate(archbjcq) #arch_1_11 139,5,5
-job3_arch02,245,289,0 duplicate(archbjcq) #arch_1_12 139,5,5
+job3_arch02,112,73,0 duplicate(archbjcq) #arch_1_01 HIDDEN_WARP_NPC,5,5
+job3_arch02,94,123,0 duplicate(archbjcq) #arch_1_02 HIDDEN_WARP_NPC,5,5
+job3_arch02,93,173,0 duplicate(archbjcq) #arch_1_03 HIDDEN_WARP_NPC,5,5
+job3_arch02,114,186,0 duplicate(archbjcq) #arch_1_04 HIDDEN_WARP_NPC,5,5
+job3_arch02,134,201,0 duplicate(archbjcq) #arch_1_05 HIDDEN_WARP_NPC,5,5
+job3_arch02,154,211,0 duplicate(archbjcq) #arch_1_06 HIDDEN_WARP_NPC,5,5
+job3_arch02,175,227,0 duplicate(archbjcq) #arch_1_07 HIDDEN_WARP_NPC,5,5
+job3_arch02,201,240,0 duplicate(archbjcq) #arch_1_08 HIDDEN_WARP_NPC,5,5
+job3_arch02,223,252,0 duplicate(archbjcq) #arch_1_09 HIDDEN_WARP_NPC,5,5
+job3_arch02,255,268,0 duplicate(archbjcq) #arch_1_10 HIDDEN_WARP_NPC,5,5
+job3_arch02,269,302,0 duplicate(archbjcq) #arch_1_11 HIDDEN_WARP_NPC,5,5
+job3_arch02,245,289,0 duplicate(archbjcq) #arch_1_12 HIDDEN_WARP_NPC,5,5
-job3_arch02,203,286,0 script #arch_1_boss 139,5,5,{
+job3_arch02,203,286,0 script #arch_1_boss HIDDEN_WARP_NPC,5,5,{
OnTouch:
if (countitem(12381)) {
delitem 12381,1; //ValkyrieA_Scroll
- mapannounce "job3_arch02","Whispering of an impersonation: You can't do anything by yourself! Let's go back!",bc_map,"0xFFCE00"; //FW_NORMAL 12 0 0
- mapwarp "job3_arch02","job3_arch01",29,29;
- end;
- }
- if (getmercinfo(1) == 2037) {
- mapannounce "job3_arch02","Valkyrie's Nightmare: An incompetent illusion of Valkyrie came here with the assistance of humans. You wanna have that nightmare?",bc_map,"0xFF0000"; //FW_NORMAL 12 0 0
+ // fall through
+ } else if (getmercinfo(1) == 2037) {
+ mapannounce "job3_arch02","Valkyrie's Nightmare: An incompetent illusion of Valkyrie came here with the assistance of humans. You wanna have that nightmare?",bc_map,"0xFF0000";
donpcevent "mob#arch_1::OnKill";
- } else {
- mapannounce "job3_arch02","Whispering of an impersonation: You can't do anything by yourself! Let's go back!",bc_map,"0xFFCE00"; //FW_NORMAL 12 0 0
- mapwarp "job3_arch02","job3_arch01",29,29;
+ end;
}
+ mapannounce "job3_arch02","Whispering of an impersonation: You can't do anything by yourself! Let's go back!",bc_map,"0xFFCE00";
+ mapwarp "job3_arch02","job3_arch01",29,29;
end;
}
@@ -1049,7 +1051,7 @@ OnRed:
end;
}
-job3_arch02,390,389,1 script #arch_val01 844,{
+job3_arch02,390,389,1 script #arch_val01 CLEAR_NPC,{
end;
OnEnable:
areamonster "job3_arch02",111,325,115,329,"Valkyrie's Nightmare",2036,1,"#arch_val01::OnMyMobDead";
@@ -1057,22 +1059,22 @@ OnEnable:
OnMyMobDead:
if (mobcount("job3_arch02","#arch_val01::OnMyMobDead") < 1) {
donpcevent "#arch_redcell::OnGreen";
- mapannounce "job3_arch02","Valkyrie's Nightmare: Your win is only a false image! hahahaha!",bc_map,"0xFF0000"; //FW_NORMAL 12 0 0
+ mapannounce "job3_arch02","Valkyrie's Nightmare: Your win is only a false image! hahahaha!",bc_map,"0xFF0000";
hideoffnpc "Valkyrie#arch_01";
- hideonnpc "#arch_1_start";
- hideonnpc "#arch_1_01";
- hideonnpc "#arch_1_02";
- hideonnpc "#arch_1_03";
- hideonnpc "#arch_1_04";
- hideonnpc "#arch_1_05";
- hideonnpc "#arch_1_06";
- hideonnpc "#arch_1_07";
- hideonnpc "#arch_1_08";
- hideonnpc "#arch_1_09";
- hideonnpc "#arch_1_10";
- hideonnpc "#arch_1_11";
- hideonnpc "#arch_1_12";
- hideonnpc "#arch_1_boss";
+ disablenpc "#arch_1_start";
+ disablenpc "#arch_1_01";
+ disablenpc "#arch_1_02";
+ disablenpc "#arch_1_03";
+ disablenpc "#arch_1_04";
+ disablenpc "#arch_1_05";
+ disablenpc "#arch_1_06";
+ disablenpc "#arch_1_07";
+ disablenpc "#arch_1_08";
+ disablenpc "#arch_1_09";
+ disablenpc "#arch_1_10";
+ disablenpc "#arch_1_11";
+ disablenpc "#arch_1_12";
+ disablenpc "#arch_1_boss";
}
end;
OnKill:
@@ -1080,16 +1082,16 @@ OnKill:
end;
}
-job3_arch02,390,387,1 script #arch_val02 844,{
+job3_arch02,390,387,1 script #arch_val02 CLEAR_NPC,{
end;
OnEnable:
areamonster "job3_arch02",242,44,246,48,"Valkyrie's Nightmare",2036,1,"#arch_val02::OnMyMobDead";
end;
OnMyMobDead:
if (mobcount("job3_arch02","#arch_val02::OnMyMobDead") < 1) {
- mapannounce "job3_arch02","Valkyrie's Nightmare: You are so childish. I invite you to a devil's party. I'll make sure you have a fun!",bc_map,"0xFF0000"; //FW_NORMAL 12 0 0
+ mapannounce "job3_arch02","Valkyrie's Nightmare: You are so childish. I invite you to a devil's party. I'll make sure you have a fun!",bc_map,"0xFF0000";
hideoffnpc "Valkyrie#arch_02";
- hideonnpc "#arch_2_boss";
+ disablenpc "#arch_2_boss";
viewpoint 1,279,234,1,0xFFFF99;
}
end;
@@ -1098,7 +1100,7 @@ OnKill:
end;
}
-job3_arch02,113,327,5 script Valkyrie#arch_01 403,{
+job3_arch02,113,327,5 script Valkyrie#arch_01 4_F_VALKYRIE2,{
if (getmercinfo(1)) {
mes "[Valkyrie]";
mes "If you want to talk with me, you have to ^3131FFcancel all contracts^000000 with any mercenaries you have.";
@@ -1133,7 +1135,7 @@ job3_arch02,113,327,5 script Valkyrie#arch_01 403,{
end;
}
-job3_arch02,244,46,5 script Valkyrie#arch_02 403,{
+job3_arch02,244,46,5 script Valkyrie#arch_02 4_F_VALKYRIE2,{
mes "[Valkyrie Anguhilde]";
mes "Did you find the rest of the pieces?";
next;
@@ -1170,7 +1172,7 @@ job3_arch02,244,46,5 script Valkyrie#arch_02 403,{
end;
}
-job3_arch02,279,234,0 script #arch_end 139,7,7,{
+job3_arch02,279,234,0 script #arch_end HIDDEN_WARP_NPC,7,7,{
end;
OnTouch:
donpcevent "#arch_3_01::OnKill";
@@ -1298,18 +1300,18 @@ OnTouch:
jobchange roclass(eaclass()|EAJL_THIRD);
close;
OnInit:
- hideonnpc "#arch_end";
+ disablenpc "#arch_end";
end;
}
-job3_arch02,281,232,1 script Valkyrie Anguhilde#end 403,{
+job3_arch02,281,232,1 script Valkyrie Anguhilde#end 4_F_VALKYRIE2,{
end;
OnInit:
hideonnpc "Valkyrie Anguhilde#end";
end;
}
-job3_arch02,273,235,5 script Valkyrie of the heavens 811,{
+job3_arch02,273,235,5 script Valkyrie of the heavens 4_F_VALKYRIE,{
if (job_arch == 100) {
mes "[Valkyrie of the heavens]";
mes "Now, go back to your world.";
@@ -1328,11 +1330,11 @@ OnInit:
end;
}
-job3_arch02,132,323,0 script #arch_2_01 139,5,5,{
+job3_arch02,132,323,0 script #arch_2_01 HIDDEN_WARP_NPC,5,5,{
end;
OnTouch:
if (countitem(12382))
- mapannounce "job3_arch02","Whispering of Valkyrie: I see a new ancient scroll!",bc_map; //FW_NORMAL 12 0 0
+ mapannounce "job3_arch02","Whispering of Valkyrie: I see a new ancient scroll!",bc_map;
end;
}
@@ -1340,189 +1342,197 @@ OnTouch:
OnTouch:
if (countitem(12382)) {
delitem 12382,1; //ValkyrieB_Scroll
- mapannounce "job3_arch02","Whispering of an impersonation: You can't do anything by yourself! Let's go back!",bc_map,"0xFFCE00"; //FW_NORMAL 12 0 0
- mapwarp "job3_arch02","job3_arch01",29,29;
- end;
- }
- if (getmercinfo(1) == 2038) {
+ // fall through
+ } else if (getmercinfo(1) == 2038) {
set .@randht, rand(1,10);
if (.@randht < 8)
- mapannounce "job3_arch02","Whispering of an impersonation: I can feel the devil's spirits. Can you hear? The sound of gathering in crowds.",bc_map,"0xFFCE00"; //FW_NORMAL 12 0 0
+ mapannounce "job3_arch02","Whispering of an impersonation: I can feel the devil's spirits. Can you hear? The sound of gathering in crowds.",bc_map,"0xFFCE00";
else if ((.@randht == 8) || (.@randht == 9))
- mapannounce "job3_arch02","Whispering of an impersonation: Combat readiness!",bc_map,"0xFFCE00"; //FW_NORMAL 12 0 0
+ mapannounce "job3_arch02","Whispering of an impersonation: Combat readiness!",bc_map,"0xFFCE00";
else
- mapannounce "job3_arch02","Whispering of an impersonation: I can't leave you. Die!",bc_map,"0xFFCE00"; //FW_NORMAL 12 0 0
+ mapannounce "job3_arch02","Whispering of an impersonation: I can't leave you. Die!",bc_map,"0xFFCE00";
end;
}
- mapannounce "job3_arch02","Whispering of an impersonation: You can't do anything by yourself! Let's go back!",bc_map,"0xFFCE00"; //FW_NORMAL 12 0 0
+ mapannounce "job3_arch02","Whispering of an impersonation: You can't do anything by yourself! Let's go back!",bc_map,"0xFFCE00";
mapwarp "job3_arch02","job3_arch01",29,29;
end;
}
-job3_arch02,167,313,0 duplicate(archbjcq2) #arch_2_02 139,5,5
-job3_arch02,127,304,0 duplicate(archbjcq2) #arch_2_03 139,5,5
-job3_arch02,207,279,0 duplicate(archbjcq2) #arch_2_04 139,5,5
-job3_arch02,239,281,0 duplicate(archbjcq2) #arch_2_05 139,5,5
-job3_arch02,269,303,0 duplicate(archbjcq2) #arch_2_06 139,5,5
-job3_arch02,288,283,0 duplicate(archbjcq2) #arch_2_07 139,5,5
-job3_arch02,278,234,0 duplicate(archbjcq2) #arch_2_08 139,5,5
-job3_arch02,234,179,0 duplicate(archbjcq2) #arch_2_09 139,5,5
-job3_arch02,227,169,0 duplicate(archbjcq2) #arch_2_10 139,5,5
-job3_arch02,190,146,0 duplicate(archbjcq2) #arch_2_11 139,5,5
+job3_arch02,167,313,0 duplicate(archbjcq2) #arch_2_02 HIDDEN_WARP_NPC,5,5
+job3_arch02,127,304,0 duplicate(archbjcq2) #arch_2_03 HIDDEN_WARP_NPC,5,5
+job3_arch02,207,279,0 duplicate(archbjcq2) #arch_2_04 HIDDEN_WARP_NPC,5,5
+job3_arch02,239,281,0 duplicate(archbjcq2) #arch_2_05 HIDDEN_WARP_NPC,5,5
+job3_arch02,269,303,0 duplicate(archbjcq2) #arch_2_06 HIDDEN_WARP_NPC,5,5
+job3_arch02,288,283,0 duplicate(archbjcq2) #arch_2_07 HIDDEN_WARP_NPC,5,5
+job3_arch02,278,234,0 duplicate(archbjcq2) #arch_2_08 HIDDEN_WARP_NPC,5,5
+job3_arch02,234,179,0 duplicate(archbjcq2) #arch_2_09 HIDDEN_WARP_NPC,5,5
+job3_arch02,227,169,0 duplicate(archbjcq2) #arch_2_10 HIDDEN_WARP_NPC,5,5
+job3_arch02,190,146,0 duplicate(archbjcq2) #arch_2_11 HIDDEN_WARP_NPC,5,5
-job3_arch02,252,267,0 script #arch_2_12 139,5,5,{
+/*
+// Not in official script.
+job3_arch02,252,267,0 script #arch_2_12 HIDDEN_WARP_NPC,5,5,{
OnTouch:
- mapannounce "job3_arch02","Whispering of an impersonation: It's a crossroad. Let's go to the left side. I have to find my pipe.",bc_map,"0xFFCE00"; //FW_NORMAL 12 0 0
+ mapannounce "job3_arch02","Whispering of an impersonation: It's a crossroad. Let's go to the left side. I have to find my pipe.",bc_map,"0xFFCE00";
end;
}
-job3_arch02,250,290,0 script #arch_2_13 139,5,5,{
+job3_arch02,250,290,0 script #arch_2_13 HIDDEN_WARP_NPC,5,5,{
OnTouch:
- mapannounce "job3_arch02","Whispering of an impersonation: I can see a ruined shrine. Take a rest in there.",bc_map,"0xFFCE00"; //FW_NORMAL 12 0 0
+ mapannounce "job3_arch02","Whispering of an impersonation: I can see a ruined shrine. Take a rest in there.",bc_map,"0xFFCE00";
end;
}
+*/
-job3_arch02,206,113,0 script #arch_2_boss 139,5,5,{
+job3_arch02,206,113,0 script #arch_2_boss HIDDEN_WARP_NPC,5,5,{
OnTouch:
if (countitem(12382)) {
delitem 12382,1; //ValkyrieB_Scroll
- mapannounce "job3_arch02","Whispering of an impersonation: You can't do anything by yourself! Let's go back!",bc_map,"0xFFCE00"; //FW_NORMAL 12 0 0
- mapwarp "job3_arch02","job3_arch01",29,29;
- }
- if (getmercinfo(1) == 2038)
- mapannounce "job3_arch02","A shout of devil: You are so childish. I invite you a party of devil. I'll make you have a fun!",bc_map,"0xFF0000"; //FW_NORMAL 12 0 0
- else {
- mapannounce "job3_arch02","Whispering of an impersonation: You can't do anything by yourself! Let's go back!",bc_map,"0xFFCE00"; //FW_NORMAL 12 0 0
- mapwarp "job3_arch02","job3_arch01",29,29;
+ // fall through
+ } else if (getmercinfo(1) == 2038) {
+ mapannounce "job3_arch02","A shout of devil: You are so childish. I invite you a party of devil. I'll make you have a fun!",bc_map,"0xFF0000";
+ end;
}
+ mapannounce "job3_arch02","Whispering of an impersonation: You can't do anything by yourself! Let's go back!",bc_map,"0xFFCE00";
+ mapwarp "job3_arch02","job3_arch01",29,29;
end;
}
-job3_arch02,284,159,0 script #arch_3_01 139,20,20,{
+job3_arch02,284,159,0 script #arch_3_01 HIDDEN_WARP_NPC,20,20,{
OnTouch:
- if (BaseJob != Job_Priest) {
- mapannounce "job3_arch02","Frus: Do you want to see God? Okay, I'll send you to the land of the dead by myself!",bc_map,"0xFF0000"; //FW_NORMAL 12 0 0
- areamonster "job3_arch02",242,44,246,48,"Frus",1762,1;
+ if (Class != Job_Priest) {
+ mapannounce "job3_arch02","Frus: Do you want to see God? Okay, I'll send you to the land of the dead by myself!",bc_map,"0xFF0000";
+ areamonster "job3_arch02",242,44,246,48,"Frus",1762,1,"#arch_3_01::OnMyMobDead";
}
- hideonnpc "#arch_3_01";
+ disablenpc "#arch_3_01";
+ end;
+OnMyMobDead:
end;
OnKill:
killmonster "job3_arch02","#arch_3_01::OnMyMobDead";
end;
-OnInit:
- hideoffnpc "#arch_3_01";
- end;
+//OnInit:
+// enablenpc "#arch_3_01";
+// end;
}
-job3_arch02,307,200,0 script #arch_3_02 139,5,5,{
+job3_arch02,307,200,0 script #arch_3_02 HIDDEN_WARP_NPC,5,5,{
OnTouch:
if (BaseJob == Job_Priest) {
- mapannounce "job3_arch02","Skogul: You are my guest!",bc_map,"0xFF0000"; //FW_NORMAL 12 0 0
- monster "job3_arch02",307,200,"Skogul",1761,1;
+ mapannounce "job3_arch02","Skogul: You are my guest!",bc_map,"0xFF0000";
+ monster "job3_arch02",307,200,"Skogul",1761,1,"#arch_3_02::OnMyMobDead";
}
- hideonnpc "#arch_3_02";
+ disablenpc "#arch_3_02";
+ end;
+OnMyMobDead:
end;
OnKill:
killmonster "job3_arch02","#arch_3_02::OnMyMobDead";
end;
-OnInit:
- hideoffnpc "#arch_3_02";
- end;
+//OnInit:
+// enablenpc "#arch_3_02";
+// end;
}
-job3_arch02,296,216,0 script #arch_3_03 139,5,5,{
+job3_arch02,296,216,0 script #arch_3_03 HIDDEN_WARP_NPC,5,5,{
OnTouch:
- mapannounce "job3_arch02","Frus: I like your face... Can I steal it?",bc_map,"0xFF0000"; //FW_NORMAL 12 0 0
- monster "job3_arch02",296,216,"Frus",1762,1;
- hideonnpc "#arch_3_03";
+ mapannounce "job3_arch02","Frus: I like your face... Can I steal it?",bc_map,"0xFF0000";
+ monster "job3_arch02",296,216,"Frus",1762,1,"#arch_3_03::OnMyMobDead";
+ disablenpc "#arch_3_03";
+ end;
+OnMyMobDead:
end;
OnKill:
killmonster "job3_arch02","#arch_3_03::OnMyMobDead";
end;
OnInit:
- hideonnpc "#arch_3_03";
+ disablenpc "#arch_3_03";
end;
}
-job3_arch02,389,390,1 script mob#arch_1 844,{
+job3_arch02,389,390,1 script mob#arch_1 CLEAR_NPC,{
end;
OnEnable:
- monster "job3_arch02",100,102,"Shrine Invader",1394,2;
- monster "job3_arch02",90,131,"Shrine Invader",1394,2;
- monster "job3_arch02",91,170,"Shrine Invader",1427,1;
- monster "job3_arch02",104,183,"Shrine Invader",1427,1;
- monster "job3_arch02",138,205,"Shrine Invader",1394,2;
- monster "job3_arch02",161,215,"Shrine Invader",1394,2;
- monster "job3_arch02",165,215,"Shrine Invader",1427,1;
- monster "job3_arch02",201,236,"Shrine Invader",1394,2;
- monster "job3_arch02",218,250,"Shrine Invader",1427,1;
- monster "job3_arch02",254,293,"Shrine Invader",1427,1;
+ monster "job3_arch02",100,102,"Shrine Invader",1394,2,"mob#arch_1::OnMyMobDead";
+ monster "job3_arch02",90,131,"Shrine Invader",1394,2,"mob#arch_1::OnMyMobDead";
+ monster "job3_arch02",91,170,"Shrine Invader",1427,1,"mob#arch_1::OnMyMobDead";
+ monster "job3_arch02",104,183,"Shrine Invader",1427,1,"mob#arch_1::OnMyMobDead";
+ monster "job3_arch02",138,205,"Shrine Invader",1394,2,"mob#arch_1::OnMyMobDead";
+ monster "job3_arch02",161,215,"Shrine Invader",1394,2,"mob#arch_1::OnMyMobDead";
+ monster "job3_arch02",165,215,"Shrine Invader",1427,1,"mob#arch_1::OnMyMobDead";
+ monster "job3_arch02",201,236,"Shrine Invader",1394,2,"mob#arch_1::OnMyMobDead";
+ monster "job3_arch02",218,250,"Shrine Invader",1427,1,"mob#arch_1::OnMyMobDead";
+ monster "job3_arch02",254,293,"Shrine Invader",1427,1,"mob#arch_1::OnMyMobDead";
+ end;
+OnMyMobDead:
end;
OnKill:
killmonster "job3_arch02","mob#arch_1::OnMyMobDead";
end;
}
-job3_arch02,389,389,1 script mob#arch_2 844,{
+job3_arch02,389,389,1 script mob#arch_2 CLEAR_NPC,{
end;
OnEnable:
- monster "job3_arch02",156,321,"Shrine Invader",1480,2;
- monster "job3_arch02",170,305,"Shrine Invader",1480,2;
- monster "job3_arch02",183,293,"Shrine Invader",1453,1;
- monster "job3_arch02",200,287,"Shrine Invader",1453,1;
- monster "job3_arch02",256,293,"Shrine Invader",1480,2;
- monster "job3_arch02",286,284,"Shrine Invader",1480,2;
- monster "job3_arch02",278,236,"Shrine Invader",1453,1;
- monster "job3_arch02",292,185,"Shrine Invader",1480,2;
- monster "job3_arch02",281,170,"Shrine Invader",1453,1;
- monster "job3_arch02",227,166,"Shrine Invader",1453,1;
- monster "job3_arch02",190,146,"Shrine Invader",1480,1;
- monster "job3_arch02",204,177,"Shrine Invader",1453,1;
+ monster "job3_arch02",156,321,"Shrine Invader",1480,2,"mob#arch_2::OnMyMobDead";
+ monster "job3_arch02",170,305,"Shrine Invader",1480,2,"mob#arch_2::OnMyMobDead";
+ monster "job3_arch02",183,293,"Shrine Invader",1453,1,"mob#arch_2::OnMyMobDead";
+ monster "job3_arch02",200,287,"Shrine Invader",1453,1,"mob#arch_2::OnMyMobDead";
+ monster "job3_arch02",256,293,"Shrine Invader",1480,2,"mob#arch_2::OnMyMobDead";
+ monster "job3_arch02",286,284,"Shrine Invader",1480,2,"mob#arch_2::OnMyMobDead";
+ monster "job3_arch02",278,236,"Shrine Invader",1453,1,"mob#arch_2::OnMyMobDead";
+ monster "job3_arch02",292,185,"Shrine Invader",1480,2,"mob#arch_2::OnMyMobDead";
+ monster "job3_arch02",281,170,"Shrine Invader",1453,1,"mob#arch_2::OnMyMobDead";
+ monster "job3_arch02",227,166,"Shrine Invader",1453,1,"mob#arch_2::OnMyMobDead";
+ monster "job3_arch02",190,146,"Shrine Invader",1480,1,"mob#arch_2::OnMyMobDead";
+ monster "job3_arch02",204,177,"Shrine Invader",1453,1,"mob#arch_2::OnMyMobDead";
+ end;
+OnMyMobDead:
end;
OnKill:
killmonster "job3_arch02","mob#arch_2::OnMyMobDead";
end;
}
-job3_arch02,389,388,1 script start#arch 844,{
+job3_arch02,389,388,1 script start#arch CLEAR_NPC,{
end;
OnInit:
- mapwarp "job3_arch02","job3_arch02",29,29;
+ mapwarp "job3_arch02","job3_arch01",29,29;
end;
OnEnable:
- mapwarp "job3_arch02","job3_arch02",29,29;
- hideoffnpc "#arch_1_start";
- hideoffnpc "#arch_1_01";
- hideoffnpc "#arch_1_02";
- hideoffnpc "#arch_1_03";
- hideoffnpc "#arch_1_04";
- hideoffnpc "#arch_1_05";
- hideoffnpc "#arch_1_06";
- hideoffnpc "#arch_1_07";
- hideoffnpc "#arch_1_08";
- hideoffnpc "#arch_1_09";
- hideoffnpc "#arch_1_10";
- hideoffnpc "#arch_1_11";
- hideoffnpc "#arch_1_12";
- hideoffnpc "#arch_1_boss";
- hideonnpc "#arch_2_01";
- hideonnpc "#arch_2_02";
- hideonnpc "#arch_2_03";
- hideonnpc "#arch_2_04";
- hideonnpc "#arch_2_05";
- hideonnpc "#arch_2_06";
- hideonnpc "#arch_2_07";
- hideonnpc "#arch_2_08";
- hideonnpc "#arch_2_09";
- hideonnpc "#arch_2_10";
- hideonnpc "#arch_2_11";
- hideonnpc "#arch_2_boss";
- hideonnpc "#arch_3_01";
- hideonnpc "#arch_3_02";
- hideonnpc "#arch_3_03";
+ mapwarp "job3_arch02","job3_arch01",29,29;
+ enablenpc "#arch_1_start";
+ enablenpc "#arch_1_01";
+ enablenpc "#arch_1_02";
+ enablenpc "#arch_1_03";
+ enablenpc "#arch_1_04";
+ enablenpc "#arch_1_05";
+ enablenpc "#arch_1_06";
+ enablenpc "#arch_1_07";
+ enablenpc "#arch_1_08";
+ enablenpc "#arch_1_09";
+ enablenpc "#arch_1_10";
+ enablenpc "#arch_1_11";
+ enablenpc "#arch_1_12";
+ enablenpc "#arch_1_boss";
+ disablenpc "#arch_2_01";
+ disablenpc "#arch_2_02";
+ disablenpc "#arch_2_03";
+ disablenpc "#arch_2_04";
+ disablenpc "#arch_2_05";
+ disablenpc "#arch_2_06";
+ disablenpc "#arch_2_07";
+ disablenpc "#arch_2_08";
+ disablenpc "#arch_2_09";
+ disablenpc "#arch_2_10";
+ disablenpc "#arch_2_11";
+ disablenpc "#arch_2_boss";
+ disablenpc "#arch_3_01";
+ disablenpc "#arch_3_02";
+ disablenpc "#arch_3_03";
donpcevent "#arch_3_01::OnKill";
donpcevent "#arch_3_02::OnKill";
donpcevent "#arch_3_03::OnKill";
- hideonnpc "#arch_end";
+ disablenpc "#arch_end";
hideonnpc "Valkyrie#arch_01";
hideonnpc "Valkyrie#arch_02";
hideonnpc "Valkyrie Anguhilde#end";
@@ -1530,8 +1540,8 @@ OnEnable:
donpcevent "#arch_redcell::OnRed";
donpcevent "mob#arch_1::OnKill";
donpcevent "mob#arch_2::OnKill";
- donpcevent "start#arch::OnTimeoff";
- donpcevent "start#arch::OnTimeon";
+ donpcevent "start#arch::OnTimeOff";
+ donpcevent "start#arch::OnTimeOn";
donpcevent "#arch_val01::OnKill";
donpcevent "#arch_val02::OnKill";
donpcevent "mob#arch_1::OnKill";
@@ -1539,10 +1549,10 @@ OnEnable:
donpcevent "mob#arch_1::OnEnable";
donpcevent "#arch_val01::OnEnable";
end;
-OnTimeon:
+OnTimeOn:
initnpctimer;
end;
-OnTimeoff:
+OnTimeOff:
stopnpctimer;
end;
OnTimer60000:
@@ -1561,91 +1571,87 @@ OnTimer540000:
}
end;
OnTimer600000:
- mapannounce "job3_arch02","Valkyrie's Nightmare: I can't stand anymore!",bc_map,"0xFF0000"; //FW_NORMAL 12 0 0
+ mapannounce "job3_arch02","Valkyrie's Nightmare: I can't stand anymore!",bc_map,"0xFF0000";
end;
OnTimer605000:
- mapannounce "job3_arch02","Whispering of Valkyrie: No way! I can't let you guys do that. Go back!",bc_map,"0xFFCE00"; //FW_NORMAL 12 0 0
+ mapannounce "job3_arch02","Whispering of Valkyrie: No way! I can't let you guys do that. Go back!",bc_map,"0xFFCE00";
mapwarp "job3_arch02","job3_arch01",29,29;
donpcevent "Valkyrie#arch::OnBc";
stopnpctimer;
end;
}
-job3_arch02,390,388,1 script #arch_2_start 844,{
+job3_arch02,390,388,1 script #arch_2_start CLEAR_NPC,{
end;
OnInit:
- hideonnpc "#arch_2_01";
- hideonnpc "#arch_2_02";
- hideonnpc "#arch_2_03";
- hideonnpc "#arch_2_04";
- hideonnpc "#arch_2_05";
- hideonnpc "#arch_2_06";
- hideonnpc "#arch_2_07";
- hideonnpc "#arch_2_08";
- hideonnpc "#arch_2_09";
- hideonnpc "#arch_2_10";
- hideonnpc "#arch_2_11";
- hideonnpc "#arch_2_boss";
+ disablenpc "#arch_2_01";
+ disablenpc "#arch_2_02";
+ disablenpc "#arch_2_03";
+ disablenpc "#arch_2_04";
+ disablenpc "#arch_2_05";
+ disablenpc "#arch_2_06";
+ disablenpc "#arch_2_07";
+ disablenpc "#arch_2_08";
+ disablenpc "#arch_2_09";
+ disablenpc "#arch_2_10";
+ disablenpc "#arch_2_11";
+ disablenpc "#arch_2_boss";
end;
OnEnable:
- hideoffnpc "#arch_2_01";
- hideoffnpc "#arch_2_02";
- hideoffnpc "#arch_2_03";
- hideoffnpc "#arch_2_04";
- hideoffnpc "#arch_2_05";
- hideoffnpc "#arch_2_06";
- hideoffnpc "#arch_2_07";
- hideoffnpc "#arch_2_08";
- hideoffnpc "#arch_2_09";
- hideoffnpc "#arch_2_10";
- hideoffnpc "#arch_2_11";
- hideoffnpc "#arch_2_boss";
+ enablenpc "#arch_2_01";
+ enablenpc "#arch_2_02";
+ enablenpc "#arch_2_03";
+ enablenpc "#arch_2_04";
+ enablenpc "#arch_2_05";
+ enablenpc "#arch_2_06";
+ enablenpc "#arch_2_07";
+ enablenpc "#arch_2_08";
+ enablenpc "#arch_2_09";
+ enablenpc "#arch_2_10";
+ enablenpc "#arch_2_11";
+ enablenpc "#arch_2_boss";
donpcevent "#arch_val02::OnEnable";
donpcevent "mob#arch_2::OnEnable";
end;
}
-job3_arch02,390,386,1 script #arch_3_start 844,{
+job3_arch02,390,386,1 script #arch_3_start CLEAR_NPC,{
end;
OnEnable:
- hideoffnpc "#arch_3_01";
- hideoffnpc "#arch_3_02";
- hideoffnpc "#arch_3_03";
- hideoffnpc "#arch_end";
- hideoffnpc "#arch_end_eff";
+ enablenpc "#arch_3_01";
+ enablenpc "#arch_3_02";
+ enablenpc "#arch_3_03";
+ enablenpc "#arch_end";
+ //enablenpc "#arch_end_eff";
end;
}
-job3_arch02,290,221,0 script #arch_end_eff 139,5,5,{
+job3_arch02,290,221,0 script #arch_end_eff HIDDEN_WARP_NPC,5,5,{
OnTouch:
specialeffect EF_MAPPILLAR2,"#arch_end";
end;
}
-odin_tem02,30,181,0 script #wherearch01 139,10,10,{
+/*
+job_arch01,26,25,0 script #archremove HIDDEN_WARP_NPC,3,3,{
OnTouch:
- if (job_arch == 5)
- viewpoint 1,282,263,1,0xFFFF99;
+ if (countitem(6154)) delitem 6154, countitem(6154); //Broken_Horn_Pipe
+ if (countitem(12381)) delitem 12381, countitem(12381); //ValkyrieA_Scroll
+ if (countitem(12382)) delitem 12382, countitem(12382); //ValkyrieB_Scroll
+ if (countitem(2798)) delitem 2798, countitem(2798); //Will_Of_Exhausted_Angel
end;
}
+*/
-odin_tem02,30,335,0 script #wherearch02 139,10,10,{
-OnTouch:
- if (job_arch == 5)
- viewpoint 1,282,263,1,0xFFFF99;
- end;
-}
-
-/*
-job3_arch01,1,1,1 script control#arch 844,{
+job3_arch01,1,1,1 script control#arch CLEAR_NPC,{
+ callfunc "F_GM_NPC";
mes "[Troll]";
mes "Password please.";
next;
- input .@input;
- if (.@input == 1854) {
+ if (callfunc("F_GM_NPC",1854,0) == 1) {
mes "[Transit]";
mes "The GlobalVar is";
- mes "" + $@archbs + ".";
+ mes $@archbs + ".";
mes "Do you want to change it?";
next;
switch(select("0:1")) {
@@ -1664,4 +1670,17 @@ job3_arch01,1,1,1 script control#arch 844,{
close;
}
}
-*/ \ No newline at end of file
+
+odin_tem02,30,181,0 script #wherearch01 HIDDEN_WARP_NPC,10,10,{
+OnTouch:
+ if (job_arch == 5)
+ viewpoint 1,282,263,1,0xFFFF99;
+ end;
+}
+
+odin_tem02,30,335,0 script #wherearch02 HIDDEN_WARP_NPC,10,10,{
+OnTouch:
+ if (job_arch == 5)
+ viewpoint 1,282,263,1,0xFFFF99;
+ end;
+}
diff --git a/npc/re/jobs/3-1/guillotine_cross.txt b/npc/re/jobs/3-1/guillotine_cross.txt
index 71769be81..df51c3496 100644
--- a/npc/re/jobs/3-1/guillotine_cross.txt
+++ b/npc/re/jobs/3-1/guillotine_cross.txt
@@ -1,24 +1,24 @@
//===== Hercules Script ======================================
//= Guillotine Cross Job Quest
-//===== By: ==================================================
+//===== By: ==================================================
//= Muad_Dib
-//===== Current Version: =====================================
-//= 1.3
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Current Version: =====================================
+//= 1.5
+//===== Description: =========================================
//= [Official Conversion]
//= Job change Quest from Assassin / Assassin Cross -> Guillotine Cross.
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 Adapted from original script. [Euphy]
//= 1.0a Added 'npcskill' command. [Euphy]
//= 1.0b Moved warps to separate file. [Euphy]
//= 1.1 Fixed some minor bugs. [Euphy]
//= 1.2 Moved "Girl" NPC off ve_fild05. [Euphy]
//= 1.3 Added missing OnMyMobDead labels. [Euphy]
+//= 1.4 Added missing labels. [Joseph]
+//= 1.5 Added GM management function. [Euphy]
//============================================================
-que_job01,75,96,3 script Guild Member#3rdgc01 997,{
+que_job01,75,96,3 script Guild Member#3rdgc01 4_M_MOCASS1,{
if (job_3rd_gc == 0) {
if (Class == Job_Assassin || Class == Job_Assassin_Cross || Class == Job_Baby_Assassin) {
if (BaseLevel == 99) {
@@ -222,7 +222,7 @@ function script func_3rdgc {
close;
}
-job3_guil01,82,95,3 script Daora#3rdgc02 940,{
+job3_guil01,82,95,3 script Daora#3rdgc02 4_F_DESERT,{
mes "[Daora]";
if (Class == Job_Assassin || Class == Job_Assassin_Cross || Class == Job_Baby_Assassin) {
if (job_3rd_gc < 4) {
@@ -243,7 +243,7 @@ job3_guil01,82,95,3 script Daora#3rdgc02 940,{
mes "[Daora]";
if (Zeny > 799) {
mes "Here you are, take it.";
- set Zeny, Zeny - 800;
+ Zeny -= 800;
getitem 12112,1; //Tropical_Sograt
close;
}
@@ -253,7 +253,7 @@ job3_guil01,82,95,3 script Daora#3rdgc02 940,{
mes "[Daora]";
if (Zeny > 799) {
mes "Here you are, take it.";
- set Zeny, Zeny - 800;
+ Zeny -= 800;
getitem 12113,1; //Vermilion_The_Beach
close;
}
@@ -697,7 +697,7 @@ job3_guil01,82,95,3 script Daora#3rdgc02 940,{
if (Zeny > 499) {
mes "Here you are. Milk.";
mes "Then take a rest.";
- set Zeny, Zeny - 500;
+ Zeny -= 500;
getitem 519,1; //Milk
close;
}
@@ -737,7 +737,7 @@ job3_guil01,82,95,3 script Daora#3rdgc02 940,{
mes "[Daora]";
if (Zeny > 799) {
mes "Here you are, take it.";
- set Zeny, Zeny - 800;
+ Zeny -= 800;
getitem 12112,1; //Tropical_Sograt
close;
}
@@ -747,7 +747,7 @@ job3_guil01,82,95,3 script Daora#3rdgc02 940,{
mes "[Daora]";
if (Zeny > 799) {
mes "Here you are, take it.";
- set Zeny, Zeny - 800;
+ Zeny -= 800;
getitem 12113,1; //Vermilion_The_Beach
close;
}
@@ -764,7 +764,7 @@ job3_guil01,82,95,3 script Daora#3rdgc02 940,{
if (Zeny > 499) {
mes "I feel sorry to take 500 zeny per bottle, but I have to.";
mes "It's very hard to get milk in Veins.";
- set Zeny, Zeny - 500;
+ Zeny -= 500;
getitem 519,1; //Milk
close;
}
@@ -799,7 +799,7 @@ job3_guil01,82,95,3 script Daora#3rdgc02 940,{
mes "[Daora]";
if (Zeny > 999) {
mes "Here you are, take it.";
- set Zeny, Zeny - 1000;
+ Zeny -= 1000;
getitem 12112,1; //Tropical_Sograt
close;
}
@@ -809,7 +809,7 @@ job3_guil01,82,95,3 script Daora#3rdgc02 940,{
mes "[Daora]";
if (Zeny > 999) {
mes "Here you are, take it.";
- set Zeny, Zeny - 1000;
+ Zeny -= 1000;
getitem 12113,1; //Vermilion_The_Beach
close;
}
@@ -825,7 +825,7 @@ job3_guil01,82,95,3 script Daora#3rdgc02 940,{
}
}
-job3_guil01,16,20,4 script Mayshell#3rdgc03 894,{
+job3_guil01,16,20,4 script Mayshell#3rdgc03 4_F_KHELLISIA,{
if (!checkweight(1201,2)) {
mes "- You can't continue this quest because you have too many items. -";
close;
@@ -1097,7 +1097,7 @@ job3_guil01,16,20,4 script Mayshell#3rdgc03 894,{
}
}
-ve_in,228,108,3 script Waitress#3rdgc04 80,{
+ve_in,228,108,3 script Waitress#3rdgc04 1_F_PUBGIRL,{
mes "[Waitress]";
if (job_3rd_gc < 6) {
mes "Welcome~";
@@ -1289,7 +1289,7 @@ ve_in,228,108,3 script Waitress#3rdgc04 80,{
mes "[Waitress]";
mes "Oh by the way, my name is Madelle.";
mes "I hope you remember my name.";
- set Zeny, Zeny - 5000;
+ Zeny -= 5000;
setquest 7112;
next;
mes "- Madelle's information is attached to a quest board. What information have I collected? -";
@@ -1330,7 +1330,7 @@ ve_in,228,108,3 script Waitress#3rdgc04 80,{
}
}
-ve_in,246,303,3 script Young Merchant#3rdgc05 930,{
+ve_in,246,303,3 script Young Merchant#3rdgc05 4_M_RACHMAN2,{
if (job_3rd_gc < 6) {
mes "[Young Merchant]";
mes "If you want to buy stuff, go to this person.";
@@ -1526,7 +1526,7 @@ ve_in,246,303,3 script Young Merchant#3rdgc05 930,{
}
}
-veins,291,215,3 script Vigilante#3rdgc06 939,{
+veins,291,215,3 script Vigilante#3rdgc06 4_DST_SOLDIER,{
if (job_3rd_gc < 6) {
mes "[Vigilante]";
mes "Do you have any inconveniences while you are traveling?";
@@ -1690,7 +1690,7 @@ veins,291,215,3 script Vigilante#3rdgc06 939,{
}
}
-veins,187,143,5 script Peddler#3rdgc07 892,{
+veins,187,143,5 script Peddler#3rdgc07 4_F_HUGRANMA,{
mes "[Peddler]";
if (job_3rd_gc < 6) {
mes "What a huge sandstorm.";
@@ -1793,7 +1793,7 @@ veins,187,143,5 script Peddler#3rdgc07 892,{
}
}
-veins,235,126,3 script Old Man#3rdgc07 945,{
+veins,235,126,3 script Old Man#3rdgc07 4_M_DST_GRAND,{
mes "[Old Man]";
if (job_3rd_gc < 6) {
mes "Haha... I can remember my past when I see a young adventurer like you...";
@@ -1900,7 +1900,7 @@ veins,235,126,3 script Old Man#3rdgc07 945,{
}
}
-veins,223,180,3 script Girl#3rdgc09 941,{
+veins,223,180,3 script Girl#3rdgc09 4_F_DST_CHILD,{
mes "[Melissa]";
if (job_3rd_gc == 8) {
mes "Hi?";
@@ -2071,7 +2071,7 @@ veins,223,180,3 script Girl#3rdgc09 941,{
}
}
-veins,337,284,0 script #ghostestilla_3rdgc 139,3,3,{
+veins,337,284,0 script #ghostestilla_3rdgc HIDDEN_WARP_NPC,3,3,{
end;
OnTouch:
if (job_3rd_gc == 9) {
@@ -2184,7 +2184,7 @@ OnTouch:
end;
}
-veins,341,287,3 script Estillda#3rdgc10 919,{
+veins,341,287,3 script Estillda#3rdgc10 4_F_SHABBY,{
OnInit:
OnDisable:
disablenpc "Estillda#3rdgc10";
@@ -2194,7 +2194,7 @@ OnEnable:
end;
}
-job3_guil01,79,15,1 script Estillda#3rdgc11 919,{
+job3_guil01,79,15,1 script Estillda#3rdgc11 4_F_SHABBY,{
if (job_3rd_gc == 11) {
mes "Estillda is looking around with an anxious expression on her face.";
next;
@@ -2313,7 +2313,7 @@ job3_guil01,79,15,1 script Estillda#3rdgc11 919,{
end;
}
-veins,206,56,0 script #3rdgc_battleroom01 139,1,1,{
+veins,206,56,0 script #3rdgc_battleroom01 HIDDEN_WARP_NPC,1,1,{
end;
OnInit:
set $@3rdgc_room01, 0;
@@ -2352,7 +2352,7 @@ OnTouch:
end;
}
-job3_guil02,34,44,0 script #3rdgc_room01_mag01 139,2,2,{
+job3_guil02,34,44,0 script #3rdgc_room01_mag01 HIDDEN_WARP_NPC,2,2,{
end;
OnEnable:
enablenpc "#3rdgc_room01_mag01";
@@ -2397,7 +2397,7 @@ OnTimer300000:
end;
}
-job3_guil02,51,43,7 script A man with black clothes 456,4,4,{
+job3_guil02,51,43,7 script A man with black clothes 4_M_DSTMAN,4,4,{
end;
OnInit:
OnDisable:
@@ -2452,7 +2452,7 @@ OnMyMobDead:
end;
}
-job3_guil02,1,1,0 script #3rdgc_2nd_timer 844,{
+job3_guil02,1,1,0 script #3rdgc_2nd_timer CLEAR_NPC,{
end;
OnEnable:
initnpctimer;
@@ -2472,7 +2472,7 @@ OnTimer61000:
end;
}
-job3_guil02,49,43,5 script Dandelion#3rdgc12 457,{
+job3_guil02,49,43,5 script Dandelion#3rdgc12 4_M_DSTMANDEAD,{
if (!checkweight(1201,2)) {
mes "- You can't continue this quest because you have too many items. -";
close;
@@ -2517,7 +2517,7 @@ OnEnable:
end;
}
-rachel,115,77,3 script Girke#3rdgc13 85,{
+rachel,115,77,3 script Girke#3rdgc13 4_M_03,{
mes "[Girke]";
mes "Oh~ young man.";
mes "I'm Girke Sara.";
@@ -2564,7 +2564,7 @@ rachel,115,77,3 script Girke#3rdgc13 85,{
close;
}
-ra_in01,175,196,3 script Oresa Rava#3rdgc13 866,{
+ra_in01,175,196,3 script Oresa Rava#3rdgc13 4_M_LGTGRAND,{
mes "[Oresa Rava]";
if (job_3rd_gc == 13) {
mes "I don't know why you are visiting me, but I'm not crafting anymore.";
@@ -2649,7 +2649,7 @@ ra_in01,175,196,3 script Oresa Rava#3rdgc13 866,{
}
//Pre-RE: ve_fild05 (327,308)
-ve_fild02,330,384,3 script Girl#3rdgc14 466,{
+ve_fild02,330,384,3 script Girl#3rdgc14 4_F_GUILLOTINE,{
if (job_3rd_gc > 14 && job_3rd_gc < 18) {
mes "[Renzak]";
if (job_3rd_gc == 15) {
@@ -2728,7 +2728,7 @@ OnInit:
end;
}
-job3_guil03,22,70,0 script #3rdgc_event01 139,3,3,{
+job3_guil03,22,70,0 script #3rdgc_event01 HIDDEN_WARP_NPC,3,3,{
end;
OnEnable:
enablenpc "#3rdgc_event01";
@@ -2763,7 +2763,7 @@ OnTimer902000:
end;
}
-job3_guil03,1,4,0 script #3rdgc_event_master 844,{
+job3_guil03,1,4,0 script #3rdgc_event_master CLEAR_NPC,{
end;
OnEnable:
donpcevent "Barbed-Wire Entanglement::OnEnable";
@@ -2814,7 +2814,7 @@ OnReset:
}
//Original name: Barbed-Wire Entanglements#3rdgc_door01
-job3_guil03,55,79,0 script Barbed-Wire Entanglement 844,1,1,{
+job3_guil03,55,79,0 script Barbed-Wire Entanglement CLEAR_NPC,1,1,{
end;
OnEnable:
enablenpc "Barbed-Wire Entanglement";
@@ -2836,7 +2836,7 @@ OnTouch:
close;
}
-job3_guil03,98,46,0 script #3rdgc_hide01 139,1,4,{
+job3_guil03,98,46,0 script #3rdgc_hide01 HIDDEN_WARP_NPC,1,4,{
end;
OnStop:
killmonster "job3_guil03","#3rdgc_hide01::OnMyMobDead";
@@ -2863,7 +2863,7 @@ OnMyMobDead:
end;
}
-job3_guil03,98,55,0 script #3rdgc_hide02 139,1,4,{
+job3_guil03,98,55,0 script #3rdgc_hide02 HIDDEN_WARP_NPC,1,4,{
end;
OnStop:
killmonster "job3_guil03","#3rdgc_hide02::OnMyMobDead";
@@ -2890,7 +2890,7 @@ OnMyMobDead:
end;
}
-job3_guil03,98,64,0 script #3rdgc_hide03 139,1,4,{
+job3_guil03,98,64,0 script #3rdgc_hide03 HIDDEN_WARP_NPC,1,4,{
end;
OnStop:
killmonster "job3_guil03","#3rdgc_hide03::OnMyMobDead";
@@ -2917,7 +2917,7 @@ OnMyMobDead:
end;
}
-job3_guil03,1,2,0 script #3rdgc_guard 844,{
+job3_guil03,1,2,0 script #3rdgc_guard CLEAR_NPC,{
end;
OnEnable:
initnpctimer;
@@ -2958,7 +2958,7 @@ OnTimer16000:
end;
}
-job3_guil03,1,3,0 script #3rdgc_guardoff 844,{
+job3_guil03,1,3,0 script #3rdgc_guardoff CLEAR_NPC,{
end;
OnDisable:
initnpctimer;
@@ -3033,7 +3033,7 @@ OnEnable:
end;
}
-job3_guil03,93,35,3 script Front Gate Guard#g01 456,5,5,{
+job3_guil03,93,35,3 script Front Gate Guard#g01 4_M_DSTMAN,5,5,{
end;
OnInit:
OnDisable:
@@ -3057,12 +3057,14 @@ OnTouch:
monster "job3_guil03",93,33,"Front Gate Guard",1985,1,"Front Gate Guard#g01::OnMyMobDead";
monster "job3_guil03",93,32,"Guard Dog",1866,1,"Front Gate Guard#g01::OnMyMobDead";
end;
+OnMyMobDead:
+ end;
}
-job3_guil03,93,36,3 duplicate(#3rdgc_guard00) Front Gate Guard#g03 456
-job3_guil03,93,34,3 duplicate(#3rdgc_guard00) Front Gate Guard#g04 456
-job3_guil03,93,33,3 duplicate(#3rdgc_guard00) Front Gate Guard#g05 456
+job3_guil03,93,36,3 duplicate(#3rdgc_guard00) Front Gate Guard#g03 4_M_DSTMAN
+job3_guil03,93,34,3 duplicate(#3rdgc_guard00) Front Gate Guard#g04 4_M_DSTMAN
+job3_guil03,93,33,3 duplicate(#3rdgc_guard00) Front Gate Guard#g05 4_M_DSTMAN
-job3_guil03,133,52,5 script Back Gate Guard#g01 456,5,5,{
+job3_guil03,133,52,5 script Back Gate Guard#g01 4_M_DSTMAN,5,5,{
end;
OnInit:
OnDisable:
@@ -3086,12 +3088,14 @@ OnTouch:
monster "job3_guil03",133,50,"Back Gate Guard",1985,1,"Back Gate Guard#g01::OnMyMobDead";
monster "job3_guil03",133,49,"Guard Dog",1866,1,"Back Gate Guard#g01::OnMyMobDead";
end;
+OnMyMobDead:
+ end;
}
-job3_guil03,133,53,5 duplicate(#3rdgc_guard00) Back Gate Guard#g03 456
-job3_guil03,133,51,5 duplicate(#3rdgc_guard00) Back Gate Guard#g04 456
-job3_guil03,133,50,5 duplicate(#3rdgc_guard00) Back Gate Guard#g05 456
+job3_guil03,133,53,5 duplicate(#3rdgc_guard00) Back Gate Guard#g03 4_M_DSTMAN
+job3_guil03,133,51,5 duplicate(#3rdgc_guard00) Back Gate Guard#g04 4_M_DSTMAN
+job3_guil03,133,50,5 duplicate(#3rdgc_guard00) Back Gate Guard#g05 4_M_DSTMAN
-job3_guil03,117,51,4 script Interior Guard#g01 456,5,5,{
+job3_guil03,117,51,4 script Interior Guard#g01 4_M_DSTMAN,5,5,{
end;
OnInit:
OnDisable:
@@ -3115,12 +3119,14 @@ OnTouch:
monster "job3_guil03",117,49,"Interior Guard",1985,1,"Interior Guard#g01::OnMyMobDead";
monster "job3_guil03",117,48,"Guard Dog",1866,1,"Interior Guard#g01::OnMyMobDead";
end;
+OnMyMobDead:
+ end;
}
-job3_guil03,117,52,4 duplicate(#3rdgc_guard00) Interior Guard#g03 456
-job3_guil03,117,50,4 duplicate(#3rdgc_guard00) Interior Guard#g04 456
-job3_guil03,117,49,4 duplicate(#3rdgc_guard00) Interior Guard#g05 456
+job3_guil03,117,52,4 duplicate(#3rdgc_guard00) Interior Guard#g03 4_M_DSTMAN
+job3_guil03,117,50,4 duplicate(#3rdgc_guard00) Interior Guard#g04 4_M_DSTMAN
+job3_guil03,117,49,4 duplicate(#3rdgc_guard00) Interior Guard#g05 4_M_DSTMAN
-job3_guil03,88,44,4 script Exterior Guard#g01 456,5,5,{
+job3_guil03,88,44,4 script Exterior Guard#g01 4_M_DSTMAN,5,5,{
end;
OnInit:
OnDisable:
@@ -3139,9 +3145,11 @@ OnTouch:
monster "job3_guil03",88,43,"Exterior Guard",1985,1,"Exterior Guard#g01::OnMyMobDead";
monster "job3_guil03",88,45,"Guard Dog",1866,1,"Exterior Guard#g01::OnMyMobDead";
end;
+OnMyMobDead:
+ end;
}
-job3_guil03,88,55,4 script Exterior Guard#g02 456,5,5,{
+job3_guil03,88,55,4 script Exterior Guard#g02 4_M_DSTMAN,5,5,{
end;
OnInit:
OnDisable:
@@ -3160,9 +3168,11 @@ OnTouch:
monster "job3_guil03",88,54,"Exterior Guard",1985,1,"Exterior Guard#g02::OnMyMobDead";
monster "job3_guil03",88,56,"Guard Dog",1866,1,"Exterior Guard#g02::OnMyMobDead";
end;
+OnMyMobDead:
+ end;
}
-job3_guil03,88,64,4 script Exterior Guard#g03 456,5,5,{
+job3_guil03,88,64,4 script Exterior Guard#g03 4_M_DSTMAN,5,5,{
end;
OnInit:
OnDisable:
@@ -3181,9 +3191,11 @@ OnTouch:
monster "job3_guil03",88,63,"Exterior Guard",1985,1,"Exterior Guard#g03::OnMyMobDead";
monster "job3_guil03",88,65,"Guard Dog",1866,1,"Exterior Guard#g03::OnMyMobDead";
end;
+OnMyMobDead:
+ end;
}
-job3_guil03,73,62,4 script Exterior Guard#g04 456,5,5,{
+job3_guil03,73,62,4 script Exterior Guard#g04 4_M_DSTMAN,5,5,{
end;
OnInit:
OnDisable:
@@ -3202,9 +3214,11 @@ OnTouch:
monster "job3_guil03",73,61,"Exterior Guard",1985,1,"Exterior Guard#g04::OnMyMobDead";
monster "job3_guil03",73,63,"Guard Dog",1866,1,"Exterior Guard#g04::OnMyMobDead";
end;
+OnMyMobDead:
+ end;
}
-job3_guil03,77,51,4 script Exterior Guard#g05 456,5,5,{
+job3_guil03,77,51,4 script Exterior Guard#g05 4_M_DSTMAN,5,5,{
end;
OnInit:
OnDisable:
@@ -3223,9 +3237,11 @@ OnTouch:
monster "job3_guil03",77,50,"Exterior Guards",1985,1,"Exterior Guard#g05::OnMyMobDead";
monster "job3_guil03",77,49,"Guard Dog",1866,1,"Exterior Guard#g05::OnMyMobDead";
end;
+OnMyMobDead:
+ end;
}
-job3_guil03,73,34,4 script Exterior Guard#g06 456,5,5,{
+job3_guil03,73,34,4 script Exterior Guard#g06 4_M_DSTMAN,5,5,{
end;
OnInit:
OnDisable:
@@ -3244,9 +3260,11 @@ OnTouch:
monster "job3_guil03",73,33,"Exterior guards",1985,1,"Exterior Guard#g06::OnMyMobDead";
monster "job3_guil03",73,32,"Guard Dog",1866,1,"Exterior Guard#g06::OnMyMobDead";
end;
+OnMyMobDead:
+ end;
}
-job3_guil03,110,27,3 script Guard Dog#dog01 1866,3,1,{
+job3_guil03,110,27,3 script Guard Dog#dog01 HELL_POODLE,3,1,{
end;
OnEnable:
enablenpc "Guard Dog#dog01";
@@ -3265,9 +3283,11 @@ OnTouch:
monster "job3_guil03",104,27,"Dog Trainer's Assistant",1985,1,"Guard Dog#dog01::OnMyMobDead";
monster "job3_guil03",98,27,"Guard",1985,1,"Guard Dog#dog01::OnMyMobDead";
end;
+OnMyMobDead:
+ end;
}
-job3_guil03,119,27,3 script Guard Dog#dog02 1866,3,1,{
+job3_guil03,119,27,3 script Guard Dog#dog02 HELL_POODLE,3,1,{
end;
OnEnable:
enablenpc "Guard Dog#dog02";
@@ -3286,9 +3306,11 @@ OnTouch:
monster "job3_guil03",104,27,"Trainer's Assistant",1985,1,"Guard Dog#dog02::OnMyMobDead";
monster "job3_guil03",131,27,"Guard",1985,1,"Guard Dog#dog02::OnMyMobDead";
end;
+OnMyMobDead:
+ end;
}
-job3_guil03,2,1,0 script #3rdgc_sunchal_nomal 844,{
+job3_guil03,2,1,0 script #3rdgc_sunchal_nomal CLEAR_NPC,{
end;
OnEnable:
monster "job3_guil03",62,35,"Guard",1985,1,"#3rdgc_sunchal_nomal::OnMyMobDead";
@@ -3321,9 +3343,11 @@ OnEnable:
OnReset:
killmonster "job3_guil03","#3rdgc_sunchal_nomal::OnMyMobDead";
end;
+OnMyMobDead:
+ end;
}
-job3_guil03,2,2,0 script #3rdgc_sunchal_kill01 844,{
+job3_guil03,2,2,0 script #3rdgc_sunchal_kill01 CLEAR_NPC,{
end;
OnEnable:
set .@i, atoi(charat(strnpcinfo(0),20));
@@ -3353,10 +3377,10 @@ OnTimer10000:
stopnpctimer;
end;
}
-job3_guil03,2,3,0 duplicate(#3rdgc_sunchal_kill01) #3rdgc_sunchal_kill02 844
-job3_guil03,2,4,0 duplicate(#3rdgc_sunchal_kill01) #3rdgc_sunchal_kill03 844
+job3_guil03,2,3,0 duplicate(#3rdgc_sunchal_kill01) #3rdgc_sunchal_kill02 CLEAR_NPC
+job3_guil03,2,4,0 duplicate(#3rdgc_sunchal_kill01) #3rdgc_sunchal_kill03 CLEAR_NPC
-job3_guil03,64,68,3 script #3rdgc_gojung_kill01 456,7,7,{
+job3_guil03,64,68,3 script #3rdgc_gojung_kill01 4_M_DSTMAN,7,7,{
end;
OnEnable:
enablenpc strnpcinfo(0);
@@ -3391,10 +3415,10 @@ OnTimer10000:
stopnpctimer;
end;
}
-job3_guil03,86,63,1 duplicate(#3rdgc_gojung_kill01) #3rdgc_gojung_kill02 456,8,8
-job3_guil03,83,36,5 duplicate(#3rdgc_gojung_kill01) #3rdgc_gojung_kill03 456,6,6
+job3_guil03,86,63,1 duplicate(#3rdgc_gojung_kill01) #3rdgc_gojung_kill02 4_M_DSTMAN,8,8
+job3_guil03,83,36,5 duplicate(#3rdgc_gojung_kill01) #3rdgc_gojung_kill03 4_M_DSTMAN,6,6
-job3_guil03,88,71,0 script #3rdgc_safezone01 139,1,1,{
+job3_guil03,88,71,0 script #3rdgc_safezone01 HIDDEN_WARP_NPC,1,1,{
end;
OnTouch:
mes "It's a good bush to hide yourself.";
@@ -3416,10 +3440,10 @@ OnTimer:
donpcevent "#3rdgc_guardoff::OnDisable";
end;
}
-job3_guil03,82,45,0 duplicate(#3rdgc_safezone01) #3rdgc_safezone02 139,1,1
-job3_guil03,72,53,0 duplicate(#3rdgc_safezone01) #3rdgc_safezone03 139,1,1
+job3_guil03,82,45,0 duplicate(#3rdgc_safezone01) #3rdgc_safezone02 HIDDEN_WARP_NPC,1,1
+job3_guil03,72,53,0 duplicate(#3rdgc_safezone01) #3rdgc_safezone03 HIDDEN_WARP_NPC,1,1
-job3_guil03,111,51,7 script Priest from Rachel 928,{
+job3_guil03,111,51,7 script Priest from Rachel 4_M_MIDDLE1,{
if (!.on) end;
mes "[Priest from Rachel]";
if (job_3rd_gc == 17) {
@@ -3431,7 +3455,7 @@ job3_guil03,111,51,7 script Priest from Rachel 928,{
next;
mes "[Priest from Rachel]";
mes "Because of you, you ruined everything!";
- setnpcdisplay(strnpcinfo(0),2030);
+ setnpcdisplay(strnpcinfo(0), HIDEN_PRIEST);
next;
mes "[Priest from Rachel]";
mes "You want to destroy us forever!";
@@ -3514,7 +3538,7 @@ OnTimer61500:
end;
}
-job3_guil03,146,70,3 script Renzak#3rdgc16 466,{
+job3_guil03,146,70,3 script Renzak#3rdgc16 4_F_GUILLOTINE,{
mes "[Renzak]";
if (checkquest(7110,HUNTING) == 2) {
mes "My peers will come here to settle this affair.";
@@ -3551,7 +3575,7 @@ OnDisable:
end;
}
-job3_guil01,148,53,3 script Bercasell#3rdgc16 467,{
+job3_guil01,148,53,3 script Bercasell#3rdgc16 4_M_GUILLOTINE,{
if (!checkweight(1201,2)) {
mes "- You can't continue this quest because you have too many items. -";
close;
@@ -3764,7 +3788,7 @@ L_Info:
// Warp Portals
//============================================================
-job3_guil01,80,77,0 script #gate_to_guil05 45,1,1,{
+job3_guil01,80,77,0 script #gate_to_guil05 WARPNPC,1,1,{
end;
OnTouch:
if (job_3rd_gc > 3)
@@ -3777,7 +3801,7 @@ OnTouch:
}
end;
}
-job3_guil01,51,55,0 script #gate_to_guil07 45,1,1,{
+job3_guil01,51,55,0 script #gate_to_guil07 WARPNPC,1,1,{
end;
OnTouch:
if (job_3rd_gc == 4 || job_3rd_gc == 14 || job_3rd_gc > 17)
@@ -3794,7 +3818,7 @@ OnTouch:
}
end;
}
-job3_guil01,51,44,0 script #gate_to_guil09 45,1,1,{
+job3_guil01,51,44,0 script #gate_to_guil09 WARPNPC,1,1,{
end;
OnTouch:
if (job_3rd_gc == 11 || job_3rd_gc == 12)
@@ -3808,12 +3832,11 @@ OnTouch:
end;
}
-/*
-job3_guil02,1,3,0 script #GMhelper01_gc 844,{
+job3_guil02,1,3,0 script #GMhelper01_gc CLEAR_NPC,{
+ callfunc "F_GM_NPC";
mes "What can I do for you?";
next;
- input .@input;
- if (.@input == 1854) {
+ if (callfunc("F_GM_NPC",1854,0) == 1) {
set .@room01, $@3rdgc_room01;
mes "I check the recent situation.";
mes "The battle situation of storage: "+.@room01+"";
@@ -3842,16 +3865,17 @@ job3_guil02,1,3,0 script #GMhelper01_gc 844,{
mes "A management for mansion is in mansion.";
close;
}
+ } else {
+ mes "-_-.";
+ close;
}
- mes "-_-.";
- close;
}
-job3_guil03,1,8,0 script #GMhelper02_gc 844,{
+job3_guil03,1,8,0 script #GMhelper02_gc CLEAR_NPC,{
+ callfunc "F_GM_NPC";
mes "What can I do for you?";
next;
- input .@input;
- if (.@input == 1854) {
+ if (callfunc("F_GM_NPC",1854,0) == 1) {
set .@room02, $@3rdgc_room02;
mes "Check the recent situation.";
mes "The battle situation of the mansion is: "+.@room02+"";
@@ -3912,8 +3936,8 @@ job3_guil03,1,8,0 script #GMhelper02_gc 844,{
mes "The management of storage is in a storage.";
close;
}
+ } else {
+ mes "-_-.";
+ close;
}
- mes "-_-.";
- close;
}
-*/ \ No newline at end of file
diff --git a/npc/re/jobs/3-1/mechanic.txt b/npc/re/jobs/3-1/mechanic.txt
index c38d4608f..e34fccc72 100644
--- a/npc/re/jobs/3-1/mechanic.txt
+++ b/npc/re/jobs/3-1/mechanic.txt
@@ -1,21 +1,19 @@
//===== Hercules Script ======================================
//= Mechanic Job Quest
-//===== By: ==================================================
+//===== By: ==================================================
//= Muad_Dib
-//===== Current Version: =====================================
+//===== Current Version: =====================================
//= 1.2
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Description: =========================================
//= [Official Conversion]
//= Jobchange Quest from Blacksmith / Whitesmith -> Mechanic.
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First Version. [Masao]
//= 1.1 Fixed the Door NPC [JayPee].
//= 1.2 Updated script. [Euphy]
-//============================================================
+//============================================================
-yuno,129,156,3 script Chainheart 923,{
+yuno,129,156,3 script Chainheart 4_M_DOCTOR,{
mes "[Chainheart]";
if (BaseLevel > 99) {
mes "Living as a Mechanic is tough,";
@@ -295,7 +293,7 @@ yuno,129,156,3 script Chainheart 923,{
close;
}
-jupe_cave,37,55,5 script Scholar#Mechanic 883,{
+jupe_cave,37,55,5 script Scholar#Mechanic 4_M_ALCHE_D,{
if (checkweight(1201,1) == 0 || MaxWeight - Weight < 300) {
mes "- Your pack is too heavy. -";
mes "- Lighten your body first -";
@@ -386,7 +384,7 @@ jupe_cave,37,55,5 script Scholar#Mechanic 883,{
close;
}
-jupe_core2,149,273,3 script Ghostfire#1 802,{
+jupe_core2,149,273,3 script Ghostfire#1 4_NFWISP,{
mes "[?]";
if (job__mechanic == 11) {
mes "I've lost my body and all that's left is my spirit in this place.";
@@ -472,7 +470,7 @@ jupe_core2,149,273,3 script Ghostfire#1 802,{
end;
}
-jupe_core2,53,75,3 script Ghostfire#2 802,{
+jupe_core2,53,75,3 script Ghostfire#2 4_NFWISP,{
mes "[?]";
if (job__mechanic > 5) {
mes "Juperos... I...";
@@ -534,7 +532,7 @@ jupe_core2,53,75,3 script Ghostfire#2 802,{
end;
}
-jupe_core2,242,62,3 script Ghostfire#3 802,{
+jupe_core2,242,62,3 script Ghostfire#3 4_NFWISP,{
mes "[?]";
if (job__mechanic > 6) {
mes "I want to know more about the knowledge...";
@@ -575,7 +573,7 @@ jupe_core2,242,62,3 script Ghostfire#3 802,{
end;
}
-jupe_core2,29,150,0 script #Foothold 139,1,1,{
+jupe_core2,29,150,0 script #Foothold HIDDEN_WARP_NPC,1,1,{
OnTouch:
if (job__mechanic == 8) {
percentheal 0,-30;
@@ -614,7 +612,7 @@ OnTouch:
end;
}
-jupe_core2,272,149,0 script #Foothold2 139,1,1,{
+jupe_core2,272,149,0 script #Foothold2 HIDDEN_WARP_NPC,1,1,{
OnTouch:
if (job__mechanic == 9) {
mes "-I had a feeling that power-";
@@ -649,7 +647,7 @@ OnTouch:
end;
}
-jupe_core2,288,142,3 script #Door 844,1,1,{
+jupe_core2,288,142,3 script #Door CLEAR_NPC,1,1,{
end;
OnInit:
OnDisable:
@@ -703,7 +701,7 @@ OnTouch:
end;
}
-jupe_core2,149,34,0 script #Acquiring Knowledge 139,1,0,{
+jupe_core2,149,34,0 script #Acquiring Knowledge HIDDEN_WARP_NPC,1,0,{
OnTouch:
if (job__mechanic == 9) {
mes "-The moment I stepped on-";
@@ -728,6 +726,6 @@ OnTouch:
}
end;
}
-jupe_core2,150,33,0 duplicate(#Acquiring Knowledge) #Acquiring Knowledge2 139,1,0
+jupe_core2,150,33,0 duplicate(#Acquiring Knowledge) #Acquiring Knowledge2 HIDDEN_WARP_NPC,1,0
-jupe_core2,0,0,0,0 monster Dimik 1669,100,0,0,0 \ No newline at end of file
+jupe_core2,0,0,0,0 monster Dimik 1669,100,0,0,0
diff --git a/npc/re/jobs/3-1/ranger.txt b/npc/re/jobs/3-1/ranger.txt
index 314f199d2..0b52df91f 100644
--- a/npc/re/jobs/3-1/ranger.txt
+++ b/npc/re/jobs/3-1/ranger.txt
@@ -1,15 +1,13 @@
//===== Hercules Script ======================================
//= Ranger Job Quest
-//===== By: ==================================================
+//===== By: ==================================================
//= Muad_Dib
-//===== Current Version: =====================================
-//= 1.5
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Current Version: =====================================
+//= 1.6
+//===== Description: =========================================
//= [Official Conversion]
//= Job change Quest from Hunter / Sniper -> Ranger.
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First Version. [Masao]
//= 1.1 Updated SC_STONE duration from 2 Seconds to 2 Minutes
//= and fixed Mercenary check.
@@ -20,9 +18,10 @@
//= 1.3a Little beauty fix, changed break; to next; . [Masao]
//= 1.4 Some optimization. [Euphy]
//= 1.5 Updated script, optimized. [Euphy]
+//= 1.6 Added GM management function. [Euphy]
//============================================================
-tur_dun01,156,36,5 script Survival Instructor#jr01 59,{
+tur_dun01,156,36,5 script Survival Instructor#jr01 1_M_ORIENT01,{
mes "[Survival Instructor, Rescue]";
if (BaseJob == Job_Hunter) {
if (job_ranger01 < 1) {
@@ -305,7 +304,7 @@ tur_dun01,156,36,5 script Survival Instructor#jr01 59,{
close;
}
-tur_dun01,91,169,3 script Test Instructor#jr02 732,{
+tur_dun01,91,169,3 script Test Instructor#jr02 4_M_JOB_HUNTER,{
mes "[Test Instructor, Teardrop]";
if (BaseJob == Job_Hunter) {
if (job_ranger01 < 3) {
@@ -673,7 +672,7 @@ L_Start:
end;
}
-job3_rang01,30,44,3 script Test Waiting Room#jr_03 88,{
+job3_rang01,30,44,3 script Test Waiting Room#jr_03 4_M_ORIENT01,{
mes "[Staff DTS]";
mes "Please wait at the practical test waiting room to start the test process.";
next;
@@ -799,7 +798,7 @@ OnDisable:
end;
}
-job3_rang02,100,95,0 script Test Supervisor#jr_04 139,{
+job3_rang02,100,95,0 script Test Supervisor#jr_04 HIDDEN_WARP_NPC,{
OnInit:
set $@job_rang_point01,0;
disablenpc "Test Supervisor#jr_04";
@@ -842,7 +841,7 @@ OnTimer18000:
end;
}
-job3_rang02,102,95,0 script First Test Timer#jr_05 139,{
+job3_rang02,102,95,0 script First Test Timer#jr_05 HIDDEN_WARP_NPC,{
OnInit:
disablenpc "First Test Timer#jr_05";
end;
@@ -943,7 +942,7 @@ OnTimer157000:
end;
}
-job3_rang02,104,95,0 script CallCorrectAnswer#jr 139,{
+job3_rang02,104,95,0 script CallCorrectAnswer#jr HIDDEN_WARP_NPC,{
OnInit:
OnDisable:
disablenpc "CallCorrectAnswer#jr";
@@ -970,7 +969,7 @@ OnMyMobDead:
end;
}
-job3_rang02,106,95,0 script CallWrongAnswer#jr 139,{
+job3_rang02,106,95,0 script CallWrongAnswer#jr HIDDEN_WARP_NPC,{
OnInit:
OnDisable:
disablenpc "CallWrongAnswer#jr";
@@ -1060,7 +1059,7 @@ OnMyMobDead:
end;
}
-job3_rang02,100,93,0 script Second Test Timer#jr_08 139,{
+job3_rang02,100,93,0 script Second Test Timer#jr_08 HIDDEN_WARP_NPC,{
OnInit:
disablenpc "Second Test Timer#jr_08";
end;
@@ -1167,7 +1166,7 @@ OnTimer223000:
end;
}
-job3_rang02,111,56,3 script Staff Rust#jr_09 89,{
+job3_rang02,111,56,3 script Staff Rust#jr_09 4_M_ORIENT02,{
if (job_ranger01 == 6) {
if (countitem(12258) < 1) {
percentheal 100,0;
@@ -1212,7 +1211,7 @@ OnDisable:
end;
}
-job3_rang02,136,21,0 script Summon Monster#jr_10 139,5,5,{
+job3_rang02,136,21,0 script Summon Monster#jr_10 HIDDEN_WARP_NPC,5,5,{
OnInit:
disablenpc "Summon Monster#jr_10";
end;
@@ -1261,7 +1260,7 @@ OnMyMobDead:
end;
}
-job3_rang02,180,78,3 script Test Supervisor#jr_11 882,1,1,{
+job3_rang02,180,78,3 script Test Supervisor#jr_11 4_F_SITDOWN,1,1,{
mes "[Test Supervisor, Caution]";
mes "Come, come near, nearer, nearer!!";
close;
@@ -1361,7 +1360,7 @@ OnTimer105000:
end;
}
-job3_rang02,104,93,0 script Third Test Timer#jr_12 139,{
+job3_rang02,104,93,0 script Third Test Timer#jr_12 HIDDEN_WARP_NPC,{
OnInit:
disablenpc "Third Test Timer#jr_12";
end;
@@ -1448,7 +1447,7 @@ OnTimer130000:
end;
}
-job3_rang02,251,49,3 script Test Supervisor#jr_13 732,{
+job3_rang02,251,49,3 script Test Supervisor#jr_13 4_M_JOB_HUNTER,{
mes "[Test Supervisor, Freeze]";
if (job_ranger01 == 6) {
if (checkquest(8261) == -1) {
@@ -1603,23 +1602,23 @@ OnTimer10000:
donpcevent strnpcinfo(0)+"::OnDisable";
end;
}
-job3_rang02,246,42,0 duplicate(Egg Bomb#0) Egg Bomb#14 139
-job3_rang02,249,46,0 duplicate(Egg Bomb#0) Egg Bomb#15 139
-job3_rang02,256,43,0 duplicate(Egg Bomb#0) Egg Bomb#16 139
-job3_rang02,243,54,0 duplicate(Egg Bomb#0) Egg Bomb#17 139
-job3_rang02,246,58,0 duplicate(Egg Bomb#0) Egg Bomb#18 139
-job3_rang02,255,56,0 duplicate(Egg Bomb#0) Egg Bomb#19 139
-job3_rang02,260,48,0 duplicate(Egg Bomb#0) Egg Bomb#20 139
-job3_rang02,244,53,0 duplicate(Egg Bomb#0) Egg Bomb#21 139
-job3_rang02,254,50,0 duplicate(Egg Bomb#0) Egg Bomb#22 139
-job3_rang02,241,41,0 duplicate(Egg Bomb#0) Egg Bomb#23 139
-job3_rang02,259,41,0 duplicate(Egg Bomb#0) Egg Bomb#24 139
-job3_rang02,256,52,0 duplicate(Egg Bomb#0) Egg Bomb#25 139
-job3_rang02,259,58,0 duplicate(Egg Bomb#0) Egg Bomb#26 139
-job3_rang02,254,52,0 duplicate(Egg Bomb#0) Egg Bomb#27 139
-job3_rang02,247,42,0 duplicate(Egg Bomb#0) Egg Bomb#28 139
+job3_rang02,246,42,0 duplicate(Egg Bomb#0) Egg Bomb#14 HIDDEN_WARP_NPC
+job3_rang02,249,46,0 duplicate(Egg Bomb#0) Egg Bomb#15 HIDDEN_WARP_NPC
+job3_rang02,256,43,0 duplicate(Egg Bomb#0) Egg Bomb#16 HIDDEN_WARP_NPC
+job3_rang02,243,54,0 duplicate(Egg Bomb#0) Egg Bomb#17 HIDDEN_WARP_NPC
+job3_rang02,246,58,0 duplicate(Egg Bomb#0) Egg Bomb#18 HIDDEN_WARP_NPC
+job3_rang02,255,56,0 duplicate(Egg Bomb#0) Egg Bomb#19 HIDDEN_WARP_NPC
+job3_rang02,260,48,0 duplicate(Egg Bomb#0) Egg Bomb#20 HIDDEN_WARP_NPC
+job3_rang02,244,53,0 duplicate(Egg Bomb#0) Egg Bomb#21 HIDDEN_WARP_NPC
+job3_rang02,254,50,0 duplicate(Egg Bomb#0) Egg Bomb#22 HIDDEN_WARP_NPC
+job3_rang02,241,41,0 duplicate(Egg Bomb#0) Egg Bomb#23 HIDDEN_WARP_NPC
+job3_rang02,259,41,0 duplicate(Egg Bomb#0) Egg Bomb#24 HIDDEN_WARP_NPC
+job3_rang02,256,52,0 duplicate(Egg Bomb#0) Egg Bomb#25 HIDDEN_WARP_NPC
+job3_rang02,259,58,0 duplicate(Egg Bomb#0) Egg Bomb#26 HIDDEN_WARP_NPC
+job3_rang02,254,52,0 duplicate(Egg Bomb#0) Egg Bomb#27 HIDDEN_WARP_NPC
+job3_rang02,247,42,0 duplicate(Egg Bomb#0) Egg Bomb#28 HIDDEN_WARP_NPC
-job3_rang01,90,43,3 script Ranger Master#jr_29 832,{
+job3_rang01,90,43,3 script Ranger Master#jr_29 4_M_REIDIN_KURS,{
mes "[Ranger Master, Neveragain]";
if (job_ranger01 < 6) {
mes "... ...Huh?";
@@ -1757,8 +1756,8 @@ job3_rang01,90,43,3 script Ranger Master#jr_29 832,{
}
}
-/*
-job3_rang01,58,1,0 script Worker#job_ranger 88,{
+job3_rang01,58,1,0 script Worker#job_ranger 4_M_ORIENT01,{
+ callfunc "F_GM_NPC";
switch(select("Enable Waiting Room:Disable Waiting Room:Enable 1st Test:Disable 1st Test:Enable 2nd Test:Disable 2nd Test:Enable 3rd Test:Disable 3rd Test:Cancel")) {
case 1:
mes "Enabled Waiting Room";
@@ -1803,4 +1802,3 @@ job3_rang01,58,1,0 script Worker#job_ranger 88,{
close;
}
}
-*/ \ No newline at end of file
diff --git a/npc/re/jobs/3-1/rune_knight.txt b/npc/re/jobs/3-1/rune_knight.txt
index 1255c355e..ffb395e07 100644
--- a/npc/re/jobs/3-1/rune_knight.txt
+++ b/npc/re/jobs/3-1/rune_knight.txt
@@ -3,7 +3,7 @@
//===== By: ==================================================
//= L0ne_W0lf, Muad_Dib
//===== Current Version: =====================================
-//= 1.4
+//= 1.5
//===== Description: =========================================
//= Job change Quest from Knight / Lord Knight -> Rune Knight.
//===== Additional Comments: =================================
@@ -13,9 +13,11 @@
//= 1.3 Updated script, optimized. [Euphy]
//= 1.3a Added 'npcskill' command. [Euphy]
//= 1.4 Fixed a few bugs. [Euphy]
+//= 1.4a Moved Kafra to main file. [Euphy]
+//= 1.5 Added GM management function. [Euphy]
//============================================================
-prt_in,162,24,3 script Splendid-Looking Knight 470,2,2,{
+prt_in,162,24,3 script Splendid-Looking Knight 4_M_KNIGHT_SILVER,2,2,{
mes "[Rune Knight Manuel]";
if (Class == Job_Rune_Knight || Class == Job_Rune_Knight_T || Class == Job_Baby_Rune) {
mes "You are now a member of our select brethren. I can still remember when I first met you.";
@@ -123,7 +125,7 @@ prt_in,162,24,3 script Splendid-Looking Knight 470,2,2,{
close;
}
-glast_01,44,363,3 script Guide, Jungberg 468,2,2,{
+glast_01,44,363,3 script Guide, Jungberg 4_M_KNIGHT_BLACK,2,2,{
mes "[Guide, Jungberg]";
if (Class == Job_Rune_Knight || Class == Job_Rune_Knight_T || Class == Job_Baby_Rune) {
mes "Oh, you must be "+strcharinfo(0)+".";
@@ -247,7 +249,7 @@ glast_01,44,363,3 script Guide, Jungberg 468,2,2,{
}
}
-gl_knt02,150,55,3 script Rune Knight Staff 83,2,2,{
+gl_knt02,150,55,3 script Rune Knight Staff 4_M_01,2,2,{
mes "[Rune Knight Staff]";
if (Class == Job_Rune_Knight || Class == Job_Rune_Knight_T || Class == Job_Baby_Rune) {
mes "Welcome, "+strcharinfo(0)+". Are you going to the gathering place?";
@@ -294,7 +296,7 @@ gl_knt02,150,55,3 script Rune Knight Staff 83,2,2,{
close;
}
-job3_rune01,80,60,3 script Rune Knight Captain 470,2,2,{
+job3_rune01,80,60,3 script Rune Knight Captain 4_M_KNIGHT_SILVER,2,2,{
if (checkweight(1201,1) == 0 || MaxWeight - Weight < 1000) {
mes "You've got too many things. You cannot proceed anymore. Please try again after losing some weight.";
close;
@@ -572,7 +574,7 @@ L_Warning:
return;
}
-job3_rune01,90,50,3 script Rune Knight Lunarea 469,2,2,{
+job3_rune01,90,50,3 script Rune Knight Lunarea 4_M_KNIGHT_GOLD,2,2,{
if (Class == Job_Rune_Knight || Class == Job_Rune_Knight_T || Class == Job_Baby_Rune) {
mes "She holds up her chin quietly, nods lightly and notices me.";
next;
@@ -686,7 +688,7 @@ L_Test:
close;
}
-job3_rune01,55,50,3 script Rune Knight, Renoa 469,2,2,{
+job3_rune01,55,50,3 script Rune Knight, Renoa 4_M_KNIGHT_GOLD,2,2,{
mes "[Rune Knight, Renoa]";
if (Class == Job_Rune_Knight || Class == Job_Rune_Knight_T || Class == Job_Baby_Rune) {
mes "Congratulations for becoming one of us. Junior Rune Knight, "+strcharinfo(0)+".";
@@ -902,7 +904,7 @@ job3_rune01,55,50,3 script Rune Knight, Renoa 469,2,2,{
close;
}
-job3_rune01,58,51,1 script Rune Furnace 844,{
+job3_rune01,58,51,1 script Rune Furnace CLEAR_NPC,{
if (job_rune_edq < 15) {
mes "[Rune Knight Renoa]";
mes "You don't want to touch that thing. Believe me, I'm not kidding.";
@@ -974,7 +976,7 @@ job3_rune01,58,51,1 script Rune Furnace 844,{
close;
}
-job3_rune01,40,54,1 script Runes and Rune Knights 844,{
+job3_rune01,40,54,1 script Runes and Rune Knights CLEAR_NPC,{
if (job_rune_edq < 8) {
mes "[Rune Knight Renoa]";
mes "Besides touching stuff in this place without permission. Would you be able to understand the contents of the book?";
@@ -1033,7 +1035,7 @@ job3_rune01,40,54,1 script Runes and Rune Knights 844,{
}
}
-job3_rune01,43,44,1 script The Principles of Runes 844,{
+job3_rune01,43,44,1 script The Principles of Runes CLEAR_NPC,{
if (job_rune_edq < 8) {
mes "[Rune Knight Renoa]";
mes "Besides touching stuff in this place without permission. Would you be able to understand the contents of the book?";
@@ -1080,7 +1082,7 @@ job3_rune01,43,44,1 script The Principles of Runes 844,{
}
}
-job3_rune01,50,36,1 script Runes, Make & Use 844,{
+job3_rune01,50,36,1 script Runes, Make & Use CLEAR_NPC,{
if (job_rune_edq < 8) {
mes "[Rune Knight Renoa]";
mes "Besides touching stuff in this place without permission. Would you be able to understand the contents of the book?";
@@ -1179,7 +1181,7 @@ job3_rune01,50,36,1 script Runes, Make & Use 844,{
}
}
-mid_camp,238,250,3 script Rune Knight Sage Guard 468,2,2,{
+mid_camp,238,250,3 script Rune Knight Sage Guard 4_M_KNIGHT_BLACK,2,2,{
mes "[Rune Knight Sage Guard]";
if (Class == Job_Rune_Knight || Class == Job_Rune_Knight_T || Class == Job_Baby_Rune) {
mes "The sage Serpeone is the one who has been with us since the beginning of the Rune Knights.";
@@ -1206,7 +1208,7 @@ mid_camp,238,250,3 script Rune Knight Sage Guard 468,2,2,{
close;
}
-mid_camp,13,138,3 script Dispatched Rune Knight#1 83,2,2,{
+mid_camp,13,138,3 script Dispatched Rune Knight#1 4_M_01,2,2,{
mes "[Dispatched Rune Knight]";
if (Class == Job_Rune_Knight || Class == Job_Rune_Knight_T || Class == Job_Baby_Rune) {
mes "Thanks for your work. We will continue our mission for the Rune Knight testers.";
@@ -1234,9 +1236,9 @@ mid_camp,13,138,3 script Dispatched Rune Knight#1 83,2,2,{
mes "Shh... Our mission is not something to be revealed to the public. Please just move along.";
close;
}
-spl_fild01,361,327,3 duplicate(Dispatched Rune Knight#1) Dispatched Rune Knight#2 83,2,2
+spl_fild01,361,327,3 duplicate(Dispatched Rune Knight#1) Dispatched Rune Knight#2 4_M_01,2,2
-spl_fild02,13,241,0 script #Barricade1 139,10,10,{
+spl_fild02,13,241,0 script #Barricade1 HIDDEN_WARP_NPC,10,10,{
end;
OnTouch:
if (job_rune_edq > 0 && job_rune_edq < 23) {
@@ -1254,7 +1256,7 @@ OnTouch:
end;
}
-mid_camp,235,250,3 script Sage Serpeone 435,2,2,{
+mid_camp,235,250,3 script Sage Serpeone 4_F_FAIRY,2,2,{
mes "[Sage Serpeone]";
if (Class == Job_Rune_Knight || Class == Job_Rune_Knight_T || Class == Job_Baby_Rune) {
mes "Finally you are an honorable Rune Knight. I'm happy to help you.";
@@ -1418,7 +1420,7 @@ mid_camp,235,250,3 script Sage Serpeone 435,2,2,{
close;
}
-job3_rune01,114,50,3 script Rune Knight Velpino 468,{
+job3_rune01,114,50,3 script Rune Knight Velpino 4_M_KNIGHT_BLACK,{
if (Class == Job_Rune_Knight || Class == Job_Rune_Knight_T || Class == Job_Baby_Rune) {
mes "[Rune Knight Velpino]";
mes "You still smell like a fledging. Bring honor to the Rune Knights and raise your power...";
@@ -1552,7 +1554,7 @@ job3_rune01,114,50,3 script Rune Knight Velpino 468,{
close;
}
-job3_rune02,38,40,0 script #RK Test Hidden Portal 1 139,15,15,{
+job3_rune02,38,40,0 script #RK Test Hidden Portal 1 HIDDEN_WARP_NPC,15,15,{
end;
OnEnable:
enablenpc "#RK Test Hidden Portal 1";
@@ -1586,7 +1588,7 @@ OnTouch:
}
}
-job3_rune02,1,1,0 script job_rune_edq#1st_tb 139,{
+job3_rune02,1,1,0 script job_rune_edq#1st_tb HIDDEN_WARP_NPC,{
end;
OnInit:
disablenpc "job_rune_edq#1st_tb";
@@ -1615,7 +1617,7 @@ OnTimer14000:
end;
}
-job3_rune02,1,2,0 script job_rune_edq#1st_tc 139,{
+job3_rune02,1,2,0 script job_rune_edq#1st_tc HIDDEN_WARP_NPC,{
end;
OnInit:
disablenpc "job_rune_edq#1st_tc";
@@ -1651,7 +1653,7 @@ OnTimer305000:
end;
}
-job3_rune02,3,10,0 script job_rune_edq#1st_tcmc 139,{
+job3_rune02,3,10,0 script job_rune_edq#1st_tcmc HIDDEN_WARP_NPC,{
end;
OnInit:
disablenpc "job_rune_edq#1st_tcmc";
@@ -1704,7 +1706,7 @@ OnMyMobDead:
end;
}
-job3_rune02,3,11,0 script job_rune_edq#1st_tcmc2 139,{
+job3_rune02,3,11,0 script job_rune_edq#1st_tcmc2 HIDDEN_WARP_NPC,{
end;
OnInit:
disablenpc "job_rune_edq#1st_tcmc2";
@@ -1754,7 +1756,7 @@ OnMyMobDead:
end;
}
-job3_rune02,1,10,0 script job_rune_edq#1st_tcnc 139,{
+job3_rune02,1,10,0 script job_rune_edq#1st_tcnc HIDDEN_WARP_NPC,{
end;
OnInit:
disablenpc "job_rune_edq#1st_tcnc";
@@ -1800,7 +1802,7 @@ OnTimer60000:
end;
}
-job3_rune02,34,46,5 script Captain Tigris#jrt1 470,2,2,{
+job3_rune02,34,46,5 script Captain Tigris#jrt1 4_M_KNIGHT_SILVER,2,2,{
if (job_rune_edq != 4 || $@job_rune_test2 != 0) {
donpcevent "job_rune_edq#1st_tcnc::OnUse";
end;
@@ -1846,7 +1848,7 @@ OnTimer5000:
end;
}
-job3_rune02,43,46,3 script Rune Knight Lunarea#jrt1 469,2,2,{
+job3_rune02,43,46,3 script Rune Knight Lunarea#jrt1 4_M_KNIGHT_GOLD,2,2,{
if (job_rune_edq != 4 || $@job_rune_test2 != 0) {
donpcevent "job_rune_edq#1st_tcnc::OnUse";
end;
@@ -1891,7 +1893,7 @@ OnTimer5000:
end;
}
-job3_rune02,43,34,1 script Rune Knight Renoa#jrt1 469,2,2,{
+job3_rune02,43,34,1 script Rune Knight Renoa#jrt1 4_M_KNIGHT_GOLD,2,2,{
if (job_rune_edq != 4 || $@job_rune_test2 != 0) {
donpcevent "job_rune_edq#1st_tcnc::OnUse";
end;
@@ -1937,7 +1939,7 @@ OnTimer5000:
end;
}
-job3_rune02,34,34,7 script Rune Knight Velpino#jrt1 468,2,2,{
+job3_rune02,34,34,7 script Rune Knight Velpino#jrt1 4_M_KNIGHT_BLACK,2,2,{
if (job_rune_edq != 4 || $@job_rune_test2 != 0) {
donpcevent "job_rune_edq#1st_tcnc::OnUse";
end;
@@ -1982,7 +1984,7 @@ OnTimer5000:
end;
}
-job3_rune02,2,1,0 script job_rune_edq#3rd_tb 139,{
+job3_rune02,2,1,0 script job_rune_edq#3rd_tb HIDDEN_WARP_NPC,{
end;
OnInit:
disablenpc "job_rune_edq#3rd_tb";
@@ -2011,7 +2013,7 @@ OnTimer14000:
end;
}
-job3_rune02,2,2,0 script job_rune_edq#3rd_tc 139,{
+job3_rune02,2,2,0 script job_rune_edq#3rd_tc HIDDEN_WARP_NPC,{
end;
OnInit:
disablenpc "job_rune_edq#3rd_tc";
@@ -2048,7 +2050,7 @@ OnTimer482000:
end;
}
-job3_rune02,2,3,0 script job_rune_edq#3rd_tc1 139,{
+job3_rune02,2,3,0 script job_rune_edq#3rd_tc1 HIDDEN_WARP_NPC,{
end;
OnInit:
disablenpc "job_rune_edq#3rd_tc1";
@@ -2072,7 +2074,7 @@ OnMyMobDead:
end;
}
-job3_rune02,2,4,0 script job_rune_edq#3rd_tc2 139,{
+job3_rune02,2,4,0 script job_rune_edq#3rd_tc2 HIDDEN_WARP_NPC,{
end;
OnInit:
disablenpc "job_rune_edq#3rd_tc2";
@@ -2096,7 +2098,7 @@ OnMyMobDead:
end;
}
-job3_rune02,2,5,0 script job_rune_edq#3rd_tc3 139,{
+job3_rune02,2,5,0 script job_rune_edq#3rd_tc3 HIDDEN_WARP_NPC,{
end;
OnInit:
disablenpc "job_rune_edq#3rd_tc3";
@@ -2132,19 +2134,11 @@ OnMyMobDead:
end;
}
-job3_rune01,92,62,3 script Kafra Employee::kaf_rune 114,{
- cutin "kafra_04",2;
- callfunc "F_KafSet";
- callfunc "F_Kafra",0,9,2,80,700;
- callfunc "F_KafEnd",0,0;
-}
-
-/*
-sec_in02,34,167,3 script R.Knight Job Manager 470,1,1,{
+sec_in02,34,167,3 script R.Knight Job Manager 4_M_KNIGHT_SILVER,1,1,{
+ callfunc "F_GM_NPC";
mes "Enter the Password.";
next;
- input .@inputstr$;
- if (.@inputstr$ == "1854") {
+ if (callfunc("F_GM_NPC","1854",1) == 1) {
mes "Rune Knight Job Change Managing Module Start";
next;
switch(select("GlobalVar check:GlobalVar Oneshot Modification")) {
@@ -2160,5 +2154,4 @@ sec_in02,34,167,3 script R.Knight Job Manager 470,1,1,{
}
close;
}
-job3_rune01,1,1,3 duplicate(R.Knight Job Manager) #renshucheck 844
-*/
+job3_rune01,1,1,3 duplicate(R.Knight Job Manager) #renshucheck CLEAR_NPC
diff --git a/npc/re/jobs/3-1/warlock.txt b/npc/re/jobs/3-1/warlock.txt
index 9894eae4b..671340a03 100644
--- a/npc/re/jobs/3-1/warlock.txt
+++ b/npc/re/jobs/3-1/warlock.txt
@@ -1,15 +1,13 @@
//===== Hercules Script ======================================
//= Warlock Job Quest
-//===== By: ==================================================
+//===== By: ==================================================
//= Muad_Dib, Gepard & L0ne_W0lf
-//===== Current Version: =====================================
-//= 1.3a
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Current Version: =====================================
+//= 1.4
+//===== Description: =========================================
//= [Official Conversion]
//= Job change Quest from Wizard / High Wizard -> Warlock.
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First version. [Masao]
//= 1.1 Fixed some conversion mistakes, replaced numbers with
//= constants, added item names in comments.
@@ -18,6 +16,8 @@
//= 1.2a Fixed a typo. [Euphy]
//= 1.3 Updated script, optimized. [Euphy]
//= 1.3a Added temporary coordinate fix #distorted_space_1-1. [Euphy]
+//= 1.3b Added official coordinates. [Euphy]
+//= 1.4 Added GM management function. [Euphy]
//============================================================
- script #distorted_space_ -1,{
@@ -66,11 +66,9 @@ OnTouch:
}
end;
}
-morocc,103,144,0 duplicate(#distorted_space_) #distorted_space_1 139,1,1
-splendide,141,284,0 duplicate(#distorted_space_) #distorted_space_2 139,1,1
-
-// This is a temporary fix until new official coordinates are found.
-morocc,98,144,0 duplicate(#distorted_space_) #distorted_space_1-1 139,1,1
+//morocc,103,144,0 duplicate(#distorted_space_) #distorted_space_1 HIDDEN_WARP_NPC,1,1
+morocc,95,132,0 duplicate(#distorted_space_) #distorted_space_1 HIDDEN_WARP_NPC,1,1
+splendide,141,284,0 duplicate(#distorted_space_) #distorted_space_2 HIDDEN_WARP_NPC,1,1
function script F_Warlock {
mes "[Assistant]";
@@ -205,7 +203,7 @@ function script F_Warlock {
end;
}
-spl_in02,77,107,5 script Assistant#Warlock1 446,{
+spl_in02,77,107,5 script Assistant#Warlock1 4_M_FAIRYKID5,{
if (job_wl == 0) {
callfunc "F_Warlock";
end;
@@ -323,7 +321,7 @@ L_Quest:
return;
}
-spl_in02,60,231,5 script Yoop#Warlock 446,{
+spl_in02,60,231,5 script Yoop#Warlock 4_M_FAIRYKID5,{
mes "[Yoop]";
if (job_wl < 4) {
mes "Who are you?";
@@ -452,7 +450,7 @@ spl_in02,60,231,5 script Yoop#Warlock 446,{
}
}
-spl_in02,84,103,3 script Assistant#Warlock2 439,{
+spl_in02,84,103,3 script Assistant#Warlock2 4_F_FAIRYKID4,{
if (job_wl == 0) {
callfunc "F_Warlock";
end;
@@ -543,7 +541,7 @@ spl_in02,84,103,3 script Assistant#Warlock2 439,{
}
}
-spl_in02,78,110,5 script Assistant#Warlock3 437,{
+spl_in02,78,110,5 script Assistant#Warlock3 4_F_FAIRYKID2,{
if (job_wl == 0) {
callfunc "F_Warlock";
end;
@@ -570,7 +568,7 @@ spl_in02,78,110,5 script Assistant#Warlock3 437,{
}
}
-spl_in02,80,108,5 script Guild Master#Warlock 465,{
+spl_in02,80,108,5 script Guild Master#Warlock 4_F_FAIRY1,{
if (job_wl == 0) {
callfunc "F_Warlock";
end;
@@ -712,14 +710,14 @@ spl_in02,80,108,5 script Guild Master#Warlock 465,{
}
}
-job3_war01,22,22,7 script Yoop#WRR 439,{
+job3_war01,22,22,7 script Yoop#WRR 4_F_FAIRYKID4,{
mes "[Yoop]";
mes "If you ask Ebein to be sent to the magical room, he would send you there.";
mes "Wait in the queue to enter the Chamber of Magic.";
close;
}
-job3_war01,29,25,0 script Ebein#WRR 437,{
+job3_war01,29,25,0 script Ebein#WRR 4_F_FAIRYKID2,{
mes "[Ebein]";
mes "Would you like to take a test?";
mes "If you stand by in the waiting room, you'll be able to go into the Chamber of Magic.";
@@ -744,7 +742,7 @@ job3_war01,29,25,0 script Ebein#WRR 437,{
}
}
-job3_war01,29,25,5 script The chamber of magic#1 437,{
+job3_war01,29,25,5 script The chamber of magic#1 4_F_FAIRYKID2,{
end;
OnInit:
disablenpc "The chamber of magic#1";
@@ -1056,8 +1054,8 @@ OnTimer6000:
end;
}
-/*
-job3_war01,1,2,0 script Button Girl 66,{
+job3_war01,1,2,0 script Button Girl#wl 1_F_01,{
+ callfunc "F_GM_NPC";
switch(select("Open Arena:Close Arena:Open the Chamber of Magic:Close the Chamber of Magic:Hollow Stone On:Hollow Stone Off:Cancel")) {
case 1:
mes "Opening the Arena.";
@@ -1093,7 +1091,6 @@ job3_war01,1,2,0 script Button Girl 66,{
close;
}
}
-*/
spl_fild02,0,0,0,0 monster Bradium Golem 2049,20,5000,0,0
-spl_fild02,0,0,0,0 monster Naga 2047,20,5000,0,0 \ No newline at end of file
+spl_fild02,0,0,0,0 monster Naga 2047,20,5000,0,0
diff --git a/npc/re/jobs/3-2/genetic.txt b/npc/re/jobs/3-2/genetic.txt
index bfa7d422c..92b015bf4 100644
--- a/npc/re/jobs/3-2/genetic.txt
+++ b/npc/re/jobs/3-2/genetic.txt
@@ -4,8 +4,6 @@
//= Muad_Dib, Aeomin
//===== Current Version: =====================================
//= 1.3a
-//===== Compatible With: =====================================
-//= Hercules
//===== Description: =========================================
//= [Official Conversion]
//= Job change Quest from Alchemist / Creator -> Genetic.
@@ -17,7 +15,7 @@
//= 1.3a Moved warps to separate file. [Euphy]
//============================================================
-alde_alche,35,186,5 script Alchemist Union Member 805,{
+alde_alche,35,186,5 script Alchemist Union Member 1_M_SIGNALCHE,{
mes "[Alchemist Union Member]";
if (BaseLevel > 98 && JobLevel > 49){
if (BaseJob == Job_Alchemist) {
@@ -85,7 +83,7 @@ alde_alche,35,186,5 script Alchemist Union Member 805,{
close;
}
-job3_gen01,25,58,3 script Devries#gen 865,{
+job3_gen01,25,58,3 script Devries#gen 4_LGTSCIENCE,{
if (SkillPoint != 0) {
mes "- You still have some unused skill points. -";
close;
@@ -575,7 +573,7 @@ job3_gen01,25,58,3 script Devries#gen 865,{
close;
}
-job3_gen01,83,72,3 script Delivery Box#generic 111,{
+job3_gen01,83,72,3 script Delivery Box#generic HIDDEN_NPC,{
mes "- There's a big box. -";
if (job_gen == 2) {
next;
@@ -604,7 +602,7 @@ job3_gen01,83,72,3 script Delivery Box#generic 111,{
close;
}
-job3_gen01,12,56,3 script Plant Guide#generic 111,{
+job3_gen01,12,56,3 script Plant Guide#generic HIDDEN_NPC,{
mes "<The Easiest Alchemy in the World>";
mes "Written by Bob Ross.";
next;
@@ -668,32 +666,32 @@ function script Genetic_Job_Plant {
close;
}
-job3_gen01,36,55,3 script Bigibigi Grass#gen 844,{
+job3_gen01,36,55,3 script Bigibigi Grass#gen CLEAR_NPC,{
callfunc "Genetic_Job_Plant",2209,"Bigibigi Grass","The size is quite big to be normal grass so it's called Bigibigi Grass.";
end;
}
-job3_gen01,36,45,3 script Muka Tree#gen 844,{
+job3_gen01,36,45,3 script Muka Tree#gen CLEAR_NPC,{
callfunc "Genetic_Job_Plant",2210,"Muka Tree","This is the Muka Tree which protects its delicate inside with sharp thorns.",1;
end;
}
-job3_gen01,42,55,3 script Bogi Vine#gen 844,{
+job3_gen01,42,55,3 script Bogi Vine#gen CLEAR_NPC,{
callfunc "Genetic_Job_Plant",2211,"Bogi Vine","This is a Bogi Vine which has a very fast growth speed.",1;
end;
}
-job3_gen01,30,58,3 script Aolatura#gen 844,{
+job3_gen01,30,58,3 script Aolatura#gen CLEAR_NPC,{
callfunc "Genetic_Job_Plant",2212,"Aolatura","This is known to blossom then thousand flowers as it only blooms once per lifetime.";
end;
}
-job3_gen01,30,63,3 script Congra#gen 844,{
+job3_gen01,30,63,3 script Congra#gen CLEAR_NPC,{
callfunc "Genetic_Job_Plant",2213,"Congra","It's a plant that has a big and solid stem with enormous leaves.";
end;
}
-job3_gen01,32,38,3 script Sticky Grass#gen 844,{
+job3_gen01,32,38,3 script Sticky Grass#gen CLEAR_NPC,{
callfunc "Genetic_Job_Plant",2214,"Sticky Grass","I may not know the name but it's sticky and can stick to just about anything.";
end;
}
-job3_gen01,7,50,3 script Testing Table#gen 844,{
+job3_gen01,7,50,3 script Testing Table#gen CLEAR_NPC,{
if (job_gen == 7) {
mes "- This is a testing table with a lot of equipment. I think I can study the combinations here with plants. -";
next;
@@ -773,11 +771,11 @@ job3_gen01,7,50,3 script Testing Table#gen 844,{
close;
}
-job3_gen01,21,67,3 script Super Cultivator#gen 844,{
+job3_gen01,21,67,3 script Super Cultivator#gen CLEAR_NPC,{
end;
}
-job3_gen01,91,48,3 script Demi Calberine#gen 982,{
+job3_gen01,91,48,3 script Demi Calberine#gen 4_F_SCIENCE,{
mes "[Demi Calberine]";
if (job_gen < 62) {
mes "Hmm~ Where'd that bolt go?";
@@ -969,15 +967,15 @@ OnTimer7000:
stopnpctimer;
end;
}
-job3_gen01,84,45,3 duplicate(Scattered Stuff#gen) Scattered Stuff#gen1 111
-job3_gen01,77,41,3 duplicate(Scattered Stuff#gen) Scattered Stuff#gen2 111
-job3_gen01,78,57,3 duplicate(Scattered Stuff#gen) Scattered Stuff#gen3 111
-job3_gen01,89,59,3 duplicate(Scattered Stuff#gen) Scattered Stuff#gen4 111
-job3_gen01,90,51,3 duplicate(Scattered Stuff#gen) Scattered Stuff#gen5 111
-job3_gen01,83,27,3 duplicate(Scattered Stuff#gen) Scattered Stuff#gen6 111
-job3_gen01,74,45,3 duplicate(Scattered Stuff#gen) Scattered Stuff#gen7 111
+job3_gen01,84,45,3 duplicate(Scattered Stuff#gen) Scattered Stuff#gen1 HIDDEN_NPC
+job3_gen01,77,41,3 duplicate(Scattered Stuff#gen) Scattered Stuff#gen2 HIDDEN_NPC
+job3_gen01,78,57,3 duplicate(Scattered Stuff#gen) Scattered Stuff#gen3 HIDDEN_NPC
+job3_gen01,89,59,3 duplicate(Scattered Stuff#gen) Scattered Stuff#gen4 HIDDEN_NPC
+job3_gen01,90,51,3 duplicate(Scattered Stuff#gen) Scattered Stuff#gen5 HIDDEN_NPC
+job3_gen01,83,27,3 duplicate(Scattered Stuff#gen) Scattered Stuff#gen6 HIDDEN_NPC
+job3_gen01,74,45,3 duplicate(Scattered Stuff#gen) Scattered Stuff#gen7 HIDDEN_NPC
-job3_gen01,18,39,3 script Warning#gen 837,{
+job3_gen01,18,39,3 script Warning#gen 2_BULLETIN_BOARD,{
mes "= Warning =";
mes "If you bully my spores, I'll scream!!!";
if (job_gen < 75) close;
@@ -994,30 +992,30 @@ job3_gen01,18,39,3 script Warning#gen 837,{
}
}
-job3_gen01,80,12,1 script Stacked Magazines#gen 111,{
+job3_gen01,80,12,1 script Stacked Magazines#gen HIDDEN_NPC,{
mes "- 'Monthly Bang!' magazines are piled up in disorder. -";
close;
}
-job3_gen01,83,20,1 script Bed#gen 111,{
+job3_gen01,83,20,1 script Bed#gen HIDDEN_NPC,{
mes "- A checker patterned blanket set which looks like it was picked carefully is too good for this dirty bed. -";
close;
}
-job3_gen01,85,25,1 script Opened Book#gen 111,{
+job3_gen01,85,25,1 script Opened Book#gen HIDDEN_NPC,{
mes "< Do you want to have my pretty room? Do you have enough zeny? Is there enough room? Run to the Lighthalzen Department Store right away and get the most high-end wall papers and interior accessories! >";
next;
mes "< Luxurious candles that'll lighten up your room, a huge golden mirror that every lady owns, you cannot miss any of them! >";
close;
}
-job3_gen01,81,81,0 script #dbroom 139,2,2,{
+job3_gen01,81,81,0 script #dbroom HIDDEN_WARP_NPC,2,2,{
OnTouch:
mes "- It's a room that looks like a storehouse, thanks to so many parcels piled up in the room. -";
close;
}
-job3_gen01,24,32,0 script The gaze of Devries 139,2,2,{
+job3_gen01,24,32,0 script The gaze of Devries HIDDEN_WARP_NPC,2,2,{
OnTouch:
if (checkquest(2223,HUNTING) == 2) {
mapannounce "job3_gen01","Devries: Whoa? Was there a lost kitty in the spore pen?",bc_map,"0x99CC00"; //FW_NORMAL 12 0 0
@@ -1044,4 +1042,4 @@ job3_gen01,23,33,0,0 monster Poison Spore 1428,1,7000,0,0
job3_gen01,21,30,0,0 monster Poison Spore 1428,1,7000,0,0
job3_gen01,26,34,0,0 monster Poison Spore 1428,1,7000,0,0
job3_gen01,23,33,0,0 monster Poison Spore 1428,1,7000,0,0
-job3_gen01,21,30,0,0 monster Poison Spore 1428,1,7000,0,0 \ No newline at end of file
+job3_gen01,21,30,0,0 monster Poison Spore 1428,1,7000,0,0
diff --git a/npc/re/jobs/3-2/minstrel.txt b/npc/re/jobs/3-2/minstrel.txt
index a9d584526..1435b23fd 100644
--- a/npc/re/jobs/3-2/minstrel.txt
+++ b/npc/re/jobs/3-2/minstrel.txt
@@ -1,22 +1,20 @@
//===== Hercules Script ======================================
//= Minstrel Job Quest
-//===== By: ==================================================
+//===== By: ==================================================
//= Muad_Dib
-//===== Current Version: =====================================
+//===== Current Version: =====================================
//= 1.3
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Description: =========================================
//= [Official Conversion]
//= Job change Quest from Bard / Clown -> Minstrel.
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First Version. [Masao]
//= 1.1 Fix the checking of requirements before job change to Minstel [JayPee]
//= 1.2 Optimized. [Euphy]
//= 1.3 Updated script. [Euphy]
//============================================================
-alberta,196,133,4 script Bard#job_min 486,{
+alberta,196,133,4 script Bard#job_min 4_M_BARD,{
if (job_min == 0) {
if (BaseJob == Job_Bard && BaseLevel > 98 && JobLevel > 49) {
mes "[Bard]";
@@ -239,7 +237,7 @@ alberta,196,133,4 script Bard#job_min 486,{
close;
}
-prontera,141,97,4 script Warmhearted woman 701,{
+prontera,141,97,4 script Warmhearted woman 4_F_GODEMOM,{
mes "[Warmhearted woman]";
if (job_min == 1) {
mes "Maestro Song?";
@@ -270,7 +268,7 @@ prontera,141,97,4 script Warmhearted woman 701,{
close;
}
-prontera,140,331,6 script Glasses-wearing Man 883,{
+prontera,140,331,6 script Glasses-wearing Man 4_M_ALCHE_D,{
mes "[Glasses-wearing Man]";
if (job_min == 2) {
mes "You mean Maestro Song?";
@@ -303,7 +301,7 @@ prontera,140,331,6 script Glasses-wearing Man 883,{
close;
}
-prontera,146,218,4 script Woman#job_min 90,{
+prontera,146,218,4 script Woman#job_min 4_F_01,{
if (job_min == 3) {
mes "[Woman]";
mes "Do you know who Maestro Song is?";
@@ -342,7 +340,7 @@ prontera,146,218,4 script Woman#job_min 90,{
close;
}
-airplane,222,67,6 script Karian#job_min1 486,{
+airplane,222,67,6 script Karian#job_min1 4_M_BARD,{
mes "[Karian]";
mes "Yup!!!!!!!!!!!!!!!!!!";
next;
@@ -362,7 +360,7 @@ airplane,222,67,6 script Karian#job_min1 486,{
close;
}
-hu_in01,267,5,3 script Karian#job_min2 486,{
+hu_in01,267,5,3 script Karian#job_min2 4_M_BARD,{
mes "[Karian]";
if (job_min == 6) {
mes "Eeeeh it's so painful.";
@@ -487,7 +485,7 @@ hu_in01,267,5,3 script Karian#job_min2 486,{
close;
}
-hu_in01,361,103,3 script Tone-deaf person 995,{
+hu_in01,361,103,3 script Tone-deaf person 4_M_CASMAN1,{
if (job_min == 7) {
mes "[Tone-deaf person]";
mes "Lala~ lala~";
@@ -707,7 +705,7 @@ hu_in01,361,103,3 script Tone-deaf person 995,{
close;
}
-tha_scene01,140,200,0 script #min_receipt 139,3,3,{
+tha_scene01,140,200,0 script #min_receipt HIDDEN_WARP_NPC,3,3,{
OnTouch:
if (job_min == 10 || (job_min == 11 && countitem(6271) == 0)) {
mes "-There is a piece of paper on the ground.-";
@@ -749,7 +747,7 @@ OnTouch:
end;
}
-tha_scene01,139,204,6 script Karian#cmd1 486,{
+tha_scene01,139,204,6 script Karian#cmd1 4_M_BARD,{
end;
OnInit:
disablenpc "Karian#cmd1";
@@ -768,7 +766,7 @@ OnTimer15000:
end;
}
-ve_fild07,129,132,5 script Karian#cmd5 486,{
+ve_fild07,129,132,5 script Karian#cmd5 4_M_BARD,{
end;
OnInit:
disablenpc "Karian#cmd5";
@@ -787,7 +785,7 @@ OnTimer30000:
end;
}
-prontera,155,49,4 script Karian#cmd9 486,{
+prontera,155,49,4 script Karian#cmd9 4_M_BARD,{
end;
OnInit:
disablenpc "Karian#cmd9";
@@ -806,7 +804,7 @@ OnTimer300000:
end;
}
-yuno,146,168,0 script Karian#cmd2 486,{
+yuno,146,168,0 script Karian#cmd2 4_M_BARD,{
end;
OnInit:
disablenpc strnpcinfo(0);
@@ -824,13 +822,13 @@ OnTimer100000:
stopnpctimer;
end;
}
-lighthalzen,160,124,6 duplicate(Karian#cmd2) Karian#cmd3 486
-ra_in01,357,128,0 duplicate(Karian#cmd2) Karian#cmd4 486
-comodo,184,109,0 duplicate(Karian#cmd2) Karian#cmd6 486
-moc_fild16,204,231,0 duplicate(Karian#cmd2) Karian#cmd7 486
-aldebaran,142,128,2 duplicate(Karian#cmd2) Karian#cmd8 486
+lighthalzen,160,124,6 duplicate(Karian#cmd2) Karian#cmd3 4_M_BARD
+ra_in01,357,128,0 duplicate(Karian#cmd2) Karian#cmd4 4_M_BARD
+comodo,184,109,0 duplicate(Karian#cmd2) Karian#cmd6 4_M_BARD
+moc_fild16,204,231,0 duplicate(Karian#cmd2) Karian#cmd7 4_M_BARD
+aldebaran,142,128,2 duplicate(Karian#cmd2) Karian#cmd8 4_M_BARD
-yuno,143,170,6 script Mr. Click#job_min 748,{
+yuno,143,170,6 script Mr. Click#job_min 4_M_ALCHE_A,{
mes "[Mr. Click]";
if (job_min == 11) {
mes "Hi~ welcome~";
@@ -954,7 +952,7 @@ yuno,143,170,6 script Mr. Click#job_min 748,{
close;
}
-lighthalzen,155,119,3 script Little girl#job_min 891,3,3,{
+lighthalzen,155,119,3 script Little girl#job_min 4_F_HUGIRL,3,3,{
OnTouch:
if (checkquest(11145,HUNTING) == 2) {
if (job_min == 12) {
@@ -1084,7 +1082,7 @@ OnTouch:
close;
}
-ice_dun01,157,15,0 script #Minsicecave1 139,2,2,{
+ice_dun01,157,15,0 script #Minsicecave1 HIDDEN_WARP_NPC,2,2,{
OnTouch:
if (job_min == 13) {
mes "-A long time ago-";
@@ -1095,7 +1093,7 @@ OnTouch:
end;
}
-ice_dun01,157,23,0 script #Minsicecave2 139,2,2,{
+ice_dun01,157,23,0 script #Minsicecave2 HIDDEN_WARP_NPC,2,2,{
OnTouch:
if (job_min == 13) {
mes "-The giant born to ice-";
@@ -1106,7 +1104,7 @@ OnTouch:
end;
}
-ice_dun01,141,41,0 script #Minsicecave3 139,2,2,{
+ice_dun01,141,41,0 script #Minsicecave3 HIDDEN_WARP_NPC,2,2,{
OnTouch:
if (job_min == 13) {
mes "-died-";
@@ -1117,7 +1115,7 @@ OnTouch:
end;
}
-ice_dun01,120,35,0 script #Minsicecave4 139,2,2,{
+ice_dun01,120,35,0 script #Minsicecave4 HIDDEN_WARP_NPC,2,2,{
OnTouch:
if (job_min == 13) {
mes "-His body became the ground-";
@@ -1128,7 +1126,7 @@ OnTouch:
end;
}
-ice_dun01,104,30,0 script #Minsicecave5 139,2,2,{
+ice_dun01,104,30,0 script #Minsicecave5 HIDDEN_WARP_NPC,2,2,{
OnTouch:
if (job_min == 13) {
mes "-His bones became a mountain-";
@@ -1139,7 +1137,7 @@ OnTouch:
end;
}
-ice_dun01,86,23,0 script #Minsicecave6 139,2,2,{
+ice_dun01,86,23,0 script #Minsicecave6 HIDDEN_WARP_NPC,2,2,{
OnTouch:
if (job_min == 13) {
mes "-His skin became soil-";
@@ -1150,7 +1148,7 @@ OnTouch:
end;
}
-ice_dun01,75,19,0 script #Minsicecave7 139,2,2,{
+ice_dun01,75,19,0 script #Minsicecave7 HIDDEN_WARP_NPC,2,2,{
OnTouch:
if (job_min == 13) {
mes "-His blood became a river-";
@@ -1161,7 +1159,7 @@ OnTouch:
end;
}
-ice_dun01,56,12,0 script #Minsicecave8 139,2,2,{
+ice_dun01,56,12,0 script #Minsicecave8 HIDDEN_WARP_NPC,2,2,{
OnTouch:
if (job_min == 13) {
mes "-His hair became a plant-";
@@ -1172,7 +1170,7 @@ OnTouch:
end;
}
-ice_dun01,29,26,0 script #Minsicecave9 139,2,2,{
+ice_dun01,29,26,0 script #Minsicecave9 HIDDEN_WARP_NPC,2,2,{
OnTouch:
if (job_min == 13) {
mes "-His head became the sky-";
@@ -1183,7 +1181,7 @@ OnTouch:
end;
}
-ice_dun01,25,46,0 script #Minsicecave10 139,2,2,{
+ice_dun01,25,46,0 script #Minsicecave10 HIDDEN_WARP_NPC,2,2,{
OnTouch:
if (job_min == 13) {
mes "-His tears from his-";
@@ -1194,7 +1192,7 @@ OnTouch:
end;
}
-ice_dun01,20,66,0 script #Minsicecave11 139,2,2,{
+ice_dun01,20,66,0 script #Minsicecave11 HIDDEN_WARP_NPC,2,2,{
OnTouch:
if (job_min == 13) {
mes "-eyes became dew-";
@@ -1205,7 +1203,7 @@ OnTouch:
end;
}
-ice_dun01,22,85,0 script #Minsicecave12 139,2,2,{
+ice_dun01,22,85,0 script #Minsicecave12 HIDDEN_WARP_NPC,2,2,{
OnTouch:
if (job_min == 13) {
mes "-on the leaves-";
@@ -1219,7 +1217,7 @@ OnTouch:
end;
}
-ra_in01,361,129,0 script #jmRachelHotel 139,2,2,{
+ra_in01,361,129,0 script #jmRachelHotel HIDDEN_WARP_NPC,2,2,{
OnTouch:
if (job_min == 14) {
mes "[Old Woman]";
@@ -1234,7 +1232,7 @@ OnTouch:
end;
}
-ra_in01,358,130,4 script Old Woman#job_min 979,{
+ra_in01,358,130,4 script Old Woman#job_min 4_F_CAVE1,{
mes "[Old Woman]";
if (job_min == 14) {
mes "Huu!!";
@@ -1331,7 +1329,7 @@ ra_in01,358,130,4 script Old Woman#job_min 979,{
close;
}
-ve_fild07,131,132,5 script =Notice=#job_min 837,{
+ve_fild07,131,132,5 script =Notice=#job_min 2_BULLETIN_BOARD,{
function Choice;
if (job_min == 16) {
mes "===Notice===";
@@ -1470,7 +1468,7 @@ function Choice;
}
}
-comodo,184,108,0 script #jmComodo Almost Dead 139,2,2,{
+comodo,184,108,0 script #jmComodo Almost Dead HIDDEN_WARP_NPC,2,2,{
OnTouch:
if (job_min == 17) {
mes "["+strcharinfo(0)+"]";
@@ -1510,7 +1508,7 @@ OnTouch:
end;
}
-comodo,192,119,0 script Kayak Master#job_min 98,{
+comodo,192,119,0 script Kayak Master#job_min 4W_M_02,{
mes "[Kayak Master]";
if (job_min == 18) {
mes "What?";
@@ -1535,7 +1533,7 @@ comodo,192,119,0 script Kayak Master#job_min 98,{
close;
}
-comodo,159,316,4 script Woman Roasting Meat 701,{
+comodo,159,316,4 script Woman Roasting Meat 4_F_GODEMOM,{
mes "[Woman Roasting Meat]";
if (job_min == 19) {
mes "Maestro Song?";
@@ -1579,7 +1577,7 @@ comodo,159,316,4 script Woman Roasting Meat 701,{
close;
}
-moc_fild16,206,232,0 script #jmTransfer news 139,3,3,{
+moc_fild16,206,232,0 script #jmTransfer news HIDDEN_WARP_NPC,3,3,{
OnTouch:
if (job_min == 20) {
mes "["+strcharinfo(0)+"]";
@@ -1655,7 +1653,7 @@ OnTouch:
end;
}
-aldebaran,140,130,0 script #jmAldebaran Clock Tower 139,3,3,{
+aldebaran,140,130,0 script #jmAldebaran Clock Tower HIDDEN_WARP_NPC,3,3,{
OnTouch:
if (job_min == 21) {
mes "["+strcharinfo(0)+"]";
@@ -1720,7 +1718,7 @@ OnTouch:
end;
}
-prontera,155,40,0 script #jmprt1 139,2,2,{
+prontera,155,40,0 script #jmprt1 HIDDEN_WARP_NPC,2,2,{
OnTouch:
if (job_min == 22) {
mes "[Karian]";
@@ -1738,7 +1736,7 @@ OnTouch:
end;
}
-prontera,155,42,0 script #prtjm1 139,1,1,{
+prontera,155,42,0 script #prtjm1 HIDDEN_WARP_NPC,1,1,{
OnTouch:
if (job_min == 23) {
mes "-Let me go back to my hometown.-";
@@ -1750,7 +1748,7 @@ OnTouch:
end;
}
-prontera,155,44,0 script #prtjm2 139,1,1,{
+prontera,155,44,0 script #prtjm2 HIDDEN_WARP_NPC,1,1,{
OnTouch:
if (job_min == 24) {
mes "-There are many beautiful flowers.-";
@@ -1762,7 +1760,7 @@ OnTouch:
end;
}
-prontera,155,46,0 script #prtjm3 139,1,1,{
+prontera,155,46,0 script #prtjm3 HIDDEN_WARP_NPC,1,1,{
OnTouch:
if (job_min == 25) {
mes "-The birds sing for me.-";
@@ -1774,7 +1772,7 @@ OnTouch:
end;
}
-prontera,155,48,0 script #prtjm4 139,1,1,{
+prontera,155,48,0 script #prtjm4 HIDDEN_WARP_NPC,1,1,{
OnTouch:
if (job_min == 26 || job_min == 27) {
mes "-It's this old town.-";
@@ -1824,7 +1822,7 @@ OnTouch:
end;
}
-prt_in,94,172,4 script Karian#job_min3 480,{
+prt_in,94,172,4 script Karian#job_min3 4_M_MINSTREL1,{
if (job_min == 27) {
if (checkweight(1201,1) == 0 || MaxWeight - Weight < 3500) {
mes "While you are on a trip, you gain lots of stuff. Make yourself lighter.";
@@ -1917,4 +1915,4 @@ prt_in,94,172,4 script Karian#job_min3 480,{
mes "[Karian]";
mes "How did you get in here?";
close;
-} \ No newline at end of file
+}
diff --git a/npc/re/jobs/3-2/royal_guard.txt b/npc/re/jobs/3-2/royal_guard.txt
index 614896133..82632ed36 100644
--- a/npc/re/jobs/3-2/royal_guard.txt
+++ b/npc/re/jobs/3-2/royal_guard.txt
@@ -1,20 +1,19 @@
//===== Hercules Script ======================================
//= Royal Guard Job Quest
-//===== By: ==================================================
+//===== By: ==================================================
//= Muad_Dib
-//===== Current Version: =====================================
-//= 1.1
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Current Version: =====================================
+//= 1.2
+//===== Description: =========================================
//= [Official Conversion]
//= Job change Quest from Crusader / Paladin -> Royal Guard.
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First Version. [brAthena]
//= 1.1 Updated script. [Euphy]
+//= 1.2 Added GM management function. [Euphy]
//============================================================
-prt_castle,48,161,3 script Middle-aged Gentleman#rg 57,{
+prt_castle,48,161,3 script Middle-aged Gentleman#rg 1_M_LIBRARYMASTER,{
if (checkweight(1201,1) == 0 || MaxWeight - Weight < 1000) {
mes "- Your pack is too heavy. -";
mes "- Lighten your body first -";
@@ -334,7 +333,7 @@ prt_castle,48,161,3 script Middle-aged Gentleman#rg 57,{
}
}
-glast_01,240,366,5 script Memory of King Schmidtz 844,{
+glast_01,240,366,5 script Memory of King Schmidtz CLEAR_NPC,{
if (checkweight(1201,1) == 0 || MaxWeight - Weight < 1000) {
mes "- Your pack is too heavy. -";
mes "- Lighten your body first -";
@@ -435,7 +434,7 @@ glast_01,240,366,5 script Memory of King Schmidtz 844,{
end;
}
-gl_church,173,88,0 script Delicate trace#01 844,{
+gl_church,173,88,0 script Delicate trace#01 CLEAR_NPC,{
if (job_royal == 4 && countitem(6274) == 0) {
progressbar "ffff00",5;
set .@roy_ran, rand(1,70);
@@ -465,18 +464,18 @@ OnTimer40000:
specialeffect EF_MAPPILLAR;
end;
}
-gl_church,158,103,0 duplicate(Delicate trace#01) Delicate trace#02 844
-gl_church,139,90,0 duplicate(Delicate trace#01) Delicate trace#03 844
-gl_church,126,62,0 duplicate(Delicate trace#01) Delicate trace#04 844
-gl_church,148,5,0 duplicate(Delicate trace#01) Delicate trace#05 844
-gl_church,185,72,0 duplicate(Delicate trace#01) Delicate trace#06 844
-gl_church,185,72,0 duplicate(Delicate trace#01) Delicate trace#07 844
-gl_church,211,94,0 duplicate(Delicate trace#01) Delicate trace#08 844
-gl_church,185,125,0 duplicate(Delicate trace#01) Delicate trace#09 844
-gl_church,143,125,0 duplicate(Delicate trace#01) Delicate trace#10 844
-gl_church,105,115,0 duplicate(Delicate trace#01) Delicate trace#11 844
+gl_church,158,103,0 duplicate(Delicate trace#01) Delicate trace#02 CLEAR_NPC
+gl_church,139,90,0 duplicate(Delicate trace#01) Delicate trace#03 CLEAR_NPC
+gl_church,126,62,0 duplicate(Delicate trace#01) Delicate trace#04 CLEAR_NPC
+gl_church,148,5,0 duplicate(Delicate trace#01) Delicate trace#05 CLEAR_NPC
+gl_church,185,72,0 duplicate(Delicate trace#01) Delicate trace#06 CLEAR_NPC
+gl_church,185,72,0 duplicate(Delicate trace#01) Delicate trace#07 CLEAR_NPC
+gl_church,211,94,0 duplicate(Delicate trace#01) Delicate trace#08 CLEAR_NPC
+gl_church,185,125,0 duplicate(Delicate trace#01) Delicate trace#09 CLEAR_NPC
+gl_church,143,125,0 duplicate(Delicate trace#01) Delicate trace#10 CLEAR_NPC
+gl_church,105,115,0 duplicate(Delicate trace#01) Delicate trace#11 CLEAR_NPC
-gl_church,158,100,0 script #Clue of traces 111,4,4,{
+gl_church,158,100,0 script #Clue of traces HIDDEN_NPC,4,4,{
end;
OnTouch:
if (job_royal == 4 && countitem(6274) == 0) {
@@ -497,8 +496,8 @@ OnTouch:
end;
}
-/*
-sec_in02,12,43,3 script sorcereryal 57,1,1,{
+sec_in02,12,43,3 script sorcereryal 1_M_LIBRARYMASTER,1,1,{
+ callfunc "F_GM_NPC";
switch(select("Royal Guard:Rune Knight:Sorcerer")) {
case 1:
mes "1~5";
@@ -538,4 +537,3 @@ sec_in02,12,43,3 script sorcereryal 57,1,1,{
close;
}
}
-*/ \ No newline at end of file
diff --git a/npc/re/jobs/3-2/shadow_chaser.txt b/npc/re/jobs/3-2/shadow_chaser.txt
index f9d27dc84..230d5b49c 100644
--- a/npc/re/jobs/3-2/shadow_chaser.txt
+++ b/npc/re/jobs/3-2/shadow_chaser.txt
@@ -1,22 +1,20 @@
//===== Hercules Script ======================================
//= Shadow Chaser Job Quest
-//===== By: ==================================================
+//===== By: ==================================================
//= Muad_Dib
-//===== Current Version: =====================================
+//===== Current Version: =====================================
//= 1.3
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Description: =========================================
//= [Official Conversion]
//= Job change Quest from Rogue / Stalker -> Shadow Chaser.
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First Version. [ultragunner, Oshinoke]
//= 1.1 Standardized. [Euphy]
//= 1.2 Updated dialogue. [Joseph]
//= 1.3 Updated to official script. [Euphy]
//============================================================
-morocc,156,70,3 script Girl#sc00 93,3,3,{
+morocc,156,70,3 script Girl#sc00 4_F_04,3,3,{
mes "[Girl]";
if (BaseJob == Job_Rogue) {
if (job_sha == 0) {
@@ -75,7 +73,7 @@ OnTouch:
end;
}
-in_rogue,376,100,5 script Guild Member#sc01 828,{
+in_rogue,376,100,5 script Guild Member#sc01 4_M_ROGUE,{
if (BaseJob == Job_Rogue) {
if (job_sha < 2) {
set @job_sha,0;
@@ -145,7 +143,7 @@ in_rogue,376,100,5 script Guild Member#sc01 828,{
close;
}
-in_rogue,379,99,1 script Guild Member#sc02 747,{
+in_rogue,379,99,1 script Guild Member#sc02 4_F_ROGUE,{
if (BaseJob == Job_Rogue) {
if (job_sha < 2) {
set @job_sha,1;
@@ -175,7 +173,7 @@ in_rogue,379,99,1 script Guild Member#sc02 747,{
close;
}
-in_rogue,379,101,3 script Scary Man#sc03 810,{
+in_rogue,379,101,3 script Scary Man#sc03 1_M_SIGNROGUE,{
if (job_sha == 0) {
if (BaseJob == Job_Rogue && BaseLevel > 98 && JobLevel > 49) {
mes "[Scary man]";
@@ -294,7 +292,7 @@ L_Code:
return;
}
-s_atelier,65,123,5 script Manager#sc04_prt 903,{
+s_atelier,65,123,5 script Manager#sc04_prt 4_M_KHKYEL,{
if (job_sha == 2) {
mes "[Manager]";
mes "Where's Max!?";
@@ -613,7 +611,7 @@ L_Code:
close;
}
-s_atelier,168,65,5 script Manager#sc08_ra 923,{
+s_atelier,168,65,5 script Manager#sc08_ra 4_M_DOCTOR,{
if (job_sha < 10) {
mes "[Manager]";
mes "Who are you?";
@@ -885,7 +883,7 @@ L_Code:
close;
}
-s_atelier,167,129,3 script Manager#sc06_yuno 806,{
+s_atelier,167,129,3 script Manager#sc06_yuno 1_M_SIGNART,{
if (job_sha < 19) {
mes "[Manager]";
mes "What?";
@@ -1120,7 +1118,7 @@ L_Code:
return;
}
-s_atelier,25,75,3 script Manager#sc10_lgt 899,{
+s_atelier,25,75,3 script Manager#sc10_lgt 4_M_HUMAN_02,{
if (job_sha < 26) {
mes "[Manager]";
mes "You are?";
@@ -1314,7 +1312,7 @@ s_atelier,25,75,3 script Manager#sc10_lgt 899,{
close;
}
-s_atelier,73,65,3 script Vicente#sc12_lgt 899,{
+s_atelier,73,65,3 script Vicente#sc12_lgt 4_M_HUMAN_02,{
mes "[Vicente]";
if (job_sha < 29) {
mes "If you don't have anything special to do here, you'd better leave.";
@@ -1340,7 +1338,7 @@ s_atelier,73,65,3 script Vicente#sc12_lgt 899,{
close;
}
-s_atelier,70,66,4 script Dumk#sc13_lgh 481,{
+s_atelier,70,66,4 script Dumk#sc13_lgh 4_M_SHADOWCHASER,{
if (Class == Job_Shadow_Chaser || Class == Job_Shadow_Chaser_T || Class == Job_Baby_Chaser) {
mes "[Dumk]";
mes "What is it?";
@@ -1670,7 +1668,7 @@ s_atelier,70,66,4 script Dumk#sc13_lgh 481,{
// Flames
//============================================================
-tur_dun03,38,209,1 script Blue Flame#sc_f01 802,{
+tur_dun03,38,209,1 script Blue Flame#sc_f01 4_NFWISP,{
if (job_sha == 5) {
mes "A blue flame is roaring.";
mes "The deciphered code means...";
@@ -1755,7 +1753,7 @@ tur_dun03,38,209,1 script Blue Flame#sc_f01 802,{
close;
}
-ice_dun02,206,223,1 script Red Flame#sc_f02 802,{
+ice_dun02,206,223,1 script Red Flame#sc_f02 4_NFWISP,{
if (job_sha < 11) {
mes "An unknown red flame is roaring.";
close;
@@ -1819,7 +1817,7 @@ ice_dun02,206,223,1 script Red Flame#sc_f02 802,{
close;
}
-niflheim,230,276,1 script Red Flame#sc_f03 802,{
+niflheim,230,276,1 script Red Flame#sc_f03 4_NFWISP,{
if (job_sha < 21) {
mes "That's a mysterious flame.";
mes "It looks like cursing.";
@@ -1922,7 +1920,7 @@ niflheim,230,276,1 script Red Flame#sc_f03 802,{
// Boxes
//============================================================
-job3_sha01,22,78,0 script ????#keybox01 844,{
+job3_sha01,22,78,0 script ????#keybox01 CLEAR_NPC,{
if (checkweight(1201,1) == 0) {
mes "- You can't continue on in this quest because you are overweight. -";
close;
@@ -1992,13 +1990,13 @@ job3_sha01,22,78,0 script ????#keybox01 844,{
close;
}
-job3_sha01,25,28,0 script ????#keybox02 844,{
+job3_sha01,25,28,0 script ????#keybox02 CLEAR_NPC,{
if (checkweight(1201,1) == 0) {
mes "- You can't continue on in this quest because you are overweight. -";
close;
}
setarray .@Words$[0],"SEED","FOOT","COLD";
- setarray .@Numbers[0],24,25,20;
+ setarray .@numbers[0],24,25,20;
set .@i,job_sha-14;
if (job_sha > 13 && job_sha < 17) {
mes "There are lots of boxes.";
@@ -2025,8 +2023,8 @@ job3_sha01,25,28,0 script ????#keybox02 844,{
switch(select("Input the answer.:I can't get it.")) {
case 1:
input .@input;
- if (.@input == .@Numbers[.@i]) {
- mes "You put 2 and "+(.@Numbers[.@i]-20)+".";
+ if (.@input == .@numbers[.@i]) {
+ mes "You put 2 and "+(.@numbers[.@i]-20)+".";
mes "The box opens and you get one key.";
next;
mes "You got the Key of Illusion.";
@@ -2071,7 +2069,7 @@ job3_sha01,25,28,0 script ????#keybox02 844,{
end;
}
-job3_sha01,73,80,0 script ????#keybox03 844,{
+job3_sha01,73,80,0 script ????#keybox03 CLEAR_NPC,{
if (checkweight(1201,1) == 0) {
mes "- You can't continue on in this quest because you are overweight. -";
close;
@@ -2208,7 +2206,7 @@ job3_sha01,73,80,0 script ????#keybox03 844,{
end;
}
-job3_sha01,71,27,0 script ????#keybox04 844,{
+job3_sha01,71,27,0 script ????#keybox04 CLEAR_NPC,{
if (checkweight(1201,1) == 0) {
mes "- You can't continue on in this quest because you are overweight. -";
close;
@@ -2269,7 +2267,7 @@ job3_sha01,71,27,0 script ????#keybox04 844,{
// Brush Shops
//============================================================
-s_atelier,29,119,3 script Max#sc05_prt 97,{
+s_atelier,29,119,3 script Max#sc05_prt 4W_M_01,{
mes "[Max]";
mes "Welcome~";
if (Class == Job_Shadow_Chaser || Class == Job_Shadow_Chaser_T || Class == Job_Baby_Chaser) {
@@ -2306,7 +2304,7 @@ s_atelier,29,119,3 script Max#sc05_prt 97,{
mes "Good luck!";
delitem 7150,.@i[2]; //Bamboo_Cut
delitem 949,.@i[3]; //Feather
- set Zeny, Zeny - .@i[4];
+ Zeny -= .@i[4];
getitem .@i[1],1; //Makeover_Brush,Paint_Brush
close;
}
@@ -2334,7 +2332,7 @@ s_atelier,29,119,3 script Max#sc05_prt 97,{
}
}
-s_atelier,136,70,3 script Titika#sc09_ra 914,{
+s_atelier,136,70,3 script Titika#sc09_ra 4_F_CHILD,{
mes "[Titika]";
mes "Welcome.";
if (Class == Job_Shadow_Chaser || Class == Job_Shadow_Chaser_T || Class == Job_Baby_Chaser) {
@@ -2359,7 +2357,7 @@ s_atelier,136,70,3 script Titika#sc09_ra 914,{
mes "I'll exchange it with the goods that I made.";
delitem 7150,.@i[2]; //Bamboo_Cut
delitem 949,.@i[3]; //Feather
- set Zeny, Zeny - .@i[4];
+ Zeny -= .@i[4];
getitem .@i[1],1; //Makeover_Brush,Paint_Brush
close;
}
@@ -2385,7 +2383,7 @@ s_atelier,136,70,3 script Titika#sc09_ra 914,{
}
}
-s_atelier,124,128,3 script RimiGX#sc07_yuno 862,{
+s_atelier,124,128,3 script RimiGX#sc07_yuno 4_F_LGTGIRL,{
mes "[RimiGX]";
mes "Welcome.";
if (Class == Job_Shadow_Chaser || Class == Job_Shadow_Chaser_T || Class == Job_Baby_Chaser) {
@@ -2409,7 +2407,7 @@ s_atelier,124,128,3 script RimiGX#sc07_yuno 862,{
mes "It will be fast when I exchange the stuff made?";
delitem 7150,.@i[2]; //Bamboo_Cut
delitem 949,.@i[3]; //Feather
- set Zeny, Zeny - .@i[4];
+ Zeny -= .@i[4];
getitem .@i[1],1; //Makeover_Brush,Paint_Brush
close;
}
@@ -2434,7 +2432,7 @@ s_atelier,124,128,3 script RimiGX#sc07_yuno 862,{
}
}
-s_atelier,26,68,3 script Vito#sc11_lgt 904,{
+s_atelier,26,68,3 script Vito#sc11_lgt 4_M_KHMAN,{
mes "[Vito]";
mes "Welcome.";
if (Class == Job_Shadow_Chaser || Class == Job_Shadow_Chaser_T || Class == Job_Baby_Chaser) {
@@ -2459,7 +2457,7 @@ s_atelier,26,68,3 script Vito#sc11_lgt 904,{
mes "I'm going to exchange the blush I made before.";
delitem 7150,.@i[2]; //Bamboo_Cut
delitem 949,.@i[3]; //Feather
- set Zeny, Zeny - .@i[4];
+ Zeny -= .@i[4];
getitem .@i[1],1; //Makeover_Brush,Paint_Brush
close;
}
@@ -2485,7 +2483,7 @@ s_atelier,26,68,3 script Vito#sc11_lgt 904,{
// Warp Portal
//============================================================
-tha_t01,149,228,0 script #shadowc02 45,2,2,{
+tha_t01,149,228,0 script #shadowc02 WARPNPC,2,2,{
end;
OnTouch:
mes "You can feel weird power.";
@@ -2503,4 +2501,4 @@ OnTouch:
//============================================================
tur_dun03,0,0,0,0 monster Shadow of Deception 2076,1,1000,0,0
ice_dun02,0,0,0,0 monster Shadow of Illusion 2077,1,1000,0,0
-niflheim,0,0,0,0 monster Shadow of Pleasure 2078,1,1000,0,0 \ No newline at end of file
+niflheim,0,0,0,0 monster Shadow of Pleasure 2078,1,1000,0,0
diff --git a/npc/re/jobs/3-2/sorcerer.txt b/npc/re/jobs/3-2/sorcerer.txt
index 71ec97e4b..05c568431 100644
--- a/npc/re/jobs/3-2/sorcerer.txt
+++ b/npc/re/jobs/3-2/sorcerer.txt
@@ -1,21 +1,19 @@
//===== Hercules Script ======================================
//= Sorcerer Job Quest
-//===== By: ==================================================
+//===== By: ==================================================
//= Muad_Dib
-//===== Current Version: =====================================
+//===== Current Version: =====================================
//= 1.2
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Description: =========================================
//= [Official Conversion]
//= Job change Quest from Sage / Professor -> Sorcerer.
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First Version. [Masao]
//= 1.1 Cleaning. [Euphy]
//= 1.2 Updated script, optimized. [Euphy]
//============================================================
-gef_tower,102,34,5 script Merito 742,{
+gef_tower,102,34,5 script Merito 2_M_SAGE_B,{
mes "[Merito]";
if (checkweight(1201,1) == 0 || MaxWeight - Weight < 1000) {
mes "You packed so much in your bag. Try again after emptying your bag.";
@@ -127,7 +125,7 @@ gef_tower,102,34,5 script Merito 742,{
}
}
-gef_tower,113,161,5 script Karacas 754,{
+gef_tower,113,161,5 script Karacas 4_M_SAGE_A,{
mes "[Karacas]";
if (checkweight(1201,1) == 0 || MaxWeight - Weight < 1000) {
mes "Oh, it seems that you're too heavy. Empty your bag and then come again.";
@@ -414,7 +412,7 @@ gef_tower,113,161,5 script Karacas 754,{
}
close;
}
-thor_v01,64,252,0 duplicate(Spirit Detecting Staff#0) Spirit Detecting Staff#1 836
-ice_dun01,274,274,0 duplicate(Spirit Detecting Staff#0) Spirit Detecting Staff#2 836
-mjo_dun03,200,141,0 duplicate(Spirit Detecting Staff#0) Spirit Detecting Staff#3 836
-gon_dun02,195,190,0 duplicate(Spirit Detecting Staff#0) Spirit Detecting Staff#4 836 \ No newline at end of file
+thor_v01,64,252,0 duplicate(Spirit Detecting Staff#0) Spirit Detecting Staff#1 2_BOARD2
+ice_dun01,274,274,0 duplicate(Spirit Detecting Staff#0) Spirit Detecting Staff#2 2_BOARD2
+mjo_dun03,200,141,0 duplicate(Spirit Detecting Staff#0) Spirit Detecting Staff#3 2_BOARD2
+gon_dun02,195,190,0 duplicate(Spirit Detecting Staff#0) Spirit Detecting Staff#4 2_BOARD2
diff --git a/npc/re/jobs/3-2/sura.txt b/npc/re/jobs/3-2/sura.txt
index 311e95ec1..8bbc45cfe 100644
--- a/npc/re/jobs/3-2/sura.txt
+++ b/npc/re/jobs/3-2/sura.txt
@@ -1,21 +1,20 @@
//===== Hercules Script ======================================
//= Sura Job Quest
-//===== By: ==================================================
+//===== By: ==================================================
//= Muad_Dib, Gepard
-//===== Current Version: =====================================
-//= 1.2
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Current Version: =====================================
+//= 1.3
+//===== Description: =========================================
//= [Official Conversion]
//= Job change Quest from Monk / Champion -> Sura.
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First Version. [Masao]
//= 1.1 Removed disablenpc which causes players stucked in waitingroom. [Joseph]
//= 1.2 Updated script, optimized. [Euphy]
+//= 1.3 Added GM management function. [Euphy]
//============================================================
-ve_in,237,125,0 script King Crab#job_shu 107,{
+ve_in,237,125,0 script King Crab#job_shu 1_M_PAY_ELDER,{
if (job_shu == 0) {
mes "[King Crab]";
mes "Khh ha ha ha ha ha ha.";
@@ -156,9 +155,9 @@ ve_in,237,125,0 script King Crab#job_shu 107,{
close;
}
}
-ve_in,241,128,4 duplicate(King Crab#job_shu) Sludge Worm#job_shu 110
+ve_in,241,128,4 duplicate(King Crab#job_shu) Sludge Worm#job_shu 4_M_MINISTER
-ve_in,244,126,3 script Waitress#job_shu 69,{
+ve_in,244,126,3 script Waitress#job_shu 1_F_04,{
mes "[Waitress]";
if (job_shu == 0) {
mes "Oh no~";
@@ -193,7 +192,7 @@ ve_in,244,126,3 script Waitress#job_shu 69,{
close;
}
-ve_in,240,131,0 script ???#bcmd 484,{
+ve_in,240,131,0 script ???#bcmd 4_F_SURA,{
end;
OnInit:
disablenpc "???#bcmd";
@@ -212,7 +211,7 @@ OnTimer600000:
end;
}
-ve_in,97,149,0 script #Suraryokan 139,3,3,{
+ve_in,97,149,0 script #Suraryokan HIDDEN_WARP_NPC,3,3,{
OnTouch:
if (job_shu == 1) {
set .@n$, "["+strcharinfo(0)+"]";
@@ -270,7 +269,7 @@ OnTouch:
end;
}
-ve_in,98,159,0 script Fighter#job_shu 484,{
+ve_in,98,159,0 script Fighter#job_shu 4_F_SURA,{
if (job_shu < 2) {
mes "[Fighter]";
mes "Ahhhh~ I'm so tired.";
@@ -432,7 +431,7 @@ ve_in,98,159,0 script Fighter#job_shu 484,{
close;
}
-yuno_fild07,254,176,7 script Buddy#job_shu 753,{
+yuno_fild07,254,176,7 script Buddy#job_shu 4_M_MONK,{
if (job_shu < 4) {
mes "[Buddy]";
mes "Haaap!!! Haaaap!!! Whoo!! Haahhp!!!";
@@ -506,7 +505,7 @@ yuno_fild07,254,176,7 script Buddy#job_shu 753,{
end;
}
-sword_1-1,223,243,4 script Drawing Room 753,{
+sword_1-1,223,243,4 script Drawing Room 4_M_MONK,{
end;
OnInit:
waitingroom "Drawing Room",20,"Drawing Room::OnStartArena",1;
@@ -525,7 +524,7 @@ OnDisable:
end;
}
-sword_1-1,223,243,4 script Buddy#job_shu_Salong 753,{
+sword_1-1,223,243,4 script Buddy#job_shu_Salong 4_M_MONK,{
mes "[Buddy]";
mes "My master doesn't like noise, so please ^f57d7dwait in the living room silently.^000000";
next;
@@ -543,7 +542,7 @@ sword_1-1,223,243,4 script Buddy#job_shu_Salong 753,{
}
}
-sword_2-1,1,1,0 script Buddy#Sura_Salon 66,{
+sword_2-1,1,1,0 script Buddy#Sura_Salon 1_F_01,{
end;
OnInit:
disablenpc "Buddy#Sura_Salon";
@@ -644,7 +643,7 @@ OnTimer320000:
end;
}
-sword_2-1,223,205,7 script Buddy#job_shuaneh 753,{
+sword_2-1,223,205,7 script Buddy#job_shuaneh 4_M_MONK,{
if (job_shu > 4) {
mes "I'll show you the way. This way.";
close2;
@@ -665,7 +664,7 @@ OnEnable:
end;
}
-sword_2-1,223,205,0 script #Sura_garajjom 139,10,10,{
+sword_2-1,223,205,0 script #Sura_garajjom HIDDEN_WARP_NPC,10,10,{
OnTouch:
warp "sword_1-1",216,168;
end;
@@ -678,7 +677,7 @@ OnEnable:
end;
}
-sword_1-1,222,169,5 script Bruno#job_shu 484,{
+sword_1-1,222,169,5 script Bruno#job_shu 4_F_SURA,{
if (job_shu > 4) {
mes "[Bruno]";
mes "Hey~ "+strcharinfo(0)+", what's up?";
@@ -743,7 +742,7 @@ sword_1-1,222,169,5 script Bruno#job_shu 484,{
end;
}
-sword_1-1,223,167,2 script Master#job_shu 483,{
+sword_1-1,223,167,2 script Master#job_shu 4_M_SURA,{
mes "[Master]";
if (job_shu == 5) {
mes "You must have bright eyes to see that you finally came to this room.";
@@ -829,8 +828,8 @@ sword_1-1,223,167,2 script Master#job_shu 483,{
end;
}
-/*
-sword_2-1,1,2,0 script Button Girl#sura 66,{
+sword_2-1,1,2,0 script Button Girl#sura 1_F_01,{
+ callfunc "F_GM_NPC";
switch(select("Turn on arena.:Turn off arena.:Turn on the living room.:Turn on Buddy.:Turn on Gara.:Turn off all.:Close")) {
case 1:
mes "Turn on arena.";
@@ -864,4 +863,3 @@ sword_2-1,1,2,0 script Button Girl#sura 66,{
close;
}
}
-*/ \ No newline at end of file
diff --git a/npc/re/jobs/3-2/wanderer.txt b/npc/re/jobs/3-2/wanderer.txt
index 41839b644..9ce297068 100644
--- a/npc/re/jobs/3-2/wanderer.txt
+++ b/npc/re/jobs/3-2/wanderer.txt
@@ -1,15 +1,13 @@
//===== Hercules Script ======================================
//= Wanderer Job Quest
-//===== By: ==================================================
+//===== By: ==================================================
//= Muad_Dib, Meyraw
-//===== Current Version: =====================================
+//===== Current Version: =====================================
//= 1.4
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Description: =========================================
//= [Official Conversion]
//= Job change Quest from Dancer / Gypsy -> Wanderer.
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First Version.
//= 1.1 Updated dialogue to be more official / accurate. Huge thanks to Muad_Dib! [Masao]
//= 1.2 Fixed an endless loop in dialogue.
@@ -17,7 +15,7 @@
//= 1.4 Updated script, optimized. [Euphy]
//============================================================
-xmas,162,209,5 script Aspiring Wanderer, Soy 714,{
+xmas,162,209,5 script Aspiring Wanderer, Soy 4_F_06,{
if (job_wan == 0) {
mes "[Soy]";
mes "Mimi, what should I do?";
@@ -111,9 +109,9 @@ xmas,162,209,5 script Aspiring Wanderer, Soy 714,{
close;
}
}
-xmas,163,209,3 duplicate(Aspiring Wanderer, Soy) Aspiring Wanderer, Mimi 714
+xmas,163,209,3 duplicate(Aspiring Wanderer, Soy) Aspiring Wanderer, Mimi 4_F_06
-xmas,132,143,5 script Performance Manager#wnd 713,{
+xmas,132,143,5 script Performance Manager#wnd 4_M_06,{
mes "[Performance Manager]";
if (job_wan == 0) {
mes "Oh, what should I do?";
@@ -291,7 +289,7 @@ xmas,132,143,5 script Performance Manager#wnd 713,{
close;
}
-comodo,140,86,5 script Cheerless Maestro 479,{
+comodo,140,86,5 script Cheerless Maestro 4_M_MINSTREL,{
if (job_wan < 2) {
mes "[Cheerless Maestro]";
mes "You can dance ~";
@@ -453,7 +451,7 @@ comodo,140,86,5 script Cheerless Maestro 479,{
mes "[" + strcharinfo(0) + "]";
mes "It felt like hearing mommy's lullaby~ It was so beautiful and moving... You are the best artist of our time.";
next;
- specialeffect 18;
+ specialeffect EF_STEAL;
mes "[Guitar Song]";
mes "Ha ha ha. I know that well, but it feels good to hear a compliment from you!";
next;
@@ -560,7 +558,7 @@ comodo,140,86,5 script Cheerless Maestro 479,{
close;
}
-hu_in01,305,251,5 script Vacant Looking Lady#wnd 879,{
+hu_in01,305,251,5 script Vacant Looking Lady#wnd 4_F_CAPEGIRL,{
if (job_wan < 4) {
mes "[Vacant Looking Lady]";
mes "(blank...)";
@@ -748,7 +746,7 @@ hu_in01,305,251,5 script Vacant Looking Lady#wnd 879,{
close;
}
-hu_fild05,342,130,5 script Dancer Kim#fild 879,{
+hu_fild05,342,130,5 script Dancer Kim#fild 4_F_CAPEGIRL,{
if (job_wan == 6) {
mes "[Dancer Kim]";
mes "Exercising together is good but if we compete for it, I think we'll get a better effect!";
@@ -860,18 +858,18 @@ OnTouch:
}
end;
}
-hu_fild05,81,111,0 duplicate(wandererjcq) #fildshout01 139,20,20
-hu_fild05,193,98,0 duplicate(wandererjcq) #fildshout02 139,20,20
-hu_fild05,252,74,0 duplicate(wandererjcq) #fildshout03 139,20,20
-hu_fild05,323,175,0 duplicate(wandererjcq) #fildshout04 139,20,20
-hu_fild05,334,225,0 duplicate(wandererjcq) #fildshout05 139,20,20
-hu_fild05,301,287,0 duplicate(wandererjcq) #fildshout06 139,20,20
-hu_fild05,229,315,0 duplicate(wandererjcq) #fildshout07 139,20,20
-hu_fild05,146,309,0 duplicate(wandererjcq) #fildshout08 139,20,20
-hu_fild05,80,239,0 duplicate(wandererjcq) #fildshout09 139,20,20
-hu_fild05,69,147,0 duplicate(wandererjcq) #fildshout10 139,20,20
+hu_fild05,81,111,0 duplicate(wandererjcq) #fildshout01 HIDDEN_WARP_NPC,20,20
+hu_fild05,193,98,0 duplicate(wandererjcq) #fildshout02 HIDDEN_WARP_NPC,20,20
+hu_fild05,252,74,0 duplicate(wandererjcq) #fildshout03 HIDDEN_WARP_NPC,20,20
+hu_fild05,323,175,0 duplicate(wandererjcq) #fildshout04 HIDDEN_WARP_NPC,20,20
+hu_fild05,334,225,0 duplicate(wandererjcq) #fildshout05 HIDDEN_WARP_NPC,20,20
+hu_fild05,301,287,0 duplicate(wandererjcq) #fildshout06 HIDDEN_WARP_NPC,20,20
+hu_fild05,229,315,0 duplicate(wandererjcq) #fildshout07 HIDDEN_WARP_NPC,20,20
+hu_fild05,146,309,0 duplicate(wandererjcq) #fildshout08 HIDDEN_WARP_NPC,20,20
+hu_fild05,80,239,0 duplicate(wandererjcq) #fildshout09 HIDDEN_WARP_NPC,20,20
+hu_fild05,69,147,0 duplicate(wandererjcq) #fildshout10 HIDDEN_WARP_NPC,20,20
-xmas,148,131,0 script #wandergogo 139,3,3,{
+xmas,148,131,0 script #wandergogo HIDDEN_WARP_NPC,3,3,{
OnTouch:
if (job_wan == 9) {
enablenpc "Dancer Kim#xmas";
@@ -886,7 +884,7 @@ OnTouch:
end;
}
-xmas,147,135,5 script Dancer Kim#xmas 485,{
+xmas,147,135,5 script Dancer Kim#xmas 4_F_WANDERER,{
if (job_wan == 9) {
if (BaseJob != Job_Dancer && BaseLevel < 99 && JobLevel < 50) {
mes "- You can't continue the quest because the condition for the quest is not appropriate. -";
@@ -1028,10 +1026,10 @@ OnInit:
disablenpc strnpcinfo(0);
end;
}
-xmas,149,135,3 duplicate(#wander_xmas) Guitar Song#xmas 479
-xmas,142,130,7 duplicate(#wander_xmas) Spectator#xmas1 711
-xmas,145,127,7 duplicate(#wander_xmas) Spectator#xmas2 712
-xmas,148,127,7 duplicate(#wander_xmas) Soy#xmas 714
-xmas,149,127,1 duplicate(#wander_xmas) Mimi#xmas 714
-xmas,151,127,1 duplicate(#wander_xmas) Spectator#xmas3 716
-xmas,154,129,1 duplicate(#wander_xmas) Spectator#xmas4 797 \ No newline at end of file
+xmas,149,135,3 duplicate(#wander_xmas) Guitar Song#xmas 4_M_MINSTREL
+xmas,142,130,7 duplicate(#wander_xmas) Spectator#xmas1 4_F_05
+xmas,145,127,7 duplicate(#wander_xmas) Spectator#xmas2 4_M_05
+xmas,148,127,7 duplicate(#wander_xmas) Soy#xmas 4_F_06
+xmas,149,127,1 duplicate(#wander_xmas) Mimi#xmas 4_F_06
+xmas,151,127,1 duplicate(#wander_xmas) Spectator#xmas3 4_M_KID2
+xmas,154,129,1 duplicate(#wander_xmas) Spectator#xmas4 4_M_NFLOSTMAN
diff --git a/npc/re/jobs/novice/novice.txt b/npc/re/jobs/novice/novice.txt
index ebefaff48..b7a4bd492 100644
--- a/npc/re/jobs/novice/novice.txt
+++ b/npc/re/jobs/novice/novice.txt
@@ -1,34 +1,35 @@
-//===== rAthena Script =======================================
-//= New Novice Training Grounds
+//===== Hercules Script ======================================
+//= Renewal Novice Training Grounds
//===== By: ==================================================
//= Kisuka
//===== Current Version: =====================================
-//= 1.4a
-//===== Compatible With: =====================================
-//= rAthena SVN
+//= 1.5
//===== Description: =========================================
-//= New Novice Training Grounds
-//= [Hand Scripted (No Programs or AEGIS Scripts)]
+//= [Official Conversion]
+//= A tutorial for new players starting at new_1-1 (53,111).
+//=
+//= This script was replaced by the Izlude Academy in 2012.
//===== Additional Comments: =================================
-//= 1.0 First version. [Kisuka]
+//= 1.0 First version, hand scripted from iRO. [Kisuka]
//= 1.1 Updated warps, savepoints, NPC locations. [Kisuka]
//= 1.2 Cleaning. [Euphy]
//= 1.3 Fixed Eden Group Officer's level requirement. [Joseph]
//= 1.4 Fixed checkquest to check quest accordingly. [Joseph]
//= 1.4a Added 'npcskill' command. [Euphy]
+//= 1.5 Replaced with the official kRO scripts. [Euphy]
//============================================================
-// Sprakki (Stard of Novice Training Ground, Outside Castle)
+// Main NPCs
//============================================================
-new_1-1,53,114,4 script Sprakki#nv1 90,{
- if(job_novice_q < 1) {
+- script Sprakki#newbe01::NvSprakkiA -1,{
+ if (job_novice_q == 0) {
mes "[Sprakki]";
mes "Hello there! Welcome to the World of Ragnarok Online. My name is Sprakki and I'm in charge of giving you basic gameplay tips.";
mes "Click on the [Next] button or press [Enter] to continue.";
next;
mes "[Sprakki]";
mes "First you need to learn the very basics of controlling your character.";
- mes "All the basic ^4A4AFFmoves, selection of items, and attacks^000000 use the ^4A4AFFleft click of the mouse^000000.";
+ mes "All the basic ^4d4dffmoves, selection of items, and attacks^000000 use the ^4d4dff left click of the mouse^000000.";
next;
cutin "tutorial01",3;
mes "-! Info !-";
@@ -40,11 +41,11 @@ new_1-1,53,114,4 script Sprakki#nv1 90,{
mes "First off, try moving around.";
mes "Do you see that wooden bridge to the right?";
next;
- setquest 7117;
- set job_novice_q,1;
mes "[Sprakki]";
mes "Walk over that bridge and there's a castle used as the Training Center.";
mes "I will be waiting for you inside of that Castle. Please come to the castle by yourself.";
+ set job_novice_q,1;
+ setquest 7117;
next;
cutin "tutorial02",3;
mes "-! Info !-";
@@ -55,30 +56,43 @@ new_1-1,53,114,4 script Sprakki#nv1 90,{
mes "I will wait inside the Training Center across the bridge.";
next;
mes "-! Info !-";
- mes "You can open the Quest Info Window by pressing the ^4A4AFFALT + U^000000 keys at the same time.";
+ mes "You can open the Quest Info Window by pressing the ^4d4dffAlt + U^000000 keys at the same time.";
next;
cutin "",255;
mes "[Sprakki]";
mes "Have you checked the Quest Info Window?";
mes "I'll be waiting in the castle across the bridge.";
+ close2;
+ cutin "",255;
+ end;
+ } else if (job_novice_q == 1) {
+ mes "[Sprakki]";
+ mes "I will be waiting for you across the Bridge to the east.";
+ close;
+ } else {
+ mes "[Sprakki]";
+ mes "Are you lost?";
+ mes "Have you gone beyond the bridge to the east?";
+ mes "I will guide you further after we meet in the Training Center.";
close;
}
- mes "[Sprakki]";
- mes "I will be waiting for you across the Bridge to the east.";
- close;
}
+new_1-1,53,114,3 duplicate(NvSprakkiA) Sprakki#nv1a 4_F_01
+new_2-1,53,114,3 duplicate(NvSprakkiA) Sprakki#nv2a 4_F_01
+new_3-1,53,114,3 duplicate(NvSprakkiA) Sprakki#nv3a 4_F_01
+new_4-1,53,114,3 duplicate(NvSprakkiA) Sprakki#nv4a 4_F_01
+new_5-1,53,114,3 duplicate(NvSprakkiA) Sprakki#nv5a 4_F_01
-// Sprakki (Inside Castle)
-//============================================================
-new_1-2,100,29,4 script Sprakki#nv2 90,{
- if(job_novice_q < 1) {
+- script Sprakki#newbe05::NvSprakkiB -1,{
+ if (job_novice_q == 0) {
mes "[Sprakki]";
- mes "Hello there! Welcome to the World of Ragnarok Online. My name is Sprakki and I'm in charge of giving you basic gameplay tips.";
- mes "Click on the [Next] button or press [Enter] to continue.";
+ mes "Hello there! Welcome to the World of Ragnarok Online.";
+ mes "My name is Sprakki and I'm in charge of giving you basic gameplay tips.";
+ mes "Click on the [Next] button or press [Enter] key to continue.";
next;
mes "[Sprakki]";
mes "First you need to learn the very basics of controlling your character.";
- mes "All the basic ^4A4AFFmoves, selection of items, and attacks^000000 use the ^4A4AFFleft click of the mouse^000000.";
+ mes "All the basic ^4d4dffmoves, selection of items, and attacks^000000 use the ^4d4dff left click of the mouse^000000.";
next;
cutin "tutorial01",3;
mes "-! Info !-";
@@ -86,133 +100,247 @@ new_1-2,100,29,4 script Sprakki#nv2 90,{
mes "Attacking monsters and conversations with the people of this world can be done by simply clicking on them.";
next;
cutin "",255;
- setquest 7117;
- set job_novice_q,1;
mes "[Sprakki]";
mes "Well then, I will give you a quest to talk to me.";
mes "After the conversation is over, talk to me again by left-clicking on me.";
+ set job_novice_q,1;
+ setquest 7117;
next;
cutin "tutorial02",3;
mes "-! Info !-";
mes "You've received a quest from Sprakki.";
- mes "You can check the contents of the quest in the Quest Info Window by pressing the ^4A4AFFAlt + U^000000 keys at the same time.";
+ mes "You can check the contents of the quest in the Quest Info Window by pressing the ^4d4dffAlt + U^000000 keys at the same time.";
next;
cutin "",255;
mes "[Sprakki]";
mes "Have you checked the Quest Info Window?";
mes "Well, talk to me again.";
close;
- }
- if(job_novice_q == 1) {
- getexp 300,0;
- getexp 300,5;
- completequest 7117;
- set job_novice_q,2;
+ } else if (job_novice_q < 3) {
+ if (job_novice_q == 1) {
+ mes "[Sprakki]";
+ mes "Great!";
+ mes "Now you know how to move and talk to others, right?";
+ set job_novice_q,2;
+ getexp 600,5;
+ completequest 7117;
+ next;
+ }
+ mes "[Sprakki]";
+ mes "The Training Center is prepared for novices just like you.";
+ mes "You are going to be trained to get used to the basics of the Game.";
+ next;
mes "[Sprakki]";
- mes "Great!";
- mes "Now you know how to move and talk to others, right?";
+ mes "Of course, this Training Process is optional, if you want to go straight to town, that's also fine.";
+ mes "But, you will miss all the advantages you can get in the Training Center.";
next;
+ switch(select("Begin Training.:Start the game right away.")) {
+ case 1:
+ mes "[Sprakki]";
+ mes "I will guide you to the Novice Training Center.";
+ mes "Inside, Instructor 'Brade' will be waiting to speak to you.";
+ next;
+ mes "[Sprakki]";
+ mes "Instructor 'Brade' will help you afterwards.";
+ mes "Please, Go see him.";
+ setquest 7118;
+ next;
+ mes "^4d4dff- You received a quest 'Novice Training Ground -1' from Sprakki.";
+ mes "Please check the Quest Info Window. -^000000";
+ close2;
+ savepoint strnpcinfo(4),100,100;
+ warp strnpcinfo(4),100,100;
+ end;
+ case 2:
+ 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;
+ mes "[Sprakki]";
+ mes "Ok, You want to start right away.";
+ mes "Which Town do you want to start at?";
+ next;
+ set .@select, select("Prontera:Morroc:Geffen:Payon:Alberta:Izlude");
+ mes "[Sprakki]";
+ mes "I see.";
+ mes "Go ahead and grow stronger! Look toward a brighter future ahead of you.";
+ callfunc "F_NvErase";
+ close2;
+ switch(.@select) {
+ case 1:
+ savepoint "prontera",273,354;
+ warp "prontera",273,354;
+ break;
+ case 2:
+ savepoint "morocc",160,94;
+ warp "morocc",160,94;
+ break;
+ case 3:
+ savepoint "geffen",120,100;
+ warp "geffen",120,100;
+ break;
+ case 4:
+ savepoint "payon",70,100;
+ warp "payon",70,100;
+ break;
+ case 5:
+ savepoint "alberta",116,57;
+ warp "alberta",116,57;
+ break;
+ case 6: // Old coordinates: (94,103)
+ savepoint "izlude",128,98;
+ warp "izlude",128,98;
+ break;
+ }
+ end;
+ }
+ } else {
+ mes "[Sprakki]";
+ mes "These are the Novice Training Grounds.";
+ mes "I will guide you to the Novice Training Center.";
+ close2;
+ savepoint strnpcinfo(4),100,100;
+ warp strnpcinfo(4),100,100;
+ end;
}
- mes "[Sprakki]";
- mes "The training Center is prepared for novices just like you.";
- mes "You are going to be trained to get used to the basics of the Game.";
- next;
- select("Begin Training.");
- mes "[Sprakki]";
- mes "I will guide you to the Novice Training Center.";
- mes "Inside, Instructor 'Brade' will be waiting to speak to you.";
- next;
- setquest 7118;
- set job_novice_q,3;
- mes "[Sprakki]";
- mes "Instructor 'Brade' will help you afterwards.";
- mes "Please, Go see him.";
- next;
- mes "^4A4AFF- You received a quest 'Novice Training Ground-1' from Sprakki.^000000";
- mes "^4A4AFFPlease check the Quest Info Window.-^000000";
- close2;
- savepoint "new_1-2",100,100;
- warp "new_1-2",100,100;
- end;
}
+new_1-2,100,29,4 duplicate(NvSprakkiB) Sprakki#nv1b 4_F_01
+new_2-2,100,29,4 duplicate(NvSprakkiB) Sprakki#nv2b 4_F_01
+new_3-2,100,29,4 duplicate(NvSprakkiB) Sprakki#nv3b 4_F_01
+new_4-2,100,29,4 duplicate(NvSprakkiB) Sprakki#nv4b 4_F_01
+new_5-2,100,29,4 duplicate(NvSprakkiB) Sprakki#nv5b 4_F_01
-// Instructor Brade
-//============================================================
-new_1-2,100,105,4 script Brade#nv 733,{
- if(job_novice_q < 3) {
+- script Brade#newbe02::NvBradeA -1,{
+ if (job_novice_q < 2) {
mes "[Instructor Brade]";
- mes "How did you get here?";
- close2;
- warp "new_1-1",53,111;
- end;
- }
- else if(job_novice_q == 3) {
- getexp 300,0;
- getexp 300,0;
- getexp 300,10;
- completequest 7118;
- set job_novice_q,4;
+ mes "Hello there! Welcome to the World of Ragnarok Online.";
+ mes "You have participated on the previous Training Grounds.";
+ mes "The Training Grounds have now come under new management.";
+ next;
mes "[Instructor Brade]";
- mes "Great.";
- mes "You've completed the given quest successfully, so I will reward you with experience points.";
+ mes "I guess we will just have to start your training all over again.";
next;
mes "[Instructor Brade]";
- mes "Experience Points you've earned from hunting or finishing quests can be checked by tracking the EXP Bar, located at the upper-left side of the display.";
+ mes "My name is Instructor Brade and I'm in charge of giving you basic gameplay tips.";
+ mes "Click on the [Next] button or press [Enter] to continue.";
next;
mes "[Instructor Brade]";
- mes "Sigh... I will just talk roughly.";
- mes "...I just can't get used to";
- mes "'politeness' you know.";
- mes "Don't look at me like that!";
+ mes "First you need to learn the very basics of controlling your character.";
+ mes "All the basic ^4d4dff moves, selection of items, and attacks^000000 use the ^4d4dff left click of the mouse^000000.";
+ next;
+ cutin "tutorial01",3;
+ mes "-! Info !-";
+ mes "Click on the ground to move the character.";
+ mes "Attacking monsters and conversations with the people of this world can be done by simply clicking on them.";
+ next;
+ cutin "",255;
next;
mes "[Instructor Brade]";
- mes "Ok look alive you maggot.";
- mes "Next up is items and equipment.";
+ mes "First off, try moving around.";
+ mes "After moving around, talk to me again.";
+ 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 treasure_alb,0;
+ set job_novice_q,2;
+ setquest 7118;
next;
+ cutin "tutorial02",3;
+ mes "-! Info !-";
+ mes "You've received a quest from Instructor Brade.";
+ mes "You can check the contents of the quest in the Quest Info Window.";
+ next;
+ mes "-! Info !-";
+ mes "You can open the Quest Info Window by pressing the ^4d4dffAlt + U^000000keys at the same time.";
+ next;
+ cutin "",255;
mes "[Instructor Brade]";
- mes "First, take these.";
- mes "These are very basic equipments and recovery potions.";
- getitem 2352,1; // Novice_Plate
- getitem 2510,1; // Novice_Hood
- getitem 2414,1; // Novice_Boots
- getitem 5055,1; // Novice_Egg_Cap
- getitem 1243,1; // Novice_Knife
- getitem 2112,1; // Novice_Guard
- getitem 569,300; // Novice_Potion
+ mes "Have you checked the Quest Info Window?";
+ mes "Well, talk to me again.";
+ close;
+ } else if (job_novice_q < 4) {
+ if (job_novice_q == 2) {
+ mes "[Instructor Brade]";
+ mes "Great.";
+ mes "You've completed the given quest successfully, so I will reward you with experience points.";
+ set job_novice_q,3;
+ getexp 900,10;
+ completequest 7118;
+ next;
+ mes "[Instructor Brade]";
+ mes "Experience Points you've earned from hunting or finishing quests can be checked by tracking the EXP Bar, located at upper-left side of the display.";
+ next;
+ mes "[Instructor Brade]";
+ mes "Sigh... I will just talk roughly.";
+ mes "...I just can't get used to 'politeness' you know.";
+ mes "Don't look at me like that!";
+ next;
+ mes "[Instructor Brade]";
+ mes "Ok look alive you maggot.";
+ mes "Next up is items and equipment.";
+ next;
+ mes "[Instructor Brade]";
+ mes "First, take these.";
+ mes "These are very basic equipments and recovery potions.";
+ } else {
+ mes "[Instructor Brade]";
+ mes "Uh... Where were we? Oh right, let's continue.";
+ mes "It's about items and equipments.";
+ next;
+ mes "[Instructor Brade]";
+ mes "Take these.";
+ mes "Basic equipments and recovery potions.";
+ }
+ set job_novice_q,4;
+ getitem 2352,1; //Novice_Plate
+ getitem 2510,1; //Novice_Hood
+ getitem 2414,1; //Novice_Boots
+ getitem 5055,1; //Novice_Egg_Cap
+ getitem 1243,1; //Novice_Knife
+ getitem 2112,1; //Novice_Guard
+ getitem 569,300; //Novice_Potion
setquest 7119;
- set job_novice_q,5;
next;
mes "[Instructor Brade]";
- mes "In the upper left Basic Info Window, press the 'Item' icon to open the Item Window.";
- mes "The item window has 3 sections...";
+ mes "In the upper left Basic Info. Window, press the 'Item' icon to open the Item Window.";
+ mes "The item window is divided into...";
next;
mes "[Instructor Brade]";
- mes "Consumable items, equipment, and other items.";
- mes "If you want to use or equip items, double-click on the item or drag them into the Equipment Window.";
+ mes "3 sections: consumable items, equipment and other items.";
+ mes "If you want to use or equip items, just double-click on the item or drag them into the Equipment Window.";
next;
mes "[Instructor Brade]";
- mes "You can see detailed info of each item by right-clicking on the item.";
- mes "Do that and the info will pop-up in a separate window.";
+ mes "You can see detailed info. of each item by right-clicking on the item.";
+ mes "Detailed information of the item will pop up.";
next;
cutin "tutorial04",3;
mes "!- Info -!";
- mes "Double-click on the item to see the detailed information.";
+ mes "Right-click on an item to see detailed information about it.";
next;
mes "!- Info -!";
- mes "Right-click on other players to show the Community Menu and you can join a party, request trades, etc.";
+ mes "Right-click on other players to show the Community Menu and you can join a party, or request trade with a player etc.";
next;
cutin "",255;
mes "[Instructor Brade]";
mes "Why don't you equip the items I gave you earlier?";
- mes "^4A4AFFDouble-Click^000000 on the item you want to equip. Let us continue after you are done gearing up.";
+ mes "^4d4dffDouble-Click^000000 on the item you want to equip. Let us continue after you are done gearing up.";
next;
cutin "tutorial03",3;
mes "!- Info -!";
- mes "Items can be easily equipped or used by simply clicking on them.";
- mes "The Hot Key to open the Item Window is Alt + E.";
+ mes "Items can be easily equipped or used by simply double-clicking on them.";
+ mes "The Hot Key to open the Inventory Window is ALT + E.";
next;
mes "!- Info -!";
- mes "To check on the items that are currently equipped, use the hot key Alt + Q.";
+ mes "To check on the items that are currently equipped, use the Hot Key ALT + Q.";
mes "Or, drag the item on to the item slot you want the item to be equipped.";
next;
mes "!- Info -!";
@@ -220,139 +348,71 @@ new_1-2,100,105,4 script Brade#nv 733,{
close2;
cutin "",255;
end;
- }
- else if(job_novice_q == 4) {
+ } else if (job_novice_q == 4) {
+ if (isequipped(2414) + isequipped(2352) + isequipped(2510) + isequipped(2112) + isequipped(1243) < 4) {
+ mes "[Instructor Brade]";
+ mes "Try to put on at least 4 of the equipments I gave you.";
+ mes "Put those shoes on, wear those clothes, and arm yourself with that weapon you maggot.";
+ close;
+ }
mes "[Instructor Brade]";
- mes "Uh... Where were we? Oh right, let's continue.";
- mes "It's about items and equipments.";
+ mes "You are all set.";
+ mes "You are coming along just fine.";
+ set job_novice_q,5;
+ getexp 1200,15;
+ getitem 12323,50; //N_Fly_Wing
+ getitem 12324,20; //N_Butterfly_Wing
+ completequest 7119;
next;
mes "[Instructor Brade]";
- mes "Take these.";
- mes "Basic equipments and recovery potions.";
- getitem 2352,1; // Novice_Plate
- getitem 2510,1; // Novice_Hood
- getitem 2414,1; // Novice_Boots
- getitem 5055,1; // Novice_Egg_Cap
- getitem 1243,1; // Novice_Knife
- getitem 2112,1; // Novice_Guard
- getitem 569,300; // Novice_Potion
- setquest 7119;
- set job_novice_q,5;
+ mes "Here's some Fly Wings and Butterfly Wings as a reward.";
+ mes "You don't need these in the Training Ground, but they will come in handy later.";
next;
mes "[Instructor Brade]";
- mes "In the upper left Basic Info Window, press the 'Item' icon to open the Item Window.";
- mes "The item window is divided into...";
+ mes "Next, are Hot Keys.";
+ mes "Press the ^4d4dffF12 key^000000 on your keyboard.";
+ mes "A box with 9 slots will pop up.";
next;
mes "[Instructor Brade]";
- mes "3 sections: consumable items, equipment and other items.";
- mes "If you want to use or equip items, double-click on the item or drag them into the Equipment Window.";
+ mes "Drag on the right corner of the Hot Key Window and you will be able to see the other pages of the Hot Key.";
next;
mes "[Instructor Brade]";
- mes "You can see detailed info of each item by right-clicking on the item.";
- mes "Do that and the info will pop-up in a separate window.";
+ mes "The F1 to F9 keys are the designated hotkeys.";
+ mes "Just drag a skill or an item onto the Hot Key Window and press a corresponding key to use them right away.";
next;
- cutin "tutorial04",3;
+ cutin "tutorial05",3;
mes "!- Info -!";
- mes "Double-click on the item to see the detailed information.";
+ mes "You can register a skill or an item to the Hot Key Window by just dragging them onto the Hot Key Slot.";
next;
mes "!- Info -!";
- mes "Right-click on other players to show the Community Menu and you can join a party, request trades, etc.";
- next;
- cutin "",255;
- mes "[Instructor Brade]";
- mes "Why don't you equip the items I gave you earlier?";
- mes "^4A4AFFDouble-Click^000000 on the item you want to equip. Let us continue after you are done gearing up.";
+ mes "Registered Skills or Items can be used/equipped by just pressing the corresponding key.";
next;
- cutin "tutorial03",3;
mes "!- Info -!";
- mes "Items can be easily equipped or used by simply clicking on them.";
- mes "The Hot Key to open the Item Window is Alt + E.";
+ mes "You can customize the Hot Key to use any keys you please as the Hot Key by changing the Shortcut configuration in the options menu.";
next;
mes "!- Info -!";
- mes "To check on the items that are currently equipped, use the hot key Alt + Q.";
- mes "Or, drag the item on to the item slot you want the item to be equipped.";
+ mes "Register skills and items that you use often so that you can use them easily.";
next;
- mes "!- Info -!";
- mes "Equip all of the equipment given by Instructor Brade.";
- close2;
cutin "",255;
- end;
- }
- else if(job_novice_q == 5 || job_novice_q == 6) {
- for(set .@i,1; .@i<7; set .@i,.@i+1)
- if (getequipisequiped(.@i)) set .@EquipCheck, .@EquipCheck+1;
- if(.@EquipCheck >= 4) {
- if(job_novice_q == 5) {
- mes "[Instructor Brade]";
- mes "You are all set.";
- mes "You are coming along just fine.";
- getexp 300,0;
- getexp 300,0;
- getexp 300,0;
- getexp 300,15;
- getitem 12323,50; // N_Fly_Wing
- getitem 12324,20; // N_Butterfly_Wing
- completequest 7119;
- set job_novice_q,6;
- next;
- mes "[Instructor Brade]";
- mes "Here's some Fly Wings and Butterfly Wings as a reward.";
- mes "You don't need these in the Training Ground, but they will come in handy later.";
- next;
- }
- mes "[Instructor Brade]";
- mes "Next, are Hot Keys.";
- mes "Press the ^4A4AFF12 key^000000 on your keyboard.";
- mes "A box with 9 slots will pop up.";
- next;
- mes "[Instructor Brade]";
- mes "Drag on the right corner of the Hot Key Window and you will be able to see the other pages of the Hot Key.";
- next;
- mes "[Instructor Brade]";
- mes "The F1 to F9 keys are the designated hotkeys.";
- mes "Just drag a skill or an item onto the Hot Key Window and press a corresponding key to use them right away.";
- next;
- cutin "tutorial05",3;
- mes "!- Info -!";
- mes "You can register a skill or an item to the Hot Key Window by just dragging them onto the Hot Key Slot.";
- next;
- mes "!- Info -!";
- mes "Registered Skills or Items can be used/equipped by just pressing the corresponding key.";
- next;
- mes "!- Info -!";
- mes "You can customize the Hot Key to use any keys you please as the Hot Key by changing the Shortcut configuration in the options menu.";
- next;
- mes "!- Info -!";
- mes "Register skills and items that you use often so that you can use them easily";
- next;
- cutin "",255;
- mes "[Instructor Brade]";
- mes "The last part is how to use Skills.";
- mes "But before that, you need to learn something first.";
- next;
- setquest 7120;
- set job_novice_q,7;
- mes "[Instructor Brade]";
- mes "Somewhere in this room, there's someone named ^4A4AFFJinha^000000.";
- mes "Find Jinha and learn the ^4A4AFF[First Aid]^000000 skill from him.";
- next;
- mes "[Instructor Brade]";
- mes "Your lesson is after that.";
- mes "Go find Jinha and learn the [First Aid] Skill. Then come back to me.";
- close;
- }
mes "[Instructor Brade]";
- mes "Try to put on at least 4 of the equipment I gave you.";
- mes "Put those shoes on, wear those clothes, and arm yourself with that weapon you maggot.";
+ mes "The last part is how to use Skills.";
+ mes "But before that, you need to learn something first.";
+ next;
+ mes "[Instructor Brade]";
+ mes "Somewhere in this room, there's someone named ^4d4dffJinha^000000.";
+ mes "Find Jinha and learn the ^4d4dff[First Aid]^000000 skill from him.";
+ setquest 7120;
+ next;
+ mes "[Instructor Brade]";
+ mes "Your lesson is after that.";
+ mes "Go find Jinha and learn the [First Aid] Skill. Then come back to me.";
close;
- }
- else if(job_novice_q == 7) {
+ } else if (job_novice_q == 5) {
mes "[Instructor Brade]";
- mes "Somewhere in this room, there's someone named ^4A4AFFJinha^000000.";
- mes "Find Jinha and learn the ^4A4AFF[First Aid]^000000 skill from him.";
+ mes "Somewhere in this room, there's someone named ^4d4dffJinha^000000.";
+ mes "Find Jinha and learn the ^4d4dff[First Aid]^000000 skill from him.";
close;
- }
- else if(job_novice_q == 8) {
+ } else if (job_novice_q == 6) {
mes "[Instructor Brade]";
mes "Now you've learned the [First Aid] Skill.";
mes "Just as I told you before, by registering the First Aid Skill onto the Hot Key Window, you can use the skill fast and easy.";
@@ -368,43 +428,64 @@ new_1-2,100,105,4 script Brade#nv 733,{
next;
mes "[Instructor Brade]";
mes "You've come along fine this far.";
- mes "This is not much, but that this as a reward.";
- getitem 2393,1; // N_Adventurer's_Suit
+ mes "This is not much, but take this as a reward.";
+ set job_novice_q,7;
+ getitem 2393,1; //N_Adventurer's_Suit
completequest 7120;
- set job_novice_q,9;
close;
- }
- else if(job_novice_q > 8) {
+ } else if (job_novice_q == 7) {
mes "[Instructor Brade]";
mes "Next step of the Training is done in the room west of here.";
mes "If you are lost, I can send you there.";
next;
- if(select("I can get there by myself.:Please, send me to the next room.") == 2) {
+ switch(select("I can get there by myself.:Please, send me to the next room.")) {
+ case 1:
+ mes "[Instructor Brade]";
+ mes "Good. That's the attitude you must have.";
+ mes "You can't just lean on others to help you.";
+ mes "Now, go ahead.";
+ close;
+ case 2:
mes "[Instructor Brade]";
mes "Oh well.";
mes "I think it's better than seeing you lost and wandering about.";
mes "Hahahaha...";
close2;
- warp "new_1-2",41,172;
+ warp strnpcinfo(4),41,172;
end;
}
+ } else {
mes "[Instructor Brade]";
- mes "Good. That's the attitude you must have.";
- mes "You can't just lean on others to help you.";
- mes "Now, go ahead.";
- close;
+ mes "Aren't you done with the courses here?";
+ mes "Or are you just lost?";
+ next;
+ switch(select("Send me to the Combat Training Ground.:I want to go to town.")) {
+ case 1:
+ mes "[Instructor Brade]";
+ mes "Sure.";
+ mes "Be careful not to be lost again.";
+ close2;
+ warp "new_"+charat(strnpcinfo(4),4)+"-3",96,21;
+ end;
+ case 2:
+ mes "[Instructor Brade]";
+ mes "Town... Eh?";
+ mes "In that case, I will send you to where the Kafra Employee is at.";
+ mes "Use ^4d4dffKafra's Warp Service^000000 to go to town.";
+ close2;
+ warp strnpcinfo(4),41,172;
+ end;
+ }
}
- mes "[Instructor Brade]";
- mes "Why are you still here?";
- close2;
- warp "prontera",156,90;
- end;
}
+new_1-2,100,105,3 duplicate(NvBradeA) Brade#nv1a 4_M_JOB_KNIGHT1
+new_2-2,100,105,3 duplicate(NvBradeA) Brade#nv2a 4_M_JOB_KNIGHT1
+new_3-2,100,105,3 duplicate(NvBradeA) Brade#nv3a 4_M_JOB_KNIGHT1
+new_4-2,100,105,3 duplicate(NvBradeA) Brade#nv4a 4_M_JOB_KNIGHT1
+new_5-2,100,105,3 duplicate(NvBradeA) Brade#nv5a 4_M_JOB_KNIGHT1
-// Instructor Jinha
-//============================================================
-new_1-2,115,120,4 script Jinha#nv 59,{
- if(job_novice_q < 7) {
+- script Jinha#newbe03::NvJinha -1,{
+ if (job_novice_q < 5) {
mes "[Jinha]";
mes "What can I help you with?";
mes "Hmm? You haven't followed the curriculum correctly.";
@@ -412,99 +493,168 @@ new_1-2,115,120,4 script Jinha#nv 59,{
mes "[Jinha]";
mes "You have to see Instructor Brade first before me. I will send you to Instructor Brade.";
close2;
- warp "new_1-2",100,100;
+ warp strnpcinfo(4),100,100;
end;
- }
- else if(job_novice_q == 7) {
- mes "[Jinha]";
- mes "Hello!";
- mes "How can I help you?";
- next;
- select("I want to learn the use the [First Aid] Skill.");
- mes "[Jinha]";
- mes "That's right.";
- mes "First Aid is the skill used to convert SP into HP when you are in danger.";
- next;
- specialeffect2 58;
- specialeffect2 234;
- mes "[Jinha]";
- mes "It's recovery amount is small.";
- mes "Still, it will help you not to faint from a critical hit.";
- next;
- skill "NV_FIRSTAID",1,0; // NV_FIRSTAID
- set job_novice_q,8;
- mes "[Jinha]";
- mes "You can open the Skill Window by pressing the ^4A4AFFskill^000000 button in the Basic Window.";
- mes "Hot Key is ^4A4AFFALT + S^000000.";
- mes "Why don't you try the skill?";
- next;
- mes "[Jinha]";
- mes "Good, now you know how to use the First Aid Skill, you have to move on to the next step.";
- mes "Go back to Instructor Brade and show him what you've learned here.";
- close;
- }
- else if(job_novice_q == 8) {
+ } else if (job_novice_q == 5) {
+ if (getskilllv("NV_FIRSTAID") > 0) {
+ mes "[Jinha]";
+ mes "Hello!";
+ mes "I am responsible for teaching you the [First Aid] skill.";
+ mes "Instructor Brade asked you to learn it right?.";
+ next;
+ mes "[Jinha]";
+ mes "Wow... ...it's amazing!";
+ mes "You already know the First Aid Skill.";
+ mes "There doesn't seem to be anything for me to teach you.";
+ next;
+ mes "[Jinha]";
+ mes "Great. Was your instructor from the previous management Cecil?";
+ mes "Well, you have learned First Aid, I can confirm that.";
+ next;
+ mes "[Jinha]";
+ mes "Well, you can directly go to the next step of the course.";
+ mes "Go back to Instructor Brade.";
+ set job_novice_q,6;
+ close;
+ } else {
+ mes "[Jinha]";
+ mes "Hello!";
+ mes "How can I help you?";
+ next;
+ select("I want to learn to use the [First Aid] Skill.");
+ mes "[Jinha]";
+ mes "That's right.";
+ mes "First Aid is the skill used to convert SP into HP when you are in danger.";
+ next;
+ mes "[Jinha]";
+ mes "It's recovery amount is small.";
+ mes "Still, it will help you not to faint from a critical hit.";
+ specialeffect2 EF_BEGINSPELL6;
+ specialeffect2 EF_SPELLBREAKER;
+ next;
+ mes "[Jinha]";
+ mes "You can open the Skill Window by pressing the ^4d4dffskill^000000 button in the Basic Window.";
+ mes "Hot Key is ^4d4dffALT + S^000000.";
+ mes "Why don't you try the skill?";
+ skill "NV_FIRSTAID",1,0;
+ set skill_nov,3; // Has future uses - do not remove! [Euphy]
+ set job_novice_q,6;
+ next;
+ mes "[Jinha]";
+ mes "Good, now you know how to use the First Aid Skill, you have to move on to the next step.";
+ mes "Go back to Instructor Brade and show him what you've learned here.";
+ close;
+ }
+ } else if (job_novice_q == 6) {
mes "[Jinha]";
mes "Didn't you learn the First Aid Skill already?";
mes "Have it checked by Instructor Brade.";
mes "If you don't know how to get to him, I will send you to him.";
next;
- if(select("I'm good by myself.:Please, send me to him.") == 2) {
+ switch(select("I'm good by myself.:Please, send me to him.")) {
+ case 1:
+ mes "[Jinha]";
+ mes "Very Good!";
+ mes "That's the right attitude!";
+ mes "You will be a great adventurer in the future.";
+ close;
+ case 2:
mes "[Jinha]";
mes "I will send you to Instructor Brade.";
close2;
- warp "new_1-2",100,100;
+ warp strnpcinfo(4),100,100;
end;
}
- mes "[Jinha]";
- mes "Very Good!";
- mes "That's the right attitude!";
- mes "You will be a great adventurer in the future.";
- close;
- }
- else if(job_novice_q > 8) {
+ } else {
mes "[Jinha]";
mes "What can I do for you?";
mes "Next course will be continued in the West Room.";
- mes "Go on to the west room.";
+ mes "Go on into the west room.";
close;
}
- mes "[Jinha]";
- mes "Why are you still here?";
- close2;
- warp "prontera",156,90;
- end;
}
+new_1-2,115,120,3 duplicate(NvJinha) Jinha#nv1 1_M_ORIENT01
+new_2-2,115,120,3 duplicate(NvJinha) Jinha#nv2 1_M_ORIENT01
+new_3-2,115,120,3 duplicate(NvJinha) Jinha#nv3 1_M_ORIENT01
+new_4-2,115,120,3 duplicate(NvJinha) Jinha#nv4 1_M_ORIENT01
+new_5-2,115,120,3 duplicate(NvJinha) Jinha#nv5 1_M_ORIENT01
// People/Services in Ragnarok
//============================================================
-// ---------- Chocolat ----------
-new_1-2,32,172,4 script Chocolat#nv 96,{
- if(job_novice_q < 9) {
+- script Chocolat#newbe06::NvChocolat -1,{
+ if (job_novice_q < 7) {
mes "[Chocolat]";
mes "Hmm? Strange.";
mes "Let me see that Trainee ID for a sec.";
next;
- mes "[Chocolat]";
- mes "You were still on the basic course.";
- mes "You should go back to Instructor Brade or Jinha.";
- next;
- mes "[Chocolat]";
- mes "If you don't know how to find them, I can send you to Instructor Brade, How about it?";
- next;
- if(select("I will go myself.:Will you do that for me?") == 2) {
+ if (job_novice_q < 2) {
mes "[Chocolat]";
- mes "Sure.";
- mes "I will see you later.";
- close2;
- warp "new_1-2",100,100;
- end;
+ mes "Oh, really...";
+ mes "You have participated on the previous Training Grounds.";
+ mes "The Training Grounds have now come under new management.";
+ next;
+ mes "[Chocolat]";
+ mes "If you want to do the basic course,";
+ mes "you should go back to Instructor Brade.";
+ next;
+ mes "[Chocolat]";
+ mes "Or you can go ahead and start with theory training.";
+ mes "What would you like to do?";
+ next;
+ switch(select("Send me to Basic Training.:Start Theory Training.")) {
+ case 1:
+ mes "[Chocolat]";
+ mes "Sure.";
+ mes "I will send you to Instructor Brade.";
+ mes "Instructor Brade will start your basic training.";
+ close2;
+ warp strnpcinfo(4),100,100;
+ end;
+ case 2:
+ mes "[Chocolat]";
+ mes "I will tell you about the people you will be seeing in Town.";
+ mes "There are many kinds of people in town and some of them will be helpful to know.";
+ next;
+ mes "[Chocolat]";
+ mes "There are a lot of people in town, but among them, these people are the most important to know.";
+ next;
+ mes "[Chocolat]";
+ mes "They are [Kafra] Employee's standing right behind me and their rival company the [Cool Event Corp].";
+ mes "When you visit a town for the first time, you should talk to the Information [Guide]";
+ next;
+ mes "[Chocolat]";
+ mes "Well then, let's hear from each of them.";
+ mes "Start by talking to the [Kafra] Employee.";
+ set job_novice_q,8;
+ setquest 7121;
+ next;
+ mes "^4d4dff- You've received a quest from Chocolat.";
+ mes "Please check the quest information window. -^000000";
+ close;
+ }
+ } else {
+ mes "[Chocolat]";
+ mes "You were still on the basic course.";
+ mes "You should go back to Instructor Brade or Jinha.";
+ next;
+ mes "[Chocolat]";
+ mes "If you don't know how to find them, I can send you to Instructor Brade, How about it?";
+ next;
+ switch(select("I will go myself.:Will you do that for me?")) {
+ case 1:
+ mes "[Chocolat]";
+ mes "Sure. Go out to the door to the right.";
+ close;
+ case 2:
+ mes "[Chocolat]";
+ mes "Sure.";
+ mes "I will see you later.";
+ close2;
+ warp strnpcinfo(4),100,100;
+ end;
+ }
}
- mes "[Chocolat]";
- mes "Sure. Go out to the door to the right.";
- close;
- }
- else if(job_novice_q == 9) {
+ } else if (job_novice_q == 7) {
mes "[Chocolat]";
mes "I will tell you about the people you will be seeing in Town.";
mes "There are many kinds of people in town and some of them will be helpful to know.";
@@ -513,46 +663,46 @@ new_1-2,32,172,4 script Chocolat#nv 96,{
mes "There are a lot of people in town, but among them, these people are the most important to know.";
next;
mes "[Chocolat]";
- mes "They are [Kafra] Agents standing right behind me and their rival company the [Cool Event].";
- mes "When you visit a town for the first time, you should talk to Information [Soldier].";
+ mes "They are [Kafra] Employee's standing right behind me and their rival company the [Cool Event Corp].";
+ mes "When you visit a town for the first time, you should talk to Information [Guide]";
next;
mes "[Chocolat]";
mes "Well then, let's hear from each of them.";
- mes "Start by talking to the [Kafra] agent.";
+ mes "Start by talking to the [Kafra] Employee.";
+ set job_novice_q,8;
setquest 7121;
- set job_novice_q,10;
close;
- }
- else if(job_novice_q == 10) {
+ } else if (job_novice_q == 8) {
mes "[Chocolat]";
mes "Here, talk to these guys standing behind me.";
- mes "Start with the [Kafra] gal behind me.";
+ mes "Start with the [Kafra] Employee behind me.";
close;
- }
- else if(job_novice_q == 11) {
+ } else if (job_novice_q == 9) {
mes "[Chocolat]";
mes "You've learned a lot about Kafra service huh?";
- mes "From now on, you can use the Kafra Server.";
+ mes "From now on, you can use the Kafra Service.";
+ next;
+ mes "[Chocolat]";
+ mes "During the Training Process, if you want to go straight to the town, you can use the Kafra Service to go there.";
+ mes "But, once you leave the Training Center, you can never come back here.";
next;
mes "[Chocolat]";
- mes "Next is Kafra's rival, [Cool Event] Staff!";
- mes "[Cool Event] Staff specialize in events.";
+ mes "Next is the Kafra's rival, [Cool Event Corp.] Staff!";
+ mes "[Cool Event Corp.] Staff specialize in events.";
mes "Well, why don't you talk to him yourself?";
close;
- }
- else if(job_novice_q == 12) {
+ } else if (job_novice_q == 10) {
mes "[Chocolat]";
- mes "After [Kafra] and [Cool Event], are the Information [Soldier]s.";
+ mes "After [Kafra] and [Cool Event Corp.], are the Information [Guide]'s.";
mes "They can seem insignificant but they can help you greatly when the time comes.";
next;
mes "[Chocolat]";
- mes "I've brought the Information Soldier from the City of Prontera.";
+ mes "I've brought the Information Guide from the City of Prontera.";
mes "Ask him what he actually does in town.";
close;
- }
- else if(job_novice_q == 13) {
+ } else if (job_novice_q == 11) {
mes "[Chocolat]";
- mes "How was the guide of the Information [Soldier]?";
+ mes "How was the explanation of the Information [Guide]?";
mes "Last is about using [Inn]s.";
mes "There's an Inn located in each town.";
next;
@@ -563,16 +713,11 @@ new_1-2,32,172,4 script Chocolat#nv 96,{
next;
mes "[Chocolat]";
mes "Besides these guys, there's many merchants selling various kind of items, so go check them out.";
+ set job_novice_q,12;
completequest 7121;
- getexp 300,0;
- getexp 300,0;
- getexp 300,0;
- getexp 300,0;
- getexp 300,0;
- getexp 300,20;
- getitem 7059,20; // Cargo_Free_Ticket
- getitem 7060,30; // Warp_Free_Ticket
- set job_novice_q,14;
+ getexp 1800,20;
+ getitem 7059,20; //Cargo_Free_Ticket
+ getitem 7060,30; //Warp_Free_Ticket
next;
mes "[Chocolat]";
mes "You've completed all the quests I gave you.";
@@ -587,280 +732,423 @@ new_1-2,32,172,4 script Chocolat#nv 96,{
mes "Real Combat Training will be given by Instructor Brade. You met him earlier.";
mes "I will send you to the Real Combat Training Field.";
close2;
- savepoint "new_1-3",96,21;
- warp "new_1-3",96,21;
+ set .@map$, "new_"+charat(strnpcinfo(4),4)+"-3";
+ savepoint .@map$,96,21;
+ warp .@map$,96,21;
end;
- }
- else if(job_novice_q > 13) {
+ } else {
mes "[Chocolat]";
- mes "What can I do for you?";
+ mes "Are you lost?";
next;
- select("");
- mes "[Chocolat]";
- mes "I will send you to the Real Combat Training Field right away.";
- close2;
- savepoint "new_1-3",96,21;
- warp "new_1-3",96,21;
- end;
+ switch(select("No, just looking around:Yes, send me to the Combat Training Field")) {
+ case 1:
+ mes "[Chocolat]";
+ mes "Okay, come back to me if";
+ mes "you need me to redirect you.";
+ close;
+ case 2:
+ mes "[Chocolat]";
+ mes "I will send you to the Real Combat Training Field.";
+ close2;
+ set .@map$, "new_"+charat(strnpcinfo(4),4)+"-3";
+ savepoint .@map$,96,21;
+ warp .@map$,96,21;
+ end;
+ }
}
- mes "[Chocolat]";
- mes "Why are you still here?";
- close2;
- warp "prontera",156,90;
- end;
}
+new_1-2,33,172,4 duplicate(NvChocolat) Chocolat#nv1 4W_KID
+new_2-2,33,172,4 duplicate(NvChocolat) Chocolat#nv2 4W_KID
+new_3-2,33,172,4 duplicate(NvChocolat) Chocolat#nv3 4W_KID
+new_4-2,33,172,4 duplicate(NvChocolat) Chocolat#nv4 4W_KID
+new_5-2,33,172,4 duplicate(NvChocolat) Chocolat#nv5 4W_KID
-// ---------- Kafra ----------
-new_1-2,29,176,4 script Kafra#nv 117,{
- if(job_novice_q < 10) {
- mes "[Kafra Agent]";
+- script Kafra Employee#newbe07::NvKafra -1,{
+ if (job_novice_q < 8) {
+ mes "[Kafra Employee]";
mes "Hello.";
mes "I don't think it's my turn yet.";
mes "Please talk to 'Chocolat' first.";
close;
- }
- else if(job_novice_q == 10) {
- mes "[Kafra Agent]";
+ } else if (job_novice_q == 8) {
+ mes "[Kafra Employee]";
mes "Hello.";
- mes "I've been dispatched by the Kafra Head Office to help Trainees.";
- mes "The Kafra Corporation is the world's largest company with a long and distinguished history on the Rune Midgard continent.";
+ mes "I've been dispatched by the Kafra Head Office to help trainees.";
+ mes "The Kafra Corporation is the world's largest company with a long and distinguished history on the Rune-Midgard continent.";
mes "It's important for you adventurers to be close with us.";
next;
- mes "[Kafra Agent]";
- mes "I will inform you about the Kafra Services which you will be using most frequently, [Save], [Storage], and [Teleport] Services.";
+ mes "[Kafra Employee]";
+ mes "I will inform you about the Kafra Services which you will be using most frequently, [Save], [Storage] and [Teleport] Services.";
next;
- mes "[Kafra Agent]";
- mes "When you talk to a Kafra Agent and ask for the Save Service, the location of where you will revive, after being defeated in battle, will be changed.";
+ mes "[Kafra Employee]";
+ mes "When you talk to a Kafra Employee and ask for the Save Service,";
+ mes "the location of where you will revive, after being defeated in battle, will be changed.";
next;
- mes "[Kafra Agent]";
- mes "Your Respawn Point is always the last place where you have saved.";
- mes "Using a Butterfly Wing will return you to the place where you last saved.";
+ 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 last saved.";
mes "This service is free to use, so feel free to use the Save Service anytime you like.";
next;
- mes "[Kafra Agent]";
- mes "Next is the Storage Service.";
+ callsub L_Services,2; //Storage
+ next;
+ callsub L_Services,3; //Teleport
+ set job_novice_q,9;
+ next;
+ mes "[Kafra Employee]";
+ mes "Do you want to hear another explanation?";
+ next;
+ while(1) {
+ set .@select, select("About Save:About Storage:About Teleport:About Cart:No More.");
+ if (.@select == 5) {
+ mes "[Kafra Employee]";
+ mes "I hope you are satisfied with my explanation";
+ mes "about the Kafra Service.";
+ close;
+ }
+ callsub L_Services, .@select;
+ next;
+ }
+ } else {
+ mes "[Kafra Employee]";
+ mes "Kafra Service at your service.";
+ mes "What can I do for you?";
+ next;
+ mes "[Kafra Employee]";
+ mes "Let me inform you before you use the Teleport Service.";
+ mes "If you teleport to the village,";
+ mes "^4d4dffyou can NEVER come back to the Novice Training Field.^000000";
+ mes "So keep that in mind.";
+ next;
+ switch(select("Teleport Service:About Kafra Service")) {
+ case 1:
+ mes "[Kafra Employee]";
+ mes "So, you are going straight to town.";
+ mes "Let me give you a brief introduction.";
+ mes "^4d4dffProntera is the Capital City of the Rune-Midgarts Kingdom, and right next to it is Izlude^000000.";
+ next;
+ mes "[Kafra Employee]";
+ mes "^4d4dffMorroc is the Desert City, you can change your job to Thief and Assassin^000000 here.";
+ mes "^4d4dffPayon is the Village in the Mountains, and it is close to the Archer Village^000000.";
+ mes "^4d4dffGeffen is the City of Magic. Go there if you want to become a Mage.^000000";
+ next;
+ mes "[Kafra Employee]";
+ mes "^4d4dffAlberta is the Port City and there you can find the Merchant Guild^000000.";
+ mes "Also, if you are trying to take a boat to go somewhere, you have to go through Alberta first.";
+ mes "Select the town you want to teleport to.";
+ next;
+ switch(select("Prontera:Morroc:Payon:Alberta:Geffen")) {
+ case 1:
+ mes "[Kafra Employee]";
+ mes "Rune-Midgarts' Capital, Prontera.";
+ mes "I will send you to Prontera.";
+ mes "May Freya bless you upon your journey.";
+ callfunc "F_NvErase";
+ close2;
+ savepoint "prontera",117,72;
+ warp "prontera",150,50;
+ end;
+ case 2:
+ mes "[Kafra Employee]";
+ mes "The Desert City, Morroc...";
+ mes "It has lost it's former glory...";
+ mes "Do not lose the dream in your heart right now.";
+ callfunc "F_NvErase";
+ close2;
+ savepoint "morocc",150,99;
+ warp "morocc",155,110;
+ end;
+ case 3:
+ mes "[Kafra Employee]";
+ mes "Hmm, you want to be an Archer?.";
+ mes "Let's go to Payon.";
+ mes "Let Freya bless you.";
+ callfunc "F_NvErase";
+ close2;
+ savepoint "payon",70,100;
+ warp "payon",166,67;
+ end;
+ case 4:
+ mes "[Kafra Employee]";
+ mes "The Port City, Alberta.";
+ mes "Main city for all trades on the Rune-Midgard continent.";
+ mes "If you want to experience other civilizations, you have to visit Alberta first.";
+ callfunc "F_NvErase";
+ close2;
+ savepoint "alberta",30,232;
+ warp "alberta",114,58;
+ end;
+ case 5:
+ mes "[Kafra Employee]";
+ mes "The City of Magic!";
+ mes "Geffen Tower is looking nice standing in the middle of Geffen City.";
+ mes "I will send you close to the Geffen fountain.";
+ mes "May Goddess Freya bless you!.";
+ callfunc "F_NvErase";
+ close2;
+ savepoint "geffen",119,37;
+ warp "geffen",122,65;
+ end;
+ }
+ case 2:
+ mes "[Kafra Employee]";
+ mes "I will explain about the Kafra Service.";
+ mes "Which Service do you want to be";
+ mes "informed about?";
+ next;
+ while(1) {
+ set .@select, select("About Save:About Storage:About Teleport:About Cart:No More.");
+ if (.@select == 5) {
+ mes "[Kafra Employee]";
+ mes "I hope you are satisfied with my explanation";
+ mes "about the Kafra Service.";
+ close;
+ }
+ callsub L_Services, .@select;
+ next;
+ }
+ }
+ }
+ end;
+
+L_Services:
+ switch(getarg(0)) {
+ case 1:
+ mes "[Kafra Employee]";
+ mes "When you are killed in a battle,";
+ mes "you can revive in the location you saved with this service.";
+ mes "If you save at a Kafra in each village";
+ mes "You can revive in the village you saved.";
+ next;
+ mes "[Kafra Employee]";
+ mes "Saved location is always where";
+ mes "you saved last, and by using a Butterfly Wing,";
+ mes "you can teleport directly to your saved point.";
+ mes "So feel free to use this service.";
+ break;
+ case 2:
+ mes "[Kafra Employee]";
+ mes "Next is about using the Storage Service.";
mes "You can store and retrieve your items in any town at your convenience.";
next;
- mes "[Kafra Agent]";
+ mes "[Kafra Employee]";
mes "It's unreasonable to carry all of your items with you when you don't need them right away.";
mes "Please use our Storage and keep your items safe and secure.";
next;
- mes "[Kafra Agent]";
- mes "Our convenient Storage Service is provided to our customers for a small fee which is different from town to town.";
- mes "However, you must be at least ^4A4AFFBasic Skill Level 6^000000 to use the Storage.";
+ 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.";
+ mes "However, you must be";
+ mes "at least ^3355FFBasic Skill Level 6^000000";
+ mes "to use the Storage.";
next;
- mes "[Kafra Agent]";
+ mes "[Kafra Employee]";
+ //mes "There are 3 different item sections of the Storage into which items are organized: Consumable, Equipment and Etc.";
mes "There are 7 different item sections of the Storage into which items are organized: Consumable, Kafra (Item Mall), Armor, Weapons, Ammo, Cards, and Etc items.";
next;
- mes "[Kafra Agent]";
- mes "There are a maximum of 600 Inventory Slots in Kafra Storage, meaning you can have up to 600 different kinds of total items in Storage.";
+
+ // VIP System messages.
+ mes "[Kafra Employee]";
+ mes "There are a maximum of 600 Inventory Slots in Kafra Storage, meaning you can have up to 600 different kinds of items in Storage.";
+ 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 Agent]";
+ mes "[Kafra Employee]";
mes "If you have a Premium Subscription, the maximum Inventory Slots in Kafra Storage is 600!";
mes "Remember though, that in the case of Equipment, each item takes up one Inventory Slot.";
mes "The maximum number of items that can be placed in Kafra Storage is 30,000.";
next;
- mes "[Kafra Agent]";
- mes "Storage is shared by everyone character on one account.";
- mes "Storage Fees can vary for each Town.";
+*/
+
+ mes "[Kafra Employee]";
+ mes "This Storage is shared by every character on one account.";
+ mes "Storage Fees can be vary for each Town.";
mes "So please keep that in mind when you are using our storage service.";
- next;
- mes "[Kafra Agent]";
+ break;
+ case 3:
+ mes "[Kafra Employee]";
mes "We also provide you with a Teleport Service to make your trips easier when you are trying to move a long distance.";
next;
- mes "[Kafra Agent]";
- mes "With our veteran teleporter's skill, your trip will be safer and more comfortable.";
+ mes "[Kafra Employee]";
+ mes "With our veteran teleporter's skill,";
+ mes "your trip will be safer and more comfortable.";
mes "Oh and remember that the places you can teleport to vary from town to town.";
next;
- mes "[Kafra Agent]";
- mes "This is all for your never ending support. We are working hard to repay our debt to our customers.";
- next;
- mes "[Kafra Agent]";
- mes "Do you want to hear another explanation?";
- set job_novice_q,11;
- next;
- }
- else {
- mes "[Kafra Agent]";
- mes "Kafra Service at your service";
- mes "What can I do for you?";
- next;
- select("About Kafra Service");
- mes "[Kafra Agent]";
- mes "I will explain about the Kafra Service.";
- mes "Which service do you want to be informed about?";
- next;
- }
-
- while(1) {
- switch(select("About Save:About Storage:About Teleport:About Cart:No More.")) {
- case 1:
- mes "[Kafra Agent]";
- mes "When you are killed in battle, you can revive in the location you saved with this service.";
- mes "If you save at a Kafra in a village, you can revive in the village you saved.";
- next;
- mes "[Kafra Agent]";
- mes "Saved location is always where you saved last, and by using a Butterfly Wing, you can teleport directly to your saved point.";
- mes "So feel free to use this service.";
- next;
- break;
- case 2:
- mes "[Kafra Agent]";
- mes "Next is the Storage Service.";
- mes "You can store and retrieve your items in any town at your convenience.";
- next;
- mes "[Kafra Agent]";
- mes "It's unreasonable to carry all of your items with you when you don't need them right away.";
- mes "Please use our Storage and keep your items safe and secure.";
- next;
- mes "[Kafra Agent]";
- mes "Our convenient Storage Service is provided to our customers for a small fee which is different from town to town.";
- mes "However, you must be at least ^4A4AFFBasic Skill Level 6^000000 to use the Storage.";
- next;
- mes "[Kafra Agent]";
- mes "There are 7 different item sections of the Storage into which items are organized: Consumable, Kafra (Item Mall), Armor, Weapons, Ammo, Cards, and Etc items.";
- next;
- mes "[Kafra Agent]";
- mes "There are a maximum of 600 Inventory Slots in Kafra Storage, meaning you can have up to 600 different kinds of total items in Storage.";
- next;
- mes "[Kafra Agent]";
- mes "If you have a Premium Subscription, the maximum Inventory Slots in Kafra Storage is 600!";
- mes "Remember though, that in the case of Equipment, each item takes up one Inventory Slot.";
- mes "The maximum number of items that can be placed in Kafra Storage is 30,000.";
- next;
- mes "[Kafra Agent]";
- mes "Storage is shared by everyone character on one account.";
- mes "Storage Fees can vary for each Town.";
- mes "So please keep that in mind when you are using our storage service.";
- next;
- break;
- case 3:
- mes "[Kafra Agent]";
- mes "We also provide you with a Teleport Service to make your trips easier when you are trying to move a long distance.";
- next;
- mes "[Kafra Agent]";
- mes "With our veteran teleporter's skill, your trip will be safer and more comfortable.";
- mes "Oh and remember that the places you can teleport to vary from town to town.";
- next;
- mes "[Kafra Agent]";
- mes "This is all for your never ending support. We are working hard to repay our debt to our customers.";
- next;
- break;
- case 4:
- mes "[Kafra Agent]";
- mes "The Kafra corporation provides Cart rental services to customers engaged in commercial business.";
- mes "Originally this cart rental service had been only provided by the merchant guild in Alberta.";
- next;
- mes "[Kafra Agent]";
- mes "However, since we took over this service, our merchant customers have been able to rent carts from almost anywhere.";
- mes "The cart rental service is available only for job classes engaged in commercial business such as ^4A4AFFMerchants, Blacksmiths, Alchemists, and Super Novices^000000.";
- next;
- mes "[Kafra Agent]";
- mes "Of course you should learn the 'Pushcart' skill beforehand, otherwise you will not be able to rent a cart from us.";
- mes "The rental fee varies by town, please keep that in mind.";
- next;
- break;
- case 5:
- mes "[Kafra Agent]";
- mes "I hope you are satisfied with my explanation about the Kafra Service.";
- close;
- }
+ mes "[Kafra Employee]";
+ mes "This is all for your never ending";
+ mes "support. We are working hard to";
+ mes "repay our dept to our customers.";
+ break;
+ case 4:
+ mes "[Kafra Employee]";
+ mes "The Kafra corporation provides Cart rental services";
+ mes "to customers engaged in commercial business.";
+ mes "Originally this cart rental service had been only provided";
+ mes "by the merchant guild in Alberta";
+ next;
+ mes "[Kafra Employee]";
+ mes "However, since we took over this service";
+ mes "our merchant customers have been able to rent carts from almost anywhere.";
+ mes "The cart rental service is available only for job classes engaged in commercial business";
+ mes "such as ^4d4dffMerchants, Blacksmiths, Alchemists, and Super Novices^000000.";
+ next;
+ mes "[Kafra Employee]";
+ mes "Of course you should learn the 'Pushcart' skill beforehand,";
+ mes "otherwise you will not be able to rent a cart from us.";
+ mes "The rental fee varies by town,";
+ mes "please keep that in mind.";
+ break;
}
+ return;
}
+new_1-2,30,176,4 duplicate(NvKafra) Kafra Employee#nv1 4_F_KAFRA1
+new_2-2,30,176,4 duplicate(NvKafra) Kafra Employee#nv2 4_F_KAFRA1
+new_3-2,30,176,4 duplicate(NvKafra) Kafra Employee#nv3 4_F_KAFRA1
+new_4-2,30,176,4 duplicate(NvKafra) Kafra Employee#nv4 4_F_KAFRA1
+new_5-2,30,176,4 duplicate(NvKafra) Kafra Employee#nv5 4_F_KAFRA1
-// ---------- Cool Event Staff ----------
-new_1-2,32,176,4 script Cool Event Staff#nv 874,{
- if(job_novice_q < 11) {
- mes "[Cool Event Staff]";
+- script Cool Event Corp. Staff::NvCool -1,{
+ if (job_novice_q < 9) {
+ mes "[Cool Event Corp. Staff]";
mes "This is not my turn.";
- mes "You finished talking to Kafra yet?";
+ mes "have you finished talking to the Kafra Employee yet?";
close;
- }
- else if(job_novice_q == 11) {
- mes "[Cool Event Staff]";
+ } else if (job_novice_q == 9) {
+ mes "[Cool Event Corp. Staff]";
mes "Hello.";
- mes "We are working hard to provide events on Rune Midgard similar to the Kafra service.";
+ mes "We are working hard to provide events on Rune-Midgard similar to the Kafra services.";
next;
- mes "[Cool Event Staff]";
- mes "Our staff is here to support you with [storage], [save], and [teleport] services.";
+ mes "[Cool Event Corp. Staff]";
+ mes "Our staff is here to support you with [storage], [save] and [teleport service].";
next;
- mes "[Cool Event Staff]";
+ mes "[Cool Event Corp. Staff]";
mes "If there's no Kafra around you, we're around to help you.";
next;
- mes "[Cool Event Staff]";
+ mes "[Cool Event Corp. Staff]";
mes "We are working hard on a network of Events to make your life better.";
mes "I hope that you can meet our staff in Alberta.";
next;
- mes "[Cool Event Staff]";
+ mes "[Cool Event Corp. Staff]";
mes "Who knows, we might meet outside of this academy.";
next;
- mes "[Cool Event Staff]";
- mes "Mostly all of us wear red coats in the places that the Kafra Staff don't work for.";
- set job_novice_q,12;
+ mes "[Cool Event Corp. Staff]";
+ mes "Mostly all of us wear red coats in the places that the Kafra Employee's don't work in.";
+ set job_novice_q,10;
+ close;
+ } else {
+ mes "[Cool Event Corp. Staff]";
+ mes "Most of our services are similar to those of the Kafra Corporation.";
close;
}
- mes "[Cool Event Staff]";
- mes "Most of our services are similar to those of Kafra.";
- close;
}
+new_1-2,33,176,4 duplicate(NvCool) Cool Event Corp. Staff::NvCool1 4_M_ZONDAMAN
+new_2-2,33,176,4 duplicate(NvCool) Cool Event Corp. Staff::NvCool2 4_M_ZONDAMAN
+new_3-2,33,176,4 duplicate(NvCool) Cool Event Corp. Staff::NvCool3 4_M_ZONDAMAN
+new_4-2,33,176,4 duplicate(NvCool) Cool Event Corp. Staff::NvCool4 4_M_ZONDAMAN
+new_5-2,33,176,4 duplicate(NvCool) Cool Event Corp. Staff::NvCool5 4_M_ZONDAMAN
-// ---------- Soldier ----------
-new_1-2,35,176,4 script Soldier#nv 105,{
- if(job_novice_q < 12) {
- mes "[Soldier]";
- mes "It isn't my turn yet.";
+- script Guide::NvGuide -1,{
+ if (job_novice_q < 10) {
+ mes "[Guide]";
+ mes "It ain't my turn yet.";
mes "Listen to Chocolat.";
close;
- }
- else if(job_novice_q == 12) {
- mes "[Soldier]";
- mes "Soldiers are in each town to guide you to useful places.";
- mes "Ask us where you want to go and we'll mark your mini maps with a ^4A4AFF+^000000.";
+ } else if (job_novice_q == 10) {
+ mes "[Guide]";
+ mes "Guides are in each town to guide you to useful places.";
+ mes "Ask us where you want to go and we'll mark your mini maps with a ^4d4dff+^000000.";
mes "Don't hesitate to ask us questions.";
next;
- mes "[Soldier]";
+ mes "[Guide]";
mes "We all don't look the same in every town but our roles are the same.";
mes "Take note of this whenever you go to a new town.";
next;
- mes "[Soldier]";
- mes "If you want to go to your first town, you can do so once you have reached Base Level 11 in the training grounds.";
- set job_novice_q,13;
- close;
- }
- mes "[Soldier]";
- mes "What can I help you with?";
- mes "Need me to explain what I do again?";
- next;
- if(select("Yes, I need an explanation.:Nope") == 2) {
- mes "[Soldier]";
- mes "Ok well talk to Chocolat if you're done talking with us.";
+ mes "[Guide]";
+ mes "If you want to go to your first town, you can ask the Kafra Employee to the left.";
+ mes "You can move there with the Teleport Service.";
+ set job_novice_q,11;
close;
+ } else {
+ mes "[Guide]";
+ mes "What can I help you with?";
+ mes "Need me to explain what I do again?";
+ next;
+ switch(select("Yes, I need an explanation.:Nope.")) {
+ case 1:
+ mes "[Guide]";
+ mes "Guides are in each town to guide you to useful places in each town.";
+ mes "Ask us where you want to go and we'll mark your mini maps with a ^4d4dff+^000000.";
+ mes "Don't hesitate to ask us questions.";
+ next;
+ mes "[Guide]";
+ mes "We all don't look the same in every town but our roles are the same.";
+ mes "Take note of this whenever you go to a new town.";
+ next;
+ mes "[Guide]";
+ mes "If you want to go to your first town, you can ask the Kafra Employee to the left.";
+ mes "You can move there with the Teleport Service.";
+ close;
+ case 2:
+ mes "[Guide]";
+ mes "Ok well talk to Chocolat if you're done talking with us.";
+ close;
+ }
}
- mes "[Soldier]";
- mes "Soldiers are in each town to guide you to useful places.";
- mes "Ask us where you want to go and we'll mark your mini maps with a ^4A4AFF+^000000.";
- mes "Don't hesitate to ask us questions.";
- next;
- mes "[Soldier]";
- mes "We all don't look the same in every town but our roles are the same.";
- mes "Take note of this whenever you go to a new town.";
- next;
- mes "[Soldier]";
- mes "If you want to go to your first town, you can do so once you have reached Base Level 11 in the training grounds.";
- close;
}
+new_1-2,36,176,4 duplicate(NvGuide) Guide#nv1 8W_SOLDIER
+new_2-2,36,176,4 duplicate(NvGuide) Guide#nv2 8W_SOLDIER
+new_3-2,36,176,4 duplicate(NvGuide) Guide#nv3 8W_SOLDIER
+new_4-2,36,176,4 duplicate(NvGuide) Guide#nv4 8W_SOLDIER
+new_5-2,36,176,4 duplicate(NvGuide) Guide#nv5 8W_SOLDIER
-// Instructor Brade (Real Combat Training)
+// Real Combat Training
//============================================================
-- script Brade#nv::NvBrade 733,{
- if(job_novice_q < 14) {
- mes "[Brade]";
- mes "How did you get here?";
- close2;
- warp "new_1-2",100,100;
- end;
- }
- else if(job_novice_q == 14) {
+- script Brade#newbe04::NvBradeB -1,{
+ if (job_novice_q < 12) {
+ if (job_novice_q < 2) {
+ mes "[Brade]";
+ mes "You have participated on the previous Training Grounds.";
+ mes "The Training Grounds have now come under new management.";
+ next;
+ mes "[Brade]";
+ mes "Do you want to do the basic course,";
+ mes "or do you just want to go through from here?";
+ next;
+ switch(select("Send me to Basic Training.:I'll start from here.")) {
+ case 1:
+ mes "[Brade]";
+ mes "Ok. I'll send you to the basic course.";
+ close2;
+ warp "new_"+charat(strnpcinfo(4),4)+"-2",100,100;
+ end;
+ case 2:
+ mes "[Brade]";
+ mes "Then we will start your training.";
+ mes "I'll write down the registration form.";
+ set job_novice_q,12;
+ close;
+ }
+ } else {
+ mes "[Brade]";
+ mes "I think you came back from theory training course,";
+ mes "can I send you back to there or do you just want to go through from here?";
+ next;
+ switch(select("Send me back to Chocolat.:I'll start from here.")) {
+ case 1:
+ mes "[Brade]";
+ mes "Ok. I'll send you to Chocolat.";
+ close2;
+ warp "new_"+charat(strnpcinfo(4),4)+"-2",41,172;
+ end;
+ case 2:
+ mes "[Brade]";
+ mes "Then we will start your training.";
+ mes "I'll write down the registration form.";
+ set job_novice_q,12;
+ close;
+ }
+ }
+ } else if (job_novice_q == 12) {
mes "[Brade]";
mes "Welcome.";
mes "Now this is real practice.";
@@ -872,113 +1160,163 @@ new_1-2,35,176,4 script Soldier#nv 105,{
next;
mes "[Brade]";
mes "For convenience,";
- mes "^4A4AFFIf you hold down the Ctrl key,^000000";
- mes "while attacking, you will automatically attack.";
+ mes "^4d4dffIf you hold down the Ctrl key,^000000 while attacking, you will automatically attack.";
next;
mes "[Brade]";
- mes "You can also set this mode before battle by typing ^4A4AFF[ /nc ]^000000.";
+ mes "You can also set this mode before battle by typing ^4d4dff[ /nc ]^000000.";
next;
mes "[Brade]";
mes "Then, let's go Poring hunting.";
- mes "Please hunt Poring's on Level 1 of the training grounds.";
+ mes "Please hunt 'Poring's on Level 1 of the training grounds.";
+ set job_novice_q,13;
setquest 7122;
- set job_novice_q,15;
- getitem 569,100; // Novice_Potion
+ getitem 569,100; //Novice_Potion
+ savepoint strnpcinfo(4),96,21;
next;
- mes "^4A4AFF- You've received a quest from Instructor Brade.^000000";
- mes "^4A4AFFPlease check the quest information window. -^000000";
+ mes "^4d4dff- You've received a quest from Instructor Brade.";
+ mes "Please check the quest information window. -^000000";
+ close2;
+ } else if (job_novice_q < 15) {
+ if (job_novice_q == 13) {
+ if (checkquest(7122,HUNTING) == 2) {
+ mes "[Brade]";
+ mes "You can see it is not so hard, huh?";
+ mes "Nice job.";
+ set job_novice_q,14;
+ getitem 13040,1; //N_Cutter
+ getexp 3000,30;
+ completequest 7122;
+ next;
+ } else {
+ mes "[Brade]";
+ mes "Kill enough Porings.";
+ mes "Porings are easy to deal with, so cheer up.";
+ mes "Try again.";
+ npcskill "AL_HEAL",11,99,60;
+ close;
+ }
+ }
+ mes "[Brade]";
+ mes "Now all of the courses are almost done.";
+ mes "You are a Novice, and you can't get any jobs yet.";
+ next;
+ mes "[Brade]";
+ mes "If you acquire all of basic skills with JOB Level 10, you can change your job.";
+ next;
+ mes "[Brade]";
+ mes "The first Job classes are defined into 6 classes.";
+ next;
+ mes "[Brade]";
+ mes "The 6 basic jobs are";
+ mes "Swordman, Thief,";
+ mes "Acolyte, Mage,";
+ mes "Archer and Merchant.";
+ next;
+ mes "[Brade]";
+ mes "Let's experience the basic 6 jobs, Swordman, Thief, Acolyte, Mage, Archer and Merchant and see what those jobs can do.";
+ next;
+ mes "[Brade]";
+ mes "Behind me, there are people dispatched from each of the basic Job Guilds.";
+ mes "These people will give you instruction manuals that allow you to experience some limited skills of each job.";
+ next;
+ mes "[Brade]";
+ mes "Equip a manual of the job which you want to experience, and you will be able to use some basic skills of that corresponding job.";
+ mes "Try those skills and decide which job to choose.";
+ set job_novice_q,15;
close;
- }
- else if(job_novice_q == 15) {
- if(checkquest(7122,HUNTING) == 2) {
- mes "[Brade]";
- mes "You can see it is not so hard, right?";
- mes "Nice job.";
- getitem 13040,1; // N_Cutter
- getexp 1000,0;
- getexp 1000,0;
- getexp 1000,30;
- completequest 7122;
- set job_novice_q,16;
- next;
- mes "[Brade]";
- mes "Now all of the courses are almost done.";
- mes "You are a Novice, and you can't get any jobs yet.";
- next;
- mes "[Brade]";
- mes "If you acquire all of basic skills with Job Level 10, you can change your job.";
- next;
- mes "[Brade]";
- mes "The first job classes are defined into 6 classes.";
- next;
+ } else {
+ mes "[Brade]";
+ mes "Have you tried the skills in the Manuals?";
+ mes "If you want to hear information about each job, talk to the people dispatched by the Job Guilds.";
+ next;
+ mes "[Brade]";
+ mes "I think you've learned enough, do you want to quit and go to your first town?";
+ next;
+ switch(select("I will stay little longer.:I want to quit and go to the town.")) {
+ case 1:
mes "[Brade]";
- mes "The 6 basic jobs are";
- mes "Swordman, Thief,";
- mes "Acolyte, Mage,";
- mes "Archer and Merchant.";
+ mes "It's ok to stay here and practice until you think you are ready.";
next;
mes "[Brade]";
- mes "Let's experience the basic 6 jobs, Swordman, Thief, Acolyte, Mage, Archer and Merchant and see what those jobs can do.";
- next;
+ mes "Try using the job manuals to find out the characteristics of each job's skills.";
+ mes "I will restore your HP and SP... Keep it up.";
+ npcskill "AL_HEAL",11,99,60;
+ percentheal 0,100;
+ close;
+ case 2:
mes "[Brade]";
- mes "Behind me, there are people dispatched from each of the basic Job Guilds.";
- mes "These people will give you instruction manuals that allow you to experience some limited skills of each job.";
+ mes "Looks like you are ready.";
+ mes "I guess you have made up your mind, huh?";
+ mes "Well, where do you want to go?";
next;
- mes "[Brade]";
- mes "Equip a manual of the job which you want to experience, and you will be able to use some basic skills of that corresponding job.";
- mes "Try those skills and decide which job to choose.";
- close;
+ switch(select("Prontera:Morroc:Payon:Alberta:Geffen:Cancel")) {
+ case 1:
+ mes "[Brade]";
+ mes "Prontera, the Capital city of the Rune-Midgarts Kingdom.";
+ mes "Take care and god bless you on your journey.";
+ callfunc "F_NvErase";
+ close2;
+ savepoint "prontera",117,72;
+ warp "prontera",150,50;
+ end;
+ case 2:
+ mes "[Brade]";
+ mes "The Desert Town, Morroc...";
+ mes "There's lots of hidden stories within that town.";
+ mes "Take care.";
+ callfunc "F_NvErase";
+ close2;
+ savepoint "morocc",150,99;
+ warp "morocc",155,110;
+ end;
+ case 3:
+ mes "[Brade]";
+ mes "You've selected Payon.";
+ mes "God bless you.";
+ callfunc "F_NvErase";
+ close2;
+ savepoint "payon",70,100;
+ warp "payon",166,67;
+ end;
+ case 4:
+ mes "[Brade]";
+ mes "Alberta, the Port City.";
+ mes "It's the main hub of all trades.";
+ mes "If you want to meet with other civilizations, you have to go to Alberta first.";
+ mes "Well then, god bless you on your soul.";
+ callfunc "F_NvErase";
+ close2;
+ savepoint "alberta",30,232;
+ warp "alberta",114,58;
+ end;
+ case 5:
+ mes "[Brade]";
+ mes "Geffen, the City of Magic.";
+ mes "Geffen Tower in the middle of the city is nice.";
+ mes "I will send you near the Geffen fountain.";
+ mes "May Goddess Freya bless you.";
+ callfunc "F_NvErase";
+ close2;
+ savepoint "geffen",119,37;
+ warp "geffen",122,65;
+ end;
+ case 6:
+ mes "[Brade]";
+ mes "Yeah... Think with prudence.";
+ mes "...Meet up with the people from each guild.";
+ close;
+ }
}
- mes "[Brade]";
- mes "Kill enough Porings.";
- mes "Porings are easy to deal with, so cheer up.";
- mes "Try again.";
- npcskill "AL_HEAL",10,99,60;
- close;
- }
- mes "[Brade]";
- mes "Have you tried the skills in the Manuals?";
- mes "If you want to hear information about each job, talk to the people dispatched by the Job Guilds.";
- next;
- mes "[Brade]";
- mes "I think you've learned enough, if you want to learn more, then speak to the Eden Group girl next to the Trainers.";
- next;
- mes "[Brade]";
- mes "Try using the job manuals to find out the characteristics of each job's skills.";
- mes "I will restore your HP and SP... Keep it up.";
- npcskill "AL_HEAL",10,99,60;
- close;
-}
-
-new_1-3,96,30,4 duplicate(NvBrade) Brade#nv1 733
-new_2-3,96,30,4 duplicate(NvBrade) Brade#nv2 733
-new_3-3,96,30,4 duplicate(NvBrade) Brade#nv3 733
-new_4-3,96,30,4 duplicate(NvBrade) Brade#nv4 733
-new_5-3,96,30,4 duplicate(NvBrade) Brade#nv5 733
-
-// Job Guides (Real Combat Training)
-//============================================================
-// --------------------------- Deletion Function ------------------------------
-function script F_NvErase {
- if (getarg(0,0)) {
- if (checkquest(7123) == 0 || checkquest(7123) == 1) erasequest 7123;
- if (checkquest(7124) == 0 || checkquest(7124) == 1) erasequest 7124;
- if (checkquest(7126) == 0 || checkquest(7126) == 1) erasequest 7126;
- if (checkquest(7127) == 0 || checkquest(7127) == 1) erasequest 7127;
}
- nude;
- if (countitem(2819)) delitem 2819,1; // Swordsman_Manual
- if (countitem(2820)) delitem 2820,1; // Thief_Manual
- if (countitem(2821)) delitem 2821,1; // Acolyte_Manual
- if (countitem(2822)) delitem 2822,1; // Archer_Manual
- if (countitem(2823)) delitem 2823,1; // Merchant_Manual
- if (countitem(2824)) delitem 2824,1; // Mage_Manual
- return;
}
+new_1-3,96,30,4 duplicate(NvBradeB) Brade#nv1b 4_M_JOB_KNIGHT1
+new_2-3,96,30,4 duplicate(NvBradeB) Brade#nv2b 4_M_JOB_KNIGHT1
+new_3-3,96,30,4 duplicate(NvBradeB) Brade#nv3b 4_M_JOB_KNIGHT1
+new_4-3,96,30,4 duplicate(NvBradeB) Brade#nv4b 4_M_JOB_KNIGHT1
+new_5-3,96,30,4 duplicate(NvBradeB) Brade#nv5b 4_M_JOB_KNIGHT1
-// ---------------------------- Swordman Guide -------------------------------
-- script Swordman Guide#nv::NvSwd 728,{
- if(job_novice_q < 16) {
+- script Swordman Guide#newbe10::NvSwordman -1,{
+ if (job_novice_q < 15) {
mes "[Swordman Guildsman]";
mes "I won't help you until you finish Brade's instructions.";
close;
@@ -987,291 +1325,248 @@ function script F_NvErase {
mes "Can I help you?";
next;
switch(select("About Swordman Class.:Job change to Swordman.:Got any quests?:Cancel.")) {
- case 1:
- mes "[Swordman Guildsman]";
- mes "Literally, Swordman means one, who is specialized in wielding swords.";
- mes "But they can also choose to use spears if they so choose.";
- next;
+ case 1:
+ mes "[Swordman Guildsman]";
+ mes "Literally, Swordman means one, who";
+ mes "is specialized in wielding swords.";
+ mes "But they can also choose to use spears if they so choose.";
+ next;
+ mes "[Swordman Guildsman]";
+ mes "We possesses strong physical strength.";
+ mes "So naturally we can equip heavy armors and weapons.";
+ mes "Most weapon classes, except for bows and rods,";
+ mes "are equippable by our class.";
+ next;
+ mes "[Swordman Guildsman]";
+ mes "The only weakness of the Swordman class is that they cannot use magic spells.";
+ mes "But we've compensated for that by using elemental weapons.";
+ next;
+ mes "[Swordman Guildsman]";
+ mes "The merits of being a Swordman is the enormous amount of HP we have.";
+ mes "Most of us can bear the grunt of our enemies' attacks with relative ease.";
+ next;
+ mes "[Swordman Guildsman]";
+ mes "And we are unrivaled when it comes to one-on-one melee combat.";
+ next;
+ mes "[Swordman Guildsman]";
+ mes "Anyone who chooses to be a Swordman will likely play the role of the tank. It is our duty to protect the weak.";
+ next;
+ mes "[Swordman Guildsman]";
+ mes "As a Swordman you can advance to a ^8E2323Knight^000000 or ^8E2323Crusader^000000 class as your 2nd class profession.";
+ mes "And just recently third professions have been discovered.";
+ next;
+ if (isequipped(2819) || countitem(2819)) {
mes "[Swordman Guildsman]";
- mes "We possess strong physical strength.";
- mes "So naturally we can equip heavy armors and weapons.";
- mes "Most weapon classes, except for bows and rods, are equippable by our class.";
- next;
+ mes "Try the Swordman skills listed in the manual.";
+ mes "Open your skill menu by pressing Alt + S";
+ mes "Make sure it is in list mode by clicking the minimize button on the top right corner of the Skill Menu.";
+ close;
+ }
+ mes "[Swordman Guildsman]";
+ mes "If you're interested in being a Swordman, I'll offer you this manual.";
+ mes "Do you want to try the skills of a Swordman?";
+ next;
+ switch(select("I'll try the Swordman skills.:No thanks.")) {
+ case 1:
mes "[Swordman Guildsman]";
- mes "The only weakness of the Swordman class is that they cannot use magic spells.";
- mes "But we've compensated for that by using elemental weapons.";
+ mes "Here is the Swordman manual.";
+ mes "I'll just take any manuals from any other classes you have.";
next;
- mes "[Swordman Guildsman]";
- mes "The merits of being a Swordman is the enormous amount of HP we have.";
- mes "Most of us can bear the grunt of our enemies' attacks with relative ease.";
+ callfunc "F_NvErase";
+ getitem 2819,1; //Swordman_Manual
next;
mes "[Swordman Guildsman]";
- mes "And we are unrivaled when it comes to one-on-one melee combat.";
- next;
+ mes "After equipping the Manual, open your Skill menu by pressing ALT+S.";
+ mes "Make sure to minimize your Skill tree by clicking the '-' button on the top right corner of the Skill Tree Window.";
+ close;
+ case 2:
mes "[Swordman Guildsman]";
- mes "Anyone who chooses to be a Swordman will likely play the role of the tank. It is our duty to protect the weak.";
- next;
+ mes "Hum. Do you think so?";
+ mes "Ok, I agree with you. Choosing a job is very important in our lives.";
+ mes "Just talk to me whenever you want to experience Swordman skills.";
+ close;
+ }
+ case 2:
+ mes "[Swordman Guildsman]";
+ mes "Do you really want to change your job to Swordman?";
+ mes "If you want to be a Swordman, I'll send you to the Swordman Association immediately.";
+ next;
+ mes "[Swordman Guildsman]";
+ mes "I think you have enough job levels, of course, right?";
+ mes "Do you want to stop your training now and go to the Swordman Association?";
+ next;
+ switch(select("I'll consider it again.:I'll go to the Swordman Association.")) {
+ case 1:
mes "[Swordman Guildsman]";
- mes "As a Swordman you can advance to a ^8C2121Knight^000000 or ^8C2121Crusader^000000 class as your 2nd class profession.";
- mes "And just recently third professions have been discovered.";
- if(countitem(2819) == 0 && (getequipid(EQI_ACC_L) != 2819 || getequipid(EQI_ACC_R) != 2819)) {
- next;
- mes "[Swordman Guildsman]";
- mes "If you're interested in being a Swordman, I'll offer you this manual.";
- mes "Do you want to try the skills of a Swordman?";
- next;
- if(select("I'll try the Swordman skills.:No Thanks.") == 2) {
- mes "[Swordman Guildsman]";
- mes "Hum. Do you think so?";
- mes "Ok, I agree with you. Choosing a job is very important in our lives.";
- mes "Just talk to me whenever you want to experience Swordman skills.";
- close;
- }
- mes "[Swordman Guildsman]";
- mes "Here is the Swordman manual.";
- mes "I'll just take any manuals from any other classes you have.";
- callfunc "F_NvErase";
- getitem 2819,1; // Swordsman_Manual
- next;
- mes "[Swordman Guildsman]";
- mes "After equipping the Manual, open your Skill menu by pressing ALT+S.";
- mes "Make sure to minimize your Skill tree by clicking the '-' button on the top right corner of the Skill Tree Window.";
- }
+ mes "Please try enough instruction manuals from each job class and consider it carefully.";
+ mes "Of course, you're always welcomed.";
close;
case 2:
mes "[Swordman Guildsman]";
- mes "Do you really want to change your job to Swordman?";
- mes "If you want to be a Swordman, I'll send you to the Swordman Guild immediately.";
+ mes "I see.";
+ mes "Then I'll end your training process and send you to the Swordman Guild.";
+ callfunc "F_NvErase",1;
+ close2;
+ savepoint "izlude",128,98; // Old coordinates: (95,104)
+ warp "izlude_in",74,167;
+ end;
+ }
+ case 3:
+ set .@quest, checkquest(7123);
+ if (.@quest == -1) {
+ mes "[Swordman Guildsman]";
+ mes "You want me to give you a quest?";
+ mes "Umm. Let me see.";
+ mes "Ok! Hunt a couple of Picky monsters around here?";
+ next;
+ mes "^4d4dffYou received a hunting request from a staff of the Swordman Guild.";
+ mes "You can check the contents of the quest from the quest information window.^000000";
+ setquest 7123;
next;
mes "[Swordman Guildsman]";
- mes "I think you have enough job levels, of course, right?";
- mes "Do you want to stop your training now and go to the Swordman Guild?";
+ mes "Use the 'Bash' skill in the Swordman manual.";
+ mes "Open your Skill Tree by pressing ^4d4dffAlt + S^000000 and minimize the window by pressing the ^4d4dff'-'^000000 button on the top right corner of the window to see the available Swordman skills.";
next;
- if(select("I'll consider it again.:I'll go to the Swordman Guild.") == 2) {
- mes "[Swordman Guildsman]";
- mes "I see.";
- mes "Then I'll end your training process and send you to the Swordman Guild.";
- close2;
- callfunc "F_NvErase",1;
- savepoint "izlude",94,103;
- warp "izlude_in",74,167;
- end;
- }
mes "[Swordman Guildsman]";
- mes "Please try enough instruction manuals from each job class and consider it carefully.";
- mes "Of course, you're always welcomed.";
+ mes "Talk to Trainer Brutus if you want to fight stronger monsters.";
+ mes "I'll wait for you here.";
+ mes "Wish you a good luck.";
close;
- case 3:
- set .@quest, checkquest(7123);
- if (.@quest == -1) {
- mes "[Swordman Guildsman]";
- mes "You want me to give you a quest?";
- mes "Umm. Let me see.";
- mes "Ok! Hunt a couple of Picky monsters around here.";
- next;
- mes "^4d4dffYou received a hunting request from a staff of the Swordman Guild.";
- mes "You can check the contents of the quest from the quest information window.^000000";
- setquest 7123;
- next;
- mes "[Swordman Guildsman]";
- mes "Use the 'Bash' skill in the Swordman manual.";
- mes "Open your Skill Tree by pressing ^4A4AFFAlt + S^000000 and minimize the window by pressing the '-' button on the top right corner of the window to see the available Swordman skills.";
- next;
+ } else if (.@quest == 0 || .@quest == 1) {
+ if (checkquest(7123,HUNTING) == 2) {
mes "[Swordman Guildsman]";
- mes "Talk to Trainer Brutus if you want to fight stronger monsters.";
- mes "I'll wait for you here.";
- mes "Wish you a good luck.";
+ mes "Great.";
+ mes "I think that you're good enough to be a Swordman.";
+ mes "I'll give you some potions as a reward.";
+ completequest 7123;
+ getitem 569,200; //Novice_Potion
+ getexp 5000,100;
close;
- }
- else if (.@quest == 1) {
- if (checkquest(7123,HUNTING) == 2) {
- mes "[Swordman Guildsman]";
- mes "Great.";
- mes "I think that you're good enough to be a Swordman.";
- mes "I'll give you some potions as a reward.";
- completequest 7123;
- getitem 569,200; // Novice_Potion
- getexp 5000,100;
- close;
- }
+ } else {
mes "[Swordman Guildsman]";
mes "Hunt two Picky monsters.";
mes "You can find them in the more difficult training grounds by talking to Trainer Brutus.";
close;
}
- else if (.@quest == 2) {
- mes "[Swordman Guildsman]";
- mes "I think you finished that quest already, right?";
- mes "You'll experience more of these quests as you grow as an adventurer in the world.";
- next;
- mes "[Swordman Guildsman]";
- mes "Your training is now complete.";
- mes "If you choose to become a Swordman I wish you goodluck.";
- close;
- }
+ } else if (.@quest == 2) {
mes "[Swordman Guildsman]";
- mes "I'm sorry but I don't have any quests to give you right now.";
+ mes "I think you finished that quest already, right?";
+ mes "You'll experience more of these quests as you grow as an adventurer in the world.";
+ next;
+ mes "[Swordman Guildsman]";
+ mes "Your training is now complete.";
+ mes "If you choose to become a Swordman I wish you good luck.";
close;
- case 4:
+ } else {
mes "[Swordman Guildsman]";
- mes "If you have any questions about the Swordman class, please ask me.";
- mes "The Swordman Guild is waiting for novices like you.";
+ mes "I'm sorry but I don't have any quests to give you right now.";
close;
+ }
+ case 4:
+ mes "[Swordman Guildsman]";
+ mes "If you have any questions about the Swordman class, please ask me.";
+ mes "The Swordman Guild is waiting for novices like you.";
+ close;
}
}
+new_1-3,97,41,3 duplicate(NvSwordman) Swordman Guide#nv1 4_F_JOB_KNIGHT
+new_2-3,97,41,3 duplicate(NvSwordman) Swordman Guide#nv2 4_F_JOB_KNIGHT
+new_3-3,97,41,3 duplicate(NvSwordman) Swordman Guide#nv3 4_F_JOB_KNIGHT
+new_4-3,97,41,3 duplicate(NvSwordman) Swordman Guide#nv4 4_F_JOB_KNIGHT
+new_5-3,97,41,3 duplicate(NvSwordman) Swordman Guide#nv5 4_F_JOB_KNIGHT
-new_1-3,97,41,4 duplicate(NvSwd) Swordman Guide#nv1 728
-new_2-3,97,41,4 duplicate(NvSwd) Swordman Guide#nv2 728
-new_3-3,97,41,4 duplicate(NvSwd) Swordman Guide#nv3 728
-new_4-3,97,41,4 duplicate(NvSwd) Swordman Guide#nv4 728
-new_5-3,97,41,4 duplicate(NvSwd) Swordman Guide#nv5 728
-
-// ---------------------------- Mage Guide ----------------------------------
-- script Mage Guide#nv::NvMag 123,{
- if(job_novice_q < 16) {
- mes "[Mage Guild Member]";
- mes "You are still in the process of training with Instructor Brade.";
+- script Acolyte Guide#newbe10::NvAcolyte -1,{
+ if (job_novice_q < 15) {
+ mes "[Prontera Acolyte]";
+ mes "You look like you are not done with Instructor Brade's lessons.";
close;
}
- mes "[Mage Guild Member]";
- mes "What can I help you with?";
+ mes "[Prontera Acolyte]";
+ mes "What can I do for you?";
next;
- switch(select("Tell me about Mages:I want to be a Mage:Give me a Quest:Cancel")) {
+ switch(select("What is an Acolyte?:Job change to Acolyte.:Cancel")) {
case 1:
- mes "[Mage Guild Member]";
- mes "Mages are those who can use magic when they need to protect their friends.";
- mes "Mages can curse enemies using the elements of fire, water, earth and thunder magic.";
+ mes "[Prontera Acolyte]";
+ mes "An Acolyte is someone who worships the goddess Freya sacrificing themselves to help others.";
next;
- mes "[Mage Guild Member]";
- mes "However they cannot equip other weapons but staffs and books.";
- mes "Because they are too delicate to carry heavy weapons.";
+ mes "[Prontera Acolyte]";
+ mes "Acolytes use supportive skills to make combat easier.";
+ mes "It is essential to have an Acolyte in any successful party.";
next;
- mes "[Mage Guild Member]";
- mes "But they can cover this weakness by their remarkable magic skills.";
- mes "That is why many people want to become a Mage!";
+ mes "[Prontera Acolyte]";
+ mes "^8E2323As an Acolyte, you can upgrade your future job to Priest or Monk^8E2323.";
next;
- mes "[Mage Guild Member]";
- mes "Mages have to be in their guild for guild's power and honor.";
- mes "This is one of the reasons why Mages are popular in any parties and guilds.";
- mes "Why don't you become a Mage?";
+ if (isequipped(2821) || countitem(2821)) {
+ mes "[Prontera Acolyte]";
+ mes "Try the Acolyte Skills with the manual you have. It will help you understand the job easier.";
+ mes "Open your Skill Tree by pressing ^4d4dffAlt + S^000000 and minimize the window by pressing the ^4d4dff'-'^000000 button on the top right corner of the window to see the available skills.";
+ close;
+ }
+ mes "[Prontera Acolyte]";
+ mes "If you want, I can give you a skill manual to experience what it is like to be an Acolyte.";
+ mes "Would you like to experience the skills of an Acolyte?";
next;
- mes "[Mage Guild Member]";
- mes "^8C2121Mages can transform to Wizards or Sages as their second job.^000000";
- if(countitem(2824) == 0 && (getequipid(EQI_ACC_L) != 2824 || getequipid(EQI_ACC_R) != 2824)) {
- next;
- mes "[Mage Guild Member]";
- mes "Do you want to register to experience how it is to be a Mage?";
- mes "Would you like to test Mage skills?";
- next;
- if(select("I want to test Mage skills.:I don't want to test it.") == 2) {
- mes "[Mage Guild Member]";
- mes "Hum. Do you think so.";
- mes "Ok, I agree with you. Choosing a job is very important in our life.";
- mes "Just talk to me whenever you want to experience Mage skills.";
- close;
- }
- mes "[Mage Guild Member]";
- mes "Here is the Mage Manual.";
- mes "I will take the other job registration forms and manuals from you.";
+ switch(select("Yes, please.:No, I'm not interested.")) {
+ case 1:
+ mes "[Prontera Acolyte]";
+ mes "Here you go, the instruction manual of an Acolyte.";
+ mes "I will take away those other job's manuals while you study this one.";
next;
- mes "[Mage Guild Member]";
- mes "Here is the Mage Manual.";
- mes "I will take the other job registration forms and manuals from you.";
callfunc "F_NvErase";
- getitem 2824,1; // Mage_Manual
+ getitem 2821,1; //Acolyte_Manual
next;
- mes "[Mage Guild Member]";
- mes "After equipping the Manual, open your Skill menu by pressing ALT+S.";
- mes "Make sure to minimize your Skill tree by clicking the '-' button on the top right corner of the Skill Tree Window.";
+ mes "[Prontera Acolyte]";
+ mes "Make sure to equip the Skill Manual by double-clicking it in the Inventory Window.";
+ mes "Open your Skill Tree by pressing ^4d4dffAlt + S^000000 and minimize the window by pressing the ^4d4dff'-'^000000 button on the top right corner of the window to see the available skills.";
+ close;
+ case 2:
+ mes "[Prontera Acolyte]";
+ mes "Hum. Do you think so.";
+ mes "Ok, I agree with you. Choosing a job is very important in our life.";
+ mes "Just talk to me whenever you want to know about Acolytes.";
+ close;
}
- close;
case 2:
- mes "[Mage Guild Member]";
- mes "You want to be a Mage?";
- mes "Ok, then, I will send you to the Mage Guild union in Geffen right away.";
+ mes "[Prontera Acolyte]";
+ mes "Do you really want to become an Acolyte?";
+ mes "If you do, I will send you to Prontera's Sanctuary.";
next;
- mes "[Mage Guild Member]";
- mes "Wait, have you checked your Job level?";
- mes "Do you want to complete your Novice training and go straight to the Mage Guild's union?";
+ mes "[Prontera Acolyte]";
+ mes "Of course, I assume you have enough job levels to become an Acolyte right?";
+ mes "Would you like to quit the Training Process and go to the Prontera's Sanctuary?";
next;
- if(select("I will think about it again.:Yes, complete my training.") == 2) {
- mes "[Mage Guild Member]";
- mes "Welcome!!";
- mes "I will send you to the Mage Guilds union after you complete your Novice training.";
- close2;
+ switch(select("Let me reconsider.:I will go to the Sanctuary.")) {
+ case 1:
+ mes "[Prontera Acolyte]";
+ mes "You should try out each job's manuals.";
+ mes "Go through them thoroughly and decide carefully.";
+ mes "Of course, I will welcome you anytime.";
+ close;
+ case 2:
+ mes "[Prontera Acolyte]";
+ mes "That's great.";
+ mes "Then I will completely end the Training Process and send you to Prontera's Sanctuary.";
callfunc "F_NvErase",1;
- savepoint "geffen",119,38;
- warp "geffen_in",163,98;
+ close2;
+ savepoint "prontera",117,72;
+ warp "prt_church",172,19;
end;
}
- mes "[Mage Guild Member]";
- mes "Please test what Mage skills are all about before you decide.";
- mes "We are always welcome to have you!";
- close;
case 3:
- set .@quest, checkquest(7124);
- if (.@quest == -1) {
- mes "[Mage Guild Member]";
- mes "Huh? Quest?";
- mes "Hmm... What would be suited for you...?";
- mes "Would you like to hunt Lunatics by using Bolt skills?";
- next;
- mes "^4d4dffYou have received a Hunting quest from the Mage Guide.";
- mes "You can get more information about the quest from the quest window.^000000";
- setquest 7124;
- next;
- mes "[Mage Guild Member]";
- mes "You are able to use 'Fire Bolt' skill that is shown on the Mage manual.";
- mes "I will wait for you here.";
- mes "Good luck!";
- close;
- }
- else if (.@quest == 1) {
- if (checkquest(7124,HUNTING) == 2) {
- mes "[Mage Guild Member]";
- mes "You have done excellent job.";
- mes "So, did you find any interests about Mages?";
- mes "Alright. I will give something...";
- mes "Here are Novice Butterfly Wings, please take them.";
- completequest 7124;
- getitem 12324, 30; // N_Butterfly_Wing
- getexp 5000,100;
- close;
- }
- mes "[Mage Guild Member]";
- mes "The quest is that you have to";
- mes "hunt Lunatics and bring 5 clovers.";
- close;
- }
- else if (.@quest == 2) {
- mes "[Mage Guild Member]";
- mes "You have already completed the quest.";
- mes "Once you enter the main world, you can get various exciting quests there!";
- next;
- mes "[Mage Guild Member]";
- mes "This should be enough for your training.";
- close;
- }
- mes "[Mage Guild Member]";
- mes "I'm sorry but I don't have any quests to give you right now.";
- close;
- case 4:
- mes "[Mage Guild Member]";
- mes "If you have any questions about Mages, feel free to ask me.";
- mes "I think you could be a intelligent Mage...";
+ mes "[Prontera Acolyte]";
+ mes "If you have any questions about Acolytes, please ask me anytime.";
+ mes "Our God, Odin awaits adventurers like you.";
close;
}
}
+new_1-3,101,41,3 duplicate(NvAcolyte) Acolyte Guide#nv1 4_F_SISTER
+new_2-3,101,41,3 duplicate(NvAcolyte) Acolyte Guide#nv2 4_F_SISTER
+new_3-3,101,41,3 duplicate(NvAcolyte) Acolyte Guide#nv3 4_F_SISTER
+new_4-3,101,41,3 duplicate(NvAcolyte) Acolyte Guide#nv4 4_F_SISTER
+new_5-3,101,41,3 duplicate(NvAcolyte) Acolyte Guide#nv5 4_F_SISTER
-new_1-3,101,41,4 duplicate(NvMag) Mage Guide#nv1 123
-new_2-3,101,41,4 duplicate(NvMag) Mage Guide#nv2 123
-new_3-3,101,41,4 duplicate(NvMag) Mage Guide#nv3 123
-new_4-3,101,41,4 duplicate(NvMag) Mage Guide#nv4 123
-new_5-3,101,41,4 duplicate(NvMag) Mage Guide#nv5 123
-
-// ---------------------------- Thief Guide ---------------------------------
-- script Thief Guide#nv::NvThf 118,{
- if(job_novice_q < 16) {
+- script Thief Guide#newbe10::NvThief -1,{
+ if (job_novice_q < 15) {
mes "[Thief Guild Member]";
mes "You look like you are not done with Instructor Brade's lessons.";
close;
@@ -1290,39 +1585,41 @@ new_5-3,101,41,4 duplicate(NvMag) Mage Guide#nv5 123
mes "They are also feared for their use of poison, which slowly weakens their enemies.";
next;
mes "[Thief Guild Member]";
- mes "In jeopardy, or in the case that thieves do not want to reveal themselves, they can use their skill to hide themselves easily.";
+ mes "In jeopardy, or in the case that thieves do not want to reveal themselves,";
+ mes "they can even use their skill to hide themselves easily.";
next;
mes "[Thief Guild Member]";
- mes "Thieves can change their jobs to ^8C2121Assassins^000000 or ^8C2121Rogues.^000000";
- if(countitem(2820) == 0 && (getequipid(EQI_ACC_L) != 2820 || getequipid(EQI_ACC_R) != 2820)) {
- next;
+ mes "Thieves can change their jobs to ^8E2323Assassins^000000 or ^8E2323Rogues^000000.";
+ next;
+ if (isequipped(2820) || countitem(2820)) {
mes "[Thief Guild Member]";
- mes "If you want, I'll give you a Thief skill manual.";
- mes "Would you like to experience the skills of a Thief?";
- next;
- if(select("Yes, I would.:No, I don't.") == 2) {
- mes "[Thief Guild Member]";
- mes "Oh, are you sure?";
- mes "Class selection is very important so please consider it carefully.";
- mes "If you want to ask about Thieves, please talk to me any time.";
- close;
- }
+ mes "The class manual can help you understand what it is to be a Thief by using the skills that are essential to all Thieves.";
+ close;
+ }
+ mes "[Thief Guild Member]";
+ mes "If you want, I'll give you a Thief skill manual.";
+ mes "Would you like to experience the skills of a Thief?";
+ next;
+ switch(select("Yes, I would.:No, I don't.")) {
+ case 1:
mes "[Thief Guild Member]";
mes "Here, please take the Thief manual.";
mes "I'll just take the other class manuals while I'm at it.";
next;
- mes "[Thief Guild Member]";
- mes "Here, please take the Thief manual.";
- mes "I'll just take the other class manuals while I'm at it.";
callfunc "F_NvErase";
- getitem 2820,1; // Thief_Manual
+ getitem 2820,1; //Thief_Manual
next;
mes "[Thief Guild Member]";
mes "Make sure to equip the Skill Manual by double-clicking it in the Inventory Window.";
- mes "Open your Skill Tree by pressing ^4A4AFFAlt + S^000000 and minimize the window by pressing the '-' button on the top right corner of the window to see the available skills.";
+ mes "Open your Skill Tree by pressing ^4d4dffAlt + S^000000 and minimize the window by pressing the ^4d4dff'-'^000000 button on the top right corner of the window to see the available skills.";
+ close;
+ case 2:
+ mes "[Thief Guild Member]";
+ mes "Oh, are you sure?";
+ mes "Class selection is very important so please consider it carefully.";
+ mes "If you want to ask about Thieves, please talk to me any time.";
+ close;
}
- close;
-
case 2:
mes "[Thief Guild Member]";
mes "Do you really want to be a Thief?";
@@ -1332,20 +1629,22 @@ new_5-3,101,41,4 duplicate(NvMag) Mage Guide#nv5 123
mes "You already reached the required job level, didn't you?";
mes "Do you want to finish the Novice training and go to the Thief Guild?";
next;
- if(select("Let me consider it again.:Yes, I do.") == 2) {
+ switch(select("Let me consider it again.:Yes, I do.")) {
+ case 1:
+ mes "[Thief Guild Member]";
+ mes "Have you tried all of the class manuals yet?";
+ mes "If you're undecided what job to take on I suggest you try talking to all the Guides first.";
+ close;
+ case 2:
mes "[Thief Guild Member]";
mes "Ok, I see.";
mes "Welcome. Then your Novice training is totally complete and you will be sent to the Thief Guild immediately.";
- close2;
callfunc "F_NvErase",1;
- savepoint "morocc",150,100;
+ close2;
+ savepoint "morocc",150,99;
warp "moc_prydb1",99,185;
end;
}
- mes "[Thief Guild Member]";
- mes "Have you tried all of the class manuals yet?";
- mes "If you're undecided what job to take on I suggest you try talking to all the Guides first.";
- close;
case 3:
set .@quest, checkquest(7127);
if (.@quest == -1) {
@@ -1363,52 +1662,50 @@ new_5-3,101,41,4 duplicate(NvMag) Mage Guide#nv5 123
mes "If you equip the Thief manual, you can have the effect of the skill, Double Attack.";
mes "Double Attack and Hide are the main skills of the Thief.";
close;
- }
- else if (.@quest == 1) {
+ } else if (.@quest == 0 || .@quest == 1) {
if (checkquest(7127,HUNTING) == 2) {
mes "[Thief Guild Member]";
mes "You are very strong.";
mes "These are not many but let me give you a reward for your effort.";
completequest 7127;
- getitem 12323, 50; // N_Fly_Wing
+ getitem 12323,50; //N_Fly_Wing
getexp 5000,100;
close;
+ } else {
+ mes "[Thief Guild Member]";
+ mes "Hunt 5 Willows and then come talk to me to finish your quest.";
+ close;
}
- mes "[Thief Guild Member]";
- mes "Hunt 5 Willows and then come talk to me to finish your quest.";
- close;
- }
- else if (.@quest == 2) {
+ } else if (.@quest == 2) {
mes "[Thief Guild Member]";
mes "I think you finished that quest already, right?";
mes "You'll experience more of these quests as you grow as an adventurer in the world.";
next;
mes "[Thief Guild Member]";
mes "Your training is now complete.";
- mes "If you choose to become a Thief I wish you goodluck.";
+ mes "If you choose to become a Thief I wish you good luck.";
+ close;
+ } else {
+ mes "[Thief Guild Member]";
+ mes "I'm sorry but I don't have any quests to give you right now.";
close;
}
- mes "[Thief Guild Member]";
- mes "I'm sorry but I don't have any quests to give you right now.";
- close;
case 4:
mes "[Thief Guild Member]";
mes "If you have something to ask about the Thief job, feel free to ask me.";
close;
}
}
+new_1-3,105,41,3 duplicate(NvThief) Thief Guide#nv1 2_M_THIEFMASTER
+new_2-3,105,41,3 duplicate(NvThief) Thief Guide#nv2 2_M_THIEFMASTER
+new_3-3,105,41,3 duplicate(NvThief) Thief Guide#nv3 2_M_THIEFMASTER
+new_4-3,105,41,3 duplicate(NvThief) Thief Guide#nv4 2_M_THIEFMASTER
+new_5-3,105,41,3 duplicate(NvThief) Thief Guide#nv5 2_M_THIEFMASTER
-new_1-3,105,41,4 duplicate(NvThf) Thief Guide#nv1 118
-new_2-3,105,41,4 duplicate(NvThf) Thief Guide#nv2 118
-new_3-3,105,41,4 duplicate(NvThf) Thief Guide#nv3 118
-new_4-3,105,41,4 duplicate(NvThf) Thief Guide#nv4 118
-new_5-3,105,41,4 duplicate(NvThf) Thief Guide#nv5 118
-
-// ---------------------------- Merchant Guide ------------------------------
-- script Merchant Guide#nv::NvMer 97,{
- if(job_novice_q < 16) {
+- script Merchant Guide#newbe10::NvMerchant -1,{
+ if (job_novice_q < 15) {
mes "[Merchant Guildsman]";
- mes "You are still in the process of training with sir Brade.";
+ mes "You are still in the process of training with sir Brad.";
close;
}
mes "[Merchant Guildsman]";
@@ -1417,46 +1714,50 @@ new_5-3,105,41,4 duplicate(NvThf) Thief Guide#nv5 118
switch(select("Tell me about Merchants:I want to be a Merchant.:Give me a Quest.:Cancel")) {
case 1:
mes "[Merchant Guildsman]";
- mes "Merchant? Simply put, they sell goods and make money.";
+ mes "Merchant? Simply put, he sells goods and makes money.";
mes "That's the main focus for any Merchant.";
next;
mes "[Merchant Guildsman]";
mes "We have special skills for making money.";
- mes "We can buy goods at a lower price and sell them at a higher price.";
+ mes "We can buy goods at a lower price";
+ mes "and sell them at a higher price.";
next;
mes "[Merchant Guildsman]";
- mes "Also Merchants can have Carts that we can store lots of items in.";
+ mes "Also Merchants can have Carts";
+ mes "that we can store lots of items in.";
next;
mes "[Merchant Guildsman]";
- mes "^8C2121Merchants can transform to a Blacksmith or an Alchemist^000000 as their second job.";
- if(countitem(2823) == 0 && (getequipid(EQI_ACC_L) != 2823 || getequipid(EQI_ACC_R) != 2823)) {
- next;
+ mes "^8E2323Merchants can transform to a Blacksmith";
+ mes "^8E2323or an Alchemist^000000 as their second job.";
+ next;
+ if (isequipped(2823) || countitem(2823)) {
mes "[Merchant Guildsman]";
- mes "Do you wan to see what it's like to be a Merchant?";
- next;
- if(select("I want to test Merchant skills.:I don't want to test it.") == 2) {
- mes "[Merchant Guildsman]";
- mes "Hum. Do you think so?";
- mes "Ok, I agree with you. Choosing a job is very important in our life.";
- mes "Just talk to me whenever you want to experience Merchant skills.";
- close;
- }
+ mes "I think you should test Merchant skills before you decide what to do.";
+ close;
+ }
+ mes "[Merchant Guildsman]";
+ mes "Do you want to see what it's like to be a Merchant?";
+ next;
+ switch(select("I want to test Merchant skills.:I don't want to test it.")) {
+ case 1:
mes "[Merchant Guildsman]";
mes "Here is the Merchant skill manual.";
mes "I will take other job manuals from you while I'm at it.";
next;
- mes "[Merchant Guildsman]";
- mes "Here is the Merchant skill manual.";
- mes "I will take other job manuals from you while I'm at it.";
callfunc "F_NvErase";
- getitem 2823,1; // Merchant_Manual
+ getitem 2823,1; //Merchant_Manual
next;
mes "[Merchant Guildsman]";
mes "Make sure to equip the Skill Manual by double-clicking it in the Inventory Window.";
- mes "Open your Skill Tree by pressing ^4A4AFFAlt + S^000000 and minimize the window by pressing the '-' button on the top right corner of the window to see the available skills.";
+ mes "Open your Skill Tree by pressing ^4d4dffAlt + S^000000 and minimize the window by pressing the ^4d4dff'-'^000000 button on the top right corner of the window to see the available skills.";
+ close;
+ case 2:
+ mes "[Merchant Guildsman]";
+ mes "Hum. Do you think so.";
+ mes "Ok, I agree with you. Choosing job is very important in our life.";
+ mes "Just talk to me whenever you want to experience Merchant skills.";
+ close;
}
- close;
-
case 2:
mes "[Merchant Guildsman]";
mes "You want to be a Merchant?";
@@ -1466,20 +1767,22 @@ new_5-3,105,41,4 duplicate(NvThf) Thief Guide#nv5 118
mes "Wait, have you checked your Job level?";
mes "Do you want to complete your Novice training and go straight to the Merchant Guild's union?";
next;
- if(select("I will think about it again.:Yes, I want to go to the Merchant Guild's union.") == 2) {
+ switch(select("I will think about it again.:Yes, I want to go to the Merchant Guild's union")) {
+ case 1:
mes "[Merchant Guildsman]";
- mes "Welcome!!";
- mes "I will send you to the Merchant Guild's union after you complete your Novice training.";
- close2;
+ mes "Ok, I hope you consider being a Merchant.";
+ mes "We are always welcome to have you!";
+ close;
+ case 2:
+ mes "[Merchant Guildsman]";
+ mes "That's great.";
+ mes "Then I will end the Training Process and send you to the Merchant Guild's union immediately.";
callfunc "F_NvErase",1;
- savepoint "alberta",29,231;
+ close2;
+ savepoint "alberta",30,232;
warp "alberta_in",62,44;
end;
}
- mes "[Merchant Guildsman]";
- mes "Ok, I hope you consider being a Merchant.";
- mes "We are always welcome to have you!";
- close;
case 3:
set .@quest, checkquest(7126);
if (.@quest == -1) {
@@ -1492,12 +1795,12 @@ new_5-3,105,41,4 duplicate(NvThf) Thief Guide#nv5 118
mes "If you equipped the Merchant manual you have the ability to use the 'Overcharge' and 'Discount' skills.";
setquest 7126;
next;
+ mes "[Merchant Guildsman]";
mes "I will wait for you here.";
mes "Good luck!";
close;
- }
- else if (.@quest == 1) {
- if (Zeny > 299) {
+ } else if (.@quest == 0 || .@quest == 1) {
+ if (Zeny >= 300) {
mes "[Merchant Guildsman]";
mes "Excellent!";
mes "Zeny is the currency of Rune-Midgard.";
@@ -1513,23 +1816,23 @@ new_5-3,105,41,4 duplicate(NvThf) Thief Guide#nv5 118
mes "Alright! What about Phracon?";
mes "Phracon is a metallic element which you can use for refining weapons.";
completequest 7126;
- getitem 1010,7; // Phracon
+ getitem 1010,7; //Phracon
getexp 5000,100;
close;
+ } else {
+ mes "[Merchant Guildsman]";
+ mes "Zeny is the currency of Rune-Midgard.";
+ mes "You can make zeny by selling loot as well as through making smart business decisions.";
+ next;
+ mes "[Merchant Guildsman]";
+ mes "You can get loot by killing monsters. After hunting monsters, you can sell those loot to make a profit!";
+ mes "What a valuable job it is! Isn't it?";
+ next;
+ mes "[Merchant Guildsman]";
+ mes "Why don't you try to be a Merchant? Making money is not easy but it will be a great experience!";
+ close;
}
- mes "[Merchant Guildsman]";
- mes "Zeny is the currency of Rune-Midgard.";
- mes "You can make zeny by selling loot as well as through making smart business decisions.";
- next;
- mes "[Merchant Guildsman]";
- mes "You can get loot by killing monsters. After hunting monsters, you can sell those loot to make a profit!";
- mes "What a valuable job it is! Isn't it?";
- next;
- mes "[Merchant Guildsman]";
- mes "Why don't you try to be a Merchant? Making money is not easy but it will be a great experience!";
- close;
- }
- else if (.@quest == 2) {
+ } else if (.@quest == 2) {
mes "[Merchant Guildsman]";
mes "You have already completed the quest.";
mes "Once you enter the main world, you can get various exciting quests there!";
@@ -1537,10 +1840,11 @@ new_5-3,105,41,4 duplicate(NvThf) Thief Guide#nv5 118
mes "[Merchant Guildsman]";
mes "I think you're strong enough now to change your job right? Hahahaha don't waste too much time here Novice.";
close;
+ } else {
+ mes "[Merchant Guildsman]";
+ mes "I'm sorry but I don't have any quests to give you right now.";
+ close;
}
- mes "[Merchant Guildsman]";
- mes "I'm sorry but I don't have any quests to give you right now.";
- close;
case 4:
mes "[Merchant Guildsman]";
mes "If you have any questions about Merchants, feel free to ask me.";
@@ -1548,197 +1852,266 @@ new_5-3,105,41,4 duplicate(NvThf) Thief Guide#nv5 118
close;
}
}
+new_1-3,109,41,3 duplicate(NvMerchant) Merchant Guide#nv1 4W_M_01
+new_2-3,109,41,3 duplicate(NvMerchant) Merchant Guide#nv2 4W_M_01
+new_3-3,109,41,3 duplicate(NvMerchant) Merchant Guide#nv3 4W_M_01
+new_4-3,109,41,3 duplicate(NvMerchant) Merchant Guide#nv4 4W_M_01
+new_5-3,109,41,3 duplicate(NvMerchant) Merchant Guide#nv5 4W_M_01
-new_1-3,109,41,4 duplicate(NvMer) Merchant Guide#nv1 97
-new_2-3,109,41,4 duplicate(NvMer) Merchant Guide#nv2 97
-new_3-3,109,41,4 duplicate(NvMer) Merchant Guide#nv3 97
-new_4-3,109,41,4 duplicate(NvMer) Merchant Guide#nv4 97
-new_5-3,109,41,4 duplicate(NvMer) Merchant Guide#nv5 97
-
-// ---------------------------- Archer Guide --------------------------------
-- script Archer Guide#nv::NvArc 727,{
- if(job_novice_q < 16) {
- mes "[Archer Guide]";
+- script Archer Guide#newbe10::NvArcher -1,{
+ if (job_novice_q < 15) {
+ mes "[Archer Guildsman]";
mes "You are still in the process of training with sir Brade.";
close;
}
- mes "[Archer Guide]";
+ mes "[Archer Guildsman]";
mes "What can I help you with?";
next;
switch(select("Tell me about Archers:I want to be an Archer:Cancel")) {
case 1:
- mes "[Archer Guide]";
+ mes "[Archer Guildsman]";
mes "Archers have specialized skills by using a Bow and have a variety of powerful skills.";
mes "Archers are good at staying back and picking off their targets.";
next;
- mes "[Archer Guide]";
- mes "Archers don't have great vitality so they have to keep their distance from enemies.";
+ mes "[Archer Guildsman]";
+ mes "Archers don't have great";
+ mes "vitality so they have to keep";
+ mes "their distance from enemies.";
next;
- mes "[Archer Guide]";
+ mes "[Archer Guildsman]";
mes "On the other hand, Archers are attentive and have incredibly accurate eyes.";
mes "So once they are ready to attack, they can kill enemies before they're even aware of their presence.";
next;
- mes "[Archer Guide]";
- mes "^8C2121Archers can transform to many second jobs like a Hunter.^000000";
- mes "^8C2121Besides Hunters, Archers can transform to a Bard, if they are male.^000000";
- mes "^8C2121They can transform to a Dancer, if they are female.^000000";
- if(countitem(2822) == 0 && (getequipid(EQI_ACC_L) != 2822 || getequipid(EQI_ACC_R) != 2822)) {
- next;
- mes "[Archer Guide]";
- mes "Do you want to register to test skill experience?";
- mes "Would you like to test Archer skills?";
- next;
- if(select("I want to test Archer skills.:I don't want to test it.") == 2) {
- mes "[Archer Guide]";
- mes "Hum. Do you think so.";
- mes "Ok, I agree with you. Choosing a job is very important in our life.";
- mes "Just talk to me whenever you want to experience Archer skills.";
- close;
- }
- mes "[Archer Guide]";
+ mes "[Archer Guildsman]";
+ mes "^8E2323Archers can transform to many second jobs like a Hunter.";
+ mes "Besides Hunters, Archers can transform to a Bard, if they are male.";
+ mes "They can transform to a Dancer, if they are female^000000.";
+ next;
+ if (isequipped(2822) || countitem(2822)) {
+ mes "[Archer Guildsman]";
+ mes "I think you should test Archer skills before you decide what to do.";
+ mes "I can provide you our test skill manual.";
+ close;
+ }
+ mes "[Archer Guildsman]";
+ mes "Do you want to register to test skill experience?";
+ mes "Would like to test Archer skills?";
+ next;
+ switch(select("I want to test Archer skills.:I don't want to test it.")) {
+ case 1:
+ mes "[Archer Guildsman]";
mes "Here is the Archer manual.";
mes "I will take the other job manuals from you while you test the Archer manual out.";
next;
- mes "[Archer Guide]";
- mes "I will take the other job manuals from you while you test the Archer manual out.";
callfunc "F_NvErase";
- getitem 2822,1; // Archer_Manual
+ getitem 2822,1; //Archer_Manual
next;
- mes "[Archer Guide]";
+ mes "[Archer Guildsman]";
mes "Make sure to equip the Skill Manual by double-clicking it in the Inventory Window.";
- mes "Open your Skill Tree by pressing ^4A4AFFAlt + S^000000 and minimize the window by pressing the '-' button on the top right corner of the window to see the available skills.";
+ mes "Open your Skill Tree by pressing ^4d4dffAlt + S^000000 and minimize the window by pressing the ^4d4dff'-'^000000 button on the top right corner of the window to see the available skills.";
+ close;
+ case 2:
+ mes "[Archer Guildsman]";
+ mes "Hum. Do you think so.";
+ mes "Ok, I agree with you. Choosing a job is very important in our life.";
+ mes "Just talk to me whenever you want to experience Archer skills.";
+ close;
}
- close;
case 2:
- mes "[Archer Guide]";
+ mes "[Archer Guildsman]";
mes "You want to be an Archer?";
mes "Ok, then, I will send you to the Archer Guild right away.";
next;
- mes "[Archer Guide]";
+ mes "[Archer Guildsman]";
mes "Wait, have you checked your Job level?";
mes "Do you want to complete the Novice training arena and go to the Archer Guild right now?";
next;
- if(select("I will think about it again.:Yes, I want to go to the Archer Guild's union.") == 2) {
- mes "[Archer Guide]";
- mes "Welcome!!";
- mes "I will send you to the Archer Guild after you complete your Novice training.";
- close2;
+ switch(select("I will think about it again.:Yes, I want to go to the Archer Guilds union")) {
+ case 1:
+ mes "[Archer Guildsman]";
+ mes "Test out all the jobs if you have to but choose Archer because we're the best.";
+ mes "We are always welcome to have you!";
+ close;
+ case 2:
+ mes "[Archer Guildsman]";
+ mes "That's great.";
+ mes "Then I will completely end the Training Process and send you to the Archer Guild.";
callfunc "F_NvErase",1;
+ close2;
savepoint "payon",256,242;
warp "payon_in02",64,65;
end;
}
- mes "[Archer Guide]";
- mes "Test out all the jobs if you have to but choose Archer because we're the best.";
- mes "We are always welcome to have you!";
- close;
case 3:
- mes "[Archer Guide]";
+ mes "[Archer Guildsman]";
mes "If you have any questions about Archers, feel free to ask me.";
mes "I think you could be a strong Archer young Novice.";
close;
}
}
+new_1-3,113,41,3 duplicate(NvArcher) Archer Guide#nv1 4_F_JOB_HUNTER
+new_2-3,113,41,3 duplicate(NvArcher) Archer Guide#nv2 4_F_JOB_HUNTER
+new_3-3,113,41,3 duplicate(NvArcher) Archer Guide#nv3 4_F_JOB_HUNTER
+new_4-3,113,41,3 duplicate(NvArcher) Archer Guide#nv4 4_F_JOB_HUNTER
+new_5-3,113,41,3 duplicate(NvArcher) Archer Guide#nv5 4_F_JOB_HUNTER
-new_1-3,113,41,4 duplicate(NvArc) Archer Guide#nv1 727
-new_2-3,113,41,4 duplicate(NvArc) Archer Guide#nv2 727
-new_3-3,113,41,4 duplicate(NvArc) Archer Guide#nv3 727
-new_4-3,113,41,4 duplicate(NvArc) Archer Guide#nv4 727
-new_5-3,113,41,4 duplicate(NvArc) Archer Guide#nv5 727
-
-// ---------------------------- Acolyte Guide -------------------------------
-- script Acolyte Guide#nv::NvAco 95,{
- if(job_novice_q < 16) {
- mes "[Prontera Acolyte]";
- mes "You look like you are not done with Instructor Brade's lessons.";
+- script Mage Guide#newbe10::NvMage -1,{
+ if (job_novice_q < 15) {
+ mes "[Mage Guild Member]";
+ mes "You are still in the process of training with Instructor Brade.";
close;
}
- mes "[Prontera Acolyte]";
- mes "What can I do for you?";
+ mes "[Mage Guild Member]";
+ mes "What can I help you with?";
next;
- switch(select("What is an Acolyte?:Job change to Acolyte:Cancel")) {
+ switch(select("Tell me about Mages:I want to be a Mage:Give me a Quest:Cancel")) {
case 1:
- mes "[Prontera Acolyte]";
- mes "An Acolyte is someone who worships the goddess Freya sacrificing themselves to help others.";
+ mes "[Mage Guild Member]";
+ mes "Mages are those who can use magic when they need to protect their friends.";
+ mes "Mages can curse enemies using the elements of fire, water, earth and thunder magic.";
next;
- mes "[Prontera Acolyte]";
- mes "Acolytes use supportive skills to make combat easier.";
- mes "It is essential to have an Acolyte in any successful party.";
+ mes "[Mage Guild Member]";
+ mes "However they cannot equip other weapons but staffs and books.";
+ mes "Because they are too delicate";
+ mes "to carry heavy weapons.";
next;
- mes "[Prontera Acolyte]";
- mes "^8C2121As an Acolyte, you can upgrade your future job to Priest or Monk.^000000";
+ mes "[Mage Guild Member]";
+ mes "But they can cover this weakness";
+ mes "by their remarkable magic skills.";
+ mes "That is why many people want";
+ mes "to become a Mage!";
next;
- mes "[Prontera Acolyte]";
- if(countitem(2821) == 0 && (getequipid(EQI_ACC_L) != 2821 || getequipid(EQI_ACC_R) != 2821)) {
- next;
- mes "[Prontera Acolyte]";
- mes "If you want, I can give you a skill manual to experience what it is like to be an Acolyte.";
- mes "Would you like to experience the skills of an Acolyte?";
- next;
- if(select("Yes, please.:No I'm not interested.") == 2) {
- mes "[Prontera Acolyte]";
- mes "Hum. Do you think so.";
- mes "Ok, I agree with you. Choosing a job is very important in our life.";
- mes "Just talk to me whenever you want to know about Acolytes.";
- close;
- }
- mes "[Prontera Acolyte]";
- mes "Here you go, the instruction manual of an Acolyte.";
- mes "I will take away those other job's manuals while you study this one.";
+ mes "[Mage Guild Member]";
+ mes "Mages have to be in their guild for guild's power and honor.";
+ mes "This is one of reasons why Mages are popular in any parties and guilds.";
+ mes "Why don't you become a Mage?";
+ next;
+ mes "[Mage Guild Member]";
+ mes "^8E2323Mages can transform to Wizards";
+ mes "^8E2323or Sages as their second job^000000.";
+ next;
+ if (isequipped(2824) || countitem(2824)) {
+ mes "[Mage Guild Member]";
+ mes "I think you should test Mage skills before you decide what to do.";
+ mes "I can provide you with our test skill registration form.";
+ close;
+ }
+ mes "[Mage Guild Member]";
+ mes "Do you want to register to experience how it is to be a Mage?";
+ mes "Would you like to test Mage skills?";
+ next;
+ switch(select("I want to test Mage skills.:I don't want to test it.")) {
+ case 1:
+ mes "[Mage Guild Member]";
+ mes "Here is the Mage Manual.";
+ mes "I will take the other job registration forms and manuals from you.";
next;
- mes "[Prontera Acolyte]";
- mes "Here you go, the instruction manual of an Acolyte.";
- mes "I will take away those other job's manuals while you study this one.";
callfunc "F_NvErase";
- getitem 2821,1; // Acolyte_Manual
+ getitem 2824,1; //Mage_Manual
next;
- mes "[Prontera Acolyte]";
- mes "Make sure to equip the Skill Manual by double-clicking it in the Inventory Window.";
- mes "Open your Skill Tree by pressing ^4A4AFFAlt + S^000000 and minimizing the window by pressing the '-' button on the top right corner of the window to see the available skills.";
+ mes "[Mage Guild Member]";
+ mes "After equipping the Manual, open your Skill menu by pressing ALT+S.";
+ mes "Make sure to minimize your Skill tree by clicking the '-' button on the top right corner of the Skill Tree Window.";
+ close;
+ case 2:
+ mes "[Mage Guild Member]";
+ mes "Hum. Do you think so.";
+ mes "Ok, I agree with you. Choosing a job is very important in our life.";
+ mes "Just talk to me whenever you want to experience Mage skills.";
+ close;
}
- close;
case 2:
- mes "[Prontera Acolyte]";
- mes "Of course, I assume you have enough job levels to become an Acolyte right?";
- mes "Would you like to quit the Training Process and go to the Cathedral of Prontera?";
+ mes "[Mage Guild Member]";
+ mes "You want to be a Mage?";
+ mes "Ok, then, I will send you to the Mage Guild union in Geffen right away.";
next;
- if(select("Let me reconsider.:I will go to the Cathedral.") == 2) {
- mes "[Prontera Acolyte]";
+ mes "[Mage Guild Member]";
+ mes "Wait, have you checked your Job level?";
+ mes "Do you want to complete your Novice training and go straight to the Mage Guild's union?";
+ next;
+ switch(select("I will think about it again.:Yes, complete my training.")) {
+ case 1:
+ mes "[Mage Guild Member]";
+ mes "Please test what Mage skills are all about before you decide.";
+ mes "We are always welcome to have you!";
+ close;
+ case 2:
+ mes "[Mage Guild Member]";
mes "That's great.";
- mes "Then I will completely end the Training Process and send you to the Cathedral of Prontera.";
- close2;
+ mes "Then I will end the Training Process and send you to the Mage Guild union in Geffen right away.";
callfunc "F_NvErase",1;
- savepoint "prontera",117,72;
- warp "prt_church",172,19;
+ close2;
+ savepoint "geffen",119,37;
+ warp "geffen_in",163,98;
end;
}
- mes "[Prontera Acolyte]";
- mes "You should try out each job's manuals.";
- mes "Go through them throughly and decide carefully.";
- mes "Of course, I will welcome you anytime.";
- close;
case 3:
- mes "[Prontera Acolyte]";
- mes "If you have any questions about Acolytes, please ask me anytime.";
- mes "Our God, Odin awaits adventurers like you";
+ set .@quest, checkquest(7124);
+ if (.@quest == -1) {
+ mes "[Mage Guild Member]";
+ mes "Huh? Quest?";
+ mes "Hmm... What would be suited for you...?";
+ mes "Would you like to hunt Lunatics by using Bolt skills?";
+ next;
+ mes "^4d4dffYou have received a Hunting quest from the Mage Guide.";
+ mes "You can get more information about the quest from the quest window.^000000";
+ setquest 7124;
+ next;
+ mes "[Mage Guild Member]";
+ mes "You are able to use 'Fire Bolt' skill that is shown on the Mage manual.";
+ mes "I will wait for you here.";
+ mes "Good luck!";
+ close;
+ } else if (.@quest == 0 || .@quest == 1) {
+ if (checkquest(7124,HUNTING) == 2) {
+ mes "[Mage Guild Member]";
+ mes "You have done an excellent job.";
+ mes "So, did you find any interests about Mages?";
+ mes "Alright. I will give something...";
+ mes "Here are Novice Butterfly Wings, please take them.";
+ completequest 7124;
+ getitem 12324,30; //N_Butterfly_Wing
+ getexp 5000,100;
+ close;
+ } else {
+ mes "[Mage Guild Member]";
+ mes "The quest is that you have to";
+ mes "hunt Lunatics and bring 5 clovers.";
+ close;
+ }
+ } else if (.@quest == 2) {
+ mes "[Mage Guild Member]";
+ mes "You have already completed the quest.";
+ mes "Once you enter the main world, you can get various exciting quests there!";
+ next;
+ mes "[Mage Guild Member]";
+ mes "This should be enough for your training.";
+ close;
+ } else {
+ mes "[Mage Guild Member]";
+ mes "I'm sorry but I don't have any quests to give you right now.";
+ close;
+ }
+ case 4:
+ mes "[Mage Guild Member]";
+ mes "If you have any questions about Mages, feel free to ask me.";
+ mes "I think you could be a intelligent Mage...";
close;
}
}
+new_1-3,117,41,3 duplicate(NvMage) Mage Guide#nv1 2_F_MAGICMASTER
+new_2-3,117,41,3 duplicate(NvMage) Mage Guide#nv2 2_F_MAGICMASTER
+new_3-3,117,41,3 duplicate(NvMage) Mage Guide#nv3 2_F_MAGICMASTER
+new_4-3,117,41,3 duplicate(NvMage) Mage Guide#nv4 2_F_MAGICMASTER
+new_5-3,117,41,3 duplicate(NvMage) Mage Guide#nv5 2_F_MAGICMASTER
-new_1-3,117,41,4 duplicate(NvAco) Acolyte Guide#nv1 95
-new_2-3,117,41,4 duplicate(NvAco) Acolyte Guide#nv2 95
-new_3-3,117,41,4 duplicate(NvAco) Acolyte Guide#nv3 95
-new_4-3,117,41,4 duplicate(NvAco) Acolyte Guide#nv4 95
-new_5-3,117,41,4 duplicate(NvAco) Acolyte Guide#nv5 95
-
-// ---------------------------- Bruce (Extended Jobs) -----------------------
-- script Bruce#nv::NvBruce 57,{
+- script Bruce#nv::NvBruce -1,{
mes "[Bruce]";
mes "Hello?";
mes "I'm here to guide you about extra jobs and special classes.";
next;
mes "[Bruce]";
- mes "For special classes, there are Taekwon, Ninja, Super Novice, and Gunslinger.";
+ mes "For special classes, there are Taekwon Boy, Taekwon Girl, Ninja, Supernovice, Gunslinger.";
mes "Which job description do you want to hear?";
next;
while(1) {
@@ -1783,24 +2156,23 @@ new_5-3,117,41,4 duplicate(NvAco) Acolyte Guide#nv5 95
break;
case 5:
mes "[Bruce]";
- mes "If you need more information, you can always go to";
- mes "'iro.ragnarokonline.com'";
+ mes "If you need more information,";
+ mes "you can always go to ^2F4F4F'www.ragnarok.co.kr'^000000";
close;
}
}
}
+new_1-3,121,41,3 duplicate(NvBruce) Bruce#nv1 1_M_LIBRARYMASTER
+new_2-3,121,41,3 duplicate(NvBruce) Bruce#nv2 1_M_LIBRARYMASTER
+new_3-3,121,41,3 duplicate(NvBruce) Bruce#nv3 1_M_LIBRARYMASTER
+new_4-3,121,41,3 duplicate(NvBruce) Bruce#nv4 1_M_LIBRARYMASTER
+new_5-3,121,41,3 duplicate(NvBruce) Bruce#nv5 1_M_LIBRARYMASTER
-new_1-3,121,41,4 duplicate(NvBruce) Bruce#nv1 57
-new_2-3,121,41,4 duplicate(NvBruce) Bruce#nv2 57
-new_3-3,121,41,4 duplicate(NvBruce) Bruce#nv3 57
-new_4-3,121,41,4 duplicate(NvBruce) Bruce#nv4 57
-new_5-3,121,41,4 duplicate(NvBruce) Bruce#nv5 57
-
-//============================================================================
-// Eden Group Officer (Real Combat Training)
-//============================================================================
-- script Eden Group Officer#nv::NvEdn -1,{
- if(BaseLevel < 10) {
+// Eden Group Officer (iRO only)
+//============================================================
+/*
+- script Eden Group Officer::NvEden -1,{
+ if (BaseLevel < 10) {
mes "[Eden Group Officer]";
mes "Hello, I am a representative of the Eden Group.";
mes "We are here to assist adventurers in Rune Midgard.";
@@ -1815,79 +2187,78 @@ new_5-3,121,41,4 duplicate(NvBruce) Bruce#nv5 57
mes "Speak to me again once you have reached Base Level 10 and I will send you out of the training grounds.";
mes "Have you taken the quests from all of the Guides yet?";
close;
- }else{
+ }
+ mes "[Eden Group Officer]";
+ mes "Great! You are ready to take on the challenges of the world.";
+ mes "What would you like to do?";
+ next;
+ switch(select("I want to leave the training grounds:Tell me about the towns.:Cancel")) {
+ case 1:
+ mes "[Eden Group Officer]";
+ mes "Looks like you are ready.";
+ mes "I guess you have made up your mind, huh?";
+ next;
mes "[Eden Group Officer]";
- mes "Great! You are ready to take on the challenges of the world.";
- mes "What would you like to do?";
+ mes "If you know what job you want to change to, you should ask the ^4A4AFFJob Guides^000000 to send you out of the training grounds.";
+ mes "What town would you like to go to?";
next;
- switch(select("I want to leave the training grounds:Tell me about the towns.:Cancel")) {
+ switch(select("Prontera:Morocc:Payon:Alberta:Geffen:Cancel")) {
case 1:
mes "[Eden Group Officer]";
- mes "Looks like you are ready.";
- mes "I guess you have made up your mind, huh?";
- next;
- mes "[Eden Group Officer]";
- mes "If you know what job you want to change to, you should ask the ^4A4AFFJob Guides^000000 to send you out of the training grounds.";
- mes "What town would you like to go to?";
- next;
- switch(select("Prontera:Morocc:Payon:Alberta:Geffen:Cancel")) {
- case 1:
- mes "[Eden Group Officer]";
- mes "Prontera, the Capital city of the Rune-Midgarts Kingdom.";
- mes "Take care and may Freya bless you on your journey.";
- callsub S_Warp,"prontera",121,77,121,76;
- case 2:
- mes "[Eden Group Officer]";
- mes "The desert city of Morocc was recently destroyed.";
- mes "I will send you to the camp where the survivors are.";
- callsub S_Warp,"moc_ruins",71,157,70,158;
- case 3:
- mes "[Eden Group Officer]";
- mes "Just north of Payon you'll find the Archer Village.";
- mes "Good luck on your journeys.";
- callsub S_Warp,"payon",167,68,172,111;
- case 4:
- mes "[Eden Group Officer]";
- mes "Alberta, the Port City.";
- mes "It's the main hub of all trades.";
- mes "If you want to travel to other civilizations, Alberta is the only outlet.";
- callsub S_Warp,"alberta",115,57,116,58;
- case 5:
- mes "[Eden Group Officer]";
- mes "Geffen, is known as the Magical City of Rune Midgard.";
- mes "I will send you near the Fountains.";
- mes "Goddess Freya bless you.";
- callsub S_Warp,"geffen",118,36,128,66;
- case 6:
- mes "[Eden Group Officer]";
- mes "If you're still not sure what job you want, talk to the Job Guides for more help.";
- close;
- }
+ mes "Prontera, the Capital city of the Rune-Midgarts Kingdom.";
+ mes "Take care and may Freya bless you on your journey.";
+ callsub S_Warp,"prontera",121,77,121,76;
case 2:
mes "[Eden Group Officer]";
- mes "Prontera is the main capital of the Rune-Midgard Kingdom. Here you will find Merchants selling their items and is a favorite gathering point of adventurers.";
- next;
- mes "[Eden Group Officer]";
- mes "The Acolyte Guild is here at the Prontera Church located to the northwest. The Swordman Guild can be found at Izlude, a town just southeast of Prontera.";
- next;
- mes "[Eden Group Officer]";
- mes "Morocc is a city located in the desert that was recently destroyed due to an evil monster named Satan Morroc. The Thief Guild has been working to restore it to it's former glory.";
- next;
+ mes "The desert city of Morocc was recently destroyed.";
+ mes "I will send you to the camp where the survivors are.";
+ callsub S_Warp,"moc_ruins",71,157,70,158;
+ case 3:
mes "[Eden Group Officer]";
- mes "Payon is where the Archer Guild has made it's home. You can also find the Kafra Shop Employees selling their Item Mall items near the center of this city.";
- next;
+ mes "Just north of Payon you'll find the Archer Village.";
+ mes "Good luck on your journeys.";
+ callsub S_Warp,"payon",167,68,172,111;
+ case 4:
mes "[Eden Group Officer]";
- mes "Alberta is the trading hub of Rune Midgard. The Merchant Guild is located here and the docks have ships that will take you to different island cities.";
- next;
+ mes "Alberta, the Port City.";
+ mes "It's the main hub of all trades.";
+ mes "If you want to travel to other civilizations, Alberta is the only outlet.";
+ callsub S_Warp,"alberta",115,57,116,58;
+ case 5:
mes "[Eden Group Officer]";
- mes "Geffen is known as the magical city of Rune Midgard. The Mage Guild is located here and research for new magic is always being conducted at their headquarters.";
- next;
+ mes "Geffen, is known as the Magical City of Rune Midgard.";
+ mes "I will send you near the Fountains.";
+ mes "Goddess Freya bless you.";
+ callsub S_Warp,"geffen",118,36,128,66;
+ case 6:
mes "[Eden Group Officer]";
- mes "If you wish to be sent directly to the Job Guilds, then speak to the Job Guides and tell them that you want to change your job.";
- close;
- case 3:
+ mes "If you're still not sure what job you want, talk to the Job Guides for more help.";
close;
}
+ case 2:
+ mes "[Eden Group Officer]";
+ mes "Prontera is the main capital of the Rune-Midgard Kingdom. Here you will find Merchants selling their items and is a favorite gathering point of adventurers.";
+ next;
+ mes "[Eden Group Officer]";
+ mes "The Acolyte Guild is here at the Prontera Church located to the northwest. The Swordman Guild can be found at Izlude, a town just southeast of Prontera.";
+ next;
+ mes "[Eden Group Officer]";
+ mes "Morocc is a city located in the desert that was recently destroyed due to an evil monster named Satan Morroc. The Thief Guild has been working to restore it to it's former glory.";
+ next;
+ mes "[Eden Group Officer]";
+ mes "Payon is where the Archer Guild has made it's home. You can also find the Kafra Shop Employees selling their Item Mall items near the center of this city.";
+ next;
+ mes "[Eden Group Officer]";
+ mes "Alberta is the trading hub of Rune Midgard. The Merchant Guild is located here and the docks have ships that will take you to different island cities.";
+ next;
+ mes "[Eden Group Officer]";
+ mes "Geffen is known as the magical city of Rune Midgard. The Mage Guild is located here and research for new magic is always being conducted at their headquarters.";
+ next;
+ mes "[Eden Group Officer]";
+ mes "If you wish to be sent directly to the Job Guilds, then speak to the Job Guides and tell them that you want to change your job.";
+ close;
+ case 3:
+ close;
}
S_Warp:
@@ -1901,26 +2272,16 @@ OnTouch:
emotion e_gasp;
end;
}
+new_1-3,97,50,4 duplicate(NvEden) Eden Group Officer#nv1 4_F_NOVICE,5,5
+new_2-3,97,50,4 duplicate(NvEden) Eden Group Officer#nv2 4_F_NOVICE,5,5
+new_3-3,97,50,4 duplicate(NvEden) Eden Group Officer#nv3 4_F_NOVICE,5,5
+new_4-3,97,50,4 duplicate(NvEden) Eden Group Officer#nv4 4_F_NOVICE,5,5
+new_5-3,97,50,4 duplicate(NvEden) Eden Group Officer#nv5 4_F_NOVICE,5,5
+*/
-new_1-3,97,50,4 duplicate(NvEdn) Eden Group Officer#nv1 729,5,5
-new_2-3,97,50,4 duplicate(NvEdn) Eden Group Officer#nv2 729,5,5
-new_3-3,97,50,4 duplicate(NvEdn) Eden Group Officer#nv3 729,5,5
-new_4-3,97,50,4 duplicate(NvEdn) Eden Group Officer#nv4 729,5,5
-new_5-3,97,50,4 duplicate(NvEdn) Eden Group Officer#nv5 729,5,5
-
-// Merchant (Real Combat Training)
-//============================================================
-- shop Merchant#nv::NvPotato 93,516:15
-
-new_1-3,100,50,4 duplicate(NvPotato) Merchant#nv1 93
-new_2-3,100,50,4 duplicate(NvPotato) Merchant#nv2 93
-new_3-3,100,50,4 duplicate(NvPotato) Merchant#nv3 93
-new_4-3,100,50,4 duplicate(NvPotato) Merchant#nv4 93
-new_5-3,100,50,4 duplicate(NvPotato) Merchant#nv5 93
-
-// Trainer (Real Combat Training)
+// Trainer
//============================================================
-- script Level 1 Trainer#nv::NvBrutus 84,{
+- script ::NvBrutus -1,{
mes "[Trainer Brutus]";
mes "These monsters are all weak and easy to kill. But be careful, a lot of them are aggressive and out for blood!";
next;
@@ -1941,7 +2302,8 @@ new_5-3,100,50,4 duplicate(NvPotato) Merchant#nv5 93
set .@menu$, .@menu$+":";
}
set .@i, select(.@menu$+"Cancel");
- if (.@i < 7) warp "new_"+.@i+"-3",96,21;
+ if (.@i < 7)
+ warp "new_"+.@i+"-3",96,21;
close;
case 2:
mes "[Trainer Brutus]";
@@ -1950,23 +2312,23 @@ new_5-3,100,50,4 duplicate(NvPotato) Merchant#nv5 93
next;
mes "[Trainer Brutus]";
mes "Level 1 has the weakest monsters.";
- mes "There you'll find Poring, Drops, Lunatics, Fabres, and Chonchons.";
+ mes "There you'll find Porings, Drops, and Lunatics.";
next;
mes "[Trainer Brutus]";
mes "Level 2 is more challenging.";
- mes "There you'll find Condors, Pickys, Willows, Fabres, and Roda Frogs.";
+ mes "There you'll find Porings, Lunatics, Willows, and Chonchons.";
next;
mes "[Trainer Brutus]";
- mes "Level 3 is pretty much the same as Level 2.";
- mes "There you'll find Condors, Pickys, Willows, Fabres, and Roda Frogs.";
+ mes "Level 3 is the same as Level 2.";
+ mes "There you'll find Porings, Lunatics, Willows, and Chonchons.";
next;
mes "[Trainer Brutus]";
mes "Level 4 has stronger monsters.";
- mes "There you'll find Rockers, Spores, and Fabres.";
+ mes "There you'll find Willows, Hornets, Pickys, and Fabres.";
next;
mes "[Trainer Brutus]";
mes "Level 5 is the same as Level 4.";
- mes "There you'll find Rockers, Spores, and Fabres.";
+ mes "There you'll find Willows, Hornets, Pickys, and Fabres.";
close;
case 3:
mes "[Trainer Brutus]";
@@ -1975,46 +2337,92 @@ new_5-3,100,50,4 duplicate(NvPotato) Merchant#nv5 93
close;
}
}
+new_1-3,103,50,4 duplicate(NvBrutus) Level 1 Trainer#nv1 4_M_02
+new_2-3,103,50,4 duplicate(NvBrutus) Level 2 Trainer#nv2 4_M_02
+new_3-3,103,50,4 duplicate(NvBrutus) Level 3 Trainer#nv3 4_M_02
+new_4-3,103,50,4 duplicate(NvBrutus) Level 4 Trainer#nv4 4_M_02
+new_5-3,103,50,4 duplicate(NvBrutus) Level 5 Trainer#nv5 4_M_02
-new_1-3,103,50,4 duplicate(NvBrutus) Level 1 Trainer#nv1 84
-new_2-3,103,50,4 duplicate(NvBrutus) Level 2 Trainer#nv2 84
-new_3-3,103,50,4 duplicate(NvBrutus) Level 3 Trainer#nv3 84
-new_4-3,103,50,4 duplicate(NvBrutus) Level 4 Trainer#nv4 84
-new_5-3,103,50,4 duplicate(NvBrutus) Level 5 Trainer#nv5 84
+// Monster Spawns
+//============================================================
+new_1-3,0,0,0,0 monster Poring 1002,20,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,20,0,0,0
+
+new_2-3,0,0,0,0 monster Chonchon 1011,10,0,0,0
+new_2-3,0,0,0,0 monster Lunatic 1063,15,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 Poring 1002,15,0,0,0
+
+new_3-3,0,0,0,0 monster Chonchon 1011,10,0,0,0
+new_3-3,0,0,0,0 monster Lunatic 1063,15,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 Poring 1002,5,0,0,0
+
+new_4-3,0,0,0,0 monster Hornet 1004,5,0,0,0
+new_4-3,0,0,0,0 monster Willow 1010,15,0,0,0
+new_4-3,0,0,0,0 monster Fabre 1184,5,0,0,0
+new_4-3,0,0,0,0 monster Picky 1049,15,0,0,0
+
+new_5-3,0,0,0,0 monster Hornet 1004,5,0,0,0
+new_5-3,0,0,0,0 monster Willow 1010,15,0,0,0
+new_5-3,0,0,0,0 monster Fabre 1184,5,0,0,0
+new_5-3,0,0,0,0 monster Picky 1049,15,0,0,0
-// Random Stuff (Guards & Bulletin Board)
+// Potato Merchant
//============================================================
-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";
+- shop Potato Merchant#newbe09::NvPotato 4_F_04,516:-1
+
+new_1-3,100,50,3 duplicate(NvPotato) Potato Merchant#nv1 4_F_04
+new_2-3,100,50,3 duplicate(NvPotato) Potato Merchant#nv2 4_F_04
+new_3-3,100,50,3 duplicate(NvPotato) Potato Merchant#nv3 4_F_04
+new_4-3,100,50,3 duplicate(NvPotato) Potato Merchant#nv4 4_F_04
+new_5-3,100,50,3 duplicate(NvPotato) Potato Merchant#nv5 4_F_04
+
+// Random Stuff
+//============================================================
+- script Bulletin Board::NvBulletin -1,{
+ mes "^FF0000=================================";
+ mes " ^E40CAA[Welcome] ^CC0000to^FF9000Novice^7FFF00 Training^00FF00 Grounds^E40CAA [Welcome] ";
mes "^FF0000=================================^000000";
close;
}
+new_1-1,66,114,4 duplicate(NvBulletin) Bulletin Board#nv1 HIDDEN_NPC
+new_2-1,66,114,4 duplicate(NvBulletin) Bulletin Board#nv2 HIDDEN_NPC
+new_3-1,66,114,4 duplicate(NvBulletin) Bulletin Board#nv3 HIDDEN_NPC
+new_4-1,66,114,4 duplicate(NvBulletin) Bulletin Board#nv4 HIDDEN_NPC
+new_5-1,66,114,4 duplicate(NvBulletin) Bulletin Board#nv5 HIDDEN_NPC
-new_1-1,144,116,2 script Guard#nv1 105,{
+- script Guard::NvGuardA -1,{
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,116,2 duplicate(NvGuardA) Guard#nv1a 8W_SOLDIER
+new_2-1,144,116,2 duplicate(NvGuardA) Guard#nv2a 8W_SOLDIER
+new_3-1,144,116,2 duplicate(NvGuardA) Guard#nv3a 8W_SOLDIER
+new_4-1,144,116,2 duplicate(NvGuardA) Guard#nv4a 8W_SOLDIER
+new_5-1,144,116,2 duplicate(NvGuardA) Guard#nv5a 8W_SOLDIER
-new_1-1,144,107,2 script Guard#nv2 105,{
+- script Guard::NvGuardB -1,{
mes "[Training Grounds Guard]";
- if(rand(2)) {
- mes "Come in!";
- mes "I would like to welcome you to the Training Grounds!";
- next;
- mes "[Training Grounds Guard]";
+ if (rand(2)) {
+ mes "Come in! I would like to welcome you to the Training Grounds!";
mes "In here, you can prepare yourself for your future adventures throughout the Ragnarok world!";
- }
- else {
+ } else {
mes "Go, Novice, go!";
mes "Fight, and grow stronger! Look towards a brighter tomorrow!";
}
close;
}
+new_1-1,144,107,2 duplicate(NvGuardB) Guard#nv1b 8W_SOLDIER
+new_2-1,144,107,2 duplicate(NvGuardB) Guard#nv2b 8W_SOLDIER
+new_3-1,144,107,2 duplicate(NvGuardB) Guard#nv3b 8W_SOLDIER
+new_4-1,144,107,2 duplicate(NvGuardB) Guard#nv4b 8W_SOLDIER
+new_5-1,144,107,2 duplicate(NvGuardB) Guard#nv5b 8W_SOLDIER
-new_1-2,161,182,5 script Instructor#nv 92,{
+- script Instructor#Edwin::NvEdwin -1,{
mes "[Edwin]";
mes "Eh? Why are you still here?";
mes "There are no more courses that you need to take.";
@@ -2023,34 +2431,984 @@ new_1-2,161,182,5 script Instructor#nv 92,{
mes "Well, I will let you out of here.";
mes "Go find the instructor, Brade.";
close2;
- warp "new_1-2",100,100;
+ savepoint strnpcinfo(4),100,100;
+ warp strnpcinfo(4),100,100;
end;
}
+new_1-2,161,182,5 duplicate(NvEdwin) Instructor#nv1 4_F_03
+new_2-2,161,182,5 duplicate(NvEdwin) Instructor#nv2 4_F_03
+new_3-2,161,182,5 duplicate(NvEdwin) Instructor#nv3 4_F_03
+new_4-2,161,182,5 duplicate(NvEdwin) Instructor#nv4 4_F_03
+new_5-2,161,182,5 duplicate(NvEdwin) Instructor#nv5 4_F_03
+
+function script F_NvErase {
+ if (getarg(0,0)) {
+ if (checkquest(7123) > -1) erasequest 7123;
+ if (checkquest(7124) > -1) erasequest 7124;
+ if (checkquest(7126) > -1) erasequest 7126;
+ if (checkquest(7127) > -1) erasequest 7127;
+ }
+ nude;
+ setarray .@manuals[0],countitem(2819),countitem(2820),countitem(2821),countitem(2822),countitem(2823),countitem(2824);
+ if (.@manuals[0]) delitem 2819,.@manuals[0]; //Swordman_Manual
+ if (.@manuals[1]) delitem 2820,.@manuals[1]; //Thief_Manual
+ if (.@manuals[2]) delitem 2821,.@manuals[2]; //Acolyte_Manual
+ if (.@manuals[3]) delitem 2822,.@manuals[3]; //Archer_Manual
+ if (.@manuals[4]) delitem 2823,.@manuals[4]; //Merchant_Manual
+ if (.@manuals[5]) delitem 2824,.@manuals[5]; //Mage_Manual
+ return;
+}
-// Real Combat Training Mobs
+// Pre-Renewal Backwards Compatibility
//============================================================
-new_1-3,0,0,0,0 monster ChonChon 1011,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 Fabre 1184,5,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 Poring 1002,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 Fabre 1184,5,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 Roda Frog 1012,10,0,0,0
-new_2-3,0,0,0,0 monster Willow 1010,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 Fabre 1184,5,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 Roda Frog 1012,10,0,0,0
-new_3-3,0,0,0,0 monster Willow 1010,10,0,0,0
-new_4-3,0,0,0,0 monster Fabre 1184,5,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 Spore 1014,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_5-3,0,0,0,0 monster Fabre 1184,5,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 Spore 1014,1,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 \ No newline at end of file
+- script Final Tester::NvHanson -1,{
+ if (nov_3_swordman < 40) {
+ mes "[Hanson]";
+ mes "Eh? Weird?";
+ next;
+ mes "[Hanson]";
+ mes "The Training Grounds have come under new management...";
+ mes "You seem to have come from the previous management.";
+ next;
+ mes "[Hanson]";
+ mes "You may continue, you should have enough experience if you made it here.";
+ next;
+ mes "[Hanson]";
+ mes "I will send you to any town that you'd like to go to.";
+ mes "Or do you have a favourite profession?";
+ next;
+ switch(select("Choose Profession.:Go to Towns.")) {
+ case 1:
+ mes "[Hanson]";
+ mes "What profession would you like to perform?";
+ next;
+ switch(select("Swordman:Acolyte:Thief:Merchant:Archer:Mage")) {
+ 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 "[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;
+ callsub L_Supplies;
+ savepoint "izlude",128,98; // Old coordinates: (95,104)
+ warp "izlude_in",74,167;
+ end;
+ case 2:
+ mes "[Hanson]";
+ mes "You have chosen";
+ 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 North-East in Prontera. Please remember this.";
+ next;
+ callsub L_Supplies;
+ savepoint "prontera",117,72;
+ warp "prt_church",172,19;
+ end;
+ case 3:
+ mes "[Hanson]";
+ mes "You have chosen";
+ 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 North-West of town. Please remember this.";
+ next;
+ callsub L_Supplies;
+ savepoint "morocc",150,99;
+ warp "moc_ruins",155,44;
+ end;
+ case 4:
+ mes "[Hanson]";
+ mes "You have chosen";
+ mes "to become a Merchant.";
+ mes "You will be sent to";
+ mes "the town of Alberta.";
+ next;
+ callsub L_Supplies;
+ savepoint "alberta",30,232;
+ warp "alberta_in",62,44;
+ end;
+ case 5:
+ mes "[Hanson]";
+ mes "You have chosen";
+ 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 North-West in Payon. Please remember this.";
+ next;
+ callsub L_Supplies;
+ savepoint "payon",256,242;
+ warp "payon_in02",64,65;
+ end;
+ case 6:
+ mes "[Hanson]";
+ mes "You have chosen";
+ 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 North-West in town. Please remember this.";
+ next;
+ callsub L_Supplies;
+ savepoint "geffen",119,37;
+ warp "geffen_in",163,98;
+ end;
+ }
+ case 2:
+ mes "[Hanson]";
+ mes "To what town do you want to go?";
+ next;
+ callsub L_Warp, select("Prontera:Geffen:Morroc:Payon:Alberta:Never mind");
+ end;
+ }
+ } else {
+ mes "[Hanson]";
+ mes "You have received all the supplies.";
+ mes "To what town do you want to go?";
+ next;
+ callsub L_Warp, select("Prontera:Geffen:Morroc:Payon:Alberta");
+ end;
+ }
+ end;
+
+L_Supplies:
+ 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 "^00003320 Free Tickets for Kafra Storage^000000";
+ mes "^00003330 Free Tickets for Kafra Transportation^000000";
+ mes "^0000331 Novice Cutter^000000";
+ mes "^0000331 Novice Adventurer's Suit^000000";
+ next;
+ 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.";
+ set nov_3_swordman,40;
+ getitem 7059,20; //Cargo_Free_Ticket
+ getitem 7060,30; //Warp_Free_Ticket
+ getitem 2393,1; //N_Adventurer's_Suit
+ getitem 13040,1; //N_Cutter
+ next;
+ mes "[Hanson]";
+ mes "You will now";
+ mes "be teleported.";
+ mes "Good luck,";
+ mes "^A62A2A"+strcharinfo(0)+"^000000";
+ mes "and farewell.";
+ close2;
+ return;
+
+L_Warp:
+ mes "[Hanson]";
+ switch(getarg(0)) {
+ case 1:
+ mes "I will send you to Prontera, the Capital City.";
+ close2;
+ savepoint "prontera",117,72;
+ warp "prontera",150,50;
+ end;
+ case 2:
+ mes "I will send you to Geffen, the City of Magic.";
+ close2;
+ savepoint "geffen",119,37;
+ warp "geffen",122,65;
+ end;
+ case 3:
+ mes "I will send you to Morroc, the Desert Town.";
+ close2;
+ savepoint "morocc",150,99;
+ warp "morocc",155,110;
+ end;
+ case 4:
+ mes "I will send you to Payon, the Mountain Village.";
+ close2;
+ savepoint "payon",70,100;
+ warp "payon",166,67;
+ end;
+ case 5:
+ mes "I will send you to Alberta, the Port City.";
+ close2;
+ savepoint "alberta",30,232;
+ warp "alberta",114,58;
+ end;
+ case 6:
+ mes "[Hanson]";
+ mes "Come back when you've made up your mind.";
+ close;
+ }
+}
+new_1-4,100,29,1 duplicate(NvHanson) Final Tester#nv1 1_ETC_01
+new_2-4,100,29,1 duplicate(NvHanson) Final Tester#nv2 1_ETC_01
+new_3-4,100,29,1 duplicate(NvHanson) Final Tester#nv3 1_ETC_01
+new_4-4,100,29,1 duplicate(NvHanson) Final Tester#nv4 1_ETC_01
+new_5-4,100,29,1 duplicate(NvHanson) Final Tester#nv5 1_ETC_01
+
+// Job Test
+//============================================================
+- script Job Guide Lark::NvLark -1,{
+ mes "[Lark]";
+ mes "Have you decided what job you're going to choose?";
+ next;
+ mes "[Lark]";
+ mes "I've prepared a test to see what's the best job for you, according to your answers.";
+ next;
+ mes "[Lark]";
+ mes "How about it?";
+ mes "Would you like to take the test?";
+ next;
+ set .@loop,1;
+ while(.@loop) {
+ switch(select("Take the test.:What's the test for?:No, thank you.")) {
+ case 1:
+ mes "[Lark]";
+ mes "Great!";
+ mes "Let's start the test~";
+ next;
+ set .@loop,0;
+ break;
+ case 2:
+ mes "[Lark]";
+ mes "I will ask you a few simple questions.";
+ mes "Through this test, we will check "+strcharinfo(0)+"'s personality and propensity so that we can find the most appropriate job for you.";
+ next;
+ mes "[Lark]";
+ mes "There are 3 different types of tests and a total of 30 questions.";
+ next;
+ mes "[Lark]";
+ mes "What do you think? Will you take the test?";
+ next;
+ break;
+ case 3:
+ mes "[Lark]";
+ mes "If you haven't decided what job you want yet,";
+ mes "I suggest that you take the test.";
+ close;
+ }
+ }
+ mes "[Lark]";
+ mes "Let's start the first test.";
+ mes "Choose the answer that you like the most.";
+ mes "^FF0000There are 5 questions.^000000";
+ next;
+ mes "[Lark]";
+ mes "In the middle of the dark, you're walking on the streets of Prontera when you suddenly hear someone scream.";
+ next;
+ mes "'Aaaahh!! Don't hurt me ~'";
+ next;
+ mes "You run to the place and see someone surrounded by punks. Because of your sudden appearance, the punks are surprised.";
+ mes "What would be your reaction in this situation?";
+ next;
+ switch(select("Fight against the punks:Cast Magic.:Call for Guards.:Throw rocks at them.")) {
+ case 1:
+ set .@question_01$, "You subdue them easily.";
+ set .@swordman_p, .@swordman_p+1;
+ set .@taekwon_p, .@taekwon_p+1;
+ set .@ninja_p, .@ninja_p+1;
+ break;
+ case 2:
+ set .@question_01$, "You cast a spell on them.";
+ set .@magician_p, .@magician_p+1;
+ break;
+ case 3:
+ set .@question_01$, "You call for help and Guards come to your aid.";
+ set .@acolyte_p, .@acolyte_p+1;
+ break;
+ case 4:
+ set .@question_01$, "You skillfully throw rocks at the punks.";
+ set .@archer_p, .@archer_p+1;
+ set .@gunslinger_p, .@gunslinger_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes .@question_01$+" You have destroyed the street punks.";
+ mes "After clearing up the mess, you approach the person who was being attacked.";
+ mes "Do you think the person who was surrounded by punks is a man or a woman?";
+ next;
+ switch(select("Man:Woman")) {
+ case 1:
+ set .@question_02_01$, "he";
+ set .@question_02_02$, "son";
+ break;
+ case 2:
+ set .@question_02_01$, "she";
+ set .@question_02_02$, "daughter";
+ break;
+ }
+ mes "[Lark]";
+ mes "You find out that "+.@question_02_01$+" is the "+.@question_02_02$+" of a very rich family in Alberta and Punks attacked while "+.@question_02_01$+" was on an errand for the family.";
+ mes "What kind of errand was "+.@question_02_01$+" doing?";
+ next;
+ switch(select("Delivering an important object:Delivering a small souvenir:Delivering a message")) {
+ case 1:
+ set .@swordman_p, .@swordman_p+1;
+ set .@archer_p, .@archer_p+1;
+ set .@magician_p, .@magician_p+1;
+ break;
+ case 2:
+ set .@thief_p, .@thief_p+1;
+ set .@taekwon_p, .@taekwon_p+1;
+ break;
+ case 3:
+ set .@acolyte_p, .@acolyte_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "Thanks to your bravery, "+.@question_02_01$+" becomes your friend and decides to go on a trip.";
+ mes "Where are you going?";
+ next;
+ switch(select("Capital city, Prontera:Mountain city, Payon:Port city, Alberta:Magic city, Geffen:Satelite city, Izlude:Desert city, Morocc:Industrial city, Einbroch:World of natural life, Amatsu:Garden city, Hugel")) {
+ case 1:
+ set .@acolyte_p, .@acolyte_p+1;
+ break;
+ case 2:
+ set .@taekwon_p, .@taekwon_p+1;
+ break;
+ case 3:
+ set .@merchant_p, .@merchant_p+1;
+ break;
+ case 4:
+ set .@magician_p, .@magician_p+1;
+ break;
+ case 5:
+ set .@swordman_p, .@swordman_p+1;
+ break;
+ case 6:
+ set .@thief_p, .@thief_p+1;
+ break;
+ case 7:
+ set .@gunslinger_p, .@gunslinger_p+1;
+ break;
+ case 8:
+ set .@ninja_p, .@ninja_p+1;
+ break;
+ case 9:
+ set .@archer_p, .@archer_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "You're having a great time. Do you feel like something will be happening or not?";
+ next;
+ switch(select("Happening:Not happening.")) {
+ case 1:
+ set .@thief_p, .@thief_p+1;
+ set .@swordman_p, .@swordman_p+1;
+ set .@ninja_p, .@ninja_p+1;
+ set .@taekwon_p, .@taekwon_p+1;
+ set .@magician_p, .@magician_p+1;
+ set .@thief_p, .@thief_p+1;
+ break;
+ case 2:
+ set .@acolyte_p, .@acolyte_p+1;
+ set .@merchant_p, .@merchant_p+1;
+ set .@gunslinger_p, .@gunslinger_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "Let's go now for the second test. Choose the best answer in your own opinion.";
+ mes "^FF0000There are 5 questions.^000000";
+ next;
+ switch(select("Study:Exercise: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;
+ set .@taekwon_p, .@taekwon_p+1;
+ break;
+ case 3:
+ set .@acolyte_p, .@acolyte_p+1;
+ break;
+ case 4:
+ set .@thief_p, .@thief_p+1;
+ set .@ninja_p, .@ninja_p+1;
+ break;
+ }
+ switch(select("Change:Preservation")) {
+ 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;
+ set .@archer_p, .@archer_p+1;
+ set .@gunslinger_p, .@gunslinger_p+1;
+ break;
+ case 2:
+ set .@merchant_p, .@merchant_p+1;
+ break;
+ case 3:
+ set .@magician_p, .@magician_p+1;
+ break;
+ }
+ switch(select("Speed:Caution")) {
+ case 1:
+ set .@thief_p, .@thief_p+1;
+ set .@ninja_p, .@ninja_p+1;
+ break;
+ case 2:
+ set .@archer_p, .@archer_p+1;
+ set .@gunslinger_p, .@gunslinger_p+1;
+ break;
+ }
+ switch(select("Theory:Experience")) {
+ case 1:
+ set .@magician_p, .@magician_p+1;
+ break;
+ case 2:
+ set .@swordman_p, .@swordman_p+1;
+ set .@taekwon_p, .@taekwon_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "Let's go now for the third test. Please answer (Yes) or (No) to each question.";
+ mes "^FF0000There are 20 questions.^000000";
+ next;
+ mes "[Lark]";
+ mes "Do you always pick up the money that you find on the ground?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ set .@merchant_p, .@merchant_p+1;
+ set .@ninja_p, .@ninja_p+1;
+ break;
+ case 2:
+ set .@acolyte_p, .@acolyte_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "If you had the same name as someone of the opposite sex, would that make you less attracted to them?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ set .@ninja_p, .@ninja_p+1;
+ set .@archer_p, .@archer_p+1;
+ break;
+ case 2:
+ set .@acolyte_p, .@acolyte_p+1;
+ set .@gunslinger_p, .@gunslinger_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "Do you like being able to carry a lot of items at once?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ set .@swordman_p, .@swordman_p+1;
+ set .@merchant_p, .@merchant_p+1;
+ break;
+ case 2:
+ set .@magician_p, .@magician_p+1;
+ set .@taekwon_p, .@taekwon_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "Do you like reading books?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ set .@taekwon_p, .@taekwon_p+1;
+ set .@gunslinger_p, .@gunslinger_p+1;
+ break;
+ case 2:
+ set .@ninja_p, .@ninja_p+1;
+ set .@merchant_p, .@merchant_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "Do you read everything in a magazine?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ set .@magician_p, .@magician_p+1;
+ break;
+ case 2:
+ set .@archer_p, .@archer_p+1;
+ set .@gunslinger_p, .@gunslinger_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "Do you take the time to worry about what you are wearing?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ set .@merchant_p, .@merchant_p+1;
+ set .@ninja_p, .@ninja_p+1;
+ break;
+ case 2:
+ set .@swordman_p, .@swordman_p+1;
+ set .@thief_p, .@thief_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "Do you tell others what kind of fancy foods you've eaten recently?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ set .@thief_p, .@thief_p+1;
+ set .@swordman_p, .@swordman_p+1;
+ break;
+ case 2:
+ set .@acolyte_p, .@acolyte_p+1;
+ set .@taekwon_p, .@taekwon_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "Do you write things down in a notebook often?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ set .@magician_p, .@magician_p+1;
+ set .@merchant_p, .@merchant_p+1;
+ break;
+ case 2:
+ set .@thief_p, .@thief_p+1;
+ set .@archer_p, .@archer_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "Do you consider yourself attractive?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ set .@ninja_p, .@ninja_p+1;
+ set .@gunslinger_p, .@gunslinger_p+1;
+ break;
+ case 2:
+ set .@acolyte_p, .@acolyte_p+1;
+ set .@swordman_p, .@swordman_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "Do you like being in areas where a lot of people gather?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ set .@acolyte_p, .@acolyte_p+1;
+ set .@swordman_p, .@swordman_p+1;
+ break;
+ case 2:
+ set .@archer_p, .@archer_p+1;
+ set .@ninja_p, .@ninja_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "Do you like the idea of living a single life?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ set .@thief_p, .@thief_p+1;
+ set .@ninja_p, .@ninja_p+1;
+ break;
+ case 2:
+ set .@acolyte_p, .@acolyte_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "Do you like keeping your distance from others?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ set .@gunslinger_p, .@gunslinger_p+1;
+ set .@archer_p, .@archer_p+1;
+ break;
+ case 2:
+ set .@taekwon_p, .@taekwon_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "Do you think that having a good hiding space is important in battle?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ set .@magician_p, .@magician_p+1;
+ set .@gunslinger_p, .@gunslinger_p+1;
+ set .@archer_p, .@archer_p+1;
+ break;
+ case 2:
+ set .@taekwon_p, .@taekwon_p+1;
+ set .@magician_p, .@magician_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "Would you defend your friends even if you knew they were wrong?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ set .@swordman_p, .@swordman_p+1;
+ break;
+ case 2:
+ set .@thief_p, .@thief_p+1;
+ set .@ninja_p, .@ninja_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "Would you try to convince an enemy not to fight you with logic?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ set .@archer_p, .@archer_p+1;
+ set .@merchant_p, .@merchant_p+1;
+ break;
+ case 2:
+ set .@acolyte_p, .@acolyte_p+1;
+ set .@archer_p, .@archer_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "Can you sit still in the same place for a long time?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ set .@taekwon_p, .@taekwon_p+1;
+ set .@thief_p, .@thief_p+1;
+ break;
+ case 2:
+ set .@archer_p, .@archer_p+1;
+ set .@gunslinger_p, .@gunslinger_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "Do you think that you can take a punch straight to the gut from an Orc?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ set .@swordman_p, .@swordman_p+1;
+ set .@merchant_p, .@merchant_p+1;
+ break;
+ case 2:
+ set .@magician_p, .@magician_p+1;
+ set .@thief_p, .@thief_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "Do you make up nicknames for your friends?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ set .@gunslinger_p, .@gunslinger_p+1;
+ set .@archer_p, .@archer_p+1;
+ break;
+ case 2:
+ set .@acolyte_p, .@acolyte_p+1;
+ set .@gunslinger_p, .@gunslinger_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "Do you always have a plan B for various situations?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ set .@thief_p, .@thief_p+1;
+ set .@gunslinger_p, .@gunslinger_p+1;
+ break;
+ case 2:
+ set .@gunslinger_p, .@gunslinger_p+1;
+ set .@merchant_p, .@merchant_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "When talking with other people, do you take time so that the others have time to think?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ set .@magician_p, .@magician_p+1;
+ break;
+ case 2:
+ set .@ninja_p, .@ninja_p+1;
+ set .@archer_p, .@archer_p+1;
+ break;
+ }
+
+ // Calculate player's job.
+ // In the official script, higher .@who_job value always wins in a tie.
+ setarray .@points[0],
+ .@swordman_p, .@magician_p, .@archer_p, .@merchant_p, .@thief_p, .@acolyte_p, .@taekwon_p, .@gunslinger_p, .@ninja_p;
+ set .@max, .@points[0];
+ for(set .@i,1; .@i<9; set .@i,.@i+1) {
+ if (.@points[.@i] >= .@max) {
+ set .@max, .@points[.@i];
+ set .@ele, .@i;
+ }
+ }
+ set .@who_job, .@ele+1; // To match the official script's numbering.
+
+ mes "[Lark]";
+ mes "Thank you, have a long life.";
+ mes "The vocational aptitude assessment is finished.";
+ next;
+ mes "[Lark]";
+ mes "... ... the result is an aggregate. ... ...";
+ next;
+ mes "[Lark]";
+ mes "Tabulation is complete.";
+ mes "'^0000FFSo^000000', if you press this button";
+ mes "you can see the results.";
+ next;
+ switch(.@who_job) {
+ case 1:
+ set .@job$, "Swordman";
+ mes "[Lark]";
+ mes "...simple and straightforward...";
+ mes "...strong beliefs can affect the world...";
+ mes "...stands for hope that the people...";
+ mes "...to protect loyalty.";
+ mes "...thrusting you ...";
+ next;
+ break;
+ case 2:
+ set .@job$, "Wizard";
+ mes "[Lark]";
+ mes "...to understand all these things alone deulmyeo...";
+ mes "...hard work and independent thinking...";
+ mes "...type. Excellent judgement, naehyangjeok...";
+ mes "...and analytical, with insight...";
+ mes "...type : he observes everything...";
+ next;
+ break;
+ case 3:
+ set .@job$, "Archer";
+ mes "[Lark]";
+ mes "...immeasurable, have many emotions...";
+ mes "...to people who are trying to understand...";
+ mes "...trying to understand the type to receive. Also,...";
+ mes "...rejects mediocrity, and his true...";
+ mes "...type of life to live. Impressionable...";
+ mes "...rich and romantic ...";
+ next;
+ break;
+ case 4:
+ set .@job$, "Merchant";
+ mes "[Lark]";
+ mes "...to identify people's sense of hearing...";
+ mes "...outstanding determination and goals...";
+ mes "...oriented and a strong type of responsibility...";
+ mes "...seongchwiyok strong...";
+ next;
+ break;
+ case 5:
+ set .@job$, "Thief";
+ mes "[Lark]";
+ mes "...always makes life fun and who wants...";
+ mes "...always trying to find a new job...";
+ mes "...contribution to the world,...";
+ mes "...that type. Adventurer,...";
+ mes "...optimistic.";
+ next;
+ break;
+ case 6:
+ set .@job$, "Acolyte";
+ mes "[Lark]";
+ mes "...mentality makes him warm and considerate for others...";
+ mes "I know I have loved anyone,...";
+ mes "...be of help to others and for others...";
+ mes "...type of well-caring.";
+ mes "...always wants to help others.";
+ next;
+ break;
+ case 7:
+ set .@job$, "Taekwon Boy/Girl";
+ mes "[Lark]";
+ mes "...to believe with a stubborn conviction...";
+ mes "...heart and spirit of the grassland is consistent: it...";
+ mes "...make steps to move forward.";
+ mes "...type of comments or want to understand the beliefs...";
+ mes "...that type of effort to correct through training,...";
+ mes "...to have a sound mind...";
+ next;
+ break;
+ case 8:
+ set .@job$, "Gunslinger";
+ mes "[Lark]";
+ mes "People often praised Justice.";
+ mes "Sometimes fear and confusion may exist...";
+ mes "...that time, the definition of confusion...";
+ mes "...to maintain the balance, you're carrying the burden...";
+ mes "...for you ...";
+ next;
+ break;
+ case 9:
+ set .@job$, "Ninja";
+ mes "[Lark]";
+ mes "...to avoid the type of self-aspiring...";
+ mes "...married to a prominent goal and quietly avoiding...";
+ mes "...step and their goals...";
+ mes "...type of reaching your goal until they're complete...";
+ mes "...I do not regret it as ...";
+ next;
+ break;
+ default:
+ mes "[Lark]";
+ mes "An error has occurred.";
+ close;
+ }
+ mes "[Lark]";
+ mes "^8014EB"+.@job$+" is the job that suits you.^000000";
+ next;
+ mes "[Lark]";
+ mes "Well, "+.@job$+", you can choose among various career pathways.";
+ mes "Do you want to determine the job that suits you?";
+ mes "Do you want to select a job?";
+ next;
+ switch(select(.@job$+".:Any other profession.")) {
+ case 1:
+ mes "[Lark]";
+ mes "The Novice Training Center course is now shut down, "+.@job$+". Would you like to make this occupation your profession?";
+ next;
+ if(select("I will think about it again.:I'll choose the former.") == 1) {
+ mes "[Lark]";
+ mes "You will receive a book corresponding to each job type.";
+ mes "Please have enough experience to determine carefully the job that suits you.";
+ close;
+ }
+ break;
+ case 2:
+ mes "[Lark]";
+ mes "Quit now the Training Center Course. Would you like to make an occupation your career choice?";
+ next;
+ if(select("I will think about it again.:I still want to change my job.") == 1) {
+ mes "[Lark]";
+ mes "Primer of each class would have received.";
+ mes "Have enough experience to determine looked carefully, please.";
+ close;
+ }
+ mes "[Lark]";
+ mes "Yes, sir. Please select your desired job.";
+ next;
+ set .@who_job, select("Swordman:Wizard:Archer:Merchant:Thief:Acolyte:Taekwon Boy/Girl:Gunslinger:Ninja:I'll think again.");
+ if (.@who_job == 10) {
+ mes "[Lark]";
+ mes "The Novice Training Center has a lot of sea experience, please pay attention along the way.";
+ close;
+ }
+ break;
+ }
+ callfunc "F_NvErase",1;
+ set .@str$, "^A62A2A'"+strcharinfo(0)+"^000000'! Take care and may Freya bless you on your journey.";
+ switch(.@who_job) {
+ case 1:
+ mes "[Lark]";
+ mes "We will send you";
+ mes "to the swordman guild in Izlude, the Satelite city.";
+ mes .@str$;
+ mes "Good bye.";
+ close2;
+ savepoint "izlude",128,98; // Old coordinates: (95,104)
+ warp "izlude_in",74,167;
+ end;
+ case 2:
+ mes "[Lark]";
+ mes "We will send you";
+ mes "to the magician guild in Geffen, the Magical City.";
+ mes .@str$;
+ mes "Good bye.";
+ close2;
+ savepoint "geffen",119,37;
+ warp "geffen_in",163,98;
+ end;
+ case 3:
+ mes "[Lark]";
+ mes "We will send you";
+ mes "to the Archer Guild in Payon, the city of mountains.";
+ mes .@str$;
+ mes "Good bye.";
+ close2;
+ savepoint "payon",256,242;
+ warp "payon_in02",64,65;
+ end;
+ case 4:
+ mes "[Lark]";
+ mes "We will send you";
+ mes "to the merchant guild in Alberta, the Port City.";
+ mes .@str$;
+ mes "Good bye.";
+ close2;
+ savepoint "alberta",30,232;
+ warp "alberta_in",62,44;
+ end;
+ case 5:
+ mes "[Lark]";
+ mes "We will send you";
+ mes "to the thief guild in Morocc, the desert city.";
+ mes .@str$;
+ mes "Good bye.";
+ close2;
+ savepoint "morocc",150,99;
+ warp "moc_prydb1",99,185;
+ end;
+ case 6:
+ mes "[Lark]";
+ mes "We will send you";
+ mes "to the Prontera, the capital city of the Rune-Midgarts Kingdom.";
+ mes .@str$;
+ mes "Good bye.";
+ close2;
+ savepoint "prontera",117,72;
+ warp "prt_church",172,19;
+ end;
+ case 7:
+ mes "[Lark]";
+ mes "We will send you";
+ mes "to the Phoenix in Payon, the city of mountains.";
+ mes .@str$;
+ mes "Good bye.";
+ close2;
+ savepoint "payon",164,58;
+ warp "payon",163,141;
+ end;
+ case 8:
+ mes "[Lark]";
+ mes "You will be sent to the flyship";
+ mes "in Izlude, the Satelite city.";
+ mes "You can get on the flyship to go to Einbroch, the city of industries.";
+ mes .@str$;
+ mes "Good bye.";
+ close2;
+ savepoint "izlude",128,98; // Old coordinates: (95,104)
+ warp "izlude",128,67;
+ end;
+ case 9:
+ mes "[Lark]";
+ mes "We will send you";
+ mes "to the captain of the smuggling ship.";
+ mes "You can move to Amatsu";
+ mes "with the captain's help.";
+ mes .@str$;
+ mes "Good bye.";
+ close2;
+ savepoint "alberta",117,56;
+ warp "alberta",171,132;
+ end;
+ default:
+ mes "[Lark]";
+ mes "An error has occurred. If you keep having the same problem, please contact the local GM team.";
+ close;
+ }
+}
+new_1-3,106,50,4 duplicate(NvLark) Job Guide Lark#01 4_M_KID1
+new_2-3,106,50,4 duplicate(NvLark) Job Guide Lark#02 4_M_KID1
+new_3-3,106,50,4 duplicate(NvLark) Job Guide Lark#03 4_M_KID1
+new_4-3,106,50,4 duplicate(NvLark) Job Guide Lark#04 4_M_KID1
+new_5-3,106,50,4 duplicate(NvLark) Job Guide Lark#05 4_M_KID1
diff --git a/npc/re/jobs/novice/supernovice_ex.txt b/npc/re/jobs/novice/supernovice_ex.txt
index 4a8436dfe..044e386fe 100644
--- a/npc/re/jobs/novice/supernovice_ex.txt
+++ b/npc/re/jobs/novice/supernovice_ex.txt
@@ -1,19 +1,17 @@
//===== Hercules Script ======================================
//= Expanded Super Novice Job Quest
-//===== By: ==================================================
+//===== By: ==================================================
//= Euphy
-//===== Current Version: =====================================
+//===== Current Version: =====================================
//= 1.1a
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Description: =========================================
//= Job Change quest for Expanded Super Novice class.
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 All dialogue is custom, contains some incorrect behaviors.
//= 1.1 Switched to a translated copy of the official script
//= by Gennosuke Kouga, but vastly edited its content. [Euphy]
//= 1.1a Replaced effect numerics with constants. [Euphy]
-//============================================================
+//============================================================
function script Esseray_Ex {
if (BaseLevel > 98 && JobLevel > 98) {
@@ -59,7 +57,7 @@ function script Esseray_Ex {
else return;
}
-beach_dun2,119,92,4 script Fishing Novice#sp2 567,{
+beach_dun2,119,92,4 script Fishing Novice#sp2 4_M_SIT_NOVICE,{
if (checkquest(5092) >= 0) {
mes "[Fishing Novice]";
mes "Sh --------- !!";
@@ -479,7 +477,7 @@ beach_dun2,119,92,4 script Fishing Novice#sp2 567,{
nude;
callfunc "F_ClearJobVar"; // -- Clears all job variables for the current player
jobchange roclass(eaclass()|EAJL_THIRD);
- set EXSUPNOV_Q,5;
+ set EXSUPNOV_Q,5;
emotion e_heh;
mes "[Nodor]";
mes "Puhahahahahahahahahahah!!";
@@ -589,7 +587,7 @@ beach_dun2,119,92,4 script Fishing Novice#sp2 567,{
close;
}
-airplane,33,47,5 script Nudor#sp2 729,{
+airplane,33,47,5 script Nudor#sp2 4_F_NOVICE,{
if (checkquest(5099) >= 0) {
mes "[Nudor]";
mes "Ahhh~ I have no money to buy any food.";
@@ -655,7 +653,7 @@ airplane,33,47,5 script Nudor#sp2 729,{
mes "Woa~!! "+.@n+" Zeny! This helped me so much~ Tehee~";
mes "I can't believe it...";
changequest 5099,5100;
- set Zeny, Zeny - .@n;
+ Zeny -= .@n;
if (.@i < 5) set EXSUPNOV_Q_, .@i;
else {
if (.@n > 1000000) set EXSUPNOV_Q_,4;
diff --git a/npc/re/jobs/repair.txt b/npc/re/jobs/repair.txt
new file mode 100644
index 000000000..184f7071f
--- /dev/null
+++ b/npc/re/jobs/repair.txt
@@ -0,0 +1,271 @@
+//===== Hercules Script ======================================
+//= Job Repairs
+//===== By: ==================================================
+//= Euphy
+//===== Current Version: =====================================
+//= 1.2
+//===== Description: =========================================
+//= [Official Conversion]
+//= Removes potentially conflicting job data.
+//===== Additional Comments: =================================
+//= 1.0 First version.
+//= 1.1 Added GM management function. [Euphy]
+//= 1.2 Removed pointless comment. [Kisuka]
+//============================================================
+
+prt_in,38,104,4 script Valerie 4_F_VALKYRIE,{
+ if (checkweight(1201,1) == 0) {
+ mes "I think you have too many items. Let's try it again after you take some out.";
+ close;
+ }
+ if (MaxWeight - Weight < 1000) {
+ mes "You're overweight with items so I don't think we can proceed any further. Challenge me after you've taken some items off.";
+ close;
+ }
+ mes "[Valerie]";
+ mes "I am Valerie; I help those with abnormalities. I am friends with Valkyrie.";
+ next;
+ mes "[Valerie]";
+ mes "If both abnormalities disappear then we must start the test over from scratch. What would you like to do?";
+ next;
+ switch(select("I don't have any abnormalities:I think my body has some abnormalities")) {
+ case 1:
+ mes "[Valerie]";
+ mes "That's a relief. Then please take care.";
+ close;
+ case 2:
+ mes "[Valerie]";
+ mes "Are you sure you want to intialize it and start over?";
+ next;
+ if(select("Nope:Yes, I want to start completely over") == 1) {
+ mes "[Valerie]";
+ mes "I understand. I'll see you next time";
+ close;
+ }
+ mes "[Valerie]";
+ mes "All items related to the existing conditions will disappear. Are you okay with this?";
+ next;
+ if(select("Nope:Yes, I want to start completely over.") == 1) {
+ mes "[Valerie]";
+ mes "I understand. I'll see you next time.";
+ close;
+ }
+ mes "[Valerie]";
+ mes "It seems that there are a sea of people who seemed to be cursed of not being able to get a significant other after going through with this. Are you still okay with this? ";
+ next;
+ if(select("Nope:I still want to intialize.") == 1) {
+ mes "[Valerie]";
+ mes "I understand. I will see you next time.";
+ close;
+ }
+ mes "[Valerie]";
+ mes "In extreme cases, some become crippled and can get ulcers. Do you still want to intilize former processes?";
+ next;
+ if(select("Nope:Please intilize the former processes") == 1) {
+ mes "[Valerie]";
+ mes "I understand. I will see you next time";
+ close;
+ }
+ specialeffect2 EF_INVENOM;
+ progressbar "0xffff00",3;
+
+ // Warlock - quest items
+ if (isequipped(2796) || isequipped(2797)) {
+ mes "[Valerie]";
+ mes "Please unequip the Magical Stone or Magical Stone Ring and try again.";
+ close;
+ }
+ if (countitem(2796) || countitem(2797)) {
+ if (isequipped(2796) || isequipped(2797)) {
+ mes "[Valerie]";
+ mes "Please talk to me after your replace all Magical Stones.";
+ close;
+ }
+ setarray .@items[0], 2796, 2797, 6152, 6151; //Magical_Stone,Magical_Stone_,Glittering_Crystal,Peice_Of_Great_Bradium
+ for(set .@i,0; .@i<4; set .@i,.@i+1) {
+ if (countitem(.@items[.@i]))
+ delitem .@items[.@i], countitem(.@items[.@i]);
+ }
+ mes "[Valerie]";
+ mes "You're carrying something that is unnecessary. I will sort it out for you.";
+ close;
+ }
+
+ // Baby and third job characters meet no further conditions.
+ if (eaclass()&(EAJL_BABY|EAJL_THIRD)) {
+ mes "[Valerie]";
+ mes "I don't think you should have any further business with me.";
+ close;
+ }
+
+ // Rebirth - variable
+ if ((Class >= Job_Swordman && Class <= Job_Crusader2) && ADVJOB != 0) {
+ set ADVJOB,0;
+ mes "[Valerie]";
+ mes "You're carrying big karma- You should erase it.";
+ next;
+ mes "[Valerie]";
+ mes "Please talk to me again as there could be additional problems.";
+ close;
+ }
+
+ // Second job - variable and quests
+ // callsub L_Second, "<variable>", <quest>;
+ if (Class == Job_Swordman) {
+ callsub L_Second, "KNIGHT_Q", 9012;
+ callsub L_Second, "CRUS_Q", 3015;
+ } else if (Class == Job_Archer) {
+ callsub L_Second, "HNTR_Q", 4013;
+ callsub L_Second, "BARD_Q", 3004;
+ callsub L_Second, "DANC_Q", 7006;
+ } else if (Class == Job_Mage) {
+ callsub L_Second, "WIZ_Q", 9018;
+ callsub L_Second, "SAGE_Q", 2052;
+ } else if (Class == Job_Merchant) {
+ callsub L_Second, "BSMITH_Q", 2016;
+ callsub L_Second, "ALCH_Q", 2040;
+ } else if (Class == Job_Thief) {
+ callsub L_Second, "ASSIN_Q", 8008;
+ callsub L_Second, "ROGUE_Q", 2027;
+ } else if (Class == Job_Acolyte) {
+ callsub L_Second, "PRIEST_Q", 8016;
+ callsub L_Second, "MONK_Q", 3032;
+ }
+
+ // Third job - variable and quests
+ // callsub L_Third, "<variable>", <main quest>, <first quest>, <last quest>{, <additional quest>};
+ if (BaseJob == Job_Assassin)
+ callsub L_Third, "job_3rd_gc", 7100, 7091, 7116;
+ else if (BaseJob == Job_Blacksmith)
+ callsub L_Third, "job__mechanic", 10101, 10090, 10101;
+ else if (BaseJob == Job_Hunter)
+ callsub L_Third, "job_ranger01", 8262, 8254, 8262;
+ else if (BaseJob == Job_Knight)
+ callsub L_Third, "job_rune_edq", 3219, 3200, 3220;
+ else if (BaseJob == Job_Priest)
+ callsub L_Third, "job_arch", 2191, 2187, 2191;
+ else if (BaseJob == Job_Wizard)
+ callsub L_Third, "job_wl", 11112, 11106, 11112;
+ else if (BaseJob == Job_Alchemist)
+ callsub L_Third, "job_gen", 2223, 2209, 2217, 2223;
+ else if (BaseJob == Job_Bard)
+ callsub L_Third, "job_min", 11154, 11135, 11154;
+ else if (BaseJob == Job_Crusader)
+ callsub L_Third, "job_royal", 0, 12090, 12094;
+ else if (BaseJob == Job_Dancer)
+ callsub L_Third, "job_wan", 2222, 2218, 2222;
+ else if (BaseJob == Job_Monk)
+ callsub L_Third, "job_shu", 11158, 11155, 11158;
+ else if (BaseJob == Job_Rogue)
+ callsub L_Third, "job_sha", 7180, 7160, 7180;
+ else if (BaseJob == Job_Sage)
+ callsub L_Third, "job_soc", 12098, 12096, 12098;
+
+ mes "[Valerie]";
+ mes "I don't think you should have any further business with me.";
+ close;
+ }
+
+L_Second:
+ if (getd(getarg(0)) != 0) {
+ setd getarg(0),0;
+ if (checkquest(getarg(1)) == 2)
+ erasequest getarg(1);
+ mes "[Valerie]";
+ mes "I will help clear your problems for you that came from your former attempts.";
+ next;
+ mes "[Valerie]";
+ mes "Please talk to me again as there could be additional problems.";
+ close;
+ } else
+ return;
+
+L_Third:
+ if (getd(getarg(0)) != 0) {
+ setd getarg(0),0;
+ if (getarg(1)) {
+ if (checkquest(getarg(1)) == 2)
+ erasequest getarg(1);
+ }
+ for(set .@i,getarg(2); .@i<=getarg(3); set .@i,.@i+1) {
+ if (checkquest(.@i) > -1)
+ erasequest .@i;
+ }
+ if (getarg(4,0)) {
+ if (checkquest(getarg(4)) > -1)
+ erasequest getarg(4);
+ }
+ mes "[Valerie]";
+ mes "I will help clear your problems for you that came from your former attempts.";
+ next;
+ mes "[Valerie]";
+ mes "Please talk to me again as there could be additional problems.";
+ close;
+ } else
+ return;
+}
+
+- script Valerie#sign -1,{
+ mes "^ff00ffI couldn't pay the office rent so I am temporarily relocating to the building across from the Prontera Refinery.^000000";
+ mes " ";
+ mes "^ff00ffValerie^000000";
+ close;
+}
+in_moc_16,17,33,4 duplicate(Valerie#sign) Valerie#asn 2_BULLETIN_BOARD
+ein_in01,13,28,4 duplicate(Valerie#sign) Valerie#bls 2_BULLETIN_BOARD
+hu_in01,386,377,4 duplicate(Valerie#sign) Valerie#hnt 2_BULLETIN_BOARD
+prt_in,88,108,4 duplicate(Valerie#sign) Valerie#knt 2_BULLETIN_BOARD
+prt_church,19,36,4 duplicate(Valerie#sign) Valerie#prst 2_BULLETIN_BOARD
+gef_tower,110,30,4 duplicate(Valerie#sign) Valerie#wiz 2_BULLETIN_BOARD
+comodo,215,155,4 duplicate(Valerie#sign) Valerie#danc 2_BULLETIN_BOARD
+prt_castle,45,167,4 duplicate(Valerie#sign) Valerie#cru 2_BULLETIN_BOARD
+prt_monk,59,253,4 duplicate(Valerie#sign) Valerie#mnk 2_BULLETIN_BOARD
+moc_ruins,90,104,4 duplicate(Valerie#sign) Valerie#rg 2_BULLETIN_BOARD
+yuno_in02,43,62,4 duplicate(Valerie#sign) Valerie#sag 2_BULLETIN_BOARD
+prt_church,103,86,4 duplicate(Valerie#sign) Valerie#arch 2_BULLETIN_BOARD
+que_job01,75,92,4 duplicate(Valerie#sign) Valerie#gc 2_BULLETIN_BOARD
+yuno,129,150,4 duplicate(Valerie#sign) Valerie#mech 2_BULLETIN_BOARD
+tur_dun01,159,40,4 duplicate(Valerie#sign) Valerie#ran 2_BULLETIN_BOARD
+prt_in,167,24,4 duplicate(Valerie#sign) Valerie#rk 2_BULLETIN_BOARD
+spl_in02,81,102,4 duplicate(Valerie#sign) Valerie#wl 2_BULLETIN_BOARD
+alde_alche,38,181,4 duplicate(Valerie#sign) Valerie#alche 2_BULLETIN_BOARD
+alberta,198,129,4 duplicate(Valerie#sign) Valerie#min 2_BULLETIN_BOARD
+in_rogue,376,104,4 duplicate(Valerie#sign) Valerie#sc 2_BULLETIN_BOARD
+ve_in,244,122,4 duplicate(Valerie#sign) Valerie#shu 2_BULLETIN_BOARD
+xmas,166,209,4 duplicate(Valerie#sign) Valerie#wan 2_BULLETIN_BOARD
+
+sec_in02,12,40,5 script Job Repair 1_M_LIBRARYMASTER,1,1,{
+ callfunc "F_GM_NPC";
+ mes "Please input your password.";
+ next;
+ if (callfunc("F_GM_NPC","1854",1) == 1) {
+ set job_arch,100;
+ set job_3rd_gc,100;
+ set job__mechanic,100;
+ set job_ranger01,100;
+ set job_rune_edq,100;
+ set job_wl,100;
+ set job_gen,100;
+ set job_min,100;
+ set job_royal,100;
+ set job_sha,100;
+ set job_soc,100;
+ set job_shu,100;
+ set job_wan,100;
+ set KNIGHT_Q,100;
+ set PRIEST_Q,100;
+ set WIZ_Q,100;
+ set BSMITH_Q,100;
+ set ASSIN_Q,100;
+ set HNTR_Q,100;
+ set CRUS_Q,100;
+ set MONK_Q,100;
+ set SAGE_Q,100;
+ set ALCH_Q,100;
+ set ROGUE_Q,100;
+ set BARD_Q,100;
+ set DANC_Q,100;
+ set ADVJOB,15;
+ }
+ close;
+}
diff --git a/npc/re/kafras/kafras.txt b/npc/re/kafras/kafras.txt
index 2cab9e388..3e94f180d 100644
--- a/npc/re/kafras/kafras.txt
+++ b/npc/re/kafras/kafras.txt
@@ -1,30 +1,32 @@
//===== Hercules Script ======================================
//= Kafras (Cities/Dungeons/Fields)
-//===== By: ==================================================
+//===== By: ==================================================
//= Joseph
-//===== Current Version: =====================================
-//= 1.1
-//===== Compatible With: =====================================
-//= Hercules
+//===== Current Version: =====================================
+//= 1.4
//===== Description: =========================================
//= Argument settings for callfunc "F_Kafra":
//= arg(0): 0 - Default Kafra message
//= 1 - Niflhiem Kafra message
//= 2 - Guild Kafra message
-//= arg(1): 1 - Disable teleport menu
+//= arg(1): 1 - Disable teleport menu
//= arg(2): 1 - Disable info menu
//= arg(3): Cost of Storage service
//= arg(4): Cost of Rent a Pushcart service
-//===== Additional Comments: =================================
-//= 0.x Previous Authors:
+//===== Additional Comments: =================================
+//= 0.x Previous Authors:
//= - L0ne_W0lf, Daegaladh
//= 1.0 Merged and cleaned up Kafras. [Euphy]
//= 1.1 Added Dewata Kafra. [Lemongrass]
-//============================================================
+//= 1.2 Added Port Malaya Kafras. [Euphy]
+//= 1.3 Added Eden Group Kafra. [Euphy]
+//= 1.3a Moved Rune Knight Kafra from job file. [Euphy]
+//= 1.4 Added Izlude duplicates. [Euphy]
+//============================================================
// Brasilis
//============================================================
-brasilis,197,221,4 script Kafra Employee::kaf_bra 117,{
+brasilis,197,221,4 script Kafra Employee::kaf_bra 4_F_KAFRA1,{
cutin "kafra_01",2;
callfunc "F_Kafra",0,3,0,80,700;
savepoint "brasilis",195,259;
@@ -33,14 +35,50 @@ brasilis,197,221,4 script Kafra Employee::kaf_bra 117,{
// Dewata
//============================================================
-dewata,202,184,6 script Kafra Employee::kaf_dewata 117,{
+dewata,202,184,6 script Kafra Employee::kaf_dewata 4_F_KAFRA1,{
cutin "kafra_01",2;
callfunc "F_Kafra",0,10,1,40,700;
savepoint "dewata",206,174;
callfunc "F_KafEnd",0,1,"on Dewata Island";
}
+// Eden Group
+//============================================================
+moc_para01,10,185,4 script Kafra Employee::kaf_eden 4_F_KAFRA7,{
+ cutin "kafra_07",2;
+ mes "[Kafra Employee]";
+ mes "Welcome to the";
+ mes "Kafra Corporation.";
+ mes "I only offer Storage!";
+ callfunc "F_Kafra",5,2,0,80,0;
+}
// Izlude
//============================================================
-izlude,128,148,6 duplicate(kaf_izlude) Kafra Employee 117
+izlude,128,148,6 duplicate(kaf_izlude) Kafra Employee#iz 4_F_KAFRA1
+izlude_a,128,148,6 duplicate(kaf_izlude) Kafra Employee#iz_a 4_F_KAFRA1
+izlude_b,128,148,6 duplicate(kaf_izlude) Kafra Employee#iz_b 4_F_KAFRA1
+izlude_c,128,148,6 duplicate(kaf_izlude) Kafra Employee#iz_c 4_F_KAFRA1
+izlude_d,128,148,6 duplicate(kaf_izlude) Kafra Employee#iz_d 4_F_KAFRA1
+
+// Port Malaya
+//============================================================
+malaya,71,79,4 script Kafra Employee::kaf_malaya1 4_MAL_KAFRA,{
+ callfunc "F_Kafra",0,3,2,500,700;
+ savepoint "malaya",44,56;
+ callfunc "F_KafEnd",0,1,"in Port Malaya";
+}
+
+malaya,234,204,4 script Kafra Employee::kaf_malaya2 4_MAL_KAFRA,{
+ callfunc "F_Kafra",0,3,2,500,700;
+ savepoint "malaya",281,212;
+ callfunc "F_KafEnd",0,1,"in Port Malaya";
+}
+
+// Rune Knight
+//============================================================
+job3_rune01,92,62,3 script Kafra Employee::kaf_rune 4_F_KAFRA4,{
+ cutin "kafra_04",2;
+ callfunc "F_KafSet";
+ callfunc "F_Kafra",0,9,2,80,700;
+}
diff --git a/npc/re/merchants/3rd_trader.txt b/npc/re/merchants/3rd_trader.txt
index 7c3ca3cac..792b7abd9 100644
--- a/npc/re/merchants/3rd_trader.txt
+++ b/npc/re/merchants/3rd_trader.txt
@@ -1,20 +1,26 @@
//===== Hercules Script ======================================
//= 3rd Item Seller
-//===== By: ==================================================
+//===== By: ==================================================
//= Masao, Mercurial
-//===== Current Version: =====================================
-//= 1.2
-//===== Description: =========================================
-//= [Aegis Conversion]
-//= Sells some 3rd Job related items.
-//===== Additional Comments: =================================
+//===== Current Version: =====================================
+//= 1.5
+//===== Description: =========================================
+//= [Official Conversion]
+//= Sells some 3rd Job related items:
+//= - Poison Herbs, Rune Stones, Rare Herbs, Points
+//===== Additional Comments: =================================
//= 1.0 First Version.
//= 1.1 Optimized Poison Herb Salesman NPC
//= 1.2 Optimized and standardized. [Euphy]
-//============================================================
+//= 1.3 Added Malangdo/Mora Points NPC. [Euphy]
+//= 1.4 Updated to match the official scripts. [Euphy]
+//= 1.5 Added Izlude duplicates. [Euphy]
+//============================================================
-job3_guil01,79,96,3 script Poison Herb Salesman::PHS 877,{
- if (checkweight(1201,1) == 0 || MaxWeight - Weight < 20000) {
+// Poison Herb Merchants (Guillotine Cross)
+//============================================================
+- script ::phs -1,{
+ if (checkweight(1201,1) == 0 || MaxWeight - Weight < 2000) {
mes "- Wait a minute !! -";
mes "- Currently you're carrying -";
mes "- too many items with you. -";
@@ -22,68 +28,65 @@ job3_guil01,79,96,3 script Poison Herb Salesman::PHS 877,{
mes "- after you lose some weight. -";
close;
}
- mes "[Poison Herb Salesman]";
+ mes "[Poison Herb Merchant]";
mes "I am the professional";
- mes "poison herb seller.";
- mes "Which one do you want?";
- mes "They cost 4,000 zeny each!";
- set .@i, select("Nerium:Rantana:Makulata:Seratum:Scopolia:Amoena:Poison Kit")-1;
+ mes "Poison Herb merchant.";
+ mes "Each Herb costs 4,000 zeny.";
+ mes "What would you like?";
next;
+ set .@i, select("Nerium:Rantana:Makulata:Seratum:Scopolia:Amoena:Poison Kit:Cancel")-1;
+ mes "[Poison Herb Merchant]";
if (.@i < 6) {
- mes "[Poison Herb Salesman]";
- mes "How many do you want? You can";
- mes "only buy a maximum of 2000 ea";
- mes "and if you want to cancel, enter '0'.";
- next;
- input .@amount;
- mes "[Poison Herb Salesman]";
- if (.@amount == 0) {
- mes "You've cancelled the trade.";
- close;
- }
- if (.@amount > 2000) {
- mes "Please check the maximum";
- mes "amount and then try again.";
- close;
- }
- if (Zeny < .@amount*4000) {
- mes "Please check the money you have.";
- mes "It doesn't seem like you have enough money.";
- close;
- }
- set Zeny, Zeny-(.@amount*4000);
- getitem 7932+.@i,.@amount;
- mes "Thank you. See you~!";
- close;
+ set .@item,7932+.@i;
+ set .@price,4000;
+ set .@max,2000;
+ set .@max$,"2,000";
+ } else if (.@i == 6) {
+ set .@item,7931;
+ set .@price,5000;
+ set .@max,500;
+ set .@max$,"500";
+ mes "Each Poison Kit costs 5,000 zeny.";
} else {
- mes "[Poison Herb Salesman]";
- mes "You can only buy";
- mes "1 Poison Kit and it costs 5,000 zeny.";
- mes "Will you buy it?";
- next;
- if(select("Yes, I will.:No, I won't.") == 2) {
- mes "[Poison Herb Salesman]";
- mes "Well, I see. See you~!";
- close;
- }
- mes "[Poison Herb Salesman]";
- if (Zeny < 5000) {
- mes "Please check the money you have.";
- mes "It doesn't seem like you have enough money.";
- close;
- }
- set Zeny, Zeny-5000;
- getitem 7931,1;
- mes "[Poison Herb Salesman]";
- mes "Thank you. See you~!";
+ mes "Well, I see. Come back again~!";
+ close;
+ }
+ mes "How many do you want?";
+ mes "You can only buy a maximum of '"+.@max+"' ea.";
+ mes "Enter '0' if you want to cancel.";
+ next;
+ input .@amount;
+ if (.@amount == 0) {
+ mes "[Poison Herb Merchant]";
+ mes "You've cancelled the trade.";
+ close;
+ }
+ if (.@amount > .@max) {
+ mes "[Poison Herb Merchant]";
+ mes "The number must be less than "+.@max$+"!";
+ close;
+ }
+ set .@total, .@amount * .@price;
+ if (Zeny < .@total) {
+ mes "[Poison Herb Merchant]";
+ mes "You don't have enough money.";
+ mes "Check how much money you have first.";
close;
}
+ Zeny -= .@total;
+ getitem .@item, .@amount;
+ mes "[Poison Herb Merchant]";
+ mes "Thank you. Come back again~!";
+ close;
}
-morocc,190,96,4 duplicate(PHS) Poison Herb Salesman#moc 877
-lhz_in02,16,205,4 duplicate(PHS) Poison Herb Salesman#lhz 877
+job3_guil01,79,96,3 duplicate(phs) Poison Herb Merchant 4_F_YUNYANG
+morocc,191,94,4 duplicate(phs) Poison Herb Merchant#moc 4_F_YUNYANG //Official: (190,96) -> in a wall
+lhz_in02,16,205,4 duplicate(phs) Poison Herb Merchant#lhz 4_F_YUNYANG
-job3_rune01,90,62,3 script Rune Salesman::runesale 853,{
- if (checkweight(1201,1) == 0 || MaxWeight - Weight < 20000) {
+// Rune Stone Merchants (Rune Knight)
+//============================================================
+- script ::runesale -1,{
+ if (checkweight(1201,1) == 0 || MaxWeight - Weight < 2000) {
mes "- Wait a minute !! -";
mes "- Currently you're carrying -";
mes "- too many items with you. -";
@@ -91,57 +94,67 @@ job3_rune01,90,62,3 script Rune Salesman::runesale 853,{
mes "- after you lose some weight. -";
close;
}
- mes "[Rune Salesman]";
+ mes "[Rune Merchant]";
mes "Hey, do you need Runes?!";
- mes "I sell all kinds of Rune Stones!";
- mes "What kind of Rune do you want?";
+ mes "I sell all sorts of Rune Stones!";
+ mes "What would you like?";
next;
set .@i, select("Buy high-quality Rune Stones.:Buy ordinary Rune Stones.");
- mes "[Rune Salesman]";
+ mes "[Rune Merchant]";
if (.@i == 1) {
mes "High-quality Runes!";
mes "They cost 2,500 zeny each!";
- setarray .@rune[0],12734,2500;
+ set .@item,12734; //Runstone_Quality
+ set .@price,2500;
} else {
mes "Ordinary Rune Stones?";
mes "They cost 1,000 zeny each!";
+ set .@item,12737; //Runstone_Ordinary
+ set .@price,1000;
setarray .@rune[0],12737,1000;
}
- mes "Tell me how many you want to buy";
+ mes "Tell me how many you want,";
mes "and remember, you can only";
- mes "buy a maximum amount of 2000 ea!";
+ mes "buy a maximum of '2000' ea.";
next;
input .@amount;
- mes "[Rune Salesman]";
if (.@amount == 0) {
- mes "You're not buying? Go away!";
+ mes "[Rune Merchant]";
+ mes "You're not buying? Please leave!";
close;
}
if (.@amount > 2000) {
- mes "Please check the maximum";
- mes "amount and then come back to me again!";
+ mes "[Rune Merchant]";
+ mes "The number must be less than 2,000!";
close;
}
- if (Zeny < .@amount*.@rune[1]) {
- mes "Money! Money!";
- mes "You are short of money!";
- mes "Check the amount of money you have!!";
+ set .@total, .@amount * .@price;
+ if (Zeny < .@total) {
+ mes "[Rune Merchant]";
+ mes "Zeny! Zeny!";
+ mes "You don't have enough money.";
+ mes "Check how much money you have first.";
close;
}
- if (!checkweight(.@rune[0],.@amount)) {
- mes "You're not able to carry it, so why are you trying to buy it?!";
+ if (!checkweight(.@item,.@amount)) {
+ mes "[Rune Merchant]";
+ mes "It doesn't seem like you are able to carry it all, why are you trying it?!";
close;
}
- set Zeny, Zeny-(.@amount*.@rune[1]);
- getitem .@rune[0],.@amount;
- mes "You can buy more again.";
- mes "So, see you later.";
+ Zeny -= .@total;
+ getitem .@item, .@amount;
+ mes "[Rune Merchant]";
+ mes "Thank you.";
+ mes "Please come back again~!";
close;
}
-prontera,168,228,3 duplicate(runesale) Rune Salesman#1 853
+job3_rune01,90,62,3 duplicate(runesale) Rune Merchant#job3 4_M_YURI
+prontera,168,228,3 duplicate(runesale) Rune Merchant#prt 4_M_YURI
-job3_guil01,91,93,3 script Rare Herb Collector 49,{
- if (checkweight(1201,1) == 0 || MaxWeight - Weight < 20000) {
+// Rare Herb Merchants (Guillotine Cross)
+//============================================================
+job3_guil01,91,93,3 script Rare Herb Collector 1_M_03,{
+ if (checkweight(1201,1) == 0 || MaxWeight - Weight < 2000) {
mes "- Wait a minute !! -";
mes "- Currently you're carrying -";
mes "- too many items with you. -";
@@ -151,27 +164,48 @@ job3_guil01,91,93,3 script Rare Herb Collector 49,{
}
if (Class == Job_Guillotine_Cross || Class == Job_Guillotine_Cross_T || Class == Job_Baby_Cross) {
mes "[Rare Poison Herb Collector]";
- mes "I wander around the world and collect rare poison herbs. Recently, I am dealing in the herb called Izidor. If you are interested, you can buy them.";
+ mes "I wander around the world and collect rare poison herbs. Recently, I started dealing in the herb called Izidor. If you are interested, you can buy them.";
next;
- set .@i, select("How can I buy them?:Exchange it with Animal Blood:Exchange it with a Bitter Herb:Exchange it with a Deadly Noxious Herb:Exchange it with a Frozen Rose:Exchange it with Ment:Exchange it with Hinalle")-1;
- if (.@i == 0) {
+ set .@i, select("How can I buy them?:Exchange it for Animal Blood:Exchange it for a Bitter Herb:Exchange it for a Deadly Noxious Herb:Exchange it for a Frozen Rose:Exchange it for Ment:Exchange it for Hinalle")-2;
+ if (.@i == -1) {
mes "[Rare Poison Herb Collector]";
- mes "You can buy any of those items for 10,000 zeny: Animal Blood, Bitter Herb, Deadly Noxious Herb, Frozen Rose, Ment or Hinalle. ";
+ mes "You can buy them for 10,000 zeny and one of these rare items, Animal Blood, Bitter Herb, Deadly Noxious Herb, Frozen Rose, Ment or an Hinalle.";
next;
mes "[Rare Poison Herb Collector]";
- mes "Why I ask for money? That is just to pay a little respect to a collector like me. Ha ha ha...";
+ mes "Why do I ask money? That's just to pay a little respect to a collector like me. Ha ha ha...";
close;
} else {
- setarray .@exchange[1],702,621,631,749,605,703;
+ setarray .@exchange[0],702,621,631,749,605,703;
+ set .@item, .@exchange[.@i];
+ set .@price, 10000;
+
mes "[Rare Poison Herb Collector]";
- if (!countitem(.@exchange[.@i]) || Zeny < 10000) {
- mes "Hey, try again after you've prepared all the requirements for the exchange.";
+ mes "How many do you want?";
+ mes "You can only buy a maximum of '2000' ea.";
+ mes "Enter '0' if you want to cancel.";
+ next;
+ input .@amount;
+ if (.@amount == 0) {
+ mes "[Rare Poison Herb Collector]";
+ mes "You've cancelled the trade.";
+ close;
+ }
+ if (.@amount > 2000) {
+ mes "[Rare Poison Herb Collector]";
+ mes "The number must be less than 2,000!";
+ close;
+ }
+ set .@total, .@amount * .@price;
+ if (countitem(.@item) < .@amount || Zeny < .@total) {
+ mes "[Rare Poison Herb Collector]";
+ mes "Hey, come back when you have all the requirements for the exchange.";
close;
}
- mes "Thank you. I've received your payment.";
- delitem .@exchange[.@i],1;
- set Zeny, Zeny-10000;
- getitem 709,1;
+ mes "[Rare Poison Herb Collector]";
+ mes "Good. I've received the money and the special item.";
+ delitem .@item, .@amount;
+ Zeny -= .@total;
+ getitem 709, .@amount; //Izidor
close;
}
}
@@ -180,8 +214,10 @@ job3_guil01,91,93,3 script Rare Herb Collector 49,{
close;
}
-gef_tower,105,172,5 script Point Salesman#Sorcerer::pss 700,{
- if (checkweight(1201,1) == 0 || MaxWeight - Weight < 20000) {
+// Point Merchants (Sorcerer)
+//============================================================
+- script ::pss -1,{
+ if (checkweight(1201,1) == 0 || MaxWeight - Weight < 2000) {
mes "- Wait a minute !! -";
mes "- Currently you're carrying -";
mes "- too many items with you. -";
@@ -189,11 +225,11 @@ gef_tower,105,172,5 script Point Salesman#Sorcerer::pss 700,{
mes "- after you lose some weight. -";
close;
}
- mes "[Point Salesman]";
+ mes "[Point Merchant]";
mes "Hello. I'm selling a catalyst called ^FF0000Points^000000 for Sorcerers. What would you like?";
next;
set .@i, select("Scarlet Points - 200z:Lime Green Points - 200z:Indigo Points - 200z:Yellow Wish Points - 200z:Cancel")-1;
- mes "[Point Salesman]";
+ mes "[Point Merchant]";
if (.@i == 4) {
mes "You can't find the stuff you need?";
close;
@@ -205,7 +241,7 @@ gef_tower,105,172,5 script Point Salesman#Sorcerer::pss 700,{
mes "If you want to cancel, enter 0.";
next;
input .@amount;
- mes "[Point Salesman]";
+ mes "[Point Merchant]";
if (.@amount == 0) {
mes "You've cancelled the trade.";
close;
@@ -218,11 +254,27 @@ gef_tower,105,172,5 script Point Salesman#Sorcerer::pss 700,{
mes "You don't have enough space in your inventory to buy this amount.";
close;
}
- set Zeny, Zeny-(.@amount*200);
+ Zeny -= (.@amount*200);
getitem .@itemid[.@i],.@amount;
mes "Thank you very much. See you~!";
close;
}
-comodo,241,103,6 duplicate(pss) Point Salesman#1 700
-alberta,105,52,7 duplicate(pss) Point Salesman#2 700
-veins,202,128,6 duplicate(pss) Point Salesman#3 700 \ No newline at end of file
+gef_tower,105,172,5 duplicate(pss) Point Merchant#Sorcerer 8_F_GIRL
+prt_in,131,66,0 duplicate(pss) Point Merchant#Prontera 8_F_GIRL
+alberta,105,52,7 duplicate(pss) Point Merchant#Alberta 8_F_GIRL
+aldebaran,133,114,5 duplicate(pss) Point Merchant#Aldebaran 8_F_GIRL
+comodo,193,159,5 duplicate(pss) Point Merchant#Comodo 8_F_GIRL
+geffen,129,49,5 duplicate(pss) Point Merchant#Geffen 8_F_GIRL
+izlude,138,163,5 duplicate(pss) Point Merchant#Izlude 8_F_GIRL // Old coordinates: izlude (135,121)
+izlude_a,138,163,5 duplicate(pss) Point Merchant#Izlude_a 8_F_GIRL
+izlude_b,138,163,5 duplicate(pss) Point Merchant#Izlude_b 8_F_GIRL
+izlude_c,138,163,5 duplicate(pss) Point Merchant#Izlude_c 8_F_GIRL
+izlude_d,138,163,5 duplicate(pss) Point Merchant#Izlude_d 8_F_GIRL
+malangdo,214,163,5 duplicate(pss) Point Merchant#Malangdo 8_F_GIRL
+mora,115,118,3 duplicate(pss) Point Merchant#Mora 8_F_GIRL
+ra_in01,256,273,3 duplicate(pss) Point Merchant#Rachel 8_F_GIRL
+veins,202,128,5 duplicate(pss) Point Merchant#Veins 8_F_GIRL
+dicastes01,207,200,5 duplicate(pss) Point Merchant#Dicastes 8_F_GIRL
+manuk,261,206,3 duplicate(pss) Point Merchant#Manuk 8_F_GIRL
+splendide,207,160,5 duplicate(pss) Point Merchant#Splendide 8_F_GIRL
+mid_camp,224,237,3 duplicate(pss) Point Merchant#Midgard 8_F_GIRL
diff --git a/npc/re/merchants/advanced_refiner.txt b/npc/re/merchants/advanced_refiner.txt
new file mode 100644
index 000000000..ddd48b836
--- /dev/null
+++ b/npc/re/merchants/advanced_refiner.txt
@@ -0,0 +1,196 @@
+//===== Hercules Script ======================================
+//= Advanced Refiner
+//===== By: ==================================================
+//= Euphy
+//===== Current Version: =====================================
+//= 1.0
+//===== Description: =========================================
+//= [Official Conversion]
+//= Refiner that uses Enriched ores to increase upgrade success.
+//= After a conversation with Doddler, it's been established that
+//= the advanced refiner works similar the the "Bubble Gum" item.
+//= The success percentage is not "increased" however, if it fails
+//= You get a second try. This tries twice at the same time,
+//= effectively giving you a re-roll on your attempt.
+//===== Additional Comments: =================================
+//= 1.0 Added Malangdo Refiner "Holink". [Euphy]
+//============================================================
+
+malangdo,221,174,6 script Holink#mal_cash 4_CAT_ADV1,{
+ disable_items;
+ mes "[Holink]";
+ mes "I am the meow~ Blacksmith Holink~";
+ mes "Master of refining, Holink~";
+ mes "I am the special cat Holink who learned from Morroc~";
+ mes "My daughter is so proud of me, Holink~";
+ mes "What should Holink~ refine today?";
+ next;
+ setarray .@position$[1],"Head","Body","Left Hand","Right Hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3";
+ set .@menu$,"";
+ for(set .@i,1; .@i<=10; set .@i,.@i+1)
+ set .@menu$, .@menu$+((getequipisequiped(.@i))?getequipname(.@i):.@position$[.@i]+"-[Empty]")+":";
+ set .@part, select(.@menu$);
+ if (!getequipisequiped(.@part)) {
+ mes "[Holink]";
+ switch(.@part) {
+ case 1:
+ mes "My teacher Aragam said meow~";
+ mes "There's no cure for stupidity...";
+ break;
+ case 2:
+ mes "There's nothing to see here, meow!!";
+ break;
+ case 3:
+ mes "Meow? What do you want me to do with this left hand...?";
+ break;
+ case 4:
+ mes "Meow? What do you want me to do with this right hand...?";
+ break;
+ case 5:
+ mes "Meow? You don't have anything on.";
+ break;
+ case 6:
+ mes "Kyang~! Do not mess with my sensitive olfactory, meow~.";
+ break;
+ case 7:
+ case 8:
+ mes "Meow? Where is the accessory?";
+ break;
+ case 9:
+ case 10:
+ mes "Meow? You talking about the other head parts, meow?~";
+ break;
+ }
+ close;
+ }
+ if (!getequipisenableref(.@part)) {
+ mes "[Holink]";
+ mes "Even Aragam can't refine such a thing, meow.";
+ close;
+ }
+ if (getequiprefinerycnt(.@part) >= 10) {
+ mes "[Holink]";
+ mes "Meow~ Perfect refining. Did Aragam do this, meow?~";
+ close;
+ }
+ mes "[Holink]";
+ switch(getequipweaponlv(.@part)) {
+ default:
+ case 0: // Armor
+ set .@price,15000;
+ set .@material,7619; //Enriched_Elunium
+ set .@type$,"armor";
+ mes "You have chosen an armor, meow~";
+ break;
+ case 1: // Level 1 Weapon
+ set .@price,500;
+ set .@material,7620; //Enriched_Oridecon
+ set .@type$,"weapon";
+ mes "A level 1 weapon...?";
+ break;
+ case 2: // Level 2 Weapon
+ set .@price,2000;
+ set .@material,7620; //Enriched_Oridecon
+ set .@type$,"weapon";
+ mes "Meow, a level 2 weapon...?";
+ break;
+ case 3: // Level 3 Weapon
+ set .@price,20000;
+ set .@material,7620; //Enriched_Oridecon
+ set .@type$,"weapon";
+ mes "Meow Meow~~ A level 3 weapon~~";
+ break;
+ case 4: // Level 4 Weapon
+ set .@price,50000;
+ set .@material,7620; //Enriched_Oridecon
+ set .@type$,"weapon";
+ mes "Me-Meow!... A level 4 weapon...!";
+ mes "I've only seen it twice while";
+ mes "learning from Aragam... Me-Meow!!";
+ break;
+ }
+ mes "You need ^ff9999"+getitemname(.@material)+"^000000 and ^ff9999"+.@price+"^000000 Zeny for this refine, meow~";
+ mes "Want to continue, meow?~";
+ next;
+ if(select("Yes!!:No!!") == 2) {
+ mes "[Holink]";
+ mes "Kyack!!";
+ mes "You don't belive in refine master Holink, meow?~";
+ close;
+ }
+ if (getequippercentrefinery(.@part) < 100) {
+ mes "[Holink]";
+ mes "Meow!!";
+ if (.@type$ == "armor")
+ mes "This armor was already refined so many times, meow.";
+ else {
+ mes "Danger. Danger~";
+ mes "This weapon was refined a lot, meow~";
+ next;
+ mes "[Holink]";
+ }
+ mes "You might break it if you continue";
+ mes "to try refining this item further, meow.";
+ next;
+ mes "[Holink]";
+ mes "Once the "+.@type$+" is broken, you can";
+ mes "never use it again, meow. Not to mention... all current";
+ mes "^ff0000cards and enchantments will vanish for sure^000000.";
+ mes "You still want to try, meow~?";
+ next;
+ if(select("Yes, I do!!:Forget about it!!") == 2) {
+ mes "[Holink]";
+ mes "Meow! Wise choice, meow.";
+ mes "But!!";
+ mes "I am not happy to see you doubting the refine master Holink, meow~";
+ close;
+ }
+ }
+ if (countitem(.@material) == 0 || Zeny < .@price) {
+ mes "[Holink]";
+ mes "You don't have the ingredients.";
+ mes "You need ^ff9999"+getitemname(.@material)+"^000000 and ^ff9999"+.@price+"^000000 Zeny, meow~";
+ mes "Go get it, meow~";
+ close;
+ }
+ delitem .@material,1;
+ Zeny -= .@price;
+ if (getequippercentrefinery(.@part) > rand(100) || getequippercentrefinery(.@part) > rand(100)) {
+ successrefitem .@part;
+ mes "[Holink]";
+ mes "Me~ Me~ Meow! Fun fun refining~";
+ next;
+ emotion e_kis;
+ mes "[Holink]";
+ mes "Perfect!! Perfect, meow!!";
+ mes "I am the disciple of the refining wizard Aragam~";
+ mes "Holink!!";
+ mes "Another day of successful refining, meow!!";
+ close;
+ }
+ failedrefitem .@part;
+ mes "[Holink]";
+ mes "Meo~ Meow~ Kyaaak!!";
+ next;
+ switch(rand(1,5)) {
+ case 1: emotion e_sob; break;
+ case 2: emotion e_swt2; break;
+ case 3: emotion e_wah; break;
+ case 4: emotion e_hmm; break;
+ case 5: emotion e_lv2; break;
+ }
+ mes "[Holink]";
+ mes "Meow!! Aaaaakk~~!!!!";
+ mes "Kyaaak!! I have failed, meow!!";
+ next;
+ mes "[Holink]";
+ mes "......";
+ mes "......";
+ mes "All~ Everything~ Broken, meow...";
+ next;
+ mes "[Holink]";
+ mes "Meow.... Master Aragam once said,";
+ mes "learn from your failures...";
+ mes "Human, this one failure will be the beginning of your success in the future.";
+ close;
+}
diff --git a/npc/re/merchants/alchemist.txt b/npc/re/merchants/alchemist.txt
new file mode 100644
index 000000000..ed2c0c20a
--- /dev/null
+++ b/npc/re/merchants/alchemist.txt
@@ -0,0 +1,117 @@
+//===== Hercules Script ======================================
+//= Alchemist Shop
+//===== By: ==================================================
+//= rAthena Dev Team
+//===== Current Version: =====================================
+//= 1.0
+//===== Description: =========================================
+//= [Official Conversion]
+//= Merchants for Alchemist Materials and Manuals.
+//===== Additional Comments: =================================
+//= 1.0 Split Geneticist shop from main file. [Euphy]
+//= Updated dialogue to match the official script.
+//============================================================
+
+alde_alche,31,186,3 script Craft Book Merchant#alde 4_M_ALCHE_D,{
+ mes "[Craft Book Merchant]";
+ mes "Welcome.";
+ mes "I'm here to sell";
+ mes "^0000FFspecial craft books^000000 for Geneticists.";
+ next;
+ mes "[Craft Book Merchant]";
+ mes "Geneticists have some skills";
+ mes "that require craft books to activate.";
+ next;
+ mes "[Craft Book Merchant]";
+ mes "The more craft books you have,";
+ mes "the more skills you can use.";
+ next;
+ mes "[Craft Book Merchant]";
+ mes "Please understand that";
+ mes "I specialize in the sale of these special books and";
+ mes "I ^FF0000don't sell other items^000000.";
+ next;
+ mes "[Craft Book Merchant]";
+ mes "Would you like to take a look at my craft books?";
+ next;
+ if(select("Sure.:No.") == 2) {
+ mes "[Craft Book Merchant]";
+ mes "Thank you for visiting my shop.";
+ mes "Please be safe on your travels.";
+ close;
+ }
+ if (checkweight(1201,1) == 0) {
+ mes "[Craft Book Merchant]";
+ mes "I'm sorry, but your inventory is almost full.";
+ mes "Please empty your inventory first.";
+ close;
+ }
+ if (MaxWeight - Weight < 2500) {
+ mes "[Craft Book Merchant]";
+ mes "Please empty your inventory first.";
+ close;
+ }
+ mes "[Craft Book Merchant]";
+ mes "Okay then, here's the list of available craft books.";
+ next;
+ switch(select("[Apple Bomb Craft Book] 100,000 zeny:[Pineapple Bomb Craft Book] 100,000 zeny:[Coconut Bomb Craft Book] 100,000 zeny:[Melon Bomb Craft Book] 100,000 zeny:[Banana Bomb Craft Book] 100,000 zeny:[Plant Gene Cultivation Method] 100,000 zeny:[Superior Potion Craft Manual] 100,000 zeny:[Mix Cooking Book] 100,000 zeny:[Health Improvement Research Book] 100,000 zeny:[Vigor Drink Recipe] 100,000 zeny:Close")){
+ case 1: set .@item,6279; break;
+ case 2: set .@item,6280; break;
+ case 3: set .@item,6281; break;
+ case 4: set .@item,6282; break;
+ case 5: set .@item,6283; break;
+ case 6: set .@item,6284; break;
+ case 7: set .@item,6285; break;
+ case 8: set .@item,11022; break;
+ case 9: set .@item,11023; break;
+ case 10: set .@item,11024; break;
+ case 11:
+ mes "[Craft Book Merchant]";
+ mes "Thank you for your patronage.";
+ mes "Please come again.";
+ close;
+ }
+ mes "[Craft Book Merchant]";
+ mes "^0000FF["+getitemname(.@item)+"] costs";
+ mes "100,000 zeny.";
+ mes "How many would you like to purchase?";
+ next;
+ input .@amount;
+ if (.@amount == 0) {
+ mes "[Craft Book Merchant]";
+ mes "Would you like to see some different books?";
+ close;
+ }
+ if (.@amount < 1 || .@amount > 99 ){
+ mes "[Craft Book Merchant]";
+ mes "You cannot purchase more than 100 at a time.";
+ close;
+ }
+ mes "[Craft Book Merchant]";
+ mes "You've entered "+.@amount+"x ^0000FF["+getitemname(.@item)+"]^000000 to be purchased.";
+ mes "Would you like to continue?";
+ next;
+ if (select("Yes:No") == 1) {
+ set .@total, .@amount * 100000;
+ if (Zeny < .@total) {
+ mes "[Craft Book Merchant]";
+ mes "I'm sorry, but you don't have enough money.";
+ close;
+ }
+ if (checkweight(.@item,.@amount) == 0){
+ mes "[Craft Book Merchant]";
+ mes "It doesn't seem like you can carry everything.";
+ mes "Please check the space in your inventory.";
+ close;
+ }
+ mes "[Craft Book Merchant]";
+ mes "Thank you for your patronage.";
+ Zeny -= .@total;
+ getitem .@item,.@amount;
+ close;
+ }
+ mes "[Craft Book Merchant]";
+ mes "Please take your time";
+ mes "before you make your decision.";
+ close;
+}
diff --git a/npc/re/merchants/ammo_boxes.txt b/npc/re/merchants/ammo_boxes.txt
new file mode 100644
index 000000000..432e0c8a4
--- /dev/null
+++ b/npc/re/merchants/ammo_boxes.txt
@@ -0,0 +1,19 @@
+//===== Hercules Script ======================================
+//= Magazine Dealers
+//===== By: ==================================================
+//= Euphy
+//===== Current Version: =====================================
+//= 1.1
+//===== Description: =========================================
+//= Turns bullets into magazines/packs.
+//===== Additional Comments: =================================
+//= 1.0 First version, Renewal duplicates.
+//= 1.1 Added Izlude duplicates. [Euphy]
+//============================================================
+
+que_ng,187,149,3 duplicate(mdk) Magazine Dealer Kenny#ng 4_M_01
+izlude,74,104,3 duplicate(mdk) Magazine Dealer Kenny#iz 4_M_01
+izlude_a,74,104,3 duplicate(mdk) Magazine Dealer Kenny#a 4_M_01
+izlude_b,74,104,3 duplicate(mdk) Magazine Dealer Kenny#b 4_M_01
+izlude_c,74,104,3 duplicate(mdk) Magazine Dealer Kenny#c 4_M_01
+izlude_d,74,104,3 duplicate(mdk) Magazine Dealer Kenny#d 4_M_01
diff --git a/npc/re/merchants/ammo_dealer.txt b/npc/re/merchants/ammo_dealer.txt
new file mode 100644
index 000000000..7abb58421
--- /dev/null
+++ b/npc/re/merchants/ammo_dealer.txt
@@ -0,0 +1,19 @@
+//===== Hercules Script ======================================
+//= Bullet Dealers
+//===== By ===================================================
+//= Euphy
+//===== Version ==============================================
+//= 1.1
+//===== Description ==========================================
+//= Bullet trader.
+//===== Comments =============================================
+//= 1.0 First version, Renewal duplicates.
+//= 1.1 Added Izlude duplicates. [Euphy]
+//============================================================
+
+que_ng,187,156,3 duplicate(bdt) Bullet Dealer Tony#ng 4_M_04
+izlude,77,104,3 duplicate(bdt) Bullet Dealer Tony#iz 4_M_04 //Official: (74,106) -> in the water
+izlude_a,77,104,3 duplicate(bdt) Bullet Dealer Tony#a 4_M_04
+izlude_b,77,104,3 duplicate(bdt) Bullet Dealer Tony#b 4_M_04
+izlude_c,77,104,3 duplicate(bdt) Bullet Dealer Tony#c 4_M_04
+izlude_d,77,104,3 duplicate(bdt) Bullet Dealer Tony#d 4_M_04
diff --git a/npc/re/merchants/blessed_refiner.txt b/npc/re/merchants/blessed_refiner.txt
new file mode 100644
index 000000000..bb5dd62d7
--- /dev/null
+++ b/npc/re/merchants/blessed_refiner.txt
@@ -0,0 +1,171 @@
+//===== Hercules Script ======================================
+//= Blessed Refiner
+//===== By: ==================================================
+//= Euphy
+//===== Current Version: =====================================
+//= 1.0
+//===== Description: =========================================
+//= [Official Conversion]
+//= Refiners that use Blessed ores to refine equipment.
+//= Upon failure, the equipment is not destroyed. The success
+//= rate is identical to that for Enriched ores.
+//= - "Blacksmith Dister" only refines from +6~12.
+//= NOTE: This NPC is currently disabled on official servers.
+//===== Additional Comments: =================================
+//= 1.0 First version. [Euphy]
+//============================================================
+
+- script ::BlacksmithDister -1,{
+ disable_items;
+ mes "[Blacksmith Dister]";
+ mes "In this highly competitive society, we must be different in order to survive!";
+ mes "I only refine equipment at the +6 ~ 12 levels.";
+ next;
+ mes "[Blacksmith Dister]";
+ mes "I will need ^ff9999Blessed Weapon Ore^000000 for weapons, and ^ff9999Blessed Armor Ore^000000 for armors.";
+ mes "Failed refines ^FF0000will not break or reduce the refine level^000000.";
+ next;
+ mes "[Blacksmith Dister]";
+ mes "How about it? Do you want to refine?";
+ next;
+ setarray .@position$[1],"Head","Body","Left Hand","Right Hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3";
+ set .@menu$,"";
+ for(set .@i,1; .@i<=10; set .@i,.@i+1)
+ set .@menu$, .@menu$+((getequipisequiped(.@i))?getequipname(.@i):.@position$[.@i]+"-[Unequipped]")+":";
+ set .@part, select(.@menu$);
+ if (!getequipisequiped(.@part)) {
+ mes "[Blacksmith Dister]";
+ switch(.@part) {
+ case 1:
+ mes "I'm a blacksmith, not a hairstylist.";
+ break;
+ case 2:
+ mes "With my hammer, I will make you a star of the sky.";
+ break;
+ case 3:
+ case 4:
+ mes "Making artificial hands is not my specialty.";
+ break;
+ case 5:
+ mes "Bring out the item so I can refine it!";
+ break;
+ case 6:
+ mes "Where is this weird smell coming from?";
+ break;
+ case 7:
+ case 8:
+ mes "Where is the accessory?";
+ break;
+ case 9:
+ mes "What do you want me to refine?";
+ break;
+ case 10:
+ mes "Huh? What do you want me to do?";
+ break;
+ }
+ close;
+ }
+ if (!getequipisenableref(.@part)) {
+ mes "[Blacksmith Dister]";
+ mes "This item cannot be refined.";
+ close;
+ }
+ set .@equip_refine, getequiprefinerycnt(.@part);
+ if (.@equip_refine < 6 || .@equip_refine > 12) {
+ mes "[Blacksmith Dister]";
+ mes "This equipment has refined to "+.@equip_refine+". I only handle items with refine levels from +6 to +12!";
+ close;
+ }
+ set .@equip_lv, getequipweaponlv(.@part);
+ switch(.@equip_lv) {
+ default:
+ case 0:
+ set .@price,20000;
+ set .@material,6439; //Unbreakable_Def
+ set .@type$,"Armor";
+ break;
+ case 1:
+ set .@price,1000;
+ set .@material,6438; //Unbreakable_Weap
+ set .@type$,"Weapon";
+ break;
+ case 2:
+ set .@price,2000;
+ set .@material,6438; //Unbreakable_Weap
+ set .@type$,"Weapon";
+ break;
+ case 3:
+ set .@price,20000;
+ set .@material,6438; //Unbreakable_Weap
+ set .@type$,"Weapon";
+ break;
+ case 4:
+ set .@price,40000;
+ set .@material,6438; //Unbreakable_Weap
+ set .@type$,"Weapon";
+ break;
+ }
+ set .@ore$,"^ff9999Blessed "+.@type$+" Ore^000000";
+ mes "[Blacksmith Dister]";
+ mes "This "+.@type$+" has been refined to "+.@equip_refine+". To refine it, I need "+.@ore$+" and a "+(.@price/1000)+",000 zeny refining fee.";
+ mes "Do you want to proceed?";
+ next;
+ if(select("Yes:No") == 2) {
+ mes "[Blacksmith Dister]";
+ mes "I am busy, don't joke with me!";
+ close;
+ }
+ if (getequippercentrefinery(.@part) < 100) {
+ mes "[Blacksmith Dister]";
+ mes "This "+.@type$+" has been refined many times. Although it will not disappear upon failure, the "+.@ore$+" will disappear!";
+ next;
+ mes "[Blacksmith Dister]";
+ mes "Of course, the refining fee will not be returned! Do you want to continue?";
+ next;
+ if(select("Yes:No") == 2) {
+ mes "[Blacksmith Dister]";
+ mes "Good. I'd be sad if it failed, too.";
+ close;
+ }
+ }
+ if (countitem(.@material) == 0 || Zeny < .@price) {
+ mes "[Blacksmith Dister]";
+ mes "Materials insufficient.";
+ mes "To refine "+((.@equip_lv)?"a level "+.@equip_lv+" weapon":"armor")+", I need "+.@ore$+" and a "+(.@price/1000)+",000 zeny refining fee.";
+ close;
+ }
+ delitem .@material,1;
+ Zeny -= .@price;
+ mes "[Blacksmith Dister]";
+ mes "Tac! Tac! Tac!";
+ if (getequippercentrefinery(.@part) > rand(100) || getequippercentrefinery(.@part) > rand(100)) {
+ specialeffect EF_BLESSING;
+ successrefitem .@part;
+ next;
+ mes "[Blacksmith Dister]";
+ mes "Hahahahahaha!!!";
+ next;
+ mes "[Blacksmith Dister]";
+ mes "Refine was a huge success~ Hahaha!";
+ close;
+ }
+ specialeffect EF_CURSEATTACK;
+ specialeffect2 EF_SUI_EXPLOSION;
+ next;
+ emotion (!rand(5))?e_ag:e_omg;
+ mes "[Blacksmith Dister]";
+ mes "Oh my goodness!!!!";
+ next;
+ mes "[Blacksmith Dister]";
+ mes "Oh! Although it was blessed by "+.@ore$+" to retain the equipment...";
+ next;
+ mes "[Blacksmith Dister]";
+ mes "My mood is worse when I fail!!";
+ close;
+}
+prt_in,52,56,3 duplicate(BlacksmithDister) Blacksmith Dister#prt 4_M_DWARF
+payon,148,172,3 duplicate(BlacksmithDister) Blacksmith Dister#pay 4_M_DWARF
+alberta_in,20,56,3 duplicate(BlacksmithDister) Blacksmith Dister#alb 4_M_DWARF
+yuno_in01,175,18,3 duplicate(BlacksmithDister) Blacksmith Dister#yuno 4_M_DWARF
+ein_in01,26,82,3 duplicate(BlacksmithDister) Blacksmith Dister#ein 4_M_DWARF
+lhz_in02,280,15,3 duplicate(BlacksmithDister) Blacksmith Dister#lhz 4_M_DWARF
diff --git a/npc/re/merchants/card_separation.txt b/npc/re/merchants/card_separation.txt
index 386474000..9954476ca 100644
--- a/npc/re/merchants/card_separation.txt
+++ b/npc/re/merchants/card_separation.txt
@@ -1,19 +1,18 @@
//===== Hercules Script ======================================
//= Card Separation System
-//===== By: ==================================================
+//===== By: ==================================================
//= Muad_Dib
-//===== Current Version: =====================================
-//= 1.0
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Current Version: =====================================
+//= 1.1
+//===== Description: =========================================
//= [Official Conversion]
//= Separates cards from equipment.
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First Version. [Euphy]
-//============================================================
+//= 1.1 Added "Richard" NPC. [Euphy]
+//============================================================
-malangdo,215,166,4 script Jeremy#mal 553,{
+- script ::CardSeparation_mal -1,{
disable_items;
if (checkweight(1201,1) == 0) {
mes "You have too many kinds of objects. Let's try to continue after reducing those objects.";
@@ -23,19 +22,32 @@ malangdo,215,166,4 script Jeremy#mal 553,{
mes "Can't continue because you have too many heavy objects. Let's try to continue after reducing the weight.";
close;
}
- mes "[Jeremy]";
- mes "Long time no see~";
- mes "I have learned a new skill that separates cards from Armor, Shoes, Garment and Headgear. Do you want to try it?";
+ if (strnpcinfo(1) == "Jeremy") {
+ set .@Jeremy,1;
+ set .@n$, "[Jeremy]";
+ setarray .@equip_name$[0], "Armor", "Shoes", "Garment", "Upper Hat";
+ setarray .@equip_slot[0], EQI_ARMOR,EQI_SHOES,EQI_GARMENT,EQI_HEAD_TOP;
+
+ mes .@n$;
+ mes "Long time no see~";
+ mes "I have learned a new skill that separates cards from Armor, Shoes, Garment and Headgear. Do you want to try it?";
+ } else {
+ set .@Jeremy,0;
+ set .@n$, "[Richard]";
+ setarray .@equip_name$[0], "Left hand", "Right hand";
+ setarray .@equip_slot[0], EQI_HAND_L, EQI_HAND_R;
+
+ mes .@n$;
+ mes "Silly Jeremy does not want to touch weapons and shields because of picking several cards that might be damaged. That is why I prepared a card separaion skill for weapons and shields...";
+ }
next;
- mes "[Jeremy]";
+ mes .@n$;
mes "Generally the fee is 1,000,000 Zeny. During the card separation, you can use ^990000special items that reduce the rate of destroying equipment or cards^000000. We don't charge additional zeny for this.";
next;
- mes "[Jeremy]";
+ mes .@n$;
mes "There is a possibility of destroying them even using a special item. Also, ^ff0000the refine level might be lost^000000. Do you have any equipment to separate?";
next;
- setarray .@equip_name$[0], "Armor", "Shoes", "Garment", "Upper Hat";
- setarray .@equip_slot[0], EQI_ARMOR,EQI_SHOES,EQI_GARMENT,EQI_HEAD_TOP;
for(set .@i,0; .@i<getarraysize(.@equip_slot); set .@i,.@i+1) {
if (getequipisequiped(.@equip_slot[.@i]))
set .@menu$, .@menu$+getequipname(.@equip_slot[.@i])+":";
@@ -43,62 +55,55 @@ malangdo,215,166,4 script Jeremy#mal 553,{
set .@menu$, .@menu$+"^999999"+.@equip_name$[.@i]+" (empty)^000000:";
}
- set .@i, select("Stop the work:How is it possible?:"+.@menu$);
+ set .@i, select("Stop the work:"+((.@Jeremy)?"How is it possible?":"")+":"+.@menu$);
switch(.@i) {
case 1:
- mes "[Jeremy]";
+ mes .@n$;
mes "Whenever you need the work, visit me here.";
close;
case 2:
- mes "[Jeremy]";
+ mes .@n$;
mes "You wonder what is so special. Well, I hate to give only a guide, so let me tell you the story...";
next;
mes "^000099Jeremy is stretching his shoulders and hands. He might be waiting for someone to talk with him.^000000";
next;
- mes "[Jeremy]";
+ mes .@n$;
mes "Do you know that Malangdo's specialty is canned food?";
next;
select("I knew that well. Is it that limited?");
- mes "[Jeremy]";
+ mes .@n$;
mes "Hehe... Everyone loves it. But there were some problems before.";
next;
select("Problems? Is there any faulty fish?");
- mes "[Jeremy]";
+ mes .@n$;
mes "No, the fish does not have any problem. The problem is lots of fish oil produced after processing. That is such an industrial waste.";
next;
- mes "[Jeremy]";
+ mes .@n$;
mes "However, after a revitalizing refining process, this fish oil became valuable to use for old equipment care and industrial lubricant.";
next;
- mes "[Jeremy]";
+ mes .@n$;
mes "In addition, this oil is so useful to separate relics from equipped weapons that we can't buy Premium Lubricant and Ordinary Lubricant with Zeny.";
next;
- mes "[Jeremy]";
+ mes .@n$;
mes "Well, don't worry about money. Surely the Premium Lubricant is expensive. If you pay some zeny, I can give you cheaper lubricant.";
next;
- mes "[Jeremy]";
+ mes .@n$;
mes "I'm not sure about the quality of success. Anyway, this is so cheap, right?";
close;
default:
set .@equip_num, .@equip_slot[.@i-3];
if (!getequipisequiped(.@equip_num)) {
- mes "[Jeremy]";
- mes "In this part, there is nothing?";
+ mes .@n$;
+ if (.@Jeremy)
+ mes "In this part, there is nothing?";
+ else
+ mes "There is nothing on that part?";
close;
}
break;
}
- setarray .@equip_card[0], getequipcardid(.@equip_num,0),getequipcardid(.@equip_num,1),getequipcardid(.@equip_num,2),getequipcardid(.@equip_num,3);
- for(set .@i,0; .@i<4; set .@i,.@i+1) {
- if (.@equip_card[.@i] >= 4700) // Armor Enchant System
- set .@equip_card[.@i],0;
- }
- if (!getarraysize(.@equip_card)) {
- mes "[Jeremy]";
- mes "The card is not equipped. Do you want to check again?";
- close;
- }
- // Detect MVP cards.
+ setarray .@equip_card[0], getequipcardid(.@equip_num,0),getequipcardid(.@equip_num,1),getequipcardid(.@equip_num,2),getequipcardid(.@equip_num,3);
set .@mvp_list$,
"|4408|4128|4456|4168|4142"+ //Gloom_Under_Night_Card, Golden_Bug_Card, Nidhogg_Shadow_Card, Dark_Lord_Card, Doppelganger_Card
"|4134|4137|4386|4407|4357"+ //Dracula_Card, Drake_Card, Detale_Card, Randgris_Card, B_Seyren_Card
@@ -109,15 +114,64 @@ malangdo,215,166,4 script Jeremy#mal 553,{
"|4403|4399|4376|4441|4302"+ //Kiel_Card, Thanatos_Card, Lady_Tanee_Card, Fallen_Bishop_Card, Tao_Gunka_Card
"|4305|4148|4318|4121|4365"+ //Turtle_General_Card, Pharaoh_Card, Knight_Windstorm_Card, Phreeoni_Card, B_Katrinn_Card
"|4363|4324|4361|4330|4342|"; //B_Magaleta_Card, Garm_Card, B_Harword_Card, Dark_Snake_Lord_Card, Rsx_0806_Card
- if ((.@equip_card[0] && compare(.@mvp_list$,"|"+.@equip_card[0]+"|")) ||
- (.@equip_card[1] && compare(.@mvp_list$,"|"+.@equip_card[1]+"|")) ||
- (.@equip_card[2] && compare(.@mvp_list$,"|"+.@equip_card[2]+"|")) ||
- (.@equip_card[3] && compare(.@mvp_list$,"|"+.@equip_card[3]+"|")))
- set .@boss_chk,1;
+ if (.@Jeremy) {
+ for(set .@i,0; .@i<4; set .@i,.@i+1) {
+ if (.@equip_card[.@i] >= 4700) // Armor Enchant System
+ set .@equip_card[.@i],0;
+ }
+ if (!getarraysize(.@equip_card)) {
+ mes .@n$;
+ mes "The card is not equipped. Do you want to check again?";
+ close;
+ }
+ if ((.@equip_card[0] && compare(.@mvp_list$,"|"+.@equip_card[0]+"|")) ||
+ (.@equip_card[1] && compare(.@mvp_list$,"|"+.@equip_card[1]+"|")) ||
+ (.@equip_card[2] && compare(.@mvp_list$,"|"+.@equip_card[2]+"|")) ||
+ (.@equip_card[3] && compare(.@mvp_list$,"|"+.@equip_card[3]+"|")))
+ set .@boss_chk,1;
+ } else {
+ // Official "Richard" script uses a hardcoded list including every possible item.
+ //if (!getequipisequiped(.@equip_num)) {
+ // mes "[Richard]";
+ // mes "I'm sorry. We don't provide that equipmnet yet.";
+ // close;
+ //}
+
+ mes "[Richard]";
+ mes "Which number socket do you want to separate the card? From the left socket, they are sorted 1,2,3,4.";
+ next;
+ set .@menu$,"";
+ for(set .@i,0; .@i<4; set .@i,.@i+1) {
+ if (.@equip_card[.@i] && .@equip_card[.@i] < 4700) // Armor Enchant System
+ set .@menu$, .@menu$+"Socket "+(.@i+1)+" - "+getitemname(.@equip_card[.@i])+":";
+ else
+ set .@menu$, .@menu$+"^777777Socket "+(.@i+1)+" - No card^000000:";
+ }
+ set .@i, select("Stop the work:"+.@menu$);
+ switch(.@i) {
+ case 1:
+ mes .@n$;
+ mes "Whenever you need to work, please come to me.";
+ close;
+ default:
+ set .@slot, .@i-2;
+ if (.@equip_card[.@slot] == 0 || .@equip_card[.@slot] >= 4700) {
+ mes .@n$;
+ mes "This socket is not equipped with any card. Why don't you check again?";
+ close;
+ }
+ break;
+ }
+ if (compare(.@mvp_list$,"|"+.@equip_card[.@slot]+"|"))
+ set .@boss_chk,1;
+ }
if (.@boss_chk == 0) {
- mes "[Jeremy]";
- mes "Except cards, ^ff0000all enchanted effects will disappear.^000000 If you agree to this, please choose the work type:";
+ mes .@n$;
+ if (.@Jeremy)
+ mes "Except cards, ^ff0000all enchanted effects will disappear.^000000 If you agree to this, please choose the work type:";
+ else
+ mes "Please choose the working fee.";
next;
set .@menu$,
"Next time...:"+
@@ -126,39 +180,39 @@ malangdo,215,166,4 script Jeremy#mal 553,{
((countitem(6440))?"Use Ordinary Lubricant":"^999999Ordinary Lubricant (Insufficient)^000000");
switch(select(.@menu$)) {
case 1:
- mes "[Jeremy]";
+ mes .@n$;
mes "Whenever you need the work, visit me here.";
close;
case 2:
if (Zeny < 1000000) {
- mes "[Jeremy]";
+ mes .@n$;
mes "You don't have enough zeny. Please come back with enough fees.";
close;
}
- mes "[Jeremy]";
+ mes .@n$;
mes "This is pretty old equipment. There is a high rate of destroying the cards or equipment during the work. Are you sure you want to continue?";
next;
if(select("Next time...:Continue") == 1) {
- mes "[Jeremy]";
+ mes .@n$;
mes "Whenever you need the work, visit me here.";
close;
}
set .@sf_c_num,150;
set .@sf_r_num,150;
set .@sf_w_num,150;
- set Zeny, Zeny - 1000000;
+ Zeny -= 1000000;
break;
case 3:
if (countitem(6441) == 0) {
- mes "[Jeremy]";
+ mes .@n$;
mes "You don't have Premium Lubricant.";
close;
}
- mes "[Jeremy]";
+ mes .@n$;
mes "If you use the Premium Lubricant, the rate of destruction will be decreased highly, but I can't give you a 100% guarantee. Are you sure you want to continue?";
next;
if(select("Next time...:Continue") == 1) {
- mes "[Jeremy]";
+ mes .@n$;
mes "Whenever you need the work, visit me here.";
close;
}
@@ -169,15 +223,15 @@ malangdo,215,166,4 script Jeremy#mal 553,{
break;
case 4:
if (countitem(6440) == 0) {
- mes "[Jeremy]";
+ mes .@n$;
mes "You don't have Ordinary Lubricant.";
close;
}
- mes "[Jeremy]";
+ mes .@n$;
mes "If you use the Ordinary Lubricant, the rate of destruction will be decreased highly, but I can't give you a 100% guarantee. Are you sure you want to continue?";
next;
if(select("Next time...:Continue") == 1) {
- mes "[Jeremy]";
+ mes .@n$;
mes "Whenever you need the work, visit me here.";
close;
}
@@ -188,28 +242,34 @@ malangdo,215,166,4 script Jeremy#mal 553,{
break;
}
} else if (.@boss_chk == 1) {
- mes "[Jeremy]";
+ mes .@n$;
mes "This equipment contains a precious MVP card. This card can't be separated with lubricant. If you bring the super surfactant ^0000ffSillit Pong^000000, I will be able to work.";
next;
switch(select("Next time...:I have a Sillit Pong.")) {
case 1:
- mes "[Jeremy]";
+ mes .@n$;
mes "Whenever you need the work, visit me here.";
close;
case 2:
if (countitem(6443) == 0) {
- mes "[Jeremy]";
+ mes .@n$;
mes "You don't have Sillit Pong.";
close;
}
break;
}
- mes "[Jeremy]";
- mes "Except cards, ^ff0000all enchanted effects will disappear.^000000 If you agree to this, please choose the work type:";
+ mes .@n$;
+ if (.@Jeremy) {
+ mes "Except cards, ^ff0000all enchanted effects will disappear.^000000 If you agree to this, please choose the work type:";
+ set .@menu$,"Alright, let's do it!";
+ } else {
+ mes "May I continue?";
+ set .@menu$,"I got it. Just do it quickly!";
+ }
next;
- switch(select("Next time...:Alright, let's do it!")) {
+ switch(select("Next time...:"+.@menu$)) {
case 1:
- mes "[Jeremy]";
+ mes .@n$;
mes "Whenever you need the work, visit me here.";
close;
case 2:
@@ -229,20 +289,37 @@ malangdo,215,166,4 script Jeremy#mal 553,{
if (rand(1,.@sf_r_num) >= 61)
set .@equip_refine,0;
- // Chance of retaining equipment.
- if (rand(1,.@sf_w_num) < 61) {
- set .@equip_safe,1;
- getitem2 .@equip_id,1,1,.@equip_refine,0,0,0,0,0;
- }
+ if (.@Jeremy) {
+ // Chance of retaining equipment.
+ if (rand(1,.@sf_w_num) < 61) {
+ set .@equip_safe,1;
+ getitem2 .@equip_id,1,1,.@equip_refine,0,0,0,0,0;
+ }
- // Chance of retaining cards.
- for(set .@i,0; .@i<4; set .@i,.@i+1) {
- if (.@equip_card[.@i]) {
- if (rand(1,.@sf_c_num) < 61)
- getitem .@equip_card[.@i],1;
- else
- set .@card_break,1;
+ // Chance of retaining cards.
+ for(set .@i,0; .@i<4; set .@i,.@i+1) {
+ if (.@equip_card[.@i]) {
+ if (rand(1,.@sf_c_num) < 61)
+ getitem .@equip_card[.@i],1;
+ else
+ set .@card_break,1;
+ }
}
+ } else {
+ set .@card, .@equip_card[.@slot];
+ set .@equip_card[.@slot],0;
+
+ // Chance of retaining equipment.
+ if (rand(1,.@sf_w_num) < 61) {
+ set .@equip_safe,1;
+ getitem2 .@equip_id,1,1,.@equip_refine,0,.@equip_card[0],.@equip_card[1],.@equip_card[2],.@equip_card[3];
+ }
+
+ // Chance of retaining card.
+ if (rand(1,.@sf_c_num) < 61)
+ getitem .@card,1;
+ else
+ set .@card_break,1;
}
// Display corresponding effect.
@@ -273,7 +350,9 @@ malangdo,215,166,4 script Jeremy#mal 553,{
mes "Card has been damaged. ^ff0000Unrecoverable.^000000";
}
next;
- mes "[Jeremy]";
+ mes .@n$;
mes "That is all for the results of the card separation. Please come again.";
close;
}
+malangdo,215,166,4 duplicate(CardSeparation_mal) Jeremy#pa0829 4_CAT_DOWN
+malangdo,208,166,6 duplicate(CardSeparation_mal) Richard#pa0829 4_CAT_ADV1
diff --git a/npc/re/merchants/catalog.txt b/npc/re/merchants/catalog.txt
new file mode 100644
index 000000000..3ef33e953
--- /dev/null
+++ b/npc/re/merchants/catalog.txt
@@ -0,0 +1,106 @@
+//===== Hercules Script ======================================
+//= Catalog Magician
+//===== By: ==================================================
+//= skyiing, Scriptor
+//===== Current Version: =====================================
+//= 1.1
+//===== Description: =========================================
+//= [Official Conversion]
+//= Catalogs allow players to easily search for items in-game,
+//= and to buy/sell directly from the catalog interface.
+//===== Additional Comments: =================================
+//= 1.0 Moved from root directory. [Euphy]
+//= 1.1 Updated dialogue. [Euphy]
+//============================================================
+
+moc_para01,22,16,5 script Catalog Magician#catal01 4_M_BIBI,{
+ if (!checkweight(1301,3)) {
+ mes "- You have too many items. Please make space. -";
+ close;
+ }
+ set .@ticket_cost, 200;
+ mes "[Catalog Magician]";
+ mes "Look... the Magic Academy";
+ mes "in Geffen is now directly";
+ mes "selling the brand new";
+ mes "^007777Universal Catalog Silver^000000!";
+ next;
+ mes "He is looking at the words";
+ mes "written on his hand.";
+ mes "He seems too busy";
+ mes "to look at you.";
+ next;
+ mes "[Catalog Magician]";
+ mes "A brand new catalog";
+ mes "has just come out!";
+ mes "You can check";
+ mes "what items you can trade";
+ mes "and what items are on sale";
+ mes "from the vendor.";
+ next;
+ mes "[Catalog Magician]";
+ mes "The ^007777Universal Catalog Silver^000000";
+ mes "costs only 200z!";
+ mes "You can buy up to 50 pieces at once!";
+ next;
+ switch(select("Buy a ^007777Universal Catalog Silver^000000:I don't need it!:You don't look like a vendor!")) {
+ case 1:
+ mes "[Catalog Magician]";
+ mes "You... want all 50 pieces?";
+ mes "Or how many do you need?";
+ next;
+ while (1) {
+ input .@input;
+ mes "[Catalog Magician]";
+ if (.@input == 0) {
+ mes "The trade has been stopped!";
+ mes "I don't know what to do next...";
+ mes "What should I do?";
+ emotion e_swt2,1;
+ close;
+ } else if (.@input < 1 || .@input > 50) {
+ mes "It should be less than 50 pieces.";
+ next;
+ } else
+ break;
+ }
+ set .@sell, .@ticket_cost * .@input;
+ mes "The total number of catalog(s) that you're trying to purchase is " + .@input + " pieces.";
+ mes "It costs " + .@sell + " z.";
+ if (Zeny < .@sell) {
+ mes "It seems you don't have enough money.";
+ mes "You can sell your equipment";
+ mes "to make more money... if you want.";
+ close;
+ }
+ mes "Ok, here you go.";
+ Zeny -= .@sell;
+ getitem 12580,.@input; //Vending_Search_Scroll
+ close;
+ case 2:
+ mes "[Catalog Magician]";
+ mes "Argh... you really need this";
+ mes "item... Do you want me to";
+ mes "explain again? I don't know";
+ mes "what to do next...";
+ mes "What should I do?";
+ emotion e_swt2,1;
+ close;
+ case 3:
+ mes "[Catalog Magician]";
+ mes "My real job is a magician.";
+ mes "I was going to ask the merchant";
+ mes "guild to sell them, but they were";
+ mes "trying use them as an appendix";
+ mes "into broom sales. That's why";
+ mes "I'm selling these by myself.";
+ next;
+ mes "[Catalog Magician]";
+ mes "There are many adventurers";
+ mes "here who come and go.";
+ mes "I'm pretty sure that I can sell to all of them soon.";
+ mes "Don't you think so?";
+ mes "So... let's start!! Buy more of them, please! PLEASE...!";
+ close;
+ }
+}
diff --git a/npc/re/merchants/coin_exchange.txt b/npc/re/merchants/coin_exchange.txt
index 7ee6a53af..fb20726a3 100644
--- a/npc/re/merchants/coin_exchange.txt
+++ b/npc/re/merchants/coin_exchange.txt
@@ -3,20 +3,19 @@
//===== By: ==================================================
//= Hercules Dev Team
//===== Current Version: =====================================
-//= 1.1
-//===== Compatible With: =====================================
-//= Hercules
+//= 1.2
//===== Description: =========================================
//= [Official Conversion]
//= Renewal coin redemption NPCs.
//===== Additional Comments: =================================
//= 1.0 First version. [Euphy/Lemongrass]
//= 1.1 Added remaining Malangdo traders. [Euphy/Lemongrass]
+//= 1.2 Added Eclage traders (not fully complete). [Euphy]
//============================================================
// Malangdo
//============================================================
-malangdo,220,167,5 script Coin Exchanger CX-1 564,{
+malangdo,220,167,5 script Coin Exchanger CX-1 2_VENDING_MACHINE1,{
if (checkweight(1201,1) == 0) {
mes "You have too many kinds of objects. Let's try to continue after reducing those objects.";
close;
@@ -107,7 +106,7 @@ malangdo,220,167,5 script Coin Exchanger CX-1 564,{
close;
}
-malangdo,218,165,5 script Special Vending Machine 562,{
+malangdo,218,165,5 script Special Vending Machine 2_DROP_MACHINE,{
if (checkweight(1201,1) == 0) {
mes "You have too many kinds of objects. Let's try to continue after reducing those objects.";
close;
@@ -177,7 +176,7 @@ L_AddItem:
}
}
-malangdo,236,179,5 script Dark Merchant K 554,{
+malangdo,236,179,5 script Dark Merchant K 4_CAT_REST,{
if (checkweight(1201,1) == 0) {
mes "It seems you have too much in your inventory. Let's try again after getting rid of some of your belongings.";
close;
@@ -222,7 +221,7 @@ malangdo,236,179,5 script Dark Merchant K 554,{
}
}
-malangdo,233,180,3 script Dark MachineTX100 564,{
+malangdo,233,180,3 script Dark MachineTX100 2_VENDING_MACHINE1,{
if (checkweight(1201,1) == 0) {
mes "It seems you have too much in your inventory. Let's try again after getting rid of some of your belongings.";
close;
@@ -343,7 +342,7 @@ malangdo,233,180,3 script Dark MachineTX100 564,{
close;
}
-malangdo,175,145,4 script Can Agency Guard 549,{
+malangdo,175,145,4 script Can Agency Guard 4_CAT_MERMASTER,{
if (checkweight(1201,1) == 0) {
mes "You seem to have too many items. Give it a try after sorting out the item kinds.";
close;
@@ -434,7 +433,7 @@ function script F_mal_coin {
mes "Ahaaa~";
mes "If you want to buy this stuff,";
mes "you can talk to me";
- mes "when you grow up little more.";
+ mes "when you grow up a little more.";
mes "This stuff is too expensive";
mes "for a child~";
close;
@@ -568,7 +567,7 @@ function script F_mal_coin {
}
}
}
-malangdo,162,146,5 script Wandering Merchant#mal 495,{
+malangdo,162,146,5 script Wandering Merchant#mal 4_M_MERCAT1,{
callfunc "F_mal_coin",0,"[Wandering Merchant]",1;
setarray .@items[1],
16743,16747,16741,16745,16749,16751, // 1 hour items.
@@ -699,7 +698,7 @@ malangdo,162,146,5 script Wandering Merchant#mal 495,{
}
}
-malangdo,173,145,4 script Stinky Merchant 496,{
+malangdo,173,145,4 script Stinky Merchant 4_M_MERCAT2,{
callfunc "F_mal_coin",0,"[Stinky Merchant]",2;
setarray .@items[1],2873,16015;
setarray .@names$[1],"Cat Hand Glove","Cat Club";
@@ -750,7 +749,7 @@ malangdo,173,145,4 script Stinky Merchant 496,{
}
}
-malangdo,150,135,5 script Roving Merchant 495,{
+malangdo,150,135,5 script Roving Merchant 4_M_MERCAT1,{
callfunc "F_mal_coin",0,"[Roving Merchant]",3;
setarray .@items[1],12639,12637,12638,12640;
setarray .@names$[1],"Flying Fish","Sow Bug","Dried Squid","Starfish";
@@ -825,3 +824,350 @@ malangdo,150,135,5 script Roving Merchant 495,{
next;
}
}
+
+// Eclage
+//============================================================
+ecl_in01,66,95,2 script Armor Merchant Naphara 4_F_FAIRYKID,{
+ mes "[Armor Merchant]";
+ mes "Hello, this is Naphara's store, a place of high class goods.";
+ mes "What would you need?";
+ next;
+ set .@i, select("Str Glove:Int Glove:Agi Glove:Vit Glove:Dex Glove:Luk Glove");
+ mes "[Armor Merchant]";
+ switch(.@i) {
+ case 1: // Str Glove
+ mes "^3131FFStr Glove^000000";
+ mes "^3131FFMHP + 100, MSP + 20^000000";
+ mes "^3131FFATK+1 increases for every STR+10^000000";
+ mes "^3131FFATK +1% added above STR 110^000000";
+ set .@item,2917; //Str_Glove
+ break;
+ case 2:
+ mes "^3131FFInt Glove^000000";
+ mes "^3131FFMHP + 100, MSP + 20^000000";
+ mes "^3131FFMATK+1 increases for every INT+10^000000";
+ mes "^3131FFMATK +1% added above INT 110^000000";
+ set .@item,2918; //Int_Glove
+ break;
+ case 3:
+ mes "^3131FFAgi Glove^000000";
+ mes "^3131FFMHP + 100, MSP + 20^000000";
+ mes "^3131FFFLEE+1 increases for every AGI+10^000000";
+ mes "^3131FFComplete Flee +1 added above AGI 110^000000";
+ set .@item,2919; //Agi_Glove
+ break;
+ case 4:
+ mes "^3131FFVit Glove^000000";
+ mes "^3131FFMHP + 100, MSP + 20^000000";
+ mes "^3131FFMHP+50 for every VIT+10^000000";
+ mes "^3131FFMHP+1% added above VIT 110^000000";
+ set .@item,2920; //Vit_Glove
+ break;
+ case 5:
+ mes "^3131FFDex Glove^000000";
+ mes "^3131FFMHP + 100, MSP + 20^000000";
+ mes "^3131FFHIT+1 increases for every DEX+10^000000";
+ mes "^3131FFRanged attack power +1% added above DEX 110^000000";
+ set .@item,2921; //Dex_Glove
+ break;
+ case 6:
+ mes "^3131FFLuk Glove^000000";
+ mes "^3131FFMHP + 100, MSP + 20^000000";
+ mes "^3131FFCRI+1 increases for every LUK+10^000000";
+ mes "^3131FFCritical damage +1% added above LUK 110^000000";
+ set .@item,2922; //Luk_Glove
+ break;
+ }
+ mes "^3131FFRequired Level: 100^000000";
+ mes "^3131FFSlot: 0^000000";
+ mes "^3131FFWeight: 10^000000";
+ mes "are the characteristic options.";
+ next;
+ mes "[Armor Merchant]";
+ mes "It costs 10 Splendide Coins.";
+ mes "Would you like to buy it?";
+ next;
+ if(select("Buy it.:Don't buy it.") == 2)
+ close;
+ if (countitem(6081) < 10) {
+ mes "[Armor Merchant]";
+ mes "It seems like you don't have enough coins.";
+ close;
+ }
+ mes "[Armor Merchant]";
+ mes "Here you go!"; //custom
+ delitem 6081,10; //Splendide_Coin
+ getitem .@item,1;
+ close;
+}
+
+ecl_in01,64,97,4 script Slot Expert Nattuer#ecl 4_F_FAIRYKID,{
+ mes "[Slot Expert]";
+ mes "I am Slot Expert Nattuer.";
+ mes "If you bring me an item from my little brother Naphara along with 5 Splendide Coins, I will open up one Slot for you.";
+ next;
+ if(select("Activate a Slot.:Forget it.") == 2)
+ close;
+ mes "[Slot Expert]";
+ mes "Slot activation is an extremely difficult procedure that can fail even with heightened care and the use of a magnifying lens.";
+ next;
+ mes "[Slot Expert]";
+ mes "Of course, if your heart were as big as that flower-filled land, you wouldn't mind. Right? Should I go for it?";
+ next;
+ if(select("Continue.:Forget it.") == 2)
+ close;
+ mes "[Slot Expert]";
+ mes "Which item would you like to activate with a Slot?";
+ next;
+ setarray .@noslots[0],2917,2918,2919,2920,2921,2922;
+ setarray .@slotted[0],2923,2924,2925,2926,2927,2928;
+ set .@i, select("Str Glove:Int Glove:Ag Glove:Vit Glove:Dex Glove:Luk Glove")-1;
+ set .@item, .@noslots[.@i];
+ set .@new_item, .@slotted[.@i];
+ mes "[Slot Expert]";
+ mes "Let's confirm for the last time. Is the one you want "+getitemname(.@item)+"?";
+ next;
+ if(select("Yes:No") == 2) {
+ mes "[Slot Expert]";
+ mes "Why don't you talk to me when you know for sure.";
+ close;
+ }
+ if (countitem(.@item) == 0) {
+ mes "[Slot Expert]";
+ mes "You don't have that item. Why don't you talk to me when you know for sure.";
+ close;
+ }
+ if (countitem(6081) < 5) {
+ mes "[Slot Expert]";
+ mes "You don't have enough coins. Why don't you talk to me when you know for sure."; //custom
+ close;
+ }
+ delitem 6081,5; //Splendide_Coin
+ delitem .@item,1;
+ //custom to the end
+ if (rand(100) < 5) {
+ mes "[Slot Expert]";
+ mes "Oh no, it failed! I'm sorry, but I warned you this could happen. Better luck next time.";
+ close;
+ }
+ mes "[Slot Expert]";
+ mes "Success! I've activated the slot.";
+ getitem .@new_item,1;
+ close;
+}
+
+ecl_in01,67,39,4 script Replication Expert Palt 4_M_FAIRYKID4,{
+ emotion e_lv;
+ mes "[Paltu]";
+ mes "Woohoo- Greetings. What are you looking for? Lots of goods here.";
+ next;
+ switch(select("No thanks.:Replication?:I know you got lots up your sleeve!")) {
+ case 1:
+ emotion e_an;
+ mes "[Paltu]";
+ mes "Really? Hmm?";
+ close;
+ case 2:
+ mes "[Paltu]";
+ mes "One can say that there's no one better in Eclage than I at utilizing magic resistance.";
+ next;
+ mes "[Paltu]";
+ mes "I'll give you a good price whatever it is. Just trust me.";
+ next;
+ select("Could you do something for me?");
+ emotion e_no1;
+ mes "[Paltu]";
+ mes "Hey, I like your attitude.";
+ next;
+ mes "[Paltu]";
+ mes "Ah- you know the hat you're wearing?";
+ next;
+ emotion e_what;
+ mes "[Paltu]";
+ mes "Don't you have any of those hats lying around in storage that are solid but too ugly to wear? You do, right?";
+ next;
+ select(".........");
+ emotion e_dots,1;
+ emotion e_heh;
+ mes "[Paltu]";
+ mes "See! I knew it. I knew it from the first minute.";
+ next;
+ mes "[Paltu]";
+ mes "If you bring me ^ff0000 50 Splendide Coins and the ingredients^000000, I'll make you a new hat in the same shape but worn as a ^ff0000Costume^000000.";
+ next;
+ mes "[Paltu]";
+ mes "Hmm, what was it...?";
+ mes "I think you adventurers call them ^0571B0Costumes^000000? right?";
+ next;
+ select("Yes~ What do you need?");
+ mes "[Paltu]";
+ mes "I need 1 ^0571B0hat to replicate^000000 and";
+ mes "I need ^E1281E 4 Crystal Mirrors^000000 for magic resistance, ^E1281E 1 Fairy Magic Powder^000000 as the catalyst, and ^E1281E Emerald, Ruby, Sapphire, Topaz, and Zircon, 10 of each^000000, to be used for amplifying the magic power.";
+ next;
+ emotion e_no;
+ mes "[Paltu]";
+ mes "There's quite a lot of ingredients, right? Well, I can't do anything about that. Dealing with magic power is not a joke.";
+ next;
+ select("Which hats can be replicated?");
+ mes "[Paltu]";
+ mes "Oh! You're pretty sharp!";
+ mes "Almost forgot the most important thing.";
+ next;
+ mes "[Paltu]";
+ mes "Hats that I can replicate are:";
+ mes "^0571B0Frog Hat, Romantic Flower, Magestic Goat, Blush, Valkyrie Helm, Deviruchi Hat, Assassin Mask, Elven Ears, Hahoe Mask, and Boys Cap^000000 a total of 10 types.";
+ next;
+ mes "[Paltu]";
+ mes "What do you think? I'll make it happen as long as I have the ingredients and the compensation.";
+ next;
+ if(select("I'll do it later.:Show me what you got!") == 1) {
+ emotion e_dots;
+ mes "[Paltu]";
+ mes "What? Are you kidding me? Please tell me you are!";
+ close;
+ }
+ break;
+ case 3:
+ break;
+ }
+ mes "[Paltu]";
+ mes "Oh wow.";
+ mes "You made the right call. I thought I was going to starve to death because the Laphines have no interest in pretty hats.";
+ next;
+ mes "[Paltu]";
+ mes "I'll make it a great deal for you. You really should know I'm giving you a good deal here.";
+ next;
+ mes "[Paltu]";
+ mes "Is there something you had in mind? Why don't you take a look?";
+ next;
+ setarray .@items[0],
+ 5447, //Frog_Cap
+ 2269, //Centimental_Flower
+ 2256, //Magestic_Goat
+ 5040, //Blush
+ 5171, //Valkyrie_Helm
+ 5038, //Deviruchi_Cap
+ 5096, //Assassin_Mask_
+ 2286, //Elven_Ears
+ 5176, //Hahoe_Mask
+ 5016; //Boy's_Cap
+ setarray .@costumes[0],
+ 19548, //C_Frog_Cap
+ 19552, //C_Centimental_Flower
+ 19549, //C_Magestic_Goat
+ 19550, //C_Blush
+ 19546, //C_Valkyrie_Helm
+ 19547, //C_Deviruchi_Cap
+ 19553, //C_Assassin_Mask_
+ 19551, //C_Elven_Ears
+ 0, //-- not implemented? --
+ 19545; //C_Boys_Cap
+ if (countitem(6081) >= 50 && countitem(747) >= 4 && countitem(6395) >= 1 && countitem(721) >= 10 && countitem(723) >= 10 && countitem(726) >= 10 && countitem(728) >= 10 && countitem(729) >= 10)
+ set .@item_check,1;
+ for(set .@i,0; .@i<getarraysize(.@items); set .@i,.@i+1) {
+ if (.@item_check && countitem(.@items[.@i]))
+ set .@menu$, .@menu$+getitemname(.@items[.@i])+":"; //custom
+ else
+ set .@menu$, .@menu$+getitemname(.@items[.@i])+" (^777777Insufficient ingredients^000000):";
+ }
+ set .@i, select(.@menu$)-1;
+ set .@item, .@items[.@i];
+ set .@new_item, .@costumes[.@i];
+ mes "[Paltu]";
+ mes "Is ^0571B0"+getitemname(.@item)+"^000000 what you wanted?";
+ next;
+ if (.@item_check == 0 || countitem(.@item) == 0) {
+ emotion e_sob;
+ mes "[Paltu]";
+ mes "Ay... Credit purchases are difficult for me.";
+ next;
+ mes "[Paltu]";
+ mes "^0571B0"+getitemname(.@item)+"^000000 and";
+ mes "^E1281E50 Splendide Coins, 4 Crystal Mirrors, 1 Fairy Magic Powder, 10 of each Emerald, Ruby, Sapphire, Topaz, and Zircon^000000 are necessary.";
+ next;
+ mes "[Paltu]";
+ mes "I'm in a tight spot myself. Please consider my situation also.";
+ close;
+ }
+ //custom to the end
+ if(select("Continue.:Forget it.") == 2)
+ close;
+ delitem .@item,1;
+ delitem 6081,50; //Splendide_Coin
+ delitem 747,4; //Crystal_Mirror
+ delitem 6395,1; //Angel_Magic_Power
+ delitem 721,10; //Azure_Jewel
+ delitem 723,10; //Cardinal_Jewel
+ delitem 726,10; //Blue_Jewel
+ delitem 728,10; //Golden_Jewel
+ delitem 729,10; //Bluish_Green_Jewel
+ getitem .@new_item,1;
+ mes "[Paltu]";
+ mes "Thank you so much! As promised, here is your costume.";
+ close;
+}
+
+ecl_in01,33,98,4 script Herb Merchant Plafina#e 4_M_FAIRYKID2,{
+ mes "[Herb Merchant]";
+ mes "Welcome, this is Plafina's Herb Store where only the freshest herbs are provided~!";
+ next;
+ switch(select("Snow Flip:Peony Mommy:Slapping Herb:Yggdrasil Dust:End conversation")) {
+ case 1:
+ mes "[Herb Merchant]";
+ mes "Snow Flip has special effects on ^3131FFBurning, Bleeding, Deep Sleep, Sleep^000000.";
+ set .@item,12812; //Snow_Flip
+ set .@cost,5;
+ break;
+ case 2:
+ mes "[Herb Merchant]";
+ mes "Peony Mamy has special effects on ^3131FFFrost, Frozen, Freezing^000000.";
+ set .@item,12813; //Peony_Mommy
+ set .@cost,5;
+ break;
+ case 3:
+ mes "[Herb Merchant]";
+ mes "Slapping Herb has special effects on ^3131FFStun, Fear, Chaos, Hallucination^000000.";
+ set .@item,12814; //Slapping_Herb
+ set .@cost,1;
+ break;
+ case 4:
+ mes "[Herb Merchant]";
+ mes "Yggdrasil Dust has special effects on ^3131FFBlind, Curse, Decrease Agility, Reverse Orcish^000000.";
+ set .@item,12815; //Yggdrasil_Dust
+ set .@cost,1;
+ break;
+ case 5:
+ mes "[Herb Merchant]";
+ mes "Come back anytime.";
+ close;
+ }
+ mes "Requires 5 seconds between uses.";
+ mes "It costs "+.@cost+" Splendide Coin"+((.@cost == 1)?"":"s")+" for each.";
+ next;
+ switch(select("Buy 1.:Buy 10.:Don't buy.")) {
+ case 1:
+ set .@amount,1;
+ break;
+ case 2:
+ set .@amount,10;
+ break;
+ case 3:
+ close;
+ }
+ set .@price,.@amount*.@cost;
+ mes "[Herb Merchant]";
+ mes "Would you like to buy "+.@amount+" "+getitemname(.@item)+"?";
+ next;
+ if(select("Buy.:Don't buy.") == 2)
+ close;
+ if (countitem(6081) < .@price) {
+ mes "[Herb Merchant]";
+ mes "You don't have enough coins.";
+ close;
+ }
+ mes "[Herb Merchant]";
+ mes "Here are your herbs."; //custom
+ delitem 6081,.@price; //Splendide_Coin
+ getitem .@item,.@amount;
+ end;
+}
diff --git a/npc/re/merchants/diamond.txt b/npc/re/merchants/diamond.txt
index fa19f372d..eda1740ca 100644
--- a/npc/re/merchants/diamond.txt
+++ b/npc/re/merchants/diamond.txt
@@ -4,21 +4,19 @@
//= Z3R0
//===== Current Version: =====================================
//= 1.5
-//===== Compatible With: =====================================
-//= Hercules
//===== Description: =========================================
-//= [Aegis Conversion]
+//= [Official Conversion]
//= Exchanges 17 Carat Diamond
//===== Additional Comments: =================================
-//= v1.0 First / Optimized Version
-//= v1.1 Adjusted for Missing ; on Line #271 (#15425)
-//= v1.2 Removed Comments per Request (#15426)
-//= v1.3 Changed Emotion # to Const Definition (#15427)
-//= v1.4 Removed Double Space on Line #148 (#15428)
-//= v1.5 Added This Version History (#15429)
+//= 1.0 First / Optimized Version
+//= 1.1 Adjusted for Missing ; on Line #271 (#15425)
+//= 1.2 Removed Comments per Request (#15426)
+//= 1.3 Changed Emotion # to Const Definition (#15427)
+//= 1.4 Removed Double Space on Line #148 (#15428)
+//= 1.5 Added This Version History (#15429)
//============================================================
-- script RareDiamondMerchant 58,{
+- script RareDiamondMerchant 1_M_MERCHANT,{
set .@npc$, "[Rare Diamond Merchant]";
@@ -142,7 +140,7 @@
mes "501,000,000 zeny.";
mes "Amount has been confirmed.";
emotion e_loud;
- set Zeny, Zeny - 501000000;
+ Zeny -= 501000000;
getitem 6024, 1;
next;
@@ -222,7 +220,7 @@
mes "come back anytime with 500 million zeny.";
emotion e_thx;
delitem 6024, 1;
- set Zeny, Zeny + 499000000;
+ Zeny += 499000000;
close;
}
else {
@@ -235,10 +233,10 @@
}
}
-prontera,165,89,6 duplicate(RareDiamondMerchant) Rare Diamond Merchant#1 58
-geffen,106,63,6 duplicate(RareDiamondMerchant) Rare Diamond Merchant#2 58
-morocc,146,100,6 duplicate(RareDiamondMerchant) Rare Diamond Merchant#3 58
-alberta,129,60,6 duplicate(RareDiamondMerchant) Rare Diamond Merchant#4 58
-lighthalzen,163,65,6 duplicate(RareDiamondMerchant) Rare Diamond Merchant#5 58
-rachel,106,142,6 duplicate(RareDiamondMerchant) Rare Diamond Merchant#6 58
-payon,180,130,6 duplicate(RareDiamondMerchant) Rare Diamond Merchant#7 58
+prontera,165,89,6 duplicate(RareDiamondMerchant) Rare Diamond Merchant#1 1_M_MERCHANT
+geffen,106,63,6 duplicate(RareDiamondMerchant) Rare Diamond Merchant#2 1_M_MERCHANT
+morocc,146,100,6 duplicate(RareDiamondMerchant) Rare Diamond Merchant#3 1_M_MERCHANT
+alberta,129,60,6 duplicate(RareDiamondMerchant) Rare Diamond Merchant#4 1_M_MERCHANT
+lighthalzen,163,65,6 duplicate(RareDiamondMerchant) Rare Diamond Merchant#5 1_M_MERCHANT
+rachel,106,142,6 duplicate(RareDiamondMerchant) Rare Diamond Merchant#6 1_M_MERCHANT
+payon,180,130,6 duplicate(RareDiamondMerchant) Rare Diamond Merchant#7 1_M_MERCHANT
diff --git a/npc/re/merchants/enchan_mal.txt b/npc/re/merchants/enchan_mal.txt
index c7e182005..24ed71c04 100644
--- a/npc/re/merchants/enchan_mal.txt
+++ b/npc/re/merchants/enchan_mal.txt
@@ -4,8 +4,6 @@
//= Muad_Dib
//===== Current Version: =====================================
//= 1.0a
-//===== Compatible With: =====================================
-//= Hercules
//===== Description: =========================================
//= [Official Conversion]
//= Adds enchantments to many high level weapons in exchange
@@ -15,7 +13,7 @@
//= 1.0a Added 'delequip' command. [Euphy]
//============================================================
-malangdo,213,167,4 script Mayomayo#mal 555,{
+malangdo,213,167,4 script Mayomayo#mal 4_CAT_3COLOR,{
disable_items;
if (checkweight(1201,1) == 0) {
mes "You have too many kinds of objects. Let's try to continue after reducing those objects.";
@@ -28,10 +26,10 @@ malangdo,213,167,4 script Mayomayo#mal 555,{
mes "[Mayomayo]";
mes "Wow welcome. It is new Mayomayo refinement store~ I enchant some luxury weapons including level 4 weapons.";
next;
- switch(select("Any store policy is changes?:Enhance high ranked weapons:Reset reinforcement capability")) {
+ switch(select("Any store policy changes?:Enchant High Ranked Weapon:Initialize Enchant (Need Silvervine Fruit)")) {
case 1:
mes "[Mayomayo]";
- mes "When I enchanted weapons, the slotted cards or refined level sometimes dissipated. I hated it. However, one day I found how to do it without any extinction.";
+ mes "When I enchant weapons, the slotted cards or refined level are dissipated sometimes. I hated it. However, one day I found how to do it without any extinction.";
next;
mes "[Mayomayo]";
mes "Have you ever seen a building of person of reinforcement capacity association?";
@@ -42,7 +40,7 @@ malangdo,213,167,4 script Mayomayo#mal 555,{
close;
}
mes "[Mayomayo]";
- mes "If you go the place, there is someone who enchants the Archangel Wing. At that time that was amazing, because that was impossible ability by my own skill.";
+ mes "If you go to the place, there is someone who enchants the Archangel Wing. At that time that was amazing, because that was impossible ability by my own skill.";
next;
mes "[Mayomayo]";
mes "Every night I became his butler and did odd jobs. That is how I learned to enchant.";
@@ -67,7 +65,7 @@ malangdo,213,167,4 script Mayomayo#mal 555,{
set @mal_equip_id, getequipid(EQI_HAND_R);
set .@equip_type, getiteminfo(@mal_equip_id,11);
- //callsub L_Socket,<cost multiplier>,<type>;
+ //callsub L_Socket,<cost multiplier>,<4-x enchants possible>;
switch(.@equip_type) { // Check weapon type first to speed up the checks.
case 1: // Daggers
switch(@mal_equip_id) {
@@ -305,7 +303,7 @@ malangdo,213,167,4 script Mayomayo#mal 555,{
}
mes "[Mayomayo]";
if (@mal_enchant_select == 1)
- mes "This is not suitable equipment for the enchant. Don't forget we only take care of high class weapons, including level 4 weapons~";
+ mes "This is not a suitable equipment for the enchant. Don't forget we only take care of high class weapons, including level 4 weapons~";
else
mes "This equipment can not be initialized. Don't forget we only handle some luxury weapons, including level 4 weapons~";
set @mal_equip_id,0;
diff --git a/npc/re/merchants/enchan_mora.txt b/npc/re/merchants/enchan_mora.txt
index 8ff8f758d..e35f768a3 100644
--- a/npc/re/merchants/enchan_mora.txt
+++ b/npc/re/merchants/enchan_mora.txt
@@ -1,22 +1,23 @@
-//===== rAthena Script =======================================
+//===== Hercules Script ======================================
//= Mora Enchants
-//===== By: ==================================================
+//===== By: ==================================================
//= Euphy
-//===== Current Version: =====================================
-//= 1.0
-//===== Compatible With: =====================================
-//= rAthena SVN
-//===== Description: =========================================
+//===== Current Version: =====================================
+//= 1.2
+//===== Description: =========================================
//= [Official Conversion]
//= Adds enchantments to various items in exchange for
//= Mora coins.
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First Version. [Euphy]
-//============================================================
+//= 1.1 Optimized. [Euphy]
+//= 1.1a Bug fixes. [Lemongrass]
+//= 1.2 Bug fixes (bugreport:7930) [DeadlySilence]
+//============================================================
// Arch Bishop Enchants :: coin_arc
//============================================================
-mora,88,89,5 script Keeper of Secrets#pa082 495,{
+mora,88,89,5 script Keeper of Secrets#pa082 4_M_MERCAT1,{
if (checkweight(1201,1) == 0) {
mes "You have too many kinds of things with you to do that. Throw out some of them and try again.";
close;
@@ -137,7 +138,7 @@ mora,88,89,5 script Keeper of Secrets#pa082 495,{
}
}
-mora,96,74,5 script Master of Relics#pa0829 495,{
+mora,96,74,5 script Master of Relics#pa0829 4_M_MERCAT1,{
if (checkweight(1201,1) == 0) {
mes "You have too many kinds of things with you to do that. Throw out some of them and try again.";
close;
@@ -217,70 +218,15 @@ mora,96,74,5 script Master of Relics#pa0829 495,{
switch(.@enchant_type) {
case 1:
set .@i, rand(1,1487);
- if (.@i <= 16) setarray .@enchants[2],4710,.@sp; //Inteligence2 [sp]
- else if (.@i <= 32) setarray .@enchants[2],4710,4799; //Inteligence2 HP500
- else if (.@i <= 48) setarray .@enchants[2],4710,4766; //Inteligence2 Atk2
- else if (.@i <= 64) setarray .@enchants[2],4710,4788; //Inteligence2 Mdef6
- else if (.@i <= 80) setarray .@enchants[2],4720,.@sp; //Dexterity1 [sp]
- else if (.@i <= 96) setarray .@enchants[2],4720,4799; //Dexterity1 HP500
- else if (.@i <= 112) setarray .@enchants[2],4720,4766; //Dexterity1 Atk2
- else if (.@i <= 128) setarray .@enchants[2],4720,4788; //Dexterity1 Mdef6
- else if (.@i <= 144) setarray .@enchants[2],4721,.@sp; //Dexterity2 [sp]
- else if (.@i <= 160) setarray .@enchants[2],4721,4799; //Dexterity2 HP500
- else if (.@i <= 176) setarray .@enchants[2],4721,4766; //Dexterity2 Atk2
- else if (.@i <= 192) setarray .@enchants[2],4721,4788; //Dexterity2 Mdef6
- else if (.@i <= 208) setarray .@enchants[2],4740,.@sp; //Vitality1 [sp]
- else if (.@i <= 224) setarray .@enchants[2],4740,4799; //Vitality1 HP500
- else if (.@i <= 240) setarray .@enchants[2],4740,4766; //Vitality1 Atk2
- else if (.@i <= 256) setarray .@enchants[2],4740,4788; //Vitality1 Mdef6
- else if (.@i <= 272) setarray .@enchants[2],4710,.@sp; //Inteligence2 [sp]
- else if (.@i <= 288) setarray .@enchants[2],4710,4799; //Inteligence2 HP500
- else if (.@i <= 304) setarray .@enchants[2],4710,4766; //Inteligence2 Atk2
- else if (.@i <= 320) setarray .@enchants[2],4710,4788; //Inteligence2 Mdef6
- else if (.@i <= 336) setarray .@enchants[2],4720,.@sp; //Dexterity1 [sp]
- else if (.@i <= 352) setarray .@enchants[2],4720,4799; //Dexterity1 HP500
- else if (.@i <= 368) setarray .@enchants[2],4720,4766; //Dexterity1 Atk2
- else if (.@i <= 384) setarray .@enchants[2],4720,4788; //Dexterity1 Mdef6
- else if (.@i <= 400) setarray .@enchants[2],4721,.@sp; //Dexterity2 [sp]
- else if (.@i <= 416) setarray .@enchants[2],4721,4799; //Dexterity2 HP500
- else if (.@i <= 432) setarray .@enchants[2],4721,4766; //Dexterity2 Atk2
- else if (.@i <= 448) setarray .@enchants[2],4721,4788; //Dexterity2 Mdef6
- else if (.@i <= 464) setarray .@enchants[2],4740,.@sp; //Vitality1 [sp]
- else if (.@i <= 480) setarray .@enchants[2],4740,4799; //Vitality1 HP500
- else if (.@i <= 496) setarray .@enchants[2],4740,4766; //Vitality1 Atk2
- else if (.@i <= 512) setarray .@enchants[2],4740,4788; //Vitality1 Mdef6
- else if (.@i <= 528) setarray .@enchants[2],4710,.@sp; //Inteligence2 [sp]
- else if (.@i <= 544) setarray .@enchants[2],4710,4799; //Inteligence2 HP500
- else if (.@i <= 560) setarray .@enchants[2],4710,4766; //Inteligence2 Atk2
- else if (.@i <= 576) setarray .@enchants[2],4710,4788; //Inteligence2 Mdef6
- else if (.@i <= 592) setarray .@enchants[2],4720,.@sp; //Dexterity1 [sp]
- else if (.@i <= 608) setarray .@enchants[2],4720,4799; //Dexterity1 HP500
- else if (.@i <= 624) setarray .@enchants[2],4720,4766; //Dexterity1 Atk2
- else if (.@i <= 640) setarray .@enchants[2],4720,4788; //Dexterity1 Mdef6
- else if (.@i <= 656) setarray .@enchants[2],4721,.@sp; //Dexterity2 [sp]
- else if (.@i <= 672) setarray .@enchants[2],4721,4799; //Dexterity2 HP500
- else if (.@i <= 688) setarray .@enchants[2],4721,4766; //Dexterity2 Atk2
- else if (.@i <= 704) setarray .@enchants[2],4721,4788; //Dexterity2 Mdef6
- else if (.@i <= 720) setarray .@enchants[2],4740,.@sp; //Vitality1 [sp]
- else if (.@i <= 736) setarray .@enchants[2],4740,4799; //Vitality1 HP500
- else if (.@i <= 752) setarray .@enchants[2],4740,4766; //Vitality1 Atk2
- else if (.@i <= 768) setarray .@enchants[2],4740,4788; //Vitality1 Mdef6
- else if (.@i <= 784) setarray .@enchants[2],4710,.@sp; //Inteligence2 [sp]
- else if (.@i <= 800) setarray .@enchants[2],4710,4799; //Inteligence2 HP500
- else if (.@i <= 816) setarray .@enchants[2],4710,4766; //Inteligence2 Atk2
- else if (.@i <= 832) setarray .@enchants[2],4710,4788; //Inteligence2 Mdef6
- else if (.@i <= 848) setarray .@enchants[2],4720,.@sp; //Dexterity1 [sp]
- else if (.@i <= 864) setarray .@enchants[2],4720,4799; //Dexterity1 HP500
- else if (.@i <= 880) setarray .@enchants[2],4720,4766; //Dexterity1 Atk2
- else if (.@i <= 896) setarray .@enchants[2],4720,4788; //Dexterity1 Mdef6
- else if (.@i <= 912) setarray .@enchants[2],4721,.@sp; //Dexterity2 [sp]
- else if (.@i <= 928) setarray .@enchants[2],4721,4799; //Dexterity2 HP500
- else if (.@i <= 944) setarray .@enchants[2],4721,4766; //Dexterity2 Atk2
- else if (.@i <= 960) setarray .@enchants[2],4721,4788; //Dexterity2 Mdef6
- else if (.@i <= 976) setarray .@enchants[2],4740,.@sp; //Vitality1 [sp]
- else if (.@i <= 992) setarray .@enchants[2],4740,4799; //Vitality1 HP500
- else if (.@i <= 1008) setarray .@enchants[2],4740,4766; //Vitality1 Atk2
- else if (.@i <= 1024) setarray .@enchants[2],4740,4788; //Vitality1 Mdef6
+ if (.@i <= 1024) {
+ // Basic combinations
+ // (raw: .@i increments by 16, 4 repeats)
+ setarray .@enchant_slot2[0],4711,4720,4721,4740; //Inteligence2,Dexterity1,Dexterity2,Vitality1
+ setarray .@enchant_slot3[0],.@sp,4799,4766,4788; //[sp],HP500,Atk2,Mdef6
+ setarray .@enchants[2],
+ .@enchant_slot2[rand(getarraysize(.@enchant_slot2))],
+ .@enchant_slot3[rand(getarraysize(.@enchant_slot3))];
+ }
else if (.@i <= 1040) setarray .@enchants[2],.@sp,.@sp; //[sp] [sp]
else if (.@i <= 1487) {
mes "[Relice]";
@@ -290,70 +236,17 @@ mora,96,74,5 script Master of Relics#pa0829 495,{
break;
case 2:
set .@i, rand(1,1487);
- if (.@i <= 16) setarray .@enchants[1],4710,4711,4764; //Inteligence1 Inteligence2 Critical5
- else if (.@i <= 32) setarray .@enchants[1],4710,4711,4799; //Inteligence1 Inteligence2 HP500
- else if (.@i <= 48) setarray .@enchants[1],4710,4711,4766; //Inteligence1 Inteligence2 Atk2
- else if (.@i <= 64) setarray .@enchants[1],4710,4711,4788; //Inteligence1 Inteligence2 Mdef6
- else if (.@i <= 80) setarray .@enchants[1],4710,4720,4764; //Inteligence1 Dexterity1 Critical5
- else if (.@i <= 96) setarray .@enchants[1],4710,4720,4799; //Inteligence1 Dexterity1 HP500
- else if (.@i <= 112) setarray .@enchants[1],4710,4720,4766; //Inteligence1 Dexterity1 Atk2
- else if (.@i <= 128) setarray .@enchants[1],4710,4720,4788; //Inteligence1 Dexterity1 Mdef6
- else if (.@i <= 144) setarray .@enchants[1],4710,4721,4764; //Inteligence1 Dexterity2 Critical5
- else if (.@i <= 160) setarray .@enchants[1],4710,4721,4799; //Inteligence1 Dexterity2 HP500
- else if (.@i <= 176) setarray .@enchants[1],4710,4721,4766; //Inteligence1 Dexterity2 Atk2
- else if (.@i <= 192) setarray .@enchants[1],4710,4721,4788; //Inteligence1 Dexterity2 Mdef6
- else if (.@i <= 208) setarray .@enchants[1],4710,4740,4764; //Inteligence1 Vitality1 Critical5
- else if (.@i <= 224) setarray .@enchants[1],4710,4740,4799; //Inteligence1 Vitality1 HP500
- else if (.@i <= 240) setarray .@enchants[1],4710,4740,4766; //Inteligence1 Vitality1 Atk2
- else if (.@i <= 256) setarray .@enchants[1],4710,4740,4788; //Inteligence1 Vitality1 Mdef6
- else if (.@i <= 272) setarray .@enchants[1],4711,4711,4764; //Inteligence2 Inteligence2 Critical5
- else if (.@i <= 288) setarray .@enchants[1],4711,4711,4799; //Inteligence2 Inteligence2 HP500
- else if (.@i <= 304) setarray .@enchants[1],4711,4711,4766; //Inteligence2 Inteligence2 Atk2
- else if (.@i <= 320) setarray .@enchants[1],4711,4711,4788; //Inteligence2 Inteligence2 Mdef6
- else if (.@i <= 336) setarray .@enchants[1],4711,4720,4764; //Inteligence2 Dexterity1 Critical5
- else if (.@i <= 352) setarray .@enchants[1],4711,4720,4799; //Inteligence2 Dexterity1 HP500
- else if (.@i <= 368) setarray .@enchants[1],4711,4720,4766; //Inteligence2 Dexterity1 Atk2
- else if (.@i <= 384) setarray .@enchants[1],4711,4720,4788; //Inteligence2 Dexterity1 Mdef6
- else if (.@i <= 400) setarray .@enchants[1],4711,4721,4764; //Inteligence2 Dexterity2 Critical5
- else if (.@i <= 416) setarray .@enchants[1],4711,4721,4799; //Inteligence2 Dexterity2 HP500
- else if (.@i <= 432) setarray .@enchants[1],4711,4721,4766; //Inteligence2 Dexterity2 Atk2
- else if (.@i <= 448) setarray .@enchants[1],4711,4721,4788; //Inteligence2 Dexterity2 Mdef6
- else if (.@i <= 464) setarray .@enchants[1],4711,4740,4764; //Inteligence2 Vitality1 Critical5
- else if (.@i <= 480) setarray .@enchants[1],4711,4740,4799; //Inteligence2 Vitality1 HP500
- else if (.@i <= 496) setarray .@enchants[1],4711,4740,4766; //Inteligence2 Vitality1 Atk2
- else if (.@i <= 512) setarray .@enchants[1],4711,4740,4788; //Inteligence2 Vitality1 Mdef6
- else if (.@i <= 528) setarray .@enchants[1],4720,4711,4764; //Dexterity1 Inteligence2 Critical5
- else if (.@i <= 544) setarray .@enchants[1],4720,4711,4799; //Dexterity1 Inteligence2 HP500
- else if (.@i <= 560) setarray .@enchants[1],4720,4711,4766; //Dexterity1 Inteligence2 Atk2
- else if (.@i <= 576) setarray .@enchants[1],4720,4711,4788; //Dexterity1 Inteligence2 Mdef6
- else if (.@i <= 592) setarray .@enchants[1],4720,4720,4764; //Dexterity1 Dexterity1 Critical5
- else if (.@i <= 608) setarray .@enchants[1],4720,4720,4799; //Dexterity1 Dexterity1 HP500
- else if (.@i <= 624) setarray .@enchants[1],4720,4720,4766; //Dexterity1 Dexterity1 Atk2
- else if (.@i <= 640) setarray .@enchants[1],4720,4720,4788; //Dexterity1 Dexterity1 Mdef6
- else if (.@i <= 656) setarray .@enchants[1],4720,4721,4764; //Dexterity1 Dexterity2 Critical5
- else if (.@i <= 672) setarray .@enchants[1],4720,4721,4799; //Dexterity1 Dexterity2 HP500
- else if (.@i <= 688) setarray .@enchants[1],4720,4721,4766; //Dexterity1 Dexterity2 Atk2
- else if (.@i <= 704) setarray .@enchants[1],4720,4721,4788; //Dexterity1 Dexterity2 Mdef6
- else if (.@i <= 720) setarray .@enchants[1],4720,4740,4764; //Dexterity1 Vitality1 Critical5
- else if (.@i <= 736) setarray .@enchants[1],4720,4740,4799; //Dexterity1 Vitality1 HP500
- else if (.@i <= 752) setarray .@enchants[1],4720,4740,4766; //Dexterity1 Vitality1 Atk2
- else if (.@i <= 768) setarray .@enchants[1],4720,4740,4788; //Dexterity1 Vitality1 Mdef6
- else if (.@i <= 784) setarray .@enchants[1],4721,4711,4764; //Dexterity2 Inteligence2 Critical5
- else if (.@i <= 800) setarray .@enchants[1],4721,4711,4799; //Dexterity2 Inteligence2 HP500
- else if (.@i <= 816) setarray .@enchants[1],4721,4711,4766; //Dexterity2 Inteligence2 Atk2
- else if (.@i <= 832) setarray .@enchants[1],4721,4711,4788; //Dexterity2 Inteligence2 Mdef6
- else if (.@i <= 848) setarray .@enchants[1],4721,4720,4764; //Dexterity2 Dexterity1 Critical5
- else if (.@i <= 864) setarray .@enchants[1],4721,4720,4799; //Dexterity2 Dexterity1 HP500
- else if (.@i <= 880) setarray .@enchants[1],4721,4720,4766; //Dexterity2 Dexterity1 Atk2
- else if (.@i <= 896) setarray .@enchants[1],4721,4720,4788; //Dexterity2 Dexterity1 Mdef6
- else if (.@i <= 912) setarray .@enchants[1],4721,4721,4764; //Dexterity2 Dexterity2 Critical5
- else if (.@i <= 928) setarray .@enchants[1],4721,4721,4799; //Dexterity2 Dexterity2 HP500
- else if (.@i <= 944) setarray .@enchants[1],4721,4721,4766; //Dexterity2 Dexterity2 Atk2
- else if (.@i <= 960) setarray .@enchants[1],4721,4721,4788; //Dexterity2 Dexterity2 Mdef6
- else if (.@i <= 976) setarray .@enchants[1],4721,4740,4764; //Dexterity2 Vitality1 Critical5
- else if (.@i <= 992) setarray .@enchants[1],4721,4740,4799; //Dexterity2 Vitality1 HP500
- else if (.@i <= 1008) setarray .@enchants[1],4721,4740,4766; //Dexterity2 Vitality1 Atk2
- else if (.@i <= 1024) setarray .@enchants[1],4721,4740,4788; //Dexterity2 Vitality1 Mdef6
+ if (.@i <= 1024) {
+ // Basic combinations
+ // (raw: .@i increments by 16)
+ setarray .@enchant_slot1[0],4710,4711,4720,4721; //Inteligence1,Inteligence2,Dexterity1,Dexterity2
+ setarray .@enchant_slot2[0],4711,4720,4721,4740; //Inteligence2,Dexterity1,Dexterity2,Vitality1
+ setarray .@enchant_slot3[0],4764,4799,4766,4788; //Critical5,HP500,Atk2,Mdef6
+ setarray .@enchants[1],
+ .@enchant_slot1[rand(getarraysize(.@enchant_slot1))],
+ .@enchant_slot2[rand(getarraysize(.@enchant_slot2))],
+ .@enchant_slot3[rand(getarraysize(.@enchant_slot3))];
+ }
else if (.@i <= 1026) setarray .@enchants[1],4761,4761,4761; //Matk2 Matk2 Matk2
else if (.@i <= 1028) setarray .@enchants[1],4712,4713,4713; //Inteligence3 Inteligence4 Inteligence4
else if (.@i <= 1030) setarray .@enchants[1],4712,4761,4761; //Inteligence3 Matk2 Matk2
@@ -370,70 +263,15 @@ mora,96,74,5 script Master of Relics#pa0829 495,{
break;
case 3:
set .@i, rand(1,2852);
- if (.@i <= 31) setarray .@enchants[2],4720,4710; //Dexterity1 Inteligence1
- else if (.@i <= 62) setarray .@enchants[2],4720,4711; //Dexterity1 Inteligence2
- else if (.@i <= 93) setarray .@enchants[2],4720,4721; //Dexterity1 Dexterity2
- else if (.@i <= 124) setarray .@enchants[2],4720,4760; //Dexterity1 Matk1
- else if (.@i <= 155) setarray .@enchants[2],4740,4710; //Vitality1 Inteligence1
- else if (.@i <= 186) setarray .@enchants[2],4740,4711; //Vitality1 Inteligence2
- else if (.@i <= 217) setarray .@enchants[2],4740,4721; //Vitality1 Dexterity2
- else if (.@i <= 248) setarray .@enchants[2],4740,4760; //Vitality1 Matk1
- else if (.@i <= 279) setarray .@enchants[2],4741,4710; //Vitality2 Inteligence1
- else if (.@i <= 310) setarray .@enchants[2],4741,4711; //Vitality2 Inteligence2
- else if (.@i <= 341) setarray .@enchants[2],4741,4721; //Vitality2 Dexterity2
- else if (.@i <= 372) setarray .@enchants[2],4741,4760; //Vitality2 Matk1
- else if (.@i <= 403) setarray .@enchants[2],4801,4710; //SP100 Inteligence1
- else if (.@i <= 434) setarray .@enchants[2],4801,4711; //SP100 Inteligence2
- else if (.@i <= 465) setarray .@enchants[2],4801,4721; //SP100 Dexterity2
- else if (.@i <= 496) setarray .@enchants[2],4801,4760; //SP100 Matk1
- else if (.@i <= 527) setarray .@enchants[2],4720,4710; //Dexterity1 Inteligence1
- else if (.@i <= 558) setarray .@enchants[2],4720,4711; //Dexterity1 Inteligence2
- else if (.@i <= 589) setarray .@enchants[2],4720,4721; //Dexterity1 Dexterity2
- else if (.@i <= 620) setarray .@enchants[2],4720,4760; //Dexterity1 Matk1
- else if (.@i <= 651) setarray .@enchants[2],4740,4710; //Vitality1 Inteligence1
- else if (.@i <= 682) setarray .@enchants[2],4740,4711; //Vitality1 Inteligence2
- else if (.@i <= 713) setarray .@enchants[2],4740,4721; //Vitality1 Dexterity2
- else if (.@i <= 744) setarray .@enchants[2],4740,4760; //Vitality1 Matk1
- else if (.@i <= 775) setarray .@enchants[2],4741,4710; //Vitality2 Inteligence1
- else if (.@i <= 806) setarray .@enchants[2],4741,4711; //Vitality2 Inteligence2
- else if (.@i <= 837) setarray .@enchants[2],4741,4721; //Vitality2 Dexterity2
- else if (.@i <= 868) setarray .@enchants[2],4741,4760; //Vitality2 Matk1
- else if (.@i <= 899) setarray .@enchants[2],4801,4710; //SP100 Inteligence1
- else if (.@i <= 930) setarray .@enchants[2],4801,4711; //SP100 Inteligence2
- else if (.@i <= 961) setarray .@enchants[2],4801,4721; //SP100 Dexterity2
- else if (.@i <= 992) setarray .@enchants[2],4801,4760; //SP100 Matk1
- else if (.@i <= 1023) setarray .@enchants[2],4720,4710; //Dexterity1 Inteligence1
- else if (.@i <= 1054) setarray .@enchants[2],4720,4711; //Dexterity1 Inteligence2
- else if (.@i <= 1085) setarray .@enchants[2],4720,4721; //Dexterity1 Dexterity2
- else if (.@i <= 1116) setarray .@enchants[2],4720,4760; //Dexterity1 Matk1
- else if (.@i <= 1147) setarray .@enchants[2],4740,4710; //Vitality1 Inteligence1
- else if (.@i <= 1178) setarray .@enchants[2],4740,4711; //Vitality1 Inteligence2
- else if (.@i <= 1209) setarray .@enchants[2],4740,4721; //Vitality1 Dexterity2
- else if (.@i <= 1240) setarray .@enchants[2],4740,4760; //Vitality1 Matk1
- else if (.@i <= 1271) setarray .@enchants[2],4741,4710; //Vitality2 Inteligence1
- else if (.@i <= 1302) setarray .@enchants[2],4741,4711; //Vitality2 Inteligence2
- else if (.@i <= 1333) setarray .@enchants[2],4741,4721; //Vitality2 Dexterity2
- else if (.@i <= 1364) setarray .@enchants[2],4741,4760; //Vitality2 Matk1
- else if (.@i <= 1395) setarray .@enchants[2],4801,4710; //SP100 Inteligence1
- else if (.@i <= 1426) setarray .@enchants[2],4801,4711; //SP100 Inteligence2
- else if (.@i <= 1457) setarray .@enchants[2],4801,4721; //SP100 Dexterity2
- else if (.@i <= 1488) setarray .@enchants[2],4801,4760; //SP100 Matk1
- else if (.@i <= 1519) setarray .@enchants[2],4720,4710; //Dexterity1 Inteligence1
- else if (.@i <= 1550) setarray .@enchants[2],4720,4711; //Dexterity1 Inteligence2
- else if (.@i <= 1581) setarray .@enchants[2],4720,4721; //Dexterity1 Dexterity2
- else if (.@i <= 1612) setarray .@enchants[2],4720,4760; //Dexterity1 Matk1
- else if (.@i <= 1643) setarray .@enchants[2],4740,4710; //Vitality1 Inteligence1
- else if (.@i <= 1674) setarray .@enchants[2],4740,4711; //Vitality1 Inteligence2
- else if (.@i <= 1705) setarray .@enchants[2],4740,4721; //Vitality1 Dexterity2
- else if (.@i <= 1736) setarray .@enchants[2],4740,4760; //Vitality1 Matk1
- else if (.@i <= 1767) setarray .@enchants[2],4741,4710; //Vitality2 Inteligence1
- else if (.@i <= 1798) setarray .@enchants[2],4741,4711; //Vitality2 Inteligence2
- else if (.@i <= 1829) setarray .@enchants[2],4741,4721; //Vitality2 Dexterity2
- else if (.@i <= 1860) setarray .@enchants[2],4741,4760; //Vitality2 Matk1
- else if (.@i <= 1891) setarray .@enchants[2],4801,4710; //SP100 Inteligence1
- else if (.@i <= 1922) setarray .@enchants[2],4801,4711; //SP100 Inteligence2
- else if (.@i <= 1953) setarray .@enchants[2],4801,4721; //SP100 Dexterity2
- else if (.@i <= 1984) setarray .@enchants[2],4801,4760; //SP100 Matk1
+ if (.@i <= 1984) {
+ // Basic combinations
+ // (raw: .@i increments by 31, 4 repeats)
+ setarray .@enchant_slot2[0],4720,4740,4741,4801; //Dexterity1,Vitality1,Vitality2,SP100
+ setarray .@enchant_slot3[0],4710,4711,4721,4760; //Inteligence1,Inteligence2,Dexterity2,Matk1
+ setarray .@enchants[2],
+ .@enchant_slot2[rand(getarraysize(.@enchant_slot2))],
+ .@enchant_slot3[rand(getarraysize(.@enchant_slot3))];
+ }
else if (.@i <= 1986) setarray .@enchants[2],4761,4761; //Matk2 Matk2
else if (.@i <= 1988) setarray .@enchants[2],4761,4723; //Matk2 Dexterity4
else if (.@i <= 1990) setarray .@enchants[2],4761,4714; //Matk2 Inteligence5
@@ -448,70 +286,15 @@ mora,96,74,5 script Master of Relics#pa0829 495,{
break;
case 4:
set .@i, rand(1,2852);
- if (.@i <= 31) setarray .@enchants[2],4720,4700; //Dexterity1 Strength1
- else if (.@i <= 62) setarray .@enchants[2],4720,4701; //Dexterity1 Strength2
- else if (.@i <= 93) setarray .@enchants[2],4720,4721; //Dexterity1 Dexterity2
- else if (.@i <= 124) setarray .@enchants[2],4720,4767; //Dexterity1 Atk3
- else if (.@i <= 155) setarray .@enchants[2],4740,4700; //Vitality1 Strength1
- else if (.@i <= 186) setarray .@enchants[2],4740,4701; //Vitality1 Strength2
- else if (.@i <= 217) setarray .@enchants[2],4740,4721; //Vitality1 Dexterity2
- else if (.@i <= 248) setarray .@enchants[2],4740,4767; //Vitality1 Atk3
- else if (.@i <= 279) setarray .@enchants[2],4741,4700; //Vitality2 Strength1
- else if (.@i <= 310) setarray .@enchants[2],4741,4701; //Vitality2 Strength2
- else if (.@i <= 341) setarray .@enchants[2],4741,4721; //Vitality2 Dexterity2
- else if (.@i <= 372) setarray .@enchants[2],4741,4767; //Vitality2 Atk3
- else if (.@i <= 403) setarray .@enchants[2],4701,4700; //Strength2 Strength1
- else if (.@i <= 434) setarray .@enchants[2],4701,4701; //Strength2 Strength2
- else if (.@i <= 465) setarray .@enchants[2],4701,4721; //Strength2 Dexterity2
- else if (.@i <= 496) setarray .@enchants[2],4701,4767; //Strength2 Atk3
- else if (.@i <= 527) setarray .@enchants[2],4720,4700; //Dexterity1 Strength1
- else if (.@i <= 558) setarray .@enchants[2],4720,4701; //Dexterity1 Strength2
- else if (.@i <= 589) setarray .@enchants[2],4720,4721; //Dexterity1 Dexterity2
- else if (.@i <= 620) setarray .@enchants[2],4720,4767; //Dexterity1 Atk3
- else if (.@i <= 651) setarray .@enchants[2],4740,4700; //Vitality1 Strength1
- else if (.@i <= 682) setarray .@enchants[2],4740,4701; //Vitality1 Strength2
- else if (.@i <= 713) setarray .@enchants[2],4740,4721; //Vitality1 Dexterity2
- else if (.@i <= 744) setarray .@enchants[2],4740,4767; //Vitality1 Atk3
- else if (.@i <= 775) setarray .@enchants[2],4741,4700; //Vitality2 Strength1
- else if (.@i <= 806) setarray .@enchants[2],4741,4701; //Vitality2 Strength2
- else if (.@i <= 837) setarray .@enchants[2],4741,4721; //Vitality2 Dexterity2
- else if (.@i <= 868) setarray .@enchants[2],4741,4767; //Vitality2 Atk3
- else if (.@i <= 899) setarray .@enchants[2],4701,4700; //Strength2 Strength1
- else if (.@i <= 930) setarray .@enchants[2],4701,4701; //Strength2 Strength2
- else if (.@i <= 961) setarray .@enchants[2],4701,4721; //Strength2 Dexterity2
- else if (.@i <= 992) setarray .@enchants[2],4701,4767; //Strength2 Atk3
- else if (.@i <= 1023) setarray .@enchants[2],4720,4700; //Dexterity1 Strength1
- else if (.@i <= 1054) setarray .@enchants[2],4720,4701; //Dexterity1 Strength2
- else if (.@i <= 1085) setarray .@enchants[2],4720,4721; //Dexterity1 Dexterity2
- else if (.@i <= 1116) setarray .@enchants[2],4720,4767; //Dexterity1 Atk3
- else if (.@i <= 1147) setarray .@enchants[2],4740,4700; //Vitality1 Strength1
- else if (.@i <= 1178) setarray .@enchants[2],4740,4701; //Vitality1 Strength2
- else if (.@i <= 1209) setarray .@enchants[2],4740,4721; //Vitality1 Dexterity2
- else if (.@i <= 1240) setarray .@enchants[2],4740,4767; //Vitality1 Atk3
- else if (.@i <= 1271) setarray .@enchants[2],4741,4700; //Vitality2 Strength1
- else if (.@i <= 1302) setarray .@enchants[2],4741,4701; //Vitality2 Strength2
- else if (.@i <= 1333) setarray .@enchants[2],4741,4721; //Vitality2 Dexterity2
- else if (.@i <= 1364) setarray .@enchants[2],4741,4767; //Vitality2 Atk3
- else if (.@i <= 1395) setarray .@enchants[2],4701,4700; //Strength2 Strength1
- else if (.@i <= 1426) setarray .@enchants[2],4701,4701; //Strength2 Strength2
- else if (.@i <= 1457) setarray .@enchants[2],4701,4721; //Strength2 Dexterity2
- else if (.@i <= 1488) setarray .@enchants[2],4701,4767; //Strength2 Atk3
- else if (.@i <= 1519) setarray .@enchants[2],4720,4700; //Dexterity1 Strength1
- else if (.@i <= 1550) setarray .@enchants[2],4720,4701; //Dexterity1 Strength2
- else if (.@i <= 1581) setarray .@enchants[2],4720,4721; //Dexterity1 Dexterity2
- else if (.@i <= 1612) setarray .@enchants[2],4720,4767; //Dexterity1 Atk3
- else if (.@i <= 1643) setarray .@enchants[2],4740,4700; //Vitality1 Strength1
- else if (.@i <= 1674) setarray .@enchants[2],4740,4701; //Vitality1 Strength2
- else if (.@i <= 1705) setarray .@enchants[2],4740,4721; //Vitality1 Dexterity2
- else if (.@i <= 1736) setarray .@enchants[2],4740,4767; //Vitality1 Atk3
- else if (.@i <= 1767) setarray .@enchants[2],4741,4700; //Vitality2 Strength1
- else if (.@i <= 1798) setarray .@enchants[2],4741,4701; //Vitality2 Strength2
- else if (.@i <= 1829) setarray .@enchants[2],4741,4721; //Vitality2 Dexterity2
- else if (.@i <= 1860) setarray .@enchants[2],4741,4767; //Vitality2 Atk3
- else if (.@i <= 1891) setarray .@enchants[2],4701,4700; //Strength2 Strength1
- else if (.@i <= 1922) setarray .@enchants[2],4701,4701; //Strength2 Strength2
- else if (.@i <= 1953) setarray .@enchants[2],4701,4721; //Strength2 Dexterity2
- else if (.@i <= 1984) setarray .@enchants[2],4701,4767; //Strength2 Atk3
+ if (.@i <= 1984) {
+ // Basic combinations
+ // (raw: .@i increments by 31, 4 repeats)
+ setarray .@enchant_slot2[0],4720,4740,4741,4701; //Dexterity1,Vitality1,Vitality2,Strength2
+ setarray .@enchant_slot3[0],4700,4701,4721,4767; //Strength1,Strength2,Dexterity2,Atk3
+ setarray .@enchants[2],
+ .@enchant_slot2[rand(getarraysize(.@enchant_slot2))],
+ .@enchant_slot3[rand(getarraysize(.@enchant_slot3))];
+ }
else if (.@i <= 1986) setarray .@enchants[2],4767,4767; //Atk3 Atk3
else if (.@i <= 1988) setarray .@enchants[2],4767,4723; //Atk3 Dexterity4
else if (.@i <= 1990) setarray .@enchants[2],4767,4704; //Atk3 Strength5
@@ -534,7 +317,7 @@ mora,96,74,5 script Master of Relics#pa0829 495,{
// Warlock Enchants :: coin_warrock
//============================================================
-mora,104,76,4 script Guardian of Artifacts#p 495,{
+mora,104,76,4 script Guardian of Artifacts#p 4_M_MERCAT1,{
if (checkweight(1201,1) == 0) {
mes "You have too many kinds of things with you to do that. Throw out some of them and try again.";
close;
@@ -607,7 +390,7 @@ mora,104,76,4 script Guardian of Artifacts#p 495,{
close;
}
-mora,99,93,5 script Artifact Crafter#pa0829 495,{
+mora,99,93,5 script Artifact Crafter#pa0829 4_M_MERCAT1,{
if (checkweight(1201,1) == 0) {
mes "You have too many kinds of things with you to do that. Throw out some of them and try again.";
close;
@@ -673,7 +456,7 @@ mora,99,93,5 script Artifact Crafter#pa0829 495,{
break;
}
set .@item, .@items[(.@select-2)%4];
- if (countitem(6380) == 0 || countitem(.@item) == 0) {
+ if (countitem(6380) < 2 || countitem(.@item) == 0) {
mes "[Artifact Crafter]";
mes "You have to have 2 Mora Coins and an item to be reinforced before I can do my work.";
close;
@@ -684,70 +467,15 @@ mora,99,93,5 script Artifact Crafter#pa0829 495,{
switch(.@enchant_type) {
case 1:
set .@i, rand(1,2847);
- if (.@i <= 31) setarray .@enchants[2],4720,4786; //Dexterity1 Mdef2
- else if (.@i <= 62) setarray .@enchants[2],4720,4760; //Dexterity1 Matk1
- else if (.@i <= 93) setarray .@enchants[2],4720,4711; //Dexterity1 Inteligence2
- else if (.@i <= 124) setarray .@enchants[2],4720,4721; //Dexterity1 Dexterity2
- else if (.@i <= 155) setarray .@enchants[2],4796,4786; //HP200 Mdef2
- else if (.@i <= 186) setarray .@enchants[2],4796,4760; //HP200 Matk1
- else if (.@i <= 217) setarray .@enchants[2],4796,4711; //HP200 Inteligence2
- else if (.@i <= 248) setarray .@enchants[2],4796,4721; //HP200 Dexterity2
- else if (.@i <= 279) setarray .@enchants[2],4710,4786; //Inteligence1 Mdef2
- else if (.@i <= 310) setarray .@enchants[2],4710,4760; //Inteligence1 Matk1
- else if (.@i <= 341) setarray .@enchants[2],4710,4711; //Inteligence1 Inteligence2
- else if (.@i <= 372) setarray .@enchants[2],4710,4721; //Inteligence1 Dexterity2
- else if (.@i <= 403) setarray .@enchants[2],4801,4786; //SP100 Mdef2
- else if (.@i <= 434) setarray .@enchants[2],4801,4760; //SP100 Matk1
- else if (.@i <= 465) setarray .@enchants[2],4801,4711; //SP100 Inteligence2
- else if (.@i <= 496) setarray .@enchants[2],4801,4721; //SP100 Dexterity2
- else if (.@i <= 527) setarray .@enchants[2],4720,4786; //Dexterity1 Mdef2
- else if (.@i <= 558) setarray .@enchants[2],4720,4760; //Dexterity1 Matk1
- else if (.@i <= 589) setarray .@enchants[2],4720,4711; //Dexterity1 Inteligence2
- else if (.@i <= 620) setarray .@enchants[2],4720,4721; //Dexterity1 Dexterity2
- else if (.@i <= 651) setarray .@enchants[2],4796,4786; //HP200 Mdef2
- else if (.@i <= 682) setarray .@enchants[2],4796,4760; //HP200 Matk1
- else if (.@i <= 713) setarray .@enchants[2],4796,4711; //HP200 Inteligence2
- else if (.@i <= 744) setarray .@enchants[2],4796,4721; //HP200 Dexterity2
- else if (.@i <= 775) setarray .@enchants[2],4710,4786; //Inteligence1 Mdef2
- else if (.@i <= 806) setarray .@enchants[2],4710,4760; //Inteligence1 Matk1
- else if (.@i <= 837) setarray .@enchants[2],4710,4711; //Inteligence1 Inteligence2
- else if (.@i <= 868) setarray .@enchants[2],4710,4721; //Inteligence1 Dexterity2
- else if (.@i <= 899) setarray .@enchants[2],4801,4786; //SP100 Mdef2
- else if (.@i <= 930) setarray .@enchants[2],4801,4760; //SP100 Matk1
- else if (.@i <= 961) setarray .@enchants[2],4801,4711; //SP100 Inteligence2
- else if (.@i <= 992) setarray .@enchants[2],4801,4721; //SP100 Dexterity2
- else if (.@i <= 1023) setarray .@enchants[2],4720,4786; //Dexterity1 Mdef2
- else if (.@i <= 1054) setarray .@enchants[2],4720,4760; //Dexterity1 Matk1
- else if (.@i <= 1085) setarray .@enchants[2],4720,4711; //Dexterity1 Inteligence2
- else if (.@i <= 1116) setarray .@enchants[2],4720,4721; //Dexterity1 Dexterity2
- else if (.@i <= 1147) setarray .@enchants[2],4796,4786; //HP200 Mdef2
- else if (.@i <= 1178) setarray .@enchants[2],4796,4760; //HP200 Matk1
- else if (.@i <= 1209) setarray .@enchants[2],4796,4711; //HP200 Inteligence2
- else if (.@i <= 1240) setarray .@enchants[2],4796,4721; //HP200 Dexterity2
- else if (.@i <= 1271) setarray .@enchants[2],4710,4786; //Inteligence1 Mdef2
- else if (.@i <= 1302) setarray .@enchants[2],4710,4760; //Inteligence1 Matk1
- else if (.@i <= 1333) setarray .@enchants[2],4710,4711; //Inteligence1 Inteligence2
- else if (.@i <= 1364) setarray .@enchants[2],4710,4721; //Inteligence1 Dexterity2
- else if (.@i <= 1395) setarray .@enchants[2],4801,4786; //SP100 Mdef2
- else if (.@i <= 1426) setarray .@enchants[2],4801,4760; //SP100 Matk1
- else if (.@i <= 1457) setarray .@enchants[2],4801,4711; //SP100 Inteligence2
- else if (.@i <= 1488) setarray .@enchants[2],4801,4721; //SP100 Dexterity2
- else if (.@i <= 1519) setarray .@enchants[2],4720,4786; //Dexterity1 Mdef2
- else if (.@i <= 1550) setarray .@enchants[2],4720,4760; //Dexterity1 Matk1
- else if (.@i <= 1581) setarray .@enchants[2],4720,4711; //Dexterity1 Inteligence2
- else if (.@i <= 1612) setarray .@enchants[2],4720,4721; //Dexterity1 Dexterity2
- else if (.@i <= 1643) setarray .@enchants[2],4796,4786; //HP200 Mdef2
- else if (.@i <= 1674) setarray .@enchants[2],4796,4760; //HP200 Matk1
- else if (.@i <= 1705) setarray .@enchants[2],4796,4711; //HP200 Inteligence2
- else if (.@i <= 1736) setarray .@enchants[2],4796,4721; //HP200 Dexterity2
- else if (.@i <= 1767) setarray .@enchants[2],4710,4786; //Inteligence1 Mdef2
- else if (.@i <= 1798) setarray .@enchants[2],4710,4760; //Inteligence1 Matk1
- else if (.@i <= 1829) setarray .@enchants[2],4710,4711; //Inteligence1 Inteligence2
- else if (.@i <= 1860) setarray .@enchants[2],4710,4721; //Inteligence1 Dexterity2
- else if (.@i <= 1891) setarray .@enchants[2],4801,4786; //SP100 Mdef2
- else if (.@i <= 1922) setarray .@enchants[2],4801,4760; //SP100 Matk1
- else if (.@i <= 1953) setarray .@enchants[2],4801,4711; //SP100 Inteligence2
- else if (.@i <= 1984) setarray .@enchants[2],4801,4721; //SP100 Dexterity2
+ if (.@i <= 1984) {
+ // Basic combinations
+ // (raw: .@i increments by 31, 4 repeats)
+ setarray .@enchant_slot2[0],4720,4796,4710,4801; //Dexterity1,HP200,Inteligence1,SP100
+ setarray .@enchant_slot3[0],4786,4760,4711,4721; //Mdef2,Matk1,Inteligence2,Dexterity2
+ setarray .@enchants[2],
+ .@enchant_slot2[rand(getarraysize(.@enchant_slot2))],
+ .@enchant_slot3[rand(getarraysize(.@enchant_slot3))];
+ }
else if (.@i <= 1986) setarray .@enchants[2],4713,4761; //Inteligence4 Matk2
else if (.@i <= 1988) setarray .@enchants[2],4713,4713; //Inteligence4 Inteligence4
else if (.@i <= 1990) setarray .@enchants[2],4761,4761; //Matk2 Matk2
@@ -760,70 +488,17 @@ mora,99,93,5 script Artifact Crafter#pa0829 495,{
break;
case 2:
set .@i, rand(1,2858);
- if (.@i <= 31) setarray .@enchants[1],4710,4720,4786; //Inteligence1 Dexterity1 Mdef2
- else if (.@i <= 62) setarray .@enchants[1],4710,4720,4760; //Inteligence1 Dexterity1 Matk1
- else if (.@i <= 93) setarray .@enchants[1],4710,4720,4711; //Inteligence1 Dexterity1 Inteligence2
- else if (.@i <= 124) setarray .@enchants[1],4710,4720,4721; //Inteligence1 Dexterity1 Dexterity2
- else if (.@i <= 155) setarray .@enchants[1],4710,4796,4786; //Inteligence1 HP200 Mdef2
- else if (.@i <= 186) setarray .@enchants[1],4710,4796,4760; //Inteligence1 HP200 Matk1
- else if (.@i <= 217) setarray .@enchants[1],4710,4796,4711; //Inteligence1 HP200 Inteligence2
- else if (.@i <= 248) setarray .@enchants[1],4710,4796,4721; //Inteligence1 HP200 Dexterity2
- else if (.@i <= 279) setarray .@enchants[1],4710,4710,4786; //Inteligence1 Inteligence1 Mdef2
- else if (.@i <= 310) setarray .@enchants[1],4710,4710,4760; //Inteligence1 Inteligence1 Matk1
- else if (.@i <= 341) setarray .@enchants[1],4710,4710,4711; //Inteligence1 Inteligence1 Inteligence2
- else if (.@i <= 372) setarray .@enchants[1],4710,4710,4721; //Inteligence1 Inteligence1 Dexterity2
- else if (.@i <= 403) setarray .@enchants[1],4710,4801,4786; //Inteligence1 SP100 Mdef2
- else if (.@i <= 434) setarray .@enchants[1],4710,4801,4760; //Inteligence1 SP100 Matk1
- else if (.@i <= 465) setarray .@enchants[1],4710,4801,4711; //Inteligence1 SP100 Inteligence2
- else if (.@i <= 496) setarray .@enchants[1],4710,4801,4721; //Inteligence1 SP100 Dexterity2
- else if (.@i <= 527) setarray .@enchants[1],4711,4720,4786; //Inteligence2 Dexterity1 Mdef2
- else if (.@i <= 558) setarray .@enchants[1],4711,4720,4760; //Inteligence2 Dexterity1 Matk1
- else if (.@i <= 589) setarray .@enchants[1],4711,4720,4711; //Inteligence2 Dexterity1 Inteligence2
- else if (.@i <= 620) setarray .@enchants[1],4711,4720,4721; //Inteligence2 Dexterity1 Dexterity2
- else if (.@i <= 651) setarray .@enchants[1],4711,4796,4786; //Inteligence2 HP200 Mdef2
- else if (.@i <= 682) setarray .@enchants[1],4711,4796,4760; //Inteligence2 HP200 Matk1
- else if (.@i <= 713) setarray .@enchants[1],4711,4796,4711; //Inteligence2 HP200 Inteligence2
- else if (.@i <= 744) setarray .@enchants[1],4711,4796,4721; //Inteligence2 HP200 Dexterity2
- else if (.@i <= 775) setarray .@enchants[1],4711,4710,4786; //Inteligence2 Inteligence1 Mdef2
- else if (.@i <= 806) setarray .@enchants[1],4711,4710,4760; //Inteligence2 Inteligence1 Matk1
- else if (.@i <= 837) setarray .@enchants[1],4711,4710,4711; //Inteligence2 Inteligence1 Inteligence2
- else if (.@i <= 868) setarray .@enchants[1],4711,4710,4721; //Inteligence2 Inteligence1 Dexterity2
- else if (.@i <= 899) setarray .@enchants[1],4711,4801,4786; //Inteligence2 SP100 Mdef2
- else if (.@i <= 930) setarray .@enchants[1],4711,4801,4760; //Inteligence2 SP100 Matk1
- else if (.@i <= 961) setarray .@enchants[1],4711,4801,4711; //Inteligence2 SP100 Inteligence2
- else if (.@i <= 992) setarray .@enchants[1],4711,4801,4721; //Inteligence2 SP100 Dexterity2
- else if (.@i <= 1023) setarray .@enchants[1],4720,4720,4786; //Dexterity1 Dexterity1 Mdef2
- else if (.@i <= 1054) setarray .@enchants[1],4720,4720,4760; //Dexterity1 Dexterity1 Matk1
- else if (.@i <= 1085) setarray .@enchants[1],4720,4720,4711; //Dexterity1 Dexterity1 Inteligence2
- else if (.@i <= 1116) setarray .@enchants[1],4720,4720,4721; //Dexterity1 Dexterity1 Dexterity2
- else if (.@i <= 1147) setarray .@enchants[1],4720,4796,4786; //Dexterity1 HP200 Mdef2
- else if (.@i <= 1178) setarray .@enchants[1],4720,4796,4760; //Dexterity1 HP200 Matk1
- else if (.@i <= 1209) setarray .@enchants[1],4720,4796,4711; //Dexterity1 HP200 Inteligence2
- else if (.@i <= 1240) setarray .@enchants[1],4720,4796,4721; //Dexterity1 HP200 Dexterity2
- else if (.@i <= 1271) setarray .@enchants[1],4720,4710,4786; //Dexterity1 Inteligence1 Mdef2
- else if (.@i <= 1302) setarray .@enchants[1],4720,4710,4760; //Dexterity1 Inteligence1 Matk1
- else if (.@i <= 1333) setarray .@enchants[1],4720,4710,4711; //Dexterity1 Inteligence1 Inteligence2
- else if (.@i <= 1364) setarray .@enchants[1],4720,4710,4721; //Dexterity1 Inteligence1 Dexterity2
- else if (.@i <= 1395) setarray .@enchants[1],4720,4801,4786; //Dexterity1 SP100 Mdef2
- else if (.@i <= 1426) setarray .@enchants[1],4720,4801,4760; //Dexterity1 SP100 Matk1
- else if (.@i <= 1457) setarray .@enchants[1],4720,4801,4711; //Dexterity1 SP100 Inteligence2
- else if (.@i <= 1488) setarray .@enchants[1],4720,4801,4721; //Dexterity1 SP100 Dexterity2
- else if (.@i <= 1519) setarray .@enchants[1],4721,4720,4786; //Dexterity2 Dexterity1 Mdef2
- else if (.@i <= 1550) setarray .@enchants[1],4721,4720,4760; //Dexterity2 Dexterity1 Matk1
- else if (.@i <= 1581) setarray .@enchants[1],4721,4720,4711; //Dexterity2 Dexterity1 Inteligence2
- else if (.@i <= 1612) setarray .@enchants[1],4721,4720,4721; //Dexterity2 Dexterity1 Dexterity2
- else if (.@i <= 1643) setarray .@enchants[1],4721,4796,4786; //Dexterity2 HP200 Mdef2
- else if (.@i <= 1674) setarray .@enchants[1],4721,4796,4760; //Dexterity2 HP200 Matk1
- else if (.@i <= 1705) setarray .@enchants[1],4721,4796,4711; //Dexterity2 HP200 Inteligence2
- else if (.@i <= 1736) setarray .@enchants[1],4721,4796,4721; //Dexterity2 HP200 Dexterity2
- else if (.@i <= 1767) setarray .@enchants[1],4721,4710,4786; //Dexterity2 Inteligence1 Mdef2
- else if (.@i <= 1798) setarray .@enchants[1],4721,4710,4760; //Dexterity2 Inteligence1 Matk1
- else if (.@i <= 1829) setarray .@enchants[1],4721,4710,4711; //Dexterity2 Inteligence1 Inteligence2
- else if (.@i <= 1860) setarray .@enchants[1],4721,4710,4721; //Dexterity2 Inteligence1 Dexterity2
- else if (.@i <= 1891) setarray .@enchants[1],4721,4801,4786; //Dexterity2 SP100 Mdef2
- else if (.@i <= 1922) setarray .@enchants[1],4721,4801,4760; //Dexterity2 SP100 Matk1
- else if (.@i <= 1953) setarray .@enchants[1],4721,4801,4711; //Dexterity2 SP100 Inteligence2
- else if (.@i <= 1984) setarray .@enchants[1],4721,4801,4721; //Dexterity2 SP100 Dexterity2
+ if (.@i <= 1984) {
+ // Basic combinations
+ // (raw: .@i increments by 31)
+ setarray .@enchant_slot1[0],4710,4711,4720,4721; //Inteligence1,Inteligence2,Dexterity1,Dexterity2
+ setarray .@enchant_slot2[0],4720,4796,4710,4801; //Dexterity1,HP200,Inteligence1,SP100
+ setarray .@enchant_slot3[0],4786,4760,4711,4721; //Mdef2,Matk1,Inteligence2,Dexterity2
+ setarray .@enchants[1],
+ .@enchant_slot1[rand(getarraysize(.@enchant_slot1))],
+ .@enchant_slot2[rand(getarraysize(.@enchant_slot2))],
+ .@enchant_slot3[rand(getarraysize(.@enchant_slot3))];
+ }
else if (.@i <= 1986) setarray .@enchants[1],4712,4713,4761; //Inteligence3 Inteligence4 Matk2
else if (.@i <= 1988) setarray .@enchants[1],4712,4713,4713; //Inteligence3 Inteligence4 Inteligence4
else if (.@i <= 1990) setarray .@enchants[1],4712,4761,4761; //Inteligence3 Matk2 Matk2
@@ -847,7 +522,7 @@ mora,99,93,5 script Artifact Crafter#pa0829 495,{
// Rune Knight, Guillotine Cross, & Ranger Enchants :: new_artifact
//============================================================
-mora,152,97,5 script Guardian of Power#pa082 515,{
+mora,152,97,5 script Guardian of Power#pa082 4_F_DOGTRAVELER,{
if (checkweight(1201,1) == 0) {
mes "Reduce the amount of items that you have in your inventory before continuing.";
close;
@@ -884,12 +559,13 @@ mora,152,97,5 script Guardian of Power#pa082 515,{
close;
}
mes "[Guardian of Power]";
- mes .@jobs$[.@job]+"~ which artifact do you want?";
+ mes .@jobs$[.@job]+"?";
+ mes "Which artifact do you want?";
next;
switch(.@job) {
case 0: // Rune Knight
setarray .@items[0],2475,2476,2574,2575;
- set .@i, select("Cancel:Ur's Greaves (Shoes):Peuz Greaves (Shoes):Ur's Manteau (Garment):Peuz Manteau (Garment)")-2;
+ set .@i, select("Cancel:Ur's Greaves (Shoes):Peuz's Greaves (Shoes):Ur's Manteau (Garment):Peuz's Manteau (Garment)")-2;
break;
case 1: // Guillotine Cross
setarray .@items[0],2477,2478,2577,2578;
@@ -917,7 +593,7 @@ mora,152,97,5 script Guardian of Power#pa082 515,{
close;
}
-mora,148,98,3 script Artifact Researcher#new 521,{
+mora,148,98,3 script Artifact Researcher#new 4_F_MORAFINE2,{
if (checkweight(1201,1) == 0) {
mes "Reduce the amount of items that you have in your inventory before continuing.";
close;
@@ -957,7 +633,7 @@ mora,148,98,3 script Artifact Researcher#new 521,{
}
if (Zeny < 100000 || countitem(6380) == 0) {
mes "[Artifact Researcher]";
- mes "I'm not giving these services out for free pal. 100,000 zeny or 1 Mora Coin. Is that too much to ask?";
+ mes "I'm not giving these services out for free pal. 100,000 zeny and 1 Mora Coin. Is that too much to ask?";
close;
}
mes "[Artifact Researcher]";
@@ -979,7 +655,6 @@ mora,148,98,3 script Artifact Researcher#new 521,{
set .@equip_id, getequipid(.@part);
set @mora_equip_part, .@part;
- // @mora_equip_id = enc_type
//callsub L_Socket,<enchant type>,<bonus enchant type>,<4-x enchants possible>;
// Enchant types:
// [1]ATK [2]CRIT [3]EVA [4]Healer [5]Spell 1 [6]Assist 1 [7]Assist 2 [8]STR [9]Range [10]Physical [11]Spell 2
@@ -1425,7 +1100,7 @@ L_Socket:
close;
}
delitem 6380,1; //Mora_Coin
- set Zeny, Zeny-100000;
+ Zeny -= 100000;
delequip .@part;
if (.@enchant == 9) {
specialeffect2 EF_SUI_EXPLOSION;
@@ -1460,7 +1135,7 @@ L_Socket:
mes "[Artifact Researcher]";
mes "The ability to enhance remains.";
delitem 6380,1; //Mora_Coin
- set Zeny, Zeny-100000;
+ Zeny -= 100000;
delequip .@part;
// GetNonSlotItemSock2 .@equip_refine .@equip_id .@equip_card[0] .@equip_card[1] .@equip_card[2] .@equip_card[3]
@@ -1476,7 +1151,7 @@ L_Socket:
// Arch Bishop & Warlock Empowering :: relic_change
//============================================================
-mora,124,82,4 script Artifact Collector#blan 522,{
+mora,124,82,4 script Artifact Collector#blan 4_M_RAFLE_OR,{
if (checkweight(1201,1) == 0) {
mes "Reduce the amount of items that you have in your inventory before continuing.";
close;
@@ -1551,7 +1226,7 @@ mora,124,82,4 script Artifact Collector#blan 522,{
mes "[Artifact Collector]";
mes "+1, +2, +3, +4, +5, +6 those refinements are not strong enough to work on my craft.";
next;
- emotion 57,0;
+ emotion e_otl,0;
mes "[Artifact Collector]";
mes "But +7! +7 is rare and just barely strong enough to work in my crafting attempts.";
next;
@@ -1803,294 +1478,17 @@ function script F_Mora_Enchant {
delitem 6380,5; //Mora_Coin
delitem getarg(0),1;
set .@i, rand(1,4568);
- if (.@i <= 11) setarray .@enchants[1],4766,4720,4700; //Atk2 Dexterity1 Strength1
- else if (.@i <= 22) setarray .@enchants[1],4766,4720,4701; //Atk2 Dexterity1 Strength2
- else if (.@i <= 33) setarray .@enchants[1],4766,4720,4730; //Atk2 Dexterity1 Agility1
- else if (.@i <= 44) setarray .@enchants[1],4766,4720,4731; //Atk2 Dexterity1 Agility2
- else if (.@i <= 55) setarray .@enchants[1],4766,4720,4740; //Atk2 Dexterity1 Vitality1
- else if (.@i <= 66) setarray .@enchants[1],4766,4720,4741; //Atk2 Dexterity1 Vitality2
- else if (.@i <= 77) setarray .@enchants[1],4766,4721,4700; //Atk2 Dexterity2 Strength1
- else if (.@i <= 88) setarray .@enchants[1],4766,4721,4701; //Atk2 Dexterity2 Strength2
- else if (.@i <= 99) setarray .@enchants[1],4766,4721,4730; //Atk2 Dexterity2 Agility1
- else if (.@i <= 110) setarray .@enchants[1],4766,4721,4731; //Atk2 Dexterity2 Agility2
- else if (.@i <= 121) setarray .@enchants[1],4766,4721,4740; //Atk2 Dexterity2 Vitality1
- else if (.@i <= 132) setarray .@enchants[1],4766,4721,4741; //Atk2 Dexterity2 Vitality2
- else if (.@i <= 143) setarray .@enchants[1],4766,4710,4700; //Atk2 Inteligence1 Strength1
- else if (.@i <= 154) setarray .@enchants[1],4766,4710,4701; //Atk2 Inteligence1 Strength2
- else if (.@i <= 165) setarray .@enchants[1],4766,4710,4730; //Atk2 Inteligence1 Agility1
- else if (.@i <= 176) setarray .@enchants[1],4766,4710,4731; //Atk2 Inteligence1 Agility2
- else if (.@i <= 187) setarray .@enchants[1],4766,4710,4740; //Atk2 Inteligence1 Vitality1
- else if (.@i <= 198) setarray .@enchants[1],4766,4710,4741; //Atk2 Inteligence1 Vitality2
- else if (.@i <= 209) setarray .@enchants[1],4766,4711,4700; //Atk2 Inteligence2 Strength1
- else if (.@i <= 220) setarray .@enchants[1],4766,4711,4701; //Atk2 Inteligence2 Strength2
- else if (.@i <= 231) setarray .@enchants[1],4766,4711,4730; //Atk2 Inteligence2 Agility1
- else if (.@i <= 242) setarray .@enchants[1],4766,4711,4731; //Atk2 Inteligence2 Agility2
- else if (.@i <= 253) setarray .@enchants[1],4766,4711,4740; //Atk2 Inteligence2 Vitality1
- else if (.@i <= 264) setarray .@enchants[1],4766,4711,4741; //Atk2 Inteligence2 Vitality2
- else if (.@i <= 275) setarray .@enchants[1],4766,4750,4700; //Atk2 Luck1 Strength1
- else if (.@i <= 286) setarray .@enchants[1],4766,4750,4701; //Atk2 Luck1 Strength2
- else if (.@i <= 297) setarray .@enchants[1],4766,4750,4730; //Atk2 Luck1 Agility1
- else if (.@i <= 308) setarray .@enchants[1],4766,4750,4731; //Atk2 Luck1 Agility2
- else if (.@i <= 319) setarray .@enchants[1],4766,4750,4740; //Atk2 Luck1 Vitality1
- else if (.@i <= 330) setarray .@enchants[1],4766,4750,4741; //Atk2 Luck1 Vitality2
- else if (.@i <= 341) setarray .@enchants[1],4766,4751,4700; //Atk2 Luck2 Strength1
- else if (.@i <= 352) setarray .@enchants[1],4766,4751,4701; //Atk2 Luck2 Strength2
- else if (.@i <= 363) setarray .@enchants[1],4766,4751,4730; //Atk2 Luck2 Agility1
- else if (.@i <= 374) setarray .@enchants[1],4766,4751,4731; //Atk2 Luck2 Agility2
- else if (.@i <= 385) setarray .@enchants[1],4766,4751,4740; //Atk2 Luck2 Vitality1
- else if (.@i <= 396) setarray .@enchants[1],4766,4751,4741; //Atk2 Luck2 Vitality2
- else if (.@i <= 407) setarray .@enchants[1],4767,4720,4700; //Atk3 Dexterity1 Strength1
- else if (.@i <= 418) setarray .@enchants[1],4767,4720,4701; //Atk3 Dexterity1 Strength2
- else if (.@i <= 429) setarray .@enchants[1],4767,4720,4730; //Atk3 Dexterity1 Agility1
- else if (.@i <= 440) setarray .@enchants[1],4767,4720,4731; //Atk3 Dexterity1 Agility2
- else if (.@i <= 451) setarray .@enchants[1],4767,4720,4740; //Atk3 Dexterity1 Vitality1
- else if (.@i <= 462) setarray .@enchants[1],4767,4720,4741; //Atk3 Dexterity1 Vitality2
- else if (.@i <= 473) setarray .@enchants[1],4767,4721,4700; //Atk3 Dexterity2 Strength1
- else if (.@i <= 484) setarray .@enchants[1],4767,4721,4701; //Atk3 Dexterity2 Strength2
- else if (.@i <= 495) setarray .@enchants[1],4767,4721,4730; //Atk3 Dexterity2 Agility1
- else if (.@i <= 506) setarray .@enchants[1],4767,4721,4731; //Atk3 Dexterity2 Agility2
- else if (.@i <= 517) setarray .@enchants[1],4767,4721,4740; //Atk3 Dexterity2 Vitality1
- else if (.@i <= 528) setarray .@enchants[1],4767,4721,4741; //Atk3 Dexterity2 Vitality2
- else if (.@i <= 539) setarray .@enchants[1],4767,4710,4700; //Atk3 Inteligence1 Strength1
- else if (.@i <= 550) setarray .@enchants[1],4767,4710,4701; //Atk3 Inteligence1 Strength2
- else if (.@i <= 561) setarray .@enchants[1],4767,4710,4730; //Atk3 Inteligence1 Agility1
- else if (.@i <= 572) setarray .@enchants[1],4767,4710,4731; //Atk3 Inteligence1 Agility2
- else if (.@i <= 583) setarray .@enchants[1],4767,4710,4740; //Atk3 Inteligence1 Vitality1
- else if (.@i <= 594) setarray .@enchants[1],4767,4710,4741; //Atk3 Inteligence1 Vitality2
- else if (.@i <= 605) setarray .@enchants[1],4767,4711,4700; //Atk3 Inteligence2 Strength1
- else if (.@i <= 616) setarray .@enchants[1],4767,4711,4701; //Atk3 Inteligence2 Strength2
- else if (.@i <= 627) setarray .@enchants[1],4767,4711,4730; //Atk3 Inteligence2 Agility1
- else if (.@i <= 638) setarray .@enchants[1],4767,4711,4731; //Atk3 Inteligence2 Agility2
- else if (.@i <= 649) setarray .@enchants[1],4767,4711,4740; //Atk3 Inteligence2 Vitality1
- else if (.@i <= 660) setarray .@enchants[1],4767,4711,4741; //Atk3 Inteligence2 Vitality2
- else if (.@i <= 671) setarray .@enchants[1],4767,4750,4700; //Atk3 Luck1 Strength1
- else if (.@i <= 682) setarray .@enchants[1],4767,4750,4701; //Atk3 Luck1 Strength2
- else if (.@i <= 693) setarray .@enchants[1],4767,4750,4730; //Atk3 Luck1 Agility1
- else if (.@i <= 704) setarray .@enchants[1],4767,4750,4731; //Atk3 Luck1 Agility2
- else if (.@i <= 715) setarray .@enchants[1],4767,4750,4740; //Atk3 Luck1 Vitality1
- else if (.@i <= 726) setarray .@enchants[1],4767,4750,4741; //Atk3 Luck1 Vitality2
- else if (.@i <= 737) setarray .@enchants[1],4767,4751,4700; //Atk3 Luck2 Strength1
- else if (.@i <= 748) setarray .@enchants[1],4767,4751,4701; //Atk3 Luck2 Strength2
- else if (.@i <= 759) setarray .@enchants[1],4767,4751,4730; //Atk3 Luck2 Agility1
- else if (.@i <= 770) setarray .@enchants[1],4767,4751,4731; //Atk3 Luck2 Agility2
- else if (.@i <= 781) setarray .@enchants[1],4767,4751,4740; //Atk3 Luck2 Vitality1
- else if (.@i <= 792) setarray .@enchants[1],4767,4751,4741; //Atk3 Luck2 Vitality2
- else if (.@i <= 803) setarray .@enchants[1],4764,4720,4700; //Critical5 Dexterity1 Strength1
- else if (.@i <= 814) setarray .@enchants[1],4764,4720,4701; //Critical5 Dexterity1 Strength2
- else if (.@i <= 825) setarray .@enchants[1],4764,4720,4730; //Critical5 Dexterity1 Agility1
- else if (.@i <= 836) setarray .@enchants[1],4764,4720,4731; //Critical5 Dexterity1 Agility2
- else if (.@i <= 847) setarray .@enchants[1],4764,4720,4740; //Critical5 Dexterity1 Vitality1
- else if (.@i <= 858) setarray .@enchants[1],4764,4720,4741; //Critical5 Dexterity1 Vitality2
- else if (.@i <= 869) setarray .@enchants[1],4764,4721,4700; //Critical5 Dexterity2 Strength1
- else if (.@i <= 880) setarray .@enchants[1],4764,4721,4701; //Critical5 Dexterity2 Strength2
- else if (.@i <= 891) setarray .@enchants[1],4764,4721,4730; //Critical5 Dexterity2 Agility1
- else if (.@i <= 902) setarray .@enchants[1],4764,4721,4731; //Critical5 Dexterity2 Agility2
- else if (.@i <= 913) setarray .@enchants[1],4764,4721,4740; //Critical5 Dexterity2 Vitality1
- else if (.@i <= 924) setarray .@enchants[1],4764,4721,4741; //Critical5 Dexterity2 Vitality2
- else if (.@i <= 935) setarray .@enchants[1],4764,4710,4700; //Critical5 Inteligence1 Strength1
- else if (.@i <= 946) setarray .@enchants[1],4764,4710,4701; //Critical5 Inteligence1 Strength2
- else if (.@i <= 957) setarray .@enchants[1],4764,4710,4730; //Critical5 Inteligence1 Agility1
- else if (.@i <= 968) setarray .@enchants[1],4764,4710,4731; //Critical5 Inteligence1 Agility2
- else if (.@i <= 979) setarray .@enchants[1],4764,4710,4740; //Critical5 Inteligence1 Vitality1
- else if (.@i <= 990) setarray .@enchants[1],4764,4710,4741; //Critical5 Inteligence1 Vitality2
- else if (.@i <= 1001) setarray .@enchants[1],4764,4711,4700; //Critical5 Inteligence2 Strength1
- else if (.@i <= 1012) setarray .@enchants[1],4764,4711,4701; //Critical5 Inteligence2 Strength2
- else if (.@i <= 1023) setarray .@enchants[1],4764,4711,4730; //Critical5 Inteligence2 Agility1
- else if (.@i <= 1034) setarray .@enchants[1],4764,4711,4731; //Critical5 Inteligence2 Agility2
- else if (.@i <= 1045) setarray .@enchants[1],4764,4711,4740; //Critical5 Inteligence2 Vitality1
- else if (.@i <= 1056) setarray .@enchants[1],4764,4711,4741; //Critical5 Inteligence2 Vitality2
- else if (.@i <= 1067) setarray .@enchants[1],4764,4750,4700; //Critical5 Luck1 Strength1
- else if (.@i <= 1078) setarray .@enchants[1],4764,4750,4701; //Critical5 Luck1 Strength2
- else if (.@i <= 1089) setarray .@enchants[1],4764,4750,4730; //Critical5 Luck1 Agility1
- else if (.@i <= 1100) setarray .@enchants[1],4764,4750,4731; //Critical5 Luck1 Agility2
- else if (.@i <= 1111) setarray .@enchants[1],4764,4750,4740; //Critical5 Luck1 Vitality1
- else if (.@i <= 1122) setarray .@enchants[1],4764,4750,4741; //Critical5 Luck1 Vitality2
- else if (.@i <= 1133) setarray .@enchants[1],4764,4751,4700; //Critical5 Luck2 Strength1
- else if (.@i <= 1144) setarray .@enchants[1],4764,4751,4701; //Critical5 Luck2 Strength2
- else if (.@i <= 1155) setarray .@enchants[1],4764,4751,4730; //Critical5 Luck2 Agility1
- else if (.@i <= 1166) setarray .@enchants[1],4764,4751,4731; //Critical5 Luck2 Agility2
- else if (.@i <= 1177) setarray .@enchants[1],4764,4751,4740; //Critical5 Luck2 Vitality1
- else if (.@i <= 1188) setarray .@enchants[1],4764,4751,4741; //Critical5 Luck2 Vitality2
- else if (.@i <= 1199) setarray .@enchants[1],4765,4720,4700; //Critical7 Dexterity1 Strength1
- else if (.@i <= 1210) setarray .@enchants[1],4765,4720,4701; //Critical7 Dexterity1 Strength2
- else if (.@i <= 1221) setarray .@enchants[1],4765,4720,4730; //Critical7 Dexterity1 Agility1
- else if (.@i <= 1232) setarray .@enchants[1],4765,4720,4731; //Critical7 Dexterity1 Agility2
- else if (.@i <= 1243) setarray .@enchants[1],4765,4720,4740; //Critical7 Dexterity1 Vitality1
- else if (.@i <= 1254) setarray .@enchants[1],4765,4720,4741; //Critical7 Dexterity1 Vitality2
- else if (.@i <= 1265) setarray .@enchants[1],4765,4721,4700; //Critical7 Dexterity2 Strength1
- else if (.@i <= 1276) setarray .@enchants[1],4765,4721,4701; //Critical7 Dexterity2 Strength2
- else if (.@i <= 1287) setarray .@enchants[1],4765,4721,4730; //Critical7 Dexterity2 Agility1
- else if (.@i <= 1298) setarray .@enchants[1],4765,4721,4731; //Critical7 Dexterity2 Agility2
- else if (.@i <= 1309) setarray .@enchants[1],4765,4721,4740; //Critical7 Dexterity2 Vitality1
- else if (.@i <= 1320) setarray .@enchants[1],4765,4721,4741; //Critical7 Dexterity2 Vitality2
- else if (.@i <= 1331) setarray .@enchants[1],4765,4710,4700; //Critical7 Inteligence1 Strength1
- else if (.@i <= 1342) setarray .@enchants[1],4765,4710,4701; //Critical7 Inteligence1 Strength2
- else if (.@i <= 1353) setarray .@enchants[1],4765,4710,4730; //Critical7 Inteligence1 Agility1
- else if (.@i <= 1364) setarray .@enchants[1],4765,4710,4731; //Critical7 Inteligence1 Agility2
- else if (.@i <= 1375) setarray .@enchants[1],4765,4710,4740; //Critical7 Inteligence1 Vitality1
- else if (.@i <= 1386) setarray .@enchants[1],4765,4710,4741; //Critical7 Inteligence1 Vitality2
- else if (.@i <= 1397) setarray .@enchants[1],4765,4711,4700; //Critical7 Inteligence2 Strength1
- else if (.@i <= 1408) setarray .@enchants[1],4765,4711,4701; //Critical7 Inteligence2 Strength2
- else if (.@i <= 1419) setarray .@enchants[1],4765,4711,4730; //Critical7 Inteligence2 Agility1
- else if (.@i <= 1430) setarray .@enchants[1],4765,4711,4731; //Critical7 Inteligence2 Agility2
- else if (.@i <= 1441) setarray .@enchants[1],4765,4711,4740; //Critical7 Inteligence2 Vitality1
- else if (.@i <= 1452) setarray .@enchants[1],4765,4711,4741; //Critical7 Inteligence2 Vitality2
- else if (.@i <= 1463) setarray .@enchants[1],4765,4750,4700; //Critical7 Luck1 Strength1
- else if (.@i <= 1474) setarray .@enchants[1],4765,4750,4701; //Critical7 Luck1 Strength2
- else if (.@i <= 1485) setarray .@enchants[1],4765,4750,4730; //Critical7 Luck1 Agility1
- else if (.@i <= 1496) setarray .@enchants[1],4765,4750,4731; //Critical7 Luck1 Agility2
- else if (.@i <= 1507) setarray .@enchants[1],4765,4750,4740; //Critical7 Luck1 Vitality1
- else if (.@i <= 1518) setarray .@enchants[1],4765,4750,4741; //Critical7 Luck1 Vitality2
- else if (.@i <= 1529) setarray .@enchants[1],4765,4751,4700; //Critical7 Luck2 Strength1
- else if (.@i <= 1540) setarray .@enchants[1],4765,4751,4701; //Critical7 Luck2 Strength2
- else if (.@i <= 1551) setarray .@enchants[1],4765,4751,4730; //Critical7 Luck2 Agility1
- else if (.@i <= 1562) setarray .@enchants[1],4765,4751,4731; //Critical7 Luck2 Agility2
- else if (.@i <= 1573) setarray .@enchants[1],4765,4751,4740; //Critical7 Luck2 Vitality1
- else if (.@i <= 1584) setarray .@enchants[1],4765,4751,4741; //Critical7 Luck2 Vitality2
- else if (.@i <= 1595) setarray .@enchants[1],4762,4720,4700; //Evasion6 Dexterity1 Strength1
- else if (.@i <= 1606) setarray .@enchants[1],4762,4720,4701; //Evasion6 Dexterity1 Strength2
- else if (.@i <= 1617) setarray .@enchants[1],4762,4720,4730; //Evasion6 Dexterity1 Agility1
- else if (.@i <= 1628) setarray .@enchants[1],4762,4720,4731; //Evasion6 Dexterity1 Agility2
- else if (.@i <= 1639) setarray .@enchants[1],4762,4720,4740; //Evasion6 Dexterity1 Vitality1
- else if (.@i <= 1650) setarray .@enchants[1],4762,4720,4741; //Evasion6 Dexterity1 Vitality2
- else if (.@i <= 1661) setarray .@enchants[1],4762,4721,4700; //Evasion6 Dexterity2 Strength1
- else if (.@i <= 1672) setarray .@enchants[1],4762,4721,4701; //Evasion6 Dexterity2 Strength2
- else if (.@i <= 1683) setarray .@enchants[1],4762,4721,4730; //Evasion6 Dexterity2 Agility1
- else if (.@i <= 1694) setarray .@enchants[1],4762,4721,4731; //Evasion6 Dexterity2 Agility2
- else if (.@i <= 1705) setarray .@enchants[1],4762,4721,4740; //Evasion6 Dexterity2 Vitality1
- else if (.@i <= 1716) setarray .@enchants[1],4762,4721,4741; //Evasion6 Dexterity2 Vitality2
- else if (.@i <= 1727) setarray .@enchants[1],4762,4710,4700; //Evasion6 Inteligence1 Strength1
- else if (.@i <= 1738) setarray .@enchants[1],4762,4710,4701; //Evasion6 Inteligence1 Strength2
- else if (.@i <= 1749) setarray .@enchants[1],4762,4710,4730; //Evasion6 Inteligence1 Agility1
- else if (.@i <= 1760) setarray .@enchants[1],4762,4710,4731; //Evasion6 Inteligence1 Agility2
- else if (.@i <= 1771) setarray .@enchants[1],4762,4710,4740; //Evasion6 Inteligence1 Vitality1
- else if (.@i <= 1782) setarray .@enchants[1],4762,4710,4741; //Evasion6 Inteligence1 Vitality2
- else if (.@i <= 1793) setarray .@enchants[1],4762,4711,4700; //Evasion6 Inteligence2 Strength1
- else if (.@i <= 1804) setarray .@enchants[1],4762,4711,4701; //Evasion6 Inteligence2 Strength2
- else if (.@i <= 1815) setarray .@enchants[1],4762,4711,4730; //Evasion6 Inteligence2 Agility1
- else if (.@i <= 1826) setarray .@enchants[1],4762,4711,4731; //Evasion6 Inteligence2 Agility2
- else if (.@i <= 1837) setarray .@enchants[1],4762,4711,4740; //Evasion6 Inteligence2 Vitality1
- else if (.@i <= 1848) setarray .@enchants[1],4762,4711,4741; //Evasion6 Inteligence2 Vitality2
- else if (.@i <= 1859) setarray .@enchants[1],4762,4750,4700; //Evasion6 Luck1 Strength1
- else if (.@i <= 1870) setarray .@enchants[1],4762,4750,4701; //Evasion6 Luck1 Strength2
- else if (.@i <= 1881) setarray .@enchants[1],4762,4750,4730; //Evasion6 Luck1 Agility1
- else if (.@i <= 1892) setarray .@enchants[1],4762,4750,4731; //Evasion6 Luck1 Agility2
- else if (.@i <= 1903) setarray .@enchants[1],4762,4750,4740; //Evasion6 Luck1 Vitality1
- else if (.@i <= 1914) setarray .@enchants[1],4762,4750,4741; //Evasion6 Luck1 Vitality2
- else if (.@i <= 1925) setarray .@enchants[1],4762,4751,4700; //Evasion6 Luck2 Strength1
- else if (.@i <= 1936) setarray .@enchants[1],4762,4751,4701; //Evasion6 Luck2 Strength2
- else if (.@i <= 1947) setarray .@enchants[1],4762,4751,4730; //Evasion6 Luck2 Agility1
- else if (.@i <= 1958) setarray .@enchants[1],4762,4751,4731; //Evasion6 Luck2 Agility2
- else if (.@i <= 1969) setarray .@enchants[1],4762,4751,4740; //Evasion6 Luck2 Vitality1
- else if (.@i <= 1980) setarray .@enchants[1],4762,4751,4741; //Evasion6 Luck2 Vitality2
- else if (.@i <= 1991) setarray .@enchants[1],4763,4720,4700; //Evasion12 Dexterity1 Strength1
- else if (.@i <= 2002) setarray .@enchants[1],4763,4720,4701; //Evasion12 Dexterity1 Strength2
- else if (.@i <= 2013) setarray .@enchants[1],4763,4720,4730; //Evasion12 Dexterity1 Agility1
- else if (.@i <= 2024) setarray .@enchants[1],4763,4720,4731; //Evasion12 Dexterity1 Agility2
- else if (.@i <= 2035) setarray .@enchants[1],4763,4720,4740; //Evasion12 Dexterity1 Vitality1
- else if (.@i <= 2046) setarray .@enchants[1],4763,4720,4741; //Evasion12 Dexterity1 Vitality2
- else if (.@i <= 2057) setarray .@enchants[1],4763,4721,4700; //Evasion12 Dexterity2 Strength1
- else if (.@i <= 2068) setarray .@enchants[1],4763,4721,4701; //Evasion12 Dexterity2 Strength2
- else if (.@i <= 2079) setarray .@enchants[1],4763,4721,4730; //Evasion12 Dexterity2 Agility1
- else if (.@i <= 2090) setarray .@enchants[1],4763,4721,4731; //Evasion12 Dexterity2 Agility2
- else if (.@i <= 2101) setarray .@enchants[1],4763,4721,4740; //Evasion12 Dexterity2 Vitality1
- else if (.@i <= 2112) setarray .@enchants[1],4763,4721,4741; //Evasion12 Dexterity2 Vitality2
- else if (.@i <= 2123) setarray .@enchants[1],4763,4710,4700; //Evasion12 Inteligence1 Strength1
- else if (.@i <= 2134) setarray .@enchants[1],4763,4710,4701; //Evasion12 Inteligence1 Strength2
- else if (.@i <= 2145) setarray .@enchants[1],4763,4710,4730; //Evasion12 Inteligence1 Agility1
- else if (.@i <= 2156) setarray .@enchants[1],4763,4710,4731; //Evasion12 Inteligence1 Agility2
- else if (.@i <= 2167) setarray .@enchants[1],4763,4710,4740; //Evasion12 Inteligence1 Vitality1
- else if (.@i <= 2178) setarray .@enchants[1],4763,4710,4741; //Evasion12 Inteligence1 Vitality2
- else if (.@i <= 2189) setarray .@enchants[1],4763,4711,4700; //Evasion12 Inteligence2 Strength1
- else if (.@i <= 2200) setarray .@enchants[1],4763,4711,4701; //Evasion12 Inteligence2 Strength2
- else if (.@i <= 2211) setarray .@enchants[1],4763,4711,4730; //Evasion12 Inteligence2 Agility1
- else if (.@i <= 2222) setarray .@enchants[1],4763,4711,4731; //Evasion12 Inteligence2 Agility2
- else if (.@i <= 2233) setarray .@enchants[1],4763,4711,4740; //Evasion12 Inteligence2 Vitality1
- else if (.@i <= 2244) setarray .@enchants[1],4763,4711,4741; //Evasion12 Inteligence2 Vitality2
- else if (.@i <= 2255) setarray .@enchants[1],4763,4750,4700; //Evasion12 Luck1 Strength1
- else if (.@i <= 2266) setarray .@enchants[1],4763,4750,4701; //Evasion12 Luck1 Strength2
- else if (.@i <= 2277) setarray .@enchants[1],4763,4750,4730; //Evasion12 Luck1 Agility1
- else if (.@i <= 2288) setarray .@enchants[1],4763,4750,4731; //Evasion12 Luck1 Agility2
- else if (.@i <= 2299) setarray .@enchants[1],4763,4750,4740; //Evasion12 Luck1 Vitality1
- else if (.@i <= 2310) setarray .@enchants[1],4763,4750,4741; //Evasion12 Luck1 Vitality2
- else if (.@i <= 2321) setarray .@enchants[1],4763,4751,4700; //Evasion12 Luck2 Strength1
- else if (.@i <= 2332) setarray .@enchants[1],4763,4751,4701; //Evasion12 Luck2 Strength2
- else if (.@i <= 2343) setarray .@enchants[1],4763,4751,4730; //Evasion12 Luck2 Agility1
- else if (.@i <= 2354) setarray .@enchants[1],4763,4751,4731; //Evasion12 Luck2 Agility2
- else if (.@i <= 2365) setarray .@enchants[1],4763,4751,4740; //Evasion12 Luck2 Vitality1
- else if (.@i <= 2376) setarray .@enchants[1],4763,4751,4741; //Evasion12 Luck2 Vitality2
- else if (.@i <= 2387) setarray .@enchants[1],4760,4720,4700; //Matk1 Dexterity1 Strength1
- else if (.@i <= 2398) setarray .@enchants[1],4760,4720,4701; //Matk1 Dexterity1 Strength2
- else if (.@i <= 2409) setarray .@enchants[1],4760,4720,4730; //Matk1 Dexterity1 Agility1
- else if (.@i <= 2420) setarray .@enchants[1],4760,4720,4731; //Matk1 Dexterity1 Agility2
- else if (.@i <= 2431) setarray .@enchants[1],4760,4720,4740; //Matk1 Dexterity1 Vitality1
- else if (.@i <= 2442) setarray .@enchants[1],4760,4720,4741; //Matk1 Dexterity1 Vitality2
- else if (.@i <= 2453) setarray .@enchants[1],4760,4721,4700; //Matk1 Dexterity2 Strength1
- else if (.@i <= 2464) setarray .@enchants[1],4760,4721,4701; //Matk1 Dexterity2 Strength2
- else if (.@i <= 2475) setarray .@enchants[1],4760,4721,4730; //Matk1 Dexterity2 Agility1
- else if (.@i <= 2486) setarray .@enchants[1],4760,4721,4731; //Matk1 Dexterity2 Agility2
- else if (.@i <= 2497) setarray .@enchants[1],4760,4721,4740; //Matk1 Dexterity2 Vitality1
- else if (.@i <= 2508) setarray .@enchants[1],4760,4721,4741; //Matk1 Dexterity2 Vitality2
- else if (.@i <= 2519) setarray .@enchants[1],4760,4710,4700; //Matk1 Inteligence1 Strength1
- else if (.@i <= 2530) setarray .@enchants[1],4760,4710,4701; //Matk1 Inteligence1 Strength2
- else if (.@i <= 2541) setarray .@enchants[1],4760,4710,4730; //Matk1 Inteligence1 Agility1
- else if (.@i <= 2552) setarray .@enchants[1],4760,4710,4731; //Matk1 Inteligence1 Agility2
- else if (.@i <= 2563) setarray .@enchants[1],4760,4710,4740; //Matk1 Inteligence1 Vitality1
- else if (.@i <= 2574) setarray .@enchants[1],4760,4710,4741; //Matk1 Inteligence1 Vitality2
- else if (.@i <= 2585) setarray .@enchants[1],4760,4711,4700; //Matk1 Inteligence2 Strength1
- else if (.@i <= 2596) setarray .@enchants[1],4760,4711,4701; //Matk1 Inteligence2 Strength2
- else if (.@i <= 2607) setarray .@enchants[1],4760,4711,4730; //Matk1 Inteligence2 Agility1
- else if (.@i <= 2618) setarray .@enchants[1],4760,4711,4731; //Matk1 Inteligence2 Agility2
- else if (.@i <= 2629) setarray .@enchants[1],4760,4711,4740; //Matk1 Inteligence2 Vitality1
- else if (.@i <= 2640) setarray .@enchants[1],4760,4711,4741; //Matk1 Inteligence2 Vitality2
- else if (.@i <= 2651) setarray .@enchants[1],4760,4750,4700; //Matk1 Luck1 Strength1
- else if (.@i <= 2662) setarray .@enchants[1],4760,4750,4701; //Matk1 Luck1 Strength2
- else if (.@i <= 2673) setarray .@enchants[1],4760,4750,4730; //Matk1 Luck1 Agility1
- else if (.@i <= 2684) setarray .@enchants[1],4760,4750,4731; //Matk1 Luck1 Agility2
- else if (.@i <= 2695) setarray .@enchants[1],4760,4750,4740; //Matk1 Luck1 Vitality1
- else if (.@i <= 2706) setarray .@enchants[1],4760,4750,4741; //Matk1 Luck1 Vitality2
- else if (.@i <= 2717) setarray .@enchants[1],4760,4751,4700; //Matk1 Luck2 Strength1
- else if (.@i <= 2728) setarray .@enchants[1],4760,4751,4701; //Matk1 Luck2 Strength2
- else if (.@i <= 2739) setarray .@enchants[1],4760,4751,4730; //Matk1 Luck2 Agility1
- else if (.@i <= 2750) setarray .@enchants[1],4760,4751,4731; //Matk1 Luck2 Agility2
- else if (.@i <= 2761) setarray .@enchants[1],4760,4751,4740; //Matk1 Luck2 Vitality1
- else if (.@i <= 2772) setarray .@enchants[1],4760,4751,4741; //Matk1 Luck2 Vitality2
- else if (.@i <= 2783) setarray .@enchants[1],4761,4720,4700; //Matk2 Dexterity1 Strength1
- else if (.@i <= 2794) setarray .@enchants[1],4761,4720,4701; //Matk2 Dexterity1 Strength2
- else if (.@i <= 2805) setarray .@enchants[1],4761,4720,4730; //Matk2 Dexterity1 Agility1
- else if (.@i <= 2816) setarray .@enchants[1],4761,4720,4731; //Matk2 Dexterity1 Agility2
- else if (.@i <= 2827) setarray .@enchants[1],4761,4720,4740; //Matk2 Dexterity1 Vitality1
- else if (.@i <= 2838) setarray .@enchants[1],4761,4720,4741; //Matk2 Dexterity1 Vitality2
- else if (.@i <= 2849) setarray .@enchants[1],4761,4721,4700; //Matk2 Dexterity2 Strength1
- else if (.@i <= 2860) setarray .@enchants[1],4761,4721,4701; //Matk2 Dexterity2 Strength2
- else if (.@i <= 2871) setarray .@enchants[1],4761,4721,4730; //Matk2 Dexterity2 Agility1
- else if (.@i <= 2882) setarray .@enchants[1],4761,4721,4731; //Matk2 Dexterity2 Agility2
- else if (.@i <= 2893) setarray .@enchants[1],4761,4721,4740; //Matk2 Dexterity2 Vitality1
- else if (.@i <= 2904) setarray .@enchants[1],4761,4721,4741; //Matk2 Dexterity2 Vitality2
- else if (.@i <= 2915) setarray .@enchants[1],4761,4710,4700; //Matk2 Inteligence1 Strength1
- else if (.@i <= 2926) setarray .@enchants[1],4761,4710,4701; //Matk2 Inteligence1 Strength2
- else if (.@i <= 2937) setarray .@enchants[1],4761,4710,4730; //Matk2 Inteligence1 Agility1
- else if (.@i <= 2948) setarray .@enchants[1],4761,4710,4731; //Matk2 Inteligence1 Agility2
- else if (.@i <= 2959) setarray .@enchants[1],4761,4710,4740; //Matk2 Inteligence1 Vitality1
- else if (.@i <= 2970) setarray .@enchants[1],4761,4710,4741; //Matk2 Inteligence1 Vitality2
- else if (.@i <= 2981) setarray .@enchants[1],4761,4711,4700; //Matk2 Inteligence2 Strength1
- else if (.@i <= 2992) setarray .@enchants[1],4761,4711,4701; //Matk2 Inteligence2 Strength2
- else if (.@i <= 3003) setarray .@enchants[1],4761,4711,4730; //Matk2 Inteligence2 Agility1
- else if (.@i <= 3014) setarray .@enchants[1],4761,4711,4731; //Matk2 Inteligence2 Agility2
- else if (.@i <= 3025) setarray .@enchants[1],4761,4711,4740; //Matk2 Inteligence2 Vitality1
- else if (.@i <= 3036) setarray .@enchants[1],4761,4711,4741; //Matk2 Inteligence2 Vitality2
- else if (.@i <= 3047) setarray .@enchants[1],4761,4750,4700; //Matk2 Luck1 Strength1
- else if (.@i <= 3058) setarray .@enchants[1],4761,4750,4701; //Matk2 Luck1 Strength2
- else if (.@i <= 3069) setarray .@enchants[1],4761,4750,4730; //Matk2 Luck1 Agility1
- else if (.@i <= 3080) setarray .@enchants[1],4761,4750,4731; //Matk2 Luck1 Agility2
- else if (.@i <= 3091) setarray .@enchants[1],4761,4750,4740; //Matk2 Luck1 Vitality1
- else if (.@i <= 3102) setarray .@enchants[1],4761,4750,4741; //Matk2 Luck1 Vitality2
- else if (.@i <= 3113) setarray .@enchants[1],4761,4751,4700; //Matk2 Luck2 Strength1
- else if (.@i <= 3124) setarray .@enchants[1],4761,4751,4701; //Matk2 Luck2 Strength2
- else if (.@i <= 3135) setarray .@enchants[1],4761,4751,4730; //Matk2 Luck2 Agility1
- else if (.@i <= 3146) setarray .@enchants[1],4761,4751,4731; //Matk2 Luck2 Agility2
- else if (.@i <= 3157) setarray .@enchants[1],4761,4751,4740; //Matk2 Luck2 Vitality1
- else if (.@i <= 3168) setarray .@enchants[1],4761,4751,4741; //Matk2 Luck2 Vitality2
+ if (.@i <= 3168) {
+ // Basic combinations
+ // (raw: .@i increments by 11)
+ setarray .@enchant_slot1[0],4766,4767,4764,4765,4762,4763,4760,4761; //Atk2,Atk3,Critical5,Critical7,Evasion6,Evasion12,Matk1,Matk2
+ setarray .@enchant_slot2[0],4720,4721,4710,4711,4750,4751; //Dexterity1,Dexterity2,Inteligence1,Inteligence2,Luck1,Luck2
+ setarray .@enchant_slot3[0],4700,4701,4730,4731,4740,4741; //Strength1,Strength2,Agility1,Agility2,Vitality1,Vitality2
+ setarray .@enchants[1],
+ .@enchant_slot1[rand(getarraysize(.@enchant_slot1))],
+ .@enchant_slot2[rand(getarraysize(.@enchant_slot2))],
+ .@enchant_slot3[rand(getarraysize(.@enchant_slot3))];
+ }
else if (.@i <= 3179) setarray .@enchants[1],4761,4720,4700; //Matk2 Dexterity1 Strength1
else if (.@i <= 3181) setarray .@enchants[1],4761,4712,4712; //Matk2 Inteligence3 Inteligence3
else if (.@i <= 3183) setarray .@enchants[1],4765,4732,4732; //Critical7 Agility3 Agility3
@@ -2106,7 +1504,7 @@ function script F_Mora_Enchant {
getitem2 getarg(0),1,1,0,0,0,.@enchants[1],.@enchants[2],.@enchants[3];
return 1;
}
-mora,105,176,4 script Master Tailor#pa0829 509,{
+mora,105,176,4 script Master Tailor#pa0829 4_ELEPHANT,{
if (checkweight(1201,1) == 0) {
mes "You have too many kinds of things with you to do that. Throw out some of them and try again.";
close;
@@ -2198,7 +1596,7 @@ mora,105,176,4 script Master Tailor#pa0829 509,{
}
}
-mora,123,177,6 script Pendant Crafter#pa0829 509,{
+mora,123,177,6 script Pendant Crafter#pa0829 4_ELEPHANT,{
if (checkweight(1201,1) == 0) {
mes "You have too many kinds of things with you to do that. Throw out some of them and try again.";
close;
@@ -2268,7 +1666,7 @@ mora,123,177,6 script Pendant Crafter#pa0829 509,{
}
}
-mora,134,166,4 script Bulberry Westhood#pa0829 509,{
+mora,134,166,4 script Bulberry Westhood#pa0829 4_ELEPHANT,{
if (checkweight(1201,1) == 0) {
mes "You have too many kinds of things with you to do that. Throw out some of them and try again.";
close;
diff --git a/npc/re/merchants/enchan_upg.txt b/npc/re/merchants/enchan_upg.txt
new file mode 100644
index 000000000..abbc0896a
--- /dev/null
+++ b/npc/re/merchants/enchan_upg.txt
@@ -0,0 +1,264 @@
+//===== Hercules Script ======================================
+//= Upgrade Weapon Enchants
+//===== By: ==================================================
+//= Skorm
+//===== Current Version: =====================================
+//= 1.1
+//===== Description: =========================================
+//= [Official Conversion]
+//= Adds enchantments to Upgrade weapons.
+//===== Additional Comments: =================================
+//= 1.0 First version.
+//= 1.1 Standardizing, grammar and bug fixes. [Euphy]
+//============================================================
+
+prt_in,28,73,3 script Devil Enchant Master#prq 1_M_SMITH,{
+ disable_items;
+ if (checkweight(1201,1) == 0) {
+ mes "You are carrying too many items, please reduce it and come back again!";
+ close;
+ }
+ if (MaxWeight - Weight < 10000) {
+ mes "You are over the weight limit, please reduce it and come back again!";
+ close;
+ }
+ mes "[Devil Enchant Master]";
+ mes "Yes?";
+ mes "You are looking for me?";
+ next;
+ switch(select("This is the first time seeing you!:I heard that you are the best!:Please initialize the enchant.")) {
+ case 1:
+ mes "[Devil Enchant Master]";
+ mes "Ha ha ha~ Of course, I am not the kind of person that simply deals with people.";
+ next;
+ mes "[Devil Enchant Master]";
+ mes "Including you! Even if you offer me plenty of money, I will not simply enchant for you!!";
+ next;
+ mes "[Devil Enchant Master]";
+ mes "Have you seen my title? Very few people have this title for a reason!";
+ next;
+ mes "[Devil Enchant Master]";
+ mes "I will only enchant if you bring an ^0000ffEnchant Book^000000 along!";
+ next;
+ mes "[Devil Enchant Master]";
+ mes "Else, I will not enchant for you....";
+ close;
+ case 2:
+ if (!countitem(6484)) {
+ mes "[Devil Enchant Master]";
+ mes "Are you listening to me? I will only do for you if you bring the Enchant Book!";
+ close;
+ }
+ set .@select,1;
+ break;
+ case 3:
+ mes "[Devil Enchant Master]";
+ if (Zeny < 100000) {
+ mes "Initializing will cost 100,000 zeny. It seems you do not have enough zeny...";
+ close;
+ }
+ mes "Initializing will cost 100,000 zeny and confirming whether the weapon is enchanted!";
+ next;
+ if (select("Let me think about it.:Initialize it now!") == 1) {
+ mes "[Devil Enchant Master]";
+ mes "Come back after you have confirmed!";
+ close;
+ }
+ set .@select,2;
+ break;
+ }
+ set .@part, EQI_HAND_R;
+
+ mes "[Devil Enchant Master]";
+ if (!getequipisequiped(.@part)) {
+ mes "Are you trying to remove the enchanted equipment?";
+ close;
+ }
+ setarray .@equip_card[0], getequipcardid(.@part,0), getequipcardid(.@part,1), getequipcardid(.@part,2), getequipcardid(.@part,3);
+ if (!getequipisequiped(.@part)) {
+ mes "It is dangerous to remove equipment during enchant process!";
+ close;
+ }
+ set .@equip_id, getequipid(.@part);
+ set .@item$, "|1292|1394|1491|1585|2015|13071|13115|16019|18112|21000|";
+ if (!compare(.@item$,"|"+.@equip_id+"|")) {
+ mes "I don't want to touch your equipment now!";
+ close;
+ }
+ set .@equip_refine, getequiprefinerycnt(.@part);
+
+ if (.@select == 1) {
+ if (!countitem(6484)) {
+ mes "Are you listening to me? I will only do for you if you bring the Enchant Book!";
+ close;
+ }
+ mes "Which type of effect do you want to enchant?";
+ next;
+ switch(select("Let me think about it.:Physical Series:Magical Series")) {
+ case 1:
+ mes "[Devil Enchant Master]";
+ mes "Come back again after you change your mind!";
+ close;
+ case 2:
+ set .@enc_type,1;
+ break;
+ case 3:
+ set .@enc_type,2;
+ break;
+ }
+ mes "[Devil Enchant Master]";
+ if (.@equip_card[3]) {
+ mes "This equipment has been enchanted! You need to initialize first before you want to enchant it again.";
+ close;
+ }
+ mes "The enchant process might fail, and ^ff0000it will reduce partial refine level^000000, but the slotted card and weapon will not be broken! Are you sure you want to continue?";
+ next;
+ if (select("Next time!:Start now!") == 1) {
+ mes "[Devil Enchant Master]";
+ mes "Come back again after you have decided!";
+ close;
+ }
+ if (.@equip_card[3]) {
+ mes "[Devil Enchant Master]";
+ mes "It seems there's a problem, let me take a look.";
+ close;
+ }
+
+ if (.@enc_type == 1) { // Physical Series
+ set .@i, rand(1,1300);
+ if (.@i < 51) set .@enchant,4734; //Agility5
+ else if (.@i < 76) set .@enchant,4735; //Agility6
+ else if (.@i < 88) set .@enchant,4736; //Agility7
+ else if (.@i < 93) set .@enchant,4737; //Agility8
+ else if (.@i < 95) set .@enchant,4738; //Agility9
+ else if (.@i < 96) set .@enchant,4739; //Agility10
+ else if (.@i < 146) set .@enchant,4724; //Dexterity5
+ else if (.@i < 171) set .@enchant,4725; //Dexterity6
+ else if (.@i < 183) set .@enchant,4726; //Dexterity7
+ else if (.@i < 188) set .@enchant,4727; //Dexterity8
+ else if (.@i < 190) set .@enchant,4728; //Dexterity9
+ else if (.@i < 191) set .@enchant,4729; //Dexterity10
+ else if (.@i < 291) set .@enchant,4704; //Strength5
+ else if (.@i < 341) set .@enchant,4705; //Strength6
+ else if (.@i < 366) set .@enchant,4706; //Strength7
+ else if (.@i < 378) set .@enchant,4707; //Strength8
+ else if (.@i < 383) set .@enchant,4708; //Strength9
+ else if (.@i < 384) set .@enchant,4709; //Strength10
+ else if (.@i < 434) set .@enchant,4754; //Luck5
+ else if (.@i < 459) set .@enchant,4755; //Luck6
+ else if (.@i < 471) set .@enchant,4756; //Luck7
+ else if (.@i < 476) set .@enchant,4757; //Luck8
+ else if (.@i < 478) set .@enchant,4758; //Luck9
+ else if (.@i < 479) set .@enchant,4759; //Luck10
+ else if (.@i < 679) set .@enchant,4744; //Vitality5
+ else if (.@i < 779) set .@enchant,4745; //Vitality6
+ else if (.@i < 829) set .@enchant,4746; //Vitality7
+ else if (.@i < 854) set .@enchant,4747; //Vitality8
+ else if (.@i < 866) set .@enchant,4748; //Vitality9
+ else if (.@i < 867) set .@enchant,4749; //Vitality10
+ else if (.@i < 967) set .@enchant,4808; //Fighting_Spirit4
+ else if (.@i < 992) set .@enchant,4820; //Fighting_Spirit5
+ else if (.@i < 1092) set .@enchant,4835; //Expert_Archer4
+ else if (.@i < 1117) set .@enchant,4836; //Expert_Archer5
+ else if (.@i < 1217) set .@enchant,4835; //Expert_Archer4
+ else if (.@i < 1242) set .@enchant,4836; //Expert_Archer5
+ else set .@enchant,0;
+ } else if (.@enc_type == 2) { // Magical Series
+ set .@i, rand(1,1200);
+ if (.@i < 51) set .@enchant,4714; //Inteligence5
+ else if (.@i < 76) set .@enchant,4715; //Inteligence6
+ else if (.@i < 88) set .@enchant,4716; //Inteligence7
+ else if (.@i < 93) set .@enchant,4717; //Inteligence8
+ else if (.@i < 95) set .@enchant,4718; //Inteligence9
+ else if (.@i < 96) set .@enchant,4719; //Inteligence10
+ else if (.@i < 146) set .@enchant,4724; //Dexterity5
+ else if (.@i < 171) set .@enchant,4725; //Dexterity6
+ else if (.@i < 183) set .@enchant,4726; //Dexterity7
+ else if (.@i < 188) set .@enchant,4727; //Dexterity8
+ else if (.@i < 190) set .@enchant,4728; //Dexterity9
+ else if (.@i < 191) set .@enchant,4729; //Dexterity10
+ else if (.@i < 291) set .@enchant,4734; //Agility5
+ else if (.@i < 341) set .@enchant,4735; //Agility6
+ else if (.@i < 366) set .@enchant,4736; //Agility7
+ else if (.@i < 378) set .@enchant,4737; //Agility8
+ else if (.@i < 383) set .@enchant,4738; //Agility9
+ else if (.@i < 384) set .@enchant,4739; //Agility10
+ else if (.@i < 484) set .@enchant,4754; //Luck5
+ else if (.@i < 534) set .@enchant,4755; //Luck6
+ else if (.@i < 559) set .@enchant,4756; //Luck7
+ else if (.@i < 571) set .@enchant,4757; //Luck8
+ else if (.@i < 576) set .@enchant,4758; //Luck9
+ else if (.@i < 577) set .@enchant,4759; //Luck10
+ else if (.@i < 777) set .@enchant,4744; //Vitality5
+ else if (.@i < 877) set .@enchant,4745; //Vitality6
+ else if (.@i < 927) set .@enchant,4746; //Vitality7
+ else if (.@i < 952) set .@enchant,4747; //Vitality8
+ else if (.@i < 964) set .@enchant,4748; //Vitality9
+ else if (.@i < 969) set .@enchant,4749; //Vitality10
+ else if (.@i < 1069) set .@enchant,4812; //Spell4
+ else if (.@i < 1094) set .@enchant,4826; //Spell5
+ else if (.@i < 1119) set .@enchant,4761; //Matk2
+ else if (.@i < 1124) set .@enchant,4806; //Matk3
+ else set .@enchant,0;
+ } else {
+ mes "[Devil Enchant Master]";
+ mes "Hmm! This item is having a problem, please check it again!";
+ close;
+ }
+ mes "[Devil Enchant Master]";
+ if (.@equip_card[3]) {
+ mes "This item has been enchanted!";
+ close;
+ }
+ if (!countitem(6484)) {
+ mes "Are you listening to me? I will only do for you if you bring the Enchant Book!";
+ close;
+ }
+ if (.@enchant == 0) {
+ specialeffect EF_SHIELDCHARGE;
+ mes "Oh! Unbelievable!! It failed!! Please come again!";
+ set .@lost_refine, rand(0,.@equip_refine);
+ set .@equip_refine, .@equip_refine - .@lost_refine;
+ } else {
+ specialeffect EF_REPAIRWEAPON;
+ mes "The slot ^9900004^000000 has been enchanted!";
+ }
+ delitem 6484,1; //Enchant_Book
+ delequip .@part;
+
+// GetNonSlotItemSock2 .@equip_refine .@equip_id .@equip_card[0] .@equip_card[1] .@equip_card[2] .@enchant
+ getitem2 .@equip_id,1,1,.@equip_refine,0,.@equip_card[0],.@equip_card[1],.@equip_card[2],.@enchant;
+
+ if (.@lost_refine) {
+ next;
+ mes "[Devil Enchant Master]";
+ mes "The failure has reduced the refine by "+.@lost_refine+" level"+((.@lost_refine == 1)?"":"s")+"! Don't be depressed!";
+ }
+ close;
+ } else if (.@select == 2) {
+ if (Zeny < 100000) {
+ mes "You need to bring some money to initialize!!";
+ close;
+ }
+ if (.@equip_card[3] < 4700) { // Armor Enchant System
+ mes "This item is not enchanted!";
+ close;
+ }
+ if (!getequipisequiped(.@part)) {
+ mes "Are you unequipping now?";
+ close;
+ }
+ specialeffect EF_REPAIRWEAPON;
+ mes "I initialized the enchant effects.";
+ Zeny -= 100000;
+ delequip .@part;
+
+// GetNonSlotItemSock2 .@equip_refine .@equip_id .@equip_card[0] .@equip_card[1] .@equip_card[2] 0
+ getitem2 .@equip_id,1,1,.@equip_refine,0,.@equip_card[0],.@equip_card[1],.@equip_card[2],0;
+
+ close;
+ } else {
+ mes "It seems you have chosen the wrong job??";
+ close;
+ }
+}
diff --git a/npc/re/merchants/flute.txt b/npc/re/merchants/flute.txt
index 8eb987e08..343308268 100644
--- a/npc/re/merchants/flute.txt
+++ b/npc/re/merchants/flute.txt
@@ -3,20 +3,20 @@
//===== By: ==================================================
//= Masao, Muad_Dib, Ziu
//===== Current Version: =====================================
-//= 1.2
-//===== Compatible With: =====================================
-//= Hercules
+//= 1.2a
//===== Description: =========================================
+//= [Official Conversion]
//= Sells Falcon Flute and Wolf Flute.
//===== Additional Comments: =================================
//= 1.0 First Version. [Masao]
//= 1.1 Added Baby Hunter and Baby Ranger check. bugreport:5728 [Masao]
//= 1.2 Added Wolf Flute trader, optimized. [Euphy]
+//= 1.2a Fixed some conditions. [Euphy]
//============================================================
- script Falcon Flute Trader::fflute -1,{
mes "[Falcon Flute Trader]";
- if (BaseJob == Job_Hunter || Class == Job_Ranger || Class == Job_Ranger_T || Class == Job_Baby_Ranger) {
+ if (BaseJob == Job_Hunter) {
mes "Do you need a Falcon?";
mes "With a magical Flute, you can call your Falcon from anywhere!";
next;
@@ -40,14 +40,13 @@
mes "[Falcon Flute Trader]";
mes "If you need a Falcon Flute I will sell them for 12,500 zeny. Or is that too expensive?";
next;
- if (BaseJob == Job_Hunter)
- set .@price,12500;
- else {
+ if (eaclass()&EAJL_THIRD) {
mes "[Falcon Flute Trader]";
mes "For Rangers, however, I have a special price of 10,000 zeny!";
set .@price,10000;
next;
- }
+ } else
+ set .@price,12500;
if(select("Don't buy one:Buy a Falcon Flute") == 1) {
mes "[Falcon Flute Trader]";
mes "That's too bad. If you need one, come back!";
@@ -64,8 +63,8 @@
mes "[Falcon Flute Trader]";
mes "Here, take this flute.";
mes "With it you can whistle for your Falcon from anywhere.";
- set Zeny, Zeny - .@price;
- getitem 12848,1; // Falcon Flute
+ Zeny -= .@price;
+ getitem 12848,1; //Falcon_Flute
next;
mes "[Falcon Flute Trader]";
mes "Just a reminder.";
@@ -76,7 +75,7 @@
mes "I'm sorry but you don't have enough money to buy a Falcon Flute, please come back when you have more money!";
close;
}
- if (Class == Job_Baby_Archer || Class == Job_Archer) {
+ if (BaseJob == Job_Archer) {
mes "Hello, young one!";
mes "Currently I can't help you,";
mes "but why don't you return to me when you've become a great Hunter and learned how to handle Falcons properly?";
@@ -85,10 +84,10 @@
mes "Isn't it a beautiful day today?";
close;
}
-hu_in01,386,306,3 duplicate(fflute) Falcon Flute Trader#fft 51
-pay_arche,91,134,3 duplicate(fflute) Falcon Flute Trader#fft2 51
+hu_in01,386,306,3 duplicate(fflute) Falcon Flute Trader#fft 1_M_BARD
+pay_arche,91,134,3 duplicate(fflute) Falcon Flute Trader#fft2 1_M_BARD
-tur_dun01,89,170,5 script Expert Flute Crafter 59,{
+tur_dun01,89,170,5 script Expert Flute Crafter 1_M_ORIENT01,{
if (Class == Job_Ranger || Class == Job_Ranger_T || Class == Job_Baby_Ranger) {
if (countitem(6124)) {
mes "[Expert Flute Crafter]";
@@ -116,7 +115,7 @@ tur_dun01,89,170,5 script Expert Flute Crafter 59,{
mes "Here's the new Wolf Flute.";
mes "Hope you are ready to use it.";
delitem 7150,1; //Bamboo_Cut
- set Zeny, Zeny-100000;
+ Zeny -= 100000;
getitem 6124,1; //Wolf's_Flute
close;
}
@@ -138,4 +137,4 @@ tur_dun01,89,170,5 script Expert Flute Crafter 59,{
mes "Eeehh? You are not a Ranger?";
mes "Then this flute is totally useless for you!";
close;
-} \ No newline at end of file
+}
diff --git a/npc/re/merchants/hd_refiner.txt b/npc/re/merchants/hd_refiner.txt
new file mode 100644
index 000000000..0e0f3e081
--- /dev/null
+++ b/npc/re/merchants/hd_refiner.txt
@@ -0,0 +1,306 @@
+//===== Hercules Script ======================================
+//= HD Refiners
+//===== By: ==================================================
+//= Euphy
+//===== Current Version: =====================================
+//= 1.0
+//===== Description: =========================================
+//= [Official Conversion]
+//= Refiners that use HD ores to refine equipment. Upon
+//= failure, the equipment is not destroyed; rather, its
+//= refine level decreases by 1. The success rate is identical
+//= to that for Enriched ores.
+//= - "Blacksmith Mighty Hammer" only refines from +7~9.
+//= - "Basta" only refines from +10 and up.
+//===== Additional Comments: =================================
+//= 1.0 First version. [Euphy]
+//============================================================
+
+// Blacksmith Mighty Hammer (+7~9)
+//============================================================
+- script ::MightyHammer -1,{
+ disable_items;
+ mes "[Blacksmith Mighty Hammer]";
+ mes "Unlike others, I am a blacksmith who refines a very limited number of items.";
+ mes "I refine only items that are ^CC0000+7 to +9^000000.";
+ next;
+ mes "[Blacksmith Mighty Hammer]";
+ mes "My specialty is that even if my refining fails, the refine level decreases by 1 without losing the gear. Isn't it great?";
+ next;
+ mes "[Blacksmith Mighty Hammer]";
+ mes "So lets kick this into overdrive, what d' ya say? What item do you want to refine?";
+ next;
+ setarray .@position$[1],"Head","Body","Left Hand","Right Hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3";
+ set .@menu$,"";
+ for(set .@i,1; .@i<=10; set .@i,.@i+1)
+ set .@menu$, .@menu$+((getequipisequiped(.@i))?getequipname(.@i):.@position$[.@i]+"-[Not equipped]")+":";
+ set .@part, select(.@menu$);
+ if (!getequipisequiped(.@part)) {
+ mes "[Blacksmith Mighty Hammer]";
+ switch(.@part) {
+ case 1:
+ mes "I'm a blacksmith, not a hairstylist.";
+ break;
+ case 2:
+ mes "With my hammer, I will make you a star of the sky.";
+ break;
+ case 3:
+ case 4:
+ mes "Making artificial hands is not my specialty.";
+ break;
+ case 5:
+ mes "Bring out the item so I can refine it!";
+ break;
+ case 6:
+ mes "Where is this foot odor coming from?";
+ break;
+ case 7:
+ case 8:
+ mes "Where is the accessory?";
+ break;
+ case 9:
+ mes "What do you want me to refine?";
+ break;
+ case 10:
+ mes "Huh? What do you want me to do?";
+ break;
+ }
+ close;
+ }
+ if (!getequipisenableref(.@part)) {
+ mes "[Blacksmith Mighty Hammer]";
+ mes "This item can't be refined.";
+ close;
+ }
+ if (getequiprefinerycnt(.@part) < 7 || getequiprefinerycnt(.@part) > 9) {
+ mes "[Blacksmith Mighty Hammer]";
+ mes "I only handle items with refine levels from +7 to +9.";
+ close;
+ }
+ switch(getequipweaponlv(.@part)) {
+ default:
+ case 0:
+ set .@price,20000;
+ set .@material,6241; //HD_Elunium
+ break;
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ set .@price,20000;
+ set .@material,6240; //HD_Oridecon
+ break;
+ }
+ mes "[Blacksmith Mighty Hammer]";
+ mes "In order to refine the gear you selected you need ^ff9999"+getitemname(.@material)+"^000000 and 20,000 zeny as a fee.";
+ mes "Do you have them ready?";
+ next;
+ if(select("Yes:No") == 2) {
+ mes "[Blacksmith Mighty Hammer]";
+ mes "I will wait until you are ready.";
+ close;
+ }
+ if (getequippercentrefinery(.@part) < 100) {
+ mes "[Blacksmith Mighty Hammer]";
+ mes "It looks like this item will likely fail to be refined.";
+ mes "Well, even if it fails, it only decreases by 1 refine level.";
+ mes "Would you like to continue refining?";
+ next;
+ if(select("Yes:No") == 2) {
+ mes "[Blacksmith Mighty Hammer]";
+ mes "Only those who overcome fear of failure will obtain a masterpiece.";
+ close;
+ }
+ }
+ if (countitem(.@material) == 0 || Zeny < .@price) {
+ mes "[Blacksmith Mighty Hammer]";
+ mes "Didn't you just say you had everything ready?";
+ close;
+ }
+ delitem .@material,1;
+ Zeny -= .@price;
+ mes "[Blacksmith Mighty Hammer]";
+ mes "Tac! Tac! Tac!";
+ if (getequippercentrefinery(.@part) > rand(100) || getequippercentrefinery(.@part) > rand(100)) {
+ successrefitem .@part;
+ next;
+ emotion e_no1;
+ mes "[Blacksmith Mighty Hammer]";
+ mes "The sound refreshes my mind everytime I hear it.";
+ mes "Here, have it. Refine succeeded flawlessly!";
+ close;
+ }
+ downrefitem .@part;
+ next;
+ emotion e_omg;
+ mes "[Blacksmith Mighty Hammer]";
+ mes "Oops!!";
+ next;
+ mes "[Blacksmith Mighty Hammer]";
+ mes "I am sure a person like you would never blame me for a decrease in refine level by 1. Hmm.";
+ close;
+}
+prt_in,59,54,3 duplicate(MightyHammer) Mighty Hammer#prt 4_M_DWARF
+morocc_in,65,30,3 duplicate(MightyHammer) Mighty Hammer#morocc 4_M_DWARF
+payon,148,176,3 duplicate(MightyHammer) Mighty Hammer#pay 4_M_DWARF
+alberta_in,16,56,3 duplicate(MightyHammer) Mighty Hammer#alb 4_M_DWARF
+yuno_in01,171,18,3 duplicate(MightyHammer) Mighty Hammer#yuno 4_M_DWARF
+ein_in01,22,82,3 duplicate(MightyHammer) Mighty Hammer#ein 4_M_DWARF
+lhz_in02,280,19,3 duplicate(MightyHammer) Mighty Hammer#lhz 4_M_DWARF
+
+// iRO NPC locations:
+// moc_para01,38,185,4 duplicate(MightyHammer) Mighty Hammer#ed 4_M_DWARF
+// payon,174,133,4 duplicate(MightyHammer) Mighty Hammer#im 4_M_DWARF
+
+// Basta (+10 and up)
+//============================================================
+- script ::Basta -1,{
+ disable_items;
+ mes "[Basta]";
+ mes "I'm the best Blacksmith in the whole world, Basta.";
+ mes "But I don't provide a normal refine service.";
+ mes "I only refine equipment ^CC0000over +10^000000.";
+ next;
+ mes "[Basta]";
+ mes "Which equipment do you want to refine?";
+ next;
+ setarray .@position$[1],"Head","Body","Left Hand","Right Hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3";
+ set .@menu$,"";
+ for(set .@i,1; .@i<=10; set .@i,.@i+1)
+ set .@menu$, .@menu$+((getequipisequiped(.@i))?getequipname(.@i):.@position$[.@i]+"-[Unequipped]")+":";
+ set .@part, select(.@menu$);
+ if (!getequipisequiped(.@part)) {
+ mes "[Basta]";
+ switch(.@part) {
+ case 1:
+ mes "Is your head an equipment?";
+ break;
+ case 2:
+ mes "What do you want me to do?";
+ break;
+ case 3:
+ case 4:
+ mes "Making artificial hands is not my specialty.";
+ break;
+ case 5:
+ mes "Do you even know what a robe is?";
+ break;
+ case 6:
+ mes "If you want to refine your feet, don't come to me, try running a marathon.";
+ break;
+ case 7:
+ case 8:
+ mes "Where is the accessory?";
+ break;
+ case 9:
+ mes "Well... I don't see any equipment worth refining.";
+ break;
+ case 10:
+ mes "I can't make you smart. Go see a school teacher for that.";
+ break;
+ }
+ close;
+ }
+ if (!getequipisenableref(.@part)) {
+ mes "[Basta]";
+ mes "Even I cannot refine this item. There's no way.";
+ close;
+ }
+ if (getequiprefinerycnt(.@part) < 10) {
+ mes "[Basta]";
+ mes "Haven't I told you? I only refine equipments that are +10 and above.";
+ close;
+ }
+ if (getequiprefinerycnt(.@part) == 20) {
+ mes "[Basta]";
+ mes "This weapon is perfect, no need to refine it anymore~";
+ close;
+ }
+ switch(getequipweaponlv(.@part)) {
+ default:
+ case 0:
+ set .@price,100000;
+ set .@material,6225; //HD_Carnium
+ set .@type$,"armor";
+ break;
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ set .@price,100000;
+ set .@material,6226; //HD_Bradium
+ set .@type$,"weapon";
+ break;
+ }
+ mes "[Basta]";
+ mes "Hmm... is this the one you want to refine?";
+ mes "To refine this equipment, I need 1 ^ff9999"+getitemname(.@material)+"^000000 and 100,000 zeny as a fee.";
+ mes "Do you really want to refine this?";
+ next;
+ if(select("Yes:No") == 2) {
+ mes "[Basta]";
+ mes "Okay. If that's what you want...";
+ close;
+ }
+ if (getequippercentrefinery(.@part) < 100) {
+ mes "[Basta]";
+ mes "This "+.@type$+" has already been refined pretty high.";
+ mes "If you try to refine it more, the refine level could decrease.";
+ next;
+ mes "[Basta]";
+ mes "I am different from the blacksmiths in others places.";
+ mes "It is impossible that the refine level will drop by, say, 3 or 4... that sounds scary.";
+ mes "Here it can only decrease by 1 level.";
+ next;
+ mes "[Basta]";
+ mes "Compared to other blacksmiths, the risk is smaller.";
+ mes "I've given all precautions. Do you want to try it?";
+ next;
+ if(select("Yes:No") == 2) {
+ mes "[Basta]";
+ mes "Well~";
+ mes "Not challenging at all could also be a kind of wisdom in life.";
+ close;
+ }
+ }
+ if (countitem(.@material) == 0 || Zeny < .@price) {
+ mes "[Basta]";
+ mes "Hmm... You didn't bring all the materials needed.";
+ mes "Come back when you have them all.";
+ close;
+ }
+ delitem .@material,1;
+ Zeny -= .@price;
+ mes "Pow! Pow! Pow! Pow!";
+ if (getequippercentrefinery(.@part) > rand(100) || getequippercentrefinery(.@part) > rand(100)) {
+ successrefitem .@part;
+ next;
+ emotion e_no1;
+ mes "[Basta]";
+ mes "Great! Nicely done!!";
+ mes "I really am the best blacksmith in the whole wide world!";
+ close;
+ }
+ downrefitem .@part;
+ next;
+ emotion (!rand(5))?e_cash:e_omg;
+ mes "[Basta]";
+ mes "Aaaaaaaaaaak!!!";
+ next;
+ mes "[Basta]";
+ mes "Damn it!";
+ mes "Refining failed and refine level has decreased!";
+ mes "Even the best blacksmith in the world doesn't guarantee 100% success!";
+ mes "Too bad.";
+ next;
+ mes "[Basta]";
+ mes "I'll do better next time! Don't worry!";
+ close;
+}
+prt_in,57,54,3 duplicate(Basta) Basta#prt 4_M_DWARF
+morocc_in,68,30,3 duplicate(Basta) Basta#morocc 4_M_DWARF
+payon,148,174,3 duplicate(Basta) Basta#payon 4_M_DWARF
+alberta_in,18,56,3 duplicate(Basta) Basta#alberta 4_M_DWARF
+yuno_in01,173,18,3 duplicate(Basta) Basta#yuno 4_M_DWARF
+ein_in01,24,82,3 duplicate(Basta) Basta#einbroch 4_M_DWARF
+lhz_in02,280,17,3 duplicate(Basta) Basta#lighthalzen 4_M_DWARF
diff --git a/npc/re/merchants/inn.txt b/npc/re/merchants/inn.txt
index 14e1a2eff..174569b02 100644
--- a/npc/re/merchants/inn.txt
+++ b/npc/re/merchants/inn.txt
@@ -4,8 +4,6 @@
//= c, L0ne_W0lf
//===== Current Version: =====================================
//= 1.1
-//===== Compatible With: =====================================
-//= Hercules
//===== Description: =========================================
//= Inn Npcs, Save and Heal
//===== Additional Comments: =================================
@@ -15,7 +13,7 @@
// Brasilis
//============================================================
-bra_in01,27,24,3 script Hotel Keeper#bra1 478,{
+bra_in01,27,24,3 script Hotel Keeper#bra1 4_F_BRZ_WOMAN,{
mes "[Hotel Keeper]";
mes "Welcome to the beautiful Brasilis Hotel.";
next;
@@ -40,7 +38,7 @@ bra_in01,27,24,3 script Hotel Keeper#bra1 478,{
mes "[Hotel Keeper]";
mes "I will show you a great room.";
close2;
- set zeny,zeny-5000;
+ Zeny -= 5000;
percentheal 100,100;
warp "bra_in01",144,69;
end;
diff --git a/npc/re/merchants/quivers.txt b/npc/re/merchants/quivers.txt
index 45e44401a..03730a04a 100644
--- a/npc/re/merchants/quivers.txt
+++ b/npc/re/merchants/quivers.txt
@@ -1,24 +1,23 @@
-//===== rAthena Script =======================================
+//===== Hercules Script ======================================
//= Arrow Quivers
//===== By: ==================================================
//= Muad_Dib (Prometheus Project); L0ne_W0lf
//===== Current Version: =====================================
//= 1.1
-//===== Compatible With: =====================================
-//= rAthena SVN
//===== Description: =========================================
+//= [Official Conversion]
//= Turns arrows into Arrow Quivers.
-// Breakdown of Subroutine "S_BuyQuiver"
-// arg(0): Type of Arrow to be packaged (item ID).
-// arg(1): How many of each 'getarg(0)' arrow per quiver.
-// arg(2): The cost of making a 'getarg(0)' quiver.
-// arg(3): The quiver given by the NPC (item ID).
+//= Breakdown of Subroutine "S_BuyQuiver"
+//= arg(0): Type of Arrow to be packaged (item ID).
+//= arg(1): How many of each 'getarg(0)' arrow per quiver.
+//= arg(2): The cost of making a 'getarg(0)' quiver.
+//= arg(3): The quiver given by the NPC (item ID).
//===== Additional Comments: =================================
//= 1.0 Added Mora NPC. [Euphy]
//= 1.1 Updated to match the official scripts. [Euphy]
//============================================================
-mora,106,117,3 script Quiver Maker#mora 516,{
+mora,106,117,3 script Quiver Maker#mora 4_M_RAFLE_GR,{
if (checkweight(1201,1) == 0) {
mes "[Quiver Maker]";
mes "You have too many things with you.";
@@ -114,7 +113,7 @@ S_BuyQuiver:
mes "There is ^3131FFsomething you need to know^000000 - try to remember it.";
mes "^FF0000You can't use quivers when your encumbrance is over 70%.^000000";
mes "You'd better keep that in mind, or you might be in trouble later.";
- set Zeny, Zeny-.@arrow_zeny01;
+ Zeny -= .@arrow_zeny01;
delitem getarg(0),.@arrows_used;
getitem getarg(3),.@quiver;
close;
diff --git a/npc/re/merchants/refine.txt b/npc/re/merchants/refine.txt
index 27a09fce7..db57a1d5d 100644
--- a/npc/re/merchants/refine.txt
+++ b/npc/re/merchants/refine.txt
@@ -3,28 +3,30 @@
//===== By: ==================================================
//= Hercules Dev Team
//===== Current Version: =====================================
-//= 1.0a
-//===== Compatible With: =====================================
-//= Hercules
+//= 1.3
//===== Description: =========================================
//= Renewal-specific refining NPCs and material merchants.
//===== Additional Comments: =================================
//= 1.0 Moved some scripts to Renewal file, optimized "Austry" NPC. [Euphy]
//= 1.0a Added 'disable_items' command. [Euphy]
+//= 1.1 Added Malangdo Refiner "Clink". [Euphy]
+//= 1.2 Added official success calculation, thanks to Helvetica.
+//= The safe/multiple refine feature is now functional. [Euphy]
+//= 1.3 Updated to match the latest official script. [Euphy]
//============================================================
// +11 and above Refiners
//============================================================
-prt_in,90,72,5 script Bestry#prt 826,{
- callfunc "refinenew","Bestry",0,0;
+prt_in,90,72,5 script Vestri#prt 4_M_DWARF,{
+ callfunc "refinenew","Vestri",0;
end;
}
-morocc_in,64,41,5 script Bestry#moc 826,{
- callfunc "refinenew","Bestry",0,0;
+morocc_in,64,41,5 script Vestri#moc 4_M_DWARF,{
+ callfunc "refinenew","Vestri",0;
end;
}
-payon_in01,18,132,3 script Bestry#pay 826,{
- callfunc "refinenew","Bestry",0,0;
+payon_in01,18,132,3 script Vestri#pay 4_M_DWARF,{
+ callfunc "refinenew","Vestri",0;
end;
}
@@ -36,32 +38,38 @@ payon_in01,18,132,3 script Bestry#pay 826,{
//= If you enable this function, be sure to edit the value of
//= .@safe to the max safe refine in refine_db.txt as well.
//=
-//= The official script uses a command which seems to generate a
-//= random result upon refining: success, downgrade, or failure.
-//= To enable that feature, set the third argument to '1' in the
-//= function call. Otherwise, the chance in refine_db.txt is used.
+//= On official servers, if an item is unsuccessfully refined
+//= it will break at a 20% rate and downgrade at an 80% rate.
//============================================================
function script refinenew {
disable_items;
mes "["+ getarg(0) +"]";
- mes "I am the best Blacksmith ever!";
- mes "I don't work with normal, boring items.";
- mes "But only with items that are level 10 or higher!";
+ mes "I am the best Armsmith ever!";
+ mes "I don't refine normal, boring items.";
+ mes "I only refine items that are Level 10 or higher.";
next;
mes "["+ getarg(0) +"]";
- mes "Anyway, you may use my services if your item is lv 10 or higher.";
- mes "What do you want to have refined?";
+ mes "Anyway, you may use my services if your item is Level 10 or higher.";
+ mes "What do you want me to refine?";
next;
setarray .@position$[1],"Head","Body","Left hand","Right hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3";
set .@menu$,"";
for(set .@i,1; .@i<=10; set .@i,.@i+1) {
- if(getequipisequiped(.@i))
+ if (getequipisequiped(.@i)) {
set .@menu$, .@menu$ + .@position$[.@i] + "-" + "[" + getequipname(.@i) + "]";
+ set .@equipped,1;
+ }
set .@menu$, .@menu$ + ":";
}
- set .@part,select(.@menu$);
- if(!getequipisequiped(.@part)) {
+ if (.@equipped == 0) {
+ mes "[" + getarg(0) + "]";
+ mes "I don't think I can refine any items you have...";
+ close;
+ }
+ set .@part, select(.@menu$);
+
+ if (!getequipisequiped(.@part)) { //custom check
mes "[" + getarg(0) + "]";
mes "You're not wearing";
mes "anything there that";
@@ -69,30 +77,18 @@ function script refinenew {
emotion e_an;
close;
}
- //Check if the item is refinable...
- if(!getequipisenableref(.@part)) {
+ if (!getequipisenableref(.@part)) {
mes "[" + getarg(0) + "]";
mes "I don't think I can";
mes "refine this item at all...";
close;
}
- //Check if the item is identified... (Don't know why this is in here... but kept it anyway)
- if(!getequipisidentify(.@part)) {
- mes "[" + getarg(0) + "]";
- mes "You can't refine this";
- mes "if you haven't appraised";
- mes "it first. Make sure your";
- mes "stuff is identified before";
- mes "I can refine it.";
- close;
- }
- //Check to see if the items is at least +10
- if(getequiprefinerycnt(.@part) < 10) {
+ if (getequiprefinerycnt(.@part) < 10) {
mes "["+ getarg(0) +"]";
- mes "I said I don't work with Equipment under lv. 10.";
+ mes "I said I don't work with items that are lower than Level 10.";
close;
}
- if(getequiprefinerycnt(.@part) >= 20) {
+ if (getequiprefinerycnt(.@part) >= 20) { //custom check
mes "["+ getarg(0) +"]";
mes "I can't refine this";
mes "any more. This is as";
@@ -102,76 +98,74 @@ function script refinenew {
set .@refineitemid, getequipid(.@part); // save id of the item
set .@refinerycnt, getequiprefinerycnt(.@part); //save refinery count
if ((getequipweaponlv(.@part) >= 1) && (getequipweaponlv(.@part) <= 4)) {
- set .@material,6224;
+ set .@type$,"weapon";
+ set .@material,6224; //Bradium
set .@price,100000;
- set .@safe,10;
+ switch(getequipweaponlv(.@part)) {
+ case 1: set .@safe,10; break;
+ case 2: set .@safe,10; break;
+ case 3: set .@safe,10; break;
+ case 4: set .@safe,10; break;
+ }
mes "["+ getarg(0) +"]";
mes "Hmm a weapon, is that ok?";
mes "If you want to refine this weapon,";
mes "I will need 1 ^003366Bradium^000000 and 100,000 zeny.";
- mes "Are you sure you want to continue?";
} else {
- set .@material,6223;
+ set .@type$,"armor";
+ set .@material,6223; //Carnium
set .@price,100000;
set .@safe,10;
mes "["+ getarg(0) +"]";
mes "Hmm an armor, is that ok?";
mes "If you want to refine this armor,";
mes "I will need 1 ^003366Carnium^000000 and 100,000 zeny.";
- mes "Are you sure you want to continue?";
}
+ mes "Are you sure you want to continue?";
next;
if(select("Yes:No") == 2){
mes "["+ getarg(0) +"]";
- mes "Well, no challenge is one way...";
- mes "No risk... that could be wise.";
+ mes "Hm... if you mind... never mind...";
close;
}
- if(getarg(1) != 1) {
- if ((getequipweaponlv(.@part) >= 1) && (getequipweaponlv(.@part) <= 4)) {
+ if (getarg(1) != 1) {
+ if (getequippercentrefinery(.@part) < 100) {
mes "["+ getarg(0) +"]";
- mes "This weapon already has been refined serveral times.";
- mes "It could be destroyed if you try more.";
- mes "It won't break 100%, but is has a small chance.";
+ mes "This "+.@type$+" already has been refined serveral times.";
+ mes "It could be destroyed if I try again.";
+ mes "It won't break for sure, but there is has a small chance.";
next;
mes "["+ getarg(0) +"]";
- mes "You could have the upgrade level of the weapon decreased,";
+ mes "You could be ^FF0000lowering the upgrade level^000000 of the "+.@type$+",";
mes "or if it breaks, you will lose ^FF0000any cards^000000 or special properties added to it.";
- } else {
- mes "["+ getarg(0) +"]";
- mes "This armor already has been refined serveral times.";
- mes "It could be destroyed if you try more.";
- mes "It won't break 100%, but is has a small chance.";
next;
mes "["+ getarg(0) +"]";
- mes "You could have the upgrade level of the armor decreased,";
- mes "or if it breaks, you will lose ^FF0000any cards^000000 or special properties added to it.";
- }
- next;
- mes "["+ getarg(0) +"]";
- mes "Do you want me to refine it?";
- mes "I think I gave you enough warnings.";
- next;
- if(select("Yes.:No.") == 2) {
- mes "["+ getarg(0) +"]";
- mes "Well, no challenge is one way..";
- mes "No risk.. that could be wise.";
- close;
+ mes "Do you still want me to refine it?";
+ mes "I think I have given you enough warning.";
+ next;
+ if(select("Yes.:No.") == 2) {
+ mes "["+ getarg(0) +"]";
+ mes "Well, no challenge is one way to go...";
+ mes "No risk... that could be wise.";
+ close;
+ }
}
- if(countitem(.@material) < 1 || Zeny < .@price) {
+ if (countitem(.@material) < 1 || Zeny < .@price) {
mes "["+ getarg(0) +"]";
- mes "Hm, it seems you don't have enough materials or money.";
- mes "Please check it out.";
+ mes "Hm. You don't seem to have enough money or "+getitemname(.@material)+".";
+ mes "Please come back when you have them.";
close;
}
- set Zeny,Zeny - .@price;
+ Zeny -= .@price;
delitem .@material,1;
- if(getequipisequiped(.@part) == 0) { // hacker has removed the item (not changed, why?)
+
+ //custom checks
+ if (getequipisequiped(.@part) == 0) { // hacker has removed the item (not changed, why?)
mes "[" + getarg(0) + "]";
mes "Look here... you don't have any items on...";
close;
}
- if(getequiprefinerycnt(.@part) != .@refinerycnt || getequipid(.@part) != .@refineitemid) { // hacker has changed the item
+ if (getequiprefinerycnt(.@part) != .@refinerycnt || getequipid(.@part) != .@refineitemid) { // hacker has changed the item
mes "[" + getarg(0) + "]";
emotion e_an;
mes "Wait a second...";
@@ -179,105 +173,52 @@ function script refinenew {
mes "You switched the item while I wasn't looking! Get out of here!";
close;
}
- if(getarg(2) == 1){
- set .@rand,rand(1,3);
- if (.@rand == 1) {
- mes "Clang! Clang! Clang! Clang!";
- successrefitem .@part;
- next;
- emotion e_no1;
- mes "["+ getarg(0) +"]";
- mes "Good! Succes!!!";
- mes "I am the best Blacksmith.";
- close;
- }
- if (.@rand == 2) {
+
+ if (getequippercentrefinery(.@part) > rand(100)) {
+ mes "Clang! Clang! Clang! Clang!";
+ successrefitem .@part;
+ next;
+ emotion e_no1;
+ mes "["+ getarg(0) +"]";
+ mes "Good! Succes!!!";
+ mes "I am the best Armsmith.";
+ close;
+ } else {
+ if (rand(100) < 80) {
mes "["+ getarg(0) +"]";
mes "Clang! Clang! Clang! Clang!";
- downrefitem .@part;
+ downrefitem .@part, 3; // Failed refine attempts decrease the item's refine level by 3
next;
emotion (!rand(5))?e_cash:e_omg;
mes "["+ getarg(0) +"]";
mes "Ahhh!!!";
next;
mes "["+ getarg(0) +"]";
- mes "Oh my!";
+ mes "Oh my god!";
mes "The upgrade level has dropped...";
- mes "There could've been made an mistake even though I am the best ever.";
- mes "It was out of my hands.";
+ } else {
+ mes "["+ getarg(0) +"]";
+ mes "Clang! Clang! Clang!";
+ failedrefitem .@part;
next;
+ emotion (!rand(5))?e_cash:e_omg;
mes "["+ getarg(0) +"]";
- mes "I will do a better job next time! Don't worry!";
- close;
+ mes "Hmmm!";
+ next;
+ mes "["+ getarg(0) +"]";
+ mes "Oh my! I've failed to refine stuff...";
+ mes "I didn't mean it!";
}
- mes "["+ getarg(0) +"]";
- mes "Clang! Clang! Clang!";
- failedrefitem .@part;
- next;
- emotion (!rand(5))?e_cash:e_omg;
- mes "["+ getarg(0) +"]";
- mes "Hmmm!";
- next;
- mes "["+ getarg(0) +"]";
- mes "Oh my! I've failed to refine stuff...";
- mes "I didn't mean it!";
- mes "There could've been made an mistake even though I am the best ever.";
- mes "It was out of my hands.";
- next;
- mes "["+ getarg(0) +"]";
- mes "I will do a better job next time! Don't worry!";
- close;
- }
- set .@rand,rand(100);
- if (getequippercentrefinery(.@part) > .@rand) {
- mes "Clang! Clang! Clang! Clang!";
- successrefitem .@part;
- next;
- emotion e_no1;
- mes "["+ getarg(0) +"]";
- mes "Good! Succes!!!";
- mes "I am the best Blacksmith.";
- close;
- }
- if (getequippercentrefinery(.@part) < .@rand) {
- mes "["+ getarg(0) +"]";
- mes "Clang! Clang! Clang! Clang!";
- downrefitem .@part;
- next;
- emotion (!rand(5))?e_cash:e_omg;
- mes "["+ getarg(0) +"]";
- mes "Ahhh!!!";
- next;
- mes "["+ getarg(0) +"]";
- mes "Oh my!";
- mes "The upgrade level has dropped...";
- mes "There could've been made an mistake even though I am the best ever.";
- mes "It was out of my hands.";
+ mes "I could have made a mistake even though I am the best Armsmith ever.";
+ mes "It just wasn't meant to be.";
next;
mes "["+ getarg(0) +"]";
mes "I will do a better job next time! Don't worry!";
close;
}
- mes "["+ getarg(0) +"]";
- mes "Clang! Clang! Clang!";
- failedrefitem .@part;
- next;
- emotion (!rand(5))?e_cash:e_omg;
- mes "["+ getarg(0) +"]";
- mes "Hmmm!";
- next;
- mes "["+ getarg(0) +"]";
- mes "Oh my! I've failed to refine stuff...";
- mes "I didn't mean it!";
- mes "There could've been made an mistake even though I am the best ever.";
- mes "It was out of my hands.";
- next;
- mes "["+ getarg(0) +"]";
- mes "I will do a better job next time! Don't worry!";
- close;
}
// New +11 and above Refining Functions ========================
- if(getequiprefinerycnt(.@part) < .@safe) {
+ if (getequiprefinerycnt(.@part) < .@safe) {
mes "[" + getarg(0) + "]";
mes "I can refine this to the safe limit or a desired number of times. It's your choice.";
next;
@@ -285,22 +226,21 @@ function script refinenew {
} else
set .@menu2,2;
switch(.@menu2){
- case 1:
+ case 1:
set .@refinecnt,.@safe - getequiprefinerycnt(.@part);
break;
case 2:
- next;
mes "[" + getarg(0) + "]";
mes "How many times would you like me to refine your item?";
next;
input .@refinecnt;
set .@refinecheck,.@refinecnt + getequiprefinerycnt(.@part);
- if (.@refinecnt < 1 || .@refinecheck > 10) {
+ if (.@refinecnt < 1 || .@refinecheck > 20) {
mes "[" + getarg(0) + "]";
mes "I can't refine this item that many times.";
close;
}
- if(.@refinecheck > .@safe) {
+ if (.@refinecheck > .@safe) {
set .@refinecheck,.@refinecheck - .@safe;
mes "[" + getarg(0) + "]";
mes "This will try to refine the equipment " + .@refinecheck + " times past the safe limit. Your equipment may be destroyed... is that ok?";
@@ -313,7 +253,6 @@ function script refinenew {
}
break;
case 3:
- next;
mes "[" + getarg(0) + "]";
mes "You said so... So be it.";
close;
@@ -322,17 +261,18 @@ function script refinenew {
mes "[" + getarg(0) + "]";
mes "That will cost you " + .@refinecnt + " " + getitemname(.@material) + " and " + .@fullprice + " Zeny. Is that ok?";
next;
- if(select("Yes","No...") == 2){
+ if(select("Yes:No...") == 2){
mes "[" + getarg(0) + "]";
mes "You said so... So be it.";
close;
}
- if(countitem(.@material) < .@refinecnt || Zeny < .@fullprice) {
+ if (countitem(.@material) < .@refinecnt || Zeny < .@fullprice) {
mes "[" + getarg(0) + "]";
- mes "Is that all you got? Unfortunately I can't work for you at a lower price. Try putting yourself in my shoes.";
+ mes "Hm. You don't seem to have enough money or "+getitemname(.@material)+".";
+ mes "Please come back when you have them.";
close;
}
- set Zeny,Zeny - .@fullprice;
+ Zeny -= .@fullprice;
delitem .@material,.@refinecnt;
while(.@refinecnt){
if (getequipisequiped(.@part) == 0) {
@@ -347,113 +287,64 @@ function script refinenew {
mes "Get out before I stun you with my Hammer!!";
close;
}
- if(getarg(2) == 1){
- set .@rand,rand(1,3);
- if (.@rand == 1) {
- mes "["+ getarg(0) +"]";
- mes "Clang! Clang! Clang! Clang!";
- successrefitem .@part;
- next;
- emotion e_no1;
- mes "["+ getarg(0) +"]";
- mes "Good! Succes!!!";
- mes "I am the best Blacksmith.";
- close;
- }
- if (.@rand == 2) {
+ if (getequippercentrefinery(.@part) > rand(100)) {
+ mes "Clang! Clang! Clang! Clang!";
+ successrefitem .@part;
+ set .@refinecnt,.@refinecnt - 1;
+ next;
+ } else {
+ if (rand(100) < 80) {
mes "["+ getarg(0) +"]";
mes "Clang! Clang! Clang! Clang!";
- downrefitem .@part;
+ downrefitem .@part, 3; // Failed refine attempts decrease the item's refine level by 3
next;
emotion (!rand(5))?e_cash:e_omg;
mes "["+ getarg(0) +"]";
mes "Ahhh!!!";
next;
mes "["+ getarg(0) +"]";
- mes "Oh my!";
+ mes "Oh my god!";
mes "The upgrade level has dropped...";
- mes "There could've been made an mistake even though I am the best ever.";
- mes "It was out of my hands.";
+ } else {
+ mes "["+ getarg(0) +"]";
+ mes "Clang! Clang! Clang!";
+ failedrefitem .@part;
next;
+ emotion (!rand(5))?e_cash:e_omg;
mes "["+ getarg(0) +"]";
- mes "I will do a better job next time! Don't worry!";
- close;
+ mes "Hmmm!";
+ next;
+ mes "["+ getarg(0) +"]";
+ mes "Oh my! I've failed to refine stuff...";
+ mes "I didn't mean it!";
}
- mes "["+ getarg(0) +"]";
- mes "Clang! Clang! Clang!";
- failedrefitem .@part;
- next;
- emotion (!rand(5))?e_cash:e_omg;
- mes "["+ getarg(0) +"]";
- mes "Hmmm!";
- next;
- mes "["+ getarg(0) +"]";
- mes "Oh my! I've failed to refine stuff...";
- mes "I didn't mean it!";
- mes "There could've been made an mistake even though I am the best ever.";
- mes "It was out of my hands.";
- next;
- mes "["+ getarg(0) +"]";
- mes "I will do a better job next time! Don't worry!";
- close;
- }
- set .@rand,rand(100);
- if (getequippercentrefinery(.@part) > .@rand) {
- mes "Clang! Clang! Clang! Clang!";
- successrefitem .@part;
- next;
- emotion e_no1;
- mes "["+ getarg(0) +"]";
- mes "Good! Succes!!!";
- mes "I am the best Blacksmith.";
- close;
- }
- if (getequippercentrefinery(.@part) < .@rand) {
- mes "["+ getarg(0) +"]";
- mes "Clang! Clang! Clang! Clang!";
- downrefitem .@part;
- next;
- emotion (!rand(5))?e_cash:e_omg;
- mes "["+ getarg(0) +"]";
- mes "Ahhh!!!";
- next;
- mes "["+ getarg(0) +"]";
- mes "Oh my!";
- mes "The upgrade level has dropped...";
- mes "There could've been made an mistake even though I am the best ever.";
- mes "It was out of my hands.";
+ mes "I could have made a mistake even though I am the best Armsmith ever.";
+ mes "It just wasn't meant to be.";
next;
mes "["+ getarg(0) +"]";
mes "I will do a better job next time! Don't worry!";
close;
}
- mes "["+ getarg(0) +"]";
- mes "Clang! Clang! Clang!";
- failedrefitem .@part;
- next;
- emotion (!rand(5))?e_cash:e_omg;
- mes "["+ getarg(0) +"]";
- mes "Hmmm!";
- next;
- mes "["+ getarg(0) +"]";
- mes "Oh my! I've failed to refine stuff...";
- mes "I didn't mean it!";
- mes "There could've been made an mistake even though I am the best ever.";
- mes "It was out of my hands.";
- next;
- mes "["+ getarg(0) +"]";
- mes "I will do a better job next time! Don't worry!";
- close;
}
- mes "[" + getarg(0) + "]";
- mes "All finished... Come again soon.";
+ emotion e_no1;
+ mes "["+ getarg(0) +"]";
+ mes "Good! Succes!!!";
+ mes "I am the best Blacksmith.";
close;
}
// Ori/Elu to Carnium/Bradium Refiners
//============================================================
-- script Austry#ref -1,{
- mes "[Austry]";
+- script Austri#ref -1,{
+ if (checkweight(1201,1) == 0) {
+ mes "- Wait a minute !! -";
+ mes "- Currently you're carrying -";
+ mes "- too many items with you. -";
+ mes "- Please try again -";
+ mes "- after you lose some weight. -";
+ close;
+ }
+ mes "[Austri]";
mes "If you bring me 3";
mes "Oridecon or Elunium";
mes "I can exchange them for";
@@ -471,31 +362,196 @@ function script refinenew {
setarray .@i[0],6090,1,6223; //Purified_Bradium -> Carnium
break;
case 4:
- mes "[Austry]";
+ mes "[Austri]";
mes "Hmm...";
close;
}
if (countitem(.@i[0]) >= .@i[1] && Zeny >= 50000) {
delitem .@i[0],.@i[1];
- set Zeny, Zeny - 50000;
+ Zeny -= 50000;
getitem .@i[2],1;
- mes "[Austry]";
+ mes "[Austri]";
if (.@i[0] == 6090) {
- mes "Refining with Purified Bradium";
- mes "is a little expensive. I can";
- mes "trade it for some Carnium.";
+ mes "Refining with Refined Bradium";
+ mes "can be a little expensive.";
+ mes "I can exchange it for some Carnium.";
} else
- mes "Ok! Here is your "+getitemname(.@i[2])+".";
+ mes "Ok! Here's your "+getitemname(.@i[2])+".";
mes "Take it and use it well.";
close;
}
- mes "[Austry]";
+ mes "[Austri]";
mes "You better not be trying";
mes "to cheat me because you";
- mes "don't have enough zeny";
+ mes "don't have enough money";
mes "or "+getitemname(.@i[0])+".";
close;
}
-prt_in,85,71,5 duplicate(Austry#ref) Austry#prt 826
-payon_in01,14,125,5 duplicate(Austry#ref) Austry#pay 826
-morocc_in,60,38,5 duplicate(Austry#ref) Austry#moc 826
+prt_in,85,71,5 duplicate(Austri#ref) Austri#prt 4_M_DWARF
+payon_in01,14,125,5 duplicate(Austri#ref) Austri#pay 4_M_DWARF
+morocc_in,60,38,5 duplicate(Austri#ref) Austri#moc 4_M_DWARF
+
+// Malangdo Refiner
+//============================================================
+malangdo,224,172,6 script Clink#mal_normal 4_CAT_SAILOR1,{
+ disable_items;
+ mes "[Clink]";
+ mes "My cool dad Holink said I have the world's greatest refine hammer!!";
+ mes "Meow Meow~";
+ mes "Who do you think I am?";
+ mes "Yes!!! You!! You want to refine?";
+ next;
+ setarray .@position$[1],"Head","Body","Left Hand","Right Hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3";
+ set .@menu$,"";
+ for(set .@i,1; .@i<=10; set .@i,.@i+1)
+ set .@menu$, .@menu$+((getequipisequiped(.@i))?getequipname(.@i):.@position$[.@i]+"-[Empty]")+":";
+ set .@part, select(.@menu$);
+ if (!getequipisequiped(.@part)) {
+ mes "[Clink]";
+ switch(.@part) {
+ case 1:
+ mes "Dad said. There's no cure for stupidity...";
+ break;
+ case 2:
+ mes "There's nothing to see here!!";
+ break;
+ case 3:
+ mes "What an arrogant left hand this is!";
+ break;
+ case 4:
+ mes "What an arrogant right hand this is!";
+ break;
+ case 5:
+ mes "Get that dirty thing off my face!!";
+ break;
+ case 6:
+ mes "Kyaong~! Do not provoke me.";
+ break;
+ case 7:
+ case 8:
+ mes "Where is the accessory?";
+ break;
+ case 9:
+ case 10:
+ mes "Are you talking about the other head part?";
+ break;
+ }
+ close;
+ }
+ if (!getequipisenableref(.@part)) {
+ mes "[Clink]";
+ mes "This can't be refined!!";
+ close;
+ }
+ if (getequiprefinerycnt(.@part) >= 10) {
+ mes "[Clink]";
+ mes "Perfect refining. Did I do this for you?";
+ close;
+ }
+ mes "[Clink]";
+ switch(getequipweaponlv(.@part)) {
+ default:
+ case 0: // Armor
+ set .@price,2000;
+ set .@material,985; //Elunium
+ set .@type$,"armor";
+ mes "Hmm, an armor refine? Someone like you?";
+ break;
+ case 1: // Level 1 Weapon
+ set .@price,50;
+ set .@material,1010; //Phracon
+ set .@type$,"weapon";
+ mes "A level 1 weapon?";
+ mes "Urr... Annoying... Okay, let's try...";
+ break;
+ case 2: // Level 2 Weapon
+ set .@price,200;
+ set .@material,1011; //Emveretarcon
+ set .@type$,"weapon";
+ mes "A level 2 weapon?";
+ break;
+ case 3: // Level 3 Weapon
+ set .@price,20000;
+ set .@material,984; //Oridecon
+ set .@type$,"weapon";
+ mes "Woot!! A level 3 weapon? Impressive~";
+ break;
+ case 4: // Level 4 Weapon
+ set .@price,50000;
+ set .@material,984; //Oridecon
+ set .@type$,"weapon";
+ mes "Wow!... A level 4 weapon~!!";
+ break;
+ }
+ mes "You need ^ff9999"+getitemname(.@material)+"^000000 and ^ff9999"+.@price+"^000000 Zeny. Do you have them?";
+ next;
+ if(select("Yes, I do!!:Forget about it!!") == 2) {
+ mes "[Clink]";
+ mes "I knew it!!";
+ mes "I knew you were not worth trying my magical refining hammer for.";
+ close;
+ }
+ if (getequippercentrefinery(.@part) < 100) {
+ mes "[Clink]";
+ mes "Wow!!";
+ mes "This "+.@type$+" has been refined quite a bit, huh?";
+ mes "You do know that this might break, right?";
+ next;
+ mes "[Clink]";
+ mes "If you break the "+.@type$+", you can never use it again.";
+ mes "Cards and enchant effects...";
+ mes "the ^ff0000whole thing will disappear^000000.";
+ mes "You still up for this~?";
+ next;
+ if(select("Yes, I am!!:Forget about it!!") == 2) {
+ mes "[Clink]";
+ mes "I knew it!!";
+ mes "You can't even take this big step. Don't think about refining...";
+ close;
+ }
+ }
+ if (countitem(.@material) == 0 || Zeny < .@price) {
+ mes "[Clink]";
+ mes "Hey you!! Didn't I tell you";
+ mes "that you need ^ff9999"+getitemname(.@material)+"^000000 and ^ff9999"+.@price+"^000000 Zeny??!!";
+ close;
+ }
+ delitem .@material,1;
+ Zeny -= .@price;
+ if (getequippercentrefinery(.@part) <= rand(100)) {
+ failedrefitem .@part;
+ mes "[Clink]";
+ mes "Cry Hammer!! Cry!!!";
+ next;
+ switch(rand(1,5)) {
+ case 1: emotion e_sob; break;
+ case 2: emotion e_swt2; break;
+ case 3: emotion e_wah; break;
+ case 4: emotion e_hmm; break;
+ case 5: emotion e_lv2; break;
+ }
+ mes "[Clink]";
+ mes "Huh?! I failed?!";
+ next;
+ mes "[Clink]";
+ mes "Arrgg~ It's all~ Broken...? What a pity~";
+ next;
+ mes "[Clink]";
+ mes "Hey...!! Get me another one.";
+ mes "This is not possible.";
+ mes "How can my hammer fail from refining?";
+ close;
+ }
+ successrefitem .@part;
+ mes "[Clink]";
+ mes "Cry Hammer!! Cry!!!";
+ next;
+ emotion e_kis;
+ mes "[Clink]";
+ mes "Ok!! Perfect!!";
+ mes "There's nothing I can't refine";
+ mes "with this special hammer.";
+ mes "You can praise me!!";
+ mes "What a day!!";
+ close;
+}
diff --git a/npc/re/merchants/renters.txt b/npc/re/merchants/renters.txt
index e4f1a02c7..59894c678 100644
--- a/npc/re/merchants/renters.txt
+++ b/npc/re/merchants/renters.txt
@@ -1,18 +1,20 @@
//===== Hercules Script ======================================
//= Renters
-//===== By: ==================================================
+//===== By: ==================================================
//= Hercules Dev Team
-//===== Current Version: =====================================
+//===== Current Version: =====================================
//= 2.1
-//===== Description: =========================================
+//===== Description: =========================================
+//= [Official Conversion]
//= Renewal-specific breeder NPCs.
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 2.1 Moved some renters to a separate renewal file. [Daegaladh]
-//============================================================
+//= 2.2 Updated to match the official scripts. [Euphy]
+//============================================================
-// Dragon Breeder on the Rune Knight job change map, couldn't find NPC on iRO.
+// Dragon Breeder
//============================================================
-job3_rune01,88,62,5 script Dragon Breeder 105,{
+job3_rune01,88,62,5 script Dragon Breeder 8W_SOLDIER,{
mes "[Dragon Breeder]";
if (Class == Job_Rune_Knight || Class == Job_Rune_Knight_T || Class == Job_Baby_Rune) {
mes "Welcome. Would you like to rent a Dragon?";
@@ -50,7 +52,7 @@ job3_rune01,88,62,5 script Dragon Breeder 105,{
// Dragon/Gryphon Master
//============================================================
-prontera,130,213,5 script Riding Creature Master 105,{
+prontera,130,213,5 script Riding Creature Master 8W_SOLDIER,{
mes "[Riding Creature Master]";
if (Class == Job_Rune_Knight || Class == Job_Rune_Knight_T || Class == Job_Baby_Rune) {
mes "Welcome. Would you like to rent a Dragon?";
@@ -115,7 +117,7 @@ prontera,130,213,5 script Riding Creature Master 105,{
// Peco removing NPC
//============================================================
-prontera,125,208,5 script Peco Peco Remover 105,{
+prontera,125,208,5 script Peco Peco Remover 8W_SOLDIER,{
mes "[Soldier]";
mes "If you're unable to dismount from a Peco Peco";
mes "for some unknown reason,";
@@ -146,21 +148,35 @@ prontera,125,208,5 script Peco Peco Remover 105,{
// Magic Gear Renter
//============================================================
-prontera,163,178,3 script Magic Gear Master 105,{
+- script ::mgm -1,{
mes "[Magic Gear Master]";
if (Class == Job_Mechanic || Class == Job_Mechanic_T || Class == Job_Baby_Mechanic) {
- mes "Welcome. Would you like to rent a Magic Gear?";
+ mes "Welcome, Mechanic.";
+ mes "Would you like to rent a Pushcart or";
+ mes "ride a Magic Gear?";
next;
- switch(select("Yes:No")) {
+ switch(select("Rent a Pushcart:Ride a Magic Gear:Cancel")) {
case 1:
- if (!getskilllv("NC_MADOLICENCE")) {
+ if (checkcart()) {
+ mes "[Magic Gear Master]";
+ mes "I'm sorry, but you already";
+ mes "have a Pushcart.";
+ close;
+ }
+ setcart;
+ mes "[Magic Gear Master]";
+ mes "There you go!";
+ close;
+ case 2:
+ if (checkmadogear()) {
mes "[Magic Gear Master]";
- mes "Please learn how to use a Magic Gear first.";
+ mes "I'm sorry, but you're already";
+ mes "riding a Magic Gear.";
close;
}
- else if (checkmadogear()) {
+ else if (!getskilllv("NC_MADOLICENCE")) {
mes "[Magic Gear Master]";
- mes "You already have a Magic Gear.";
+ mes "Please learn the skill to get the Magic Gear License first.";
close;
}
else if(ismounting()) {
@@ -169,10 +185,10 @@ prontera,163,178,3 script Magic Gear Master 105,{
close;
}
setmadogear;
- close;
- case 2:
mes "[Magic Gear Master]";
- mes "I see. Then have a great day.";
+ mes "Have fun, and please come again!";
+ close;
+ case 3:
close;
}
}
@@ -180,3 +196,13 @@ prontera,163,178,3 script Magic Gear Master 105,{
mes "Magic Gears are only available for Mechanics.";
close;
}
+prontera,163,178,3 duplicate(mgm) Magic Gear Master#prt 8W_SOLDIER
+geffen,103,55,5 duplicate(mgm) Magic Gear Master#gef 8W_SOLDIER
+payon,166,106,5 duplicate(mgm) Magic Gear Master#pay 8W_SOLDIER
+aldebaran,133,112,5 duplicate(mgm) Magic Gear Master#alde 8W_SOLDIER
+yuno,167,187,3 duplicate(mgm) Magic Gear Master#yuno 8W_SOLDIER
+rachel,106,134,5 duplicate(mgm) Magic Gear Master#ra 8W_SOLDIER
+dicastes01,187,207,3 duplicate(mgm) Magic Gear Master#dic 8W_SOLDIER
+manuk,273,212,5 duplicate(mgm) Magic Gear Master#man 8W_SOLDIER
+splendide,180,174,5 duplicate(mgm) Magic Gear Master#spl 8W_SOLDIER
+mid_camp,242,243,3 duplicate(mgm) Magic Gear Master#mid 8W_SOLDIER
diff --git a/npc/re/merchants/shops.txt b/npc/re/merchants/shops.txt
index b27e5cc1d..dcd445361 100644
--- a/npc/re/merchants/shops.txt
+++ b/npc/re/merchants/shops.txt
@@ -1,111 +1,122 @@
//===== Hercules Script ======================================
//= Shops
-//===== By: ==================================================
+//===== By: ==================================================
//= Hercules Dev Team
-//===== Current Version: =====================================
-//= 1.5
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Current Version: =====================================
+//= 1.7
+//===== Description: =========================================
//= Renewal-specific town shop NPCs.
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 Moved some merchants to a separate renewal file. [Kenpachi]
//= 1.1 Added Dicastes merchants. [Joseph]
//= 1.2 Moved more shops to Renewal file. [Euphy]
//= 1.3 Added Malangdo tool dealer. [Euphy]
//= 1.4 Moved Izlude merchants. [Streusel]
//= 1.5 Added Dewata merchants. [Lemongrass]
-//= 1.6 Added Mora and Porta Malaya merchants. [Euphy]
-//============================================================
+//= 1.6 Added Mora and Port Malaya merchants.
+//= 1.7 Added Izlude duplicates. [Euphy]
+//============================================================
//=======================================================
// Comodo
//=======================================================
-comodo,106,213,5 shop Tropic Fruit Dealer 724,6258:-1
-comodo,196,162,3 shop Harive#candy 479,11513:-1,6144:-1
+comodo,106,213,5 shop Tropic Fruit Dealer 4_F_07,6258:-1
+comodo,196,162,3 shop Harive#candy 4_M_MINSTREL,11513:-1,6144:-1
//=======================================================
// Dewata
//=======================================================
-dewata,218,164,4 shop Weapon Dealer 536,1207:-1,1216:-1,1107:-1,1122:-1,1116:-1,1154:-1,1407:-1,1457:-1,1354:-1,1519:-1
-dewata,182,164,6 shop Tool Dealer 536,611:-1,1750:-1,501:-1,502:-1,503:-1,504:-1,645:-1,656:-1,601:-1,602:-1,1065:-1,2239:-1,713:-1
-dewata,145,267,6 shop Fruit Gardener 535,512:-1,513:-1,515:-1,516:-1,535:-1
-dewata,158,182,6 shop Armor Dealer 536,2211:-1,2401:-1,2403:-1,2501:-1,2503:-1,2101:-1,2103:-1,2305:-1,2321:-1,2332:-1,2328:-1,2627:-1
+dewata,218,164,4 shop Weapon Dealer 4_M_DEWMAN,1207:-1,1216:-1,1107:-1,1122:-1,1116:-1,1154:-1,1407:-1,1457:-1,1354:-1,1519:-1
+dewata,182,164,6 shop Tool Dealer 4_M_DEWMAN,611:-1,1750:-1,501:-1,502:-1,503:-1,504:-1,645:-1,656:-1,601:-1,602:-1,1065:-1,2239:-1,713:-1
+dewata,145,267,6 shop Fruit Gardener 4_M_DEWOLDWOMAN,512:-1,513:-1,515:-1,516:-1,535:-1
+dewata,158,182,6 shop Armor Dealer 4_M_DEWMAN,2211:-1,2401:-1,2403:-1,2501:-1,2503:-1,2101:-1,2103:-1,2305:-1,2321:-1,2332:-1,2328:-1,2627:-1
//=======================================================
// Einbroch
//=======================================================
-einbroch,122,250,4 shop Black Marketeer#ein 49,2139:-1,2800:-1,2801:-1,2802:-1,2803:-1,2804:-1,2805:-1,2806:-1,2807:-1,18000:-1,18001:-1,18002:-1,18003:-1,18004:-1,12392:-1,12393:-1,12394:-1,6145:-1,6146:-1,6147:-1,6186:-1,2808:-1
+einbroch,122,250,4 shop Black Marketeer#ein 1_M_03,2139:-1,2800:-1,2801:-1,2802:-1,2803:-1,2804:-1,2805:-1,2806:-1,2807:-1,18000:-1,18001:-1,18002:-1,18003:-1,18004:-1,12392:-1,12393:-1,12394:-1,6145:-1,6146:-1,6147:-1,6186:-1,2808:-1
//=======================================================
// El Dicastes
//=======================================================
-dic_in01,238,107,5 shop Peddler#dic 900,601:-1,602:-1,611:-1,610:-1
-dicastes01,207,200,6 shop Points Merchant#dic 66,6360:-1,6361:-1,6362:-1,6363:-1
+dic_in01,238,107,5 shop Peddler#dic 4_M_HUMERCHANT,601:-1,602:-1,611:-1,610:-1
+dicastes01,207,200,6 shop Points Merchant#dic 1_F_01,6360:-1,6361:-1,6362:-1,6363:-1
//=======================================================
// Izlude
//=======================================================
-izlude,160,186,0 shop Butcher#iz 54,517:-1
-izlude,124,165,4 shop Fruit Gardener#iz 53,512:-1,513:-1,515:-1,516:-1
-izlude,128,158,6 shop Vendor from Milk Ranch#i 90,519:-1
-izlude_in,72,98,3 shop Pet Groomer#iz 124,537:-1,643:-1,10013:-1,10014:-1,554:-1,6113:-1,6114:-1,6115:-1
-izlude_in,57,109,0 shop Tool Dealer#iz 47,611:-1,501:-1,502:-1,503:-1,504:-1,506:-1,645:-1,656:-1,601:-1,602:-1,1065:-1,1750:-1
-izlude_in,72,110,3 shop Trading Merchant#iz 900,13200:-1,13201:-1,13202:-1,13150:-1,13102:-1,13151:-1,13154:-1,13155:-1,13163:-1,13165:-1,13168:-1
+izlude,124,165,4 shop Fruit Gardener#iz 1_M_INNKEEPER,512:-1,513:-1,515:-1,516:-1
+izlude_a,124,165,4 duplicate(Fruit Gardener#iz) Fruit Gardener#iz_a 1_M_INNKEEPER
+izlude_b,124,165,4 duplicate(Fruit Gardener#iz) Fruit Gardener#iz_b 1_M_INNKEEPER
+izlude_c,124,165,4 duplicate(Fruit Gardener#iz) Fruit Gardener#iz_c 1_M_INNKEEPER
+izlude_d,124,165,4 duplicate(Fruit Gardener#iz) Fruit Gardener#iz_d 1_M_INNKEEPER
+izlude,160,186,0 shop Butcher#iz 1_M_JOBGUIDER,517:-1
+izlude_a,160,186,0 duplicate(Butcher#iz) Butcher#iz_a 1_M_JOBGUIDER
+izlude_b,160,186,0 duplicate(Butcher#iz) Butcher#iz_b 1_M_JOBGUIDER
+izlude_c,160,186,0 duplicate(Butcher#iz) Butcher#iz_c 1_M_JOBGUIDER
+izlude_d,160,186,0 duplicate(Butcher#iz) Butcher#iz_d 1_M_JOBGUIDER
+izlude,128,158,7 shop Vendor from Milk Ranch#i 4_F_01,519:-1
+izlude_a,128,158,7 duplicate(Vendor from Milk Ranch#i) Vendor from Milk Ranch#a 4_F_01
+izlude_b,128,158,7 duplicate(Vendor from Milk Ranch#i) Vendor from Milk Ranch#b 4_F_01
+izlude_c,128,158,7 duplicate(Vendor from Milk Ranch#i) Vendor from Milk Ranch#c 4_F_01
+izlude_d,128,158,7 duplicate(Vendor from Milk Ranch#i) Vendor from Milk Ranch#d 4_F_01
+izlude_in,72,98,4 shop Pet Groomer#iz 4_F_TELEPORTER,537:-1,643:-1,10013:-1,10014:-1,554:-1,6113:-1,6114:-1,6115:-1
+izlude_in,57,110,0 shop Tool Dealer#iz 1_M_01,611:-1,501:-1,502:-1,503:-1,504:-1,506:-1,645:-1,656:-1,601:-1,602:-1,1065:-1,1750:-1
+izlude_in,72,110,3 shop Trading Merchant#iz 4_M_HUMERCHANT,13200:-1,13201:-1,13202:-1,13150:-1,13102:-1,13151:-1,13154:-1,13155:-1,13163:-1,13165:-1,13168:-1
//=======================================================
// Juno
//=======================================================
-s_atelier,114,117,1 shop Part-Timer#sc_yuno 92,6123:-1,6120:-1
+s_atelier,114,117,1 shop Part-Timer#sc_yuno 4_F_03,6123:-1,6120:-1
//=======================================================
// Lighthalzen
//=======================================================
-lighthalzen,337,240,4 shop Trap Specialist#lhz 66,7940:-1,12341:-1
-lhz_in03,181,17,4 shop Black Marketeer#lhz 49,2139:-1,2800:-1,2801:-1,2802:-1,2803:-1,2804:-1,2805:-1,2806:-1,2807:-1,18000:-1,18001:-1,18002:-1,18003:-1,18004:-1,12392:-1,12393:-1,12394:-1,6145:-1,6146:-1,6147:-1,6186:-1,2808:-1
-s_atelier,15,65,5 shop Part-Timer#sc_lgt 89,6123:-1,6120:-1
+lighthalzen,337,240,4 shop Trap Specialist#lhz 1_F_01,7940:-1,12341:-1
+lhz_in03,181,17,4 shop Black Marketeer#lhz 1_M_03,2139:-1,2800:-1,2801:-1,2802:-1,2803:-1,2804:-1,2805:-1,2806:-1,2807:-1,18000:-1,18001:-1,18002:-1,18003:-1,18004:-1,12392:-1,12393:-1,12394:-1,6145:-1,6146:-1,6147:-1,6186:-1,2808:-1
+s_atelier,15,65,5 shop Part-Timer#sc_lgt 4_M_ORIENT02,6123:-1,6120:-1
//=======================================================
// Malangdo
//=======================================================
-malangdo,232,163,5 shop Tool Dealer Myo 560,611:-1,1750:-1,645:-1,656:-1,601:-1,602:-1,1065:-1,713:-1
+malangdo,232,163,5 shop Tool Dealer Myo 4_CAT_ADV2,611:-1,1750:-1,645:-1,656:-1,601:-1,602:-1,1065:-1,713:-1
//=======================================================
// Mora
//=======================================================
-mora,100,118,4 shop Tool Dealer#mora 517,11522:-1,11523:-1,11524:-1,602:-1,601:-1,611:-1,1773:-1,1774:-1,713:-1
-mora,138,110,4 shop Mora Chef 518,11519:-1
+mora,100,118,4 shop Tool Dealer#mora 4_M_RAFLE_OLD,11522:-1,11523:-1,11524:-1,602:-1,601:-1,611:-1,1773:-1,1774:-1
+mora,138,110,4 shop Mora Chef 4_F_RAFLE_PK,11519:-1
//=======================================================
// Mid Camp
//=======================================================
-mid_camp,129,284,4 shop Trap Specialist#mid 66,7940:-1,12341:-1
-mid_camp,184,263,4 shop Black Marketeer#mid 49,2139:-1,2800:-1,2801:-1,2802:-1,2803:-1,2804:-1,2805:-1,2806:-1,2807:-1,18000:-1,18001:-1,18002:-1,18003:-1,18004:-1,12392:-1,12393:-1,12394:-1,6145:-1,6146:-1,6147:-1,6186:-1,2808:-1
+mid_camp,129,284,4 shop Trap Specialist#mid 1_F_01,7940:-1,12341:-1
+mid_camp,184,263,4 shop Black Marketeer#mid 1_M_03,2139:-1,2800:-1,2801:-1,2802:-1,2803:-1,2804:-1,2805:-1,2806:-1,2807:-1,18000:-1,18001:-1,18002:-1,18003:-1,18004:-1,12392:-1,12393:-1,12394:-1,6145:-1,6146:-1,6147:-1,6186:-1,2808:-1
//=======================================================
// Payon
//=======================================================
-payon,123,109,4 shop Trap Specialist#pay 66,7940:-1,12341:-1
+payon,123,109,4 shop Trap Specialist#pay 1_F_01,7940:-1,12341:-1
//=======================================================
// Port Malaya
//=======================================================
-ma_in01,73,22,3 shop Weapon Dealer#ma 536,1207:-1,1216:-1,1107:-1,1122:-1,1116:-1,1154:-1,1407:-1,1457:-1,1354:-1,1519:-1
-ma_in01,22,23,3 shop Tool Dealer#ma 536,611:-1,1750:-1,501:-1,502:-1,503:-1,504:-1,645:-1,656:-1,601:-1,602:-1,1065:-1,2239:-1
-malaya,150,261,3 shop Fruit Gardener#ma 535,512:-1,513:-1,515:-1,516:-1,535:-1
-ma_in01,67,13,5 shop Armor Dealer#ma 536,2211:-1,2401:-1,2403:-1,2501:-1,2503:-1,2101:-1,2103:-1,2305:-1,2321:-1,2332:-1,2328:-1,2627:-1
+ma_in01,73,22,3 shop Weapon Dealer#ma 4_M_DEWMAN,1207:-1,1216:-1,1107:-1,1122:-1,1116:-1,1154:-1,1407:-1,1457:-1,1354:-1,1519:-1
+ma_in01,22,23,3 shop Tool Dealer#ma 4_M_DEWMAN,611:-1,1750:-1,501:-1,502:-1,503:-1,504:-1,645:-1,656:-1,601:-1,602:-1,1065:-1,2239:-1
+malaya,150,261,3 shop Fruit Gardener#ma 4_M_DEWOLDWOMAN,512:-1,513:-1,515:-1,516:-1,535:-1
+ma_in01,67,13,5 shop Armor Dealer#ma 4_M_DEWMAN,2211:-1,2401:-1,2403:-1,2501:-1,2503:-1,2101:-1,2103:-1,2305:-1,2321:-1,2332:-1,2328:-1,2627:-1
//=======================================================
// Prontera
//=======================================================
-//prontera,104,88,5 shop Stuff Gimme 880,616:-1
-prt_in,109,68,4 shop Trap Specialist#prt 66,7940:-1,12341:-1
-prt_in,175,137,4 shop Black Marketeer#prt 49,2139:-1,2800:-1,2801:-1,2802:-1,2803:-1,2804:-1,2805:-1,2806:-1,2807:-1,18000:-1,18001:-1,18002:-1,18003:-1,18004:-1,12392:-1,12393:-1,12394:-1,6145:-1,6146:-1,6147:-1,6186:-1,2808:-1
-s_atelier,17,110,1 shop Part-Timer#sc_prt 67,6123:-1,6120:-1
+//prontera,104,88,5 shop Stuff Gimme 4_M_MASKMAN,616:-1
+prt_in,109,68,4 shop Trap Specialist#prt 1_F_01,7940:-1,12341:-1
+prt_in,175,137,4 shop Black Marketeer#prt 1_M_03,2139:-1,2800:-1,2801:-1,2802:-1,2803:-1,2804:-1,2805:-1,2806:-1,2807:-1,18000:-1,18001:-1,18002:-1,18003:-1,18004:-1,12392:-1,12393:-1,12394:-1,6145:-1,6146:-1,6147:-1,6186:-1,2808:-1
+s_atelier,17,110,1 shop Part-Timer#sc_prt 1_F_02,6123:-1,6120:-1
//=======================================================
// Rachel
//=======================================================
-ra_in01,263,281,4 shop Trap Specialist#ra 66,7940:-1,12341:-1
-ra_in01,257,266,4 shop Black Marketeer#ra 49,2139:-1,2800:-1,2801:-1,2802:-1,2803:-1,2804:-1,2805:-1,2806:-1,2807:-1,18000:-1,18001:-1,18002:-1,18003:-1,18004:-1,12392:-1,12393:-1,12394:-1,6145:-1,6146:-1,6147:-1,6186:-1,2808:-1
-s_atelier,137,60,3 shop Part-Timer#sc_ra 70,6123:-1,6120:-1
+ra_in01,263,281,4 shop Trap Specialist#ra 1_F_01,7940:-1,12341:-1
+ra_in01,257,266,4 shop Black Marketeer#ra 1_M_03,2139:-1,2800:-1,2801:-1,2802:-1,2803:-1,2804:-1,2805:-1,2806:-1,2807:-1,18000:-1,18001:-1,18002:-1,18003:-1,18004:-1,12392:-1,12393:-1,12394:-1,6145:-1,6146:-1,6147:-1,6186:-1,2808:-1
+s_atelier,137,60,3 shop Part-Timer#sc_ra 1_F_GYPSY,6123:-1,6120:-1
diff --git a/npc/re/merchants/ticket_refiner.txt b/npc/re/merchants/ticket_refiner.txt
new file mode 100644
index 000000000..d5d4dd59f
--- /dev/null
+++ b/npc/re/merchants/ticket_refiner.txt
@@ -0,0 +1,160 @@
+//===== Hercules Script ======================================
+//= Ticket Refiner
+//===== By: ==================================================
+//= Euphy
+//===== Current Version: =====================================
+//= 1.0
+//===== Description: =========================================
+//= [Official Conversion]
+//= Refiner that uses +5~9/+11 refine tickets to refine
+//= equipment with no chance of failure.
+//= NOTE: This NPC is currently disabled on official servers.
+//===== Additional Comments: =================================
+//= 1.0 First version. [Euphy]
+//============================================================
+
+prontera,184,177,6 script Refine Master 4_M_REPAIR,{
+ disable_items;
+ if (countitem(6238) || countitem(6228) || countitem(6229) || countitem(6230) || countitem(6231) || countitem(6456))
+ set .@bWeaponUp,1;
+ if (countitem(6239) || countitem(6232) || countitem(6233) || countitem(6234) || countitem(6235) || countitem(6457))
+ set .@bArmorUp,1;
+ if (!.@bWeaponUp && !.@bArmorUp) {
+ mes "[Refine Master]";
+ mes "Hello!";
+ mes "What's up?";
+ mes "I'm a specialist";
+ mes "for refining items,";
+ mes "but I don't work anymore.";
+ next;
+ switch(select("I'll go on my way.:Hmm... this makes me curious.")) {
+ case 1:
+ mes "[Refine Master]";
+ mes "Take care, adventurer.";
+ close;
+ case 2:
+ mes "[Refine Master]";
+ mes "Actully, I sometimes provide refine services for adventurers with a ^006400Refine Ticket^000000...";
+ mes "Bye bye~!";
+ close;
+ }
+ }
+ emotion e_gasp;
+ mes "[Refine Master]";
+ mes "Greetings!";
+ mes "I can refine an item up to the ^006400same level as your ticket^000000.";
+ mes "You don't have to worry! There's no chance of breaking your item.";
+ next;
+ if(select("I'll come back later.:Refine item with ticket.") == 1) {
+ mes "[Refine Master]";
+ mes "Okay.";
+ mes "You can come again later.";
+ close;
+ }
+ mes "[Refine Master]";
+ mes "Which equipment would you like to refine?";
+ next;
+ setarray .@position$[1],"Head upper","Armor","Left hand","Right hand","Robe","Shoes","Accessory 1","Accessory 2","Head middle","Head lower";
+ set .@menu$,"";
+ for(set .@i,1; .@i<=10; set .@i,.@i+1)
+ set .@menu$, .@menu$+((getequipisequiped(.@i))?getequipname(.@i):.@position$[.@i]+"- [Empty]")+":";
+ set .@part, select(.@menu$);
+ if (!getequipisequiped(.@part)) {
+ mes "[Refine Master]";
+ mes "You have to equip the item you want to refine.";
+ close;
+ }
+ if (!getequipisenableref(.@part)) {
+ emotion e_otl;
+ mes "[Refine Master]";
+ mes "Oh, I'm sorry.";
+ mes "This item is impossible to refine.";
+ close;
+ }
+ switch(getequipweaponlv(.@part)) {
+ default:
+ case 0:
+ setarray .@tickets[0],6457,6235,6234,6233,6232,6239;
+ setarray .@levels[0],5,6,7,8,9,11;
+ set .@type$,"Armor";
+ set .@check,.@bArmorUp;
+ break;
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ setarray .@tickets[0],6456,6231,6230,6229,6228,6238;
+ setarray .@levels[0],5,6,7,8,9,11;
+ set .@type$,"Weapon";
+ set .@check,.@bWeaponUp;
+ break;
+ }
+ if (!.@check) {
+ emotion e_dots;
+ mes "[Refine Master]";
+ mes "If you want to refine this ^006400"+.@type$+"^000000, please come along with ^006400"+.@type$+" Refine Ticket^000000.";
+ mes "See you later!";
+ close;
+ }
+ mes "[Refine Master]";
+ mes "Please choose which ^006400"+.@type$+" Refine Ticket^000000 you want to use.";
+ next;
+ set .@menu$,"";
+ for(set .@i,0; .@i<getarraysize(.@tickets); set .@i,.@i+1)
+ set .@menu$, .@menu$+getitemname(.@tickets[.@i])+":";
+ set .@select, select(.@menu$)-1;
+ set .@ticket_lv, .@levels[.@select];
+ set .@ticket_id, .@tickets[.@select];
+ if (countitem(.@ticket_id) == 0) {
+ emotion e_what;
+ mes "[Refine Master]";
+ mes getitemname(.@ticket_id)+" is not in your inventory. Did you put it in your storage?";
+ mes "Please check again.";
+ mes "See you later!";
+ close;
+ }
+ if (getequiprefinerycnt(.@part) >= .@ticket_lv) {
+ emotion e_swt2;
+ mes "[Refine Master]";
+ mes "^8B4513This item is already refined as much as your deed.^000000";
+ mes "Please come along with an item refined less than your ticket.";
+ close;
+ }
+ mes "[Refine Master]";
+ mes "I'm going to refine ^006400"+getequipname(.@part)+"^8B4513 up to the +"+.@ticket_lv+" level^000000 with ^006400"+getitemname(.@ticket_id)+"^000000.";
+ mes "May I proceed?";
+ next;
+ if(select("No.:Yes.") == 1) {
+ emotion e_dots;
+ mes "[Refine Master]";
+ mes "Oh, you changed your mind.";
+ mes "Ok.";
+ mes "You can come back later.";
+ close;
+ }
+ mes "[Refine Master]";
+ mes "Great.";
+ mes "As you wish!";
+ mes "I have my own special way to refine...";
+ mes ".......ka boom!";
+ specialeffect EF_SUI_EXPLOSION;
+ if (countitem(.@ticket_id))
+ delitem .@ticket_id,1;
+ else {
+ next;
+ mes "Error!";
+ mes "Please report this.";
+ close;
+ }
+ for(set .@i,getequiprefinerycnt(.@part); .@i<.@ticket_lv; set .@i,.@i+1)
+ successrefitem .@part;
+ next;
+ emotion e_ho;
+ mes "[Refine Master]";
+ mes "Alright, here it is~";
+ mes "Well, ^0000FF"+strcharinfo(0)+"^000000!";
+ mes "Congratulations on your shining "+.@type$+".";
+ mes "You look GREAT!";
+ mes "Farewell~!";
+ close;
+}
diff --git a/npc/re/mobs/citycleaners.txt b/npc/re/mobs/citycleaners.txt
new file mode 100644
index 000000000..279f81a36
--- /dev/null
+++ b/npc/re/mobs/citycleaners.txt
@@ -0,0 +1,29 @@
+//===== Hercules Script ======================================
+//= City Cleaners Monster Spawn Script
+//===== By: ==================================================
+//= Euphy
+//===== Current Version: =====================================
+//= 1.0
+//===== Description: =========================================
+//= Spawns monsters to clean up cities.
+//===== Additional Comments: =================================
+//= 1.0 First version, Renewal spawns.
+//============================================================
+
+//==================================================
+// Wild Rose City Spawns
+//==================================================
+brasilis,0,0,0,0 monster Wild Rose 1261,1,7200000,3600000,0
+dewata,0,0,0,0 monster Wild Rose 1261,1,7200000,3600000,0
+malaya,0,0,0,0 monster Wild Rose 1261,1,7200000,3600000,0
+izlude_a,0,0,0,0 monster Wild Rose 1261,1,7200000,3600000,0
+izlude_b,0,0,0,0 monster Wild Rose 1261,1,7200000,3600000,0
+izlude_c,0,0,0,0 monster Wild Rose 1261,1,7200000,3600000,0
+izlude_d,0,0,0,0 monster Wild Rose 1261,1,7200000,3600000,0
+
+//==================================================
+// Thief Bug Egg City Spawns
+//==================================================
+payon_in02,23,68,5,5 monster Thief Bug Egg 1048,7,1200000,600000,0
+jawaii_in,73,117,4,4 monster Thief Bug Egg 1048,1,5400000,3000000,0
+jawaii_in,83,117,5,5 monster Thief Bug Egg 1048,1,4800000,2400000,0
diff --git a/npc/re/mobs/dungeons/alde_dun.txt b/npc/re/mobs/dungeons/alde_dun.txt
index 5f1570b49..56ed111e7 100644
--- a/npc/re/mobs/dungeons/alde_dun.txt
+++ b/npc/re/mobs/dungeons/alde_dun.txt
@@ -11,13 +11,13 @@
//============================================================
//==================================================
-// alde_dun01 - Clock Tower B1f
+// alde_dun01 - Clock Tower B1f
//==================================================
alde_dun01,0,0,0,0 monster Arclouze 1194,50,5000,0,0
alde_dun01,0,0,0,0 monster Drainliar 1111,40,5000,0,0
//==================================================
-// alde_dun02 - Clock Tower B2f
+// alde_dun02 - Clock Tower B2f
//==================================================
alde_dun02,0,0,0,0 monster High Orc 1213,50,5000,0,0
alde_dun02,0,0,0,0 monster Brilight 1211,20,5000,0,0
@@ -25,7 +25,7 @@ alde_dun02,0,0,0,0 monster Arclouze 1194,20,5000,0,0
alde_dun02,0,0,0,0 monster Orc Archer 1189,20,5000,0,0
//==================================================
-// alde_dun03 - Clock Tower B3f
+// alde_dun03 - Clock Tower B3f
//==================================================
alde_dun03,0,0,0,0 monster Penomena 1216,85,5000,0,0
alde_dun03,0,0,0,0 monster Cramp 1209,56,5000,0,0
diff --git a/npc/re/mobs/dungeons/beach_dun.txt b/npc/re/mobs/dungeons/beach_dun.txt
index 658444a76..0e4d2ee26 100644
--- a/npc/re/mobs/dungeons/beach_dun.txt
+++ b/npc/re/mobs/dungeons/beach_dun.txt
@@ -12,7 +12,7 @@
//============================================================
//==================================================
-// beach_dun - Karu, the West cave
+// beach_dun - Karu, the West cave
//==================================================
beach_dun,0,0,0,0 monster Medusa 1148,60,5000,0,0
beach_dun,0,0,0,0 monster Nereid 1255,20,5000,0,0
@@ -21,7 +21,7 @@ beach_dun,0,0,0,0 monster Merman 1264,3,5000,0,0
beach_dun,0,0,0,0 boss_monster Tao Gunka 1583,1,18000000,600000,0
//==================================================
-// beach_dun2 - Ruande the northern cave
+// beach_dun2 - Ruande the northern cave
//==================================================
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,5000,0,0
@@ -30,7 +30,7 @@ beach_dun2,0,0,0,0 monster Hydra 1068,10,5000,0,0
beach_dun2,0,0,0,0 monster Nereid 1255,3,5000,0,0
//==================================================
-// beach_dun3 - Mao, the East Cave
+// beach_dun3 - Mao, the East Cave
//==================================================
beach_dun3,0,0,0,0 monster Thara Frog 1034,50,5000,0,0
beach_dun3,0,0,0,0 monster Megalodon 1064,30,5000,0,0
diff --git a/npc/re/mobs/dungeons/dew_dun.txt b/npc/re/mobs/dungeons/dew_dun.txt
index 1080a1cf1..8d71f6387 100644
--- a/npc/re/mobs/dungeons/dew_dun.txt
+++ b/npc/re/mobs/dungeons/dew_dun.txt
@@ -3,27 +3,26 @@
//===== By: ==================================================
//= Chilly
//===== Current Version: =====================================
-//= 1.0
-//===== Compatible With: =====================================
-//= Hercules
+//= 1.1
//===== Description: =========================================
//= Official kRO monster spawns
//===== Additional Comments: =================================
//= 1.0 First Release
+//= 1.1 Updated spawn delays. [Euphy]
//============================================================
//==================================================
// dew_dun01 - Volcanic Island of Krakatoa
//==================================================
-dew_dun01,0,0,0,0 monster Ancient Worm 1305,25,0,0,0
-dew_dun01,0,0,0,0 monster Gullinbursti 1311,10,0,0,0
-dew_dun01,0,0,0,0 monster Comodo 2152,70,0,0,0
-dew_dun01,0,0,0,0 boss_monster Leak 2156,1,7200000,600000,1
+dew_dun01,0,0,0,0 monster Comodo 2152,70,5000,0,0
+dew_dun01,0,0,0,0 monster Ancient Worm 1305,25,5000,0,0
+dew_dun01,0,0,0,0 monster Gullinbursti 1311,10,5000,0,0
+dew_dun01,0,0,0,0 boss_monster Leak 2156,1,7200000,0,0
//==================================================
// dew_dun02 - Tina Grace Cave
//==================================================
-dew_dun02,0,0,0,0 monster Am Mut 1301,20,0,0,0
-dew_dun02,0,0,0,0 monster Gajomart 1309,30,0,0,0
-dew_dun02,0,0,0,0 monster Banaspaty 2154,50,0,0,0
-dew_dun02,0,0,0,0 monster Butoijo 2155,30,0,0,0
+dew_dun02,0,0,0,0 monster Banaspaty 2154,50,5000,0,0
+dew_dun02,0,0,0,0 monster Gajomart 1309,30,5000,0,0
+dew_dun02,0,0,0,0 monster Am Mut 1301,20,5000,0,0
+dew_dun02,0,0,0,0 monster Butoijo 2155,30,5000,0,0
diff --git a/npc/re/mobs/dungeons/dic_dun.txt b/npc/re/mobs/dungeons/dic_dun.txt
index f173fec0e..2f1bf3997 100644
--- a/npc/re/mobs/dungeons/dic_dun.txt
+++ b/npc/re/mobs/dungeons/dic_dun.txt
@@ -3,42 +3,41 @@
//===== By: ==================================================
//= Kisuka
//===== Current Version: =====================================
-//= 1.1
-//===== Compatible With: =====================================
-//= Hercules
+//= 1.2
//===== Description: =========================================
//= Official monster spawns in El Dicastes Dungeon.
//===== Additional Comments: =================================
//= 1.0 Official spawns from Aegis [Kisuka]
//= 1.1 Added Nightmare Scaraba Hole [Chilly]
+//= 1.2 Updated Nightmare spawns and names. [Euphy]
//============================================================
//==================================================
// dic_dun01 - Underground Passage Kamidal Tunnel
//==================================================
-dic_dun01,0,0,0,0 monster One-Horned Scarab 2083,50,5000,0,0
-dic_dun01,0,0,0,0 monster Two-Horned Scarab 2084,45,5000,0,0
-dic_dun01,0,0,0,0 monster Scarab Egg 2088,15,5000,0,0
-dic_dun01,0,0,0,0 monster Scarab Egg 2089,15,5000,0,0
+dic_dun01,0,0,0,0 monster One-Horned Scaraba 2083,50,5000,0,0
+dic_dun01,0,0,0,0 monster Two-Horned Scaraba 2084,45,5000,0,0
+dic_dun01,0,0,0,0 monster Scaraba Egg 2088,15,5000,0,0
+dic_dun01,0,0,0,0 monster Scaraba Egg 2089,15,5000,0,0
//==================================================
-// dic_dun02 - Underground Nest Scarab Hole
+// dic_dun02 - Underground Nest Scaraba Hole
//==================================================
-dic_dun02,0,0,0,0 monster Antler Scarab 2085,50,5000,0,0
-dic_dun02,0,0,0,0 monster Rake Scarab 2086,45,5000,0,0
-dic_dun02,0,0,0,0 monster Antler Scarab Egg 2090,15,5000,0,0
-dic_dun02,0,0,0,0 monster Rake Scarab Egg 2091,15,5000,0,0
-dic_dun02,0,0,0,0 boss_monster Scarab Queen 2087,1,7200000,0,0
+dic_dun02,0,0,0,0 monster Antler Scaraba 2085,50,5000,0,0
+dic_dun02,0,0,0,0 monster Rake Scaraba 2086,45,5000,0,0
+dic_dun02,0,0,0,0 monster Antler Scaraba Egg 2090,15,5000,0,0
+dic_dun02,0,0,0,0 monster Rake Scaraba Egg 2091,15,5000,0,0
+dic_dun02,0,0,0,0 boss_monster Scaraba Queen 2087,1,7200000,0,0
//==================================================
// dic_dun03 - Nightmare Scaraba Hole
//==================================================
-dic_dun03,0,0,0,0 monster Gold One-Horn Scaraba 2161,50,0,0,0
-dic_dun03,0,0,0,0 monster Gold Two-Horn Scaraba 2162,45,0,0,0
-dic_dun03,0,0,0,0 monster Gold Antler Scaraba 2163,50,0,0,0
-dic_dun03,0,0,0,0 monster Gold Rake Scaraba 2164,45,0,0,0
-dic_dun03,0,0,0,0 monster Gold One-Horn Scaraba Egg 2166,15,0,0,0
-dic_dun03,0,0,0,0 monster Gold Two-Horn Scaraba Egg 2167,15,0,0,0
-dic_dun03,0,0,0,0 monster Gold Antler Scaraba Egg 2168,15,0,0,0
-dic_dun03,0,0,0,0 monster Gold Rake Scaraba Egg 2169,15,0,0,0
-dic_dun03,0,0,0,0 boss_monster Gold Queen Scaraba 2165,1,7200000,600000,1
+dic_dun03,0,0,0,0 monster Gold One-Horn Scaraba Egg 2166,10,5000,0,0
+dic_dun03,0,0,0,0 monster Gold Two-Horn Scaraba Egg 2167,10,5000,0,0
+dic_dun03,0,0,0,0 monster Gold Antler Scaraba Egg 2168,10,5000,0,0
+dic_dun03,0,0,0,0 monster Gold Rake Scaraba Egg 2169,10,5000,0,0
+dic_dun03,0,0,0,0 monster Gold One-Horn Scaraba 2161,30,5000,0,0
+dic_dun03,0,0,0,0 monster Gold Two-Horn Scaraba 2162,30,5000,0,0
+dic_dun03,0,0,0,0 monster Gold Antler Scaraba 2163,40,5000,0,0
+dic_dun03,0,0,0,0 monster Gold Rake Scaraba 2164,40,5000,0,0
+dic_dun03,0,0,0,0 boss_monster Gold Queen Scaraba 2165,1,7200000,0,0
diff --git a/npc/re/mobs/dungeons/ecl_tdun.txt b/npc/re/mobs/dungeons/ecl_tdun.txt
new file mode 100644
index 000000000..0bfd17e0f
--- /dev/null
+++ b/npc/re/mobs/dungeons/ecl_tdun.txt
@@ -0,0 +1,37 @@
+//===== Hercules Script ======================================
+//= Bifrost Tower Monster Spawn Script
+//===== By: ==================================================
+//= refis
+//===== Current Version: =====================================
+//= 1.0
+//===== Description: =========================================
+//= jRO monster spawns, taken from Auriga.
+//===== Additional Comments: =================================
+//= 1.0 First version. [Euphy]
+//============================================================
+
+//==================================================
+// ecl_tdun01 - Bifrost Tower F1
+//==================================================
+ecl_tdun01.gat,0,0,0,0 monster Cenere 2365,5,5000,0,0
+ecl_tdun01.gat,0,0,0,0 monster Antique Book 2366,5,5000,0,0
+ecl_tdun01.gat,0,0,0,0 monster Blue Lichtern 2367,5,5000,0,0
+
+//==================================================
+// ecl_tdun02 - Bifrost Tower F2
+//==================================================
+ecl_tdun02.gat,0,0,0,0 monster Cenere 2365,10,5000,0,0
+ecl_tdun02.gat,0,0,0,0 monster Antique Book 2366,10,5000,0,0
+ecl_tdun02.gat,0,0,0,0 monster Blue Lichtern 2367,15,5000,0,0
+ecl_tdun02.gat,0,0,0,0 monster Yellow Lichtern 2368,5,5000,0,0
+
+//==================================================
+// ecl_tdun03 - Bifrost Tower F3
+//==================================================
+ecl_tdun03.gat,0,0,0,0 monster Cenere 2365,15,5000,0,0
+ecl_tdun03.gat,0,0,0,0 monster Antique Book 2366,15,5000,0,0
+ecl_tdun03.gat,0,0,0,0 monster Blue Lichtern 2367,5,5000,0,0
+ecl_tdun03.gat,0,0,0,0 monster Yellow Lichtern 2368,15,5000,0,0
+ecl_tdun03.gat,0,0,0,0 monster Red Lichtern 2369,10,5000,0,0
+ecl_tdun03.gat,0,0,0,0 monster Green Lichtern 2370,15,5000,0,0
+ecl_tdun03.gat,0,0,0,0 monster Faithful Manager 2371,5,5000,0,0
diff --git a/npc/re/mobs/dungeons/ein_dun.txt b/npc/re/mobs/dungeons/ein_dun.txt
index 3efcd52f6..53d78feff 100644
--- a/npc/re/mobs/dungeons/ein_dun.txt
+++ b/npc/re/mobs/dungeons/ein_dun.txt
@@ -4,8 +4,6 @@
//= Athena (1.0)
//===== Current Version: =====================================
//= 1.5
-//===== Compatible With: =====================================
-//= Hercules
//===== Additional Comments: =================================
//= 1.0 spawn N and spawn delays aren't yet correct, so I set
//= respawn delays quite big for now [Lupus]
diff --git a/npc/re/mobs/dungeons/gef_dun.txt b/npc/re/mobs/dungeons/gef_dun.txt
index d6da72c1c..32967e494 100644
--- a/npc/re/mobs/dungeons/gef_dun.txt
+++ b/npc/re/mobs/dungeons/gef_dun.txt
@@ -4,8 +4,6 @@
//= Athena (1.0)
//===== Current Version: =====================================
//= 1.4
-//===== Compatible With: =====================================
-//= Hercules
//===== Additional Comments: =================================
//= 1.2 Official kRO 10.1 spawns [Playtester]
//= 1.3 More accurate spawns [Playtester]
diff --git a/npc/re/mobs/dungeons/glastheim.txt b/npc/re/mobs/dungeons/glastheim.txt
index d23154de2..fa746ef29 100644
--- a/npc/re/mobs/dungeons/glastheim.txt
+++ b/npc/re/mobs/dungeons/glastheim.txt
@@ -4,8 +4,6 @@
//= Athena (1.0)
//===== Current Version: =====================================
//= 1.5
-//===== Compatible With: =====================================
-//= Hercules
//===== Additional Comments: =================================
//= 1.1 [Lupus]
//= 1.2 Updated to ep 8.5 aegis spawns [MasterOfMuppets]
@@ -37,7 +35,7 @@ gl_cas01,0,0,0,0 monster Owl Baron 1295,6,5000,0,0
gl_cas01,0,0,0,0 monster Alice 1275,1,5000,0,0
//==================================================
-// gl_cas02 - Glast Heim 2f
+// gl_cas02 - Glast Heim 2f
//==================================================
gl_cas02,0,0,0,0 monster Wanderer 1208,41,5000,0,0
gl_cas02,0,0,0,0 monster Raydric 1163,36,5000,0,0
diff --git a/npc/re/mobs/dungeons/gld_dunSE.txt b/npc/re/mobs/dungeons/gld_dunSE.txt
index 52d5bd0e5..568f34ea8 100644
--- a/npc/re/mobs/dungeons/gld_dunSE.txt
+++ b/npc/re/mobs/dungeons/gld_dunSE.txt
@@ -4,8 +4,6 @@
//= Athena (1.0)
//===== Current Version: =====================================
//= 1.1
-//===== Compatible With: =====================================
-//= Hercules
//===== Additional Comments: =================================
//= 1.0 First version
//= 1.1 Updated spawns to official. [L0ne_W0lf]
@@ -23,7 +21,7 @@ schg_dun01,0,0,0,0 monster Cobalt Mineral 1976,15,5000,0,0
// arug_dun01 - Subterranean Guild Dungeon
//==================================================
arug_dun01,0,0,0,0 monster Banshee Master 1974,22,0,0,0
-arug_dun01,0,0,0,0 monster Beholder master 1975,22,5000,0,0
+arug_dun01,0,0,0,0 monster Beholder Master 1975,22,5000,0,0
arug_dun01,0,0,0,0 monster Aunoe 1796,22,5000,0,0
arug_dun01,0,0,0,0 monster Necromancer 1870,18,0,0,0
arug_dun01,0,0,0,0 monster Fanat 1797,5,5000,0,0
diff --git a/npc/re/mobs/dungeons/gld_re.txt b/npc/re/mobs/dungeons/gld_re.txt
index 1280755a7..eff4e892c 100644
--- a/npc/re/mobs/dungeons/gld_re.txt
+++ b/npc/re/mobs/dungeons/gld_re.txt
@@ -4,8 +4,6 @@
//= Euphy
//===== Current Version: =====================================
//= 1.0
-//===== Compatible With: =====================================
-//= Hercules
//===== Additional Comments: =================================
//= 1.0 First version, Hall of Abyss update. [Euphy]
//============================================================
@@ -16,17 +14,17 @@
gld_dun01,0,0,0,0 monster Gullinbursti 1311,30,5000,0,0
gld_dun01,0,0,0,0 monster Leib Olmai 1306,55,5000,0,0
gld_dun01,0,0,0,0 monster Cat O' Nine Tails 1307,3,1200000,0,0
-gld_dun01,0,0,0,0 boss_monster Moonlight Flower 1150,1,28800000,600000,1
+gld_dun01,0,0,0,0 boss_monster Moonlight Flower 1150,1,28800000,600000,1,1
gld_dun01_2,0,0,0,0 monster Skeleton General 1290,50,5000,0,0
gld_dun01_2,0,0,0,0 monster Am Mut 1301,15,5000,0,0
gld_dun01_2,0,0,0,0 monster Gajomart 1309,20,5000,0,0
-gld_dun01_2,0,0,0,0 boss_monster Eddga 1115,1,28800000,600000,1
+gld_dun01_2,0,0,0,0 boss_monster Eddga 1115,1,28800000,600000,1,1
gld2_pay,0,0,0,0 monster Skeleton General 1290,60,5000,0,0
gld2_pay,0,0,0,0 monster Am Mut 1301,25,5000,0,0
gld2_pay,0,0,0,0 monster Gajomart 1309,30,5000,0,0
-gld2_pay,0,0,0,0 boss_monster General Daehyun 2253,1,28800000,600000,1
+gld2_pay,0,0,0,0 boss_monster General Daehyun 2253,1,28800000,600000,1,1
gld2_pay,0,0,0,0 monster Samurai Soheon 2254,1,1800000,600000,1
//==================================================
@@ -35,17 +33,17 @@ gld2_pay,0,0,0,0 monster Samurai Soheon 2254,1,1800000,600000,1
gld_dun02,0,0,0,0 monster Giant Hornet 1303,30,5000,0,0
gld_dun02,0,0,0,0 monster Ancient Worm 1305,25,5000,0,0
gld_dun02,0,0,0,0 monster Giant Spider 1304,15,5000,0,0
-gld_dun02,0,0,0,0 boss_monster Mistress 1059,1,28800000,600000,1
+gld_dun02,0,0,0,0 boss_monster Mistress 1059,1,28800000,600000,1,1
gld_dun02_2,0,0,0,0 monster Killer Mantis 1294,30,5000,0,0
gld_dun02_2,0,0,0,0 monster Angra Mantis 2133,40,5000,0,0
-gld_dun02_2,0,0,0,0 monster Maya Purple 1289,3,1200000,600000,0
-gld_dun02_2,0,0,0,0 boss_monster Maya 1147,1,28800000,600000,1
+gld_dun02_2,0,0,0,0 monster Maya Purple 1289,3,1200000,0,0
+gld_dun02_2,0,0,0,0 boss_monster Maya 1147,1,28800000,600000,1,1
gld2_ald,0,0,0,0 monster Killer Mantis 1294,60,5000,0,0
gld2_ald,0,0,0,0 monster Angra Mantis 2133,70,5000,0,0
-gld2_ald,0,0,0,0 monster Maya Purple 1289,3,1200000,0,0
-gld2_ald,0,0,0,0 boss_monster Gioia 2251,1,28800000,600000,1
+gld2_ald,0,0,0,0 monster Maya Purple 1289,3,1200000,600000,0
+gld2_ald,0,0,0,0 boss_monster Gioia 2251,1,28800000,600000,1,1
gld2_ald,0,0,0,0 monster Elvira 2252,1,1800000,600000,1
//==================================================
@@ -53,20 +51,20 @@ gld2_ald,0,0,0,0 monster Elvira 2252,1,1800000,600000,1
//==================================================
gld_dun03,0,0,0,0 monster Caterpillar 1300,35,5000,0,0
gld_dun03,0,0,0,0 monster Creamy Fear 1293,35,5000,0,0
-gld_dun03,0,0,0,0 boss_monster Baphomet 1039,1,28800000,600000,1
+gld_dun03,0,0,0,0 boss_monster Baphomet 1039,1,28800000,600000,1,1
gld_dun03_2,0,0,0,0 monster Dark Axe Kobold 2284,13,5000,0,0
gld_dun03_2,0,0,0,0 monster Dark Hammer Kobold 2285,23,5000,0,0
gld_dun03_2,0,0,0,0 monster Dark Mace Kobold 2286,23,5000,0,0
gld_dun03_2,0,0,0,0 monster Dark Kobold Archer 2287,23,5000,0,0
gld_dun03_2,0,0,0,0 monster Kobold Leader 1296,1,14400000,7200000,1
-gld_dun03_2,0,0,0,0 boss_monster Atroce 1785,1,28800000,600000,1
+gld_dun03_2,0,0,0,0 boss_monster Atroce 1785,1,28800000,600000,1,1
gld2_prt,0,0,0,0 monster Dark Axe Kobold 2284,25,5000,0,0
gld2_prt,0,0,0,0 monster Dark Hammer Kobold 2285,35,5000,0,0
gld2_prt,0,0,0,0 monster Dark Mace Kobold 2286,35,5000,0,0
gld2_prt,0,0,0,0 monster Dark Kobold Archer 2287,35,5000,0,0
-gld2_prt,0,0,0,0 boss_monster Angry Student Pyuriel 2249,1,28800000,600000,1
+gld2_prt,0,0,0,0 boss_monster Pyuriel 2249,1,28800000,600000,1,1
gld2_prt,0,0,0,0 monster Warrior Laura 2250,1,1800000,600000,1
//==================================================
@@ -76,19 +74,19 @@ gld_dun04,0,0,0,0 monster Mini Demon 1292,10,5000,0,0
gld_dun04,0,0,0,0 monster Zombie Master 1298,55,5000,0,0
gld_dun04,0,0,0,0 monster Wraith Dead 1291,25,5000,0,0
gld_dun04,0,0,0,0 monster Ghostring 1120,1,14400000,7200000,1
-gld_dun04,0,0,0,0 boss_monster Doppelganger 1046,1,28800000,600000,1
+gld_dun04,0,0,0,0 boss_monster Doppelganger 1046,1,28800000,600000,1,1
gld_dun04_2,0,0,0,0 monster Dark Frame 2282,15,5000,0,0
gld_dun04_2,0,0,0,0 monster Dark Priest 2283,15,5000,0,0
gld_dun04_2,0,0,0,0 monster Dark Shadow 2281,45,5000,0,0
gld_dun04_2,0,0,0,0 monster Dark Illusion 1302,1,1200000,0,0
-gld_dun04_2,0,0,0,0 boss_monster Dark Lord 1272,1,28800000,600000,1
+gld_dun04_2,0,0,0,0 boss_monster Dark Lord 1272,1,28800000,600000,1,1
gld2_gef,0,0,0,0 monster Dark Frame 2282,20,5000,0,0
gld2_gef,0,0,0,0 monster Dark Priest 2283,20,5000,0,0
gld2_gef,0,0,0,0 monster Dark Shadow 2281,80,5000,0,0
gld2_gef,0,0,0,0 monster Dark Illusion 1302,1,1200000,0,0
-gld2_gef,0,0,0,0 boss_monster Dark Guardian Kades 2255,1,28800000,600000,1
+gld2_gef,0,0,0,0 boss_monster Dead Guardian Kades 2255,1,28800000,600000,1,1
gld2_gef,0,0,0,0 monster Rudo 2256,1,1800000,600000,1
//==================================================
diff --git a/npc/re/mobs/dungeons/gon_dun.txt b/npc/re/mobs/dungeons/gon_dun.txt
index 19e7ee3db..51b61ba6c 100644
--- a/npc/re/mobs/dungeons/gon_dun.txt
+++ b/npc/re/mobs/dungeons/gon_dun.txt
@@ -4,8 +4,6 @@
//= Athena (1.0)
//===== Current Version: =====================================
//= 1.2
-//===== Compatible With: =====================================
-//= Hercules
//===== Additional Comments: =================================
//= 1.1 Official kRO 10.1 spawns [Playtester]
//= 1.2 Corrected MVP spawn variance. [L0ne_W0lf]
diff --git a/npc/re/mobs/dungeons/ice_dun.txt b/npc/re/mobs/dungeons/ice_dun.txt
index 11513ecd5..e6cefbf1c 100644
--- a/npc/re/mobs/dungeons/ice_dun.txt
+++ b/npc/re/mobs/dungeons/ice_dun.txt
@@ -4,8 +4,6 @@
//= Athena (1.0)
//===== Current Version: =====================================
//= 1.2
-//===== Compatible With: =====================================
-//= Hercules
//===== Additional Comments: =================================
//= 1.0 First version from jAthena [Playtester]
//= 1.1 More accurate spawns [Playtester]
diff --git a/npc/re/mobs/dungeons/in_sphinx.txt b/npc/re/mobs/dungeons/in_sphinx.txt
index c93a13cdc..50db8fdf6 100644
--- a/npc/re/mobs/dungeons/in_sphinx.txt
+++ b/npc/re/mobs/dungeons/in_sphinx.txt
@@ -4,8 +4,6 @@
//= Athena (1.0)
//===== Current Version: =====================================
//= 1.4
-//===== Compatible With: =====================================
-//= Hercules
//===== Additional Comments: =================================
//= 1.1 Official kRO 10.1 spawns [Playtester]
//= 1.2 Replaced Marduk with Anubis on F4 and F5 [Playtester]
diff --git a/npc/re/mobs/dungeons/iz_dun.txt b/npc/re/mobs/dungeons/iz_dun.txt
index 8d4fad684..849e424bd 100644
--- a/npc/re/mobs/dungeons/iz_dun.txt
+++ b/npc/re/mobs/dungeons/iz_dun.txt
@@ -3,13 +3,12 @@
//===== By: ==================================================
//= Athena (1.0)
//===== Current Version: =====================================
-//= 1.3
-//===== Compatible With: =====================================
-//= Hercules
+//= 1.4
//===== Additional Comments: =================================
//= 1.1 Official kRO 10.1 spawns for 1-4 [Playtester]
//= 1.2 More accurate spawns [Playtester]
//= 1.3 Added Izlude Dungeon F6 spawns [Chilly]
+//= 1.4 Official F6 spawns.
//============================================================
//==================================================
@@ -112,8 +111,8 @@ iz_dun04,33,115,0,0 monster Hydra 1068,1,321000,150000,0
//==================================================
// iz_dun05 - Undersea Tunnel F6
//==================================================
-iz_dun05,0,0,0,0 monster King Dramoh 2198,20,0,0,0
-iz_dun05,0,0,0,0 monster Sropho 2201,50,0,0,0
-iz_dun05,0,0,0,0 monster Pot Dofle 2203,30,0,0,0
-iz_dun05,0,0,0,0 monster Sedora 2204,50,0,0,0
-iz_dun05,0,0,0,0 boss_monster Kraken 2202,1,7200000,600000,1
+iz_dun05,0,0,0,0 monster Sropho 2201,50,5000,0,0
+iz_dun05,0,0,0,0 monster Sedora 2204,60,5000,0,0
+iz_dun05,0,0,0,0 monster Pot Dofle 2203,30,5000,0,0
+iz_dun05,0,0,0,0 monster King Dramoh 2198,25,5000,0,0
+iz_dun05,0,0,0,0 boss_monster Kraken 2202,1,7200000,1800000,0
diff --git a/npc/re/mobs/dungeons/kh_dun.txt b/npc/re/mobs/dungeons/kh_dun.txt
index a882550c8..4e9d1fbf7 100644
--- a/npc/re/mobs/dungeons/kh_dun.txt
+++ b/npc/re/mobs/dungeons/kh_dun.txt
@@ -4,8 +4,6 @@
//= Athena (1.0)
//===== Current Version: =====================================
//= 1.3
-//===== Compatible With: =====================================
-//= Hercules
//===== Additional Comments: =================================
//= 1.0 First version [MasterOfMuppets]
//= 1.1 Added official mob types [Playtester]
@@ -14,7 +12,7 @@
//============================================================
//==================================================
-// kh_dun01 - Robot Factory level 1
+// kh_dun01 - Robot Factory level 1
//==================================================
kh_dun01,0,0,0,0 monster Aliza 1737,45,5000,0,0
kh_dun01,0,0,0,0 monster Alice 1275,25,5000,0,0
@@ -34,7 +32,7 @@ kh_dun02,0,0,0,0 monster Constant 1745,5,5000,0,0
kh_dun02,0,0,0,0 boss_monster Kiel D-01 1734,1,7200000,600000,0
//==================================================
-// kh_kiehl01 - Kiehl's Room
+// kh_kiehl01 - Kiehl's Room
//==================================================
kh_kiehl01,0,0,0,0 monster Constant 1745,10,5000,0,0
kh_kiehl01,67,171,5,5 monster Aliot 1740,1,180000,120000,0
diff --git a/npc/re/mobs/dungeons/lhz_dun.txt b/npc/re/mobs/dungeons/lhz_dun.txt
index d723a8d67..8da7874bf 100644
--- a/npc/re/mobs/dungeons/lhz_dun.txt
+++ b/npc/re/mobs/dungeons/lhz_dun.txt
@@ -6,13 +6,13 @@
//= 1.9
//===== 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.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.
@@ -106,20 +106,20 @@ OnMy99Dead:
//========================================================================================
// lhz_dun04 - Bio-life Labs 4F
//========================================================================================
-lhz_dun04,0,0,0,0 monster Randel 2221,50,5000,0,0
-lhz_dun04,0,0,0,0 monster Flamel 2222,50,5000,0,0
-lhz_dun04,0,0,0,0 monster Celia 2223,50,5000,0,0
-lhz_dun04,0,0,0,0 monster Chen 2224,50,5000,0,0
-lhz_dun04,0,0,0,0 monster Gertie 2225,50,5000,0,0
-lhz_dun04,0,0,0,0 monster Alphoccio 2226,50,5000,0,0
-lhz_dun04,0,0,0,0 monster Trentini 2227,50,5000,0,0
-lhz_dun04,0,0,0,0 monster Paladin Randel 2228,1,2700000,2400000,1
-lhz_dun04,0,0,0,0 monster Creator Flamel 2229,1,3000000,2700000,1
-lhz_dun04,0,0,0,0 monster Professor Celia 2230,1,2580000,2340000,1
-lhz_dun04,0,0,0,0 monster Champion Chen 2231,1,2700000,2500000,1
+lhz_dun04,0,0,0,0 monster Randel 2221,42,5000,0,0
+lhz_dun04,0,0,0,0 monster Flamel 2222,42,5000,0,0
+lhz_dun04,0,0,0,0 monster Celia 2223,81,5000,0,0
+lhz_dun04,0,0,0,0 monster Chen 2224,42,5000,0,0
+lhz_dun04,0,0,0,0 monster Gertie 2225,57,5000,0,0
+lhz_dun04,0,0,0,0 monster Alphoccio 2226,42,5000,0,0
+lhz_dun04,0,0,0,0 monster Trentini 2227,42,5000,0,0
+lhz_dun04,0,0,0,0 monster Paladin Randel 2228,1,3300000,3000000,1
+lhz_dun04,0,0,0,0 monster Creator Flamel 2229,1,3300000,3000000,1
+lhz_dun04,0,0,0,0 monster Professor Celia 2230,1,3300000,3000000,1
+lhz_dun04,0,0,0,0 monster Champion Chen 2231,1,3300000,3000000,1
lhz_dun04,0,0,0,0 monster Stalker Gertie 2232,1,3300000,3000000,1
-lhz_dun04,0,0,0,0 monster Clown Alphoccio 2233,1,2580000,2460000,1
-lhz_dun04,0,0,0,0 monster Gypsy Trentini 2234,1,2580000,2460000,1
+lhz_dun04,0,0,0,0 monster Clown Alphoccio 2233,1,3300000,3000000,1
+lhz_dun04,0,0,0,0 monster Gypsy Trentini 2234,1,3300000,3000000,1
lhz_dun04,0,0,0 script mvp_lhz_dun04 -1,{
OnTimer6000000: // delay1 = 6000000 ms (100 min)
diff --git a/npc/re/mobs/dungeons/lou_dun.txt b/npc/re/mobs/dungeons/lou_dun.txt
index f5e276757..6f50cebad 100644
--- a/npc/re/mobs/dungeons/lou_dun.txt
+++ b/npc/re/mobs/dungeons/lou_dun.txt
@@ -4,8 +4,6 @@
//= Athena (1.0)
//===== Current Version: =====================================
//= 1.3
-//===== Compatible With: =====================================
-//= Hercules
//===== Additional Comments: =================================
//= 1.1 Updated by MasterOfMuppets
//= 1.2 Added Bacsojin and Chung E [MasterOfMuppets]
@@ -13,7 +11,7 @@
//============================================================
//==================================================
-// lou_dun01 - The Royal Tomb
+// lou_dun01 - The Royal Tomb
//==================================================
lou_dun01,0,0,0,0 monster Jing Guai 1517,45,5000,0,0
lou_dun01,0,0,0,0 monster Grizzly 1381,15,5000,0,0
@@ -33,7 +31,7 @@ lou_dun02,0,0,0,0 monster Mimic 1191,5,5000,0,0
lou_dun02,0,0,0,0 monster Zhu Po Long 1514,5,5000,0,0
//==================================================
-// lou_dun03 - Suei Long Gon
+// lou_dun03 - Suei Long Gon
//==================================================
lou_dun03,0,0,0,0 monster Zhu Po Long 1514,25,5000,0,0
lou_dun03,0,0,0,0 monster Yao Jun 1512,25,5000,0,0
diff --git a/npc/re/mobs/dungeons/ma_dun.txt b/npc/re/mobs/dungeons/ma_dun.txt
index f7028e579..3e0a54b35 100644
--- a/npc/re/mobs/dungeons/ma_dun.txt
+++ b/npc/re/mobs/dungeons/ma_dun.txt
@@ -4,8 +4,6 @@
//= Chilly
//===== Current Version: =====================================
//= 1.0
-//===== Compatible With: =====================================
-//= Hercules
//===== Description: =========================================
//= Official kRO monster spawns
//===== Additional Comments: =================================
@@ -15,6 +13,6 @@
//==================================================
// ma_dun01 - Bangungot Hospital F1
//==================================================
-ma_dun01,0,0,0,0 monster Manananggal 2311,70,0,0,0
-ma_dun01,0,0,0,0 monster Wakwak 2315,50,0,0,0
-ma_dun01,0,0,0,0 monster Tiyanak 2314,30,0,0,0
+ma_dun01,0,0,0,0 monster Manananggal 2311,40,5000,0,0
+ma_dun01,0,0,0,0 monster Wakwak 2315,30,5000,0,0
+ma_dun01,0,0,0,0 monster Tiyanak 2314,40,5000,0,0
diff --git a/npc/re/mobs/dungeons/mag_dun.txt b/npc/re/mobs/dungeons/mag_dun.txt
index 562633a5d..d5321ea6c 100644
--- a/npc/re/mobs/dungeons/mag_dun.txt
+++ b/npc/re/mobs/dungeons/mag_dun.txt
@@ -4,8 +4,6 @@
//= Athena (1.0)
//===== Current Version: =====================================
//= 1.3
-//===== Compatible With: =====================================
-//= Hercules
//===== 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]
diff --git a/npc/re/mobs/dungeons/mal_dun.txt b/npc/re/mobs/dungeons/mal_dun.txt
index 9bcfc8132..40a8255cf 100644
--- a/npc/re/mobs/dungeons/mal_dun.txt
+++ b/npc/re/mobs/dungeons/mal_dun.txt
@@ -3,14 +3,13 @@
//===== By: ==================================================
//= Chilly
//===== Current Version: =====================================
-//= 1.1
-//===== Compatible With: =====================================
-//= Hercules
+//= 1.2
//===== Description: =========================================
//= Official kRO monster spawns
//===== Additional Comments: =================================
//= 1.0 First Release
//= 1.1 Updated to official script. [Euphy]
+//= 1.2 Added Pouring spawn, source iRO. [Euphy]
//============================================================
//==================================================
diff --git a/npc/re/mobs/dungeons/mjo_dun.txt b/npc/re/mobs/dungeons/mjo_dun.txt
index 4e100d161..0204a2da7 100644
--- a/npc/re/mobs/dungeons/mjo_dun.txt
+++ b/npc/re/mobs/dungeons/mjo_dun.txt
@@ -4,8 +4,6 @@
//= Athena (1.0)
//===== Current Version: =====================================
//= 1.1
-//===== Compatible With: =====================================
-//= Hercules
//===== Additional Comments: =================================
//= 1.1 Official kRO 10.1 spawns [Playtester]
//============================================================
diff --git a/npc/re/mobs/dungeons/moc_pryd.txt b/npc/re/mobs/dungeons/moc_pryd.txt
index dcd5197f1..62085e8e1 100644
--- a/npc/re/mobs/dungeons/moc_pryd.txt
+++ b/npc/re/mobs/dungeons/moc_pryd.txt
@@ -1,25 +1,24 @@
//===== Hercules Script ======================================
-//= Morocc Pryamid Dungeon Monster Spawn Script
+//= Morocc Pyramid Dungeon Monster Spawn Script
//===== By: ==================================================
//= Athena (1.0)
//===== Current Version: =====================================
-//= 1.3
-//===== Compatible With: =====================================
-//= Hercules
+//= 1.4
//===== Additional Comments: =================================
//= 1.1 Official kRO 10.1 spawns [Playtester]
//= 1.2 More accurate spawns [Playtester]
//= 1.3 Corrected MVP spawn variance. [L0ne_W0lf]
+//= 1.4 Added Nightmare spawns. [Euphy]
//============================================================
//==================================================
-// moc_pryd01 - Inside Pyramid
+// moc_pryd01 - Inside Pyramid F1
//==================================================
moc_pryd01,0,0,0,0 monster Familiar 1005,50,5000,0,0
moc_pryd01,0,0,0,0 monster Poporing 1031,20,5000,0,0
//==================================================
-// moc_pryd02 - Inside Pyramid
+// moc_pryd02 - Inside Pyramid F2
//==================================================
moc_pryd02,0,0,0,0 monster Mummy 1041,30,5000,0,0
moc_pryd02,0,0,0,0 monster Soldier Skeleton 1028,30,5000,0,0
@@ -29,7 +28,7 @@ moc_pryd02,0,0,0,0 monster Poporing 1031,20,5000,0,0
moc_pryd02,0,0,0,0 monster Isis 1029,5,5000,0,0
//==================================================
-// moc_pryd03 - Inside Pyramid
+// moc_pryd03 - Inside Pyramid F3
//==================================================
moc_pryd03,0,0,0,0 monster Mummy 1041,70,5000,0,0
moc_pryd03,0,0,0,0 monster Verit 1032,20,5000,0,0
@@ -38,7 +37,7 @@ moc_pryd03,0,0,0,0 monster Drainliar 1111,5,5000,0,0
moc_pryd03,0,0,0,0 monster Mimic 1191,5,5000,0,0
//==================================================
-// moc_pryd04 - Inside Pyramid
+// moc_pryd04 - Inside Pyramid F4
//==================================================
moc_pryd04,0,0,0,0 monster Isis 1029,50,5000,0,0
moc_pryd04,0,0,0,0 monster Mummy 1041,25,5000,0,0
@@ -48,17 +47,33 @@ moc_pryd04,0,0,0,0 monster Ancient Mummy 1297,3,5000,0,0
moc_pryd04,0,0,0,0 boss_monster Osiris 1038,1,3600000,600000,0
//==================================================
-// moc_pryd05 - Inside Pyramid
+// moc_pryd05 - Inside Pyramid B1
//==================================================
moc_pryd05,0,0,0,0 monster Minorous 1149,60,5000,0,0
moc_pryd05,0,0,0,0 monster Verit 1032,50,5000,0,0
moc_pryd05,0,0,0,0 monster Mummy 1041,10,5000,0,0
//==================================================
-// moc_pryd06 - Inside Pyramid
+// moc_pryd06 - Inside Pyramid B2
//==================================================
moc_pryd06,0,0,0,0 monster Mimic 1191,30,5000,0,0
moc_pryd06,0,0,0,0 monster Verit 1032,30,5000,0,0
moc_pryd06,0,0,0,0 monster Arclouze 1194,20,5000,0,0
moc_pryd06,0,0,0,0 monster Ancient Mummy 1297,20,5000,0,0
moc_pryd06,102,85,1,1 boss_monster Amon Ra 1511,1,3600000,600000,0
+
+//==================================================
+// moc_prydn1 - Nightmare Mode B1
+//==================================================
+moc_prydn1,0,0,0,0 monster Nightmare Minorous 2353,60,5000,0,0
+moc_prydn1,0,0,0,0 monster Nightmare Mummy 2354,10,5000,0,0
+moc_prydn1,0,0,0,0 monster Nightmare Verit 2355,50,5000,0,0
+
+//==================================================
+// moc_prydn2 - Nightmare Mode B2
+//==================================================
+moc_prydn2,0,0,0,0 monster Nightmare Mimic 2356,30,5000,0,0
+moc_prydn2,0,0,0,0 monster Nightmare Verit 2355,30,5000,0,0
+moc_prydn2,0,0,0,0 monster Nightmare Arclouze 2358,20,5000,0,0
+moc_prydn2,0,0,0,0 monster Nightmare Ancient Mummy 2360,20,5000,0,0
+moc_prydn2,102,85,1,1 boss_monster Nightmare Amon Ra 2362,1,3600000,600000,0
diff --git a/npc/re/mobs/dungeons/mosk_dun.txt b/npc/re/mobs/dungeons/mosk_dun.txt
index 64dbc9245..9049a88b8 100644
--- a/npc/re/mobs/dungeons/mosk_dun.txt
+++ b/npc/re/mobs/dungeons/mosk_dun.txt
@@ -4,8 +4,6 @@
//= Athena (1.0)
//===== Current Version: =====================================
//= 1.3
-//===== Compatible With: =====================================
-//= Hercules
//===== Additional Comments: =================================
//= 1.0 Added spawns [Playtester]
//= 1.1 Swapped named according to mob db. [L0ne_W0lf]
diff --git a/npc/re/mobs/dungeons/nyd_dun.txt b/npc/re/mobs/dungeons/nyd_dun.txt
index 7b8dbd156..7244bc7bd 100644
--- a/npc/re/mobs/dungeons/nyd_dun.txt
+++ b/npc/re/mobs/dungeons/nyd_dun.txt
@@ -4,8 +4,6 @@
//= Athena (1.0)
//===== Current Version: =====================================
//= 1.0
-//===== Compatible With: =====================================
-//= Hercules
//===== Additional Comments: =================================
//= 1.0 First version
//============================================================
diff --git a/npc/re/mobs/dungeons/odin.txt b/npc/re/mobs/dungeons/odin.txt
index cf9f046bb..372ab2f57 100644
--- a/npc/re/mobs/dungeons/odin.txt
+++ b/npc/re/mobs/dungeons/odin.txt
@@ -4,8 +4,6 @@
//= Poki#3 (0.1)
//===== Current Version: =====================================
//= 1.2
-//===== Compatible With: =====================================
-//= Hercules
//===== Additional Comments: =================================
//= 1.0 Updated by using Tharis' Homun AI, by Tharis [Vicious]
//= 1.1 More accurate spawns [Playtester]
diff --git a/npc/re/mobs/dungeons/orcsdun.txt b/npc/re/mobs/dungeons/orcsdun.txt
index 6c0ecee54..6a368305e 100644
--- a/npc/re/mobs/dungeons/orcsdun.txt
+++ b/npc/re/mobs/dungeons/orcsdun.txt
@@ -4,8 +4,6 @@
//= Athena (1.0)
//===== Current Version: =====================================
//= 1.2
-//===== Compatible With: =====================================
-//= Hercules
//===== Additional Comments: =================================
//= 1.2 Official kRO 10.1 spawns [Playtester]
//============================================================
diff --git a/npc/re/mobs/dungeons/pay_dun.txt b/npc/re/mobs/dungeons/pay_dun.txt
index 83639ca2c..a4c1efba8 100644
--- a/npc/re/mobs/dungeons/pay_dun.txt
+++ b/npc/re/mobs/dungeons/pay_dun.txt
@@ -4,8 +4,6 @@
//= Athena (1.0)
//===== Current Version: =====================================
//= 1.3
-//===== Compatible With: =====================================
-//= Hercules
//===== Additional Comments: =================================
//= 1.1 Official kRO 10.1 spawns [Playtester]
//= 1.2 Small spawn update [Playtester]
diff --git a/npc/re/mobs/dungeons/prt_maze.txt b/npc/re/mobs/dungeons/prt_maze.txt
index 6feea8a0a..0cfb71665 100644
--- a/npc/re/mobs/dungeons/prt_maze.txt
+++ b/npc/re/mobs/dungeons/prt_maze.txt
@@ -4,8 +4,6 @@
//= Athena (1.0)
//===== Current Version: =====================================
//= 1.4
-//===== Compatible With: =====================================
-//= Hercules
//===== Additional Comments: =================================
//= 1.2 Official kRO 10.1 spawns [Playtester]
//= 1.3 Some small fixes [Playtester]
diff --git a/npc/re/mobs/dungeons/prt_sew.txt b/npc/re/mobs/dungeons/prt_sew.txt
index 6fd21922d..0ec2fe5dd 100644
--- a/npc/re/mobs/dungeons/prt_sew.txt
+++ b/npc/re/mobs/dungeons/prt_sew.txt
@@ -4,15 +4,13 @@
//= Athena (1.0)
//===== Current Version: =====================================
//= 1.2
-//===== Compatible With: =====================================
-//= Hercules
//===== Additional Comments: =================================
//= 1.1 Official kRO 10.1 spawns [Playtester]
//= 1.2 Corrected MVP spawn variance. [L0ne_W0lf]
//============================================================
//==================================================
-// prt_sewb1 - Prontera Culvert
+// prt_sewb1 - Prontera Culvert
//==================================================
prt_sewb1,0,0,0,0 monster Thief Bug 1051,30,5000,0,0
prt_sewb1,0,0,0,0 monster Thief Bug Egg 1048,80,5000,0,0
diff --git a/npc/re/mobs/dungeons/ra_san.txt b/npc/re/mobs/dungeons/ra_san.txt
index b5f764b70..eea77aa0f 100644
--- a/npc/re/mobs/dungeons/ra_san.txt
+++ b/npc/re/mobs/dungeons/ra_san.txt
@@ -4,8 +4,6 @@
//= Athena (1.0)
//===== Current Version: =====================================
//= 1.2
-//===== Compatible With: =====================================
-//= Hercules
//===== Additional Comments: =================================
//= 1.0 First version with guessed amounts [Playtester]
//= 1.1 More accurate spawns [Playtester]
@@ -22,7 +20,7 @@ ra_san01,0,0,0,0 monster Beholder 1633,6,5000,0,0
ra_san01,0,0,0,0 monster Hodremlin 1773,6,5000,0,0
//==================================================
-// ra_san02 - Holy Ground
+// ra_san02 - Holy Ground
//==================================================
ra_san02,0,0,0,0 monster Isilla 1772,85,5000,0,0
ra_san02,0,0,0,0 monster Vanberk 1771,30,5000,0,0
diff --git a/npc/re/mobs/dungeons/tha_t.txt b/npc/re/mobs/dungeons/tha_t.txt
index 789a71cdd..efa7cca38 100644
--- a/npc/re/mobs/dungeons/tha_t.txt
+++ b/npc/re/mobs/dungeons/tha_t.txt
@@ -4,8 +4,6 @@
//= Athena (1.0)
//===== Current Version: =====================================
//= 1.3
-//===== Compatible With: =====================================
-//= Hercules
//===== Additional Comments: =================================
//= 1.0 Real spawns by Poki#3 [Nexon]
//= 1.1 More official spawns [Playtester]
@@ -87,7 +85,7 @@ tha_t06,0,0,0,0 monster Plasma 1694,10,5000,0,0
tha_t06,0,0,0,0 monster Maero of Thanatos 1706,2,5000,0,0
//==================================================
-// tha_t07 - Thanatos Tower - Upper Level
+// tha_t07 - Thanatos Tower - Upper Level
//==================================================
tha_t07,0,0,0,0 monster Baroness of Retribution 1702,15,5000,0,0
tha_t07,0,0,0,0 monster Death Word 1698,10,5000,0,0
diff --git a/npc/re/mobs/dungeons/thor_v.txt b/npc/re/mobs/dungeons/thor_v.txt
index 2d3867f5b..b882c1b0a 100644
--- a/npc/re/mobs/dungeons/thor_v.txt
+++ b/npc/re/mobs/dungeons/thor_v.txt
@@ -4,8 +4,6 @@
//= Playtester
//===== Current Version: =====================================
//= 1.4
-//===== Compatible With: =====================================
-//= Hercules
//===== Description: =========================================
//= Official monster spawn in Thor Volcano Dungeon.
//===== Additional Comments: =================================
diff --git a/npc/re/mobs/dungeons/treasure.txt b/npc/re/mobs/dungeons/treasure.txt
index 25d8caf60..b18d5fd62 100644
--- a/npc/re/mobs/dungeons/treasure.txt
+++ b/npc/re/mobs/dungeons/treasure.txt
@@ -4,8 +4,6 @@
//= Athena (1.0)
//===== Current Version: =====================================
//= 1.3
-//===== Compatible With: =====================================
-//= Hercules
//===== Additional Comments: =================================
//= 1.1 Official kRO 10.1 spawns [Playtester]
//= 1.2 More accurate spawns [Playtester]
diff --git a/npc/re/mobs/dungeons/tur_dun.txt b/npc/re/mobs/dungeons/tur_dun.txt
index a73fc3d1b..6acbee74d 100644
--- a/npc/re/mobs/dungeons/tur_dun.txt
+++ b/npc/re/mobs/dungeons/tur_dun.txt
@@ -4,8 +4,6 @@
//= Athena (1.0)
//===== Current Version: =====================================
//= 1.2
-//===== Compatible With: =====================================
-//= Hercules
//===== Additional Comments: =================================
//= 1.2 Official kRO 10.1 spawns [Playtester]
//============================================================
diff --git a/npc/re/mobs/dungeons/xmas_dun.txt b/npc/re/mobs/dungeons/xmas_dun.txt
index f3c6d8859..0d4374f8f 100644
--- a/npc/re/mobs/dungeons/xmas_dun.txt
+++ b/npc/re/mobs/dungeons/xmas_dun.txt
@@ -4,8 +4,6 @@
//= Athena (1.0)
//===== Current Version: =====================================
//= 1.4
-//===== Compatible With: =====================================
-//= Hercules
//===== Additional Comments: =================================
//= 1.1 added Garm Baby according to May 10 patch
//= 1.2 Official kRO 10.1 spawns [Playtester]
diff --git a/npc/re/mobs/dungeons/yggdrasil.txt b/npc/re/mobs/dungeons/yggdrasil.txt
index 9fb13a6b6..939933aeb 100644
--- a/npc/re/mobs/dungeons/yggdrasil.txt
+++ b/npc/re/mobs/dungeons/yggdrasil.txt
@@ -4,8 +4,6 @@
//= Athena (1.0)
//===== Current Version: =====================================
//= 1.1
-//===== Compatible With: =====================================
-//= Hercules
//===== Additional Comments: =================================
//= 1.0 Splitted from Nifflheim fields [DracoRPG]
//= 1.1 Official kRO 10.1 spawns [Playtester]
diff --git a/npc/re/mobs/fields/amatsu.txt b/npc/re/mobs/fields/amatsu.txt
index 86e96f337..e6285ff6f 100644
--- a/npc/re/mobs/fields/amatsu.txt
+++ b/npc/re/mobs/fields/amatsu.txt
@@ -14,7 +14,7 @@
//==================================================
// ama_fild01 - Amatsu Field
//==================================================
-ama_fild01,0,0,0,0 monster Bigfoot 1060,15,5000,0,0
+ama_fild01,0,0,0,0 monster Bigfoot 1060,10,5000,0,0
ama_fild01,0,0,0,0 monster Karakasa 1400,50,5000,0,0
ama_fild01,0,0,0,0 monster Kapha 1406,40,5000,0,0
ama_fild01,0,0,0,0 monster Miyabi Doll 1404,2,5000,0,0
@@ -32,4 +32,4 @@ ama_fild01,171,313,0,0 monster Hydra 1068,1,66000,33000,0
ama_fild01,171,314,0,0 monster Hydra 1068,1,69000,34500,0
ama_fild01,171,315,0,0 monster Hydra 1068,1,69000,34500,0
ama_fild01,175,314,0,0 monster Hydra 1068,1,72000,39000,0
-ama_fild01,169,315,0,0 monster Hydra 1068,1,72000,39000,0 \ No newline at end of file
+ama_fild01,169,315,0,0 monster Hydra 1068,1,72000,39000,0
diff --git a/npc/re/mobs/fields/bifrost.txt b/npc/re/mobs/fields/bifrost.txt
index 04667acb0..93f5a26e3 100644
--- a/npc/re/mobs/fields/bifrost.txt
+++ b/npc/re/mobs/fields/bifrost.txt
@@ -8,102 +8,25 @@
//= Official kRO monster spawns
//===== Additional Comments: =================================
//= 1.0 First Release
-//= 1.1 Added more accurate 1@mist monsters
-//= 1.2 Renewal spawn update. [Euphy]
+//= 1.1 Renewal spawn update. [Euphy]
//============================================================
//==================================================
// bif_fild01 - Bifrost South
//==================================================
-bif_fild01,0,0,0,0 monster Luciola Vespa 1994,29,5000,0,0
-bif_fild01,0,0,0,0 monster Cornus 1992,17,5000,0,0
-bif_fild01,0,0,0,0 monster Miming 2137,58,5000,0,0
-bif_fild01,0,0,0,0 monster Little Fatum 2136,34,5000,0,0
+bif_fild01,0,0,0,0 monster Luciola Vespa 1994,25,5000,0,0
+bif_fild01,0,0,0,0 monster Cornus 1992,15,5000,0,0
+bif_fild01,0,0,0,0 monster Miming 2137,50,5000,0,0
+bif_fild01,0,0,0,0 monster Little Fatum 2136,30,5000,0,0
bif_fild01,0,0,0,0 monster Angra Mantis 2133,5,5000,0,0
bif_fild01,0,0,0,0 monster Pom Spider 2132,5,5000,0,0
//==================================================
// bif_fild02 - Bifrost North
//==================================================
-bif_fild02,0,0,0,0 monster Luciola Vespa 1994,27,5000,0,0
-bif_fild02,0,0,0,0 monster Cornus 1992,16,5000,0,0
-bif_fild02,0,0,0,0 monster Miming 2137,33,5000,0,0
-bif_fild02,0,0,0,0 monster Little Fatum 2136,55,5000,0,0
+bif_fild02,0,0,0,0 monster Luciola Vespa 1994,25,5000,0,0
+bif_fild02,0,0,0,0 monster Cornus 1992,15,5000,0,0
+bif_fild02,0,0,0,0 monster Miming 2137,30,5000,0,0
+bif_fild02,0,0,0,0 monster Little Fatum 2136,50,5000,0,0
bif_fild02,0,0,0,0 monster Angra Mantis 2133,5,5000,0,0
bif_fild02,0,0,0,0 monster Pom Spider 2132,5,5000,0,0
-
-//==================================================
-// 1@mist - Forest Maze of Mists
-//==================================================
-1@mist,247,124,0,0 monster Creeper 2135,1,1200000,600000,0
-1@mist,247,124,0,0 monster Nydhoggur Memory 2138,1,1200000,600000,0
-1@mist,247,124,0,0 monster Nydhoggur Memory 2139,1,1200000,600000,0
-1@mist,225,98,0,0 monster Creeper 2135,1,1200000,600000,0
-1@mist,225,98,0,0 monster Nydhoggur Memory 2138,1,1200000,600000,0
-1@mist,225,98,0,0 monster Nydhoggur Memory 2139,1,1200000,600000,0
-1@mist,159,184,0,0 monster Creeper 2135,1,1200000,600000,0
-1@mist,159,184,0,0 monster Nydhoggur Memory 2138,1,1200000,600000,0
-1@mist,159,184,0,0 monster Nydhoggur Memory 2139,1,1200000,600000,0
-1@mist,61,39,0,0 monster Creeper 2135,1,1200000,600000,0
-1@mist,61,39,0,0 monster Nydhoggur Memory 2138,1,1200000,600000,0
-1@mist,61,39,0,0 monster Nydhoggur Memory 2139,1,1200000,600000,0
-1@mist,254,151,0,0 monster Creeper 2135,1,1200000,600000,0
-1@mist,254,151,0,0 monster Nydhoggur Memory 2138,1,1200000,600000,0
-1@mist,254,151,0,0 monster Nydhoggur Memory 2139,1,1200000,600000,0
-1@mist,230,179,0,0 monster Creeper 2135,1,1200000,600000,0
-1@mist,230,179,0,0 monster Nydhoggur Memory 2140,1,1200000,600000,0
-1@mist,230,179,0,0 monster Nydhoggur Memory 2141,1,1200000,600000,0
-1@mist,285,225,0,0 monster Creeper 2135,1,1200000,600000,0
-1@mist,285,225,0,0 monster Nydhoggur Memory 2140,1,1200000,600000,0
-1@mist,285,225,0,0 monster Nydhoggur Memory 2141,1,1200000,600000,0
-1@mist,161,316,0,0 monster Creeper 2135,1,1200000,600000,0
-1@mist,161,316,0,0 monster Nydhoggur Memory 2140,1,1200000,600000,0
-1@mist,161,316,0,0 monster Nydhoggur Memory 2141,1,1200000,600000,0
-1@mist,230,324,0,0 monster Creeper 2135,1,1200000,600000,0
-1@mist,230,324,0,0 monster Nydhoggur Memory 2140,1,1200000,600000,0
-1@mist,230,324,0,0 monster Nydhoggur Memory 2141,1,1200000,600000,0
-1@mist,206,200,0,0 monster Creeper 2135,1,1200000,600000,0
-1@mist,206,200,0,0 monster Nydhoggur Memory 2140,1,1200000,600000,0
-1@mist,206,200,0,0 monster Nydhoggur Memory 2141,1,1200000,600000,0
-1@mist,221,236,0,0 monster Creeper 2135,1,1200000,600000,0
-1@mist,221,236,0,0 monster Nydhoggur Memory 2142,1,1200000,600000,0
-1@mist,221,236,0,0 monster Nydhoggur Memory 2143,1,1200000,600000,0
-1@mist,204,299,0,0 monster Creeper 2135,1,1200000,600000,0
-1@mist,204,299,0,0 monster Nydhoggur Memory 2142,1,1200000,600000,0
-1@mist,204,299,0,0 monster Nydhoggur Memory 2143,1,1200000,600000,0
-1@mist,84,273,0,0 monster Creeper 2135,1,1200000,600000,0
-1@mist,84,273,0,0 monster Nydhoggur Memory 2142,1,1200000,600000,0
-1@mist,84,273,0,0 monster Nydhoggur Memory 2143,1,1200000,600000,0
-1@mist,95,287,0,0 monster Creeper 2135,1,1200000,600000,0
-1@mist,95,287,0,0 monster Nydhoggur Memory 2142,1,1200000,600000,0
-1@mist,95,287,0,0 monster Nydhoggur Memory 2143,1,1200000,600000,0
-1@mist,324,325,0,0 monster Creeper 2135,1,1200000,600000,0
-1@mist,324,325,0,0 monster Nydhoggur Memory 2142,1,1200000,600000,0
-1@mist,324,325,0,0 monster Nydhoggur Memory 2143,1,1200000,600000,0
-1@mist,280,343,0,0 monster Creeper 2135,1,1200000,600000,0
-1@mist,280,343,0,0 monster Nydhoggur Memory 2142,1,1200000,600000,0
-1@mist,280,343,0,0 monster Nydhoggur Memory 2143,1,1200000,600000,0
-1@mist,345,186,0,0 monster Creeper 2135,1,1200000,600000,0
-1@mist,345,186,0,0 monster Nydhoggur Memory 2142,1,1200000,600000,0
-1@mist,345,186,0,0 monster Nydhoggur Memory 2143,1,1200000,600000,0
-1@mist,105,105,85,85 monster Pom Spider 2132,8,1200000,600000,0
-1@mist,105,105,85,85 monster Angra Mantis 2133,8,1200000,600000,0
-1@mist,105,105,85,85 monster Parus 2134,8,1200000,600000,0
-1@mist,105,105,85,85 monster Little Fatum 2136,8,1200000,600000,0
-1@mist,105,105,85,85 monster Miming 2137,5,1200000,600000,0
-1@mist,105,275,85,85 monster Pom Spider 2132,10,1200000,600000,0
-1@mist,105,275,85,85 monster Angra Mantis 2133,10,1200000,600000,0
-1@mist,105,275,85,85 monster Parus 2134,10,1200000,600000,0
-1@mist,105,275,85,85 monster Little Fatum 2136,8,1200000,600000,0
-1@mist,105,275,85,85 monster Miming 2137,5,1200000,600000,0
-1@mist,275,105,85,85 monster Pom Spider 2132,12,1200000,600000,0
-1@mist,275,105,85,85 monster Angra Mantis 2133,12,1200000,600000,0
-1@mist,275,105,85,85 monster Parus 2134,10,1200000,600000,0
-1@mist,275,105,85,85 monster Little Fatum 2136,8,1200000,600000,0
-1@mist,275,105,85,85 monster Miming 2137,5,1200000,600000,0
-1@mist,275,275,85,85 monster Pom Spider 2132,15,1200000,600000,0
-1@mist,275,275,85,85 monster Angra Mantis 2133,15,1200000,600000,0
-1@mist,275,275,85,85 monster Parus 2134,10,1200000,600000,0
-1@mist,275,275,85,85 monster Little Fatum 2136,8,1200000,600000,0
-1@mist,275,275,85,85 monster Miming 2137,5,1200000,600000,0
-1@mist,325,210,25,150 boss_monster Lost Dragon 2131,1,1,7200000,600000,1
diff --git a/npc/re/mobs/fields/comodo.txt b/npc/re/mobs/fields/comodo.txt
index ae4ddedeb..d2d4ef236 100644
--- a/npc/re/mobs/fields/comodo.txt
+++ b/npc/re/mobs/fields/comodo.txt
@@ -55,10 +55,6 @@ cmd_fild04,0,0,0,0 monster Aster 1266,10,5000,0,0
//==================================================
// cmd_fild05 - Disabled on Renewal
//==================================================
-//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)
@@ -69,7 +65,7 @@ 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 - Beacon Island, Pharos
//==================================================
cmd_fild07,0,0,0,0 monster Raggler 1254,100,5000,0,0
cmd_fild07,0,0,0,0 monster Aster 1266,30,5000,0,0
@@ -94,4 +90,4 @@ cmd_fild09,0,0,0,0 monster Metaller 1058,145,5000,0,0
cmd_fild09,0,0,0,0 monster Deniro 1105,15,5000,0,0
cmd_fild09,0,0,0,0 monster Piere 1160,15,5000,0,0
cmd_fild09,0,0,0,0 monster Andre 1095,15,5000,0,0
-cmd_fild09,0,0,0,0 monster Ant Egg 1097,10,5000,0,0 \ No newline at end of file
+cmd_fild09,0,0,0,0 monster Ant Egg 1097,10,5000,0,0
diff --git a/npc/re/mobs/fields/dewata.txt b/npc/re/mobs/fields/dewata.txt
index 58118c4dc..9cb15466c 100644
--- a/npc/re/mobs/fields/dewata.txt
+++ b/npc/re/mobs/fields/dewata.txt
@@ -3,16 +3,17 @@
//===== By: ==================================================
//= Chilly
//===== Current Version: =====================================
-//= 1.0
+//= 1.1
//===== Description: =========================================
//= Official kRO monster spawns
//===== Additional Comments: =================================
//= 1.0 First Release
+//= 1.1 Updated spawn delays. [Euphy]
//============================================================
//==================================================
// dew_fild01 - Dewata Field Tribal Village
//==================================================
-dew_fild01,0,0,0,0 monster Argiope 1099,45,0,0,0
-dew_fild01,0,0,0,0 monster Alnoldi 2151,60,0,0,0
-dew_fild01,0,0,0,0 monster Cendrawasih 2153,10,0,0,0
+dew_fild01,0,0,0,0 monster Alnoldi 2151,60,5000,0,0
+dew_fild01,0,0,0,0 monster Argiope 1099,45,5000,0,0
+dew_fild01,0,0,0,0 monster Cendrawasih 2153,10,5000,0,0
diff --git a/npc/re/mobs/fields/eclage.txt b/npc/re/mobs/fields/eclage.txt
new file mode 100644
index 000000000..76c53be2b
--- /dev/null
+++ b/npc/re/mobs/fields/eclage.txt
@@ -0,0 +1,17 @@
+//===== Hercules Script ======================================
+//= Eclage Field Monster Spawn Script
+//===== By: ==================================================
+//= refis
+//===== Current Version: =====================================
+//= 1.0
+//===== Description: =========================================
+//= jRO monster spawns, taken from Auriga.
+//===== Additional Comments: =================================
+//= 1.0 First version. [Euphy]
+//============================================================
+
+//==================================================
+// ecl_fild01 - Blooming Flower Land
+//==================================================
+ecl_fild01.gat,0,0,0,0 monster Menblatt 2363,60,5000,0,0
+ecl_fild01.gat,0,0,0,0 monster Petal 2364,20,5000,0,0
diff --git a/npc/re/mobs/fields/einbroch.txt b/npc/re/mobs/fields/einbroch.txt
index f31395f3b..b06c25f59 100644
--- a/npc/re/mobs/fields/einbroch.txt
+++ b/npc/re/mobs/fields/einbroch.txt
@@ -6,15 +6,15 @@
//= 1.8
//===== Additional Comments: =================================
//= 1.1 correct spawn maps, but not yet exact amount of
-//= monsters [Lupus]
-//= maps, marked with * are correct
+//= 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.
+//= Mob quantity is custom.
//= 1.3b Changed the spawn numbers a bit. [Poki#3]
-//= Thanks to Playtester and Emperium.org
+//= 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]
@@ -104,4 +104,4 @@ ein_fild09,0,0,0,0 monster Red Mushroom 1085,10,120000,60000,0
//==================================================
//ein_fild10,0,0,0,0 monster Red Plant 1078,20,120000,60000,1
//ein_fild10,0,0,0,0 monster Yellow Plant 1081,20,120000,60000,1
-//ein_fild10,0,0,0,0 monster Blue Plant 1079,20,600000,300000,1 \ No newline at end of file
+//ein_fild10,0,0,0,0 monster Blue Plant 1079,20,600000,300000,1
diff --git a/npc/re/mobs/fields/geffen.txt b/npc/re/mobs/fields/geffen.txt
index 35ff2e814..0b1c3b3c3 100644
--- a/npc/re/mobs/fields/geffen.txt
+++ b/npc/re/mobs/fields/geffen.txt
@@ -38,8 +38,8 @@ gef_fild02,0,0,0,0 monster Coco 1104,140,5000,0,0
gef_fild02,0,0,0,0 monster Poporing 1031,20,5000,0,0
gef_fild02,0,0,0,0 monster Horn 1128,20,5000,0,0
gef_fild02,0,0,0,0 monster Elder Willow 1033,20,5000,0,0
-gef_fild02,87,48,6,6 monster Red Mushroom 1085,5,360000,180000,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
@@ -197,4 +197,4 @@ gef_fild11,283,100,4,1 monster Black Mushroom 1084,3,360000,180000,1
//==================================================
// gef_fild14 - Disabled on Renewal
-//================================================== \ No newline at end of file
+//==================================================
diff --git a/npc/re/mobs/fields/gonryun.txt b/npc/re/mobs/fields/gonryun.txt
index 290524caa..5ffd88921 100644
--- a/npc/re/mobs/fields/gonryun.txt
+++ b/npc/re/mobs/fields/gonryun.txt
@@ -17,4 +17,4 @@ gon_fild01,0,0,0,0 monster Dumpling Child 1409,55,5000,0,0
gon_fild01,0,0,0,0 monster Baby Leopard 1415,40,5000,0,0
gon_fild01,0,0,0,0 monster Side Winder 1037,10,5000,0,0
gon_fild01,0,0,0,0 monster Green Plant 1080,5,10000,0,1
-gon_fild01,0,0,0,0 monster Shining Plant 1083,1,10000,0,1 \ No newline at end of file
+gon_fild01,0,0,0,0 monster Shining Plant 1083,1,10000,0,1
diff --git a/npc/re/mobs/fields/hugel.txt b/npc/re/mobs/fields/hugel.txt
index 852d35e4e..893de3d71 100644
--- a/npc/re/mobs/fields/hugel.txt
+++ b/npc/re/mobs/fields/hugel.txt
@@ -8,9 +8,9 @@
//= 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
+//= thanks to battousai90
//= 0.4 Updated after Episode 10.4 - Hugel [Poki#3]
-//= Mob quantity is custom.
+//= 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]
@@ -71,4 +71,4 @@ hu_fild06,234,251,14,120 monster Yellow Plant 1081,10,600000,0,1
//==================================================
// hu_fild07 - Disabled on Renewal
//==================================================
-//hu_fild07,0,0,0,0 monster Yellow Plant 1081,20,10000,0,1 \ No newline at end of file
+//hu_fild07,0,0,0,0 monster Yellow Plant 1081,20,10000,0,1
diff --git a/npc/re/mobs/fields/jawaii.txt b/npc/re/mobs/fields/jawaii.txt
deleted file mode 100644
index 14490c698..000000000
--- a/npc/re/mobs/fields/jawaii.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-//===== Hercules Script ======================================
-//= Jawaii the honeymoon Island Monster Spawn Script
-//===== By: ==================================================
-//= MasterOfMuppets (1.0)
-//===== Current Version: =====================================
-//= 1.0
-//===== 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 Egg 1048,1,5400000,3000000,0
-jawaii_in,83,117,5,5 monster Thief Bug Egg 1048,1,4800000,2400000,0 \ No newline at end of file
diff --git a/npc/re/mobs/fields/lighthalzen.txt b/npc/re/mobs/fields/lighthalzen.txt
index 92cbad659..fd083f1e4 100644
--- a/npc/re/mobs/fields/lighthalzen.txt
+++ b/npc/re/mobs/fields/lighthalzen.txt
@@ -8,7 +8,7 @@
//= 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]
+//= 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]
@@ -45,4 +45,4 @@ lhz_fild03,0,0,0,0 monster Rafflesia 1162,20,5000,0,0
lhz_fild03,0,0,0,0 monster Metaling 1613,20,5000,0,0
lhz_fild03,0,0,0,0 monster Demon Pungus 1378,15,5000,0,0
lhz_fild03,0,0,0,0 monster Red Plant 1078,10,60000,30000,1
-lhz_fild03,0,0,0,0 monster Green Plant 1080,10,60000,30000,0 \ No newline at end of file
+lhz_fild03,0,0,0,0 monster Green Plant 1080,10,60000,30000,0
diff --git a/npc/re/mobs/fields/louyang.txt b/npc/re/mobs/fields/louyang.txt
index 586b49960..6654d835a 100644
--- a/npc/re/mobs/fields/louyang.txt
+++ b/npc/re/mobs/fields/louyang.txt
@@ -18,4 +18,4 @@ lou_fild01,0,0,0,0 monster Mi Gao 1516,40,5000,0,0
lou_fild01,0,0,0,0 monster Mantis 1139,19,5000,0,0
lou_fild01,0,0,0,0 monster Geographer 1368,19,5000,0,0
lou_fild01,0,0,0,0 monster Black Mushroom 1084,5,5000,0,0
-lou_fild01,0,0,0,0 monster Yellow Plant 1081,10,10000,0,1 \ No newline at end of file
+lou_fild01,0,0,0,0 monster Yellow Plant 1081,10,10000,0,1
diff --git a/npc/re/mobs/fields/malaya.txt b/npc/re/mobs/fields/malaya.txt
index 2cf027f44..6b6bcb46d 100644
--- a/npc/re/mobs/fields/malaya.txt
+++ b/npc/re/mobs/fields/malaya.txt
@@ -13,15 +13,15 @@
//==================================================
// ma_fild01 - Barrio Maligawa
//==================================================
-ma_fild01,0,0,0,0 monster Tikbalang 2313,50,0,0,0
-ma_fild01,0,0,0,0 monster Tiyanak 2314,40,0,0,0
-ma_fild01,0,0,0,0 monster Jejeling 2316,20,0,0,0
+ma_fild01,0,0,0,0 monster Tikbalang 2313,50,5000,0,0
+ma_fild01,0,0,0,0 monster Tiyanak 2314,50,5000,0,0
+ma_fild01,0,0,0,0 monster Jejeling 2316,30,5000,0,0
//==================================================
// ma_fild02 - Malaya Forest
//==================================================
-ma_fild02,0,0,0,0 monster Bungisngis 2309,40,0,0,0
-ma_fild02,0,0,0,0 monster Engkanto 2310,15,0,0,0
-ma_fild02,0,0,0,0 monster Mangkukulam 2312,20,0,0,0
-ma_fild02,0,0,0,0 monster Jejeling 2316,10,0,0,0
-ma_fild02,0,0,0,0 monster Wakwak 2315,25,0,0,0
+ma_fild02,0,0,0,0 monster Bungisngis 2309,40,5000,0,0
+ma_fild02,0,0,0,0 monster Engkanto 2310,25,5000,0,0
+ma_fild02,0,0,0,0 monster Mangkukulam 2312,30,5000,0,0
+ma_fild02,0,0,0,0 monster Jejeling 2316,20,5000,0,0
+ma_fild02,0,0,0,0 monster Wakwak 2315,25,5000,0,0
diff --git a/npc/re/mobs/fields/manuk.txt b/npc/re/mobs/fields/manuk.txt
index e27d7f6c6..eddc7169b 100644
--- a/npc/re/mobs/fields/manuk.txt
+++ b/npc/re/mobs/fields/manuk.txt
@@ -31,4 +31,4 @@ man_fild02,0,0,0,0 monster Tatacho 1986,25,5000,0,0
man_fild03,0,0,0,0 monster Hillslion 1989,25,5000,0,0
man_fild03,0,0,0,0 monster Tatacho 1986,25,5000,0,0
man_fild03,0,0,0,0 monster Centipede 1987,25,5000,0,0
-man_fild03,0,0,0,0 monster Hardrock Mammoth 1990,1,14400000,0,0 \ No newline at end of file
+man_fild03,0,0,0,0 monster Hardrock Mammoth 1990,1,14400000,0,0
diff --git a/npc/re/mobs/fields/mjolnir.txt b/npc/re/mobs/fields/mjolnir.txt
index 58fba9422..fddd95c6b 100644
--- a/npc/re/mobs/fields/mjolnir.txt
+++ b/npc/re/mobs/fields/mjolnir.txt
@@ -159,7 +159,7 @@ 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 - Mt.Mjolnir
//==================================================
mjolnir_08,0,0,0,0 monster Beetle King 1494,140,5000,0,0
mjolnir_08,0,0,0,0 monster Savage 1166,30,5000,0,0
@@ -200,7 +200,7 @@ 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 - Mt.Mjolnir
//==================================================
mjolnir_11,0,0,0,0 monster Argiope 1099,130,5000,0,0
mjolnir_11,0,0,0,0 monster Argos 1100,35,5000,0,0
@@ -220,8 +220,8 @@ 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 - Mt.Mjolnir
//==================================================
mjolnir_12,0,0,0,0 monster Dustiness 1114,130,5000,0,0
mjolnir_12,0,0,0,0 monster Hunter Fly 1035,35,5000,0,0
-mjolnir_12,0,0,0,0 monster Mantis 1139,35,5000,0,0 \ No newline at end of file
+mjolnir_12,0,0,0,0 monster Mantis 1139,35,5000,0,0
diff --git a/npc/re/mobs/fields/morocc.txt b/npc/re/mobs/fields/morocc.txt
index 3e71b0846..048dda6ba 100644
--- a/npc/re/mobs/fields/morocc.txt
+++ b/npc/re/mobs/fields/morocc.txt
@@ -17,7 +17,7 @@
//============================================================
//==================================================
-// moc_fild01 - Sograt Desert
+// moc_fild01 - Sograt Desert
//==================================================
moc_fild01,0,0,0,0 monster Peco Peco 1019,130,5000,0,0
moc_fild01,0,0,0,0 monster Muka 1055,50,5000,0,0
@@ -25,7 +25,7 @@ moc_fild01,0,0,0,0 monster Peco Peco Egg 1047,20,5000,0,0
moc_fild01,194,51,10,10 monster Yellow Plant 1081,10,900000,450000,1
//==================================================
-// moc_fild02 - Sograt Desert
+// moc_fild02 - Sograt Desert
//==================================================
moc_fild02,0,0,0,0 monster Muka 1055,130,5000,0,0
moc_fild02,0,0,0,0 monster Peco Peco 1019,60,5000,0,0
@@ -46,7 +46,7 @@ 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 - Sograt Desert
//==================================================
moc_fild03,0,0,0,0 monster Wolf 1013,140,5000,0,0
moc_fild03,0,0,0,0 monster Argos 1100,20,5000,0,0
@@ -72,7 +72,7 @@ moc_fild03,200,263,5,5 monster Green Plant 1080,2,180000,90000,1
//==================================================
//==================================================
-// moc_fild07 - Sograt Desert
+// moc_fild07 - Sograt Desert
//==================================================
moc_fild07,0,0,0,0 monster Drops 1113,140,5000,0,0
moc_fild07,0,0,0,0 monster Chonchon 1011,30,5000,0,0
@@ -101,7 +101,7 @@ moc_fild11,0,0,0,0 monster Condor 1009,30,5000,0,0
moc_fild11,0,0,0,0 monster Scorpion 1001,30,5000,0,0
//==================================================
-// moc_fild12 - Sograt Desert
+// moc_fild12 - Sograt Desert
//==================================================
moc_fild12,0,0,0,0 monster Picky 1049,50,5000,0,0
moc_fild12,0,0,0,0 monster Picky 1050,50,5000,0,0
@@ -111,7 +111,7 @@ moc_fild12,0,0,0,0 monster Condor 1009,30,5000,0,0
moc_fild12,181,336,40,20 monster Yellow Plant 1081,10,180000,90000,1
//==================================================
-// moc_fild13 - Sograt Desert
+// moc_fild13 - Sograt Desert
//==================================================
moc_fild13,0,0,0,0 monster Steel Chonchon 1042,140,5000,0,0
moc_fild13,0,0,0,0 monster Wolf 1013,15,5000,0,0
@@ -157,7 +157,7 @@ moc_fild16,0,0,0,0 monster Hode 1127,30,5000,0,0
moc_fild16,0,0,0,0 monster Frilldora 1119,10,5000,0,0
//==================================================
-// moc_fild17 - Sograt Desert
+// moc_fild17 - Sograt Desert
//==================================================
moc_fild17,0,0,0,0 monster Hode 1127,130,5000,0,0
moc_fild17,0,0,0,0 monster Sandman 1165,30,5000,0,0
@@ -192,7 +192,7 @@ moc_fild18,325,272,0,0 monster Yellow Plant 1081,1,180000,90000,1
//==================================================
//==================================================
-// moc_fild20 - Sograt Desert - Continental Guard Quarantine
+// moc_fild20 - Sograt Desert - Continental Guard Quarantine
//==================================================
moc_fild20,0,0,0,0 monster Incarnation of Morroc 1918,1,30000,0,0
moc_fild20,0,0,0,0 monster Incarnation of Morroc 1919,1,30000,0,0
@@ -200,7 +200,7 @@ moc_fild20,0,0,0,0 monster Incarnation of Morroc 1920,1,30000,0,0
moc_fild20,0,0,0,0 monster Incarnation of Morroc 1921,1,30000,0,0
//==================================================
-// moc_fild21 - Dimensional Gorge
+// moc_fild21 - Dimensional Gorge
//==================================================
moc_fild21,0,0,0,0 monster Incarnation of Morroc 1918,46,30000,0,0
moc_fild21,0,0,0,0 monster Incarnation of Morroc 1919,46,30000,0,0
@@ -208,10 +208,10 @@ moc_fild21,0,0,0,0 monster Incarnation of Morroc 1920,46,30000,0,0
moc_fild21,0,0,0,0 monster Incarnation of Morroc 1921,34,30000,0,0
//==================================================
-// moc_fild22 - Dimensional Gorge
+// moc_fild22 - Dimensional Gorge
//==================================================
moc_fild22,0,0,0,0 monster Incarnation of Morroc 1918,60,30000,0,0
moc_fild22,0,0,0,0 monster Incarnation of Morroc 1919,60,30000,0,0
moc_fild22,0,0,0,0 monster Incarnation of Morroc 1920,60,30000,0,0
moc_fild22,0,0,0,0 monster Incarnation of Morroc 1921,25,10000,0,0
-moc_fild22,0,0,0,0 boss_monster Wounded Morroc 1917,1,43200000,600000,0 \ No newline at end of file
+moc_fild22,0,0,0,0 boss_monster Wounded Morroc 1917,1,43200000,600000,0
diff --git a/npc/re/mobs/fields/moscovia.txt b/npc/re/mobs/fields/moscovia.txt
index 7ffbd4c28..158fb2d66 100644
--- a/npc/re/mobs/fields/moscovia.txt
+++ b/npc/re/mobs/fields/moscovia.txt
@@ -18,4 +18,4 @@ mosk_fild02,0,0,0,0 monster Argiope 1099,30,5000,0,0
mosk_fild02,0,0,0,0 monster Mantis 1139,10,5000,0,0
mosk_fild02,0,0,0,0 monster Geographer 1368,5,5000,0,0
mosk_fild02,0,0,0,0 monster Yellow Plant 1081,5,10000,0,1
-mosk_fild02,0,0,0,0 monster White Plant 1082,5,10000,0,1 \ No newline at end of file
+mosk_fild02,0,0,0,0 monster White Plant 1082,5,10000,0,1
diff --git a/npc/re/mobs/fields/payon.txt b/npc/re/mobs/fields/payon.txt
index 9736fb31b..473bd2bfd 100644
--- a/npc/re/mobs/fields/payon.txt
+++ b/npc/re/mobs/fields/payon.txt
@@ -36,13 +36,13 @@ 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 - Payon Forest
//==================================================
pay_fild02,0,0,0,0 monster Boa 1025,140,5000,0,0
pay_fild02,0,0,0,0 monster Wormtail 1024,30,5000,0,0
pay_fild02,0,0,0,0 monster Spore 1014,30,5000,0,0
-pay_fild02,105,256,10,10 monster Red Mushroom 1085,4,360000,180000,1
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
@@ -71,8 +71,6 @@ pay_fild04,254,193,10,10 monster Green Plant 1080,5,360000,180000,1
//==================================================
// pay_fild05 - Disabled on Renewal
//==================================================
-//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
@@ -127,4 +125,4 @@ pay_fild10,66,332,10,10 monster Blue Plant 1079,1,360000,180000,1
//==================================================
// pay_fild11 - Disabled on Renewal
-//================================================== \ No newline at end of file
+//==================================================
diff --git a/npc/re/mobs/fields/prontera.txt b/npc/re/mobs/fields/prontera.txt
index 5eec3c925..7968cbdc0 100644
--- a/npc/re/mobs/fields/prontera.txt
+++ b/npc/re/mobs/fields/prontera.txt
@@ -13,7 +13,7 @@
//============================================================
//==================================================
-// prt_fild00 - Prontera Field
+// prt_fild00 - Prontera Field
//==================================================
prt_fild00,0,0,0,0 monster Roda Frog 1012,130,5000,0,0
prt_fild00,0,0,0,0 monster Ambernite 1094,50,5000,0,0
@@ -22,7 +22,7 @@ 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 - Prontera Field
//==================================================
prt_fild01,0,0,0,0 monster Lunatic 1063,140,5000,0,0
prt_fild01,0,0,0,0 monster Poring 1002,30,5000,0,0
@@ -31,7 +31,7 @@ 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 - Prontera Field
//==================================================
prt_fild02,0,0,0,0 monster Stainer 1174,140,5000,0,0
prt_fild02,0,0,0,0 monster Creamy 1018,30,5000,0,0
@@ -41,7 +41,7 @@ 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 - Prontera Field
//==================================================
prt_fild03,0,0,0,0 monster Yoyo 1057,100,5000,0,0
prt_fild03,0,0,0,0 monster Poporing 1031,30,5000,0,0
@@ -54,7 +54,7 @@ prt_fild03,147,219,5,5 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 - Prontera Field
//==================================================
prt_fild04,0,0,0,0 monster Ambernite 1094,80,5000,0,0
prt_fild04,0,0,0,0 monster Roda Frog 1012,20,5000,0,0
@@ -62,7 +62,7 @@ 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 - Prontera Field
//==================================================
prt_fild05,0,0,0,0 monster Hornet 1004,140,5000,0,0
prt_fild05,0,0,0,0 monster Thief Bug Egg 1048,30,5000,0,0
@@ -71,7 +71,7 @@ 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 - Prontera Field
//==================================================
prt_fild06,0,0,0,0 monster Fabre 1007,140,5000,0,0
prt_fild06,0,0,0,0 monster Poring 1002,30,5000,0,0
@@ -79,7 +79,7 @@ prt_fild06,0,0,0,0 monster Lunatic 1063,30,5000,0,0
prt_fild06,222,30,40,10 monster Green Plant 1080,15,900000,450000,1
//==================================================
-// prt_fild07 - Prontera Field
+// prt_fild07 - Prontera Field
//==================================================
prt_fild07,0,0,0,0 monster Rocker 1052,150,5000,0,0
prt_fild07,0,0,0,0 monster Savage Babe 1167,50,5000,0,0
@@ -87,21 +87,37 @@ 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 - Prontera Field
//==================================================
prt_fild08,0,0,0,0 monster Poring 1002,140,5000,0,0
prt_fild08,0,0,0,0 monster Lunatic 1063,40,5000,0,0
prt_fild08,0,0,0,0 monster Fabre 1007,40,5000,0,0
//==================================================
-// prt_fild09 - Prontera Field
+// prt_fild08 - Duplicates
+//==================================================
+prt_fild08a,0,0,0,0 monster Poring 1002,140,5000,0,0
+prt_fild08b,0,0,0,0 monster Poring 1002,140,5000,0,0
+prt_fild08c,0,0,0,0 monster Poring 1002,140,5000,0,0
+prt_fild08d,0,0,0,0 monster Poring 1002,140,5000,0,0
+prt_fild08a,0,0,0,0 monster Lunatic 1063,40,5000,0,0
+prt_fild08b,0,0,0,0 monster Lunatic 1063,40,5000,0,0
+prt_fild08c,0,0,0,0 monster Lunatic 1063,40,5000,0,0
+prt_fild08d,0,0,0,0 monster Lunatic 1063,40,5000,0,0
+prt_fild08a,0,0,0,0 monster Fabre 1007,40,5000,0,0
+prt_fild08b,0,0,0,0 monster Fabre 1007,40,5000,0,0
+prt_fild08c,0,0,0,0 monster Fabre 1007,40,5000,0,0
+prt_fild08d,0,0,0,0 monster Fabre 1007,40,5000,0,0
+
+//==================================================
+// prt_fild09 - Prontera Field
//==================================================
prt_fild09,0,0,0,0 monster Magnolia 1138,140,5000,0,0
prt_fild09,0,0,0,0 monster Metaller 1058,60,5000,0,0
prt_fild09,237,115,5,5 monster Yellow Plant 1081,3,360000,180000,1
//==================================================
-// prt_fild10 - Prontera Field
+// prt_fild10 - Prontera Field
//==================================================
prt_fild10,0,0,0,0 monster Elder Willow 1033,140,5000,0,0
prt_fild10,0,0,0,0 monster Poporing 1031,20,5000,0,0
@@ -122,4 +138,4 @@ prt_fild11,0,0,0,0 monster Goblin 1125,10,5000,0,0
prt_fild11,0,0,0,0 monster Goblin 1123,10,5000,0,0
prt_fild11,0,0,0,0 monster Goblin 1122,10,5000,0,0
prt_fild11,0,0,0,0 monster Panzer Goblin 1308,1,1800000,1200000,0
-prt_fild11,0,0,0,0 monster Red Mushroom 1085,10,180000,90000,1 \ No newline at end of file
+prt_fild11,0,0,0,0 monster Red Mushroom 1085,10,180000,90000,1
diff --git a/npc/re/mobs/fields/rachel.txt b/npc/re/mobs/fields/rachel.txt
index 68e34c4c5..d8dd26f42 100644
--- a/npc/re/mobs/fields/rachel.txt
+++ b/npc/re/mobs/fields/rachel.txt
@@ -99,4 +99,4 @@ ra_fild12,0,0,0,0 monster Red Plant 1078,5,10000,0,1
//==================================================
// ra_fild13 - Disabled on Renewal
-//================================================== \ No newline at end of file
+//==================================================
diff --git a/npc/re/mobs/fields/splendide.txt b/npc/re/mobs/fields/splendide.txt
index a9b5c8a1a..d7e3aa3aa 100644
--- a/npc/re/mobs/fields/splendide.txt
+++ b/npc/re/mobs/fields/splendide.txt
@@ -20,8 +20,6 @@ spl_fild01,0,0,0,0 monster Cornus 1992,25,5000,0,0
// spl_fild02 - Splendide Field
//==================================================
spl_fild02,0,0,0,0 monster Pinguicula 1995,75,5000,0,0
-spl_fild02,0,0,0,0 monster Bradium Golem 2024,20,5000,0,0
-spl_fild02,0,0,0,0 monster Naga 1993,20,5000,0,0
spl_fild02,0,0,0,0 monster Luciola Vespa 1994,15,5000,0,0
//==================================================
@@ -30,4 +28,4 @@ spl_fild02,0,0,0,0 monster Luciola Vespa 1994,15,5000,0,0
spl_fild03,0,0,0,0 monster Luciola Vespa 1994,35,5000,0,0
spl_fild03,0,0,0,0 monster Cornus 1992,25,5000,0,0
spl_fild03,0,0,0,0 monster Naga 1993,20,5000,0,0
-spl_fild03,0,0,0,0 monster Tendrilion 1991,1,3600000,0,0 \ No newline at end of file
+spl_fild03,0,0,0,0 monster Tendrilion 1991,1,5000,0,0
diff --git a/npc/re/mobs/fields/umbala.txt b/npc/re/mobs/fields/umbala.txt
index e3bd52469..f33c07db8 100644
--- a/npc/re/mobs/fields/umbala.txt
+++ b/npc/re/mobs/fields/umbala.txt
@@ -1,27 +1,26 @@
-//===== Hercules Script ======================================
+//===== Hercules Script ======================================
//= Umbala Fields Monster Spawn Script
-//===== By: ==================================================
+//===== By: ==================================================
//= Darkchild (1.0)
-//===== Current Version: =====================================
+//===== Current Version: =====================================
//= 1.5
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.3 Official kRO 10.1 spawns [Playtester]
//= 1.4 More accurate spawns [Playtester]
//= 1.5 Updated spawns to renewal. [L0ne_W0lf]
-//============================================================
+//============================================================
//==================================================
// um_fild01 - Luluka Forest
//==================================================
-um_fild01,0,0,0,0 monster Dryad 1493,70,5000,0,0
-um_fild01,0,0,0,0 monster Stone Shooter 1495,15,5000,0,0
+um_fild01,0,0,0,0 monster Dryad 1493,60,5000,0,0
+um_fild01,0,0,0,0 monster Stone Shooter 1495,25,5000,0,0
um_fild01,0,0,0,0 monster Wootan Shooter 1498,10,5000,0,0
um_fild01,0,0,0,0 monster Wootan Fighter 1499,10,5000,0,0
um_fild01,0,0,0,0 monster Wooden Golem 1497,10,5000,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,5,180000,90000,1
-um_fild01,0,0,0,0 monster Shining Plant 1083,1,180000,90000,1
//==================================================
// um_fild02 - Hoomga Forest
@@ -48,10 +47,10 @@ 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 Wild Rose 1261,30,5000,0,0
-um_fild04,0,0,0,0 monster Stone Shooter 1495,10,5000,0,0
+um_fild04,0,0,0,0 monster Stone Shooter 1495,15,5000,0,0
um_fild04,0,0,0,0 monster Wootan Shooter 1498,5,5000,0,0
um_fild04,0,0,0,0 monster Wootan Fighter 1499,5,5000,0,0
um_fild04,0,0,0,0 monster Wooden Golem 1497,10,5000,0,0
um_fild04,0,0,0,0 monster Choco 1214,2,5000,0,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 \ No newline at end of file
+um_fild04,0,0,0,0 monster Yellow Plant 1081,5,180000,90000,1
diff --git a/npc/re/mobs/fields/veins.txt b/npc/re/mobs/fields/veins.txt
index ca8cc431e..54261c8d6 100644
--- a/npc/re/mobs/fields/veins.txt
+++ b/npc/re/mobs/fields/veins.txt
@@ -50,7 +50,7 @@ ve_fild03,200,212,114,60 monster Red Plant 1078,10,10000,0,1
ve_fild03,0,0,0,0 monster Yellow Plant 1081,10,10000,0,1
//==================================================
-// ve_fild04 - Veins Field
+// ve_fild04 - Veins Field
//==================================================
ve_fild04,0,0,0,0 monster Muscipular 1780,100,5000,0,0
ve_fild04,0,0,0,0 monster Drosera 1781,50,5000,0,0
@@ -75,4 +75,4 @@ ve_fild04,288,273,4,4 monster Blue Plant 1079,3,660000,0,1
ve_fild07,0,0,0,0 monster Stapo 1784,100,5000,0,0
ve_fild07,0,0,0,0 monster Drosera 1781,50,5000,0,0
ve_fild07,0,0,0,0 monster Muscipular 1780,30,5000,0,0
-ve_fild07,0,0,0,0 monster White Plant 1082,10,600000,0,1 \ No newline at end of file
+ve_fild07,0,0,0,0 monster White Plant 1082,10,600000,0,1
diff --git a/npc/re/mobs/fields/yuno.txt b/npc/re/mobs/fields/yuno.txt
index 13f1ecb63..3916884ca 100644
--- a/npc/re/mobs/fields/yuno.txt
+++ b/npc/re/mobs/fields/yuno.txt
@@ -9,11 +9,11 @@
//= 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]
+//= providing the information [MasterOfMuppets]
//= 1.5 Updated after Episode 10.4 - Hugel [Poki#3]
-//= Mob quantity is custom.
+//= Mob quantity is custom.
//= 1.5b Changed the spawn numbers a bit. [Poki#3]
-//= Thanks to Playtester and Emperium.org
+//= 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]
@@ -23,7 +23,7 @@
//============================================================
//==================================================
-// yuno_fild01 - Border Posts
+// yuno_fild01 - Border Posts
//==================================================
yuno_fild01,0,0,0,0 monster Geographer 1368,50,5000,0,0
yuno_fild01,0,0,0,0 monster Dustiness 1114,35,5000,0,0
@@ -112,7 +112,7 @@ 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 - Schwaltzvalt Guards Camp
+// yuno_fild09 - Schwaltzvalt Guards Camp
//==================================================
yuno_fild09,0,0,0,0 monster Grand Peco 1369,130,5000,0,0
yuno_fild09,0,0,0,0 monster Sleeper 1386,30,5000,0,0
@@ -138,4 +138,4 @@ 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 Geographer 1368,60,5000,0,0
-yuno_fild12,0,0,0,0 monster Mantis 1139,30,5000,0,0 \ No newline at end of file
+yuno_fild12,0,0,0,0 monster Mantis 1139,30,5000,0,0
diff --git a/npc/re/mobs/towns.txt b/npc/re/mobs/towns.txt
new file mode 100644
index 000000000..a6367d35e
--- /dev/null
+++ b/npc/re/mobs/towns.txt
@@ -0,0 +1,34 @@
+//===== Hercules Script ======================================
+//= Town Monster Spawn Script
+//===== By: ==================================================
+//= Euphy
+//===== Current Version: =====================================
+//= 1.0
+//===== Description: =========================================
+//= Spawns monsters in towns.
+//===== Additional Comments: =================================
+//= 1.0 First version, Renewal spawns.
+//============================================================
+
+//==================================================
+// Brasilis, Strange Hydras
+//==================================================
+brasilis,283,88,6,6 monster Strange Hydra 2081,5,5000,0,0
+brasilis,284,104,6,6 monster Strange Hydra 2081,4,5000,0,0
+brasilis,215,80,6,6 monster Strange Hydra 2081,4,5000,0,0
+brasilis,96,50,8,8 monster Strange Hydra 2081,5,5000,0,0
+
+//==================================================
+// Alberta Ship, Swapping the Deck
+//==================================================
+alb_ship,0,0,0,0 monster Strange Mouse 2057,25,0,0,0
+
+//==================================================
+// Prontera, Training Dummy Area
+//==================================================
+prontera,251,77,0,0 monster Dummy Lv50 2409,1,5000,0,0
+prontera,259,77,0,0 monster Dummy Lv50 2409,1,5000,0,0
+prontera,251,66,0,0 monster Dummy Lv100 2410,1,5000,0,0
+prontera,259,66,0,0 monster Dummy Lv100 2410,1,5000,0,0
+prontera,251,55,0,0 monster Dummy Lv150 2411,1,5000,0,0
+prontera,259,55,0,0 monster Dummy Lv150 2411,1,5000,0,0
diff --git a/npc/re/other/bulletin_boards.txt b/npc/re/other/bulletin_boards.txt
new file mode 100644
index 000000000..1d0dbb904
--- /dev/null
+++ b/npc/re/other/bulletin_boards.txt
@@ -0,0 +1,37 @@
+//===== Hercules Script ======================================
+//= Bulletin Boards
+//===== By: ==================================================
+//= Euphy
+//===== Current Version: =====================================
+//= 1.0
+//===== Description: =========================================
+//= Bulletin Boards for beginners.
+//===== Additional Comments: =================================
+//= 1.0 Moved Izlude NPCs to Pre-RE/RE paths.
+//= Disabled until proper coordinates are found.
+//============================================================
+
+/*
+- script ::BulletinBoard_iz -1,{
+ mes "[Izlude: The Satellite City]";
+ mes "Welcome to Izlude, the satellite of Prontera. Izlude was built to support Prontera's defense and to accomodate its burgeoning population.";
+ next;
+ mes "[Izlude: The Satellite City]";
+ mes "The main buildings here are to accomodate the growth of the Cryptura Academy.";
+ next;
+ mes "[Izlude: The Satellite City]";
+ mes "Points of interest include the Swordman Association building which allows adventurers to change their job to Swordman, and the Battle Area that is East of Izlude.";
+ next;
+ mes "[Izlude: The Satellite City]";
+ mes "At the docks, you may take a ship and travel to ^003399Alberta^000000 or ^660000Byalan Island^000000.";
+ next;
+ mes "[Izlude: The Satellite City]";
+ mes "From Izlude, ^3355FFProntera^000000 is located to the Northwest, and ^006600Payon^000000 is located to the South. Enjoy your travels in the Rune-Midgarts Kingdom.";
+ close;
+}
+izlude,25,103,0 duplicate(BulletinBoard_iz) Bulletin Board#5 2_BULLETIN_BOARD
+izlude_a,25,103,0 duplicate(BulletinBoard_iz) Bulletin Board#5_a 2_BULLETIN_BOARD
+izlude_b,25,103,0 duplicate(BulletinBoard_iz) Bulletin Board#5_b 2_BULLETIN_BOARD
+izlude_c,25,103,0 duplicate(BulletinBoard_iz) Bulletin Board#5_c 2_BULLETIN_BOARD
+izlude_d,25,103,0 duplicate(BulletinBoard_iz) Bulletin Board#5_d 2_BULLETIN_BOARD
+*/
diff --git a/npc/re/other/item_merge.txt b/npc/re/other/item_merge.txt
new file mode 100644
index 000000000..f823f5c3c
--- /dev/null
+++ b/npc/re/other/item_merge.txt
@@ -0,0 +1,69 @@
+//===== Hercules Script ======================================
+//= Mergician
+//===== By: ==================================================
+//= Euphy
+//===== Current Version: =====================================
+//= 1.0
+//===== Description: =========================================
+//= [Official Conversion]
+//= Merges items taking up multiple slots in a player's
+//= inventory.
+//===== Additional Comments: =================================
+//= 1.0 First version, currently useless/disabled.
+//============================================================
+
+prontera,146,95,3 script Mergician#pron 1_M_WIZARD,{
+ if (checkweight(1301,1) == 0) {
+ mes "- Wait a second !! -";
+ mes "- You are carrying too many items -";
+ mes "- or too much weight to proceed. -";
+ mes "- Come back after -";
+ mes "- arranging your inventory. -";
+ close;
+ }
+ mes "[Mergician]";
+ mes "Do you believe in the miracle of Merge god?? If so, repeat my spell loudly as I pronunce it!!!";
+ mes "Merge Merge, Merrrrge!!!";
+ next;
+ switch(select("What is the miracle of Merge?:Merrrrge!!!!:Abandon...")) {
+ case 1:
+ mes "[Mergician]";
+ mes "There is an order which rules the world and keeps the world to go well.";
+ next;
+ mes "[Mergician]";
+ mes "But there has been a bad factor which totally jeopardised this rule!!";
+ next;
+ mes "[Mergician]";
+ mes "Those things which are separated even if they are composed by the same material!!";
+ next;
+ mes "[Mergician]";
+ mes "Have you never experienced this bad incident??";
+ mes "The fact that I had ^3131FFthe same potion, but appearing more than twice in your inventory!!^000000 So unpleasant!!!";
+ next;
+ mes "[Mergician]";
+ mes "Believe in Mergism. That is the truth.";
+ mes "Then I can help you be happy and content.";
+ close;
+ case 2:
+ mes "[Mergician]";
+ mes "This is the total holy ritual to pray to the Great God, Merge! and I am borrowing the power for a while!!";
+ next;
+ mes "[Mergician]";
+ mes "And if you eagerly want to be blessed by Merge, be humble and shout out loud! Merge Merge, Merrrrge!!!";
+ next;
+ switch(select("Merrrrge!:Don't follow what he says.")) {
+ case 1:
+// MergeItem
+ mes "[Mergician]";
+ mes "Merge just heard your wish and let it be realised!";
+ mes "Open your inventory to check the miracle!";
+ close;
+ case 2:
+ mes "[Mergician]";
+ mes "You jerk!!! You just broke the whole rhythm! Why can't you get my flow and follow me?! Idiot!";
+ close;
+ }
+ case 3:
+ close;
+ }
+}
diff --git a/npc/re/other/mail.txt b/npc/re/other/mail.txt
new file mode 100644
index 000000000..42c26db6f
--- /dev/null
+++ b/npc/re/other/mail.txt
@@ -0,0 +1,19 @@
+//===== Hercules Script ======================================
+//= Mail Boxes
+//===== By: ==================================================
+//= Euphy
+//===== Current Version: =====================================
+//= 1.0
+//===== Description: =========================================
+//= [Official Conversion]
+//= Pickup and write mail from/to players in game.
+//===== Additional Comments: =================================
+//= 1.0 First version, Renewal duplicates.
+//============================================================
+
+// Izlude
+//============================================================
+izlude_a,136,94,0 duplicate(MailBox) Mailbox#iz_a 2_POSTBOX
+izlude_b,136,94,0 duplicate(MailBox) Mailbox#iz_b 2_POSTBOX
+izlude_c,136,94,0 duplicate(MailBox) Mailbox#iz_c 2_POSTBOX
+izlude_d,136,94,0 duplicate(MailBox) Mailbox#iz_d 2_POSTBOX
diff --git a/npc/re/other/mercenary_rent.txt b/npc/re/other/mercenary_rent.txt
index 0e92f8fc2..21f54b46f 100644
--- a/npc/re/other/mercenary_rent.txt
+++ b/npc/re/other/mercenary_rent.txt
@@ -4,14 +4,22 @@
//= Daegaladh
//===== Current Version: =====================================
//= 1.0
-//===== Compatible With: =====================================
-//= Hercules
//===== Description: =========================================
//= Sells Lancer, Sword, and Archer mercenaries,
//= along with related mercenary items.
//===== Additional Comments: =================================
//= 1.0 First version. [L0ne_W0lf]
+//= 1.1 Added Izlude duplicates. [Euphy]
//============================================================
-izlude,47,169,5 duplicate(Mercenary Manager#main) Mercenary Manager#Sword 734
-izlude,56,169,4 duplicate(MercMerchant) Mercenary Merchant#Sword 892
+izlude,47,170,4 duplicate(Mercenary Manager#main) Mercenary Manager#Sword 4_M_JOB_KNIGHT2
+izlude_a,47,170,4 duplicate(Mercenary Manager#main) Mercenary Manager#Swo_a 4_M_JOB_KNIGHT2
+izlude_b,47,170,4 duplicate(Mercenary Manager#main) Mercenary Manager#Swo_b 4_M_JOB_KNIGHT2
+izlude_c,47,170,4 duplicate(Mercenary Manager#main) Mercenary Manager#Swo_c 4_M_JOB_KNIGHT2
+izlude_d,47,170,4 duplicate(Mercenary Manager#main) Mercenary Manager#Swo_d 4_M_JOB_KNIGHT2
+
+izlude,55,170,4 duplicate(MercMerchant) Mercenary Merchant#Sword 4_F_HUWOMAN
+izlude_a,55,170,4 duplicate(MercMerchant) Mercenary Merchant#Swo_a 4_F_HUWOMAN
+izlude_b,55,170,4 duplicate(MercMerchant) Mercenary Merchant#Swo_b 4_F_HUWOMAN
+izlude_c,55,170,4 duplicate(MercMerchant) Mercenary Merchant#Swo_c 4_F_HUWOMAN
+izlude_d,55,170,4 duplicate(MercMerchant) Mercenary Merchant#Swo_d 4_F_HUWOMAN
diff --git a/npc/re/other/pvp.txt b/npc/re/other/pvp.txt
new file mode 100644
index 000000000..61e0817fa
--- /dev/null
+++ b/npc/re/other/pvp.txt
@@ -0,0 +1,91 @@
+//===== Hercules Script ======================================
+//= PvP NPCs
+//===== By: ==================================================
+//= Euphy
+//===== Current Version: =====================================
+//= 1.0
+//===== Description: =========================================
+//= PvP NPCs that are found in the Inns in major cities.
+//= Includes Yoyo Mode, Nightmare Mode, and Event Mode.
+//===== Additional Comments: =================================
+//= 1.0 First version, Renewal.
+//============================================================
+
+// PVP Warpers
+//============================================================
+pvp_y_room,30,85,4 script Fight Square Reception#1 8W_SOLDIER,{ //5,5
+ callfunc "F_PVP_FSRS",50,69;
+ end;
+
+OnInit:
+ waitingroom "LV 50 ~ LV 69",0;
+ end;
+}
+
+pvp_y_room,38,85,4 script Fight Square Reception#2 8W_SOLDIER,{ //5,5
+ callfunc "F_PVP_FSRS",70,89;
+ end;
+
+OnInit:
+ waitingroom "LV 70 ~ LV 89",0;
+ end;
+}
+
+pvp_y_room,46,85,4 script Fight Square Reception#3 8W_SOLDIER,{ //5,5
+ callfunc "F_PVP_FSRS",90,99;
+ end;
+
+OnInit:
+ waitingroom "LV 90 ~ LV 99",0;
+ end;
+}
+
+pvp_y_room,54,85,4 script Fight Square Reception#8 8W_SOLDIER,{
+ callfunc "F_PVP_FSRS";
+ end;
+
+OnInit:
+ waitingroom "Free for all",0;
+ end;
+}
+
+pvp_y_room,62,85,4 script Fight Square Reception#4 8W_SOLDIER,{
+ //if (ADVJOB > 0) {
+ if (Upper == 1) {
+ mes "[PVP Fight Square Reception Staff]";
+ mes "You have been transcended.";
+ mes "You are not allowed to enter.";
+ close;
+ }
+ callfunc "F_PVP_FSRS";
+ end;
+
+OnInit:
+ waitingroom "Normal Jobs Only",0;
+ end;
+}
+
+pvp_y_room,70,85,4 script Fight Square Reception#5 8W_SOLDIER,{
+ //if (ADVJOB == 0) {
+ if (Upper != 1) {
+ mes "[PVP Fight Square Reception Staff]";
+ mes "You have not transcended.";
+ mes "You are not allowed to enter.";
+ close;
+ }
+ callfunc "F_PVP_FSRS";
+ end;
+
+OnInit:
+ waitingroom "Trans Jobs Only",0;
+ end;
+}
+
+pvp_n_room,86,85,4 script Fight Square Reception#n 8W_SOLDIER,{
+ callfunc "F_PVP_FSRS";
+ end;
+
+OnInit:
+ waitingroom "Free for all",0;
+ end;
+}
diff --git a/npc/re/other/resetskill.txt b/npc/re/other/resetskill.txt
new file mode 100644
index 000000000..f3415e6c9
--- /dev/null
+++ b/npc/re/other/resetskill.txt
@@ -0,0 +1,147 @@
+//===== Hercules Script ======================================
+//= Hypnotist
+//===== By: ==================================================
+//= Euphy
+//===== Current Version: =====================================
+//= 1.1
+//===== Description: =========================================
+//= [Official Conversion]
+//= Stat and skill resetter for expanded first class under
+//= base level 50 and normal first class.
+//===== Additional Comments: =================================
+//= 1.0 First version, Renewal script.
+//= 1.1 Added Izlude duplicates. [Euphy]
+//============================================================
+
+izlude,127,175,3 script Hypnotist#novice 4_F_TELEPORTER,{
+ mes "[Hypnotist]";
+ mes "Greetings, adventurer.";
+ mes "I'm a member of the Hypnotist";
+ mes "Academy sent here to Izlude";
+ mes "to provide Skill Reset services";
+ mes "to certain First Class characters for a really good price: free!";
+ next;
+ mes "[Hypnotist]";
+ mes "Although I offer unlimited";
+ mes "stat/skill resets for now, I have";
+ mes "two conditions that must be";
+ mes "fulfilled. First, you must be";
+ mes "lower than ^FF0000Base Level 50^000000.";
+ next;
+ mes "[Hypnotist]";
+ mes "Second, you must be a";
+ mes "^FF0000Swordman, Acolyte, Mage,";
+ mes "Thief, Archer, Merchant,";
+ mes "Taekwon Boy, or Taekwon Girl,";
+ mes "Gunslinger and Ninja^000000";
+ mes "Job character to qualify.";
+ mes "Now, do you have any questions?";
+ next;
+ switch(select("^FF0000Stat/Skill Reset?:Reset stats:Reset skills^000000:Cancel")) {
+ case 1:
+ mes "[Hypnotist]";
+ mes "Stat/Skill Resets allow adventuers";
+ mes "to redistribute their Skill";
+ mes "Points if they are unhappy";
+ mes "with their current skills.";
+ next;
+ mes "[Hypnotist]";
+ mes "Before proceeding with";
+ mes "a Stat/Skill Reset, you must";
+ mes "reduce all of the weight";
+ mes "of all carried items on your";
+ mes "character to 0. You can put";
+ mes "extra items in Kafra Storage.";
+ next;
+ mes "[Hypnotist]";
+ mes "Ah, it's also important";
+ mes "to remove your ^FF0000Pushcart^000000";
+ mes "if you have one equipped.";
+ mes "Otherwise, hypnosis won't";
+ mes "work, or will backfire...";
+ close;
+ case 2:
+ set .@str$,"Stat";
+ case 3:
+ if (.@str$ == "")
+ set .@str$,"Skill";
+ mes "[Hypnotist]";
+ mes "Are you sure that you";
+ mes "want to proceed with";
+ mes "my ^FF0000"+.@str$+" Reset^000000 service?";
+ next;
+ if(select("Yes:Cancel") == 1)
+ break;
+ case 4:
+ mes "[Hypnotist]";
+ mes "Thank you, and good";
+ mes "luck on your adventures.";
+ mes "Please travel in safety~";
+ close;
+ }
+ if ((Class >= Job_Swordman && Class <= Job_Thief) || Class == Job_Taekwon || Class == Job_Gunslinger || Class == Job_Ninja) {
+ if (checkcart()) {
+ mes "[Hypnotist]";
+ mes "Oh! Please remove your";
+ mes "Pushcart before proceeding";
+ mes "with the "+.@str$+" Reset service.";
+ mes "Thanks for cooperating~";
+ close;
+ }
+ if (Weight != 0) {
+ mes "[Hypnotist]";
+ mes "If you're here for my "+.@str$;
+ mes "Reset service, please";
+ mes "remember that you can't";
+ mes "reset your "+.@str$+"s until the";
+ mes "^FF0000weight of your carried items in";
+ mes "your Inventory is reduced to 0^000000.";
+ next;
+ mes "[Hypnotist]";
+ mes "Why don't you place your";
+ mes "things into the Kafra Storage";
+ mes "for now? That way, you can";
+ mes "safely keep all of your goods.";
+ close;
+ }
+ if (BaseLevel >= 50 && (Class == Job_Taekwon || Class == Job_Gunslinger || Class == Job_Ninja)) {
+ mes "[Hypnotist]";
+ mes "I'm sorry, but characters";
+ mes "with Base Levels higher";
+ mes "than 50 are ineligible for the";
+ mes .@str$+" Reset service I provide.";
+ close;
+ }
+ mes "[Hypnotist]";
+ mes "Thank you for using";
+ mes "my "+.@str$+" Redistribution";
+ mes "services. Oh, and best";
+ mes "of luck to you on your";
+ mes "travels, adventurer.";
+ if (.@str$ == "Stat")
+ resetstatus;
+ else
+ resetskill;
+ close;
+ } else {
+ mes "[Hypnotist]";
+ mes "I'm sorry, but your";
+ mes "Job Class doesn't qualify";
+ mes "for the "+.@str$+" Reset service";
+ mes "that I provide. I can only";
+ mes "offer "+.@str$+" Resets to the";
+ mes "following Jobs...";
+ next;
+ mes "[Hypnotist]";
+ mes "^FF0000Swordman, Acolyte,";
+ mes "Mage, Thief, Archer,";
+ mes "Merchant, Taekwon";
+ mes "Boy, Taekwon Girl,";
+ mes "Gunslinder and Ninja^000000.";
+ close;
+ }
+}
+izlude_a,127,175,3 duplicate(Hypnotist#novice) Hypnotist#novice_a 4_F_TELEPORTER
+izlude_b,127,175,3 duplicate(Hypnotist#novice) Hypnotist#novice_b 4_F_TELEPORTER
+izlude_c,127,175,3 duplicate(Hypnotist#novice) Hypnotist#novice_c 4_F_TELEPORTER
+izlude_d,127,175,3 duplicate(Hypnotist#novice) Hypnotist#novice_d 4_F_TELEPORTER
diff --git a/npc/re/other/stone_change.txt b/npc/re/other/stone_change.txt
new file mode 100644
index 000000000..cfb2aa5eb
--- /dev/null
+++ b/npc/re/other/stone_change.txt
@@ -0,0 +1,59 @@
+//===== Hercules Script ======================================
+//= Stone Changer
+//===== By: ==================================================
+//= Euphy
+//===== Current Version: =====================================
+//= 1.0
+//===== Description: =========================================
+//= [Official Conversion]
+//= Organizes ores in a player's inventory.
+//===== Additional Comments: =================================
+//= 1.0 First version.
+//============================================================
+
+geffen_in,99,174,5 script Ore Tester#sorty 8_F_GIRL,{
+ mes "[Ore Tester Sorty]";
+ mes "Do you have ^3131FFany same type of ores in your inventories^000000 which take many spaces?";
+ mes "I can distinguish your ores and organize them right away~!";
+ next;
+ switch(select("Refine my Ore.:Cancel.")) {
+ case 1:
+ mes "[Ore Tester Sorty]";
+ mes "At the moment I can only distinguish ^FF0000Steel^000000, ^FF0000Iron^000000, ^FF0000Iron Ore^000000, and ^FF0000Rough Oridecon^000000 and organize them.";
+ mes "Please note that ^3131FFother items are unable^000000!";
+ next;
+ mes "[Ore Tester Sorty]";
+ mes "So, would you like me to organize your ores?";
+ next;
+ set .@i, select("Steel, please.:Iron, please.:Iron Ore, please.:Rough Oridecon, please.:No, thanks.");
+ if (.@i == 5) {
+ mes "[Ore Tester Sorty]";
+ mes "Huh, I really hate messy people!";
+ close;
+ }
+ setarray .@ores[0],999,998,1002,756;
+ set .@item, .@ores[.@i-1];
+ if (countitem(.@item) == 0) {
+ mes "[Ore Tester Sorty]";
+ mes "You don't have any "+getitemname(.@item)+"...";
+ close;
+ }
+ while(1) {
+ if (countitem(.@item)) {
+ set .@count, countitem(.@item);
+ set .@total, .@total + .@count;
+ delitem .@item, .@count;
+ } else {
+ getitem .@item, .@total;
+ break;
+ }
+ }
+ mes "[Ore Tester Sorty]";
+ mes "It's done. Looks great! Don't you think so?";
+ close;
+ case 2:
+ mes "[Ore Tester Sorty]";
+ mes "It seems that your bag is clean? Huhu! You might be the master of cleaning!";
+ close;
+ }
+}
diff --git a/npc/re/mobs/towns/brasilis.txt b/npc/re/other/turbo_track.txt
index 12b0cd658..b975093a8 100644
--- a/npc/re/mobs/towns/brasilis.txt
+++ b/npc/re/other/turbo_track.txt
@@ -1,14 +1,14 @@
//===== Hercules Script ======================================
-//= Brasilis Quest Monsters
+//= Turbo Track
//===== By: ==================================================
-//= L0ne_W0lf
+//= Euphy
//===== Current Version: =====================================
//= 1.0
//===== Description: =========================================
-//= 1.0 First version
+//= [Official Conversion]
+//= Renewal duplicates.
+//===== Additional Comments: =================================
+//= 1.0 Split Mount Manager NPC.
//============================================================
-brasilis,283,88,6,6 monster Strange Hydra 2081,5,5000,0,0
-brasilis,284,104,6,6 monster Strange Hydra 2081,4,5000,0,0
-brasilis,215,80,6,6 monster Strange Hydra 2081,4,5000,0,0
-brasilis,96,50,8,8 monster Strange Hydra 2081,5,5000,0,0
+alde_gld,181,199,5 duplicate(MountManager_turbo) Mount Manager 4_F_RACING
diff --git a/npc/re/quests/cupet.txt b/npc/re/quests/cupet.txt
index c2ba9fec7..829ec2dae 100644
--- a/npc/re/quests/cupet.txt
+++ b/npc/re/quests/cupet.txt
@@ -4,17 +4,15 @@
//= Z3R0
//===== Current Version: =====================================
//= 1.0
-//===== Compatible With: =====================================
-//= Hercules
//===== Description: =========================================
-//= [Aegis Conversion]
+//= [Official Conversion]
//= Exchanges Hunted Items for Tames
//===== Additional Comments: =================================
-//= v1.0 First / Optimized Version
+//= 1.0 First / Optimized Version
//============================================================
// 1st NPC
-- script CPM1 750,{
+- script CPM1 4_M_ALCHE_C,{
set .@npc$, "[Cute Pet Manager]";
@@ -45,7 +43,7 @@
}
// 2nd NPC
-- script CPM2 750,{
+- script CPM2 4_M_ALCHE_C,{
set .@npc$, "[Cute Pet Manager]";
@@ -77,7 +75,7 @@
}
// 3rd NPC
-- script CPM3 750,{
+- script CPM3 4_M_ALCHE_C,{
set .@npc$, "[Cute Pet Manager]";
@@ -160,7 +158,7 @@ function script cute_pet_manager {
next;
// Create Menu System
- for (set .@a, 0; .@a < getarraysize(getarg(0)); set .@a, .@a + 1) {
+ for (set .@a, 0; .@a < getarraysize(getarg(0)); set .@a, .@a + 1) {
set .@menu$, .@menu$ + (.@menu$ == "" ? "" : ":") + getitemname(getelementofarray(getarg(0), .@a));
}
@@ -195,7 +193,7 @@ function script cute_pet_manager {
mes "Do you want to exchange with me?";
next;
- if (select("Exchange:Don't Exchange") == 2) {
+ if (select("Exchange:Don't Exchange") == 2) {
mes "[Cute Pet Manager]";
mes "You don't? You will come back again.";
close;
@@ -225,18 +223,18 @@ function script cute_pet_manager {
}
// NPC Duplicates
-prontera,67,212,5 duplicate(CPM1) Cute Pet Manager#1 750
-prontera,242,92,3 duplicate(CPM2) Cute Pet Manager#2 750
-prontera,179,92,3 duplicate(CPM3) Cute Pet Manager#3 750
+prontera,67,212,5 duplicate(CPM1) Cute Pet Manager#1 4_M_ALCHE_C
+prontera,242,92,3 duplicate(CPM2) Cute Pet Manager#2 4_M_ALCHE_C
+prontera,179,92,3 duplicate(CPM3) Cute Pet Manager#3 4_M_ALCHE_C
-geffen,180,125,5 duplicate(CPM1) Cute Pet Manager#4 750
-geffen,152,66,3 duplicate(CPM2) Cute Pet Manager#5 750
-geffen,197,95,3 duplicate(CPM3) Cute Pet Manager#6 750
+geffen,180,125,5 duplicate(CPM1) Cute Pet Manager#4 4_M_ALCHE_C
+geffen,152,66,3 duplicate(CPM2) Cute Pet Manager#5 4_M_ALCHE_C
+geffen,197,95,3 duplicate(CPM3) Cute Pet Manager#6 4_M_ALCHE_C
-morocc,115,83,5 duplicate(CPM1) Cute Pet Manager#7 750
-morocc,218,130,3 duplicate(CPM2) Cute Pet Manager#8 750
-morocc,236,225,3 duplicate(CPM3) Cute Pet Manager#9 750
+morocc,115,83,5 duplicate(CPM1) Cute Pet Manager#7 4_M_ALCHE_C
+morocc,218,130,3 duplicate(CPM2) Cute Pet Manager#8 4_M_ALCHE_C
+morocc,236,225,3 duplicate(CPM3) Cute Pet Manager#9 4_M_ALCHE_C
-payon,109,278,5 duplicate(CPM1) Cute Pet Manager#10 750
-payon,157,124,3 duplicate(CPM2) Cute Pet Manager#11 750
-payon,85,237,3 duplicate(CPM3) Cute Pet Manager#12 750
+payon,109,278,5 duplicate(CPM1) Cute Pet Manager#10 4_M_ALCHE_C
+payon,157,124,3 duplicate(CPM2) Cute Pet Manager#11 4_M_ALCHE_C
+payon,85,237,3 duplicate(CPM3) Cute Pet Manager#12 4_M_ALCHE_C
diff --git a/npc/re/quests/eden/11-25.txt b/npc/re/quests/eden/11-25.txt
index 361f8fb57..200454e81 100644
--- a/npc/re/quests/eden/11-25.txt
+++ b/npc/re/quests/eden/11-25.txt
@@ -12,7 +12,7 @@
//= 1.2 Optimized. [Euphy]
//============================================================
-moc_para01,36,38,3 script Mission [11 - 25]#Tuto 857,{
+moc_para01,36,38,3 script Mission [11 - 25]#Tuto 4_BOARD3,{
if (countitem(6219) < 1) {
mes "- You need to have an -";
mes "- ^4d4dff'Eden Group Mark'^000000 -";
@@ -97,7 +97,7 @@ L_Quest:
close;
}
-moc_para01,32,30,6 script Spike 914,{
+moc_para01,32,30,6 script Spike 4_F_CHILD,{
for(set .@i,11114; .@i<11124; set .@i,.@i+1) {
set .@j, checkquest(.@i,HUNTING);
if (.@j == 2) switch(.@i) {
diff --git a/npc/re/quests/eden/26-40.txt b/npc/re/quests/eden/26-40.txt
index 5467c773e..a4f0d5637 100644
--- a/npc/re/quests/eden/26-40.txt
+++ b/npc/re/quests/eden/26-40.txt
@@ -12,7 +12,7 @@
//= 1.2 Optimized. [Euphy]
//============================================================
-moc_para01,38,38,3 script Mission [26 - 40] 857,{
+moc_para01,38,38,3 script Mission [26 - 40] 4_BOARD3,{
if (countitem(6219) < 1) {
mes "You are not a qualified member. You can not use the bulletin board.";
close;
@@ -84,7 +84,7 @@ L_Quest:
mes "You have declined the "+getarg(2)+" mission.";
close;
}
- if (checkquest(getarg(0)) == 1) mes "You are already doing this mission.";
+ if (checkquest(getarg(0)) > -1) mes "You are already doing this mission.";
else {
setquest getarg(0);
mes "You have accepted the "+getarg(2)+" mission.";
@@ -95,7 +95,7 @@ L_Quest:
close;
}
-geffen,103,42,5 script Sponiac 99,{
+geffen,103,42,5 script Sponiac 4W_M_03,{
if (checkweight(1201,1) == 0 || (MaxWeight - Weight) < 3500) {
mes "[Sponiac]";
mes "Why are you carrying so many items?";
@@ -175,7 +175,7 @@ L_Quest:
close;
}
-moc_ruins,173,55,3 script Dieshin Man 89,{
+moc_ruins,173,55,3 script Dieshin Man 4_M_ORIENT02,{
if (checkweight(1201,1) == 0 || (MaxWeight - Weight) < 3500) {
mes "[Dieshin Man]";
mes "Why are you carrying so many items?";
@@ -259,7 +259,7 @@ L_Quest:
close;
}
-pay_fild07,83,89,7 script Zoologist 89,{
+pay_fild07,83,89,7 script Zoologist 4_M_ORIENT02,{
if (checkweight(1201,1) == 0 || (MaxWeight - Weight) < 3500) {
mes "[Zoologist]";
mes "Why are you carrying so many items?";
@@ -324,7 +324,7 @@ pay_fild07,83,89,7 script Zoologist 89,{
close;
}
-prt_fild03,30,254,3 script Entomologist 83,{
+prt_fild03,30,254,3 script Entomologist 4_M_01,{
if (checkweight(1201,1) == 0 || (MaxWeight - Weight) < 3500) {
mes "[Entomologist]";
mes "Why are you carrying so many items?";
@@ -389,7 +389,7 @@ prt_fild03,30,254,3 script Entomologist 83,{
close;
}
-xmas_fild01,92,57,3 script Biologist 97,{
+xmas_fild01,92,57,3 script Biologist 4W_M_01,{
if (checkweight(1201,1) == 0 || (MaxWeight - Weight) < 3500) {
mes "[Biologist]";
mes "Why are you carrying so many items?";
@@ -454,7 +454,7 @@ xmas_fild01,92,57,3 script Biologist 97,{
close;
}
-payon,179,66,3 script Dashia 931,{
+payon,179,66,3 script Dashia 4_M_RACHMAN1,{
if (checkweight(1201,1) == 0 || (MaxWeight - Weight) < 3500) {
mes "[Dashia]";
mes "Why are you carrying so many items?";
diff --git a/npc/re/quests/eden/41-55.txt b/npc/re/quests/eden/41-55.txt
index dc71a6c5a..eb1c22e42 100644
--- a/npc/re/quests/eden/41-55.txt
+++ b/npc/re/quests/eden/41-55.txt
@@ -12,7 +12,7 @@
//= 1.2 Optimized. [Euphy]
//============================================================
-moc_para01,40,38,3 script Mission [41 - 55] 857,{
+moc_para01,40,38,3 script Mission [41 - 55] 4_BOARD3,{
if (countitem(6219) < 1) {
mes "You are not an Eden group member. You are not qualified to access the bulletin board.";
close;
@@ -24,7 +24,7 @@ moc_para01,40,38,3 script Mission [41 - 55] 857,{
}
if (checkquest(12088) == -1) {
if (BaseLevel < 41 || BaseLevel > 55) {
- mes "[41 ~ 55 Lv. Mission Board]";
+ mes "Mission bulletin board for Lv41~55 adventurers.";
close;
}
mes "[Mission Board]";
@@ -48,13 +48,13 @@ moc_para01,40,38,3 script Mission [41 - 55] 857,{
case 11: callsub L_Quest,12082,"Don't ask why, but please hunt 30 Shellfish. It is a secret mission!";
case 12: callsub L_Quest,12083,"Marine Sphere? Do you know what a Marine Sphere is? I got a mission for you to hunt 15 Marine Sphere, so please do so.";
case 13: callsub L_Quest,12084,"The mayor wants to eat a delicious fish dish. Phen will be the perfect ingredient for it. Please hunt 20 Phen!";
- case 14: callsub L_Quest,12085,"You have accepted the mission. For more details, please press 'alt + u' keys, you can get information from the Quest Window.";
+ case 14: callsub L_Quest,12085,"Dead Orc monsters got back to our town and they've revived as Orc Skeletons. We are in chaos! Please hunt 15 Orc Skeleton.";
case 15: callsub L_Quest,12086,"Some weird monsters called Zenorc are attacking us. Please hunt 30 Zenorc.";
case 16: callsub L_Quest,12087,"Be prepared! It is a cruel mission! Hunt 15 Mummies!! I tried once, but I couldn't succeed. It is too scary!";
}
end;
}
- setarray .@Exp[0],9600,7200,15750,7875,11100,8550,17100,9000,12300,9900,20250,10350,13800,11025,22500,11250;
+ setarray .@exp[0],9600,7200,15750,7875,11100,8550,17100,9000,12300,9900,20250,10350,13800,11025,22500,11250;
for(set .@i,0; .@i<16; set .@i,.@i+1)
if (checkquest(12072+.@i,HUNTING) == 2) {
mes "[Mission Board]";
@@ -63,7 +63,7 @@ moc_para01,40,38,3 script Mission [41 - 55] 857,{
erasequest 12088;
erasequest 12072+.@i;
specialeffect2 EF_STEAL;
- getexp .@Exp[.@i],0;
+ getexp .@exp[.@i],0;
close;
}
if ((checkquest(12072,HUNTING) == 0) && (checkquest(12073,HUNTING) == 0) && (checkquest(12074,HUNTING) == 0) && (checkquest(12075,HUNTING) == 0) && (checkquest(12076,HUNTING) == 0) && (checkquest(12077,HUNTING) == 0) && (checkquest(12078,HUNTING) == 0) && (checkquest(12079,HUNTING) == 0) && (checkquest(12080,HUNTING) == 0) && (checkquest(12081,HUNTING) == 0) && (checkquest(12082,HUNTING) == 0) && (checkquest(12083,HUNTING) == 0) && (checkquest(12084,HUNTING) == 0) && (checkquest(12085,HUNTING) == 0) && (checkquest(12086,HUNTING) == 0) && (checkquest(12087,HUNTING) == 0)) {
diff --git a/npc/re/quests/eden/56-70.txt b/npc/re/quests/eden/56-70.txt
index c503a274b..c7e5103a8 100644
--- a/npc/re/quests/eden/56-70.txt
+++ b/npc/re/quests/eden/56-70.txt
@@ -3,7 +3,7 @@
//===== By: ==================================================
//= L0ne_W0lf
//===== Current Version: =====================================
-//= 2.1
+//= 1.5
//===== Description: =========================================
//= Repetable Quests for Players between Baselevel 56 - 70.
//===== Additional Comments: =================================
@@ -12,11 +12,10 @@
//= 1.2 Added checkquest confirmation for -1. [Euphy]
//= 1.3 Fixed Puppet Master's Agony Quest (12217 -> 3259). [Joseph]
//= 1.4 Fixed invalid check (Magic Wand Quest). [Joseph]
-//= 2.0 Optimised [Zopokx]
-//= 2.1 Fixed some errors using Euphy's reference [Zopokx]
+//= 1.5 Optimized, based on code by Zopokx. [Euphy]
//============================================================
-moc_para01,42,38,3 script Mission [56 - 70] 857,{
+moc_para01,42,38,3 script Mission [56 - 70] 4_BOARD3,{
if (countitem(6219) < 1) {
mes "To get these missions, I need to Join the Eden Group first. I must find Secretary Lime Evenor and become a member.";
close;
@@ -25,44 +24,40 @@ moc_para01,42,38,3 script Mission [56 - 70] 857,{
next;
mes "Lots of missions such as a Monster Hunting, Delivery Goods, Finding People.";
next;
- switch (select("Mission Numbers 1~5:Mission Numbers 6~10:Mission Numbers 11~15")) {
- case 1:
- switch (select("What is this Bandage?:Dangerous Alligators.:That wasn't a mermaid...:My country is calling me!")) {
- case 1: callsub L_HuntingQuest,3250,15000,5000,930,30;
- case 2: callsub L_HuntingQuest,3251,16000,6000;
- case 3: callsub L_HuntingQuest,3252,17000,8000;
- case 4: callsub L_Quest,3254,18000,8000,7043,10,1056,30;
- }
- break;
- case 2:
- switch (select("Hunt Wild Boar:Preparing the Summer:A Woman's Grudge:Special ingredients:Puppet Master's Agony")) {
- case 1: callsub L_HuntingQuest,3255,16000,7000;
- case 2: callsub L_Quest,3256,15000,5000,918,30;
- case 3: callsub L_HuntingQuest,3257,17000,8000;
- case 4: callsub L_Quest,3258,16000,7000,7198,40;
- case 5: callsub L_HuntingQuest,3259,17000,7000,1060,30;
- }
- break;
- case 3:
- switch (select("Tiresome Flies:Dangerous Munak:Make the World green:Magic Wand")) {
- case 1: callsub L_HuntingQuest,3260,16000,6000;
- case 2: callsub L_HuntingQuest,3261,16000,7000;
- case 3: callsub L_Quest,3262,17000,7000,1032,40;
- case 4: callsub L_Quest,3263,18000,8000,1021,30,7150,30;
- }
- break;
+ switch(select("Mission Numbers 1~5:Mission Numbers 6~10:Mission Numbers 11~15")) {
+ case 1:
+ switch(select("What is this Bandage?:Dangerous Alligators.:That wasn't a mermaid...:My country is calling me!")) {
+ case 1: callsub L_HuntingQuest,3250,15000,5000,930,30;
+ case 2: callsub L_HuntingQuest,3251,16000,6000;
+ case 3: callsub L_HuntingQuest,3252,17000,8000;
+ case 4: callsub L_Quest,3254,18000,8000,7043,10,1056,30;
+ }
+ case 2:
+ switch(select("Hunt Wild Boar:Preparing the Summer:A Woman's Grudge:Special ingredients:Puppet Master's Agony")) {
+ case 1: callsub L_HuntingQuest,3255,16000,7000;
+ case 2: callsub L_Quest,3256,15000,5000,918,30;
+ case 3: callsub L_HuntingQuest,3257,17000,8000;
+ case 4: callsub L_Quest,3258,16000,7000,7198,40;
+ case 5: callsub L_HuntingQuest,3259,17000,7000,1060,30;
+ }
+ case 3:
+ switch(select("Tiresome Flies:Dangerous Munak:Make the World green:Magic Wand")) {
+ case 1: callsub L_HuntingQuest,3260,16000,6000;
+ case 2: callsub L_HuntingQuest,3261,16000,7000;
+ case 3: callsub L_Quest,3262,17000,7000,1032,40;
+ case 4: callsub L_Quest,3263,18000,8000,1021,30,7150,30;
+ }
}
end;
L_Quest:
- if (checkquest(getarg(0)) <= 0) {
- callsub L_CheckDetails, getarg(0);
- mes " ";
+ if (checkquest(getarg(0)) == -1) {
+ callsub L_Details, getarg(0);
next;
mes "Would you like to accept this mission?";
next;
if(select("Accept the mission.:Do not accept the mission.") == 1) {
- if ((BaseLevel < 56) || (BaseLevel > 70)) {
+ if (BaseLevel < 55 || BaseLevel > 70) {
mes "These missions are not fit for my level. I should look for other missions.";
close;
}
@@ -73,43 +68,41 @@ L_Quest:
}
close;
}
- if (checkquest(getarg(0)) == 1) {
- if (getargcount() > 5) {
- if ((countitem(getarg(3)) >= getarg(4)) && (countitem(getarg(5)) >= getarg(6))) { set .@complete, 1; }
- else { set .@complete, 0; }
- } else {
- if (countitem(getarg(3)) >= getarg(4)) { set .@complete, 1; }
- else { set .@complete, 0; }
- }
- if (.@complete) {
- mes "I have done pretty well for the mission. Should I report it now?";
- next;
- if(select("Report the mission.:Do not report it yet.") == 2) { close; }
+ if (getargcount() > 5) {
+ if (countitem(getarg(5)) < getarg(6))
+ set .@items,1; //incomplete
+ else
+ set .@items,2; //complete
+ }
+ if (checkquest(getarg(0)) < 2 && (countitem(getarg(3)) < getarg(4) || .@items == 1)) {
+ mes "You have an on-going mission. Would you like to check the details?";
+ next;
+ if(select("Check the details.:Cancel.") == 1)
+ callsub L_Details, getarg(0);
+ close;
+ } else {
+ mes "I have done pretty well for the mission. Should I report it now?";
+ next;
+ if(select("Report the mission.:Do not report it yet.") == 1) {
delitem getarg(3),getarg(4);
- if (getarg(5,0) > 0) { delitem getarg(5),getarg(6); }
+ if (.@items)
+ delitem getarg(5),getarg(6);
getexp getarg(1),getarg(2);
erasequest getarg(0);
mes "You have completed the mission. Get rewards.";
- } else {
- mes "You have an on-going mission. Would you like to check the details?";
- next;
- if(select("Check the details.:Cancel.") == 1)
- callsub L_CheckDetails, getarg(0);
}
+ close;
}
- close;
end;
L_HuntingQuest:
- if (checkquest(getarg(0)) <= 0) {
- callsub L_CheckDetails, getarg(0);
- next;
- mes " ";
+ if (checkquest(getarg(0)) == -1) {
+ callsub L_Details, getarg(0);
next;
mes "Would you like to accept this mission?";
next;
if(select("Accept the mission.:Do not accept the mission.") == 1) {
- if ((BaseLevel < 56) || (BaseLevel > 70)) {
+ if (BaseLevel < 55 || BaseLevel > 70) {
mes "These missions are not fit for my level. I should look for other missions.";
close;
}
@@ -118,249 +111,249 @@ L_HuntingQuest:
next;
mes "This mission doesn't have time limits.";
}
+ close;
+ }
+ if (getargcount() > 3) {
+ if (countitem(getarg(3)) < getarg(4))
+ set .@items,1; //incomplete
+ else
+ set .@items,2; //complete
}
- else if (checkquest(getarg(0),HUNTING) == 1) {
+ if (checkquest(getarg(0),HUNTING) < 2 || .@items == 1) {
mes "You have an on-going mission. Would you like to check the details?";
next;
if(select("Check the details.:Cancel.") == 1)
- callsub L_CheckDetails, getarg(0);
- }
- else if (checkquest(getarg(0),HUNTING) == 2) {
- if (getargcount() > 3) {
- if (countitem(getarg(3)) >= getarg(4)) { set .@complete, 1; }
- else { set .@complete, 0; }
- } else { set .@complete, 1; }
- if (.@complete) {
- mes "I have done pretty well for the mission. Should I report it now?";
- next;
- if(select("Report the mission.:Do not report it yet.") == 2) { close; }
- if (getarg(3,0) > 0) { delitem getarg(3),getarg(4); }
+ callsub L_Details, getarg(0);
+ close;
+ } else if (checkquest(getarg(0),HUNTING) == 2) {
+ mes "I have done pretty well for the mission. Should I report it now?";
+ next;
+ if(select("Report the mission.:Do not report it yet.") == 1) {
+ if (.@items)
+ delitem getarg(3),getarg(4);
getexp getarg(1),getarg(2);
erasequest getarg(0);
mes "You have completed the mission. Get rewards.";
- } else {
- mes "I don't have enough "+getitemname(getarg(3))+".";
- mes "I need to gather "+getarg(4)+" "+getitemname(getarg(3))+" to complete this mission.";
}
+ close;
}
- close;
end;
-L_CheckDetails:
- switch(getarg(0)){
- case 3250:
- mes "This mission is assigned by the Rekenber corporation from Lighthalzen. Below are the details.";
- next;
- mes "Rekenber corporation is about to launch a new project called 'Green Medical Center'. For the first product of the project, we are preparing well-being Bandages.";
- next;
- mes "Regarding the project, we need to research monster's reactions when they are wrapped with Rotten Bandages.";
- next;
- mes "If you are interested, please hunt 30 Mummies and bring 30 Rotten Bandages. You can find them in the Pyramid West of Morroc.";
- next;
- mes "Please confirm it to us after you complete the mission, then we will give you proper rewards.";
- next;
- mes "- Rekenber corporation chief director 'Julie E Delph' -";
- break;
- case 3251:
- mes "This mission is assigned by the Comodo cooperative society. Below are the details.";
- next;
- mes "Alligators have gone wild these days, they attack women and drunken people who hang out near the beach.";
- next;
- mes "This is a very shameful situation for us, the most wonderful vacation spot in Rune-Midgard.";
- next;
- mes "So, it would be very helpful if you hunt 30 Alligators to clean out this situation.";
- next;
- mes "Please confirm it to us after you complete the mission, then we will give you proper rewards.";
- break;
- case 3252:
- mes "This mission is assigned by an unknown client from Izlude.";
- next;
- mes "I have admired the beach of Izlude, ever since I was born.";
- next;
- mes "When I was young, I found a mysterious creature in the Izlude dungeon, I had never seen something like that before...";
- next;
- mes "I instantly thought it was a mermaid. I was so supprised, I have studied about mermaids in whole my life.";
- next;
- mes "But, as I studied harder, I found that the creature was not a mermaid... yes, It wasn't beautiful at all like other mermaids...";
- next;
- mes "I finally tracked down the fact that it was a Merman, not a Mermaid!";
- next;
- mes "Merman... I have wasted my life studying this monster! So please hunt 30 Mermans to make me feel better.";
- next;
- mes "Please confirm it to us after you complete the mission, then we will give you proper rewards.";
- next;
- mes "-- Izlude 'The Lost dream mermaid' --";
- break;
- case 3254:
- mes "This mission is assigned by the government officer of the Rune-Midgarts Kingdom.";
- next;
- mes "To prevent a flood in Prontera, we decided to build a huge dam to regulate the water supply.";
- next;
- mes "But, we are shorthanded on supplies and we need to collect Fine Sand and Grit.";
- next;
- mes "So, we would like to ask for help. People, please bring us 10 Fine Sand and 30 Grit each so we can build the dam.";
- next;
- mes "You can get those materials from Sand Man, I wish you good luck!";
- next;
- mes "Please confirm it to us after you complete the mission, then we will give you proper rewards.";
- next;
- mes "-- Government officer of the Rune-Midgarts Kingdom, Dufre Kent --";
- break;
- case 3255:
- mes "This mission is assigned by the Payon town hall.";
- next;
- mes "Wild animals are always annoyances to farmers.";
- next;
- mes "They attack our farm and ruin whole crops!! We can't stand it anymore!";
- next;
- mes "So, we would like to ask for the help from brave adventurers.";
- next;
- mes "Please, hunt 30 Savages to save our crops!";
- next;
- mes "You can easily find those monsters around our town and field.";
- next;
- mes "Please confirm it to us after you complete the mission, then we will give you proper rewards.";
- next;
- mes "-- Payon town hall members --";
- break;
- case 3256:
- mes "This mission is assigned by the Morroc blacksmith Aragham.";
- next;
- mes "Hello~~~~, Adventurers! This is Aragham, the hottest blacksmith in Morroc!";
- next;
- mes "Anyway, I have a son named Aragam Junior, the cute one. Haha.";
- next;
- mes "He will be attending summer camp this summer, but he doesn't know how to swim.";
- next;
- mes "I want to teach him, but as you know I am a blacksmith, a far cry from swimming! Hehe.";
- next;
- mes "But, I figured that if I make swim fins, it will be great for his confidence~!";
- next;
- mes "To make it, I need 30 Sticky Webfoots from a Roda Frog. Can you bring them to me?";
- next;
- mes "Please confirm it to us after you complete the mission, then we will give you proper rewards.";
- next;
- mes "PS. Do not compare me with Hollgrehenn or Antonio!!!!";
- next;
- mes "-- The hottest blacksmith, Morroc blacksmith Aragham --";
- break;
- case 3257:
- mes "This mission is assigned by an inventor Dorian from Izlude.";
- next;
- mes "Have you heard the story that if women have a grudge on their mind, it will bring natural disasters.";
- next;
- mes "Wow, so guys must watch out for those sensitive women! Make sure they don't have any grudges on you.";
- next;
- mes "Women can bring strange phenomenons with them!";
- next;
- mes "I am so intrigued with that story that I'm trying to prove that it can be true.";
- next;
- mes "So I need to make women upset! Haha, I know what a mean idea, right?";
- next;
- mes "But this is seriously just for studying... So please hunt 30 Sohee's who seems to be revived from victimized souls.";
- next;
- mes "So I can keep observing the case.";
- next;
- mes "Please confirm it to us after you complete the mission, then we will give you proper rewards.";
- next;
- mes "-- Elegance inventor Dorian --";
- break;
- case 3258:
- mes "This mission is assigned by Wallah from Payon.";
- next;
- mes "Hello, adventurer. How are you? How is your health?";
- next;
- mes "I am a pharmacist and I am having a hard time getting special ingredients lately.";
- next;
- mes "Because I am a little sensitive girl, how can I possibly get those things by myself.";
- next;
- mes "So, please help me. Just bring 40 Huge Leafs to me, that will be enough to complete my special medicine!";
- next;
- mes "Please bring it as soon as possible, people need my medicine.";
- next;
- mes "Please confirm it to us after you complete the mission, then we will give you proper rewards.";
- next;
- mes "-- Wallah --";
- break;
- case 3259:
- mes "This mission is assigned by puppet master Woonute from Geffen.";
- next;
- mes "You know being a puppet master is kind of a hard job to satisfy people.";
- next;
- mes "People can search and see so many different things on their own thesedays.";
- next;
- mes "Their expectations are getting high, I can't satisfy them anymore.";
- next;
- mes "But if I can make new toy concepts, like living toys, it will be ground breaking.";
- next;
- mes "I heard that there are live dolls called Marionettes. Can you hunt 30 Marionettes for me? And also bring 30 Golden Hair, those will be great materials for the new toys.";
- next;
- mes "Please confirm it to us after you complete the mission, then we will give you proper rewards.";
- next;
- mes "-- Puppet Master Woonute --";
- break;
- case 3260:
- mes "This mission is assigned by an exterminator from Prontera.";
- next;
- mes "As the weather gets warmer, insects multiply more and more. It is already out of control.";
- next;
- mes "People in Prontera cannot sleep because of all the bugs in their house.";
- next;
- mes "So, please help us, hunt 30 Hunter Flies. Then the flies can be reduced slowly.";
- next;
- mes "Please confirm it to us after you complete the mission, then we will give you proper rewards.";
- next;
- mes "-- The Prontera exterminator --";
- break;
- case 3261:
- mes "This mission is assigned by Cheese Dongja from Payon.";
- next;
- mes "Have you heard about Munak?";
- next;
- mes "The ugly monster Munak is threatening people in Payon.";
- next;
- mes "So we need brave adventurers like you!";
- next;
- mes "Please hunt 30 Munaks then Payon will be in peace.";
- next;
- mes "Please confirm it to us after you complete the mission, then we will give you proper rewards.";
- next;
- mes "- Payon Cheese Dongja -";
- break;
- case 3262:
- mes "This mission is assigned by a gem dealer, Ibraham from Morroc.";
- next;
- mes "A small beautiful flower in the barren desert... What an incredible scene it would be!";
- next;
- mes "Planting flowers can make the world green and it will be so pretty everywhere.";
- next;
- mes "I plan to plant strong flowers in the Morroc desert so the soil gets better.";
- next;
- mes "I need 40 Maneater Blossom from Flora, I know Maneater Blossom is an ugly flower, but still it is a plant.";
- next;
- mes "I hope you can hunt Flora and get me 40 Maneater Blossoms. You are making the world green! Be proud!";
- next;
- mes "Please confirm it to us after you complete the mission, then we will give you proper rewards.";
- next;
- mes "-- Morroc Ibraham --";
- break;
- case 3263:
- mes "This mission is assigned by the Payon blacksmith Antonio.";
- next;
- mes "Magic wand! Have you heard about it? It is an incredible wand!";
- next;
- mes "If you say the magic words and swing the wand, it will make your wishes come true.";
- next;
- mes "So, I decided to make it by myself. Then I will be rich and powerful~! Haha!!";
- next;
- mes "To make the wand, I need some special materials.";
- next;
- mes "Please bring me 30 Dokebi Horns and 30 Bamboo Cut. If you do so, I will lend you my magic wand once. Haha, good deal?";
- next;
- mes "Please confirm it to us after you complete the mission, then we will give you proper rewards.";
- next;
- mes "-- Payon blacksmith Antonio --";
- break;
+L_Details:
+ switch(getarg(0)) {
+ case 3250:
+ mes "This mission is assigned by the Rekenber corporation from Lighthalzen. Below are the details.";
+ next;
+ mes "Rekenber corporation is about to launch a new project called 'Green Medical Center'. For the first product of the project, we are preparing well-being Bandages.";
+ next;
+ mes "Regarding the project, we need to research monster's reactions when they are wrapped with Rotten Bandages.";
+ next;
+ mes "If you are interested, please hunt 30 Mummies and bring 30 Rotten Bandages. You can find them in the Pyramid West of Morroc.";
+ next;
+ mes "Please confirm it to us after you complete the mission, then we will give you proper rewards.";
+ next;
+ mes "- Rekenber corporation chief director 'Julie E Delph' -";
+ break;
+ case 3251:
+ mes "This mission is assigned by the Comodo cooperative society. Below are the details.";
+ next;
+ mes "Alligators have gone wild these days, they attack women and drunken people who hang out near the beach.";
+ next;
+ mes "This is a very shameful situation for us, the most wonderful vacation spot in Rune-Midgard.";
+ next;
+ mes "So, it would be very helpful if you hunt 30 Alligators to clean out this situation.";
+ next;
+ mes "Please confirm it to us after you complete the mission, then we will give you proper rewards.";
+ break;
+ case 3252:
+ mes "This mission is assigned by an unknown client from Izlude.";
+ next;
+ mes "I have admired the beach of Izlude, ever since I was born.";
+ next;
+ mes "When I was young, I found a mysterious creature in the Izlude dungeon, I had never seen something like that before...";
+ next;
+ mes "I instantly thought it was a mermaid. I was so supprised, I have studied about mermaids in whole my life.";
+ next;
+ mes "But, as I studied harder, I found that the creature was not a mermaid... yes, It wasn't beautiful at all like other mermaids...";
+ next;
+ mes "I finally tracked down the fact that it was a Merman, not a Mermaid!";
+ next;
+ mes "Merman... I have wasted my life studying this monster! So please hunt 30 Mermans to make me feel better.";
+ next;
+ mes "Please confirm it to us after you complete the mission, then we will give you proper rewards.";
+ next;
+ mes "-- Izlude 'The Lost dream mermaid' --";
+ break;
+ case 3254:
+ mes "This mission is assigned by the government officer of the Rune-Midgarts Kingdom.";
+ next;
+ mes "To prevent a flood in Prontera, we decided to build a huge dam to regulate the water supply.";
+ next;
+ mes "But, we are shorthanded on supplies and we need to collect Fine Sand and Grit.";
+ next;
+ mes "So, we would like to ask for help. People, please bring us 10 Fine Sand and 30 Grit each so we can build the dam.";
+ next;
+ mes "You can get those materials from Sand Man, I wish you good luck!";
+ next;
+ mes "Please confirm it to us after you complete the mission, then we will give you proper rewards.";
+ next;
+ mes "-- Government officer of the Rune-Midgarts Kingdom, Dufre Kent --";
+ break;
+ case 3255:
+ mes "This mission is assigned by the Payon town hall.";
+ next;
+ mes "Wild animals are always annoyances to farmers.";
+ next;
+ mes "They attack our farm and ruin whole crops!! We can't stand it anymore!";
+ next;
+ mes "So, we would like to ask for the help from brave adventurers.";
+ next;
+ mes "Please, hunt 30 Savages to save our crops!";
+ next;
+ mes "You can easily find those monsters around our town and field.";
+ next;
+ mes "Please confirm it to us after you complete the mission, then we will give you proper rewards.";
+ next;
+ mes "-- Payon town hall members --";
+ break;
+ case 3256:
+ mes "This mission is assigned by the Morroc blacksmith Aragham.";
+ next;
+ mes "Hello~~~~, Adventurers! This is Aragham, the hottest blacksmith in Morroc!";
+ next;
+ mes "Anyway, I have a son named Aragam Junior, the cute one. Haha.";
+ next;
+ mes "He will be attending summer camp this summer, but he doesn't know how to swim.";
+ next;
+ mes "I want to teach him, but as you know I am a blacksmith, a far cry from swimming! Hehe.";
+ next;
+ mes "But, I figured that if I make swim fins, it will be great for his confidence~!";
+ next;
+ mes "To make it, I need 30 Sticky Webfoots from a Roda Frog. Can you bring them to me?";
+ next;
+ mes "Please confirm it to us after you complete the mission, then we will give you proper rewards.";
+ next;
+ mes "PS. Do not compare me with Hollgrehenn or Antonio!!!!";
+ next;
+ mes "-- The hottest blacksmith, Morroc blacksmith Aragham --";
+ break;
+ case 3257:
+ mes "This mission is assigned by an inventor Dorian from Izlude.";
+ next;
+ mes "Have you heard the story that if women have a grudge on their mind, it will bring natural disasters.";
+ next;
+ mes "Wow, so guys must watch out for those sensitive women! Make sure they don't have any grudges on you.";
+ next;
+ mes "Women can bring strange phenomenons with them!";
+ next;
+ mes "I am so intrigued with that story that I'm trying to prove that it can be true.";
+ next;
+ mes "So I need to make women upset! Haha, I know what a mean idea, right?";
+ next;
+ mes "But this is seriously just for studying... So please hunt 30 Sohee's who seems to be revived from victimized souls.";
+ next;
+ mes "So I can keep observing the case.";
+ next;
+ mes "Please confirm it to us after you complete the mission, then we will give you proper rewards.";
+ next;
+ mes "-- Elegance inventor Dorian --";
+ break;
+ case 3258:
+ mes "This mission is assigned by Wallah from Payon.";
+ next;
+ mes "Hello, adventurer. How are you? How is your health?";
+ next;
+ mes "I am a pharmacist and I am having a hard time getting special ingredients lately.";
+ next;
+ mes "Because I am a little sensitive girl, how can I possibly get those things by myself.";
+ next;
+ mes "So, please help me. Just bring 40 Huge Leafs to me, that will be enough to complete my special medicine!";
+ next;
+ mes "Please bring it as soon as possible, people need my medicine.";
+ next;
+ mes "Please confirm it to us after you complete the mission, then we will give you proper rewards.";
+ next;
+ mes "-- Wallah --";
+ break;
+ case 3259:
+ mes "This mission is assigned by puppet master Woonute from Geffen.";
+ next;
+ mes "You know being a puppet master is kind of a hard job to satisfy people.";
+ next;
+ mes "People can search and see so many different things on their own thesedays.";
+ next;
+ mes "Their expectations are getting high, I can't satisfy them anymore.";
+ next;
+ mes "But if I can make new toy concepts, like living toys, it will be ground breaking.";
+ next;
+ mes "I heard that there are live dolls called Marionettes. Can you hunt 30 Marionettes for me? And also bring 30 Golden Hair, those will be great materials for the new toys.";
+ next;
+ mes "Please confirm it to us after you complete the mission, then we will give you proper rewards.";
+ next;
+ mes "-- Puppet Master Woonute --";
+ break;
+ case 3260:
+ mes "This mission is assigned by an exterminator from Prontera.";
+ next;
+ mes "As the weather gets warmer, insects multiply more and more. It is already out of control.";
+ next;
+ mes "People in Prontera cannot sleep because of all the bugs in their house.";
+ next;
+ mes "So, please help us, hunt 30 Hunter Flies. Then the flies can be reduced slowly.";
+ next;
+ mes "Please confirm it to us after you complete the mission, then we will give you proper rewards.";
+ next;
+ mes "-- The Prontera exterminator --";
+ break;
+ case 3261:
+ mes "This mission is assigned by Cheese Dongja from Payon.";
+ next;
+ mes "Have you heard about Munak?";
+ next;
+ mes "The ugly monster Munak is threatening people in Payon.";
+ next;
+ mes "So we need brave adventurers like you!";
+ next;
+ mes "Please hunt 30 Munaks then Payon will be in peace.";
+ next;
+ mes "Please confirm it to us after you complete the mission, then we will give you proper rewards.";
+ next;
+ mes "- Payon Cheese Dongja -";
+ break;
+ case 3262:
+ mes "This mission is assigned by a gem dealer, Ibraham from Morroc.";
+ next;
+ mes "A small beautiful flower in the barren desert... What an incredible scene it would be!";
+ next;
+ mes "Planting flowers can make the world green and it will be so pretty everywhere.";
+ next;
+ mes "I plan to plant strong flowers in the Morroc desert so the soil gets better.";
+ next;
+ mes "I need 40 Maneater Blossom from Flora, I know Maneater Blossom is an ugly flower, but still it is a plant.";
+ next;
+ mes "I hope you can hunt Flora and get me 40 Maneater Blossoms. You are making the world green! Be proud!";
+ next;
+ mes "Please confirm it to us after you complete the mission, then we will give you proper rewards.";
+ next;
+ mes "-- Morroc Ibraham --";
+ break;
+ case 3263:
+ mes "This mission is assigned by the Payon blacksmith Antonio.";
+ next;
+ mes "Magic wand! Have you heard about it? It is an incredible wand!";
+ next;
+ mes "If you say the magic words and swing the wand, it will make your wishes come true.";
+ next;
+ mes "So, I decided to make it by myself. Then I will be rich and powerful~! Haha!!";
+ next;
+ mes "To make the wand, I need some special materials.";
+ next;
+ mes "Please bring me 30 Dokebi Horns and 30 Bamboo Cut. If you do so, I will lend you my magic wand once. Haha, good deal?";
+ next;
+ mes "Please confirm it to us after you complete the mission, then we will give you proper rewards.";
+ next;
+ mes "-- Payon blacksmith Antonio --";
+ break;
}
return;
}
diff --git a/npc/re/quests/eden/71-85.txt b/npc/re/quests/eden/71-85.txt
index 9a11bf2b5..57102982c 100644
--- a/npc/re/quests/eden/71-85.txt
+++ b/npc/re/quests/eden/71-85.txt
@@ -3,602 +3,222 @@
//===== By: ==================================================
//= L0ne_W0lf
//===== Current Version: =====================================
-//= 1.2
+//= 1.3
//===== Description: =========================================
//= Repetable Quests for Players between Baselevel 71 - 85.
//===== Additional Comments: =================================
//= 1.0 First Version.
//= 1.1 Some little optimization here and there. [Masao]
//= 1.2 Optimized. [Euphy]
+//= 1.3 Updated to match the official scripts. [Euphy]
//============================================================
-moc_para01,44,38,3 script Mission [71 - 85] 857,{
+moc_para01,44,38,3 script Mission [71 - 85] 4_BOARD3,{
if (countitem(6219) < 1) {
mes "- Only members of the -";
mes "- Eden Group can read -";
mes "- this bulletin board. -";
close;
}
- mes "- Many hunting missions -";
- mes "- are on the bulletin board. -";
- next;
- if ((BaseLevel > 70) && (BaseLevel < 86)) {
- switch (select("Sphinx Dungeon:Glast Heim:Juno Area:Clock Tower:Localized Islands")) {
- case 1:
- mes "- Sphinx Dungeon -";
- mes "- I am Meidi who lives -";
- mes "- in Morocc. I want to hunt -";
- mes "- monsters in the Sphinx -";
- mes "- Dungeon. I will wait for -";
- mes "- you in front of the -";
- mes "- western gate. -";
- callsub L_Quest,10102,1;
- mes "- Good. Now go find Meidi -";
- mes "- at the western gate -";
- mes "- in Morroc. -";
- close;
- case 2:
- mes "- Glast Heim -";
- mes "- I am Ancellia. -";
- mes "- I need some help -";
- mes "- hunting monsters -";
- mes "- in Glast Heim.-";
- mes "- Please help me. -";
- callsub L_Quest,10103,2;
- mes "- Look for Ancellia. -";
- mes "- in Geffen. -";
- close;
- case 3:
- mes "- Juno Area -";
- mes "- I want to go to Juno, -";
- mes "- but the monsters on -";
- mes "- the way there are too -";
- mes "- strong for me. Come -";
- mes "- visit me in Al De Baran. -";
- mes "- My name is Jeanbai. -";
- callsub L_Quest,10104,3;
- mes "- Look for Jeanbai -";
- mes "- in Al De Baran. -";
- close;
- case 4:
- mes "- Clock Tower -";
- mes "- A Clock is the best thing! -";
- mes "- I'm asking you to hunt -";
- mes "- some monster inside of.-";
- mes "- the Clock Tower, -";
- mes "- Risingeter. -";
- callsub L_Quest,10105,4;
- mes "- Look for Risingeter -";
- mes "- in front of the -";
- mes "- Clock Tower. -";
- close;
- case 5:
- mes "- Localized Islands -";
- mes "- I need someone who -";
- mes "- can hunt monsters -";
- mes "- for Funfi in Alberta. -";
- callsub L_Quest,10106,5;
- mes "- Loof for Funfi -";
- mes "- in Alberta. -";
- close;
- }
- }
- mes "- Only members of the -";
- mes "- right level can read -";
- mes "- this bulletin board. -";
- mes "- Try to find a board -";
- mes "- that suits your level. -";
- close;
-L_Quest:
- next;
- if(select("Accept mission.:Decline mission.") == 2) {
- mes "- I don't want to do -";
- mes "- a mission right now. -";
- close;
- }
- if (slv_quest && slv_quest != getarg(1)) {
- mes "- You are already on -";
- mes "- another mission. -";
- mes "- You can't do multiple -";
- mes "- missions. Finish your -";
- mes "- current mission first. -";
- close;
- }
- if (checkquest(getarg(0)) <= 0) {
- setquest getarg(0);
- set slv_quest,getarg(1);
- return;
- }
- mes "- You are already on -";
- mes "- or have recently -";
- mes "- completed a mission. -";
- mes "- You can't do anymore -";
- mes "- missions right now. -";
- close;
-}
-morocc,35,174,5 script Meidi 729,{
-
- if ((checkquest(10107) == 2) && (checkquest(10108) == 2) && (checkquest(10109) == 2) && (slv_quest == 6)) {
- set slv_quest,0;
- mes "[Meidi]";
- mes "You have completed the hunting missions.";
- mes "I don't have anymore missions for you.";
- mes "Thanks, you did a great job!";
- close;
- }
- if (checkquest(10107) == 1 || checkquest(10108) == 1 || checkquest(10109) == 1) {
- mes "[Meidi]";
- mes "Wow! How did you come back so fast?";
- mes "What monster did you hunt?";
- next;
- setarray .@monsters$[0],"Requiem","Marduk","Pasana";
- set .@i, select(implode(.@monsters$,":"))-1;
- if (checkquest(10107+.@i,HUNTING) == 2) {
- mes "[Meidi]";
- mes "You've hunted all 10 "+.@monsters$[.@i]+".";
- mes "Thank you very much.";
- next;
- mes "[Meidi]";
- mes "I know it isn't much but here's a small gift.";
- mes "I hope that it will be helpful to you.";
- next;
- completequest 10107+.@i;
- getexp 48000,0;
- mes "[Meidi]";
- mes "Wooohoo!";
- mes "Good luck.";
- close;
+ // Clear the original quest data (no longer used).
+ if (slv_quest) set slv_quest,0;
+ if (checkquest(10102) > -1 || checkquest(10103) > -1 || checkquest(10104) > -1 || checkquest(10105) > -1 || checkquest(10106) > -1) {
+ for(set .@quest,10102; .@quest<=10106; set .@quest,.@quest+1) {
+ if (checkquest(.@quest) > -1)
+ erasequest .@quest;
}
- mes "[Meidi]";
- mes "You didn't hunt 10 "+.@monsters$[.@i]+" yet.";
- mes "You should make sure that you hunt all of them.";
- mes "Can you check again?";
- close;
- }
- if (slv_quest == 6) {
- mes "[Meidi]";
- mes "Sphinx Dungeon... many adventurers came back with great injuries.";
- mes "That place is very dangerous.";
- mes "Someone should go inside an make it safer for everyone.";
- mes "Hopefully, very soon!";
- close;
- }
- mes "[Meidi]";
- mes "Sphinx Dungeon... many adventurers came back with great injuries.";
- mes "That place is very dangerous.";
- mes "Someone should go inside an make it safer for everyone.";
- mes "Hopefully, very soon!";
- if (slv_quest == 1) {
- next;
- mes "[Meidi]";
- mes "Oh! Are you from the Eden Group?";
- mes "Are you here for my mission?";
- mes "You came right on time.";
- mes "I was worried that noone would accept the mission that I posted.";
+ mes "- Since the client has moved -";
+ mes "- to another place, -";
+ mes "- the application form has been removed. -";
next;
- mes "[Meidi]";
- mes "So, I need help hunting 3 monsters";
- mes "inside of the Sphinx Dungeon.";
- mes "Got it? Its too dangerous for me so that's why I posted the mission.";
- next;
- mes "[Meidi]";
- mes "Requiem, Marduk and Pasana...";
- mes "I heard they are very dangerous monsters.";
- mes "Can you hunt 10 of those monsters?";
- mes "10 of each sounds good enough, right?";
- next;
- mes "[Meidi]";
- mes "If you succeed, I will give you a small reward for your help.";
- next;
- switch (select("Accept mission.:Decline mission.")) {
- case 1:
- mes "[Meidi]";
- mes "Oh. Thank you so much.";
- mes "How can I pay you backf or your effort?";
- mes "May Freya bless you~";
- next;
- completequest 10102;
- setquest 10107;
- setquest 10108;
- setquest 10109;
- set slv_quest,6;
- mes "[Meidi]";
- mes "Requiem, Marduk and Pasana.";
- mes "Don't forget and good luck.";
- close;
- case 2:
- set slv_quest,0;
- erasequest 10102;
- mes "[Meidi]";
- mes "I see. There is no other way.";
- mes "I will send a message to the Eden Group.";
- mes "Don't worry and nevermind.";
- close;
- }
}
- close;
-}
-geffen,146,132,3 script Ancellia 906,{
- if ((checkquest(10110 == 2)) && (checkquest(10111) == 2) && (checkquest(10112) == 2) && (checkquest(10113) == 2) && (slv_quest == 6)) {
- set slv_quest,0;
- mes "[Ancellia]";
- mes "Wow. You've finished all";
- mes "of my missions. Great!";
- mes "You are of great help.";
- mes "I will inform the Eden Group of your assistance.";
- mes "You can go back, don't worry.";
- close;
- }
- if (checkquest(10110) == 1 || checkquest(10111) == 1 || checkquest(10112) == 1 || checkquest(10113) == 1) {
- mes "[Ancellia]";
- mes "You seem to have hunted all of the monsters.";
- mes "What monster have you hunted?";
- mes "Do you remember its name?";
- next;
- setarray .@monsters$[0],"Dark Frame","Evil Druid","Wraith","Raydric Archer";
- set .@i, select(implode(.@monsters$,":"))-1;
- if (checkquest(10110+.@i,HUNTING) == 2) {
- mes "[Ancellia]";
- mes "Ah, you've hunted 10 "+.@monsters$[.@i]+"s.";
- mes "That was pretty difficult!";
- mes "Thank you very much.";
+ if (BaseLevel < 71) {
+ mes "- Only members of the -";
+ mes "- right level can read -";
+ mes "- this bulletin board. -";
+ mes "- Try to find a board -";
+ mes "- that suits your level. -";
+ close;
+ } else if (BaseLevel > 85) {
+ // Quest IDs: 10107-10123, 5055-5057
+ setarray .@quests[0],
+ 10107,10108,10109,
+ 10110,10111,10112,10113,
+ 10114,10115,10116,10117,
+ 10118,10119,10120,
+ 10121,10122,10123,5055,5056;
+ for(set .@i,0; .@i<getarraysize(.@quests); set .@i,.@i+1) {
+ if (checkquest(.@quests[.@i],HUNTING) == 2)
+ set .@complete[getarraysize(.@complete)], .@quests[.@i];
+ }
+ if (checkquest(5057) > -1 && countitem(7187) >= 30)
+ set .@complete[getarraysize(.@complete)],5057;
+ if (getarraysize(.@complete)) {
+ mes "You have quests in progress.";
+ mes "Do you want to turn them in?";
next;
- completequest 10110+.@i;
- getexp 48000,0;
- mes "[Ancellia]";
- mes "Perhaps you can hunt the rest as well.";
- mes "I will wait for you here.";
+ if(select("Of course.:No.") == 2)
+ close;
+ for(set .@i,0; .@i<getarraysize(.@complete); set .@i,.@i+1)
+ callsub L_Quest,.@complete[.@i];
close;
}
- mes "[Ancellia]";
- mes "Hmm... maybe you were confused.";
- mes "You didn't hunt all 10 "+.@monsters$[.@i]+".";
- mes "Can you check again?";
- close;
- }
- if (slv_quest == 6) {
- mes "[Ancellia]";
- mes "Go to Glast Heim and kill";
- mes "Dark Frames, Evil Druids,";
- mes "Wraith and Raydric Archers.";
- mes "10 of each should do just fine.";
+ mes "- Only members of the -";
+ mes "- right level can read -";
+ mes "- this bulletin board. -";
+ mes "- Try to find a board -";
+ mes "- that suits your level. -";
close;
}
- mes "[Ancellia]";
- mes "Glast Heim is very far away.";
- mes "I heared that the castle was cursed by the ancient King of Prontera.";
- mes "There is a another story.";
+ mes "- Choose where you -";
+ mes "- would like to hunt. -";
next;
- mes "[Ancellia]";
- mes "One day the came out of the castle and attacked a nearby village, it was terrible.";
- mes "That's why I can't stop worrying.";
- if (slv_quest == 2) {
- next;
- mes "[Ancellia]";
- mes "Oh, you got my mission";
- mes "from the Eden Group. Great~!";
- mes "Thank you very much.";
- next;
- mes "[Ancellia]";
- mes "I already explained.";
- mes "So I expect you understand.";
- mes "You need to hurry hunting";
- mes "Dark Frames, Evil Druids,";
- mes "Wraith and Raydric Archesr.";
- next;
- mes "[Ancellia]";
- mes "You should hunt them all.";
- mes "These are dangerous monsters so please take care of yourself.";
- next;
- switch (select("Accept mission.:Decline mission.")) {
- case 1:
- mes "[Ancellia]";
- mes "Thanks a lot.";
- mes "Be careful when you hunt these monsters. Good luck.";
- next;
- completequest 10103;
- setquest 10110;
- setquest 10111;
- setquest 10112;
- setquest 10113;
- set slv_quest,6;
- mes "[Ancellia]";
- mes "Remember, Dark Frames,";
- mes "Evil Druids, Wraiths";
- mes "and Raydric Archers.";
- close;
- case 2:
- set slv_quest,0;
- erasequest 10103;
- mes "[Ancellia]";
- mes "Was the mission too hard?";
- mes "I guess I'll just have to wait for someone else from the Eden Group to help me.";
- close;
+ switch(select("Sphinx Dungeon:Glast Heim:Juno Area:Clock Tower:Localized Islands")) {
+ case 1:
+ mes "- There are several requests -";
+ mes "- related to the Sphinx Dungeon -";
+ mes "- on this mission Board. -";
+ next;
+ set .@str1$,"The villagers of Morroc are worried by the increasing number of monsters in the Sphinx Dungeon. ";
+ set .@str2$,"- Meidi from Morroc -";
+ switch(select("Hunt Requiem:Hunt Marduk:Hunt Pasana")) {
+ case 1: callsub L_Quest,10107,.@str1$+"Hunt 10 Requiems.",.@str2$;
+ case 2: callsub L_Quest,10108,.@str1$+"Hunt 10 Marduks.",.@str2$;
+ case 3: callsub L_Quest,10109,.@str1$+"Hunt 10 Pasanas.",.@str2$;
}
- }
- close;
-}
-
-aldebaran,144,230,3 script Jeanbai 900,{
- if ((checkquest(10114) == 2) && (checkquest(10115) == 2) && (checkquest(10116) == 2) && (checkquest(10117) == 2) && (slv_quest == 6)) {
- set slv_quest,0;
- mes "[Jeanbai]";
- mes "You've hunted all of the monsters.";
- mes "I will inform the Eden Group.";
- mes "Thank you.";
- close;
- }
- if (checkquest(10114) == 1 || checkquest(10115) == 1 || checkquest(10116) == 1 || checkquest(10117) == 1) {
- mes "[Jeanbai]";
- mes "Huh? So... fast...";
- mes "You amaze me!";
- mes "So what monster did you hunt?";
- next;
- setarray .@monsters$[0],"Grand Peco","Sleeper","Goat","Harpy";
- set .@i, select(implode(.@monsters$,":"))-1;
- if (checkquest(10114+.@i,HUNTING) == 2) {
- mes "[Jeanbai]";
- mes "You've hunted 20 "+.@monsters$[.@i]+"s. Perfect!";
- mes "Thanks a lot.";
- next;
- completequest 10114+.@i;
- getexp 48000,0;
- mes "[Jeanbai]";
- mes "Please hunt the others as soon as possible.";
- mes "I have faith in you!";
- close;
+ case 2:
+ mes "- There are several requests -";
+ mes "- related to Glast Heim -";
+ mes "- on this mission Board. -";
+ next;
+ set .@str1$,"I am very afraid that the monsters from Glast Heim will attack us. ";
+ set .@str2$,"- Ancellia from Geffen -";
+ switch(select("Hunt Dark Frame:Hunt Evil Druid:Hunt Wraith:Hunt Raydric Archer")) {
+ case 1: callsub L_Quest,10110,.@str1$+"Hunt 10 Dark Frames.",.@str2$;
+ case 2: callsub L_Quest,10111,.@str1$+"Hunt 10 Evil Druids.",.@str2$;
+ case 3: callsub L_Quest,10112,.@str1$+"Hunt 10 Wraiths.",.@str2$;
+ case 4: callsub L_Quest,10113,.@str1$+"Hunt 10 Raydric Archers.",.@str2$;
}
- mes "[Jeanbai]";
- mes "What? Maybe you were confused.";
- mes "You haven't hunted all 20 "+.@monsters$[.@i]+"s.";
- mes "Please check again.";
- close;
- }
- if (slv_quest == 6) {
- mes "[Jeanbai]";
- mes "Grand Pecos, Sleepers, Goats";
- mes "and Harpies. Hunt 20 of each.";
- mes "When you're finished hunting, come back to me.";
- mes "I hope you finish as soon as you can.";
- close;
- }
- mes "[Jeanbai]";
- mes "I am traveler Jeanbai.";
- mes "As I said I'm a traveler not a adventurer so, I am not good at fighting.";
- mes "That's why I can't travel all over the world.";
- next;
- mes "[Jeanbai]";
- mes "Monsters are increasing in numbers so travelers like me have a hard time getting around.";
- mes "I wish I could travel around without having to worry about that.";
- if (slv_quest == 3) {
- next;
- mes "[Jeanbai]";
- mes "Oh, did you get my mission from the Eden Group?";
- mes "Great~! We don't have a lot of time.";
- mes "Let me explain.";
- next;
- mes "[Jeanbai]";
- mes "The monsters around Juno,";
- mes "Grand Pecos, Sleepers, Goats";
- mes "and Harpies. Please hunt 20 of them.";
- mes "I've been hesitating to visit Juno because of those monsters around there.";
- next;
- mes "[Jeanbai]";
- mes "Will you accept this mission?";
- mes "I hope you are the right person for the job.";
- mes "So what do you say?";
- next;
- switch (select("Accept mission.:Decline mission.")) {
- case 1:
- mes "[Jeanbai]";
- mes "Great!";
- mes "You won't regret it.";
- next;
- completequest 10104;
- setquest 10114;
- setquest 10115;
- setquest 10116;
- setquest 10117;
- set slv_quest,6;
- mes "[Jeanbai]";
- mes "When you're finished hunting, come back to me.";
- mes "I hope you finish as soon as you can.";
- close;
- case 2:
- set slv_quest,0;
- erasequest 10104;
- mes "[Jeanbai]";
- mes "Too bad. I'm disappointed.";
- mes "I should inform the Eden Group again.";
- mes "I see, nevermind.";
- close;
+ case 3:
+ mes "- There are several requests -";
+ mes "- related to the area -";
+ mes "- around Juno. -";
+ next;
+ set .@str1$,"Those who can't fight, like me, find it much more difficult to travel due to the large number of monsters. ";
+ set .@str2$,"- Jeanbai, traveler -";
+ switch(select("Hunt Grand Peco:Hunt Sleeper:Hunt Goat:Hunt Harpy")) {
+ case 1: callsub L_Quest,10114,.@str1$+"Hunt 20 Grand Pecos.",.@str2$;
+ case 2: callsub L_Quest,10115,.@str1$+"Hunt 20 Sleepers.",.@str2$;
+ case 3: callsub L_Quest,10116,.@str1$+"Hunt 20 Goats.",.@str2$;
+ case 4: callsub L_Quest,10117,.@str1$+"Hunt 20 Harpies.",.@str2$;
}
- }
- close;
-}
-
-aldebaran,105,116,3 script Risingeter 869,{
- if ((checkquest(10118) == 2) && (checkquest(10119) == 2) && (checkquest(10120 == 2)) && (slv_quest == 6)) {
- set slv_quest,0;
- mes "[Risingeter]";
- mes "You've completed all of my missions.";
- mes "Amazing~! I will inform the Eden Group.";
- mes "of your assistance. Thanks again!";
- close;
- }
- if (checkquest(10118) == 1 || checkquest(10119) == 1 || checkquest(10120) == 1) {
- mes "[Risingeter]";
- mes "Wow. Are you done?";
- mes "So fast~?! Unbelievable~";
- mes "You were the right person for this mission.";
- mes "Which monster did you hunt?";
- next;
- setarray .@monsters$[0],"Clock","Punk","Rideword";
- set .@i, select(implode(.@monsters$,":"))-1;
- if (checkquest(10118+.@i,HUNTING) == 2) {
- mes "[Risingeter]";
- mes "Good! You've hunted 15 "+.@monsters$[.@i]+"s.";
- mes "Ah, now I can hear the clock sound clearly...";
- mes "Tic!! toc!! tic!! toc!!...";
- next;
- completequest 10118+.@i;
- getexp 48000,0;
- mes "[Risingeter]";
- mes "Thanks a lot!";
- mes "I hope you can hunt the rest as well.";
- mes "Go as soon as you can!";
- close;
+ case 4:
+ mes "- There are several requests -";
+ mes "- related to the Clock Tower -";
+ mes "- on this mission Board. -";
+ next;
+ set .@str1$,"I used to love listening to the sweet melody of the Al De Baran Clock Tower but I can't hear anything anymore because of all the noises the monsters are making. ";
+ set .@str2$,"- Rizingsetter, President of the Love Clock community -";
+ switch(select("Hunt Clock:Hunt Punk:Hunt Rideword")) {
+ case 1: callsub L_Quest,10118,.@str1$+"Hunt 15 Clocks before it breaks.",.@str2$;
+ case 2: callsub L_Quest,10119,.@str1$+"Hunt 15 Punks before it breaks.",.@str2$;
+ case 3: callsub L_Quest,10120,.@str1$+"Hunt 15 Ridewords before it breaks.",.@str2$;
}
- mes "[Risingeter]";
- mes "Uh? Something is wrong.";
- mes "15 "+.@monsters$[.@i]+"s, right?";
- mes "You better check how many you've hunted.";
- close;
- }
- if (slv_quest == 6) {
- mes "[Risingeter]";
- mes "Hunt 15 Clocks, Punks, and Ridewords.";
- mes "Please hurry.";
- close;
- }
- mes "[Risingeter]";
- mes "I like clocks so much.";
- mes "They move with regular rhythm";
- mes "making tic toc sounds.";
- mes "Ahah!! Hail to the clocks!";
- next;
- mes "[Risingeter]";
- mes "That's why I like the Clock Tower so much.";
- mes "It makes a really nice sound.";
- mes "I like it so much!";
- if (slv_quest == 4) {
- next;
- mes "[Risingeter]";
- mes "Uh? Have you come to help me solve my trouble.";
- mes "You already know I like clocks right?";
- mes "That's why I need your help to hunt these monsters.";
- next;
- mes "[Risingeter]";
- mes "There are too many monsters inside the Clock Tower.";
- mes "Their presence is destroying the Clock Tower.";
- next;
- mes "[Risingeter]";
- mes "Anyway. Can you help me?";
- mes "Please hunt 15 Clocks, Punks and Ridewords before it breaks down.";
- next;
- switch (select("Accept mission.:Decline mission.")) {
- case 1:
- completequest 10105;
- setquest 10118;
- setquest 10119;
- setquest 10120;
- set slv_quest,6;
- mes "[Risingeter]";
- mes "Ok! I expect you will do the right thing.";
- mes "Hunt 15 Clocks, Punks and Ridewords.";
- close;
- case 2:
- set slv_quest,0;
- erasequest 10105;
- mes "[Risingeter]";
- mes "You don't understand my love for clocks";
- mes "I will find another brave adventurer.";
- mes "I will inform the Eden Group.";
- close;
+ case 5:
+ mes "- There are several requests -";
+ mes "- related to the Localized Islands -";
+ mes "- on this mission Board. -";
+ next;
+ set .@str1$,"I want to go on an adventure but there are so many things I have to deal with. If I can't, then others can't either! ";
+ set .@str2$,"- Funfy, who wants to go on an adventure -";
+ switch(select("Hunt Kikimora:Hunt Miyabi Doll:Hunt Mi Gao:Hunt Headless Mule:Hunt Tamruan:Gather Festival Masks for the Festival")) {
+ case 1: callsub L_Quest,10121,.@str1$+"Hunt 15 Kikimoras in Moscovia!",.@str2$;
+ case 2: callsub L_Quest,10122,.@str1$+"Hunt 15 Miyabi Dolls in Amatsu!",.@str2$;
+ case 3: callsub L_Quest,10123,.@str1$+"Hunt 15 Mi Gaos in Louyang!",.@str2$;
+ case 4: callsub L_Quest,5055,"I know there are many terrifying monsters outside the city, but what terrifies me are these Headless Mules lurking around. I hope they will never venture into town. Hunt 15 Headless Mules!","- Mariana from Brasilis -";
+ case 5: callsub L_Quest,5056,"Tamruans make a lot of noise. I don't mind in the morning but they keep me from falling asleep at night. I want to sleep. Hunt 15 Tamruans!","- Shaman Pumo from Ayotaya -";
+ case 6: callsub L_Quest,5057,"The Dumpling Childs stole all the masks that I had prepared for the festival. Try to get a hold of 30 masks! I'll owe you~","- SaYumMoon Chief of Kunlun -";
}
}
- close;
-}
+ end;
-alberta,215,111,5 script Funfi 828,{
- if ((checkquest(10121) == 2) && (checkquest(10122) == 2) && (checkquest(10123) == 2) && (slv_quest == 6)) {
- set slv_quest,0;
- mes "[Funfi]";
- mes "Um! Thank you so much for all your efforts!";
- mes "I will inform, the Eden Group about your assistance, don't worry!";
- mes "Hahahaha...";
- close;
- }
- if (checkquest(10121) == 1 || checkquest(10122) == 1 || checkquest(10123) == 1) {
- mes "[Funfi]";
- mes "Unbelievable~! So fast~!";
- mes "Which monster did you hunt?";
- next;
- setarray .@monsters$[0],"Kikimora","Miyabi Doll","Mi Gao";
- set .@i, select(implode(.@monsters$,":"))-1;
- if (checkquest(10121+.@i,HUNTING) == 2) {
- mes "[Funfi]";
- mes "Ok! You've hunted 15 "+.@monsters$[.@i]+"!";
- mes "You're the best!";
+//callsub L_Quest,<quest ID>{,"<description1>","<description2>"};
+L_Quest:
+ set .@quest, getarg(0);
+ switch(.@quest) {
+ case 10107: set .@name$,"Hunt Requiem"; set .@exp,15000; break;
+ case 10108: set .@name$,"Hunt Marduk"; set .@exp,15000; break;
+ case 10109: set .@name$,"Hunt Pasana"; set .@exp,15000; break;
+ case 10110: set .@name$,"Hunt Dark Frame"; set .@exp,20000; break;
+ case 10111: set .@name$,"Hunt Evil Druid"; set .@exp,20000; break;
+ case 10112: set .@name$,"Hunt Wraith"; set .@exp,20000; break;
+ case 10113: set .@name$,"Hunt Raydric Archer"; set .@exp,20000; break;
+ case 10114: set .@name$,"Hunt Grand Peco"; set .@exp,30000; break;
+ case 10115: set .@name$,"Hunt Sleeper"; set .@exp,30000; break;
+ case 10116: set .@name$,"Hunt Goat"; set .@exp,30000; break;
+ case 10117: set .@name$,"Hunt Harpy"; set .@exp,30000; break;
+ case 10118: set .@name$,"Hunt Clock"; set .@exp,25000; break;
+ case 10119: set .@name$,"Hunt Punk"; set .@exp,25000; break;
+ case 10120: set .@name$,"Hunt Rideword"; set .@exp,25000; break;
+ case 10121: set .@name$,"Hunt Kikimora"; set .@exp,30000; break;
+ case 10122: set .@name$,"Hunt Miyabi Doll"; set .@exp,30000; break;
+ case 10123: set .@name$,"Hunt Mi Gao"; set .@exp,30000; break;
+ case 5055: set .@name$,"Hunt Headless Mule"; set .@exp,30000; break;
+ case 5056: set .@name$,"Hunt Tamruan"; set .@exp,30000; break;
+ case 5057: set .@name$,"Gather Festival Masks for the Festival"; set .@exp,30000; break;
+ }
+ if (getargcount() == 1) {
+ mes "'"+.@name$+"' completed. Do you want to turn it in and receive your reward?";
+ next;
+ if(select("Turn in quest.:Cancel.") == 1) {
+ if (.@quest == 5057) delitem 7187,30; //Festival_Mask
+ erasequest .@quest;
+ getexp .@exp,0;
+ mes "You've received EXP for finishing the quest.";
next;
- completequest 10121+.@i;
- getexp 48000,0;
- mes "[Funfi]";
- mes "Please hunt the others as well.";
- mes "I have faith in you!";
- close;
+ return;
}
- mes "[Funfi]";
- mes "Oh~ No no~!!";
- mes "Listen carefully! Hunt 15 "+.@monsters$[.@i]+".";
close;
- }
- if (slv_quest == 6) {
- mes "[Funfi]";
- mes "Moscovia's Kikimore,";
- mes "Miyabi Dolls from Amatsu";
- mes "and Mi Gaos from Louyang.";
- mes "Please hunt 15 of each of those monsters.";
- close;
- }
- mes "[Funfi]";
- mes "I am a man who wants to experience adventures. But for some reason I can't...";
- next;
- mes "[Funfi]";
- mes "There are a lot of funny things in the world... Wooo!";
- if (slv_quest == 5) {
- next;
- mes "[Funfi]";
- mes "Anyway are you from the Eden Group?";
- mes "You are? Cool! I've been waiting for you~!";
- next;
- mes "[Funfi]";
- mes "No questions! Just do it now!";
- mes "Hunt Kikimora in Moscovia,";
- mes "Miyabi Dolls in Amatsu";
- mes "and Mi Gaos in Louyang!";
- mes "Hunt 15 each of those monsters!";
- next;
- mes "[Funfi]";
- mes "Please~!! haha.";
- mes "Hurry up!";
- next;
- switch (select("Accept mission.:Decline mission.")) {
- case 1:
- completequest 10106;
- setquest 10121;
- setquest 10122;
- setquest 10123;
- set slv_quest,6;
- getitem 7167,10; //Mystery_Iron_Bit
- mes "[Funfi]";
- mes "Ok! Good! Hurry up.";
- mes "Hunt the monsters on each of those 3 islands.";
+ } else {
+ if (.@quest == 5057) {
+ // Quest 5057 is the only collection quest, so separate conditions are unnecessary.
+ if (checkquest(5057) == -1)
+ set .@hunting,-1;
+ else if (countitem(7187) >= 30)
+ set .@hunting,2;
+ } else
+ set .@hunting, checkquest(.@quest,HUNTING);
+ if (.@hunting == 0 || .@hunting == 1) {
+ mes getarg(1);
+ mes getarg(2);
next;
- mes "[Funfi]";
- mes "I will give you some materials for use in Moscovia.";
- mes "Go as soon as you can!";
- close;
- case 2:
- set slv_quest,0;
- erasequest 10106;
- mes "[Funfi]";
- mes "What? You don't want to work?! Gosh!";
- mes "I will inform the Eden Group of this!";
- close;
+ mes "Return here when you've finished the quest.";
+ } else if (.@hunting == 2) {
+ mes "You have completed the quest.";
+ next;
+ if(select("Turn in quest.:Cancel.") == 1) {
+ if (.@quest == 5057) delitem 7187,30; //Festival_Mask
+ erasequest .@quest;
+ getexp .@exp,0;
+ mes "You've received EXP for finishing the quest.";
+ }
+ }/* else if (.@hunting == 3) {
+// recall_completequest .@quest
+ erasequest .@quest;
+ mes "You have re-accepted the quest '"+.@name$+"'.";
+ }*/ else {
+ mes getarg(1);
+ mes getarg(2);
+ next;
+ mes "Do you want to accept the quest?";
+ next;
+ if(select("Yes.:No.") == 1) {
+ mes "You've received the quest '"+.@name$+"'. View your quest info for more details.";
+ setquest .@quest;
+ }
}
+ close;
}
- close;
}
diff --git a/npc/re/quests/eden/86-90.txt b/npc/re/quests/eden/86-90.txt
index 4ac5bbb19..01c8fec29 100644
--- a/npc/re/quests/eden/86-90.txt
+++ b/npc/re/quests/eden/86-90.txt
@@ -3,109 +3,196 @@
//===== By: ==================================================
//= Chilly
//===== Current Version: =====================================
-//= 1.2
+//= 1.3
+//===== File Encoding ========================================
+//= CP-949 (EUC-KR compatible). Do NOT read/save it as UTF-8.
//===== Description: =========================================
//= Repetable Quests for Players between Baselevel 86 - 90.
//===== Additional Comments: =================================
//= 1.0 First Version. [Chilly]
//= 1.1 Some little improvements here and there. [Masao]
//= 1.2 Optimized. [Euphy]
+//= 1.3 Updated to match the official script. [Euphy]
//============================================================
-moc_para01,48,175,3 script Mission [86 - 90] 857,{
+moc_para01,48,175,3 script 86-90 Mission Board 4_BOARD3,{
if (countitem(6219) < 1) {
- mes "- Only members of the -";
- mes "- Eden Group can read -";
- mes "- this bulletin board. -";
- close;
- }
- if (BaseLevel < 86) {
- mes "- This missions can only be -";
- mes "- read by those who are -";
- mes "- of the correct level. -";
- mes "- There might be another -";
- mes "- board somewhere for -";
- mes "- my level. -";
- close;
+ mes "Wait a minute!";
+ mes "-You need to have an-";
+ mes "-^4d4dff'Eden Group Mark'^000000-";
+ mes "-to receive these missions.-";
+ next;
+ switch(select("Just walk away.:^0000FFEden Group^000000 missions?:How can I be a member of the ^0000FFEden Group^000000?")) {
+ case 1:
+ close;
+ case 2:
+ mes "::The Eden Group Missions";
+ mes "::are basically missions";
+ mes "::requested by";
+ mes "::people from all around the kingdom.";
+ mes "::We just categorize them.";
+ next;
+ mes "::In the Eden Group,";
+ mes "::we sorted out the missions";
+ mes "::according to the level of difficulty.";
+ mes "::According to this level,";
+ mes "::you can find";
+ mes "::missions that";
+ mes "::suit you.";
+ next;
+ mes "::When you are done,";
+ mes "::you can come back";
+ mes "::to the mission board.";
+ next;
+ mes "::Then you will be";
+ mes "::rewarded!!";
+ mes "::Simple, isn't it!!";
+ mes "::No commission required!!";
+ close;
+ case 3:
+ mes "::You can become a member";
+ mes "::of the Eden Group";
+ mes "::to ^0000FFLaime Evenor^000000,";
+ mes "::who is waiting on the 1st floor.";
+ next;
+ mes "::If you become a member,";
+ mes "::you will get an";
+ mes "::\"^006400Eden Group Mark^000000\".";
+ mes "::Then you will be able";
+ mes "::to see the mission board.";
+ close;
+ }
}
- if (BaseLevel > 90) {
- setarray .@Exp[0],76000,82000,82000,72000,76000,72000,117000,82000,120000,72000,72000,72000,86000,80000;
- setarray .@Mob$[0],"Dragon Tail","Spring Rabbit","Pest","Bathory","Alarm","Baba Yaga","Hyegun","Antique Firelock","Zipper Bear","Earth Petite","Rafflesia","Venomous","Pitman","Yellow Novus";
- for(set .@i,0; .@i<14; set .@i,.@i+1)
- if (checkquest(4167+.@i,HUNTING) == 2) {
- mes "You hunted all 30 "+.@Mob$[.@i]+".";
- mes "Thank you very much.";
+ if (BaseLevel < 86 || BaseLevel > 90) {
+ // Quest IDs: 4167-4180
+ // Quest cooldown IDs: 4198-4211
+ setarray .@names$[0],
+ "Dragon Tail","Spring Rabbit","Pest",
+ "Bathory","Alarm",
+ "Baba Yaga","Yao Jun","Firelock Soldier","Zipper Bear",
+ "Ground Petite","Rafflesia","Venomous","Pitman","Yellow Novus";
+ setarray .@exp[0],
+ 76000,82000,82000,
+ 72000,76000,
+ 72000,78000,82000,80000,
+ 72000,72000,72000,86000,80000;
+ mes "You must be within level 86-90 to accept these missions.";
+ for(set .@quest,4167; .@quest<=4180; set .@quest,.@quest+1) {
+ set .@hunting, checkquest(.@quest,HUNTING);
+ if (.@hunting == 0 || .@hunting == 1) {
next;
- mes "I know it isn't much but here's a small gift.";
- mes "I hope that it helps you at least a little bit.";
+ mes ":: You cannot proceed in";
+ mes ":: ^0000FF"+.@names$[.@quest-4167]+" Hunting^000000.";
+ mes ":: The registration to the mission";
+ mes ":: is cancelled.";
+ erasequest .@quest;
+ close;
+ } else if (.@hunting == 2) {
next;
- erasequest 4167+.@i;
- getexp .@Exp[.@i],0;
- mes "Wooohoo!";
- mes "Good luck.";
+ mes ":: You added information";
+ mes ":: about the mission";
+ mes ":: ^0000FF"+.@names$[.@quest-4167]+" Hunting^000000";
+ mes ":: on the mission board.";
+ mes ":: You've got a";
+ mes ":: salutary experience.";
+ erasequest .@quest;
+ getexp .@exp[.@quest-4167],0;
close;
}
- mes "- This missions can only be -";
- mes "- read by those who are -";
- mes "- of the correct level. -";
- mes "- There might be another -";
- mes "- board somewhere for -";
- mes "- my level. -";
+ }
close;
}
- mes "- Many hunting missions -";
- mes "- are on the bulletin board. -";
+ mes "[86-90 Mission Board]";
+ mes "There are several requests on this board.";
next;
- switch(select("Turtle Dungeon Area:Clock Tower Area:Local Area:Other Area")) {
+ switch(select("^8B4513Turtle Island^000000:^8B4513Clock Tower Dungeon^000000:^8B4513Expansion Towns^000000:^8B4513Other Regions^000000")) {
case 1:
- switch(select("Dragon Tail:Spring Rabbit:Pest")) {
- case 1: callsub L_Quest,4167,"Dragon Tail",76000;
- case 2: callsub L_Quest,4168,"Spring Rabbit",82000;
- case 3: callsub L_Quest,4169,"Pest",82000;
+ mes "^8B4513Turtle Island^000000.";
+ mes "Which monster will you hunt or have you finished hunting?";
+ next;
+ switch(select("^0000FFDragon Tail^000000:^0000FFSpring Rabbit^000000:^0000FFPest^000000")) {
+ case 1: callsub L_Quest,4167,"Dragon Tail",76000,"µå·¡°ïÅ×ÀÏÄ«µå","There is a monster that only can be found on ^8B4513Turtle Island^000000.","s";
+ case 2: callsub L_Quest,4168,"Spring Rabbit",82000,"½ºÇÁ¸µ·¡ºøÄ«µå","There is a monster that only can be found on ^8B4513Turtle Island^000000.","s";
+ case 3: callsub L_Quest,4169,"Pest",82000,"Æ佺Ʈīµå","There is a monster that only can be found on ^8B4513Turtle Island^000000.","s";
}
case 2:
- switch(select("Bathory:Alarm")) {
- case 1: callsub L_Quest,4170,"Bathory",72000;
- case 2: callsub L_Quest,4171,"Alarm",76000;
+ mes "^8B4513Clock Tower Dungeon^000000.";
+ mes "Which monster will you hunt or have you finished hunting?";
+ next;
+ switch(select("^0000FFBathory^000000:^0000FFAlarm^000000")) {
+ case 1: callsub L_Quest,4170,"Bathory",72000,"¹Ù¼Ò¸®Ä«µå","The Clock Tower Dungeon is full of dangerous monsters.";
+ case 2: callsub L_Quest,4171,"Alarm",76000,"¾Ë¶÷Ä«µå","The Clock Tower Dungeon is full of dangerous monsters.";
}
case 3:
- switch(select("Baba Yaga:Hyegun:Antique Firelock:Zipper Bear")) {
- case 1: callsub L_Quest,4172,"Baba Yaga",72000;
- case 2: callsub L_Quest,4173,"Hyegun",117000;
- case 3: callsub L_Quest,4174,"Antique Firelock",82000;
- case 4: callsub L_Quest,4175,"Zipper Bear",120000;
+ mes "^8B4513Expansion Cities^000000";
+ mes "Which monster will you hunt or have you finished hunting?";
+ next;
+ switch(select("^0000FFBaba Yaga^000000:^0000FFYao Jun^000000:^0000FFFirelock Soldier^000000:^0000FFZipper Bear^000000")) {
+ case 1: callsub L_Quest,4172,"Baba Yaga",72000,"","The witch Baba Yaga can be found in the outskirts of Moscovia.";
+ case 2: callsub L_Quest,4173,"Yao Jun",117000,"Çý±ºÄ«µå","There are human-like monsters that roam around the dungeon in Louyang.";
+ case 3: callsub L_Quest,4174,"Firelock Soldier",82000,"±¸½ÄÁ¶ÃѺ´Ä«µå","There are human-like monsters that roam around the dungeon in Amatsu.","s";
+ case 4: callsub L_Quest,4175,"Zipper Bear",120000,"ÁöÆÛº£¾îÄ«µå","There are bear monsters swarming in the Kunlun dungeon.";
}
case 4:
- switch(select("Earth Petite:Rafflesia:Venomous:Pitman:Yellow Novus")) {
- case 1: callsub L_Quest,4176,"Earth Petite",72000;
- case 2: callsub L_Quest,4177,"Rafflesia",72000;
- case 3: callsub L_Quest,4178,"Venomous",72000;
- case 4: callsub L_Quest,4179,"Pitman",86000;
- case 5: callsub L_Quest,4180,"Yellow Novus",80000;
+ mes "[86-90 Mission Board]";
+ mes "Here is a list of random requests to hunt monsters in other regions of Rune Midgard.";
+ mes "Which monster will you hunt or have you finished hunting?";
+ next;
+ switch(select("^0000FFGround Petite^000000:^0000FFRafflesia^000000:^0000FFVenomous^000000:^0000FFPitman^000000:^0000FFYellow Novus^000000")) {
+ case 1: callsub L_Quest,4176,"Ground Petite",72000,"Áö»ó»Ú¶ìÄ«µå","There are dragon type monsters swarming the western region of Geffen.";
+ case 2: callsub L_Quest,4177,"Rafflesia",72000,"¶óÇ÷¹½Ã¾ÆÄ«µå","There are plant type monsters infesting the fields of Lighthalzen.";
+ case 3: callsub L_Quest,4178,"Venomous",72000,"º£³ë¸Ó½º","There are formless monsters floating around the fields of Einbroch.";
+ case 4: callsub L_Quest,4179,"Pitman",86000,"Ç͸Ç","There are undead monsters pushing a cart around the fields and dungeons of Einbroch.";
+ case 5: callsub L_Quest,4180,"Yellow Novus",80000,"¿»·Î¿ì³ë¹ö½º","There are yellow dragon type monsters terrorizing the fields of Hugel.";
}
}
end;
+
+//callsub L_Quest,<quest ID>,"<monster name>",<reward EXP>,"<cutin image>","<description>"{,"s"};
L_Quest:
- if (checkquest(getarg(0),HUNTING) == 2) {
- mes "You hunted all 30 "+getarg(1)+".";
- mes "Thank you very much.";
- next;
- mes "I know it isn't much but here's a small gift.";
- mes "I hope that it helps you at least a little bit.";
- next;
- erasequest getarg(0);
- getexp getarg(2),0;
- mes "Wooohoo!";
- mes "Good luck.";
+ set .@quest1, getarg(0);
+ set .@quest2, .@quest1+31;
+ set .@playtime, checkquest(.@quest2,PLAYTIME);
+ if (.@playtime == 0 || .@playtime == 1) {
+ mes "[86-90 Mission Board]";
+ mes "You need to wait 3 hours before you can take this mission again.";
close;
}
- if (checkquest(getarg(0)) == -1) {
- setquest getarg(0);
- mes "Please hunt 30 "+getarg(1)+" and return here.";
+ set .@hunting, checkquest(.@quest1,HUNTING);
+ if (.@hunting == 0 || .@hunting == 1) {
+ mes "[86-90 Mission Board]";
+ mes "Have you finished hunting all 30 "+getarg(1)+getarg(5,"")+" yet?";
+ close;
+ } else if (.@hunting == 2) {
+ mes "[86-90 Mission Board]";
+ mes "You have completed the hunting.";
+ mes "Please accept this reward as a compensation.";
+ erasequest .@quest1;
+ if (.@playtime > -1) erasequest .@quest2;
+ setquest .@quest2;
+ getexp getarg(2),0;
+ close;
+ }/* else if (.@hunting == 3) {
+// recall_completequest .@quest1
+ erasequest .@quest1;
+ mes "[86-90 Mission Board]";
+ mes "You have re-accepted the "+getarg(1)+" Hunting mission.";
+ close;
+ }*/ else {
+ mes "[86-90 Mission Board]";
+ mes getarg(4);
+ next;
+ if (getarg(3) != "") cutin getarg(3),3;
+ mes "[86-90 Mission Board]";
+ mes "Hunt 30 "+getarg(1)+" monsters there and post your success on this board.";
+ next;
+ if (getarg(3) != "") cutin getarg(3),255;
+ if(select("I'll hunt them.:No thanks.") == 1) {
+ mes "[86-90 Mission Board]";
+ mes "When you have completed the mission, post it on this board and collect your reward.";
+ if (.@playtime > -1) erasequest .@quest2;
+ setquest .@quest1;
+ }
close;
}
- mes "Umm? You didn't hunt";
- mes "all 30 "+getarg(1)+" yet...";
- mes "Will you check again?";
- close;
}
diff --git a/npc/re/quests/eden/91-99.txt b/npc/re/quests/eden/91-99.txt
index bf80c2a7c..e6744e80f 100644
--- a/npc/re/quests/eden/91-99.txt
+++ b/npc/re/quests/eden/91-99.txt
@@ -3,114 +3,213 @@
//===== By: ==================================================
//= Chilly
//===== Current Version: =====================================
-//= 1.2
+//= 1.3
+//===== File Encoding ========================================
+//= CP-949 (EUC-KR compatible). Do NOT read/save it as UTF-8.
//===== Description: =========================================
//= Repetable Quests for Players between Baselevel 91 - 99.
//===== Additional Comments: =================================
//= 1.0 First Version. [Chilly]
//= 1.1 Some little improvements here and there. [Masao]
//= 1.2 Optimized. [Euphy]
+//= 1.3 Updated to match the official script. [Euphy]
//============================================================
-moc_para01,48,177,3 script Mission [91 - 99] 857,{
+moc_para01,48,177,3 script 91-99 Mission Board 4_BOARD3,{
if (countitem(6219) < 1) {
- mes "- Only members of the -";
- mes "- Eden Group can read -";
- mes "- this bulletin board. -";
- close;
- }
- if (BaseLevel < 91) {
- mes "- This missions can only be -";
- mes "- read by those who are -";
- mes "- of the correct level. -";
- mes "- There might be another -";
- mes "- board somewhere for -";
- mes "- my level. -";
- close;
+ mes "Wait a minute!";
+ mes "-You need to have an-";
+ mes "-^4d4dff'Eden Group Mark'^000000-";
+ mes "-to receive these missions.-";
+ next;
+ switch(select("Just walk away.:^0000FFEden Group^000000 missions?:How can I be a member of the ^0000FFEden Group^000000?")) {
+ case 1:
+ close;
+ case 2:
+ mes "::The Eden Group Missions";
+ mes "::are basically missions";
+ mes "::requested by";
+ mes "::people from all around the kingdom.";
+ mes "::We just categorize them.";
+ next;
+ mes "::In the Eden Group,";
+ mes "::we sorted out the missions";
+ mes "::according to the level of difficulty.";
+ mes "::According to this level,";
+ mes "::you can find";
+ mes "::missions that";
+ mes "::suit you.";
+ next;
+ mes "::When you are done,";
+ mes "::you can come back";
+ mes "::to the mission board.";
+ next;
+ mes "::Then you will be";
+ mes "::rewarded!!";
+ mes "::Simple, isn't it!!";
+ mes "::No commission required!!";
+ close;
+ case 3:
+ mes "::You can become a member";
+ mes "::of the Eden Group";
+ mes "::to ^0000FFLaime Evenor^000000,";
+ mes "::who is waiting on the 1st floor.";
+ next;
+ mes "::If you become a member,";
+ mes "::you will get an";
+ mes "::\"^006400Eden Group Mark^000000\".";
+ mes "::Then you will be able";
+ mes "::to see the mission board.";
+ close;
+ }
}
- if (BaseLevel > 99) {
- setarray .@Exp[0],90000,94000,114000,96000,96000,146000,96000,102000,110000,102000,108000,110000,138000,118000,96000,134000;
- setarray .@Mob$[0],"Solider","Freezer","Heater","Injustice","Rybio","Dark Priest","Stapo","Roween","Siroma","Shinobi","Evil Nymph","Deviruchi","Mineral","Kaho","Neraid","Disguise";
- for(set .@i,0; .@i<16; set .@i,.@i+1)
- if (checkquest(4181+.@i,HUNTING) == 2) {
- mes "You hunted all 30 "+.@Mob$[.@i]+".";
- mes "Thank you very much.";
+ if (BaseLevel < 91 || BaseLevel > 99) {
+ // Quest IDs: 4181-4196
+ // Quest cooldown IDs: 4212-4227
+ setarray .@names$[0],
+ "Solider","Freezer","Heater",
+ "Injustice","Rybio","Dark Priest",
+ "Stapo","Roween","Siroma",
+ "Shinobi","Evil Nymph",
+ "Deviruchi","Mineral","Kaho","Neraid","Disguise";
+ setarray .@exp[0],
+ 90000,94000,114000,
+ 96000,96000,146000,
+ 96000,102000,110000,
+ 102000,108000,
+ 110000,138000,118000,96000,134000;
+ mes "You must be within level 91-99 to accept these missions.";
+ for(set .@quest,4181; .@quest<=4196; set .@quest,.@quest+1) {
+ set .@hunting, checkquest(.@quest,HUNTING);
+ if (.@hunting == 0 || .@hunting == 1) {
next;
- mes "I know it isn't much but here's a small gift.";
- mes "I hope that it helps you at least a little bit.";
+ mes ":: You cannot proceed in";
+ mes ":: ^0000FF"+.@names$[.@quest-4181]+" Hunting^000000.";
+ mes ":: The registration to the mission";
+ mes ":: is cancelled.";
+ erasequest .@quest;
+ close;
+ } else if (.@hunting == 2) {
next;
- erasequest 4181+.@i;
- getexp .@Exp[.@i],311000;
- mes "Wooohoo!";
- mes "Good luck.";
+ mes ":: You added information";
+ mes ":: about the mission";
+ mes ":: ^0000FF"+.@names$[.@quest-4181]+" Hunting^000000";
+ mes ":: on the mission board.";
+ mes ":: You've got a";
+ mes ":: salutary experience.";
+ erasequest .@quest;
+ getexp .@exp[.@quest-4181],0;
close;
}
- mes "- This missions can only be -";
- mes "- read by those who are -";
- mes "- of the correct level. -";
- mes "- There might be another -";
- mes "- board somewhere for -";
- mes "- my level. -";
+ }
close;
}
- mes "- Many hunting missions -";
- mes "- are on the bulletin board. -";
+ mes "[91-99 Mission Board]";
+ mes "There are several requests on this board.";
next;
- switch(select("Turtle Dungeon Area:Glast Heim Area:Rachel Area:Local Area:Other Area")) {
+ switch(select("^8B4513Turtle Island^000000:^8B4513Glast Heim^000000:^8B4513Rachel / Veins^000000:^8B4513Expansion Cities^000000:^8B4513Other regions^000000")) {
case 1:
- switch(select("Solider:Freezer:Heater")) {
- case 1: callsub L_Quest,4181,"Solider",90000;
- case 2: callsub L_Quest,4182,"Freezer",94000;
- case 3: callsub L_Quest,4183,"Heater",114000;
+ mes "^8B4513Turtle Island^000000.";
+ mes "Which monster will you hunt or have you finished hunting?";
+ next;
+ switch(select("^0000FFSolider^000000:^0000FFFreezer^000000:^0000FFHeater^000000")) {
+ case 1: callsub L_Quest,4181,"Solider",90000,"¼Ö¸®´õÄ«µå","There is a monster that only can be found on ^8B4513Turtle Island^000000.";
+ case 2: callsub L_Quest,4182,"Freezer",94000,"ÇÁ¸®ÀúÄ«µå","There is a monster that only can be found on ^8B4513Turtle Island^000000.";
+ case 3: callsub L_Quest,4183,"Heater",114000,"È÷ÅÍÄ«µå","There is a monster that only can be found on ^8B4513Turtle Island^000000.";
}
case 2:
- switch(select("Injustice:Rybio:Dark Priest")) {
- case 1: callsub L_Quest,4184,"Injustice",96000;
- case 2: callsub L_Quest,4185,"Rybio",96000;
- case 3: callsub L_Quest,4186,"Dark Priest",146000;
+ mes "^8B4513Glast Heim^000000.";
+ mes "Which monster will you hunt or have you finished hunting?";
+ next;
+ switch(select("^0000FFInjustice^000000:^0000FFRybio^000000:^0000FFDark Priest^000000")) {
+ case 1: callsub L_Quest,4184,"Injustice",96000,"ÀÎÀú½ºÆ¼½ºÄ«µå","There is a monster only found in ^8B4513Glast Heim prison^000000.";
+ case 2: callsub L_Quest,4185,"Rybio",96000,"¸®ºñ¿ÀÄ«µå","There is a monster only found in ^8B4513Glast Heim prison^000000.";
+ case 3: callsub L_Quest,4186,"Dark Priest",146000,"´ÙÅ©ÇÁ¸®½ºÆ®Ä«µå","There is a monster only found in ^8B4513Glast Heim prison^000000.";
}
case 3:
- switch(select("Stapo:Roween:Siroma")) {
- case 1: callsub L_Quest,4187,"Stapo",96000;
- case 2: callsub L_Quest,4188,"Roween",102000;
- case 3: callsub L_Quest,4189,"Siroma",110000;
+ mes "^8B4513Rachel / Veins^000000.";
+ mes "Which monster will you hunt or have you finished hunting?";
+ next;
+ switch(select("^0000FFStapo^000000:^0000FFRoween^000000:^0000FFSiroma^000000")) {
+ case 1: callsub L_Quest,4187,"Stapo",96000,"½ºÅÂÆ÷Ä«µå","There is a monster only found in ^8B4513Veins^000000.";
+ case 2: callsub L_Quest,4188,"Roween",102000,"·Î¿ìÀ©Ä«µå","There is a monster only found in ^8B4513Rachel^000000.";
+ case 3: callsub L_Quest,4189,"Siroma",110000,"½Ã·Î¸¶Ä«µå","There is a monster only found in ^8B4513Ice Dungeon^000000.";
}
case 4:
- switch(select("Shinobi:Evil Nymph")) {
- case 1: callsub L_Quest,4190,"Shinobi",102000;
- case 2: callsub L_Quest,4191,"Evil Nymph",108000;
+ mes "^8B4513Expansion Cities^000000.";
+ mes "Which monster will you hunt or have you finished hunting?";
+ next;
+ switch(select("^0000FFShinobi^000000:^0000FFEvil Nymph^000000")) {
+ case 1: callsub L_Quest,4190,"Shinobi",102000,"½Ã³ëºñÄ«µå","There is a monster only found in ^8B4513Amatsu Dungeon^000000.";
+ case 2: callsub L_Quest,4191,"Evil Nymph",108000,"¿ä¼±³àÄ«µå","There is a monster only found in ^8B4513Kunlun Dungeon^000000.";
}
case 5:
- switch(select("Deviruchi:Mineral:Kaho:Neraid:Disguise")) {
- case 1: callsub L_Quest,4192,"Deviruchi",110000;
- case 2: callsub L_Quest,4193,"Mineral",138000;
- case 3: callsub L_Quest,4194,"Kaho",118000;
- case 4: callsub L_Quest,4195,"Neraid",96000;
- case 5: callsub L_Quest,4196,"Disguise",134000;
+ mes "Other Regions.";
+ mes "Which monster will you hunt or have you finished hunting?";
+ next;
+ switch(select("^0000FFDeviruchi^000000:^0000FFMineral^000000:^0000FFKaho^000000:^0000FFNeraid^000000:^0000FFDisguise^000000")) {
+ case 1: callsub L_Quest,4192,"Deviruchi",110000,"µ¥ºñ·çÄ¡Ä«µå","There is a monster only found in ^8B4513Geffen Dungeon^000000.";
+ case 2: callsub L_Quest,4193,"Mineral",138000,"¹Ì³×¶ö","There is a monster only found in ^8B4513Einbech Dungeon^000000.";
+ case 3: callsub L_Quest,4194,"Kaho",118000,"īȣīµå","There is a monster found in ^8B4513Nogg Road Magma 1^000000.";
+ case 4: callsub L_Quest,4195,"Neraid",96000,"³×·¹À̵åÄ«µå","There is a monster only found in ^8B4513Comodo Dungeon^000000.";
+ case 5: callsub L_Quest,4196,"Disguise",134000,"µð½º°¡ÀÌÁîÄ«µå","There is a monster only found in ^8B4513Nifflheim^000000.";
}
}
end;
+
+//callsub L_Quest,<quest ID>,"<monster name>",<reward EXP>,"<cutin image>","<description>"{,"s"};
L_Quest:
- if (checkquest(getarg(0),HUNTING) == 2) {
- mes "You hunted all 30 "+getarg(1)+".";
- mes "Thank you very much.";
- next;
- mes "I know it isn't much but here's a small gift.";
- mes "I hope that it helps you at least a little bit.";
- next;
- erasequest getarg(0);
- getexp getarg(2),311000;
- mes "Wooohoo!";
- mes "Good luck.";
+ set .@quest1, getarg(0);
+ set .@quest2, .@quest1+31;
+ set .@playtime, checkquest(.@quest2,PLAYTIME);
+ if (.@playtime == 0 || .@playtime == 1) {
+ mes "[91-99 Mission Board]";
+ mes "You need to wait 3 hours before you can take this mission again.";
close;
}
- if (checkquest(getarg(0)) == -1) {
- setquest getarg(0);
- mes "Please hunt 30 "+getarg(1)+" and return here.";
+ set .@hunting, checkquest(.@quest1,HUNTING);
+ if (.@hunting == 0 || .@hunting == 1) {
+ mes "[91-99 Mission Board]";
+ mes "Have you finished hunting all 30 "+getarg(1)+getarg(5,"")+" yet?";
+ close;
+ } else if (.@hunting == 2) {
+ mes "[91-99 Mission Board]";
+ mes "You have completed the hunting.";
+ mes "Please accept this reward as a compensation.";
+ erasequest .@quest1;
+ if (.@playtime > -1) erasequest .@quest2;
+ setquest .@quest2;
+
+ // Job Experience calculation.
+ if (JobLevel > 50 && JobLevel < 56) set .@jexp,67000;
+ else if (JobLevel > 55 && JobLevel < 61) set .@jexp,94000;
+ else if (JobLevel > 60 && JobLevel < 66) set .@jexp,141000;
+ else if (JobLevel > 65 && JobLevel < 69) set .@jexp,212000;
+ else if (JobLevel == 69) set .@jexp,311000;
+
+ getexp getarg(2),.@jexp;
+ close;
+ }/* else if (.@hunting == 3) {
+// recall_completequest .@quest1
+ erasequest .@quest1;
+ mes "[91-99 Mission Board]";
+ mes "You have re-accepted the "+getarg(1)+" Hunting mission.";
+ close;
+ }*/ else {
+ mes "[91-99 Mission Board]";
+ mes getarg(4);
+ next;
+ if (getarg(3) != "") cutin getarg(3),3;
+ mes "[91-99 Mission Board]";
+ mes "Hunt 30 "+getarg(1)+" monsters there and post your success on this board.";
+ next;
+ if (getarg(3) != "") cutin getarg(3),255;
+ if(select("I'll hunt them.:No thanks.") == 1) {
+ mes "[91-99 Mission Board]";
+ mes "When you have completed the mission, post it on this board and collect your reward.";
+ if (.@playtime > -1) erasequest .@quest2;
+ setquest .@quest1;
+ }
close;
}
- mes "Umm? You didn't hunt";
- mes "all 30 "+getarg(1)+" yet...";
- mes "Will you check again?";
- close;
}
diff --git a/npc/re/quests/eden/eden_common.txt b/npc/re/quests/eden/eden_common.txt
index 8570fd39e..7c6be1aa4 100644
--- a/npc/re/quests/eden/eden_common.txt
+++ b/npc/re/quests/eden/eden_common.txt
@@ -1,14 +1,12 @@
//===== Hercules Script ======================================
//= Eden Group Quests - Common NPCs
-//===== By: ==================================================
+//===== By: ==================================================
//= L0ne_W0lf
-//===== Current Version: =====================================
-//= 1.6
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Current Version: =====================================
+//= 1.8
+//===== Description: =========================================
//= Eden Group Headquarter NPC's.
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First Version.
//= 1.1 Removed showevent use, and use of duplicates.
//= Commented out warps that should not be active.
@@ -17,10 +15,11 @@
//= 1.4 Updated to match the new Izlude Map. [Masao]
//= 1.5 Added some missing Eden Group Teleport Officers. [Masao]
//= 1.6 Added Izlude RE coordinates. [Euphy]
+//= 1.7 Added Malaya teleporter. [Euphy]
+//= 1.8 Updated to match the latest official script. [Euphy]
//============================================================
-moc_para01,27,35,5 script Secretary Lime Evenor 952,{
-
+moc_para01,27,35,5 script Secretary Lime Evenor 4_F_EDEN_OFFICER,{
if (checkweight(1201,1) == 0 || (MaxWeight - Weight) < 2000) {
mes "- Wait a minute !! -";
mes "- Currently you're carrying -";
@@ -68,12 +67,12 @@ moc_para01,27,35,5 script Secretary Lime Evenor 952,{
mes "Let me see.";
next;
mes "[Lime Evenor]";
- mes "Your name is ^3131FFBo"+.@input$+"Ba^000000..? Is that right?";
+ mes "Your name is ^3131FFBo"+.@input$+"Ba^000000...? Is that right?";
mes "Huh? Isn't it??";
next;
emotion e_swt;
mes "[Lime Evenor]";
- mes "Hmm that isn't what you wrote?.";
+ mes "Hmm, that isn't what you wrote?";
mes "Ok, hmm, it seems a bit hard to read.";
next;
mes "[Lime Evenor]";
@@ -213,33 +212,44 @@ moc_para01,27,35,5 script Secretary Lime Evenor 952,{
close;
}
}
+prontera,124,76,3 duplicate(eto) Eden Teleport Officer#1 4_F_NOVICE
+moc_ruins,68,164,3 duplicate(eto) Eden Teleport Officer#2 4_F_NOVICE
+geffen,132,66,3 duplicate(eto) Eden Teleport Officer#3 4_F_NOVICE
+alberta,124,67,3 duplicate(eto) Eden Teleport Officer#4 4_F_NOVICE
+aldebaran,133,119,5 duplicate(eto) Eden Teleport Officer#5 4_F_NOVICE
+izlude_in,68,162,1 duplicate(eto) Eden Teleport Officer#6 4_F_NOVICE
+prt_church,103,78,3 duplicate(eto) Eden Teleport Officer#7 4_F_NOVICE
+geffen_in,160,104,5 duplicate(eto) Eden Teleport Officer#8 4_F_NOVICE
+moc_prydb1,53,126,3 duplicate(eto) Eden Teleport Officer#9 4_F_NOVICE
+alberta_in,75,39,3 duplicate(eto) Eden Teleport Officer#10 4_F_NOVICE
+payon_in02,58,58,1 duplicate(eto) Eden Teleport Officer#11 4_F_NOVICE
+payon,177,111,3 duplicate(eto) Eden Teleport Officer#12 4_F_NOVICE
+que_ng,33,73,3 duplicate(eto) Eden Teleport Officer#13 4_F_NOVICE
+que_ng,144,161,5 duplicate(eto) Eden Teleport Officer#14 4_F_NOVICE
+yuno,144,189,5 duplicate(eto) Eden Teleport Officer#15 4_F_NOVICE
+rachel,125,144,3 duplicate(eto) Eden Teleport Officer#16 4_F_NOVICE
+comodo,202,151,4 duplicate(eto) Eden Teleport Officer#17 4_F_NOVICE
+hugel,93,153,4 duplicate(eto) Eden Teleport Officer#18 4_F_NOVICE
+veins,220,109,4 duplicate(eto) Eden Teleport Officer#19 4_F_NOVICE
+einbroch,250,211,4 duplicate(eto) Eden Teleport Officer#20 4_F_NOVICE
+lighthalzen,164,86,4 duplicate(eto) Eden Teleport Officer#21 4_F_NOVICE
+amatsu,100,145,5 duplicate(eto) Eden Teleport Officer#22 4_F_NOVICE
+ayothaya,221,191,3 duplicate(eto) Eden Teleport Officer#23 4_F_NOVICE
+louyang,224,107,3 duplicate(eto) Eden Teleport Officer#24 4_F_NOVICE
+gonryun,162,122,5 duplicate(eto) Eden Teleport Officer#25 4_F_NOVICE
+moscovia,209,197,5 duplicate(eto) Eden Teleport Officer#26 4_F_NOVICE
+brasilis,191,224,3 duplicate(eto) Eden Teleport Officer#27 4_F_NOVICE
+dewata,192,193,5 duplicate(eto) Eden Teleport Officer#28 4_F_NOVICE
+morocc,161,97,5 duplicate(eto) Eden Teleport Officer#29 4_F_NOVICE
+izlude,131,148,4 duplicate(eto) Eden Teleport Officer#30 4_F_NOVICE
+izlude_a,131,148,4 duplicate(eto) Eden Teleport Officer#30::eto_iz_a 4_F_NOVICE
+izlude_b,131,148,4 duplicate(eto) Eden Teleport Officer#30::eto_iz_b 4_F_NOVICE
+izlude_c,131,148,4 duplicate(eto) Eden Teleport Officer#30::eto_iz_c 4_F_NOVICE
+izlude_d,131,148,4 duplicate(eto) Eden Teleport Officer#30::eto_iz_d 4_F_NOVICE
+umbala,105,158,3 duplicate(eto) Eden Teleport Officer#31 4_F_NOVICE
+malaya,238,206,6 duplicate(eto) Eden Teleport Officer#32 4_F_NOVICE
-prontera,124,76,3 duplicate(eto) Eden Teleport Officer#1 729
-moc_ruins,68,164,3 duplicate(eto) Eden Teleport Officer#2 729
-geffen,132,66,3 duplicate(eto) Eden Teleport Officer#3 729
-alberta,124,67,3 duplicate(eto) Eden Teleport Officer#4 729
-aldebaran,133,119,5 duplicate(eto) Eden Teleport Officer#5 729
-izlude,131,148,4 duplicate(eto) Eden Teleport Officer#6 729
-prt_church,103,78,3 duplicate(eto) Eden Teleport Officer#7 729
-geffen_in,160,104,5 duplicate(eto) Eden Teleport Officer#8 729
-moc_prydb1,53,126,3 duplicate(eto) Eden Teleport Officer#9 729
-alberta_in,75,39,3 duplicate(eto) Eden Teleport Officer#10 729
-payon_in02,58,58,1 duplicate(eto) Eden Teleport Officer#11 729
-payon,177,111,3 duplicate(eto) Eden Teleport Officer#12 729
-que_ng,33,73,3 duplicate(eto) Eden Teleport Officer#13 729
-que_ng,144,161,5 duplicate(eto) Eden Teleport Officer#14 729
-yuno,144,189,5 duplicate(eto) Eden Teleport Officer#15 729
-rachel,125,144,3 duplicate(eto) Eden Teleport Officer#16 729
-morocc,161,97,6 duplicate(eto) Eden Teleport Officer#17 729
-comodo,202,151,4 duplicate(eto) Eden Teleport Officer#18 729
-umbala,104,158,4 duplicate(eto) Eden Teleport Officer#19 729
-veins,220,109,4 duplicate(eto) Eden Teleport Officer#20 729
-lighthalzen,164,86,4 duplicate(eto) Eden Teleport Officer#21 729
-einbroch,250,211,4 duplicate(eto) Eden Teleport Officer#22 729
-hugel,93,153,4 duplicate(eto) Eden Teleport Officer#23 729
-
-moc_para01,30,10,0 script #eden_out 45,1,1,{
-
+moc_para01,30,10,0 script #eden_out WARPNPC,1,1,{
OnTouch:
switch (nak_warp) {
case 1: warp "prontera",116,72; end;
@@ -247,7 +257,7 @@ OnTouch:
case 3: warp "geffen",120,39; end;
case 4: warp "alberta",117,56; end;
case 5: warp "aldebaran",168,112; end;
- case 6: if (checkre(0)) warp "izlude",134,118; else warp "izlude",127,142; end;
+ case 6: warp "izlude_in",73,165; end;
case 7: warp "prt_church",99,78; end;
case 8: warp "geffen_in",162,99; end;
case 9: warp "moc_prydb1",51,118; end;
@@ -258,19 +268,28 @@ OnTouch:
case 14: warp "que_ng",144,166; end;
case 15: warp "yuno",158,125; end;
case 16: warp "rachel",115,125; end;
- case 17: warp "morocc",156,93; end;
- case 18: warp "comodo",209,143; end;
- case 19: warp "umbala",99,155; end;
- case 20: warp "veins",216,123; end;
- case 21: warp "lighthalzen",158,92; end;
- case 22: warp "einbroch",245,210; end;
- case 23: warp "hugel",95,145; end;
+ case 17: warp "comodo",192,145; end;
+ case 18: warp "hugel",88,148; end;
+ case 19: warp "veins",216,104; end;
+ case 20: warp "einbroch",246,204; end;
+ case 21: warp "lighthalzen",159,95; end;
+ case 22: warp "amatsu",110,150; end;
+ case 23: warp "ayothaya",217,178; end;
+ case 24: warp "louyang",217,103; end;
+ case 25: warp "gonryun",155,120; end;
+ case 26: warp "moscovia",218,198; end;
+ case 27: warp "brasilis",190,220; end;
+ case 28: warp "dewata",192,182; end;
+ case 29: warp "morocc",161,97; end;
+ case 30: warp "izlude",134,118; end; // Old coordinates: (127,142)
+ case 31: warp "umbala",94,154; end;
+ case 32: warp "malaya",234,199; end;
default: warp "prontera",116,72; end;
}
end;
}
-moc_para01,47,39,3 script #warp_2_pass 111,{
+moc_para01,47,39,3 script #warp_2_pass HIDDEN_NPC,{
if (countitem(6219) > 0) {
mes "[Lime Evenor]";
mes "Oh, it is an exclusive place only for Eden's members.";
@@ -294,7 +313,7 @@ moc_para01,47,39,3 script #warp_2_pass 111,{
close;
}
-moc_para01,16,22,7 script Old Adventurer#eden 900,{
+moc_para01,16,22,7 script Old Adventurer#eden 4_M_HUMERCHANT,{
mes "[Old Adventurer]";
mes "Harsh, I am strong enough even if I look old! What is his name? Lime Evenor? He just ignores me like I am a some kind of old senile bastard.";
next;
@@ -304,7 +323,7 @@ moc_para01,16,22,7 script Old Adventurer#eden 900,{
close;
}
-moc_para01,182,48,3 script Eden's Chief#eden 886,{
+moc_para01,182,48,3 script Eden's Chief#eden 4_COOK,{
set .@eggf,rand(1,118);
set .@eggf_1,.@eggf + 1;
set .@eggf_2,.@eggf + 2;
@@ -327,7 +346,7 @@ moc_para01,182,48,3 script Eden's Chief#eden 886,{
close;
}
-moc_para01,172,28,5 script Eden's Intern#eden 883,{
+moc_para01,172,28,5 script Eden's Intern#eden 4_M_ALCHE_D,{
mes "[Eden's Intern]";
mes "Actually, I realized that.";
next;
@@ -342,7 +361,7 @@ moc_para01,172,28,5 script Eden's Intern#eden 883,{
close;
}
-moc_para01,20,35,5 script Office Assistant Neede 814,{
+moc_para01,20,35,5 script Office Assistant Neede 4_F_CHNDOCTOR,{
mes "[Neede]";
mes "I became a Eden's member several years ago, but it feels like it was yesterday.";
mes "I have been doing lots of work, so I didn't even notice how many years I spent here.";
diff --git a/npc/re/quests/eden/eden_iro.txt b/npc/re/quests/eden/eden_iro.txt
new file mode 100644
index 000000000..78107cc46
--- /dev/null
+++ b/npc/re/quests/eden/eden_iro.txt
@@ -0,0 +1,598 @@
+//===== Hercules Script ======================================
+//= Eden iRO NPCs
+//===== By: ==================================================
+//= -SkittleNugget-
+//===== Current Version: =====================================
+//= 1.1
+//===== Description: =========================================
+//= Eden scripts custom to iRO (disabled by default).
+//= You may need iRO's data.grf to view some of the items.
+//===== Additional Comments: =================================
+//= 1.0 First version.
+//= 1.1 Edited and added more NPCs, lots of placeholders. [Euphy]
+//============================================================
+
+// Acolyte Warper (part of other/acolyte_warp.txt)
+//============================================================
+moc_para01,14,32,5 script Aperture#acolytewarp 4_F_01,{
+ mes "[Aperture]";
+ mes "Hello there, adventurer.";
+ mes "I've been studying magic from all over Rune-Midgard to upgrade what I believe to be one of the greatest skills available to the acolyte class.";
+ next;
+ mes "[Aperture]";
+ mes "I am the one and only Acolyte that has attained the Level 10 Warp Portal skill!";
+ emotion e_dots,1;
+ next;
+ mes "[Aperture]";
+ mes "That's right! And...";
+ mes "I promise you that I don't forget locations that I have already memorized.";
+ mes "One day I will level up my skills to warp to wherever I please~";
+ next;
+ mes "[Aperture]";
+ mes "I am willing to warp you to the many locations that I have memorized for a small fee.";
+ mes "Would you like to use this service?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ mes "[Aperture]";
+ mes "Where would you like to go to?";
+ mes "I wish you goodluck on your journey.";
+ next;
+
+ setarray .@towns$[0], "Prontera", "Izlude", "Geffen", "Payon", "Morroc", "Alberta", "Al De Baran", "Comodo", "Umbala", "Juno", "Einbroch", "Lighthalzen", "Hugel", "Rachel";
+ setarray .@cost[0], 600, 600, 1200, 1200, 1200, 1800, 2200, 2200, 2200, 1800, 2200, 2200, 2200, 2200;
+
+ set .@size, getarraysize(.@towns$);
+ for(set .@i,0; .@i<.@size; set .@i,.@i+1)
+ set .@menu$, .@menu$+.@towns$[.@i]+" -> "+.@cost[.@i]+"z:";
+ set .@i, select(.@menu$+"Cancel")-1;
+ if (.@i == .@size) {
+ mes "[Aperture]";
+ mes "Come back when you need a warp.";
+ close;
+ }
+ if (Zeny < .@cost[.@i]) {
+ mes "[Aperture]";
+ mes "I'm sorry, but you don't have";
+ mes "enough zeny for the Teleport";
+ mes "Service. The fee to teleport";
+ mes "to "+.@towns$[.@i]+" is "+.@cost[.@i]+" zeny.";
+ close;
+ }
+ specialeffect2 EF_READYPORTAL;
+ specialeffect2 EF_TELEPORTATION;
+ specialeffect2 EF_PORTAL;
+ next;
+ Zeny -= .@cost[.@i];
+ switch(.@i) {
+ case 0: warp "prontera",116,72; break;
+ case 1: warp "izlude",128,98; break;
+ case 2: warp "geffen",120,39; break;
+ case 3: warp "payon",161,58; break;
+ case 4: warp "morocc",156,46; break;
+ case 5: warp "alberta",117,56; break;
+ case 6: warp "aldebaran",168,112; break;
+ case 7: warp "comodo",209,143; break;
+ case 8: warp "umbala",100,154; break;
+ case 9: warp "yuno",158,125; break;
+ case 10: warp "einbroch",67,195; break;
+ case 11: warp "lighthalzen",159,90; break;
+ case 12: warp "hugel",98,150; break;
+ case 13: warp "rachel",119,135; break;
+ }
+ close;
+ case 2:
+ mes "[Aperture]";
+ mes "Come back when you need a warp.";
+ close;
+ }
+}
+
+// Carrot & Red Potion Traders
+//============================================================
+moc_para01,166,51,3 script Phelix#edco 4_M_03,{
+ mes "[Phelix]";
+ mes "Oh... I see from that look that you want me to work and give you Meat and Carrots...";
+ mes "Well my friend Izaac here has some Red Potions with him, but I only have some Carrots.";
+ mes "So I can trade you ^0000CC1 Carrot for 3 Jellopy^000000.";
+ next;
+ mes "[Phelix]";
+ mes "If you're interested in my offer, get me the Jellopies I mentioned.";
+ next;
+ select("Carrots please.");
+ mes "[Phelix]";
+ mes "Alright, let's see what ya got...";
+ next;
+ if (countitem(909) < 3) {
+ mes "[Phelix]";
+ mes "Hmm, look dude, I said 3 Jellopies for 1 Carrot... got it?";
+ close;
+ }
+ mes "[Phelix]";
+ mes "Not too bad...";
+ mes "How many do you want?";
+ next;
+ switch(select("As many as I can get, please.:I want to choose.:Never mind, I like my Jellopy.")) {
+ case 1:
+ set .@amount, countitem(909) / 3;
+ break;
+ case 2:
+ set .@available, countitem(909) / 3;
+ mes "[Phelix]";
+ mes "How many do you want?";
+ mes "^ff0000You have enough for up to " + .@available + " Carrots.^000000";
+ input .@input;
+ next;
+ if (.@input < 1 || .@input > 10000) {
+ mes "[Phelix]";
+ mes "Don't want to deal? Fair enough...";
+ close;
+ }
+ if (.@input > .@available) {
+ mes "[Phelix]";
+ mes "Dude, I said for every 3 Jellopy I'll give you 1 Carrot.";
+ close;
+ }
+ set .@amount, .@input;
+ break;
+ case 3:
+ mes "[Phelix]";
+ mes "Don't bother me if you don't want to trade.";
+ close;
+ }
+ if (checkweight(515,.@amount) == 0) {
+ mes "[Phelix]";
+ mes "You are overweight.";
+ close;
+ }
+ mes "[Phelix]";
+ mes "There you go~! As I promised.";
+ mes "Try not to stuff yer face.";
+ delitem 909,.@amount*3; //Jellopy
+ getitem 515,.@amount; //Carrot
+ end;
+}
+
+moc_para01,163,51,7 script Izaac#edco 4_M_04,{
+ mes "[Izaac]";
+ mes "Good day!";
+ mes "Have you collected any weird stuff from monsters?";
+ mes "I want things like Jellopy, Fluff, Shell, Feather of Birds, Tree Root, Worm Peelings, and Chrysalis.";
+ mes "I need those for something.";
+ next;
+ mes "[Izaac]";
+ mes "Of course, I won't ask you to give me that stuff for free. What if I traded the following for ^CC00001 Red Potion^000000:";
+ mes "^00CC005 Shell^000000";
+ mes "^0000CC10 Fluff^000000";
+ mes "^00CC0010 Jellopy^000000";
+ mes "^0000CC6 Tree Root^000000";
+ mes "^00CC001 Worm Peeling^000000";
+ mes "^0000CC7 Feather of Birds^000000";
+ mes "^00CC006 Chrysalis^000000";
+ next;
+ switch(select("Sure!:I think it's a rip-off!:No, thanks.")) {
+ case 1:
+ mes "[Izaac]";
+ mes "So which items do";
+ mes "you want to bring me?";
+ next;
+
+ setarray .@items[0], 935, 914, 909, 902, 955, 916, 915;
+ setarray .@count[0], 5, 10, 10, 6, 1, 7, 6;
+
+ set .@size, getarraysize(.@items);
+ for(set .@i,0; .@i<.@size; set .@i,.@i+1)
+ set .@menu$, .@menu$+getitemname(.@items[.@i])+":";
+ set .@select, select(.@menu$+"Cancel")-1;
+ if (.@select == .@size) {
+ mes "[Izaac]";
+ mes "Sure~";
+ mes "No problem.";
+ close;
+ }
+ set .@item, .@items[.@select];
+ set .@item$, getitemname(.@item);
+ set .@price, .@count[.@select];
+
+ if (countitem(.@item) < .@price) {
+ mes "[Izaac]";
+ mes "Hey, where's all";
+ mes "that "+.@item$+" that";
+ mes "you promised me?";
+ mes "Give me "+.@item$+"!";
+ close;
+ }
+ mes "[Izaac]";
+ mes "Okay, let me check";
+ mes "how much "+.@item$;
+ mes "you have on you.";
+ mes "Hmm...";
+ next;
+ set .@amount, countitem(.@item) / .@price;
+ set .@trade_amount, .@amount * .@price;
+ mes "[Izaac]";
+ mes "You have";
+ mes "a total of "+countitem(.@item)+" "+.@item$+"...";
+ mes "For all those, I can give you";
+ mes "a total of "+.@amount+" Red Potion(s).";
+ next;
+ mes "[Izaac]";
+ mes "What do you say?";
+ mes "Do we have a deal?";
+ next;
+ if(select("Deal.:No deal.") == 2) {
+ mes "[Izaac]";
+ mes "Huh~";
+ mes "Alright.";
+ mes "Though are";
+ mes .@item$ + " more useful";
+ mes "to an adventurer like you?";
+ close;
+ }
+ if (checkweight(501,.@amount) == 0) { //custom check
+ mes "[Izaac]";
+ mes "You are overweight.";
+ close;
+ }
+ delitem .@item,.@trade_amount;
+ getitem 501,.@amount; //Red_Potion
+ mes "[Izaac]";
+ mes "There you go!";
+ mes "Check how many "+.@item$;
+ mes "I've given you, it should be good.";
+ mes "Thanks, that was a good deal~";
+ close;
+ case 2:
+ mes "[Izaac]";
+ mes "A rip-off...?";
+ mes "If you check the market value";
+ mes "of the items being traded, I'm actually the one getting";
+ mes "ripped off here.";
+ close;
+ case 3:
+ mes "[Izaac]";
+ mes "Alright, No problem.";
+ mes "But come back to me if you change your mind.";
+ close;
+ }
+}
+
+// Safe to 7 Certificate Exchanger
+//============================================================
+moc_para01,50,39,4 script Eve Natalia 4_F_SITDOWN,{
+ mes "[Eve Natalia]";
+ mes "So I'm in town for a while to see if I can strike up some commerce with MVP hunters!";
+ mes "I'm willing to take some MVP gear and give you these upgrade Certificates I have in exchange;";
+ mes "if things go well enough I'll open up further business opportunities!";
+ next;
+ mes "[Eve Natalia]";
+ mes "So do you have any of the gears I'm looking for to get some random Safe to 7 Certificates?";
+ next;
+ switch(select("What gear?:Yes I am!:Never mind.")) {
+ case 1:
+ mes "[Eve Natalia]";
+ mes "Nidhoggur's Shadow Garb 4 Random Safe to 7 Certificates";
+ mes "Valkyrja's Shield 4 Random Safe to 7 Certificates";
+ mes "Valkyrian Armor 5 Random Safe to 7 Certificates";
+ mes "Diabolus Robe 5 Random Safe to 7 Certificates";
+ mes "Diabolus Armor 2 Random Safe to 7 Certificates";
+ mes "Diabolus Boots 2 Random Safe to 7 Certificates";
+ mes "Diabolus Manteau 4 Random Safe to 7 Certificates";
+ mes "Twin Edge of Naght Sieger Blue 2 Random Safe to 7 Certificates";
+ mes "Twin Edge of Naght Sieger Red 2 Random Safe to 7 Certificates";
+ close;
+ case 2:
+ mes "[Eve Natalia]";
+ mes "I'm going to ask you which piece of gear you want to trade in, please verify that the 1st one in your inventory is one you want to give up.";
+ mes "^CC0000So if it is carded, upgraded, enchanted etc, you should put it in storage before we continue.^000000";
+ next;
+ set .@i, select("Wait a minute:Nidhoggur's Shadow Garb 4:Valkyrja's Shield 4:Valkyrian Armor 5:Diabolus Robe 5:Diabolus Armor 2:Diabolus Boots 2:Diabolus Manteau 4:Twin Edge of Naght Sieger Blue 2:Twin Edge of Naght Sieger Red 2")-2;
+ if (.@i == -1)
+ break;
+
+ setarray .@items[0], 2554, 2115, 2357, 2374, 2375, 2433, 2537, 13412, 13413;
+ setarray .@tickets[0], 4, 4, 5, 5, 2, 2, 4, 2, 2;
+
+ set .@item, .@items[.@i];
+ set .@amount, .@tickets[.@i];
+
+ mes "[Eve Natalia]";
+ mes "I see you have "+countitem(.@item)+" "+getitemname(.@item)+".";
+ mes "So do you want to trade the 1st one in your inventory for ^00CC00"+.@amount+" Random Safe to 7 Certificates^000000?";
+ mes "Tell me '1' if you do, or '0' to cancel.";
+ next;
+ input .@input;
+ if (.@input < 0 || .@input > 1) {
+ mes "[Eve Natalia]";
+ mes "It is a 0 or 1, it can't be that difficult.";
+ close;
+ } else if (.@input == 0) {
+ mes "[Eve Natalia]";
+ mes "It's best to be sure before trading, have a good day.";
+ close;
+ }
+ if (countitem(.@item) == 0) {
+ mes "[Eve Natalia]";
+ mes "You don't even have 1... stop wasting my time.";
+ close;
+ }
+ mes "[Eve Natalia]";
+ mes "Oh perfect, you get ^CC0000" + .@amount + "^000000 Safe to 7 Certificates!";
+ delitem .@item,1;
+ for(set .@i,0; .@i<.@amount; set .@i,.@i+1) {
+ // Note: iRO lists item 6235 as "Safe to 7 Headgear Certificate", but it's Guarantee_Armor_6Up in our database.
+ if (rand(2))
+ getitem 6230,1; //Guarantee_Weapon_7Up
+ else
+ getitem 6234,1; //Guarantee_Armor_7Up
+ }
+ close;
+ case 3:
+ break;
+ }
+ mes "[Eve Natalia]";
+ mes "Fair enough, if you have business with me in the future don't be shy!";
+ close;
+}
+
+// Bubble Gum & Battle Manual Exchanger
+//============================================================
+moc_para01,48,184,2 script Gum & Manual Exchanger 2_DROP_MACHINE,{
+ if (Weight < MaxWeight / 2) {
+ mes "You're carrying too many items right now.";
+ close;
+ }
+ mes "[Trader Machine]";
+ mes "Insert Bubble Gums and/or Battle Manuals to trade for higher efficiency Gums and Manuals.";
+ next;
+ mes "[Trader Machine]";
+ mes "Exchange rate:";
+ mes "2 Bubble Gum -> 1 HE Bubble Gum";
+ mes "2 Battle Manual -> 1 HE Battle Manual";
+ mes "4 HE Battle Manual -> 1 Battle Manual X3";
+ mes "3 Thick Battle Manual -> 2 Battle Manual X3";
+ mes "What would you like to exchange for?";
+ next;
+ switch(select("HE Bubble Gum:HE Battle Manual:1 Battle Manual X3:2 Battle Manual X3:1 Costume Corsair:Nothing")) {
+ case 1:
+ callsub L_Exchange,12210,2,12412,1;
+ break;
+ case 2:
+ callsub L_Exchange,12208,2,12411,1;
+ break;
+ case 3:
+ callsub L_Exchange,12411,4,14545,1;
+ break;
+ case 4:
+ callsub L_Exchange,12312,3,14545,2;
+ break;
+ case 5:
+ mes "[Trader Machine]";
+ mes "I can give you 1 Battle Manual X3 for 1 Costume Corsair.";
+ next;
+ if (countitem(19619) == 0) {
+ mes "[Trader Machine]";
+ mes "You don't have a Costume Corsair hat to make that trade.";
+ close;
+ }
+ next;
+ if(select("Yes, give it to me!:No, wait not yet.") == 2)
+ close;
+ // Unofficial dialogue.
+ mes "[Trader Machine]";
+ mes "You place the required items into the machine...";
+ next;
+ mes "[Trader Machine]";
+ mes "The Machine has given you an item in return!";
+ delitem 19619,1; //C_Corsair
+ getitem 14545,1; //Battle_Manual_X3
+ close;
+ case 6:
+ close;
+ }
+
+//callsub L_Exchange,<Insert Item>,<Amount>,<Return Item>,<Amount>
+L_Exchange:
+ mes "[Trader Machine]";
+ mes "How many "+getitemname(getarg(2))+" do you want?";
+ mes "I can give you up to 60.";
+ mes "Type 0 to cancel.";
+ next;
+ input .@amount;
+ if (.@amount == 0) {
+ mes "[Trader Machine]";
+ mes "Cancelled.";
+ close;
+ } else if (.@amount < 0 || .@amount > 60) {
+ mes "[Trader Machine]";
+ mes "I said only 60 max.";
+ close;
+ }
+ mes "[Trader Machine]";
+ mes "That's a total of "+.@amount;
+ mes getitemname(getarg(2))+".";
+ mes "Is this correct?";
+ next;
+ if(select("Yes, give them to me!:No, wait not yet.") == 2)
+ close;
+ set .@cost, getarg(1) * .@amount;
+ set .@total_amount, getarg(3) * .@amount;
+ if (countitem(getarg(0)) < .@cost) {
+ mes "[Trader Machine]";
+ mes "You don't have enough "+getitemname(getarg(0))+" to make that trade.";
+ close;
+ }
+ delitem getarg(0),.@cost;
+ getitem getarg(2),.@total_amount;
+ close;
+}
+
+// Kafra Stacker
+//============================================================
+moc_para01,41,169,2 script Kafra Stacker#eden 4_M_ALCHE_B,{
+ mes "[Toma]";
+ mes "I can take your non-stacking Kafra Consumables";
+ mes "and make them fit neatly into stacks!";
+ next;
+ mes "[Toma]";
+ mes "Please understand that I can";
+ mes "only stack 10 groups at a time";
+ mes "so keep talking to me until";
+ mes "you have 1 stack of each!";
+ next;
+ while(1) {
+ if(select("Do it!:Never mind.") == 2)
+ break;
+ // Something strange goes on here, haven't quite figured it out...
+ mes "[Toma]";
+ mes "Ten stack down!";
+ mes "Want to do another?";
+ next;
+ }
+ mes "[Toma]";
+ mes "Ok then, laterz.";
+ close;
+}
+
+// Code Redeemer
+//============================================================
+moc_para01,38,162,2 script Code the Redeemer#Give1 4_M_YOUNGKNIGHT,{
+ mes "[Code the Redeemer]";
+ mes "Welcome, "+strcharinfo(0)+"!";
+ mes "I've been expecting you.";
+ next;
+ mes "[Code the Redeemer]";
+ mes "I am a distributor of all the";
+ mes "items that adventurers like";
+ mes "yourself purchase on websites";
+ mes "or receive as promotions.";
+ next;
+ mes "[Code the Redeemer]";
+ mes "^0000FFIf the list is empty,";
+ mes "that means that you have";
+ mes "not purchased, or inputted";
+ mes "your serial code from the purchasing website.^000000";
+ next;
+
+ // If you have a code redemption system, write your SQL queries here.
+ select("");
+
+ close;
+}
+
+// Cash Shops
+//============================================================
+/* Due to the irregularity of iRO's databases, some of these sprites may not display properly. */
+
+moc_para01,32,171,4 cashshop Kafra Headgears#eden1 4_F_KAFRA3,14024:500,14098:150,17081:300,14097:500,14094:1000,14017:400,14099:300
+moc_para01,35,174,2 cashshop Kafra Dye Shop#dyes2 4_F_KAFRA4,6287:150
+moc_para01,36,170,2 cashshop Kafra Consumables#eden3 4_F_KAFRA6,13810:5,14167:400,16556:100,14111:75,14075:25,16419:30,14107:70,14104:50,14112:25,14082:30,14091:60,14088:30,14085:60,14169:40,14170:40,14172:40,14173:40,14171:40,14174:40,14159:100,14160:100,14161:100,14162:100,14163:100:14164:100,16420:1500
+moc_para01,32,174,2 cashshop Kafra Rental Items#eden 4_F_KAFRA7,16683:150,16682:50,14126:250,14125:250,16430:250,14137:250,14127:250,14118:250,14119:250,14132:250,16425:250,14124:250,14133:250,14130:250,16424:250,14136:250,14122:250,16426:250,14135:250,14134:250,14138:250,16428:250,16431:250,14139:250,14131:250,16429:250,16427:250
+moc_para01,36,172,2 cashshop Kafra Costume#eden5 4_F_KAFRA8,16974:300,16972:600,16973:150,16975:150,16977:150,17014:150,17015:150
+moc_para01,35,168,1 cashshop Kafra Utility Shop#eden 4_F_KAFRA5,16677:25,13990:400,16396:100,16394:100,17106:500,6241:10,6240:10,6225:15,6226:15,14002:5,6294:500,7776:50,7619:30,7620:30,12208:40,14156:400,12210:40,14158:400,14042:50,14044:50,14046:50,14048:50,14114:50,14166:40,16418:500,16381:400,14165:100,14157:100,14178:100
+
+// Duplicate NPCs
+//============================================================
+/* Technically these NPC names are different, but it's not worth editing the original scripts. */
+
+// Weapon/Armor Refiner "Normalson" (merchants/refine.txt)
+moc_para01,14,185,4 script Normalson#ed 4_M_DWARF,{
+ callfunc "refinemain","Normalson",0;
+ end;
+}
+
+// Advanced Refiner "Suhnmi" (merchants/advanced_refiner.txt)
+moc_para01,26,185,4 duplicate(Suhnbi#cash) Suhnmi#eden 4_M_03
+
+// HD Refiner "Blacksmith Mighty Hammer" (re/merchants/hd_refiner.txt)
+// A combination of the +7~9 and +10 and up refiner, currently a placeholder.
+moc_para01,38,185,4 duplicate(MightyHammer) Mighty Hammer#ed 4_M_DWARF
+
+// Refiner Effect
+- script #eden_refine_effect -1,{
+OnInit:
+ initnpctimer;
+ end;
+OnTimer5000:
+ specialeffect EF_REFINEOK,AREA,"Suhnmi#eden";
+ specialeffect EF_REFINEOK,AREA,"Mighty Hammer#ed";
+ initnpctimer;
+ end;
+}
+
+// Gym Pass Trainer "Ripped Cabus" (other/gympass)
+moc_para01,33,162,4 duplicate(Ripped Cabus#GymPass) Ripped Callus#ed 4_M_HUMAN_02
+
+// RWC 2012 Enchanter "Goldenthiefberg" (events/RWC_2012.txt)
+// A combination of the slotter and enchanter, currently a placeholder.
+moc_para01,27,179,4 script RWC Enchanter#new10 4_M_BARBER,{ end; }
+
+// Cash Headgear Dyer "Alora" (merchants/cashheadgear_dye.txt)
+// Also converts some +8 and up headgears into costumes, currently a placeholder.
+moc_para01,21,185,4 duplicate(Alora) Alora#headgear_dye2 4_F_LGTGIRL
+
+// Stylist "Dinorah Lacostt" (?)
+// Dyes clothing for an Omni Clothing Dye, currently a placeholder.
+moc_para01,33,185,4 script Dinorah Lacostt#ed 4_F_LGTGIRL,{ end; }
+
+// Commonly Updated NPCs
+//============================================================
+/* These scripts change on a regular basis, so they're mostly just placeholders for now. */
+
+moc_para01,29,35,4 script Gramps#huntquests 4_M_LGTGRAND,{
+ mes "[Gramps]";
+ mes "When you get to being my";
+ mes "age, you become bitter.";
+ mes "Too long I've done nothing about the monsters that roam around";
+ mes "Rune Midgard.";
+ next;
+ mes "[Gramps]";
+ mes "That's why I'm asking you wippersnappers to help";
+ mes "me hunt some monsters.";
+ mes "Will you help me, young adventurer?";
+ close;
+ //next;
+ //switch(select("Yes, I'll help.:Reward Me!:^ff0000I want to quit hunting^000000:^0000ffCan you warp me?^000000:Can you erase the timer?:What missions are you giving?:Give me Limited 3 day VIP:Tell me more about the VIP Access:No thanks, pops.")) {
+}
+
+moc_para01,13,22,4 script Merry Badger#xch 4_F_SITDOWN,{
+ mes "[Merry Badger]";
+ mes "Hello there! I'm Merry Badger and I was hired to exchange the ^00CC00Eden Merit Badges^000000!";
+ next;
+ mes "[Merry Badger]";
+ mes "I can take your Merit Badges and give you some useful stuff, or I can take some of your stuff and give you some Eden Merit Badges.";
+ mes "As I get more authorization I can offer more things to trade with you, so definitely keep me in mind when visiting the Eden Group.";
+ close;
+ //next;
+ //switch(select("Redeem Badges:Trade in FOR badges:Exchange Rates:15 Job Manuals - 1 JM Box")) {
+}
+
+moc_para01,174,33,3 script Bathory#2012spirits BATHORY,{
+ mes "[Bathory]";
+ mes "Eheeheeheehee! The spotlight is on Glast Heim this week, so I'm ferrying people there for a mere 1,000z!";
+ next;
+ mes "[Bathory]";
+ mes "How about it? Want to take a ride on a beautiful Bathory's broom?";
+ next;
+ switch(select("Prepare for Takeoff!:No thanks.")) {
+ case 1:
+ if (Zeny < 1000) {
+ mes "[Bathory]";
+ mes "Come on dearie...";
+ mes "You don't even have 1,000 zeny?";
+ close;
+ }
+ mes "[Bathory]";
+ mes "Alright, hold on tight!";
+ close2;
+ Zeny -= 1000;
+ warp "niflheim",194,185;
+ end;
+ case 2:
+ mes "["+strcharinfo(0)+"]";
+ mes "No thanks, maybe later.";
+ close;
+ }
+}
+
+moc_para01,26,174,4 script Grandma Boxter#boxx 4_F_THAISHAMAN,{ end; }
diff --git a/npc/re/quests/eden/eden_quests.txt b/npc/re/quests/eden/eden_quests.txt
index 4a85bdc79..f1b54a9e7 100644
--- a/npc/re/quests/eden/eden_quests.txt
+++ b/npc/re/quests/eden/eden_quests.txt
@@ -3,25 +3,23 @@
//===== By: ==================================================
//= L0ne_W0lf
//===== Current Version: =====================================
-//= 1.4b
-//===== Compatible With: =====================================
-//= Hercules
+//= 1.5
//===== Description: =========================================
-//= Eden Group Headquarter NPC's.
+//= Eden Group Headquarter NPCs.
//===== Additional Comments: =================================
//= 1.0 First Version.
//= 1.1 Removed unencoded comments (Korean -> Gibberish)
//= Readded the GM helper NPC, commented out.
//= 1.2 Some little optimization here and there. [Masao]
//= 1.3 Added Instructor Ur and the new Quests which come
-//= alongside him. Special thanks to Chilly for the base. [Masao]
+//= alongside him. Special thanks to Chilly for the base. [Masao]
//= 1.4 Partial cleaning and bug fixing. [Euphy]
//= 1.4a Added 'npcskill' command. [Euphy]
//= 1.4b Added 'disable_items' command. [Euphy]
+//= 1.5 Added GM management function. [Euphy]
//============================================================
-moc_para01,25,35,4 script Instructor Boya#para01 469,{
-
+moc_para01,25,35,4 script Instructor Boya#para01 4_M_KNIGHT_GOLD,{
if (countitem(6219) > 0) {
if (para_suv01 == 0) {
mes "[Boya]";
@@ -1091,8 +1089,7 @@ moc_para01,25,35,4 script Instructor Boya#para01 469,{
close;
}
-moc_fild11,180,253,5 script Talking Dog#para03 972,{
-
+moc_fild11,180,253,5 script Talking Dog#para03 4_RUS_DWOLF,{
if (para_suv01 == 1) {
mes "[Talking Dog]";
mes "kkkkuuuuahhh.";
@@ -1184,7 +1181,7 @@ moc_fild11,180,253,5 script Talking Dog#para03 972,{
mes "Oh, if you are tired I will help you.";
next;
mes "-When the dog barked, your HP and SP recovered.-";
- npcskill "AL_HEAL",10,99,60;
+ npcskill "AL_HEAL",11,99,60;
percentheal 100,100;
close;
}
@@ -1222,7 +1219,7 @@ moc_fild11,180,253,5 script Talking Dog#para03 972,{
mes "Oh, if you are tired I will help you.";
next;
mes "-When the dog barked, your HP and SP recovered.-";
- npcskill "AL_HEAL",10,99,60;
+ npcskill "AL_HEAL",11,99,60;
percentheal 100,100;
close;
}
@@ -1278,7 +1275,7 @@ moc_fild11,180,253,5 script Talking Dog#para03 972,{
mes "Oh, if you are tired I will help you.";
next;
mes "-When the dog barked, your HP and SP recovered.-";
- npcskill "AL_HEAL",10,99,60;
+ npcskill "AL_HEAL",11,99,60;
percentheal 100,100;
close;
}
@@ -1326,7 +1323,7 @@ moc_fild11,180,253,5 script Talking Dog#para03 972,{
close;
}
-prt_sewb1,131,262,3 script Timid Cat#para04 422,{
+prt_sewb1,131,262,3 script Timid Cat#para04 4_M_BABYCAT,{
if (para_suv01 < 6) {
mes "[Timid Cat]";
mes "Meow...";
@@ -1424,8 +1421,8 @@ prt_sewb1,131,262,3 script Timid Cat#para04 422,{
mes "[Timid Cat]";
mes "Take care to check your map so you don't get lost.";
mes "It's a service meeow.";
- npcskill "AL_HEAL",10,99,60;
- percentheal 0,100;
+ npcskill "AL_HEAL",11,99,60;
+ percentheal 100,100;
close;
}
if (para_suv01 == 8) {
@@ -1462,7 +1459,7 @@ prt_sewb1,131,262,3 script Timid Cat#para04 422,{
mes "[Timid Cat]";
mes "I will help you a little.";
mes "Here, I have recovered your strengh meow..";
- npcskill "AL_HEAL",10,99,60;
+ npcskill "AL_HEAL",11,99,60;
percentheal 100,100;
close;
}
@@ -1497,8 +1494,8 @@ prt_sewb1,131,262,3 script Timid Cat#para04 422,{
mes "It's the last course so cheer up.";
mes "I will help you a little.";
mes "Here, I have recovered your strengh meow..";
- npcskill "AL_HEAL",10,99,60;
- percentheal 0,100;
+ npcskill "AL_HEAL",11,99,60;
+ percentheal 100,100;
close;
}
if (para_suv01 >= 10) {
@@ -1518,7 +1515,7 @@ prt_sewb1,131,262,3 script Timid Cat#para04 422,{
close;
}
-pay_arche,41,136,3 script Eden Member Karl#para05 904,{
+pay_arche,41,136,3 script Eden Member Karl#para05 4_M_KHMAN,{
if (para_suv01 < 13) {
if (countitem(6219) > 0) {
mes "[Karl]";
@@ -1609,7 +1606,7 @@ pay_arche,41,136,3 script Eden Member Karl#para05 904,{
mes "[Karl]";
mes "Just in case I will recover all your energy.";
mes "It's the last step so be careful.";
- npcskill "AL_HEAL",10,99,60;
+ npcskill "AL_HEAL",11,99,60;
percentheal 100,100;
close;
}
@@ -1640,8 +1637,8 @@ pay_arche,41,136,3 script Eden Member Karl#para05 904,{
mes "[Karl]";
mes "Just in case I will recover all your energy.";
mes "It's the last step so be careful.";
- npcskill "AL_HEAL",10,99,60;
- percentheal 0,100;
+ npcskill "AL_HEAL",11,99,60;
+ percentheal 100,100;
close;
}
if (para_suv01 >= 16) {
@@ -1661,8 +1658,7 @@ pay_arche,41,136,3 script Eden Member Karl#para05 904,{
close;
}
-anthell01,29,264,5 script Eden Member Cloud#para06 899,{
-
+anthell01,29,264,5 script Eden Member Cloud#para06 4_M_HUMAN_02,{
if (para_suv01 < 17) {
if (countitem(6219) > 0) {
mes "[Cloud]";
@@ -1763,7 +1759,7 @@ anthell01,29,264,5 script Eden Member Cloud#para06 899,{
mes "What do you think of Ant Hell?";
mes "Can you stay longer?";
mes "Ok, I will recover your strengh so, keep going.";
- npcskill "AL_HEAL",10,99,60;
+ npcskill "AL_HEAL",11,99,60;
percentheal 100,100;
close;
}
@@ -1802,7 +1798,7 @@ anthell01,29,264,5 script Eden Member Cloud#para06 899,{
mes "[Cloud]";
mes "See, to cheer you up I will heal you until you finish the training.";
mes "Chin up and cheer up.";
- npcskill "AL_HEAL",10,99,60;
+ npcskill "AL_HEAL",11,99,60;
percentheal 100,100;
close;
}
@@ -1830,7 +1826,7 @@ anthell01,29,264,5 script Eden Member Cloud#para06 899,{
mes "[Cloud]";
mes "Just Vitata, isn't that an easy opponent?";
mes "If you see Maya just run away.";
- npcskill "AL_HEAL",10,99,60;
+ npcskill "AL_HEAL",11,99,60;
percentheal 100,100;
close;
}
@@ -1852,7 +1848,7 @@ anthell01,29,264,5 script Eden Member Cloud#para06 899,{
close;
}
-in_orcs01,38,175,3 script Eden Member Hooksha 803,{
+in_orcs01,38,175,3 script Eden Member Hooksha 1_F_SIGNZISK,{
if (para_suv01 < 24) {
if (countitem(6219) > 0) {
mes "[Hooksha]";
@@ -1945,7 +1941,7 @@ in_orcs01,38,175,3 script Eden Member Hooksha 803,{
mes "[Hooksha]";
mes "You look tired I will recover your health.";
mes "If you are in trouble just come back here to safety.";
- npcskill "AL_HEAL",10,99,60;
+ npcskill "AL_HEAL",11,99,60;
percentheal 100,100;
close;
}
@@ -1976,7 +1972,7 @@ in_orcs01,38,175,3 script Eden Member Hooksha 803,{
mes "[Hooksha]";
mes "You look tired, I will recover your health.";
mes "If you are in trouble just come back here to safety.";
- npcskill "AL_HEAL",10,99,60;
+ npcskill "AL_HEAL",11,99,60;
percentheal 100,100;
close;
}
@@ -2002,7 +1998,7 @@ in_orcs01,38,175,3 script Eden Member Hooksha 803,{
mes "[Hooksha]";
mes "You look tired, I will recover your health.";
mes "If you are in trouble just come back here to safety.";
- npcskill "AL_HEAL",10,99,60;
+ npcskill "AL_HEAL",11,99,60;
percentheal 100,100;
close;
}
@@ -2075,7 +2071,7 @@ in_orcs01,38,175,3 script Eden Member Hooksha 803,{
mes "Can you stay longer?";
mes "You look tired, I will recover your health.";
mes "If you are in trouble just come back here to safety.";
- npcskill "AL_HEAL",10,99,60;
+ npcskill "AL_HEAL",11,99,60;
percentheal 100,100;
close;
}
@@ -2099,7 +2095,7 @@ in_orcs01,38,175,3 script Eden Member Hooksha 803,{
mes "Can you stay longer?";
mes "You look tired I will recover your health.";
mes "If you are in trouble just come back here to safety.";
- npcskill "AL_HEAL",10,99,60;
+ npcskill "AL_HEAL",11,99,60;
percentheal 100,100;
close;
}
@@ -2121,8 +2117,7 @@ in_orcs01,38,175,3 script Eden Member Hooksha 803,{
}
}
-iz_dun04,43,46,3 script Eden Member Callandiva 745,{
-
+iz_dun04,43,46,3 script Eden Member Callandiva 4_F_CRU,{
if (para_suv01 < 33) {
if (countitem(6219) > 0) {
mes "[Callandiva]";
@@ -2203,8 +2198,8 @@ iz_dun04,43,46,3 script Eden Member Callandiva 745,{
mes "Oh are you tired?";
mes "Mermans are not easy opponents.";
mes "I will help you recover so cheer up.";
- npcskill "AL_HEAL",10,99,60;
- percentheal 0,100;
+ npcskill "AL_HEAL",11,99,60;
+ percentheal 100,100;
close;
}
if (para_suv01 == 35) {
@@ -2237,7 +2232,7 @@ iz_dun04,43,46,3 script Eden Member Callandiva 745,{
mes "Oh are you tired?";
mes "Strouf are not easy opponents.";
mes "I can help you recover so cheer up.";
- npcskill "AL_HEAL",10,99,60;
+ npcskill "AL_HEAL",11,99,60;
percentheal 100,100;
close;
}
@@ -2262,8 +2257,7 @@ iz_dun04,43,46,3 script Eden Member Callandiva 745,{
close;
}
-moc_para01,112,96,5 script Administrator Michael 967,{
-
+moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "Why did you come here?";
next;
@@ -2335,7 +2329,7 @@ moc_para01,112,96,5 script Administrator Michael 967,{
mes "Make enough space.";
close;
case 2:
- if (Class == Job_Swordman || Class == Job_Swordman_High || Class == Job_Knight || Class == Job_Crusader){
+ if (Class == Job_Swordman || Class == Job_Swordman_High || Class == Job_Knight || Class == Job_Crusader) {
mes "[Michael]";
mes "What kind of weapon do you want?";
mes "We have one and Two-handed swords.";
@@ -2418,21 +2412,72 @@ moc_para01,112,96,5 script Administrator Michael 967,{
mes "This is what we strive for.";
close;
}
- } if (Class == Job_Thief || Class == Job_Thief_High || Class == Job_Assassin || Class == Job_Rogue || Class == Job_Ninja || Class == Job_Novice || Class == Job_Novice_High) {
- mes "[Michael]";
- mes "We only have 1 weapon for you.";
- next;
- mes "[Michael]";
- mes "Eden Dagger I: Dagger. MATK+60, attack 124.";
- mes "It is Lv. 2 and the required level is 26.";
- next;
+ }
+ if (Class == Job_Thief || Class == Job_Thief_High || Class == Job_Assassin || Class == Job_Rogue || Class == Job_Ninja || Class == Job_Novice || Class == Job_Novice_High) {
+ mes "[Michael]";
+ mes "We only have 1 weapon for you.";
+ next;
+ mes "[Michael]";
+ mes "Eden Dagger I: Dagger. MATK+60, attack 124.";
+ mes "It is Lv. 2 and the required level is 26.";
+ next;
+ mes "[Michael]";
+ mes "It also can't be traded with other players or be refined.";
+ next;
+ mes "[Michael]";
+ mes "You'll receive the Eden Dagger I.";
+ next;
+ mes "[Michael]";
+ mes "Additionally you'll receive the Eden Group Boots II and Uniform II.";
+ next;
+ if (para_suv02 == 0) {
mes "[Michael]";
- mes "It also can't be traded with other players or be refined.";
+ mes "You don't have a record of receiving any supplies";
+ mes "so, you'll receive the Eden Group Hat and Manteau aswell.";
+ set para_suv01,23;
+ set para_suv02,2;
+ getitem 13050,1; //P_Dagger1
+ getitem 2457,1; //Para_Team_Boots2
+ getitem 15010,1; //Para_Team_Uniform2
+ getitem 5583,1; //Para_Team_Hat
+ getitem 2560,1; //Para_Team_Manteau
next;
mes "[Michael]";
- mes "You'll receive the Eden Dagger I.";
- next;
+ mes "Check your supplies again and look after it.";
+ close;
+ }
+ mes "[Michael]";
+ mes "A Dagger, Uniform and Boots all 3 supplies.";
+ mes "Please check it again.";
+ set para_suv01,23;
+ set para_suv02,2;
+ getitem 13050,1; //P_Dagger1
+ getitem 2457,1; //Para_Team_Boots2
+ getitem 15010,1; //Para_Team_Uniform2
+ next;
+ mes "[Michael]";
+ mes "I hope they're useful to you.";
+ mes "This is what we strive for.";
+ close;
+ }
+ if (Class == Job_Merchant || Class == Job_Merchant_High || Class == Job_Blacksmith || Class == Job_Alchemist) {
+ mes "[Michael]";
+ mes "What kind of weapon do you want?";
+ mes "We have a mace and a One-handed sword.";
+ mes "Here are the options.";
+ next;
+ mes "[Michael]";
+ mes "Eden Saber I: One-handed sword. attack 147.";
+ mes "Eden Mace I: Mace. attack 142.";
+ mes "Both are level 2 and the required level is 26.";
+ next;
+ mes "[Michael]";
+ mes "They also can't be traded with other players or be refined.";
+ next;
+ switch (select("Eden Sabre I:Eden Mace I")) {
+ case 1:
mes "[Michael]";
+ mes "You've chosen the Eden Sabre I.";
mes "Additionally you'll receive the Eden Group Boots II and Uniform II.";
next;
if (para_suv02 == 0) {
@@ -2441,7 +2486,7 @@ moc_para01,112,96,5 script Administrator Michael 967,{
mes "so, you'll receive the Eden Group Hat and Manteau aswell.";
set para_suv01,23;
set para_suv02,2;
- getitem 13050,1; //P_Dagger1
+ getitem 13423,1; //P_Sabre1
getitem 2457,1; //Para_Team_Boots2
getitem 15010,1; //Para_Team_Uniform2
getitem 5583,1; //Para_Team_Hat
@@ -2452,11 +2497,11 @@ moc_para01,112,96,5 script Administrator Michael 967,{
close;
}
mes "[Michael]";
- mes "A Dagger, Uniform and Boots all 3 supplies.";
+ mes "A One-handed Sword, Uniform and Boots all 3 supplies.";
mes "Please check it again.";
set para_suv01,23;
set para_suv02,2;
- getitem 13050,1; //P_Dagger1
+ getitem 13423,1; //P_Sabre1
getitem 2457,1; //Para_Team_Boots2
getitem 15010,1; //Para_Team_Uniform2
next;
@@ -2464,115 +2509,18 @@ moc_para01,112,96,5 script Administrator Michael 967,{
mes "I hope they're useful to you.";
mes "This is what we strive for.";
close;
- }
- if (Class == Job_Merchant || Class == Job_Merchant_High || Class == Job_Blacksmith || Class == Job_Alchemist) {
- mes "[Michael]";
- mes "What kind of weapon do you want?";
- mes "We have a mace and a One-handed sword.";
- mes "Here are the options.";
- next;
- mes "[Michael]";
- mes "Eden Saber I: One-handed sword. attack 147.";
- mes "Eden Mace I: Mace. attack 142.";
- mes "Both are level 2 and the required level is 26.";
- next;
- mes "[Michael]";
- mes "They also can't be traded with other players or be refined.";
- next;
- switch (select("Eden Sabre I:Eden Mace I")) {
- case 1:
- mes "[Michael]";
- mes "You've chosen the Eden Sabre I.";
- mes "Additionally you'll receive the Eden Group Boots II and Uniform II.";
- next;
- if (para_suv02 == 0) {
- mes "[Michael]";
- mes "You don't have a record of receiving any supplies";
- mes "so, you'll receive the Eden Group Hat and Manteau aswell.";
- set para_suv01,23;
- set para_suv02,2;
- getitem 13423,1; //P_Sabre1
- getitem 2457,1; //Para_Team_Boots2
- getitem 15010,1; //Para_Team_Uniform2
- getitem 5583,1; //Para_Team_Hat
- getitem 2560,1; //Para_Team_Manteau
- next;
- mes "[Michael]";
- mes "Check your supplies again and look after it.";
- close;
- }
- mes "[Michael]";
- mes "A One-handed Sword, Uniform and Boots all 3 supplies.";
- mes "Please check it again.";
- set para_suv01,23;
- set para_suv02,2;
- getitem 13423,1; //P_Sabre1
- getitem 2457,1; //Para_Team_Boots2
- getitem 15010,1; //Para_Team_Uniform2
- next;
- mes "[Michael]";
- mes "I hope they're useful to you.";
- mes "This is what we strive for.";
- close;
- case 2:
- mes "[Michael]";
- mes "You've chosen the Eden Mace I.";
- mes "Additionally you'll receive the Eden Group Boots II and Uniform II.";
- next;
- if (para_suv02 == 0) {
- mes "[Michael]";
- mes "You don't have a record of receiving any supplies";
- mes "so, you'll receive the Eden Group Hat and Manteau aswell.";
- set para_suv01,23;
- set para_suv02,2;
- getitem 16004,1; //P_Mace1
- getitem 2457,1; //Para_Team_Boots2
- getitem 15010,1; //Para_Team_Uniform2
- getitem 5583,1; //Para_Team_Hat
- getitem 2560,1; //Para_Team_Manteau
- next;
- mes "[Michael]";
- mes "Check your supplies again and look after it.";
- close;
- }
- mes "[Michael]";
- mes "A Mace, Uniform and Boots all 3 supplies.";
- mes "Please check it again.";
- set para_suv01,23;
- set para_suv02,2;
- getitem 16004,1; //P_Mace1
- getitem 2457,1; //Para_Team_Boots2
- getitem 15010,1; //Para_Team_Uniform2
- next;
- mes "[Michael]";
- mes "I hope they're useful to you.";
- close;
- }
- }
- if (Class == Job_Archer || Class == Job_Archer_High || Class == Job_Hunter || Class == Job_Dancer || Class == Job_Bard) {
- mes "[Michael]";
- mes "We only have 1 weapon for you.";
- next;
- mes "[Michael]";
- mes "Eden Bow I: Bow. attack 82.";
- mes "It is Lv. 2 and the required level is 26.";
- next;
- mes "[Michael]";
- mes "It also can't be traded with other players or be refined.";
- next;
- mes "[Michael]";
- mes "You'll receive the Eden Bow I.";
- next;
+ case 2:
mes "[Michael]";
+ mes "You've chosen the Eden Mace I.";
mes "Additionally you'll receive the Eden Group Boots II and Uniform II.";
next;
if (para_suv02 == 0) {
mes "[Michael]";
mes "You don't have a record of receiving any supplies";
mes "so, you'll receive the Eden Group Hat and Manteau aswell.";
- set para_suv01, 23;
- set para_suv02, 2;
- getitem 1747,1; //P_Bow1
+ set para_suv01,23;
+ set para_suv02,2;
+ getitem 16004,1; //P_Mace1
getitem 2457,1; //Para_Team_Boots2
getitem 15010,1; //Para_Team_Uniform2
getitem 5583,1; //Para_Team_Hat
@@ -2583,11 +2531,11 @@ moc_para01,112,96,5 script Administrator Michael 967,{
close;
}
mes "[Michael]";
- mes "A Bow, Uniform and Boots all 3 supplies.";
+ mes "A Mace, Uniform and Boots all 3 supplies.";
mes "Please check it again.";
set para_suv01,23;
set para_suv02,2;
- getitem 1747,1; //P_Bow1
+ getitem 16004,1; //P_Mace1
getitem 2457,1; //Para_Team_Boots2
getitem 15010,1; //Para_Team_Uniform2
next;
@@ -2595,112 +2543,79 @@ moc_para01,112,96,5 script Administrator Michael 967,{
mes "I hope they're useful to you.";
close;
}
- if (Class == Job_Acolyte || Class == Job_Acolyte_High || Class == Job_Priest || Class == Job_Monk) {
- mes "[Michael]";
- mes "What kind of weapon do you want?";
- mes "We have a mace and a staff.";
- mes "Here are the options.";
- next;
+ }
+ if (Class == Job_Archer || Class == Job_Archer_High || Class == Job_Hunter || Class == Job_Dancer || Class == Job_Bard) {
+ mes "[Michael]";
+ mes "We only have 1 weapon for you.";
+ next;
+ mes "[Michael]";
+ mes "Eden Bow I: Bow. attack 82.";
+ mes "It is Lv. 2 and the required level is 26.";
+ next;
+ mes "[Michael]";
+ mes "It also can't be traded with other players or be refined.";
+ next;
+ mes "[Michael]";
+ mes "You'll receive the Eden Bow I.";
+ next;
+ mes "[Michael]";
+ mes "Additionally you'll receive the Eden Group Boots II and Uniform II.";
+ next;
+ if (para_suv02 == 0) {
mes "[Michael]";
- mes "Eden Mace I: Mace. attack 142.";
- mes "Eden Staff I: Staff. INT+2, MATK+125, attack 60.";
- mes "Both are Lv. 2 and the required level is 26.";
+ mes "You don't have a record of receiving any supplies";
+ mes "so, you'll receive the Eden Group Hat and Manteau aswell.";
+ set para_suv01, 23;
+ set para_suv02, 2;
+ getitem 1747,1; //P_Bow1
+ getitem 2457,1; //Para_Team_Boots2
+ getitem 15010,1; //Para_Team_Uniform2
+ getitem 5583,1; //Para_Team_Hat
+ getitem 2560,1; //Para_Team_Manteau
next;
mes "[Michael]";
- mes "They also can't be traded with other players or be refined.";
- next;
- switch (select("Eden Staff I:Eden Mace I")) {
- case 1:
- mes "[Michael]";
- mes "You've chosen the Eden Staff I.";
- mes "Additionally you'll receive the Eden Group Boots II and Uniform II.";
- next;
- if (para_suv02 == 0) {
- mes "[Michael]";
- mes "You don't have a record of receiving any supplies";
- mes "so, you'll receive the Eden Group Hat and Manteau aswell.";
- set para_suv01,23;
- set para_suv02,2;
- getitem 1650,1; //P_Staff1
- getitem 2457,1; //Para_Team_Boots2
- getitem 15010,1; //Para_Team_Uniform2
- getitem 5583,1; //Para_Team_Hat
- getitem 2560,1; //Para_Team_Manteau
- next;
- mes "[Michael]";
- mes "Check your supplies again and look after it.";
- close;
- }
- mes "[Michael]";
- mes "A Staff, Uniform and Boots all 3 supplies.";
- mes "Please check it again.";
- set para_suv01,23;
- set para_suv02,2;
- getitem 1650,1; //P_Staff1
- getitem 2457,1; //Para_Team_Boots2
- getitem 15010,1; //Para_Team_Uniform2
- next;
- mes "[Michael]";
- mes "I hope they're useful to you.";
- close;
- case 2:
- mes "[Michael]";
- mes "You've chosen the Eden Mace I.";
- mes "Additionally you'll receive the Eden Group Boots II and Uniform II.";
- next;
- if (para_suv02 == 0) {
- mes "[Michael]";
- mes "You don't have a record of receiving any supplies";
- mes "so, you'll receive the Eden Group Hat and Manteau aswell.";
- set para_suv01,23;
- set para_suv02,2;
- getitem 16004,1; //P_Mace1
- getitem 2457,1; //Para_Team_Boots2
- getitem 15010,1; //Para_Team_Uniform2
- getitem 5583,1; //Para_Team_Hat
- getitem 2560,1; //Para_Team_Manteau
- next;
- mes "[Michael]";
- mes "Check your supplies again and look after it.";
- close;
- }
- mes "[Michael]";
- mes "A Mace, Uniform and Boots all 3 supplies.";
- mes "Please check it again.";
- set para_suv01,23;
- set para_suv02,2;
- getitem 16004,1; //P_Mace1
- getitem 2457,1; //Para_Team_Boots2
- getitem 15010,1; //Para_Team_Uniform2
- next;
- mes "[Michael]";
- mes "I hope they're useful to you.";
- close;
- }
+ mes "Check your supplies again and look after it.";
+ close;
}
- if (Class == Job_Mage || Class == Job_Mage_High || Class == Job_Wizard || Class == Job_Sage) {
- mes "[Michael]";
- mes "We only have 1 weapon for you.";
- next;
- mes "[Michael]";
- mes "Eden Staff I: Staff. INT+2, MATK+125, attack 60.";
- mes "It is Lv. 2 and the required level is 26.";
- next;
- mes "[Michael]";
- mes "It also can't be traded with other players or be refined.";
- next;
- mes "[Michael]";
- mes "You'll receive the Eden Staff I.";
- next;
+ mes "[Michael]";
+ mes "A Bow, Uniform and Boots all 3 supplies.";
+ mes "Please check it again.";
+ set para_suv01,23;
+ set para_suv02,2;
+ getitem 1747,1; //P_Bow1
+ getitem 2457,1; //Para_Team_Boots2
+ getitem 15010,1; //Para_Team_Uniform2
+ next;
+ mes "[Michael]";
+ mes "I hope they're useful to you.";
+ close;
+ }
+ if (Class == Job_Acolyte || Class == Job_Acolyte_High || Class == Job_Priest || Class == Job_Monk) {
+ mes "[Michael]";
+ mes "What kind of weapon do you want?";
+ mes "We have a mace and a staff.";
+ mes "Here are the options.";
+ next;
+ mes "[Michael]";
+ mes "Eden Mace I: Mace. attack 142.";
+ mes "Eden Staff I: Staff. INT+2, MATK+125, attack 60.";
+ mes "Both are Lv. 2 and the required level is 26.";
+ next;
+ mes "[Michael]";
+ mes "They also can't be traded with other players or be refined.";
+ next;
+ switch (select("Eden Staff I:Eden Mace I")) {
+ case 1:
mes "[Michael]";
+ mes "You've chosen the Eden Staff I.";
mes "Additionally you'll receive the Eden Group Boots II and Uniform II.";
next;
if (para_suv02 == 0) {
mes "[Michael]";
mes "You don't have a record of receiving any supplies";
mes "so, you'll receive the Eden Group Hat and Manteau aswell.";
- set para_suv01, 23;
- set para_suv02, 2;
+ set para_suv01,23;
+ set para_suv02,2;
getitem 1650,1; //P_Staff1
getitem 2457,1; //Para_Team_Boots2
getitem 15010,1; //Para_Team_Uniform2
@@ -2723,31 +2638,18 @@ moc_para01,112,96,5 script Administrator Michael 967,{
mes "[Michael]";
mes "I hope they're useful to you.";
close;
- }
- if (Class == Job_Gunslinger) {
- mes "[Michael]";
- mes "We only have 1 weapon for you.";
- next;
- mes "[Michael]";
- mes "Eden Revolver I: Revolver. HIT-5, attack 44.";
- mes "It is Lv. 2 and the required level is 26.";
- next;
- mes "[Michael]";
- mes "It also can't be traded with other players or be refined.";
- next;
- mes "[Michael]";
- mes "You'll receive the Eden Revolver I.";
- next;
+ case 2:
mes "[Michael]";
+ mes "You've chosen the Eden Mace I.";
mes "Additionally you'll receive the Eden Group Boots II and Uniform II.";
next;
if (para_suv02 == 0) {
mes "[Michael]";
mes "You don't have a record of receiving any supplies";
mes "so, you'll receive the Eden Group Hat and Manteau aswell.";
- set para_suv01, 23;
- set para_suv02, 2;
- getitem 13112,1; //P_Revolver1
+ set para_suv01,23;
+ set para_suv02,2;
+ getitem 16004,1; //P_Mace1
getitem 2457,1; //Para_Team_Boots2
getitem 15010,1; //Para_Team_Uniform2
getitem 5583,1; //Para_Team_Hat
@@ -2758,11 +2660,11 @@ moc_para01,112,96,5 script Administrator Michael 967,{
close;
}
mes "[Michael]";
- mes "A Revolver, Uniform and Boots all 3 supplies.";
+ mes "A Mace, Uniform and Boots all 3 supplies.";
mes "Please check it again.";
set para_suv01,23;
set para_suv02,2;
- getitem 13112,1; //P_Revolver1
+ getitem 16004,1; //P_Mace1
getitem 2457,1; //Para_Team_Boots2
getitem 15010,1; //Para_Team_Uniform2
next;
@@ -2770,6 +2672,99 @@ moc_para01,112,96,5 script Administrator Michael 967,{
mes "I hope they're useful to you.";
close;
}
+ }
+ if (Class == Job_Mage || Class == Job_Mage_High || Class == Job_Wizard || Class == Job_Sage) {
+ mes "[Michael]";
+ mes "We only have 1 weapon for you.";
+ next;
+ mes "[Michael]";
+ mes "Eden Staff I: Staff. INT+2, MATK+125, attack 60.";
+ mes "It is Lv. 2 and the required level is 26.";
+ next;
+ mes "[Michael]";
+ mes "It also can't be traded with other players or be refined.";
+ next;
+ mes "[Michael]";
+ mes "You'll receive the Eden Staff I.";
+ next;
+ mes "[Michael]";
+ mes "Additionally you'll receive the Eden Group Boots II and Uniform II.";
+ next;
+ if (para_suv02 == 0) {
+ mes "[Michael]";
+ mes "You don't have a record of receiving any supplies";
+ mes "so, you'll receive the Eden Group Hat and Manteau aswell.";
+ set para_suv01, 23;
+ set para_suv02, 2;
+ getitem 1650,1; //P_Staff1
+ getitem 2457,1; //Para_Team_Boots2
+ getitem 15010,1; //Para_Team_Uniform2
+ getitem 5583,1; //Para_Team_Hat
+ getitem 2560,1; //Para_Team_Manteau
+ next;
+ mes "[Michael]";
+ mes "Check your supplies again and look after it.";
+ close;
+ }
+ mes "[Michael]";
+ mes "A Staff, Uniform and Boots all 3 supplies.";
+ mes "Please check it again.";
+ set para_suv01,23;
+ set para_suv02,2;
+ getitem 1650,1; //P_Staff1
+ getitem 2457,1; //Para_Team_Boots2
+ getitem 15010,1; //Para_Team_Uniform2
+ next;
+ mes "[Michael]";
+ mes "I hope they're useful to you.";
+ close;
+ }
+ if (Class == Job_Gunslinger) {
+ mes "[Michael]";
+ mes "We only have 1 weapon for you.";
+ next;
+ mes "[Michael]";
+ mes "Eden Revolver I: Revolver. HIT-5, attack 44.";
+ mes "It is Lv. 2 and the required level is 26.";
+ next;
+ mes "[Michael]";
+ mes "It also can't be traded with other players or be refined.";
+ next;
+ mes "[Michael]";
+ mes "You'll receive the Eden Revolver I.";
+ next;
+ mes "[Michael]";
+ mes "Additionally you'll receive the Eden Group Boots II and Uniform II.";
+ next;
+ if (para_suv02 == 0) {
+ mes "[Michael]";
+ mes "You don't have a record of receiving any supplies";
+ mes "so, you'll receive the Eden Group Hat and Manteau aswell.";
+ set para_suv01, 23;
+ set para_suv02, 2;
+ getitem 13112,1; //P_Revolver1
+ getitem 2457,1; //Para_Team_Boots2
+ getitem 15010,1; //Para_Team_Uniform2
+ getitem 5583,1; //Para_Team_Hat
+ getitem 2560,1; //Para_Team_Manteau
+ next;
+ mes "[Michael]";
+ mes "Check your supplies again and look after it.";
+ close;
+ }
+ mes "[Michael]";
+ mes "A Revolver, Uniform and Boots all 3 supplies.";
+ mes "Please check it again.";
+ set para_suv01,23;
+ set para_suv02,2;
+ getitem 13112,1; //P_Revolver1
+ getitem 2457,1; //Para_Team_Boots2
+ getitem 15010,1; //Para_Team_Uniform2
+ next;
+ mes "[Michael]";
+ mes "I hope they're useful to you.";
+ close;
+ }
mes "[Michael]";
mes "Let me see... you will receive..";
mes "the Eden Group Boots II and Uniform II.";
@@ -3363,6 +3358,7 @@ moc_para01,112,96,5 script Administrator Michael 967,{
mes "[Michael]";
mes "You mean upgrading equipment, right?";
mes "We can only upgrade the Eden Group Hat.";
+ next;
if (para_suv02 == 3) {
if (countitem(5583) > 0) {
disable_items;
@@ -3538,8 +3534,7 @@ moc_para01,112,96,5 script Administrator Michael 967,{
}
}
-moc_para01,179,44,3 script Chef 820,{
-
+moc_para01,179,44,3 script Chef 4_M_CHNCOOK,{
mes "[Chef]";
mes "What's up?";
mes "Do you want a Meal? Or do you have other business?";
@@ -3627,7 +3622,7 @@ moc_para01,179,44,3 script Chef 820,{
next;
mes "- After eating the meal, You feel a little bit full.";
mes "You've recovered some HP and SP. -";
- set Zeny, Zeny - 2700;
+ Zeny -= 2700;
percentheal 50,0;
percentheal 0,50;
close;
@@ -3644,7 +3639,7 @@ moc_para01,179,44,3 script Chef 820,{
next;
mes "- After eating the meal, You feel a little bit full.";
mes "You've recovered some HP and SP. -";
- set Zeny, Zeny - 3000;
+ Zeny -= 3000;
percentheal 50,0;
percentheal 0,50;
close;
@@ -3666,7 +3661,7 @@ moc_para01,179,44,3 script Chef 820,{
next;
mes "- After eating the meal, You feel a little bit full.";
mes "You've recovered some HP and SP. -";
- set Zeny, Zeny - 3600;
+ Zeny -= 3600;
percentheal 75,0;
percentheal 0,75;
close;
@@ -3683,7 +3678,7 @@ moc_para01,179,44,3 script Chef 820,{
next;
mes "- After eating the meal, You feel a little bit full.";
mes "You've recovered some HP and SP. -";
- set Zeny, Zeny - 4000;
+ Zeny -= 4000;
percentheal 75,0;
percentheal 0,75;
close;
@@ -3702,7 +3697,7 @@ moc_para01,179,44,3 script Chef 820,{
mes "- The Rib Eye Roll is grilled on the oak.";
mes "- After eating the meal, You feel a little bit full.";
mes "You've recovered your HP and SP. -";
- set Zeny, Zeny - 4500;
+ Zeny -= 4500;
percentheal 100,0;
percentheal 0,100;
close;
@@ -3721,7 +3716,7 @@ moc_para01,179,44,3 script Chef 820,{
mes "- The Rib Eye Roll is grilled on the oak.";
mes "- After eating the meal, You feel a little bit full.";
mes "You've recovered your HP and SP. -";
- set Zeny, Zeny - 5000;
+ Zeny -= 5000;
percentheal 100,0;
percentheal 0,100;
close;
@@ -3843,7 +3838,7 @@ moc_para01,179,44,3 script Chef 820,{
}
}
-moc_para01,23,35,4 script Instructor Ur 468,{
+moc_para01,23,35,4 script Instructor Ur 4_M_KNIGHT_BLACK,{
mes "[Instructor Ur]";
if (countitem(6219) > 0) {
if (BaseLevel < 60) {
@@ -3990,7 +3985,7 @@ L_Level:
close;
}
-comodo,173,354,6 script Romeo#01 55,{
+comodo,173,354,6 script Romeo#01 1_M_JOBTESTER,{
if ((para_suv01 == 39) && (romeo < 1)) {
mes "[Romeo]";
mes "Ah, there you are.";
@@ -4036,7 +4031,7 @@ comodo,173,354,6 script Romeo#01 55,{
close;
}
-um_fild01,34,280,6 script Romeo#02 55,{
+um_fild01,34,280,6 script Romeo#02 1_M_JOBTESTER,{
if (romeo == 2) {
if (checkquest(7216,HUNTING) == 2) {
mes "[Romeo]";
@@ -4088,7 +4083,7 @@ um_fild01,34,280,6 script Romeo#02 55,{
close;
}
-glast_01,195,131,6 script Johan 95,{
+glast_01,195,131,6 script Johan 4_F_SISTER,{
if ((para_suv01 == 43) && (johan < 1)) {
mes "[Johan]";
mes "...";
@@ -4153,7 +4148,7 @@ glast_01,195,131,6 script Johan 95,{
close;
}
-ein_fild08,172,359,4 script Kiren 989,{
+ein_fild08,172,359,4 script Kiren 4_M_4THPRIN1,{
if ((para_suv01 == 46) && (kiren < 1)) {
mes "[Kiren]";
mes "Hey there.";
@@ -4220,7 +4215,7 @@ ein_fild08,172,359,4 script Kiren 989,{
close;
}
-ice_dun01,154,13,6 script Naomi 726,{
+ice_dun01,154,13,6 script Naomi 4_F_JOB_BLACKSMITH,{
if ((para_suv01 == 49) && (naomi < 1)) {
mes "[Naomi]";
mes "It is so cold in here.";
@@ -4288,7 +4283,7 @@ ice_dun01,154,13,6 script Naomi 726,{
close;
}
-mid_camp,212,229,4 script Margaret 893,{
+mid_camp,212,229,4 script Margaret 4_F_HUWOMAN,{
if ((para_suv01 == 52) && (margaret < 1)) {
mes "[Margaret]";
mes "Oh, hello there.";
@@ -4339,7 +4334,7 @@ mid_camp,212,229,4 script Margaret 893,{
close;
}
-man_fild01,43,234,2 script Paradise Dispatch#01 939,{
+man_fild01,43,234,2 script Paradise Dispatch#01 4_DST_SOLDIER,{
if (margaret == 1) {
mes "[Paradise Dispatch]";
mes "Hey you, can you help me here?";
@@ -4385,7 +4380,7 @@ man_fild01,43,234,2 script Paradise Dispatch#01 939,{
close;
}
-spl_fild02,377,149,4 script Paradise Dispatch#02 946,{
+spl_fild02,377,149,4 script Paradise Dispatch#02 4_M_DST_MASTER,{
if (margaret == 4) {
mes "[Paradise Dispatch]";
mes "So Margaret sent you to help me?";
@@ -4431,7 +4426,7 @@ spl_fild02,377,149,4 script Paradise Dispatch#02 946,{
close;
}
-moc_para01,111,83,3 script Toren 813,{
+moc_para01,111,83,3 script Toren 2_M_OLDBLSMITH,{
if (checkweight(1101,5) == 0) {
mes "^3355FFWait a second!";
mes "Right now, you're carrying";
@@ -4565,12 +4560,12 @@ moc_para01,111,83,3 script Toren 813,{
close;
}
if (para_suv02 == 14) {
- setarray .@Check[0],18514,2571,2473,15031;
- setarray .@Item$[0],"Hat","Mantle","Boots","Uniform";
- for(set .@i,0; .@i<4; set .@i,.@i+1)
- if (countitem(.@Check[.@i]) < 1) {
+ setarray .@check[0],18514,2571,2473,15031;
+ setarray .@item$[0],"Hat","Mantle","Boots","Uniform";
+ for(set .@i,0; .@i<4; set .@i,.@i+1)
+ if (countitem(.@check[.@i]) < 1) {
mes "[Toren]";
- mes "Where is the Paradise "+.@Item$[.@i]+" I gave you?";
+ mes "Where is the Paradise "+.@item$[.@i]+" I gave you?";
next;
mes "[Toren]";
mes "...Fine, I will sell you another one for ^FF0000250,000 Zeny^000000. Don't lose it this time.";
@@ -4585,8 +4580,8 @@ moc_para01,111,83,3 script Toren 813,{
mes "You dont have enough zeny.";
close;
}
- set Zeny, Zeny - 250000;
- getitem .@Check[.@i],1;
+ Zeny -= 250000;
+ getitem .@check[.@i],1;
mes "[Toren]";
mes "These advanced gears are not easy to make, please take better care of this one.";
close;
@@ -4664,14 +4659,14 @@ moc_para01,111,83,3 script Toren 813,{
mes "[Toren]";
mes "Now pick which gear you would like me to enchant.";
next;
- setarray .@Item[0],2571,2473,15031;
+ setarray .@item[0],2571,2473,15031;
set .@i, select("Paradise Mantle II.:Paradise Boots IV.:Paradise Uniform IV.")-1;
- if (countitem(.@Item[.@i]) < 1) {
+ if (countitem(.@item[.@i]) < 1) {
mes "[Toren]";
mes "Bring one and I'll enchant it.";
close;
}
- set .@paragearcount, .@Item[.@i];
+ set .@paragearcount, .@item[.@i];
mes "[Toren]";
mes "Here we go!";
close2;
@@ -4697,7 +4692,7 @@ moc_para01,111,83,3 script Toren 813,{
else if (.@enc_paragear < 35) set .@addpart,4787;
else if (.@enc_paragear < 39) set .@addpart,4791;
else if (.@enc_paragear < 43) set .@addpart,4786;
- set .@enc_paragear2,4701+(10*rand(6));
+ set .@addpart2,4701+(10*rand(6));
delitem .@paragearcount,1;
getitem2 .@paragearcount, 1, 1, 0, 0, 0, 0, .@addpart2, .@addpart;
set paragearenchant,4;
@@ -4736,7 +4731,7 @@ L_Select:
return;
}
-moc_para01,112,79,3 script Weapons Expert 851,{
+moc_para01,112,79,3 script Weapons Expert 4_M_REPAIR,{
if (checkweight(1101,5) == 0) {
mes "^3355FFWait a second!";
mes "Right now, you are carrying";
@@ -4769,7 +4764,7 @@ moc_para01,112,79,3 script Weapons Expert 851,{
mes "Wait... Your Class doesn't have a weapon.";
close;
}
- set Zeny, Zeny - 250000;
+ Zeny -= 250000;
if (BaseClass == Job_Swordman) {
mes "Swordman Class gets a choice of weapons, would you like to have a sword or a spear?";
callsub L_Select,
@@ -5125,30 +5120,22 @@ L_GetWeapon:
return;
}
-/* sec_in02,25,33,4 script Assistant 422,{
+sec_in02,25,33,4 script Assistant#para_suvquest 4_M_BABYCAT,{
+ callfunc "F_GM_NPC";
mes "Password";
next;
- input .@input;
- if (.@input == 1854) {
+ if (callfunc("F_GM_NPC",1854,0) == 1) {
mes "Please select the variable you want to modify.";
next;
- switch (select("para_suv01:para_suv02")) {
- case 1:
- mes "Enter the modified value";
- next;
- input .@input;
- mes "Value of para_suv01 has been changed to "+.@input+".";
- set para_suv01,.@input;
- close;
- case 2:
- mes "Enter the modified value";
- next;
- input .@input;
- mes "Value of para_suv02 has been changed to "+.@input+".";
- set para_suv02,.@input;
- close;
- }
+ set .@var, select("para_suv01:para_suv02");
+ mes "Enter the modified value";
+ next;
+ input .@input,0,9999;
+ mes "Value of para_suv0"+.@var+" has been changed to "+.@input+".";
+ setd "para_suv0"+.@var,.@input;
+ close;
+ } else {
+ mes "......meow wee.";
+ close;
}
- mes "......meow wee.";
- close;
-}*/
+}
diff --git a/npc/re/quests/eden/eden_service.txt b/npc/re/quests/eden/eden_service.txt
index fd6e9a47f..544c7b11a 100644
--- a/npc/re/quests/eden/eden_service.txt
+++ b/npc/re/quests/eden/eden_service.txt
@@ -4,8 +4,6 @@
//= L0ne_W0lf
//===== Current Version: =====================================
//= 1.1
-//===== Compatible With: =====================================
-//= Hercules
//===== Description: =========================================
//= Paradise Group storage access.
//===== Additional Comments: =================================
@@ -43,7 +41,7 @@
mes "Maybe I am not yet qualified to use Cabinet.";
close;
}
- set Zeny, Zeny - 500;
+ Zeny -= 500;
close2;
openstorage;
end;
@@ -60,5 +58,5 @@
close;
}
-moc_para01,173,120,0 duplicate(pggc) Goods Cabinet#01 111
-moc_para01,170,120,0 duplicate(pggc) Goods Cabinet#02 111
+moc_para01,173,120,0 duplicate(pggc) Goods Cabinet#01 HIDDEN_NPC
+moc_para01,170,120,0 duplicate(pggc) Goods Cabinet#02 HIDDEN_NPC
diff --git a/npc/re/quests/eden/eden_tutorial.txt b/npc/re/quests/eden/eden_tutorial.txt
new file mode 100644
index 000000000..92cfb26fd
--- /dev/null
+++ b/npc/re/quests/eden/eden_tutorial.txt
@@ -0,0 +1,1560 @@
+//===== Hercules Script ======================================
+//= Eden Tutorial
+//===== By: ==================================================
+//= Euphy
+//===== Current Version: =====================================
+//= 1.0
+//===== Description: =========================================
+//= A series of quests introducing the major features of
+//= Ragnarok Online.
+//===== Additional Comments: =================================
+//= 1.0 First Version. [Euphy]
+//============================================================
+
+moc_para01,34,178,3 script Tutorial Instructor 4_M_KHMAN,{
+ if (Class == Job_Novice) {
+ // Fall through
+ } else if (checkquest(9167) == -1) {
+ OnStartQuest:
+ if (@tutorial_restart) {
+ set .@tutorial_restart,1;
+ set @tutorial_restart,0;
+ }
+ mes "[Tutorial Instructor]";
+ mes "Lately, it has been said that";
+ mes "they are developing ways to add options";
+ mes "to put in sockets or add statuses";
+ mes "on equipment that normally don't have it.";
+ mes "They call that ^006400Enchant^000000.";
+ next;
+ mes "[Tutorial Instructor]";
+ mes "After seeing that being developed,";
+ mes "I was so inspired by it";
+ mes "that I worked hard to discover";
+ mes "a way to do it and I finally";
+ mes "made my own way to ^006400Enchant^000000!";
+ next;
+ mes "[Tutorial Instructor]";
+ mes "But in order do to this";
+ mes "I need some special materials.";
+ mes "If you're okay with it...";
+ mes "Do you think you can";
+ mes "help me out by gathering them?";
+ next;
+ switch(select("Sure, I can help out!:I'm a little busy right now...")) {
+ case 1:
+ mes "[Tutorial Instructor]";
+ mes "However, looking at you";
+ mes "in your current state makes me";
+ mes "doubt your ability to gather";
+ mes "the items I need...";
+ next;
+ mes "[Tutorial Instructor]";
+ mes "Well, I guess if you employ";
+ mes "a ^006400Mercenary^000000 for this";
+ mes "then I think I can entrust you";
+ mes "with my requests... right?";
+ next;
+ mes "[Tutorial Instructor]";
+ mes "In order to employ a Mercenary,";
+ mes "go find the ^006400Mercenary Guild^000000";
+ mes "which is by the front door of ^8B4513Prontera^000000.";
+ mes "Go to the ^006400Information Agent^000000";
+ mes "and ask them where the ^006400Mercenary Guild Official^000000";
+ mes "is located and they will let you know.";
+ next;
+ if (.@tutorial_restart) {
+ erasequest 9167;
+ erasequest 9168;
+ erasequest 9169;
+ erasequest 9170;
+ erasequest 9171;
+ erasequest 9172;
+ completequest 9173;
+ erasequest 9173;
+ }
+ mes "[Tutorial Instructor]";
+ mes "Now... Hurry and employ";
+ mes "a ^006400Mercenary^000000 and come back to me!";
+ setquest 9167;
+ close;
+ case 2:
+ mes "[Tutorial Instructor]";
+ mes "Well since you said you're busy";
+ mes "I can't be helped...";
+ mes "When you're not so busy, come find me again.";
+ close;
+ }
+ } else if (checkquest(9167) == 0 || checkquest(9167) == 1) {
+ if (!getmercinfo(1)) {
+ mes "[Tutorial Instructor]";
+ mes "You haven't gotten a mercenary yet.";
+ next;
+ mes "[Tutorial Instructor]";
+ mes "In order to employ a Mercenary,";
+ mes "go find the ^006400Mercenary Guild^000000";
+ mes "which is by the front door of ^8B4513Prontera^000000.";
+ mes "Go to the ^006400Information Agent^000000";
+ mes "and ask them where the ^006400Mercenary Guild Official^000000";
+ mes "is located and they will let you know.";
+ next;
+ mes "[Tutorial Instructor]";
+ mes "Now... Hurry and employ";
+ mes "a ^006400Mercenary^000000 and come back to me!";
+ close;
+ }
+ mes "[Tutorial Instructor]";
+ mes "Seeing you with a ^006400Mercenary^000000 definitely makes me trust you more.";
+ next;
+ mes "[Tutorial Instructor]";
+ mes "If a 006400Mercenary^000000 gives you direct effect";
+ mes "by fighting for you";
+ mes "then a ^006400Pet^000000 helps you indirectly with their";
+ mes "abilities and varied appearances,";
+ mes "and it captures your heart.";
+ mes "Try raising a ^006400Pet^000000 in the future as well.";
+ next;
+ mes "[Tutorial Instructor]";
+ mes "Now, let's see... In order to";
+ mes "get this ^006400Enchant^000000 to succeed";
+ mes "you have to go gather some materials for me...";
+ mes "What I need is...";
+ mes "..............";
+ next;
+ select("I don't think I heard you clearly...");
+ mes "[Tutorial Instructor]";
+ mes "I really don't like to repeat myself..";
+ mes "If you ask me again like that";
+ mes "does it just make your mouth tired?";
+ mes "In these situations, open your ^006400Quest Window^000000";
+ mes "and you can see what is requested of you";
+ mes "and the details of my request.";
+ next;
+ mes "[Tutorial Instructor]";
+ mes "If you look at the top left";
+ mes "in the area with the information,";
+ mes "it says ^006400QUEST^000000";
+ mes "and if you click that";
+ mes "it'll show all information";
+ mes "that pertains to the request.";
+ next;
+ mes "[Tutorial Instructor]";
+ mes "Once you verify what materials";
+ mes "you need go gather from";
+ mes "the ^006400Quest Window^000000,";
+ mes "come find and talk to me again.";
+ completequest 9167;
+ setquest 9168;
+ close;
+ } else if (checkquest(9168) == 0 || checkquest(9168) == 1) {
+ if (checkweight(607,1) == 0) {
+ if (MaxWeight - Weight < getiteminfo(607,6)) {
+ mes "[Tutorial Instructor]";
+ mes "You seemed to be sluggish with a lot of items";
+ mes "in your inventory making you heavy...";
+ mes "It'll be hard to do my request";
+ mes "when you're heavy with all that junk!";
+ mes "Go empty out your inventory and come back to me.";
+ close;
+ } else {
+ mes "[Tutorial Instructor]";
+ mes "It seems that you have";
+ mes "one too many items on you...";
+ mes "If you want to help me out";
+ mes "then you're gonna have to put some";
+ mes "stuff away then come back.";
+ close;
+ }
+ }
+ mes "[Tutorial Instructor]";
+ mes "Did you open your ^006400Quest Window^000000";
+ mes "to verify the materials?";
+ next;
+ switch(select("Yup!:No...:Where is the Quest Window...")) {
+ case 1:
+ mes "[Tutorial Instructor]";
+ mes "Oh yeah? Then shall I test you to see";
+ mes "if you really checked it?";
+ mes "Write down what material I asked you to get.";
+ next;
+ input .@inputstr$;
+ if (.@inputstr$ == "10 Jellopy") {
+ mes "[Tutorial Instructor]";
+ mes "Good, you know.";
+ mes "Now, are you feeling pretty familiar";
+ mes "about the ^006400Quest Window^000000?";
+ mes "But there is an issue...";
+ mes "You know what material to collect,";
+ mes "but gathering that won't be easy.";
+ next;
+ mes "[Tutorial Instructor]";
+ mes "Also, there is one thing";
+ mes "I absolutely think you need to try.";
+ mes "And that is...";
+ mes "the ^006400Universal Silver Catalog^000000.";
+ next;
+ mes "[Tutorial Instructor]";
+ mes "The ^006400Universal Silver Catalog^000000";
+ mes "can be obtained from";
+ mes "the ^0000FFCatalogue Wizard^000000";
+ mes "that is located in South Prontera.";
+ next;
+ mes "[Tutorial Instructor]";
+ mes "Now, go and obtain";
+ mes "a ^006400Universal Silver Catalog^000000";
+ mes "then come back and talk to me.";
+ completequest 9168;
+ setquest 9169;
+ close;
+ }
+ mes "[Tutorial Instructor]";
+ mes "You... still don't seem";
+ mes "to know much about the";
+ mes "^006400Quest Window^000000.";
+ mes "I will inform you again.";
+ next;
+ break;
+ case 2:
+ mes "[Tutorial Instructor]";
+ mes "Hurry and check to see";
+ mes "what materials are required in";
+ mes "your ^006400Quest Window^000000.";
+ close;
+ case 3:
+ break;
+ }
+ mes "[Tutorial Instructor]";
+ mes "If you look at the top left";
+ mes "in the area with the information,";
+ mes "it says ^006400QUEST^000000";
+ mes "and if you click that";
+ mes "it'll show all information";
+ mes "that pertains to the request.";
+ next;
+ mes "[Tutorial Instructor]";
+ mes "Once you verify what materials";
+ mes "you need go gather from";
+ mes "the ^006400Quest Window^000000,";
+ mes "come find and talk to me again.";
+ close;
+ } else if (checkquest(9169) == 0 || checkquest(9169) == 1) {
+ if (countitem(12580) == 0) {
+ mes "[Tutorial Instructor]";
+ mes "Hmm? So I noticed that";
+ mes "you haven't gone and picked up a";
+ mes "^006400Universal Silver Catalog^000000 yet!";
+ next;
+ mes "[Tutorial Instructor]";
+ mes "You can get the";
+ mes "^006400Universal Silver Catalog^000000";
+ mes "from the ^0000FFCatalogue Wizard^000000";
+ mes "who is located in Prontera.";
+ next;
+ mes "[Tutorial Instructor]";
+ mes "So, go and get the";
+ mes "^006400Universal Silver Catalog^000000";
+ mes "then come back to me.";
+ close;
+ }
+ mes "[Tutorial Instructor]";
+ mes "Oh! You managed to get a";
+ mes "^006400Universal Silver Catalog^000000!";
+ next;
+ mes "[Tutorial Instructor]";
+ mes "This lets you browse and search";
+ mes "through all the various stores";
+ mes "that are on the same map and";
+ mes "are open for vending.";
+ next;
+ mes "[Tutorial Instructor]";
+ mes "It only costs 200 zeny for one";
+ mes "of these and with it you can";
+ mes "search up to 10 times.";
+ mes "You can say that it's a necessity.";
+ next;
+ mes "[Tutorial Instructor]";
+ mes "So, go to the area you want";
+ mes "and try out the ^006400Universal Silver Catalog^000000";
+ mes "then come and find me";
+ mes "after you've done this.";
+ completequest 9169;
+ setquest 9170;
+ close;
+ } else if (checkquest(9170) == 0 || checkquest(9170) == 1) {
+ if (countitem(12580)) {
+ mes "[Tutorial Instructor]";
+ mes "Hmm... It seems that you still have";
+ mes "the ^006400Universal Silver Catalog^000000 in your inventory.";
+ mes "Since you're saying you forgot how to use it";
+ mes "I'll explain it to you again.";
+ next;
+ mes "[Tutorial Instructor]";
+ mes "You see... the ^006400Universal Silver Catalog^000000";
+ mes "lets you browse and search";
+ mes "through all the various stores";
+ mes "that are on the same map and";
+ mes "are open for vending.";
+ next;
+ mes "[Tutorial Instructor]";
+ mes "So, go to the area you want";
+ mes "and try out the ^006400Universal Silver Catalog^000000";
+ mes "them come and find me";
+ mes "after you've done this.";
+ close;
+ }
+ mes "[Tutorial Instructor]";
+ mes "How do you feel after trying out";
+ mes "the ^006400Universal Silver Catalog^000000?";
+ mes "It feels a lot easier than";
+ mes "going through each individual";
+ mes "vendor and finding the item";
+ mes "you need, right?";
+ next;
+ mes "[Tutorial Instructor]";
+ mes "Now, go out and gather";
+ mes "the materials I need and";
+ mes "I will make sure to give you";
+ mes "a fantastic ^006400enchant^000000!";
+ mes "I'll be waiting!";
+ completequest 9170;
+ setquest 9171;
+ close;
+ } else if (checkquest(9171) == 0 || checkquest(9171) == 1) {
+ if (countitem(909) < 10) {
+ mes "[Tutorial Instructor]";
+ mes "It seems you didn't bring";
+ mes "enough materials. Did you forget";
+ mes "what you needed to gather?";
+ next;
+ switch(select("Yeah...:Nope!")) {
+ case 1:
+ mes "[Tutorial Instructor]";
+ mes "I've been told that if you click the";
+ mes "thing on the top left that says";
+ mes "^006400QUEST^000000, it'll show you all";
+ mes "the information that you need";
+ mes "that pertains to your requests.";
+ next;
+ mes "[Tutorial Instructor]";
+ mes "Once you gather all the materials";
+ mes "that are listed in your ^006400Quest Window^000000";
+ mes "come and talk to me.";
+ close;
+ case 2:
+ mes "[Tutorial Instructor]";
+ mes "When you gather the items";
+ mes "come to me and I will show you";
+ mes "an awesome ^006400ENCHANT^000000.";
+ mes "I'll be waiting!";
+ close;
+ }
+ }
+ if (checkweight(607,6) == 0) {
+ if (MaxWeight - Weight < getiteminfo(607,6)) {
+ mes "[Tutorial Instructor]";
+ mes "Your inventory seems to be really full";
+ mes "with various stuff... Do you think";
+ mes "you can get anything done when you're so";
+ mes "weighed down? Go put some stuff away";
+ mes "then come back to me.";
+ close;
+ } else {
+ mes "[Tutorial Instructor]";
+ mes "You seem to have too much stuff";
+ mes "in your inventory... Go put some";
+ mes "stuff away then come back to me";
+ mes "when you have less suff on you.";
+ close;
+ }
+ }
+ mes "[Tutorial Instructor]";
+ mes "You got everything I asked for!";
+ mes "So~ Shall we start on the awesome";
+ mes "Enchant that I found and developed?";
+ next;
+ specialeffect EF_BASH3D2;
+ mes "[Tutorial Instructor]";
+ mes "Okay! Now for the first skill!!";
+ mes "To add a new ability to your armor...";
+ mes "^006400HIDDEN SOCKET ENCHANT^000000!!";
+ next;
+ specialeffect EF_BASH3D2;
+ mes "[Tutorial Instructor]";
+ mes "And for the second skill!!";
+ mes "To add a new socket into your";
+ mes "weapon and shield...";
+ mes "^006400SOCKET ENCHANT^000000!!";
+ next;
+ mes "[Tutorial Instructor]";
+ mes "There. The Enchant is done. You can't understand the the process by just watching me, so I'll let you look at the items themselves.";
+ delitem 909,10; //Jellopy
+ completequest 9171;
+ setquest 9172;
+ getitem2 15033,1,1,0,0,0,0,0,4702; //Tutorial_Mattle[Strength3]
+ getitem 15033,1; //Tutorial_Mattle
+ getitem 15034,1; //Tutorial_Mattle_
+ next;
+ mes "[Tutorial Instructor]";
+ mes "Those items cannot be";
+ mes "worn or traded so don't even";
+ mes "think about running away with them.";
+ mes "When you're done looking at them,";
+ mes "give them back to me.";
+ close;
+ } else if (checkquest(9172) == 0 || checkquest(9172) == 1) {
+ if (countitem(15033) == 0 || countitem(15034) == 0) {
+ mes "[Tutorial Instructor]";
+ mes "What did you do with the Enchanted";
+ mes "items I lent to you to look at?";
+ mes "Until you bring back the fruits of";
+ mes "my labor, I don't want to talk to you,";
+ mes "let alone see your face.";
+ close;
+ }
+ mes "[Tutorial Instructor]";
+ mes "Are you done looking over";
+ mes "the items I Enchanted?";
+ next;
+ switch(select("Yes, thank you.:I haven't looked at them yet.")) {
+ case 1:
+ mes "[Tutorial Instructor]";
+ mes "So what did you think after inspecting it? Now that you've looked at an actual Enchanted item, do you understand it?";
+ // Item deletions moved below to prevent errors.
+ next;
+ mes "[Tutorial Instructor]";
+ mes "Thanks to you I was able to see great results of my research and study.";
+ next;
+ mes "[Tutorial Instructor]";
+ mes "If you have any questions about anything that I discussed with you, I will tell you everything! Thanks for your hard work!";
+ delitem 15033,2;
+ delitem 15034,1;
+ completequest 9172;
+ setquest 9173;
+ getexp 5000,2500;
+ close;
+ case 2:
+ mes "[Tutorial Instructor]";
+ mes "Take your time to look them over";
+ mes "then bring them back to me.";
+ close;
+ }
+ } else if (checkquest(9173) == 0 || checkquest(9173) == 1) {
+ mes "[Tutorial Instructor]";
+ mes "Do you have any questions?";
+ next;
+ switch(select("Can I do the same quest again?:About the Quest Window...:About ENCHANT...:About Searching Vends...:About Mercenary and Pets...:End Conversation.")) {
+ case 1:
+ if (checkquest(9173,PLAYTIME) == 0 || checkquest(9173,PLAYTIME) == 1) {
+ mes "[Tutorial Instructor]";
+ mes "The one method to do the same quests repeatdedly is to do the ^006400Daily Quests^000000.";
+ next;
+ mes "[Tutorial Instructor]";
+ mes "Once you complete a ^006400Daily Quest^000000 and turn it in, wait about a day then come back to get the request and do it all over again!";
+ mes "[Tutorial Instructor]";
+ mes "If you received a daily quest, look at bottom right of the ^006400Quest Window^000000. There is a section that is called ^006400LIMITED^000000. In that section, it'll tell you how much time needs to pass before you can pick up another daily quest.";
+ next;
+ mes "[Tutorial Instructor]";
+ mes "It seems you still have some time left to wait out after finishing my quest. Wait it out a bit more, then come find me and you can get the same quest again.";
+ close;
+ }
+ mes "[Tutorial Instructor]";
+ mes "It seems that about a day has passed since you've finished my quest. Alright, so like the ^006400Daily Quests^000000, you can get a quest from me. Did you want to proceed?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ set @tutorial_restart,1;
+ goto OnStartQuest;
+ case 2:
+ mes "[Tutorial Instructor]";
+ mes "Okay. But if you change your mind and want to receive a quest, come find me.";
+ close;
+ }
+ case 2:
+ mes "[Tutorial Instructor]";
+ mes "They say that the ^006400Quest Window^000000 details out everything you need to know about your quests.";
+ next;
+ mes "[Tutorial Instructor]";
+ mes "If you look at the top left";
+ mes "in the area with the information,";
+ mes "it says ^006400QUEST^000000";
+ mes "and if you click that";
+ mes "it'll show all information";
+ mes "that pertains to the request.";
+ next;
+ mes "[Tutorial Instructor]";
+ mes "Using the ^006400Quest Window^000000 will make your life easier. It'll tell you where to go, what items to get or who to find and etc.";
+ close;
+ case 3:
+ mes "[Tutorial Instructor]";
+ mes "006400ENCHANT^000000, in general, is divided into two parts: ^006400SOCKET ENCHANT^000000 and ^006400HIDDEN SOCKET ENCHANT^000000.";
+ next;
+ mes "[Tutorial Instructor]";
+ mes "^006400SOCKET ENCHANT^000000 is used to add a SOCKET into equipments and ^006400HIDDEN SOCKET ENCHANT^000000 is used to put in stats into a socket of an armor.";
+ next;
+ mes "[Tutorial Instructor]";
+ mes "Of course, in order to do this we are in need of some materials and there is a chance that it may fail, but that's the risk you're taking.";
+ next;
+ mes "[Tutorial Instructor]";
+ mes "The people who do the ^006400SOCKET ENCHANT^000000 can be found in ^8B4513Prontera, Morroc, Payon,^000000. ^8B4513Rhitalzen^000000 is in the Refinery and ^0000FFSeiyablem^000000 and ^0000FFReiablem^000000 can be found near the entrance.";
+ next;
+ mes "[Tutorial Instructor]";
+ mes "The one who does ^006400HIDDEN SOCKET ENCHANT^000000 is found at the 6 o'clock location of ^8B4513Prontera^000000. Look for the ^0000FFCraftman Apprentice^000000.";
+ next;
+ mes "[Tutorial Instructor]";
+ mes "Do you think you understand a little bit more about ^006400ENCHANT^000000?";
+ close;
+ case 4:
+ mes "[Tutorial Instructor]";
+ mes "^006400Vend Search^000000 can be utilized by the ^006400Universal Silver Catalog^000000 item. Since you search through as vends on that map, it'll make it easier for you to find the item that you're looking for.";
+ next;
+ mes "[Tutorial Instructor]";
+ mes "The ^006400Universal Silver Catalog^000000";
+ mes "can be obtained from ";
+ mes "the ^0000FFCatalogue Wizard^000000";
+ mes "that is located in South Prontera;";
+ next;
+ mes "[Tutorial Instructor]";
+ mes "It only costs 200 zeny for one";
+ mes "of these and with it you can";
+ mes "search up to 10 times.";
+ mes "You can say that it's a necessity.";
+ next;
+ mes "[Tutorial Instructor]";
+ mes "So, are you getting familiar with ^006400Vend Search^000000? Don't just stand there and listen to me. Go ahead and try it for yourself!";
+ close;
+ case 5:
+ mes "[Tutorial Instructor]";
+ mes "Depending on what you need, ^006400Mercenary^000000 and ^006400Pet^000000 can be used in various ways.";
+ next;
+ mes "[Tutorial Instructor]";
+ mes "If a 006400Mercenary^000000 gives you direct effect";
+ mes "by fighting for you";
+ mes "then a ^006400Pet^000000 helps you indirectly with their";
+ mes "abilities and varied appearances,";
+ mes "and it captures your heart.";
+ next;
+ mes "[Tutorial Instructor]";
+ mes "In order to employ a Mercenary";
+ mes "Go find the ^006400Mercenary Guild^000000";
+ mes "which is by the front door of ^8B4513Prontera^000000.";
+ mes "Go to the ^006400Information Agent^000000";
+ mes "and ask them where the ^006400Mercenary Guild Official^000000";
+ mes "is located and they will let you know.";
+ next;
+ mes "[Tutorial Instructor]";
+ mes "In order to get a ^006400Pet^000000, while hunting you will obtain taming items. Use the tame on the monster it's for and you can get a pet.";
+ next;
+ mes "[Tutorial Instructor]";
+ mes "Because there is a chance for failure, please use the taming item with great care.";
+ next;
+ mes "[Tutorial Instructor]";
+ mes "That aside... you can get a ^006400Mercenary^000000 from the Mercenary Guild and you can get a ^006400Pet^000000 by trading or buying it from another player.";
+ next;
+ mes "[Tutorial Instructor]";
+ mes "Now, do you understand a bit more about using a ^006400Mercenary^000000 and a ^006400Pet^000000? I hope you get a chance to use them in the future.";
+ close;
+ case 6:
+ mes "[Tutorial Instructor]";
+ mes "If you have any questions, come find me again.";
+ close;
+ }
+ }
+ mes "[Tutorial Instructor]";
+ mes "Lately, it has been said that";
+ mes "they are developing ways to add options";
+ mes "to put in sockets or add statuses";
+ mes "on equipment that normally don't have it.";
+ close;
+}
+
+moc_para01,32,179,4 script Tutorial Goal 4_F_KHELLY,{
+ if (checkweight(608,7) == 0) {
+ if (MaxWeight - Weight < getiteminfo(608,7)) {
+ mes "[Tutorial Goal]";
+ mes "You seem to be overweight with items. Go put some stuff away then come back.";
+ close;
+ } else {
+ mes "[Tutorial Goal]";
+ mes "You have too many items on you. Go put some stuff away then come back.";
+ close;
+ }
+ }
+ if (checkquest(4161) == 0 || checkquest(4161) == 1) {
+ mes "[Tutorial Goal]";
+ mes "Well~ We gotta go challenge the experts right?";
+ mes "Let's start off by finding the ^006400Siege Expert^000000!";
+ close;
+ } else if (checkquest(4162) == 0 || checkquest(4162) == 1) {
+ mes "[Tutorial Goal]";
+ mes "You've passed the ^006400Siege Expert^000000's test! Congrats!";
+ mes "Now, go find the ^006400Party Recruiting Expert^000000!";
+ close;
+ } else if (checkquest(4163) == 0 || checkquest(4163) == 1) {
+ mes "[Tutorial Goal]";
+ mes "Oh! You've passed the ^006400Party Recruiting Expert^000000's test! Congrats!";
+ mes "Now, go find the ^006400Battleground Expert^000000!";
+ close;
+ } else if (checkquest(4164) == 0 || checkquest(4164) == 1) {
+ mes "[Tutorial Goal]";
+ mes "Yay! You passed the test from the ^006400Battleground Expert^000000! Congrats!";
+ mes "Next, go and find the ^006400Memorial Dungeon Expert^000000!";
+ close;
+ } else if (checkquest(4165) == 0 || checkquest(4165) == 1) {
+ mes "[Tutorial Goal]";
+ mes "You passed the test from ^006400Memorial Dungeon Expert^000000! That's great!";
+ mes "Try finding the ^006400Map Expert^000000!";
+ close;
+ } else if (checkquest(4166) == 0 || checkquest(4166) == 1) {
+ mes "[Tutorial Goal]";
+ mes "You passed ^006400Map Expert^000000's test! Congrats!";
+ mes "I'm so glad that you were to pass all the Experts' tests! You're better than I expected!!";
+ next;
+ mes "[Tutorial Goal]";
+ mes "Now, even you are an ^006400Expert^000000!! Such a fitting nick name for you!";
+ mes "Thank you so much for your hard work. As promised, here is a small little reward for you.";
+ next;
+ mes "[Tutorial Goal]";
+ mes "I think it'll be useful to you during your adventures. I wish you luck on your future adventures~";
+ completequest 4166;
+ getitem 510,5; //Blue_Herb
+ getitem 511,5; //Green_Herb
+ getitem 504,5; //White_Potion
+ getitem 608,1; //Seed_Of_Yggdrasil
+ close;
+ } else if (checkquest(4166) == 2) {
+ mes "[Tutorial Goal]";
+ mes "Now, even you are an ^006400Expert^000000!! Such a fitting nick name for you!";
+ mes "Thank you so much for your hard work.";
+ mes "I hope that your future adventures are filled with good luck.";
+ close;
+ }
+ if (Class == Job_Novice) {
+ mes "[Tutorial Goal]";
+ mes "Hmm, I wonder if there is any adventurer that is smart enough to challenge our Experts...";
+ close;
+ }
+ mes "[Tutorial Goal]";
+ mes "Hey you! You look like an adventurer... Though you look a little dull...";
+ next;
+ if(select("What'd you say? I'm smart!:Yeah... I'm dull.") == 1) {
+ mes "[Tutorial Goal]";
+ mes "Serious? Though I don't know if I can believe that. Look at the expert who is in front of me! He took up only one area of study for 16 years and now he is as dignified as can be!";
+ next;
+ mes "[Tutorial Goal]";
+ mes "Well, if you manage to pass all their tests then I will believe in your abilities.";
+ next;
+ mes "[Tutorial Goal]";
+ mes "And I will apologize for calling you dull. How about it, Dull Expert?! Do you want to challenge them?";
+ next;
+ if(select("Ch... Challenge!!:Um... I think I'll just give up now...") == 1) {
+ mes "[Tutorial Goal]";
+ mes "You're braver than you look. You can't go back now that you've decided to challenge!";
+ next;
+ mes "[Tutorial Goal]";
+ mes "Okay~ Start by talking to the ^006400Siege Expert^000000 who's right there in front.";
+ setquest 4161;
+ close;
+ }
+ }
+ mes "[Tutorial Goal]";
+ mes "Well, don't get discouraged... If you change your mind and want to do the challenge, come find me.";
+ close;
+}
+
+moc_para01,24,175,4 script Siege Master 4_M_JOB_KNIGHT2,{
+ set .@checkquest, checkquest(4161);
+ if (.@checkquest == 2) {
+ mes "[Siege Expert]";
+ mes "Since you've come again, I assume you're curious about ^006400Siege^000000?";
+ next;
+ switch(select("Listen about Siege.:End Conversation.")) {
+ case 1:
+ callsub L_Info;
+ mes "[Siege Expert]";
+ mes "Now that you've gone through all of this with an expert, isn't it easy to understand? If you want to go over anything, just come talk to me.";
+ close;
+ case 2:
+ mes "[Siege Expert]";
+ mes "If you want to go over anything, just come talk to me.";
+ close;
+ }
+ } else if (.@checkquest == 0 || .@checkquest == 1) {
+ mes "[Siege Expert]";
+ mes "I am someone who has studied War of Emperium for 16 years! So that makes me an expert! Since you came to find me, I assume you want to learn more about ^006400Siege^000000.";
+ next;
+ mes "[Siege Expert]";
+ mes "You have great desire and enthusiasm. As the Expert of ^006400Siege^000000, you have motivated me! All the other Experts are waiting for you! Go get'em!";
+ next;
+ mes "[Siege Expert]";
+ mes "If I told you that there was a great prize for being able to pass all the Experts' tests~ would you go for the challenge?";
+ next;
+ mes "[Siege Expert]";
+ mes "As the first Expert, I can teach you about ^006400Siege^000000. How about it? Did you wanna learn about ^006400Siege^000000s?";
+ next;
+ switch(select("Listen about Siege.:End Conversation.")) {
+ case 1:
+ callsub L_Info;
+ mes "[Siege Expert]";
+ mes "Now that you've gone through all of this with an expert, isn't it easy to understand?";
+ mes "Now I'll give you 3 questions~ get those right and you've passed! Do you want a challenge?";
+ while(1) {
+ set .@correct,0;
+ next;
+ switch(select("Challenge me!:Listen Again:Quit")) {
+ case 1:
+ switch(rand(1,3)) {
+ case 1:
+ mes "[Siege Expert]";
+ mes "A Siege is done in order to take over a [].";
+ mes "It's a war that happens between a [] and another [].";
+ mes "What words go in the empty spaces of []?";
+ next;
+ if(select("Castle, User, Guild:Castle, Guild, Guild:Town, Guild, Guild:Town, User, User") == 2)
+ set .@correct, .@correct+10;
+ mes "[Siege Expert]";
+ mes "What is the wrong Siege time?";
+ next;
+ if(select("WoE 1 Tues 9-11:WoE 1 Sat 4-6:WoE 1 Thurs 8-10") == 3)
+ set .@correct, .@correct+10;
+ mes "[Siege Expert]";
+ mes "When you get a castle, you must raise [] in order to get better benefits.";
+ mes "What words go in the empty spaces of []?";
+ next;
+ if(select("Commerce Development:Industrial Development:Guild Development:Town Development") == 1)
+ set .@correct, .@correct+10;
+ break;
+ case 2:
+ mes "[Siege Expert]";
+ mes "There are 2 types of Siege.";
+ mes "There is the normal War of Emperium";
+ mes "and then there is [].";
+ mes "What words go in the empty spaces of []?";
+ next;
+ if(select("War of Emperium MO:War of Emperium NE:War of Emperium SK:War of Emperium SE") == 4)
+ set .@correct, .@correct+10;
+ mes "[Siege Expert]";
+ mes "As the guild that owns a castle, you must protect the [].";
+ mes "What words go in the empty spaces of []?";
+ next;
+ if(select("Emperial:Emperium:Emperiom:Imperial") == 2)
+ set .@correct, .@correct+10;
+ mes "[Siege Expert]";
+ mes "What benefits does the guild get for winning the Siege?";
+ next;
+ if(select("30% off all items when purchasing:Increase experience gained by 20%:Access to Guild Dungeon:Getting Weapons everyday at midnight.") == 3)
+ set .@correct, .@correct+10;
+ break;
+ case 3:
+ mes "[Siege Expert]";
+ mes "What benefits does the guild get for winning the Siege?";
+ next;
+ if(select("Increase experience gained by 20%:30% off all items when purchasing:Access to Guild Field:Treasure Box daily at midnight") == 4)
+ set .@correct, .@correct+10;
+ mes "[Siege Expert]";
+ mes "How many hours does a siege last?";
+ next;
+ if(select("1 Hour:2 Hours:3 Hours:4 Hours") == 2)
+ set .@correct, .@correct+10;
+ mes "[Siege Expert]";
+ mes "When you get a castle, you must raise [] in order to get better benefits.";
+ mes "What words go in the empty spaces of []?";
+ next;
+ if(select("Town Development:Industry Development:Guild Development:Commerce Development") == 4)
+ set .@correct, .@correct+10;
+ break;
+ }
+ if (.@correct == 30) {
+ mes "[Siege Expert]";
+ mes "Wow! You got all 3 questions correct! So, you feel pretty good about ^006400Siege^000000s? Right?";
+ next;
+ mes "[Siege Expert]";
+ mes "If you ever want to learn about ^006400Siege^000000, come find me.";
+ next;
+ mes "[Siege Expert]";
+ mes "Now, go and find the ^0000FFParty Recruiting Expert^000000. He's waiting for you.";
+ completequest 4161;
+ setquest 4162;
+ getexp 2000,1000;
+ close;
+ }
+ mes "[Siege Expert]";
+ mes "There's only 3 questions and you didn't get them all right! At this rate, you'll fail all the Experts' tests.";
+ next;
+ mes "[Siege Expert]";
+ mes "But when I look at you I know you have potential. Did you want to try to tackle it again?";
+ break;
+ case 2:
+ callsub L_Info;
+ mes "[Siege Expert]";
+ mes "Now that you've gone through all of this with an expert, isn't it easy to understand?";
+ mes "Now I'll give you 3 questions~ get those right and you've passed! Do you want a challenge?";
+ break;
+ case 3:
+ mes "[Siege Expert]";
+ mes "Bah! You're no fun... you give up too easy! If you change your mind, come find me.";
+ close;
+ }
+ }
+ close;
+ case 2:
+ mes "[Siege Expert]";
+ mes "Are you giving up? If you change your mind, come find me.";
+ close;
+ }
+ }
+ mes "[Siege Expert]";
+ mes "If you want to learn something from me, go meet ^006400Tutorial Goal^000000 first.";
+ close;
+
+L_Info:
+ mes "[Siege Expert]";
+ mes "A ^006400Siege^000000 is a ^0000FFGuild vs. Guild^000000 war in hope to occupy a castle!";
+ next;
+ mes "[Siege Expert]";
+ mes "There are 2 different types of ^006400Siege^000000.";
+ mes "There is the standard ^006400War of Emperium^000000 and one that is slightly different which is known as ^006400War of Emperium 2^000000.";
+ next;
+ mes "[Siege Expert]";
+ mes "So during this time, there are two sides of the war.";
+ mes "The ^0000FFGuild That Owns a Castle^000000 tries to protect the ^006400Emperium^000000 and the ^0000FFGuild That Attacks a Castle^000000 tries to break the ^006400Emperium^000000.";
+ next;
+ mes "[Siege Expert]";
+ mes "You can find ^006400Siege^000000 times on our website.";
+ mes "And guilds that win also get a special something-something.";
+ next;
+ mes "[Siege Expert]";
+ mes "Guilds that win during the Siege";
+ mes "get access to a ^006400Guild Dungeon^000000";
+ mes "and the Guild Master gets to open ^006400Treasure Box^000000es at ^0000FFMidnight each day^000000.";
+ mes "Isn't that a great benefit?";
+ next;
+ mes "[Siege Expert]";
+ mes "Another thing you have to do when you win a castle is called ^006400Commerce Development^000000. The more you do it, the better the benefits.";
+ next;
+ return;
+}
+
+moc_para01,21,172,4 script Party Recruiting Expert 4_M_OILMAN,{
+ set .@checkquest, checkquest(4162);
+ if (.@checkquest == 2) {
+ mes "[Party Recruiting Expert]";
+ mes "Since you've come and found me, it seems you're curious about ^006400Party Recruiting^000000?";
+ next;
+ switch(select("Listen about Party Recruiting.:End Conversation.")) {
+ case 1:
+ callsub L_Info;
+ mes "[Party Recruiting Expert]";
+ mes "This expert's explanation was pretty great, huh? If you need a refresher, come find me again.";
+ close;
+ case 2:
+ mes "[Party Recruiting Expert]";
+ mes "Well, if you have any questions, come find me.";
+ close;
+ }
+ } else if (.@checkquest == 0 || .@checkquest == 1) {
+ mes "[Party Recruiting Expert]";
+ mes "I am the ^006400Party Recruiting^000000 expert because I did research about Party Recruting for 16 years! It seems that the ^006400Siege Expert^000000 sent you my way since you passed his tests, hmm?";
+ next;
+ mes "[Party Recruiting Expert]";
+ mes "You may have already heard but if you pass all the Experts' quizzes, you'll get an awesome prize!";
+ next;
+ mes "[Party Recruiting Expert]";
+ mes "As the 2nd expert, I'll tell you all about ^006400Party Recruiting^000000! How about it?";
+ next;
+ switch(select("Listen about Party Recruiting.:End Conversation.")) {
+ case 1:
+ callsub L_Info;
+ mes "[Party Recruiting Expert]";
+ mes "Now~ my explanations were smoother than a smooth criminal, right? Now I'm gonna give you a quiz with 3 questions. Get them all right and you've passed. Wanna take the challenge?";
+ while(1) {
+ set .@correct,0;
+ next;
+ switch(select("On to the quiz!:Explain again please?:Give up.")) {
+ case 1:
+ switch(rand(1,3)) {
+ case 1:
+ mes "[Party Recruiting Expert]";
+ mes "Party Recruiting is used to help";
+ mes "users that are looking for []";
+ mes "and those looking for a [].";
+ mes "What words go in the empty spaces of []?";
+ next;
+ if(select("Guild, Guildmate:Club, Club Members:Paris, Party Members:Party, Party Members") == 4)
+ set .@correct, .@correct+10;
+ mes "[Party Recruiting Expert]";
+ mes "The window that is used to help users look and search for a party is called a [].";
+ mes "What words go in the empty spaces of []?";
+ next;
+ if(select("Party List:Party Wanted List:Party Recruiting List:Costume Party List") == 3)
+ set .@correct, .@correct+10;
+ mes "[Party Recruiting Expert]";
+ mes "Which of the choices are not listed as a choice to pick when making a party recruit notice?";
+ next;
+ if(select("LEVEL:SKILL:JOB:MAP") == 2)
+ set .@correct, .@correct+10;
+ break;
+ case 2:
+ mes "[Party Recruiting Expert]";
+ mes "There are 2 types of Party Recruiting.";
+ mes "Registering Party Recruiting is one";
+ mes "and the 2nd one is [].";
+ mes "What words go in the empty spaces of []?";
+ next;
+ if(select("Search for Parties that are Recruiting:Parties that are starting to hunt:Party Recruit and Item Distribution:Party Stuff") == 1)
+ set .@correct, .@correct+10;
+ mes "[Party Recruiting Expert]";
+ mes "In order to start Party Recruiting, you have to click the [] button which is located in the info section of the upper left hand side.";
+ mes "What words go in the empty spaces of []?";
+ next;
+ if(select("party:guild:booking:skill") == 3)
+ set .@correct, .@correct+10;
+ mes "[Party Recruiting Expert]";
+ mes "If you want to know more about commands for Party Recruiting, you have to press the [] button on the Party Recruting List window.";
+ mes "What words go in the empty spaces of []?";
+ next;
+ if(select("Basic Information:Help:Party:Confirm") == 2)
+ set .@correct, .@correct+10;
+ break;
+ case 3:
+ mes "[Party Recruiting Expert]";
+ mes "For Party Recruiting, in order to make the";
+ mes "Party Recruiting Window pop up,";
+ mes "You type in this command [].";
+ mes "What words go in the empty spaces of []?";
+ next;
+ if(select("/Party Collection Window:/Party Collection:/Party Recruitment Window:/Party Recruitment") == 4)
+ set .@correct, .@correct+10;
+ mes "[Party Recruiting Expert]";
+ mes "When recruiting for a party, you can set 3 parameters. Those 3 are";
+ mes "LEVEL, JOB, and [].";
+ mes "What words go in the empty spaces of []?";
+ next;
+ if(select("SKILL:GUILD:MAP:OPTION") == 3)
+ set .@correct, .@correct+10;
+ mes "[Party Recruiting Expert]";
+ mes "Party Recruiting is used to help";
+ mes "users that are looking for []";
+ mes "and those looking for a [].";
+ mes "What words go in the empty spaces of []?";
+ next;
+ if(select("Parry, Party Members:Club, Club Members:Party, Party Members:Guild, Guild Members") == 3)
+ set .@correct, .@correct+10;
+ break;
+ }
+ if (.@correct == 30) {
+ mes "[Party Recruiting Expert]";
+ mes "Nice! You got all 3 correct! Now do you feel more confident about ^006400Party Recruiting^000000?";
+ next;
+ mes "[Party Recruiting Expert]";
+ mes "If you ever want to hear more about ^006400Party Recruiting^000000, come find me anytime.";
+ next;
+ mes "[Party Recruiting Expert]";
+ mes "Well, off you go to the ^0000FFBattleground Expert^000000! He is probably waiting for you.";
+ completequest 4162;
+ setquest 4163;
+ getexp 2000,1000;
+ close;
+ }
+ mes "[Party Recruiting Expert]";
+ mes "There's only 3 questions and you didn't get them all right! At this rate, you'll fail all the Experts' tests.";
+ next;
+ mes "[Party Recruiting Expert]";
+ mes "But if you want to retake the quiz! Go for it! I think you have potential! Wanna take the quiz again?";
+ break;
+ case 2:
+ callsub L_Info;
+ mes "[Party Recruiting Expert]";
+ mes "Now~ my explanations were smoother than a smooth criminal, right? Now I'm gonna give you a quiz with 3 questions. Get them all right and you've passed. Wanna take the challenge?";
+ break;
+ case 3:
+ mes "[Party Recruiting Expert]";
+ mes "Don't give up! You can do it! If you change your mind, come talk to me again!";
+ close;
+ }
+ }
+ close;
+ case 2:
+ mes "[Party Recruiting Expert]";
+ mes "You're gonna give up without even listening to me? If you change your mind, come talk to me again!";
+ close;
+ }
+ }
+ mes "[Party Recruiting Expert]";
+ mes "If you want to learn something from me, talk to the ^006400Siege Master^000000 first.";
+ close;
+
+L_Info:
+ mes "[Party Recruiting Expert]";
+ mes "^006400Party Recruiting^000000 is pretty self explanatory. It helps people find party members and it helps people find parties.";
+ next;
+ mes "[Party Recruiting Expert]";
+ mes "There are 2 parts to Party Recruiting.";
+ mes "1st step is ^0000FFRegistering Party Recruiting^000000,";
+ mes "and the 2nd step is ^0000FFParty Search^000000.";
+ next;
+ mes "[Party Recruiting Expert]";
+ mes "In order to look up Party Recruiting, in the info window on the upper left, click the button that says ^006400booking^000000. Then the ^006400Party Recruiting List^000000 will come up.";
+ next;
+ mes "[Party Recruiting Expert]";
+ mes "^006400Party Recruiting List^000000 window shows you the parties that are looking for members that was listed by other users. You can search through it.";
+ next;
+ mes "[Party Recruiting Expert]";
+ mes "In the case that you don't want to join a party, but you want to recruit for one, type in the ^0000FF/Party Recruit^000000 command then in the ^006400Party Recruiting^000000 window, you can do some recruiting!";
+ next;
+ mes "[Party Recruiting Expert]";
+ mes "Once you register your party recruit notice in the ^006400Party Recruiting^000000 window, the users can search out your ^006400Party Recruiting List^000000";
+ next;
+ mes "[Party Recruiting Expert]";
+ mes "In the ^006400Party Recruiting List^000000 and";
+ mes "^006400Party Recruiting^000000 you can put in basic information of what you're going to be doing, or what you're looking for like ";
+ mes "^006400LEVEL^000000, ^006400MAP^000000, ^006400JOB^000000.";
+ mes "Then the users can search using those parameters and utilizing the ^006400Party Recruitment^000000 system.";
+ next;
+ mes "[Party Recruiting Expert]";
+ mes "If you want to learn more commands about ^006400Party Recruiting^000000, click on the ^006400Help^000000 button on the bottom right of the ^006400Party Recruiting list^000000.";
+ next;
+ return;
+}
+
+moc_para01,12,179,6 script Battleground Master 4_M_KY_HEAD,{
+ set .@checkquest, checkquest(4163);
+ if (.@checkquest == 2) {
+ mes "[Battleground Expert]";
+ mes "Seeing that you sought me out, I guess you want to learn about ^006400Battleground^000000s, eh?";
+ next;
+ switch(select("Learn about Battlegrounds.:End Conversation.")) {
+ case 1:
+ callsub L_Info;
+ mes "[Battleground Expert]";
+ mes "There's nothing better than hearing it straight from the expert! If you want to go over it again, just talk to me.";
+ close;
+ case 2:
+ mes "[Battleground Expert]";
+ mes "If you want to go over anything, let me know.";
+ close;
+ }
+ } else if (.@checkquest == 0 || .@checkquest == 1) {
+ mes "[Battleground Expert]";
+ mes "For 16 years, I experienced the intense heat of battle on the ^006400Battleground^000000s... I am the ^006400Battleground^000000 Expert!";
+ mes "It seems that the ^006400Party Recruiting Expert^000000 sent you to me since you passed his quiz.";
+ next;
+ mes "[Battleground Expert]";
+ mes "You may already know but if you get pass all the quizzes from the Experts, you'll get a prize!";
+ next;
+ mes "[Battleground Expert]";
+ mes "I will tell you about the ^006400Battleground^000000s! I will tell you everything I know! How about it? Wanna hear about it?";
+ next;
+ switch(select("Learn about Battlegrounds.:End Conversation.")) {
+ case 1:
+ callsub L_Info;
+ mes "[Battleground Expert]";
+ mes "There's nothing better than hearing it straight from the expert! Now, do you wanna take my 3-question quiz? You have to answer all 3 correctly to pass!";
+ while(1) {
+ set .@correct,0;
+ next;
+ switch(select("On to the quiz!:Explain again please?:Give up.")) {
+ case 1:
+ switch(rand(1,3)) {
+ case 1:
+ mes "[Battleground Expert]";
+ mes "For starters, you have to pick either the side of [] Camp or [] Camp in order to to participate in Battleground.";
+ mes "What words go in the empty spaces of []?";
+ next;
+ if(select("Guillaume, Tierra:Rachel, KVM:Guillaume, Croix:Maroll, KVM") == 3)
+ set .@correct, .@correct+10;
+ mes "[Battleground Expert]";
+ mes "[] can do either 10vs10 and you have to attack the crystals of the opposing team while protecting yours.";
+ mes "What words go in the empty spaces of []?";
+ next;
+ if(select("Tierra:Flavius:KVM:Maroll") == 2)
+ set .@correct, .@correct+10;
+ mes "[Battleground Expert]";
+ mes "When you complete a battle, you may get a reward! From a KVM battle, you get [].";
+ mes "What words go in the empty spaces of []?";
+ next;
+ if(select("KVM Badge:Valor Badge:Bravery Badge:Honor Badge") == 1)
+ set .@correct, .@correct+10;
+ break;
+ case 2:
+ mes "[Battleground Expert]";
+ mes "For [], it's 10vs10. You also need to attack the enemies supply depot while protecting your own.";
+ mes "What words go in the empty spaces of []?";
+ next;
+ if(select("Maroll:KVM:Flavius:Tierra") == 4)
+ set .@correct, .@correct+10;
+ mes "[Battleground Expert]";
+ mes "In order to get into the battlegrounds, which one is not the recruiter you need to find?";
+ next;
+ if(select("Maroll Mercenary Recruiter:KVM Mercenary Recruiter:Tierra Mercenary Recruiter:Flavius Mercenary Recruiter") == 1)
+ set .@correct, .@correct+10;
+ mes "[Battleground Expert]";
+ mes "You can get [] from participating in the Battlegrounds of Tierra.";
+ mes "What words go in the empty spaces of []?";
+ next;
+ if(select("KVM Badge:Valor Badge:Bravery Badge:Honor Badge") == 2)
+ set .@correct, .@correct+10;
+ break;
+ case 3:
+ mes "[Battleground Expert]";
+ mes "In every major city, you can find [] to enter the Battlegrounds.";
+ mes "What words go in the empty spaces of []?";
+ next;
+ if(select("Maroll Battleground Recruiter:Tierra Battleground Recruiter:Flavius Battleground Recruiter:KVM Battleground Recruiter") == 1)
+ set .@correct, .@correct+10;
+ mes "[Battleground Expert]";
+ mes "For [], you go in 5vs5 with the intention of trying to reduce the number of enemies on the opposite side.";
+ mes "What words go in the empty spaces of []?";
+ next;
+ if(select("Maroll:Flavius:KVM:Tierra") == 3)
+ set .@correct, .@correct+10;
+ mes "[Battleground Expert]";
+ mes "When you complete a battle, you get a prize. The prize from Flavius is called [].";
+ mes "What words go in the empty spaces of []?";
+ next;
+ if(select("KVM Badge:Valor Badge:Bravery Badge:Honor Badge") == 3)
+ set .@correct, .@correct+10;
+ break;
+ }
+ if (.@correct == 30) {
+ mes "[Battleground Expert]";
+ mes "You got all 3 correct! I think you got a pretty good head on your shoulders. You know a thing or two about ^006400Battleground^000000s.";
+ next;
+ mes "[Battleground Expert]";
+ mes "If you ever want to go over anything about ^006400Battleground^000000s, feel free to come talk to me!";
+ next;
+ mes "[Battleground Expert]";
+ mes "Go on and find and talk to the 0000FFMemorial Dungeon Expert^000000!";
+ completequest 4163;
+ setquest 4164;
+ getexp 2000,1000;
+ close;
+ }
+ mes "[Battleground Expert]";
+ mes "There's only 3 questions and you didn't get them all right! At this rate, you'll fail all the Experts' tests.";
+ next;
+ mes "[Battleground Expert]";
+ mes "But if you want to take it on again, you should.";
+ break;
+ case 2:
+ callsub L_Info;
+ mes "[Battleground Expert]";
+ mes "There's nothing better than hearing it straight from the expert! Now, do you wanna take my 3-question quiz? You have to answer all 3 correctly to pass!";
+ break;
+ case 3:
+ mes "[Battleground Expert]";
+ mes "Don't disappoint me by giving up. If you change your mind, come find me again.";
+ close;
+ }
+ }
+ close;
+ case 2:
+ mes "[Battleground Expert]";
+ mes "You're a coward if you give up even before starting. If you change your mind, come find me again.";
+ close;
+ }
+ close;
+ }
+ mes "[Battleground Expert]";
+ mes "If you want to learn something from me, go get acknowledged by the ^006400Party Recruiting Expert^000000 first.";
+ close;
+
+L_Info:
+ mes "[Battleground Expert]";
+ mes "To explain ^006400Battleground^000000 easily...";
+ mes "You pick either Camp ^006400Guillaume^000000 or Camp ^006400Croix^000000 then you fight each other.";
+ next;
+ mes "[Battleground Expert]";
+ mes "There are 3 types of ^006400Battleground^000000s.";
+ mes "First is ^006400KVM^000000. It is a 5vs5 battle with the goal of reducing the number of people on either side.";
+ next;
+ mes "[Battleground Expert]";
+ mes "The second one is 10vs10. You attack the supply depots of your opponents and in turn, you protect your supply depots. This is called ^006400Tierra^000000.";
+ next;
+ mes "[Battleground Expert]";
+ mes "The third and final one is called ^006400Flavius^000000. This one is also 10vs10. For this one, you attack the crystals of your opponents while trying to protect your own.";
+ next;
+ mes "[Battleground Expert]";
+ mes "To get to ^006400Battleground^000000s, find ^006400Maroll, the Recruiter^000000 who can be found in all major towns.";
+ next;
+ mes "[Battleground Expert]";
+ mes "After you enter, pick if you want to side with Guillaume or Croix, then on their side, pick either...";
+ mes "^006400KVM Mercenary Recruiter^000000,";
+ mes "^006400Tierra Mercenary Recruiter^000000, or";
+ mes "^006400Flavius Mercenary Recruiter^000000,";
+ mes "then you can join the ^006400Battleground^000000s.";
+ next;
+ mes "[Battleground Expert]";
+ mes "Depending on the outcome of the ^006400Battleground^000000 you can get a prize too.";
+ mes "You get KVM Badges from ^006400KVM^000000,";
+ mes "from ^006400Tierra^000000 you obtain Bravery Badges and";
+ mes "you receive Valor Badges ^006400Flavius^000000.";
+ next;
+ mes "[Battleground Expert]";
+ mes "With the rewards from ^006400Battleground^000000s, you can get items that you can't normally get elsewhere.";
+ mes "Each ^006400Battleground^000000 reward you can obtain is different so you'll have to check on it.";
+ next;
+ return;
+}
+
+moc_para01,28,167,3 script Memorial Dungeon Expert 4_M_LGTGUARD,{
+ set .@checkquest, checkquest(4164);
+ if (.@checkquest == 2) {
+ mes "[Memorial Dungeon Expert]";
+ mes "Since you've come here, it seems you want to learn about the ^006400Memorial Dungeon^000000.";
+ next;
+ switch(select("Listen about Memorial Dungeon.:End Conversation.")) {
+ case 1:
+ callsub L_Info;
+ mes "[Memorial Dungeon Expert]";
+ mes "Now that you've listend to an expert, it's easy to understand, right? If you want to hear about it again, come find me.";
+ close;
+ case 2:
+ mes "[Memorial Dungeon Expert]";
+ mes " If you want to hear about it again, come find me.";
+ close;
+ }
+ } else if (.@checkquest == 0 || .@checkquest == 1) {
+ mes "[Memorial Dungeon Expert]";
+ mes "I am the ^006400Memorial Dungeon^000000 Expert! I studied the ^006400Memorial Dungeon^000000 for 16 years!";
+ mes "Since you've sought me out, I assume that you've passed the ^006400Battleground Expert^000000's quiz.";
+ next;
+ mes "[Memorial Dungeon Expert]";
+ mes "As you already know, if you pass all the Experts' quiz you'll get a prize.";
+ next;
+ mes "[Memorial Dungeon Expert]";
+ mes "As the 4th Expert, I will explain everything to you about ^006400Memorial Dungeon^000000.";
+ mes "Want to hear about ^006400Memorial Dungeon^000000?";
+ next;
+ switch(select("Listen about Memorial Dungeon.:End Conversation.")) {
+ case 1:
+ callsub L_Info;
+ mes "[Memorial Dungeon Expert]";
+ mes "Now that you've listend to an expert, it's easy to understand, right? If you want to hear about it again, come find me.";
+ mes "Okay, now I'm gonna give you a quiz. You have to get all the questions right to pass. Ready?";
+ while(1) {
+ set .@correct,0;
+ next;
+ switch(select("On to the quiz!:Explain again please?:Give up.")) {
+ case 1:
+ switch(rand(1,3)) {
+ case 1:
+ mes "[Memorial Dungeon Expert]";
+ mes "^006400Memorial Dungeon^000000 isn't a dungeon that is open to all users. It's only available to you and your [].";
+ mes "What words go in the empty spaces of []?";
+ next;
+ if(select("Party Members:Guildmates:Friends:Family") == 1)
+ set .@correct, .@correct+10;
+ mes "[Memorial Dungeon Expert]";
+ mes "If you go to [] and find [], he will give you information about Endless Tower- which is a huge and tall dungeon.";
+ mes "What words go in the empty spaces of []?";
+ next;
+ if(select("Prontera, Seiyablem:Alberta, Leyablem:Alberta, Captain Jansen:Prontera, Captin Jansen") == 3)
+ set .@correct, .@correct+10;
+ mes "[Memorial Dungeon Expert]";
+ mes "In order to enter Memorial Dungeon the [] must apply and then be on stand-by to enter. You will enter in the order the application was put in.";
+ mes "What words go in the empty spaces of []?";
+ next;
+ if(select("Guild Member:Guild Leader:Party Leader:Party Member") == 3)
+ set .@correct, .@correct+10;
+ break;
+ case 2:
+ mes "[Memorial Dungeon Expert]";
+ mes "When you're done with the [], you cannot re-enter the same dungeon for a certain period of time.";
+ mes "What words go in the empty spaces of []?";
+ next;
+ if(select("Buff:Ritual:Exploration:Inspection") == 3)
+ set .@correct, .@correct+10;
+ mes "[Memorial Dungeon Expert]";
+ mes "If you go to the Orc Map where all the orcs live, you will be able to find []. He will probably be able to give you information about the Orc's Memory dungeon.";
+ mes "What words go in the empty spaces of []?";
+ next;
+ if(select("Insane Scientist:Crazy Scientist:Insane Alchemist:Crazy Alchemist") == 1)
+ set .@correct, .@correct+10;
+ mes "[Memorial Dungeon Expert]";
+ mes "In order to enter Memorial Dungeon, the [] must apply- then you'll be able to enter in order of when your application was turned in.";
+ mes "You have to be on stand-by for this.";
+ mes "What words go in the empty spaces of []?";
+ next;
+ if(select("Guild Leader:Guildmate:Party Member:Party Leader") == 4)
+ set .@correct, .@correct+10;
+ break;
+ case 3:
+ mes "[Memorial Dungeon Expert]";
+ mes "If you go to the place where you can become a monk, the Capitolina Monastery, you can meet []. He will tell you about the dungeon with the Sealed Baphomet.";
+ mes "What words go in the empty spaces of []?";
+ next;
+ if(select("Agent Patrick:Patrolman Patrick:Drunken Patrick:Detective Patrick") == 4)
+ set .@correct, .@correct+10;
+ mes "[Memorial Dungeon Expert]";
+ mes "When you're done with the [], you cannot re-enter the same dungeon for a certain period of time.";
+ mes "What words go in the empty spaces of []?";
+ next;
+ if(select("Exploration:Inspection:Buff:Ritual") == 1)
+ set .@correct, .@correct+10;
+ mes "[Memorial Dungeon Expert]";
+ mes "^006400Memorial Dungeon^000000 is not just open to all users. It is open available for you and your [].";
+ mes "What words go in the empty spaces of []?";
+ next;
+ if(select("Friends:Family:Party Members:Guildmates") == 3)
+ set .@correct, .@correct+10;
+ break;
+ }
+ if (.@correct == 30) {
+ mes "[Memorial Dungeon Expert]";
+ mes "You're pretty bright~ seeing that you got all 3 correct. Now do you understand about ^006400Memorial Dungeon^000000?";
+ next;
+ mes "[Memorial Dungeon Expert]";
+ mes "If you ever want to go over things about ^006400Memorial Dungeon^000000, come talk to me any time.";
+ next;
+ mes "[Memorial Dungeon Expert]";
+ mes "Now, off you go to the the ^0000FFMap Expert^000000!";
+ completequest 4164;
+ setquest 4165;
+ getexp 2000,1000;
+ close;
+ }
+ mes "[Memorial Dungeon Expert]";
+ mes "The quiz wasn't that hard...";
+ next;
+ mes "[Memorial Dungeon Expert]";
+ mes "You look like you have potential... you should try again.";
+ break;
+ case 2:
+ callsub L_Info;
+ mes "[Memorial Dungeon Expert]";
+ mes "It's easy to understand since it's coming from an expert like me. Now it's quiz time. You have to get all the answers correct to pass. Are you ready?";
+ break;
+ case 3:
+ mes "[Memorial Dungeon Expert]";
+ mes "Giving up is lame. If you change your mind, come talk to me.";
+ close;
+ }
+ }
+ close;
+ case 2:
+ mes "[Memorial Dungeon Expert]";
+ mes "Giving up without even trying is lame. If you change your mind, come talk to me.";
+ close;
+ }
+ close;
+ }
+ mes "[Memorial Dungeon Expert]";
+ mes "If you want to learn anything from me, talk to the ^006400Battleground Master^000000 first and get acknowledged by him.";
+ close;
+
+L_Info:
+ mes "[Memorial Dungeon Expert]";
+ mes "The ^006400Memorial Dungeon^000000is not a dungeon that is open to everyone. It only opens to ^0000FFYou and your Party Members^000000.";
+ next;
+ mes "[Memorial Dungeon Expert]";
+ mes "Therefore, in order to enter ^006400Memorial Dungeon^000000, the Party Leader must apply to enter. Since you enter in the order you apply, you must be on stand-by to enter.";
+ next;
+ mes "[Memorial Dungeon Expert]";
+ mes "Also, after you explore Memorial Dungeon, you cannot re-enter the same ^006400Memorial Dungeon^000000 for a certain period of time.";
+ next;
+ mes "[Memorial Dungeon Expert]";
+ mes "Many ^006400Memorial Dungeon^000000s exist, but we will give you hints to help you find Memorial Dungeon in the world of Rune Midgard.";
+ next;
+ mes "[Memorial Dungeon Expert]";
+ mes "First, go to ^8B4513Alberta^000000 and find ^006400Captain Jansen^000000.";
+ mes "He will give you information about the really huge and tall dungeon known as ^006400Endless Tower^000000.";
+ next;
+ mes "[Memorial Dungeon Expert]";
+ mes "Second, go to the ^8B4513Orc Map^000000 where all the orcs live and find the ^006400Insane Scientist^000000.";
+ mes "You might be able to get some information about a dungeon that has to do with ^006400Orc's Memory^000000.";
+ next;
+ mes "[Memorial Dungeon Expert]";
+ mes "Third and last, seek out the place where you can become a monk, which is the ^8B4513Capitolina Monastery^000000 and seek out ^006400Detective Patrick^000000.";
+ mes "He will be able to give you information about the dungeon with the ^006400Sealed Baphomet^000000+.";
+ next;
+ mes "[Memorial Dungeon Expert]";
+ mes "Of course there are other locations for Memorial Dungeon but it's best to start where you can find it easily.";
+ mes "As you continue to go on your adventures you will be able to find them more easily.";
+ next;
+ return;
+}
+
+moc_para01,14,168,6 script Map Expert 2_M_SAGE_OLD,{
+ set .@checkquest, checkquest(4165);
+ if (.@checkquest == 2) {
+ mes "[Map Expert]";
+ mes "Seeing that you came to me, I assume you have some questions about ^006400MAP^000000s?";
+ next;
+ switch(select("List about the Map.:End Conversation.")) {
+ case 1:
+ callsub L_Info;
+ mes "[Map Expert]";
+ mes "If you end up in those areas while you're adventuring, be sure to tell me all about it!";
+ mes "And now, since you've passed all the Expert's quizzes, go on and talk to ^006400Tutorial Goal^000000.";
+ close;
+ case 2:
+ mes "[Map Expert]";
+ mes "If you have any more questions, come find me.";
+ close;
+ }
+ } else if (.@checkquest == 0 || .@checkquest == 1) {
+ mes "[Map Expert]";
+ mes "I have been researching and studying ^006400MAP^000000s for 16 years and so now I am the ^006400MAP^000000 Expert!";
+ mes "Since you've sought me out, it seems you've passed ^006400Memorial Dungeon Expert^000000's quiz.";
+ next;
+ mes "[Map Expert]";
+ mes "As you already know, if you pass all the Experts' quiz you'll get a prize.";
+ next;
+ mes "[Map Expert]";
+ mes "As the last Expert, I will try to explain everything about ^006400MAP^000000s to make it easy on you. Ready to start?";
+ next;
+ switch(select("Listen about Maps.:End Conversation.")) {
+ case 1:
+ callsub L_Info;
+ mes "[Map Expert]";
+ mes "How was my explanation? Now I am gonna give you a quick quiz! You have to get all the answers correct in order to pass. Ready?";
+ while(1) {
+ set .@correct,0;
+ next;
+ switch(select("On to the quiz!:Explain again please?:Give up.")) {
+ case 1:
+ switch(rand(1,3)) {
+ case 1:
+ mes "[Map Expert]";
+ mes "You can view the map by clicking on the [] button that is located in the upper left hand side.";
+ mes "What words go in the empty spaces of []?";
+ next;
+ if(select("SKILL:GUILD:MAP:BOOKING") == 3)
+ set .@correct, .@correct+10;
+ mes "[Map Expert]";
+ mes "When looking at the map, each area offers the [] and [] information about the monsters. That will take all the guess work out of where you should hunt.";
+ mes "What words go in the empty spaces of []?";
+ next;
+ if(select("Name, Age:Attributes, Level:Attributes, Tribe:Name, Level") == 4)
+ set .@correct, .@correct+10;
+ mes "[Map Expert]";
+ mes "If you want to stop looking at the map, simple press the shortcut key of [] or ESC and it will close the map for you.";
+ mes "What words go in the empty spaces of []?";
+ next;
+ if(select("ALT + F4:CTRL + %:CTRL + M:ALT + ESC") == 2)
+ set .@correct, .@correct+10;
+ break;
+ case 2:
+ mes "[Map Expert]";
+ mes "After you open your map and you";
+ mes "hover your mouse over specific areas";
+ mes "you can see the [] and [] of the region.";
+ mes "What words go in the empty spaces of []?";
+ next;
+ if(select("Name, Area Details:Name, Monster Attributes:Specialties, Area Details:Specialties, Name") == 1)
+ set .@correct, .@correct+10;
+ mes "[Map Expert]";
+ mes "If you look to the bottom right of the map, you will see a drawing of []. Click on that or press the TAB shortcut key and you can find out various information.";
+ mes "What words go in the empty spaces of []?";
+ next;
+ if(select("Desert Wolf:Mimic:Siroma:Poring") == 4)
+ set .@correct, .@correct+10;
+ mes "[Map Expert]";
+ mes "While looking at the map, when you press the TAB shortcut key, you will be able to find and locate various dungeons and their Entrance Locations.";
+ mes "You can also find the [] of the monsters in that area.";
+ mes "What words go in the empty spaces of []?";
+ next;
+ if(select("Name:Level:Attribute:Size") == 2)
+ set .@correct, .@correct+10;
+ break;
+ case 3:
+ mes "[Map Expert]";
+ mes "If you want to stop looking at the map, all you need to do is press the [] to go back to your normal screen.";
+ mes "What words go in the empty spaces of []?";
+ next;
+ if(select("O:X:EXIT:ALT") == 2)
+ set .@correct, .@correct+10;
+ mes "[Map Expert]";
+ mes "While looking at the map, when you press the TAB shortcut key, you will be able to find and locate various dungeons and their Entrance Locations.";
+ mes "You can also find the [] of the monsters in that area.";
+ mes "What words go in the empty spaces of []?";
+ next;
+ if(select("Level:Name:Size:Attribute") == 1)
+ set .@correct, .@correct+10;
+ mes "[Map Expert]";
+ mes "You can view the map by clicking on the [] button that is located in the upper left hand side.";
+ mes "What words go in the empty spaces of []?";
+ next;
+ if(select("GUILD:SKILL:BOOKING:MAP") == 4)
+ set .@correct, .@correct+10;
+ break;
+ }
+ if (.@correct == 30) {
+ mes "[Map Expert]";
+ mes "Bingo! You got all 3 answers correct! Now, do you feel like you understand stuff about ^006400MAP^000000s more?";
+ next;
+ mes "[Map Expert]";
+ mes "If you ever feel like you want to learn more about ^006400MAP^000000s, come talk to me anytime.";
+ next;
+ mes "[Map Expert]";
+ mes "Congrats on passing all the Experts' quizzes! Now, go find and talk to the ^006400Tutorial Goal^000000!";
+ completequest 4165;
+ setquest 4166;
+ getexp 2000,1000;
+ close;
+ }
+ mes "[Map Expert]";
+ mes "The 3 questions shouldn't have been that hard...";
+ next;
+ mes "[Map Expert]";
+ mes "Well, you seem to be pretty smart so why not try the quiz again?";
+ break;
+ case 2:
+ callsub L_Info;
+ mes "[Map Expert]";
+ mes "How is this Expert's explanations? Now I am gonna give you a quick quiz. You have to get all the answers correct to pass. Want to try it?";
+ break;
+ case 3:
+ mes "[Map Expert]";
+ mes "I'm the last Expert! Dont' give up! Come find me again when you're ready!";
+ close;
+ }
+ }
+ close;
+ case 2:
+ mes "[Map Expert]";
+ mes "You're gonna give up without even trying? But I'm the last Expert! Dont' give up! Come find me again when you're ready!";
+ close;
+ }
+ close;
+ }
+ mes "[Map Expert]";
+ mes "If you want to learn from me, go get acknowledged by the ^006400Memorial Dungeon^000000 first.";
+ close;
+
+L_Info:
+ mes "[Map Expert]";
+ mes "A ^006400MAP^000000 shows you things that is much needed for travelling around the world; such as the lay of the land, major towns and fields and such. It's a very important tool!";
+ next;
+ mes "[Map Expert]";
+ mes "Because of this, it's more important than everything else that you know about ^006400MAP^000000s.";
+ next;
+ mes "[Map Expert]";
+ mes "The map can be accessed by clicking on the button that says ^006400MAP^000000 on the upper left side of your screen.";
+ next;
+ mes "[Map Expert]";
+ mes "When you click on the ^006400MAP^000000 button, a full sized map of Rune Midgards will take up your screen.";
+ mes "When you ^0000FFHover your mouse over specific areas^000000, you can find out more things such as ^006400NAME^000000 and Area Details.";
+ next;
+ mes "[Map Expert]";
+ mes "If you look to the lower right side of your map, there is a ^006400Poring drawing^000000.";
+ mes "If you click on it or press the ^006400TAB^000000 shortcut key, you will be able to various information.";
+ next;
+ mes "[Map Expert]";
+ mes "Firstly, you can find out the ^006400NAME^000000 and ^006400LEVEL^000000 of the monsters in each area. That will take a lot of the guess work out of where you want to go hunt.";
+ next;
+ mes "[Map Expert]";
+ mes "Secondly, You can locate various ^006400DUNGEON^000000s and their";
+ mes "^006400Entrance Location^000000. Plus, it'll also tell you monsters that reside in that area";
+ mes "along with their ^006400LEVEL^000000. It's displayed in red so it's easy to find.";
+ next;
+ mes "[Map Expert]";
+ mes "If you want to stop looking at the map, there are 2 ways to do this.";
+ mes "You can press the shortcut keys which are ^006400CTRL + %^000000 or ^006400ESC^000000";
+ mes "Or at the top right of the map, there is a ^006400X^000000 button. Click that and you will return to your normal game screen.";
+ next;
+ mes "[Map Expert]";
+ mes "Currently, we cannot see places that are beyond Rune Midgards but it has been said that there are a lot of unknown worlds that exist in the beyond.";
+ next;
+ return;
+}
diff --git a/npc/re/quests/first_class/tu_archer.txt b/npc/re/quests/first_class/tu_archer.txt
new file mode 100644
index 000000000..2e8a03180
--- /dev/null
+++ b/npc/re/quests/first_class/tu_archer.txt
@@ -0,0 +1,14 @@
+//===== Hercules Script ======================================
+//= Archer Class Tutorial and Job Specific Quest
+//===== By: ==================================================
+//= Euphy
+//===== Current Version: =====================================
+//= 1.0
+//===== Description: =========================================
+//= [Official Conversion]
+//= Archer training quest.
+//===== Additional Comments: =================================
+//= 1.0 First version. [Euphy]
+//============================================================
+
+pay_fild08,40,83,5 duplicate(Acolyte_Tu) Acolyte#tu 4_F_SISTER
diff --git a/npc/re/quests/homu_s.txt b/npc/re/quests/homu_s.txt
deleted file mode 100644
index 66e2b5c3d..000000000
--- a/npc/re/quests/homu_s.txt
+++ /dev/null
@@ -1,144 +0,0 @@
-//===== Hercules Script ======================================
-//= Homunculus S Quest
-//===== By: ==================================================
-//= Masao
-//===== Current Version: =====================================
-//= 1.1
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
-//= Evolves an Homunculus which is at least Level 99 to the
-//= new Homunculus S Class.
-//===== Additional Comments: =================================
-//= 1.0 First Version. The actual changing dialog is currently
-//= customized. [Masao]
-//= 1.1 Cleaning. [Euphy]
-//============================================================
-
-job3_gen01,12,44,4 script Viorel#job3_gen01 542,{
-
- if((Class != Job_Genetic) && (Class != Job_Genetic_T) && (Class != Job_Baby_Genetic)){
- mes "[Viorel]";
- mes "^FF4800Homunculus^000000 research requires a lot of time and funding.";
- mes "However, I believe passion is the most important factor.";
- next;
- switch(select("End conversation.:What are you talking about?:Why are you always standing there?")) {
- case 1:
- mes "[Viorel]";
- mes "So long~!";
- close;
- case 2:
- mes "[Viorel]";
- mes "You see, ^006400Alchemists^000000 have an inquisitive nature.";
- mes "People like me, especially, even think of creating life itself.";
- next;
- mes "[Viorel]";
- mes "You'd have to research ^FF4800Homunculus^000000 to understand.";
- mes "Now, if you'll excuse me~!";
- close;
- case 3:
- emotion 4,0;
- mes "[Viorel]";
- mes "What, is it so strange to see an Alchemist in their own lab?";
- mes "How so?";
- close;
- }
- }
- mes "[Viorel]";
- mes "Hello "+strcharinfo(0)+",";
- mes "what can I do for a fellow Alchemist like you?";
- next;
- switch(select("I want to evolve my Homunculus:About Homunculus S:Cancel")){
- case 1:
- mes "[Viorel]";
- if(!getskilllv("AM_BIOETHICS")){
- mes "I'm sorry, but you must know the Skill Bioethics! Otherwise I can't let your Homunculus evolve into a Homunculus S.";
- close;
- }
- if(!gethominfo(1)){
- mes "You don't even have a Homunculus!";
- close;
- }
- if(gethominfo(1) < 6009){
- mes "You must have an evolved Homunculus, or you can't turn it into the new Homunculus S.";
- close;
- }
- if(gethominfo(6) < 99){
- mes "Your Homunculus must be level 99 to evolve into a Homuculus S!";
- mes "Come back after you've trained your Homunculus a little bit more.";
- close;
- }
- if(gethominfo(1) == 6048 || gethominfo(1) == 6049 || gethominfo(1) == 6050 || gethominfo(1) == 6051 || gethominfo(1) == 6052){
- mes "Your Homunculus S looks great!";
- mes "I hope you will experience many great adventures with it!";
- close;
- }
- mes "Great, it seems like you're all ready to get your Homunculus to the next level!";
- next;
- mes "[Viorel]";
- mes "Now you can either directly change your Homunculus to a random Homunculus S or you can donate a little fee of 50,000z";
- mes "to the Alchemist Guild. For this you'll be able to change your Homunculus into your desired Homunculus S Class!";
- mes "So, what do you think?";
- next;
- switch(Select("I want to donate.:I don't want to donate.:Cancel")){
- case 1:
- if(Zeny < 50000){
- mes "[Viorel]";
- mes "Haha, nice try my friend! But you don't even have the 50,000z to donate!";
- mes "Come back if you have the Zeny.";
- close;
- }
- mes "[Viorel]";
- mes "Alright, now please tell me which Homunculus you'd like to have:";
- next;
- set .@i, select("Eira:Bayeri:Sera:Dieter:Elanor:Cancel");
- if (.@i == 6) {
- mes "[Viorel]";
- mes "So long~!";
- close;
- }
- case 2:
- mes "[Viorel]";
- mes "Ok, it's all set! Now just give me a moment!";
- next;
- mes "[Viorel]";
- mes "Abra...";
- next;
- mes "[Viorel]";
- mes "Kadabra...";
- next;
- mes "[Viorel]";
- mes "Simsala!";
- mes "...";
- mes "Oh, sorry... wrong game!";
- next;
- mes "[Viorel]";
- mes "Here you go! Your new Homunculus S!";
- if (.@i) {
- hommutate 6047+.@i;
- set Zeny,Zeny - 50000;
- }
- else hommutate;
- close;
- case 3:
- mes "[Viorel]";
- mes "So long~!";
- close;
- }
- case 2:
- mes "[Viorel]";
- mes "The Homunculus S are the new and improved versions of the current Homunculus you know.";
- mes "These new Homunculus have been made because the monsters in our world keep getting stronger and";
- mes "stronger, and our current Homunculus are just not able to keep up with them anymore.";
- next;
- mes "[Viorel]";
- mes "But since we're Alchemists and we don't want to abandon our precious Homunculus, we've discovered a way";
- mes "to improve their skills and strength in order to keep them by our side, and joining us once more";
- mes "in battle! Isn't that great?";
- close;
- case 3:
- mes "[Viorel]";
- mes "So long~!";
- close;
- }
-}
diff --git a/npc/re/quests/homun_s.txt b/npc/re/quests/homun_s.txt
new file mode 100644
index 000000000..d5abca9fd
--- /dev/null
+++ b/npc/re/quests/homun_s.txt
@@ -0,0 +1,1360 @@
+//===== Hercules Script ======================================
+//= Homunculus S Mutation Quest
+//===== By: ==================================================
+//= Euphy
+//===== Current Version: =====================================
+//= 1.2
+//===== Description: =========================================
+//= [Official Conversion]
+//= Genetic quest to mutate a level 99 evolved Homunculus
+//= into a Homunculus S.
+//===== Additional Comments: =================================
+//= 1.0 First Version, entirely custom. [Masao]
+//= 1.1 Cleaning. [Euphy]
+//= 1.2 Replaced with official script. [Euphy]
+//============================================================
+
+// Main NPCs
+//============================================================
+job3_gen01,12,44,3 script Viorel#job3_gen01 4_M_ALCHE_E,{
+ if (countitem(6415)) {
+ if (Class == Job_Genetic || Class == Job_Genetic_T || Class == Job_Baby_Genetic) {
+ disable_items;
+ if (checkquest(4159) == -1 && checkquest(4160) == -1) {
+ mes "[Viorel]";
+ mes "Why are you here?";
+ mes "Shouldn't you be at ^005DFFJeyna^000000's house?";
+ close2;
+ for(set .@i,4154; .@i<=4160; set .@i,.@i+1) {
+ if (checkquest(.@i) > -1)
+ erasequest .@i;
+ }
+ setquest 4154;
+ setquest 4159;
+ morphembryo;
+ if (countitem(6415) == 0)
+ getitem 6415,1; //Strange_Embryo
+ else if (countitem(6415) > 1)
+ delitem 6415, (countitem(6415) - 1); //Strange_Embryo
+ warp "que_house_s",63,41;
+ end;
+ }
+ enable_items;
+ } else if (Class == Job_Novice_High || Class == Job_Merchant_High || Class == Job_Alchemist || Class == Job_Creator) {
+ emotion e_what;
+ mes "[Viorel]";
+ mes "I don't know what's going on, but the way I remember it you were supposed to be qualified to research ^FF4800Homunculus^000000.";
+ next;
+ mes "[Viorel]";
+ mes "Whatever the reason, you're not able to continue the research on ^FF4800Homunculus^000000.";
+ mes "Come back after you become a ^005DFFGenetic^000000 and have obtained a ^0000FFBioethics^000000.";
+ close;
+ } else {
+ delitem 6415, countitem(6415); //Strange_Embryo
+ mes "[Viorel]";
+ mes "Wait, that embryo you have seems a little strange.";
+ next;
+ mes "[Viorel]";
+ mes "Unless you have a job researching ^FF4800Homunculus^000000....";
+ mes "It will be of no help to you what so ever.";
+ next;
+ mes "[Viorel]";
+ mes "I'm in charge of managing ^0000FFStrange Embryo^000000 so I'll take care of that for you.";
+ mes "No offense, and I'm not doing anything bad here.";
+ close;
+ }
+ }
+ if ((Class == Job_Genetic || Class == Job_Genetic_T || Class == Job_Baby_Genetic) && (checkquest(4154) > -1)) {
+ if ((checkquest(4155) > -1) || (checkquest(4160) > -1)) {
+ mes "[Viorel]";
+ mes "Weather's great.";
+ next;
+ callsub L_CheckHomunculus;
+ mes "[Viorel]";
+ mes "Ready to go to my house?";
+ next;
+ switch(select("Go to ^005DFFViorel^000000's house.:Don't go.")) {
+ case 1:
+ mes "[Viorel]";
+ mes "Good choice.";
+ mes "Now, close your eyes for a second...";
+ close2;
+ warp "que_house_s",19,42;
+ end;
+ case 2:
+ mes "[Viorel]";
+ mes "Come back when you're ready.";
+ mes "You must come with the ^FF4800Homunculus^000000.";
+ close;
+ }
+ } else {
+ mes "[Viorel]";
+ mes "Why are you here?";
+ mes "Shouldn't you be at ^005DFFJeyna^000000's house?";
+ next;
+ callsub L_CheckHomunculus;
+ mes "[Viorel]";
+ mes "Now, ready to go to ^005DFFJeyna^000000?";
+ next;
+ switch(select("Go to ^005DFFJeyna^000000's room.:Don't go.")) {
+ case 1:
+ mes "[Viorel]";
+ mes "Good choice.";
+ mes "Now, close your eyes for a second...";
+ close2;
+ warp "que_house_s",63,41;
+ end;
+ case 2:
+ mes "[Viorel]";
+ mes "Come back when you're ready.";
+ mes "You must come with the ^FF4800Homunculus^000000.";
+ close;
+ }
+ }
+ }
+ if (BaseJob == Job_Merchant) {
+ mes "[Viorel]";
+ mes "I used to be a merchant once, just like you.";
+ mes "I'm researching on ^FF4800Homunculus^000000.";
+ next;
+ mes "[Viorel]";
+ mes "If you're interested in ^FF4800Homunculus^000000, become an ^005DFFAlchemist^000000 or a ^005DFFCreator^000000.";
+ close;
+ } else if (BaseJob == Job_Alchemist && Class < Job_Genetic) {
+ mes "[Viorel]";
+ mes "I've spent lots of time and energy on Homunculus.";
+ mes "If you feel like you're at a dead end, come back next time with a ^FF4800Homunculus^000000.";
+ next;
+ mes "[Viorel]";
+ mes "Oh. Of course you need to have the suitable potentials. You could probably prove yourself once you become a ^FF4800Genetic^000000.";
+ close;
+ } else if (Class == Job_Genetic || Class == Job_Genetic_T || Class == Job_Baby_Genetic) {
+ if (gethominfo(6) >= 99 && (gethominfo(1) >= 6009 && gethominfo(1) <= 6016)) { // Level 99+ evolved Homunculus
+ mes "[Viorel]";
+ mes "Oh, great~!";
+ mes "You have a ^FF4800Homunculus^000000.";
+ mes "With passion invested in its research we can make them better.";
+ next;
+ mes "[Viorel]";
+ mes "I must speak to you in private. Would you mind going to my house with me?";
+ next;
+ switch(select("Go to ^005DFFViorel^000000's home.:Stay here.")) {
+ case 1:
+ mes "[Viorel]";
+ mes "Good choice.";
+ mes "Now, close your eyes for a second...";
+ close2;
+ setquest 4154;
+ setquest 4155;
+ warp "que_house_s",19,42;
+ end;
+ case 2:
+ mes "[Viorel]";
+ mes "If you feel like you're at a dead end, come back next time with a ^FF4800Homunculus^000000.";
+ close;
+ }
+ } else if (gethominfo(6) >= 99 && (gethominfo(1) >= 6048 && gethominfo(1) <= 6052)) { // Level 99+ mutated Homunculus-S
+ mes "[Viorel]";
+ mes "Hello again.";
+ mes "Perhaps you may be interested";
+ mes "in the newly created ^FF4800Homunculus^000000,";
+ mes "born from the new ^006400Homunculus Mutation System^000000?";
+ next;
+ switch(select("Nope. Good bye.:Please, I'm busy.:That's exactly what I wanted to hear.:Why are you always standing there?")) {
+ case 1:
+ emotion e_heh;
+ mes "[Viorel]";
+ mes "Okay.";
+ mes "Good seeing you.";
+ mes "Good bye then~!";
+ close;
+ case 2:
+ emotion e_omg;
+ mes "[Viorel]";
+ mes "!!!!";
+ mes "I... I see.";
+ mes "I thought you were here to see me.";
+ close;
+ case 3:
+ emotion e_ic;
+ mes "[Viorel]";
+ mes "Just as I thought.";
+ mes "Let's have a look at the notes my dear friend Jeyna left.";
+ next;
+ playbgm "30.mp3"; // One Step Closer
+ callfunc "F_HomMutateInfo","[Memo Pad Notes]";
+ mes "[Viorel]";
+ mes "Hmm.";
+ mes "Well, that's all there is to it.";
+ mes "It's up to you to find out more.";
+ close2;
+ playbgm "08.mp3"; // Theme of Prontera
+ end;
+ case 4:
+ emotion e_swt;
+ mes "[Viorel]";
+ mes "No, I do not stand here every day.";
+ mes "But why do YOU stand there every day?";
+ next;
+ mes "[Viorel]";
+ mes "What?";
+ mes "No, the way I see it";
+ mes "you seem to be here every time I'm here.";
+ close;
+ }
+ } else {
+ if (gethominfo(1) >= 6009) { // Evolved Homunculus
+ mes "[Viorel]";
+ mes "Hmm, you seem to have a special bond with your ^FF4800Homunculus^000000.";
+ next;
+ mes "[Viorel]";
+ mes "Come back to me when that ^FF4800Homunculus^000000 reaches ^0000FFlevel 99^000000.";
+ close;
+ } else {
+ mes "[Viorel]";
+ mes "You do not yet possess an evolved ^FF4800Homunculus^000000...";
+ mes "As you may well know about evolution:";
+ next;
+ mes "[Viorel]";
+ mes "Using the ^0000FFStone of Sage^000000 when intimacy level is above ^006400Intimate^000000, the ^FF4800Homunculus^000000 goes through ^006400Evolution^000000.";
+ close;
+ }
+ }
+ }
+ mes "[Viorel]";
+ mes "^FF4800Homunculus^000000 research requires a lot of time and funding.";
+ mes "However, I believe passion is the most important factor.";
+ next;
+ switch(select("End conversation.:What are you talking about?:Why are you always standing there?")) {
+ case 1:
+ mes "[Viorel]";
+ mes "So long~!";
+ close;
+ case 2:
+ mes "[Viorel]";
+ mes "You see, ^006400Alchemists^000000 have an inquisitive nature.";
+ mes "People like me, especially, even think of creating life itself.";
+ next;
+ mes "[Viorel]";
+ mes "You'd have to research ^FF4800Homunculus^000000 to understand.";
+ mes "Now, if you'll excuse me~!";
+ close;
+ case 3:
+ emotion e_swt;
+ mes "[Viorel]";
+ mes "What, is it so strange to see an Alchemist in their own lab?";
+ mes "How so?";
+ close;
+ }
+ end;
+L_CheckHomunculus:
+ if (gethominfo(6) < 99 || (gethominfo(1) < 6009 || gethominfo(1) > 6016)) { // Not level 99+ evolved Homunculus
+ mes "[Viorel]";
+ mes "Huh?";
+ mes "Where's the ^FF4800Homunculus^000000 you used to have?";
+ mes "Perhaps I've mistaken it for something else...";
+ next;
+ mes "[Viorel]";
+ mes ".......";
+ mes " ";
+ mes "(Seems to be thinking about something.)";
+ next;
+ emotion e_heh;
+ mes "[Viorel]";
+ mes "Ha ha~";
+ mes "I think I've mistaken you for someone else.";
+ mes "If you'll excuse me.";
+ close;
+ }
+ return;
+}
+
+que_house_s,24,47,3 script Viorel#homun_s 4_M_ALCHE_E,{
+ if (checkquest(4155) > -1) {
+ emotion e_dum;
+ mes "[Viorel]";
+ mes "Good.";
+ mes "I see that you mean business.";
+ next;
+ playbgm "33.mp3"; // Yuna Song
+ mes "[Viorel]";
+ mes "Maybe you'll agree.";
+ mes "Currently, your ^FF4800Homunculus^000000 is not in its perfect state.";
+ next;
+ mes "[Viorel]";
+ mes "These days, studies on the growth of the ^FF4800Homunculus^000000 are actively taking place.";
+ mes "But, I do believe that I have found something special.";
+ next;
+ mes "[Viorel]";
+ mes "In order to break the current limitations of the ^FF4800Homunculus^000000, mutations need to happen.";
+ next;
+ switch(select("Like, biological experiments...?!:Well, yeah, naturally.:I don't want to hurt my Homunculus!")) {
+ case 1:
+ emotion e_swt2;
+ mes "[Viorel]";
+ mes "Don't look so surprised.";
+ mes "Ethics in biology are kind of blurry right now, right?";
+ mes "I mean...";
+ next;
+ mes "[Viorel]";
+ mes "It's my duty to study the true potential of the ^FF4800Homunculus^000000.";
+ next;
+ mes "[Viorel]";
+ mes "So far, Homunculus haven't demonstrated their full potential, but I know that I am close to a breakthrough.";
+ next;
+ break;
+ case 2:
+ emotion e_sigh;
+ mes "[Viorel]";
+ mes "Yes.";
+ mes "I'm glad you're not upset.";
+ mes "Mutation,";
+ mes "a word that sparks evil in the minds of the ordinary,";
+ mes "which made my research very difficult to proceed with.";
+ next;
+ mes "[Viorel]";
+ mes "Do you remember?";
+ mes "^005DFFKellasus^000000 of ^8B4513Lighthalzen^000000, the pioneer of ^FF4800Homunculus^000000 research.";
+ next;
+ mes "[Viorel]";
+ mes "I believe that this research fulfills the promise made with ^005DFFKellasus^000000, the giver of knowledge and belief.";
+ next;
+ break;
+ case 3:
+ emotion e_swt;
+ mes "[Viorel]";
+ mes "I understand your concern.";
+ mes "But I want to assure you that this Mutation does not harm or hurt your ^FF4800Homunculus^000000.";
+ next;
+ mes "[Viorel]";
+ mes "On the contrary, the ^FF4800Homunculus^000000 of today are in pain from imperfection, unable to live up to their supposed potentials.";
+ mes "Moreover, those ^FF4800Homunculus^000000 were often abandoned.";
+ next;
+ mes "[Viorel]";
+ mes "Don't get me wrong, I study the ^FF4800Homunculus^000000 because I love them.";
+ next;
+ break;
+ }
+ mes "[Viorel]";
+ mes "Well, by the way...";
+ mes "I have found this new mutation to be quite stable.";
+ next;
+ mes "[Viorel]";
+ mes "^006400The technology exists,";
+ mes "and they will likely have new";
+ mes "skills when mutated...^000000";
+ next;
+ mes "[Viorel]";
+ mes "The minor side effect...";
+ mes "^006400Their appearance will change^000000.";
+ mes "But I think you'll find that pretty satisfying.";
+ next;
+ mes "[Viorel]";
+ mes "I quote from ^005DFFKassibian^000000, an expert in ^FF4800Homunculus^000000 techniques,";
+ mes "^006400The truth is not in a single form~!^000000";
+ mes "Ha ha.";
+ next;
+ emotion e_flash;
+ mes "[Viorel]";
+ mes "I know it's a little abrupt, but...";
+ mes "How about changing your ^FF4800Homunculus^000000 into something incredible with my marvelous achievement, the ^006400Homunculus Mutation System^000000?";
+ next;
+ switch(select("Explore the ^006400Homunculus Mutation System^000000.:Cancel.")) {
+ case 1:
+ emotion e_no1;
+ mes "[Viorel]";
+ mes "Good choice.";
+ mes "Success lurks outside the box of conventional thinking, right?";
+ next;
+ mes "[Viorel]";
+ mes "The first person to help with the research is ^005DFFJeyna^000000.";
+ mes "I'll send you to ^005DFFJeyna^000000.";
+ mes "There, you'll learn more about the new ^0000FFHomunculus^000000.";
+ close2;
+ setquest 4156;
+ erasequest 4155;
+ warp "que_house_s",63,41;
+ end;
+ case 2:
+ emotion e_dots;
+ mes "[Viorel]";
+ mes "I don't see why you hesitate.";
+ mes "I am not trying to deceive you.";
+ mes "Maybe you need some time to think about it?";
+ next;
+ switch(select("Think about it.:I'm just going to walk away.")) {
+ case 1:
+ mes "[Viorel]";
+ mes "We'll talk in a bit then.";
+ close;
+ case 2:
+ emotion e_otl;
+ mes "[Viorel]";
+ mes "Shame.";
+ mes "However, I respect your opinion.";
+ mes "I'll send you back to the ^8B4513Laboratory^000000.";
+ close2;
+ erasequest 4154;
+ erasequest 4155;
+ warp "job3_gen01",12,47;
+ end;
+ }
+ }
+ } else if (checkquest(4160) > -1) {
+ playbgm "33.mp3"; // Yuna Song
+ mes "[Viorel]";
+ mes "The ^FF4800Homunculus^000000 I saw before has returned to its ^0000FFembryo^000000 state.";
+ mes "A little strange, but...";
+ mes "You don't have to worry about it.";
+ next;
+ mes "[Viorel]";
+ mes "By the way...";
+ mes "I forgot to tell you something.";
+ mes "In order to stabilize the Mutation process, I need some materials first.";
+ next;
+ mes "[Viorel]";
+ mes "Fortunately, you don't have to find them yourself because I have them here already..";
+ mes "But, I'll need ^FF000050,000 zeny^000000, you know, as a service fee.";
+ next;
+ mes "[Viorel]";
+ mes "I wish that I could do it for free but I'm not exactly made of money, you know.";
+ mes "That and I lack any investors to support my research at the moment.";
+ next;
+ mes "[Viorel]";
+ mes "In fact, if I had enough zeny to continue my research, then I could solve a lot of my problems...";
+ next;
+ mes "[Viorel]";
+ mes "Anyways, you can try to do this with or without the stabilization process. It's all up to you.";
+ next;
+ mes "[Viorel]";
+ mes "If you choose the unstable";
+ mes "mutation, I can't guarentee what kind of Homunculus you're going to get.";
+ mes "Anyways, it's up to you.";
+ next;
+ switch(select("Mutation stabilization (50,000 zeny):Unstable mutation")) {
+ case 1:
+ if (Zeny < 50000) {
+ mes "[Viorel]";
+ mes "I don't think you have ^FF000050 thousand Zeny^000000 with you right now.";
+ mes "Please bring enough Zeny.";
+ mes "I'll be waiting.";
+ mes "Want me to send you back to the ^8B4513Laboratory^000000?";
+ next;
+ switch(select("No thanks.:Yes. Send me back to the Lab.")) {
+ case 1:
+ mes "[Viorel]";
+ mes "Alright.";
+ mes "I'll see you in a bit.";
+ close;
+ case 2:
+ mes "[Viorel]";
+ mes "Alright.";
+ mes "I'll be waiting at the ^8B4513Laboratory^000000.";
+ close2;
+ warp "job3_gen01",12,47;
+ end;
+ }
+ }
+ emotion e_no1;
+ playbgm "19.mp3"; // Under the Ground
+ mes "[Viorel]";
+ mes "Good choice.";
+ mes "Choose from the different types of ^0000FFHomunculus^000000.";
+ next;
+ switch(select("Eira:Sera:Dieter:Bayeri:Eleanor")) {
+ case 1:
+ cutin "Mer_Eira_Card",3;
+ set .@Homunculus,6048; //MER_EIRA
+ break;
+ case 2:
+ cutin "Mer_Sera_Card",3;
+ set .@Homunculus,6050; //MER_SERA
+ break;
+ case 3:
+ cutin "Mer_Dieter_Card",3;
+ set .@Homunculus,6051; //MER_DIETER
+ break;
+ case 4:
+ cutin "Mer_Bayeri_Card",3;
+ set .@Homunculus,6049; //MER_BAYERI
+ break;
+ case 5:
+ cutin "Mer_Eleanor_Card",3;
+ set .@Homunculus,6052; //MER_ELEANOR
+ break;
+ }
+ mes "[Viorel]";
+ mes "Are you sure?";
+ next;
+ if(select("Yes.:No.") == 2) {
+ cutin "",255;
+ playbgm "33.mp3"; // Yuna Song
+ mes "[Viorel]";
+ mes "I see.";
+ mes "Give it more time to think.";
+ close;
+ }
+ cutin "",255;
+ mes "[Viorel]";
+ mes "Excellent!";
+ mes "Let's get on with it.";
+ next;
+ specialeffect2 EF_BASH;
+ mes "[Viorel]";
+ mes "Now focus~!";
+ mes "You... need...";
+ mes "... concentration.";
+ next;
+ specialeffect2 EF_PROVIDENCE;
+ mes "[Viorel]";
+ mes "Good. Almost done!";
+ next;
+ specialeffect2 EF_SUI_EXPLOSION;
+ Zeny -= 50000;
+ hommutate .@Homunculus;
+ break;
+ case 2:
+ emotion e_hmm;
+ mes "[Viorel]";
+ mes "So, your choice is the Unstable Mutation Process.";
+ mes "You believe in destiny?";
+ mes "Seriously...";
+ mes "Do you really wish to proceed";
+ mes "with the process of random outcome?";
+ next;
+ if(select("Go ahead. (Random Mutation):Cancel.") == 2) {
+ playbgm "33.mp3"; // Yuna Song
+ mes "[Viorel]";
+ mes "I see.";
+ mes "Give it more time to think.";
+ close;
+ }
+ emotion e_dots;
+ mes "[Viorel]";
+ mes "Hmm...";
+ mes "The exploration of knowledge";
+ mes "is full of surprises.";
+ mes ".......";
+ next;
+ emotion e_heh;
+ mes "[Viorel]";
+ mes "Ha ha.";
+ mes "Hey, I feel like a Blacksmith!";
+ mes "Now let's get on with it.";
+ next;
+ specialeffect2 EF_BASH;
+ mes "[Viorel]";
+ mes "Now focus~!";
+ mes "You... need...";
+ mes "... concentration.";
+ next;
+ specialeffect2 EF_PRESSURE;
+ mes "[Viorel]";
+ mes "Concentrate a little more!";
+ next;
+ specialeffect2 EF_PROVIDENCE;
+ mes "[Viorel]";
+ mes "Good. Almost done!";
+ next;
+ specialeffect2 EF_SUI_EXPLOSION;
+ hommutate;
+ break;
+ }
+ erasequest 4160;
+ erasequest 4154;
+ emotion e_ho;
+ playbgm "64.mp3"; // One Fine Day
+ mes "[Viorel]";
+ mes "Okay, Mutation Complete.";
+ mes "Phew... Didn't skip a heartbeat, did you?";
+ next;
+ mes "[Viorel]";
+ mes "Remember what ^005DFFKellasus^000000 said?";
+ mes "To the doorstep of the truth...";
+ mes "We must see for ourselves";
+ mes "the path that leads to it.";
+ next;
+ mes "[Viorel]";
+ mes "^0000FF" + strcharinfo(0) + "^000000,";
+ mes "I haven't known you";
+ mes "for a very long time,";
+ mes "but I get the feeling that";
+ mes "you'll achieve great things.";
+ next;
+ mes "[Viorel]";
+ mes "Good luck on you adventures.";
+ mes "I hope that your new ^FF4800Homunculus^000000 will excel under your care.";
+ next;
+ mes "[Viorel]";
+ mes "And don't you forget.";
+ mes "Our research";
+ mes "has only just begun~!";
+ close;
+ } else {
+ for(set .@i,4154; .@i<=4160; set .@i,.@i+1) {
+ if (checkquest(.@i) > -1)
+ erasequest .@i;
+ }
+ mes "[Viorel]";
+ mes "Now that all the work is done, I ask you to take your leave.";
+ mes "I need to recuperate.";
+ close2;
+ warp "job3_gen01",12,47;
+ end;
+ }
+}
+
+que_house_s,80,42,3 script Jeyna#homun_s 4_F_ALCHE_A,{
+ if (checkquest(4156) > -1) {
+ playbgm "28.mp3"; // You're in Ruins
+ emotion e_gasp;
+ mes "[Jeyna]";
+ mes "Welcome.";
+ mes "I just got word from ^005DFFViorel^000000 that you were coming.";
+ next;
+ emotion e_hmm;
+ mes "[Jeyna]";
+ mes "By the way...";
+ mes "Did he convince you to do something...?";
+ mes "He does have a way with words.";
+ next;
+ mes "[Jeyna]";
+ mes "He needs them because Alchemists are such awkward people.";
+ emotion e_sigh;
+ next;
+ mes "[Jeyna]";
+ mes "Anyways~";
+ mes "^0000FF"+strcharinfo(0)+"^000000 and ^005DFFViorel^000000 seem like two peas in a pod.";
+ next;
+ emotion e_heh;
+ mes "[Jeyna]";
+ mes "Hahaha~ No offense.";
+ mes "I think it's a good thing.";
+ mes "Oh, yes.";
+ mes "You're here for the ^FF4800Homunculus^000000 Mutation.";
+ next;
+ mes "[Jeyna]";
+ mes "While I do some preparation,";
+ mes "why don't you take a look at that board?";
+ mes "The ^006400Homunculus Mutation System^000000 has ^0000FF5 different types^000000 of new mutations.";
+ next;
+ emotion e_gasp,0,"Magic Board#homun_s";
+ mes "[Jeyna]";
+ mes "Your ^FF4800Homunculus^000000 can mutate into any of the 5 different forms.";
+ next;
+ emotion e_ic;
+ mes "[Jeyna]";
+ mes "Let's see...";
+ mes "The ^006400Homunculus Mutation System^000000 includes new evolutions of the normal ^0000FFHomunculus^000000.";
+ mes "After they mutate, all previously learned skills will also remain.";
+ next;
+ mes "[Jeyna]";
+ mes "In other words...";
+ mes "Even if you change the magic wielder ^FF4800Vanilmirth^000000 to a fighter type,";
+ mes "skills such as Caprice will be";
+ mes "^006400retained and usable even after Mutation^000000.";
+ next;
+ emotion e_gasp,0,"Magic Board#homun_s";
+ mes "[Jeyna]";
+ mes "Take a look at the Magic Board behind me and decide for yourself.";
+ close2;
+ setquest 4157;
+ erasequest 4156;
+ end;
+ } else if (checkquest(4157) > -1) {
+ emotion e_what;
+ mes "[Jeyna]";
+ mes "Take a look at the board behind me, on the right.";
+ close2;
+ emotion e_gasp,0,"Magic Board#homun_s";
+ end;
+ } else if (checkquest(4158) > -1) {
+ playbgm "28.mp3"; // You're in Ruins
+ disable_items;
+ mes "[Jeyna]";
+ mes "Okay, I'm ready too.";
+ mes "In order to revert the process now, I need the Homunculus in its embryo form.";
+ next;
+ callsub L_CheckHomunculus;
+ if (checkweight(6415,1) == 0) {
+ mes "[Jeyna]";
+ mes "But,";
+ mes "You don't have enough space to carry an ^0000FFembryo^000000.";
+ mes "Please come back with enough space in your bag.";
+ next;
+ mes "[Jeyna]";
+ mes "Please return to the ^8B4513Laboratory^000000.";
+ mes "You can find ^005DFFViorel^000000 at the ^8B4513Laboratory^000000 once you empty your bag.";
+ next;
+ mes "[Jeyna]";
+ mes "When you're done with emptying your bag, ask ^005DFFViorel^000000 to send you back here.";
+ mes "Go on and empty your bag~!";
+ close2;
+ warp "job3_gen01",12,47;
+ end;
+ }
+ mes "[Jeyna]";
+ mes "Now's about time for a decision.";
+ mes "To go through the Mutation to the new ^0000FFHomunculus^000000 with the Homunculus Mutation System,";
+ mes "you need to go through the process of regression to turn the Homunculus back to its ^0000FFembryo^000000 state.";
+ next;
+ mes "[Jeyna]";
+ mes "And...";
+ mes "^006400You cannot use the ability Call Homunculus until the process is complete.^000000";
+ mes "It won't take long, so don't wander off.";
+ next;
+ mes "[Jeyna]";
+ mes "So, please decide.";
+ mes "Do you want to proceed with the new ^0000FFHomunculus Mutation System^000000?";
+ next;
+ switch(select("Yes, I do.:I need to think more.")) {
+ case 1:
+ if (checkhomcall() == 1) {
+ mes "[Jeyna]";
+ mes "Oh, wait a minute.";
+ mes "To proceed with the Mutation, you need to wake up the Homunculus from the state of Vaporization.";
+ next;
+ mes "[Jeyna]";
+ mes "Come back after you've done that.";
+ close;
+ }
+ emotion e_no1;
+ mes "[Jeyna]";
+ mes "Good thinking.";
+ mes "It is unacceptable for Alchemists like us to fear challenge.";
+ next;
+ playbgm "01.mp3"; // Title
+ mes "[Jeyna]";
+ mes "Now I need you to focus.";
+ next;
+ specialeffect2 EF_ABSORBSPIRITS;
+ mes "[Jeyna]";
+ mes "We need to...";
+ mes "Stabilize a little more.";
+ mes ".......";
+ next;
+ specialeffect2 EF_CURE;
+ mes "[Jeyna]";
+ mes "In a few moments, the ^FF4800Homunculus^000000 will return to its embryo state.";
+ next;
+ specialeffect2 EF_HOLYHIT;
+ mes "[Jeyna]";
+ mes "Into a special embryo...";
+ next;
+ callsub L_CheckHomunculus;
+ specialeffect2 EF_BLESSING;
+ morphembryo;
+ setquest 4159;
+ erasequest 4158;
+ emotion e_ho;
+ mes "[Jeyna]";
+ mes "Phew~ All done.";
+ mes "Hmm, its state is a little strange.";
+ next;
+ emotion e_heh;
+ mes "[Jeyna]";
+ mes "I guess it'll be just fine.";
+ mes "Don't lose that ^0000FFStrange Embryo^000000.";
+ mes "Also...";
+ next;
+ mes "[Jeyna]";
+ mes "Don't do anything like changing jobs or anything like that before the process is over.";
+ mes "If so, you, ^0000FF"+strcharinfo(0)+"^000000 might lose all the abilities you have over the Homunculus.";
+ next;
+ mes "[Jeyna]";
+ mes "All that concentration made me tired.";
+ mes "I'll just take a glass of water.";
+ close;
+ case 2:
+ playbgm "28.mp3"; // You're in Ruins
+ emotion e_sigh;
+ mes "[Jeyna]";
+ mes "Maybe I shouldn't have asked in the first place.";
+ close;
+ }
+ } else if (checkquest(4159) > -1 || checkquest(4160) > -1) {
+ playbgm "28.mp3"; // You're in Ruins
+ mes "[Jeyna]";
+ mes "^005DFFViorel^000000 will finish the mutation process.";
+ mes "Now it's my time to say good bye.";
+ next;
+ mes "[Jeyna]";
+ mes "It was short, but it was nice to meet you.";
+ mes "We'll see each other again some time.";
+ next;
+ mes "[Jeyna]";
+ mes "Best of luck~!";
+ close2;
+ setquest 4160;
+ erasequest 4159;
+ warp "que_house_s",19,42;
+ end;
+ } else {
+ if (checkquest(4154) > -1)
+ erasequest 4154;
+ mes "[Jeyna]";
+ mes "Hey, how did you get in here?";
+ mes "Please get out. I'm changing~!";
+ close2;
+ warp "job3_gen01",12,47;
+ end;
+ }
+ end;
+L_CheckHomunculus:
+ if (gethominfo(6) < 99 || (gethominfo(1) < 6009 || gethominfo(1) > 6016)) { // Not level 99+ evolved Homunculus
+ mes "[Jeyna]";
+ mes "Hey, wait.";
+ mes "The condition of the ^FF4800Homunculus^000000 is not suitable.";
+ mes "That was close.";
+ next;
+ mes "[Jeyna]";
+ mes "To use the Homunculus Mutation System";
+ mes "to change to the new";
+ mes "^FF4800Homunculus^000000,";
+ mes "the ^006400Homunculus must be above level 99 and evolved^000000.";
+ next;
+ mes "[Jeyna]";
+ mes "Come back to ^005DFFViorel^000000 when you're ready.";
+ mes "I'll see you later then~!";
+ close2;
+ erasequest 4154;
+ erasequest 4158;
+ warp "job3_gen01",12,47;
+ end;
+ }
+ return;
+}
+
+// Magic Board
+//============================================================
+que_house_s,83,47,3 script Magic Board#homun_s 4_BOARD3,{
+ playbgm "26.mp3"; // Everlasting Wanderers
+ callfunc "F_HomMutateInfo","[Magic Board Posts]";
+ mes "[Magic Board Posts]";
+ mes ":: ^0000FFHomunculus^000000 research is";
+ mes ":: so much fun.";
+ mes ":: Be an Alchemist";
+ mes ":: who always enjoys";
+ mes ":: one's research.";
+ next;
+ mes "[Magic Board Posts]";
+ mes ":: Oh, and Viorel...";
+ mes ":: About what you said";
+ mes ":: yesterday...";
+ mes "::";
+ mes "::";
+ next;
+ mes "--------------------------";
+ mes "The rest is sealed because it seems to be a private message.";
+ close2;
+ if (checkquest(4157) > -1) {
+ setquest 4158;
+ erasequest 4157;
+ }
+ end;
+}
+
+function script F_HomMutateInfo {
+ mes getarg(0);
+ mes ":: The ability of the mutated";
+ mes ":: ^0000FFHomunculus^000000 clearly goes";
+ mes ":: beyond the previous state.";
+ mes ":: In addition, its appearance";
+ mes ":: will evolve as well.";
+ next;
+ mes getarg(0);
+ mes ":: ^0000FFHomunculus^000000 appearances of the";
+ mes ":: new types can be classified";
+ mes ":: based on different species.";
+ mes ":: Creatures of the same species";
+ mes ":: generally have a similar";
+ mes ":: appearance.";
+ next;
+ mes getarg(0);
+ mes ":: The category, appearance and";
+ mes ":: ability of the ^0000FFHomunculus^000000";
+ mes ":: via the Homunculus Mutation";
+ mes ":: System are as follows:";
+ next;
+ cutin "Mer_Eira_Card",3;
+ mes getarg(0);
+ mes ":: The first of the five";
+ mes ":: is called ^FF4800Eira^000000.";
+ mes ":: Beautiful and graceful.";
+ next;
+ mes getarg(0);
+ mes ":: ^FF4800Eira^000000 uses";
+ mes ":: ^006400Wind Element^000000 Magic Attacks and";
+ mes ":: Support Skills.";
+ mes ":: It even has the ability";
+ mes ":: to revive its";
+ mes ":: fallen master.";
+ next;
+ mes getarg(0);
+ mes ":: ^FF4800Eira^000000 eats";
+ mes ":: ^0000FFSmall Snow Flower^000000.";
+ mes ":: Surprising how it survives on";
+ mes ":: such a small amount.";
+ mes ":: ^0000FFSmall Snow Flower^000000 can be bought";
+ mes ":: from ^005DFFTaming Merchants^000000.";
+ next;
+ cutin "",255;
+ cutin "Mer_Sera_Card",3;
+ mes getarg(0);
+ mes ":: The second of the five";
+ mes ":: is known as ^FF4800Sera^000000.";
+ mes ":: It looks just like ^FF0000Mistress^000000 but";
+ mes ":: it doesn't run away.";
+ next;
+ mes getarg(0);
+ mes ":: ^FF4800Sera^000000";
+ mes ":: specializes in ^006400Poison Attacks^000000.";
+ mes ":: Also, it uses distinct";
+ mes ":: Support Skills using poisons.";
+ next;
+ mes getarg(0);
+ mes ":: ^FF4800Sera^000000 eats";
+ mes ":: ^0000FFApple Pudding^000000.";
+ mes ":: It prefers sweet food.";
+ mes ":: ^0000FFApple Pudding^000000 can be bought";
+ mes ":: from ^005DFFTaming Merchants^000000.";
+ next;
+ cutin "",255;
+ cutin "Mer_Dieter_Card",3;
+ mes getarg(0);
+ mes ":: The third of the five";
+ mes ":: is ^FF4800Dieter^000000.";
+ mes ":: It looks unusual but it";
+ mes ":: has a good demeanor.";
+ next;
+ mes getarg(0);
+ mes ":: ^FF4800Dieter^000000 uses";
+ mes ":: ^FF0000Fire^000000 based Attacks and";
+ mes ":: Support Skills.";
+ mes ":: It is just as fragile...";
+ mes ":: ah, reliable, as it looks.";
+ next;
+ mes getarg(0);
+ mes ":: ^FF4800Dieter^000000 eats";
+ mes ":: ^0000FFBig Cell^000000.";
+ mes ":: ^0000FFBig Cell^000000 can be bought";
+ mes ":: from ^005DFFTaming Merchants^000000.";
+ next;
+ cutin "",255;
+ cutin "Mer_Bayeri_Card",3;
+ mes getarg(0);
+ mes ":: The fourth of the five";
+ mes ":: is ^FF4800Bayeri^000000.";
+ mes ":: Bayeri has the form of a";
+ mes ":: unicorn.";
+ next;
+ mes getarg(0);
+ mes ":: It has a powerful dash skill";
+ mes ":: and uses ^006400Holy Element^000000 magic.";
+ mes ":: Unfortunately,";
+ mes ":: they won't let you ride them.";
+ mes ":: Not all four-legged creatures";
+ mes ":: can be ridden.";
+ next;
+ mes getarg(0);
+ mes ":: ^FF4800Bayeri^000000 eats";
+ mes ":: ^0000FFFresh Plant^000000.";
+ mes ":: No matter how hungry it";
+ mes ":: never feeds on rotten greens.";
+ mes ":: ^0000FFFresh Plant^000000 can be bought";
+ mes ":: from ^005DFFTaming Merchants^000000.";
+ next;
+ cutin "",255;
+ cutin "Mer_Eleanor_Card",3;
+ mes getarg(0);
+ mes ":: The last of the five";
+ mes ":: is ^FF4800Eleanor^000000.";
+ mes ":: It has a feminine appearance";
+ mes ":: and outstanding physical skill.";
+ next;
+ mes getarg(0);
+ mes ":: ^FF4800Eleanor^000000";
+ mes ":: uses ^006400Strike or Grapple Attacks^000000";
+ mes ":: sequentially in battle.";
+ mes ":: Absolutely stunning.";
+ next;
+ mes getarg(0);
+ mes ":: ^FF4800Eleanor^000000 eats";
+ mes ":: ^0000FFKid's Dumpling^000000.";
+ mes ":: Don't confuse it with a normal";
+ mes ":: dumpling.";
+ mes ":: ^0000FFKid's Dumpling^000000 can be bought";
+ mes ":: from ^005DFFTaming Merchants^000000.";
+ next;
+ cutin "",255;
+ return;
+}
+
+// Books
+//============================================================
+que_house_s,13,52,3 script Open Book#01homun_s HIDDEN_NPC,{
+ switch(rand(1,7)) {
+ case 1:
+ mes "[Bookcase Notes]";
+ mes "Insanity and Genius are the same in concept in that they are both abnormal phenomenon.";
+ mes "Observing the chemist ^005DFFMorgenstein^000000 of ^8B4513Geffen^000000, I consider them equal.";
+ next;
+ mes "[Bookcase Notes]";
+ mes "Once I had to visit...";
+ mes "the strange ^005DFFMorgenstein^000000 for research purposes.";
+ next;
+ mes "[Bookcase Notes]";
+ mes "I had a meat stew before I met ^005DFFMorgenstein^000000,";
+ mes "surprisingly enough, he muttered that he smelled meat even before I was close.";
+ next;
+ mes "[Bookcase Notes]";
+ mes "I never thought that chemists had a great sense of smell.";
+ mes "The next time I give";
+ mes "^005DFFMorgenstein^000000 a visit,";
+ mes "I'll eat some other meal.";
+ close;
+ case 2:
+ mes "[Bookcase Notes]";
+ mes "^005DFFDe Bris^000000 thinks the enthusiasm of Alchemists has lately dropped <Dramatically>...";
+ next;
+ mes "[Bookcase Notes]";
+ mes "He especially didn't like the fact that I was bound tightly to ^FF4800Homunculus^000000 research.";
+ mes "He didn't say such a thing when we studied together in ^8B4513Rune Midgarts^000000.";
+ next;
+ mes "[Bookcase Notes]";
+ mes "One day, I'll show ^005DFFDe Bris^000000 my ^FF4800Homunculus^000000 research data.";
+ mes "I love watching him jump out of his skin.... I look forward to the day.";
+ close;
+ case 3:
+ mes "[Bookcase Notes]";
+ mes "^005DFFDe Bris^000000' passion for the ^57007FGenetic^000000 arts is amazing.";
+ next;
+ mes "[Bookcase Notes]";
+ mes "Recently, the Alchemist Union offered me the chance to join the ^57007FGenetic^000000 through a letter.";
+ mes "I wonder what ^005DFFDe Bris^000000 said to the union...";
+ next;
+ mes "[Bookcase Notes]";
+ mes "Well, I appreciate it...";
+ mes "However, for me right now";
+ mes "my research is of utmost priority.";
+ close;
+ case 4:
+ mes "[Bookcase Notes]";
+ mes "There's something funny ^005DFFDarcia^000000 said to me.";
+ mes "It was about when ^005DFFJeyna^000000 first came to learn about potion combination......";
+ next;
+ mes "[Bookcase Notes]";
+ mes "She did good up to the stage of pouring water into the mixture.";
+ mes "She just had to put it into an empty bottle...";
+ next;
+ mes "[Bookcase Notes]";
+ mes "^005DFFDarcia^000000 watched what she would do with the last stage,";
+ mes "and the confused ^005DFFJeyna^000000 drank the mixture out of the bowl and told her that it healed well.";
+ next;
+ mes "[Bookcase Notes]";
+ mes "To think that even ^005DFFJeyna^000000,";
+ mes "now a master of potion combination,";
+ mes "had her rookie mistakes";
+ mes "shows how hard it is to imagine";
+ mes "and forecast one's past and future.";
+ close;
+ case 5:
+ mes "[Bookcase Notes]";
+ mes "^005DFFVincent^000000, I think I did it.";
+ mes "I will never forget your words of courage ";
+ mes "and I am grateful that I now get to pay you back.";
+ next;
+ mes "[Bookcase Notes]";
+ mes "It was indeed a long process.";
+ mes "When many of the union";
+ mes "considered my research insignificant";
+ mes "... Though I did not lose my belief";
+ mes "it did heart deep inside.";
+ next;
+ mes "[Bookcase Notes]";
+ mes "The few friends who believed me";
+ mes "especially ^005DFFJeyna^000000";
+ mes "and you ^005DFFVincent^000000 ...";
+ mes "I am sincerely thankful with all my soul.";
+ next;
+ mes "[Bookcase Notes]";
+ mes "They say that,";
+ mes "the end justifies the means.";
+ mes "At first,";
+ mes "I did not know what it meant...";
+ next;
+ mes "[Bookcase Notes]";
+ mes "Now I know.";
+ mes "I know how important it is";
+ mes "to follow one's heart.";
+ next;
+ mes "[Bookcase Notes]";
+ mes "I'll drop by very soon.";
+ mes "Be well until then.";
+ close;
+ case 6:
+ mes "[Bookcase Notes]";
+ mes "A game called ^0000FFThe Epic Battle 2^000000, similar to chess, was intriguing.";
+ next;
+ mes "[Bookcase Notes]";
+ mes "Some time ago, I met a ^0000FFFruit Seller^000000 who excelled in The Epic Battle 2.";
+ mes "He even overcame the infamous ^006400Grizzly Shockwave Strategy^000000 and ^006400God of Death Terror^000000 with ease.";
+ next;
+ mes "[Bookcase Notes]";
+ mes "To overcome those in the early stages of the battle of the ^0000FFPriest Faction^000000...";
+ mes "It is difficult for me, since I need to combine the pieces and use some luring skills.";
+ next;
+ mes "[Bookcase Notes]";
+ mes "I wonder when I'll become a 3 Carat Diamond level player.";
+ close;
+ case 7:
+ mes "[Bookcase Notes]";
+ mes "There are many Alchemists who like the ^FF4800Vanilmirth^000000.";
+ next;
+ mes "[Bookcase Notes]";
+ mes "But I prefer the ^FF4800Amistr^000000.";
+ mes "It's cute when it wags its tale with those shiny eyes.";
+ next;
+ mes "[Bookcase Notes]";
+ mes "My Amistr Jonathan is clever and mellow, making it ever so lovable.";
+ mes "We're good friends, aren't we Jonathan?";
+ close;
+ }
+}
+
+que_house_s,16,52,3 script Open Book#02homun_s HIDDEN_NPC,{
+ switch(rand(1,8)) {
+ case 1:
+ mes "[Bookcase Notes]";
+ mes "What should I write to ^005DFFDe Bris^000000.";
+ mes ":: To my noted ";
+ mes ":: Genetic friend De Bris.";
+ mes ":: How's Lighthalzen?";
+ mes ":: Do they have enough of those";
+ mes ":: cookies you oh so love?";
+ next;
+ mes "[Bookcase Notes]";
+ mes ":: I'll drop by soon";
+ mes ":: with some cookies.";
+ mes ":: When we meet,";
+ mes ":: I'll introduce you to my";
+ mes ":: ^006400New Homunculus^000000.";
+ next;
+ mes "[Bookcase Notes]";
+ mes ":: No need to be alert.";
+ mes ":: Unlike you,";
+ mes ":: they aren't interested in ";
+ mes ":: what others have to eat.";
+ mes ":: I'll see you soon~!";
+ mes ":: Dare close the door on me.";
+ close;
+ case 2:
+ mes "[Bookcase Notes]";
+ mes "The last time I visited the Alchemist Union, there was an interesting debate on the table.";
+ mes "I think it was something to do with ^006400Negligence of Homunculus in public places^000000.";
+ next;
+ mes "[Bookcase Notes]";
+ mes "While the master dozed off,";
+ mes "one of the ^FF4800Homunculus^000000 off its leash";
+ mes "caused some sort of problem.";
+ next;
+ mes "[Bookcase Notes]";
+ mes "I will make sure that my Homunculus Jonathan...";
+ mes "is trained well not to cause trouble around other people.";
+ close;
+ case 3:
+ mes "[Bookcase Notes]";
+ mes "There's a new toy me and ^005DFFJeyna^000000 have grown fond of.";
+ mes "It's relatively new,";
+ mes "called... ^0000FF'Helo'^000000, I think?";
+ next;
+ mes "[Bookcase Notes]";
+ mes "There was a related song to it, sung by some ^57007FMinstrel^000000.";
+ mes "The lyrics were something like ^006400'Ahhh~Ahh~Ahhhhhhhh'^000000.";
+ next;
+ mes "[Bookcase Notes]";
+ mes "The entertainment itself is fun,";
+ mes "but the music is also excellent,";
+ mes "and when I listen to it";
+ mes "it feels like my SP is restored significantly.";
+ next;
+ mes "[Bookcase Notes]";
+ mes "I must say,";
+ mes "entertainment is crucial when resting";
+ mes "to boost morale for research.";
+ mes "^006400For Homunculus~!^000000";
+ close;
+ case 4:
+ mes "[Bookcase Notes]";
+ mes "From what I heard from the union member";
+ mes "^005DFFParmy^000000,";
+ mes "^005DFFRaspuchin^000000 is still his own weird self.";
+ next;
+ mes "[Bookcase Notes]";
+ mes "It may not be such a good idea";
+ mes "to drive those energetic souls";
+ mes "coming to change jobs";
+ mes "with such enthusiasm.";
+ close;
+ case 5:
+ mes "[Bookcase Notes]";
+ mes "A friend of mine who was into painting,";
+ mes "suggested making a <Graphic Novel> called";
+ mes "^0000FFMUTATIONER^000000";
+ mes "after he heard about my research";
+ mes "and my works.";
+ next;
+ mes "[Bookcase Notes]";
+ mes "The story begins...";
+ mes "With an alien";
+ mes "^FF4800Homunculus^000000";
+ mes "visiting our world.";
+ next;
+ mes "[Bookcase Notes]";
+ mes "The visiting alien";
+ mes "^FF4800Homunculus^000000 can survive";
+ mes "without a master";
+ mes "and it could change into";
+ mes "various creatures that";
+ mes "roam our world.";
+ next;
+ mes "[Bookcase Notes]";
+ mes "These alien^FF4800Homunculus^000000";
+ mes "have two opposing factions";
+ mes "divided by political differences.";
+ mes "In our world, we call them";
+ mes "^006400Aut-homun^000000 and ";
+ mes "^006400Decept-homun^000000";
+ next;
+ mes "[Bookcase Notes]";
+ mes "The ^006400Aut-homun^000000 are our friends.";
+ mes "Their leader,";
+ mes "called ^005DFFOptimus Poring^000000,";
+ mes "is built and so cool";
+ mes "for a poring,";
+ mes "and it summons a cart at will!";
+ next;
+ mes "[Bookcase Notes]";
+ mes "The opposing side, the ^006400Decept-homun^000000,";
+ mes "is led by ^005DFFMegatroll^000000";
+ mes "and they use all means ";
+ mes "to destroy our world.";
+ next;
+ mes "[Bookcase Notes]";
+ mes "The hero of this story";
+ mes "is one from ^8B4513Alberta^000000 called ^005DFFJam Wicky^000000,";
+ mes "who meets ^005DFFOptimus Poring^000000";
+ mes "while shopping for a cart,";
+ mes "as if it was his destiny.";
+ next;
+ mes "[Bookcase Notes]";
+ mes "And so thus";
+ mes "unfolds an epic battle";
+ mes "in the ^8B4513Moroc Desert^000000";
+ mes "where the fate of our world";
+ mes "lies in his hands...";
+ next;
+ mes "[Bookcase Notes]";
+ mes "Enough of that~!";
+ mes "The rest of the story can be";
+ mes "checked in the published copy.";
+ mes "^0000FFMUTATIONER^000000";
+ mes "It's going to be awesome~!";
+ close;
+ case 6:
+ mes "[Bookcase Notes]";
+ mes "The Union sent a special gift to its members.";
+ mes "It's called a ^0000FFHigh Clip 4^000000.";
+ next;
+ mes "[Bookcase Notes]";
+ mes "It is originally used as a tool to allow easy whispering between members, but it also has other useful functions.";
+ next;
+ mes "[Bookcase Notes]";
+ mes "A guild invented this. I recall that their emblem had an image of an apple.";
+ close;
+ case 7:
+ mes "[Bookcase Notes]";
+ mes "Homunculus is indeed worthy.";
+ mes "However, like everyone else, I sometimes question its meaning and future.";
+ next;
+ mes "[Bookcase Notes]";
+ mes "I believe that life given by nature was supposed to be used for oneself.";
+ mes "However...";
+ next;
+ mes "[Bookcase Notes]";
+ mes "The research to give the Homunculus life is, in reality, for the benefit of man.";
+ mes "Perhaps mankind is not ready ethically to create life.";
+ close;
+ case 8:
+ mes "[Bookcase Notes]";
+ mes "Some time ago, ^005DFFJeyna^000000 introduced me to someone.";
+ mes "She is from ^8B4513Geffen^000000,";
+ mes "and she introduced herself as a ^005DFFChicken Researcher^000000.";
+ next;
+ mes "[Bookcase Notes]";
+ mes "She is an expert on something called the ^006400Legendary Bijofnil^000000.";
+ mes "She finds it offensive that people think that the Bijofnil is a hawk.";
+ next;
+ mes "[Bookcase Notes]";
+ mes "She said something about somewhere in ^8B4513Hvergilmir's Fountain^000000";
+ mes "there exists a ^005DFFtalking chicken^000000 and other stories...";
+ mes "Well, it went on like that";
+ mes "and it was interesting.";
+ close;
+ }
+}
+
+// Notifiers
+//============================================================
+que_house_s,11,52,3 script #03homun_s HIDDEN_NPC,{
+ end;
+OnInit:
+ initnpctimer;
+ end;
+OnTimer6000:
+ emotion e_gasp;
+ end;
+OnTimer7000:
+ emotion e_gasp,0,"#04homun_s";
+ stopnpctimer;
+ initnpctimer;
+ end;
+}
+
+que_house_s,14,52,3 script #04homun_s HIDDEN_NPC,{
+ end;
+}
+
+// Researcher's Pet
+//============================================================
+que_house_s,24,46,3 script Jonathan#homun_s MER_AMISTR,{
+ end;
+}
+
+que_house_s,23,46,3 script #05homun_s HIDDEN_NPC,{
+ emotion e_no,0,"Jonathan#homun_s";
+ if (gethominfo(1) < 6048 || gethominfo(1) > 6052) { // Not mutated Homunculus-S
+ mes "[Jonathan]";
+ mes "Hwang~ Hwang!";
+ next;
+ mes ":: It seems to be Viorel's";
+ mes ":: Homunculus.";
+ mes ":: It is wearing a small necklace";
+ mes ":: with the name Jonathan engraved";
+ mes ":: on it.";
+ close;
+ } else {
+ mes "[Jonathan]";
+ mes "Hwang~?!";
+ next;
+ emotion e_swt2,0,"Jonathan#homun_s";
+ mes "[Jonathan]";
+ mes "*Sniff* ...";
+ next;
+ mes ":: This Amistr";
+ mes ":: called Jonathan";
+ mes ":: seems to be surprised by my";
+ mes ":: new Homunculus.";
+ close;
+ }
+}
diff --git a/npc/re/quests/magic_books.txt b/npc/re/quests/magic_books.txt
index 9f9ccec1f..0fd885d8f 100644
--- a/npc/re/quests/magic_books.txt
+++ b/npc/re/quests/magic_books.txt
@@ -1,21 +1,20 @@
//===== Hercules Script ======================================
//= Magic Book Seller
-//===== By: ==================================================
+//===== By: ==================================================
//= Masao
//= Credits to Muad_Dib for the translation.
-//===== Current Version: =====================================
-//= 1.1
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Current Version: =====================================
+//= 1.1a
+//===== Description: =========================================
+//= [Official Conversion]
//= An NPC which sells you different kinds of Magic Books.
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First Version. [Masao]
-//= 1.1 Optimized, 60% size reduction. [Euphy]
-//============================================================
-
-geffen_in,176,105,4 script Magic Book Master Velof 64,{
+//= 1.1 Optimized. [Euphy]
+//= 1.1a Updated NPC name to "Master Velofos". [Euphy]
+//============================================================
+geffen_in,176,105,4 script Master Velofos 1_M_WIZARD,{
if (checkweight(1201,1) == 0) {
mes "You're carrying too many items. Please make some room in your bag first.";
close;
@@ -25,255 +24,251 @@ geffen_in,176,105,4 script Magic Book Master Velof 64,{
close;
}
if ((Upper == 2) && (Class != Job_Baby_Warlock)) {
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "What are you, a baby?";
mes "I'm not here to babysit. Get lost!";
close;
}
if ((Class != Job_Warlock) && (Class != Job_Warlock_T) && (Class != Job_Baby_Warlock)) {
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "Ha ha, are you also seeking new knowledge?";
next;
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "I'm sorry, but my knowledge doesn't concern you.";
close;
}
if (getskilllv(2230) < 1) {
- mes "[Magic Book Master Velof]";
- mes "Well you've met all the qualifications except one: you need the Release spell.";
+ mes "[Master Velofos]";
+ mes "Well, you've met all the qualifications except one: you need the Release spell.";
next;
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "Learn the spell first. I've got so many things to tell you.";
close;
}
if ((getskilllv(2230) > 0) && (Class == Job_Warlock) || (Class == Job_Warlock_T) || (Class == Job_Baby_Warlock)) {
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "Welcome, my friend.";
mes "Congratulations on entering a brand new world of magic.";
next;
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "We magic practitioners are always thirsty for new knowledge and power.";
next;
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "We endure great hardship and pain to achieve what we want. When we finally do, the sense of accomplishment defies description. That's why both you and I have chosen the way of magic.";
next;
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "By the way, what brings you to me today?";
next;
switch (select("Nothing.:Do you know the Reading Spell Book?:What's the Freezing Spell?:Can I have a Magic Book?:Can I use the Reading Spell Book without the Freezing Spell?:About the Ultimate Magic Book")) {
case 1:
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "Hah! You're silly.";
close;
case 2:
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "Reading Spell Book literally means 'read a spell book.' Do you know how to use Magic Books?";
next;
switch (select("Yes, I do.:No, I don't.")) {
case 1:
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "Well then, you don't need an additional lecture.";
close;
case 2:
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "Magic Books are an advanced type of magic scroll. While spells on scrolls disappear after one use, the ones in Magic Books can be cast multiple times.";
next;
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "Let's compare a spell on a scroll to a wire. When the wire is used to open a door or do something else, it's bent and crushed, losing its original shape. A spell from a Magic Book is more like a shape memory alloy.";
next;
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "Huh, don't you now what shape memory alloy is? Eh, just remember this: a wire made from shape memory alloy restores its shape over time.";
next;
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "Like the alloy, a spell on a Magic Book remains after a use, although reusing the spell has a downtime for its restoration.";
next;
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "...Oh, I didn't mean to talk for too long. Anyways, you can use Magic Books to cast spells that you've learned. Its concept is different from normal spells.";
next;
select("What's the difference?");
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "Why do you have to write your existing spells in Magic Books, you asked?";
next;
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "That's a good question. It's related to Magic Binding.";
next;
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "You already learned Release, which allows you to hold the energy of the four different elements before the actual casting. Magic Binding is similar to Release.";
next;
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "Since you've learned Release, you're capable of using Magic Binding as well. Well, let's talk about that later.";
next;
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "You know how to hold an existing spell, and then cast it at a desired timing via Release.";
next;
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "Carrying the globes of the four elements is also related to Magic Binding.";
next;
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "As you know, the four elements are Fire, Water, Wind, and Earth. Being able to employ them freely is the essential principle of magic.";
next;
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "We Humans use torches to keep fire, fans to blow wind, and bowls to hold water. We also use clay to make earthenware.";
next;
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "Those activities may differ from magic, but both are the same in the sense of employing the four elements.";
next;
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "When you use complex magic spells to summon a storm, drop lightning, or burn an area, that consumes a lot of your energy, both physically and mentally.";
next;
- mes "[Magic Book Master Velof]";
- mes "When you fail to bind such powerful magic spells or fail to control them,";
- next;
- mes "[Magic Book Master Velof]";
- mes "you can receive irreparable damage to your mind and body.";
+ mes "[Master Velofos]";
+ mes "When you fail to bind such powerful magic spells or fail to control them, you can receive irreparable damage to your mind and body.";
next;
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "That's why we use Magic Books to reduce that burden. It helps summon pre-cast spells while you're focusing on binding their magic power.";
next;
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "There's one downside though: Magic Books cannot be used for spells that you haven't learned.";
next;
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "As I said earlier, spells in Magic Books tend to go back to what they are.";
next;
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "That said, as a Circler, you cannot change or create spells in Magic Books.";
next;
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "Even if you create one, its power will be beyond your capacity.";
next;
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "In order to use the Reading Spell Book, you must learn the Freezing Spell to bind magic.";
close;
}
case 3:
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "The Freezing Spell is used for Magic Binding. It helps you to insert a magic spell to a circle.";
next;
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "Circles of magic work organically with each other. When you use the Freezing Spell to bind a spell, the spell won't activate until you cast the release spell.";
next;
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "Of course, binding a spell continuously consumes your mana, but it consumes less mana than conventional magic spells.";
next;
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "Magic Binding becomes more difficult when you use more powerful magic spells.";
next;
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "For weak spells, you can bind two to three of them with your circle. For more powerful spells, maybe one or two is possible.";
next;
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "That all depends on your ability to control your spells. You'll have to try and experience Magic Binding after you first learn it to really understand.";
close;
case 4:
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "I'm sorry, but I only have Magic Books for beginners, but they're obviously not suitable for you. Do you still want one?";
next;
switch (select("Sure thing.:Where can I find advanced books?")) {
case 1:
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "Please go talk to [Lea] in the Archive. Tell her that you need one of the Magic Books that I've stored in there.";
next;
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "For your information, she won't give it to you without anything in return. Expect her to ask you for something!";
if (wm_book < 1) set wm_book, 1;
close;
case 2:
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "I'm sorry, but our management has recently decided to limit the availability of Magic Books for Multi Circlers. It's because their numbers are increasing more quickly than we expected.";
next;
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "You could find one if you try hard, but I don't have any with me.";
next;
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "If our management releases the restriction, you'll be the first one to know. Don't worry.";
close;
}
case 5:
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "Nothing will happen when you try to bind magic without using Magic Binding because you have nothing to hold magic.";
next;
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "It's like water that needs a bowl to stay in place.";
next;
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "The problem is when you try to forcefully cast a spell that you haven't learned. It'll definately backfire on you.";
next;
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "Of course, the damage won't be severe: you'll fall asleep or be thrown into confusion. This is all because there's a conflict between your Magic Book and the force of Magic Binding when you're trying to summon and hold a unlearned spell.";
next;
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "Don't try it out just to see what happens for yourself! Falling asleep while casting a spell? There's nothing more humiliating than that to magic practitioners like us.";
close;
case 6:
if ((BaseLevel > 139) && (getskilllv(2217) > 0) || (getskilllv(2213) > 0)) {
- if(mac_book < 1){
- mes "[Magic Book Master Velof]";
+ if (mac_book < 1) {
+ mes "[Master Velofos]";
mes "I'm sorry, but could you ask someone else? I'm kind of busy right now.";
close;
}
if (mac_book == 1) {
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "Huh, are you looking for the Ultimate Magic Book? Who sent you?";
next;
select("Ms. Lea.");
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "I'm sorry, but there's not much information left about the Ultimate Magic Book.";
next;
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "A few scholars in the Midgard Continent once tried to collect ancient Magic Books and reproduce that book, but...";
next;
select("But what?");
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "Oh yes, perhaps he might know something.";
next;
select("Yes, I knew this was coming!");
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "My brother is just like you. He's very interested in recreating the Ultimate Magic Book.";
next;
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "His name is Galfos.";
mes "He's been taking a great interest in the ancient Magic Books.";
next;
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "I didn't support him or give him any advice for his research since I thought he'd give on it pretty quickly, but...";
next;
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "If he's discovered anything useful, maybe it can helpful to you.";
next;
select("Where's Galfos now?");
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "I've heard that he's near the Expedition Camp beyond the Dimensional Rift to seek information about the ancient Magic Books.";
next;
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "If you want to see him, you should prepare for a long journey.";
set mac_book,2;
close;
}
if (mac_book > 1) {
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "Galfos is near the Expedition Camp beyond the Dimensional Rift.";
next;
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "If you want to see him, you should prepare for a long journey.";
close;
}
}
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "Ha ha, I'm sorry, but you should focus on strengthening your body rather than creating Magic Books.";
close;
}
}
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "Ha ha, are you also seeking new knowledge?";
next;
- mes "[Magic Book Master Velof]";
+ mes "[Master Velofos]";
mes "I'm sorry, but my knowledge doesn't concern you.";
close;
}
-geffen_in,175,112,4 script Lea 123,{
-
+geffen_in,175,112,4 script Lea 2_F_MAGICMASTER,{
if (checkweight(1201,1) == 0) {
mes "You're carrying too many items. Please make some room in your bag first.";
close;
@@ -282,14 +277,14 @@ geffen_in,175,112,4 script Lea 123,{
mes "You're overweight with items. Please lose some item weight first.";
close;
}
- if ((wm_book > 0) && (Class == Job_Warlock) || (Class == Job_Warlock_T) || (Class == Job_Baby_Warlock)) {
+ if (wm_book > 0 && (Class == Job_Warlock || Class == Job_Warlock_T || Class == Job_Baby_Warlock)) {
mes "[Lea]";
mes "You can only read books here. If you'd like to borrow any books, please receive an approval from 1 manager and 1 High Mage.";
next;
mes "[Lea]";
mes "How may I help you?";
next;
- select("Master Velof asked me to bring his Magic Book.");
+ select("Master Velofos asked me to bring his Magic Book.");
mes "[Lea]";
mes "Are you borrowing a book?";
next;
@@ -339,7 +334,7 @@ geffen_in,175,112,4 script Lea 123,{
next;
mes "[Lea]";
mes "Please try not to lose or damage the book to avoid paying any extra charges.";
- if (.@Payment == 1) set Zeny, Zeny - 10000;
+ if (.@Payment == 1) Zeny -= 10000;
else if (.@Payment == 2) delitem 1006,2; //Old_Magic_Book
else delitem 1097,50; //Worn_Out_Page
getitem 6188+.@i,1; //Magic_Book_FB, Magic_Book_CB, Magic_Book_LB
@@ -384,7 +379,7 @@ geffen_in,175,112,4 script Lea 123,{
next;
mes "[Lea]";
mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books.";
- if (.@Payment == 1) set Zeny, Zeny - 50000;
+ if (.@Payment == 1) Zeny -= 50000;
else if (.@Payment == 2) delitem 603,2; //Old_Blue_Box
else delitem 985,9; //Elunium
getitem .@Books[.@i-1],1; //Magic_Book_SG, Magic_Book_LOV, Magic_Book_MS, Magic_Book_TS, Magic_Book_JT, Magic_Book_WB, Magic_Book_HD, Magic_Book_ES
@@ -456,11 +451,11 @@ geffen_in,175,112,4 script Lea 123,{
next;
mes "[Lea]";
mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books.";
- if (.@Payment == 1) set Zeny, Zeny - 200000;
+ if (.@Payment == 1) Zeny -= 200000;
else if (.@Payment == 2) delitem 7094,12; //Mystery_Piece
else if (.@Payment == 3) delitem 984,7; //Oridecon
else delitem 617,1; //Old_Violet_Box
- if (.@Payment > 1) set Zeny, Zeny - 100000;
+ if (.@Payment > 1) Zeny -= 100000;
getitem 6201+.@i,1; //Magic_Book_ES_, Magic_Book_CL, Magic_Book_CR, Magic_Book_DL
close;
}
@@ -481,7 +476,7 @@ geffen_in,175,112,4 script Lea 123,{
mes "Frankly, I've never even seen the Ultimate Magic Book.";
next;
mes "[Lea]";
- mes "You should ask Master Velof if you want to know more about that book.";
+ mes "You should ask Master Velofos if you want to know more about that book.";
next;
mes "[Lea]";
mes "I'm sorry that I can't help you more than that.";
@@ -490,7 +485,7 @@ geffen_in,175,112,4 script Lea 123,{
}
if ((BaseLevel > 139) && (mac_book > 0) && ((getskilllv(2217) > 0) || (getskilllv(2213) > 0))) {
mes "[Lea]";
- mes "You should ask Master Velof for some information about that book.";
+ mes "You should ask Master Velofos for some information about that book.";
close;
}
mes "[Lea]";
@@ -509,8 +504,7 @@ geffen_in,175,112,4 script Lea 123,{
close;
}
-mid_camp,255,244,4 script Galfos 735,{
-
+mid_camp,255,244,4 script Galfos 4_M_JOB_WIZARD,{
if (checkweight(1201,1) == 0) {
mes "You're carrying too many items. Please make some room in your bag first.";
close;
@@ -519,7 +513,7 @@ mid_camp,255,244,4 script Galfos 735,{
mes "You're overweight with items. Please lose some item weight first.";
close;
}
- if (Upper == 2) {
+ if ((Upper == 2) && (Class != Job_Baby_Warlock)) {
mes "[Galfos]";
mes "What are you, a baby?";
mes "I'm not here to babysit. Get lost!";
@@ -535,7 +529,7 @@ mid_camp,255,244,4 script Galfos 735,{
mes "Ah, I'll get myself in trouble if I stay here any longer. Maybe I'm already in...";
close;
}
- if ((BaseLevel < 140) || (getskilllv(2217) < 1) && (getskilllv(2213) < 1)) {
+ if (BaseLevel < 140 || (getskilllv(2217) < 1 && getskilllv(2213) < 1)) {
mes "[Galfos]";
mes "I'm sorry, but I don't talk to people that aren't even ready for this.";
close;
@@ -556,7 +550,7 @@ mid_camp,255,244,4 script Galfos 735,{
next;
select("You're Velof's brother, right?");
mes "[Galfos]";
- mes "Yes, I'm Galfos, and Velof is my brother.";
+ mes "Yes, I'm Galfos, and Velofos is my brother.";
next;
mes "[Galfos]";
mes "Wait a minute,";
@@ -653,7 +647,7 @@ mid_camp,255,244,4 script Galfos 735,{
specialeffect2 EF_DISPELL;
progressbar "ffff00",4;
specialeffect2 EF_LORD;
- set Zeny, Zeny - 1000000;
+ Zeny -= 1000000;
getitem 6194+.@i,1; //Magic_Book_CM, Magic_Book_TV
mes "[Galfos]";
mes "Man, I almost lost my control to the incredible magic energy! Here's your Magic Book.";
@@ -673,8 +667,7 @@ mid_camp,255,244,4 script Galfos 735,{
close;
}
-dic_in01,25,190,0 script Mysterious Documents 844,{
-
+dic_in01,25,190,0 script Mysterious Documents CLEAR_NPC,{
if (isequipped(2782) < 1) {
mes "I better not forget to equip my ring.";
close;
@@ -837,9 +830,8 @@ function script Magic_Book_Essence {
mes "Someone already used this area.";
close;
}
-
-thor_v02,163,104,0 script Powerful Lava Energy#33 844,{ callfunc "Magic_Book_Essence",12218,7097,40,"Lava"; end; }
-thor_v01,185,91,0 script Powerful Flame Energy#33 844,{ callfunc "Magic_Book_Essence",12219,7098,10,"Flame"; end; }
-ice_dun03,137,148,0 script Powerful Glacier Energy 844,{ callfunc "Magic_Book_Essence",12220,7561,10,"Glacier"; end; }
-ein_dun02,181,124,0 script Powerful Fossil Energy 844,{ callfunc "Magic_Book_Essence",12221,7312,10,"Fossil"; end; }
-gon_dun02,252,198,0 script Powerful Storm Energy#33 844,{ callfunc "Magic_Book_Essence",12222,7266,10,"Storm"; end; }
+thor_v02,163,104,0 script Powerful Lava Energy#33 CLEAR_NPC,{ callfunc "Magic_Book_Essence",12218,7097,40,"Lava"; end; }
+thor_v01,185,91,0 script Powerful Flame Energy#33 CLEAR_NPC,{ callfunc "Magic_Book_Essence",12219,7098,10,"Flame"; end; }
+ice_dun03,137,148,0 script Powerful Glacier Energy CLEAR_NPC,{ callfunc "Magic_Book_Essence",12220,7561,10,"Glacier"; end; }
+ein_dun02,181,124,0 script Powerful Fossil Energy CLEAR_NPC,{ callfunc "Magic_Book_Essence",12221,7312,10,"Fossil"; end; }
+gon_dun02,252,198,0 script Powerful Storm Energy#33 CLEAR_NPC,{ callfunc "Magic_Book_Essence",12222,7266,10,"Storm"; end; }
diff --git a/npc/re/quests/monstertamers.txt b/npc/re/quests/monstertamers.txt
index cc95d3749..4eef32878 100644
--- a/npc/re/quests/monstertamers.txt
+++ b/npc/re/quests/monstertamers.txt
@@ -1,15 +1,13 @@
//===== Hercules Script =======================================
//= Monster Tamers
//===== By: ==================================================
-//= Streusel
+//= Euphy
//===== Current Version: =====================================
//= 1.0
-//===== Compatible With: =====================================
-//= Hercules
//===== Description: =========================================
//= Cute pet quest items
//===== Additional Comments: =================================
-//= 1.0 Duplicates for Monster Tamer
+//= 1.0 Moved Izlude NPC to pre-re/re paths.
//============================================================
-izlude_in,55,105,4 duplicate(Monster_Tamer#izu) Monster Tamer#izlude 125 \ No newline at end of file
+izlude_in,55,105,4 duplicate(MonsterTamer_izlude) Monster Tamer#izu 4_M_TELEPORTER
diff --git a/npc/re/quests/mrsmile.txt b/npc/re/quests/mrsmile.txt
index 029633437..4e728bffa 100644
--- a/npc/re/quests/mrsmile.txt
+++ b/npc/re/quests/mrsmile.txt
@@ -1,16 +1,19 @@
//===== Hercules Script ======================================
//= Mr. Smile Quest
-//===== By: ==================================================
+//===== By: ==================================================
//= Daegaladh, Masao
-//===== Current Version: =====================================
-//= 1.0
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
-//= [Aegis Conversion]
+//===== Current Version: =====================================
+//= 1.1
+//===== Description: =========================================
+//= [Official Conversion]
//= Trade Clover, Fluff and Jellopy for a Mr. Smile mask.
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 Updated to match the new Izlude Map. [Masao]
-//============================================================
+//= 1.1 Added Izlude duplicates. [Euphy]
+//============================================================
-izlude,125,175,4 duplicate(SmileHelper) Smile Assistance#iz 92
+izlude,125,175,4 duplicate(SmileHelper) Smile Assistance#iz 4_F_03
+izlude_a,125,175,4 duplicate(SmileHelper) Smile Assistance#iz_a 4_F_03
+izlude_b,125,175,4 duplicate(SmileHelper) Smile Assistance#iz_b 4_F_03
+izlude_c,125,175,4 duplicate(SmileHelper) Smile Assistance#iz_c 4_F_03
+izlude_d,125,175,4 duplicate(SmileHelper) Smile Assistance#iz_d 4_F_03
diff --git a/npc/re/quests/pile_bunker.txt b/npc/re/quests/pile_bunker.txt
index c2c979430..dbce8d136 100644
--- a/npc/re/quests/pile_bunker.txt
+++ b/npc/re/quests/pile_bunker.txt
@@ -1,18 +1,27 @@
//===== Hercules Script ======================================
//= Pile Bunker Quest
-//===== By: ==================================================
+//===== By: ==================================================
//= JayPee Mateo
-//===== Current Version: =====================================
-//= 2.1
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Current Version: =====================================
+//= 2.2
+//===== Description: =========================================
//= 1.0 A Pile Bunker quest based on iRO WiKi. [JayPee Mateo]
//= 2.0 Rewrited the Script a little so it looks a bit better. [Masao]
//= 2.1 Switched to official script, coded by Gennosuke Kouga. [Euphy]
-//============================================================
+//= 2.2 Updated to match the official script. [Euphy]
+//============================================================
-yuno,179,174,4 script Gomer 851,{
+yuno,179,174,4 script Gomer 4_M_REPAIR,{
+ if (checkweight(1201,1) == 0 || MaxWeight - Weight < 1000) {
+ mes "[Gomer]";
+ mes "You are carrying so much. Drop off some of your luggage and come back to me.";
+ close;
+ }
+ if (countitem(1549)) {
+ mes "[Gomer]";
+ mes "So how's that Pilebuncker working out for you?";
+ close;
+ }
if (Class != Job_Mechanic && Class != Job_Mechanic_T && Class != Job_Baby_Mechanic) {
mes "[Gomer]";
mes "I'm a retired Mechanic and I don't think I have any business with you.";
@@ -73,11 +82,7 @@ yuno,179,174,4 script Gomer 851,{
mes "Lastly, finding a Brocca is very hard, but you should be able to do something about it. Haha, go get it!";
close;
case 4:
- if (countitem(1549)) {
- mes "[Gomer]";
- mes "So how's that Pile Bunker working out for you?";
- close;
- } else if (countitem(1415) < 1 || countitem(999) < 200 || countitem(7325) < 30) {
+ if (countitem(999) < 200 || countitem(7325) < 30 || countitem(1415) < 1) {
mes "[Gomer]";
mes "You haven't brought all of the materials that I asked for.";
next;
@@ -88,7 +93,7 @@ yuno,179,174,4 script Gomer 851,{
} else {
mes "[Gomer]";
mes "Oh, I've been waiting. You didn't come on time, so I was wondering if you forgot about it. Please wait there a little bit.";
- specialeffect 101;
+ specialeffect EF_REPAIRWEAPON;
next;
mes "[Gomer]";
mes "It's done. What do you think? Not bad, eh? Although I made it myself, I have to say it's pretty decently done.";
@@ -104,11 +109,11 @@ yuno,179,174,4 script Gomer 851,{
next;
mes "[Gomer]";
mes "Oh, and it turns out that I didn't need all that Steel after all. So here, take most of it back.";
- delitem 999,50; // Steel
- delitem 7325,30; // Flexible Tube
- delitem 1415,1; // Brocca
- getitem 1549,1; // Pile Bunker
- getitem 1360,1; // Two-handed Axe [1]
+ delitem 999,50; //Steel
+ delitem 7325,30; //Tube
+ delitem 1415,1; //Skewer
+ getitem 1549,1; //Pilebuncker
+ getitem 1360,1; //Two_Handed_Axe
close;
}
}
diff --git a/npc/re/quests/quests_13_1.txt b/npc/re/quests/quests_13_1.txt
index 107b7c029..ec208ad97 100644
--- a/npc/re/quests/quests_13_1.txt
+++ b/npc/re/quests/quests_13_1.txt
@@ -1,17 +1,18 @@
//===== Hercules Script ======================================
//= Quest NPCs related to Ash-Vacuum
//===== By: ==================================================
-//= Streusel
+//= Euphy
//===== Current Version: =====================================
-//= 1.0
+//= 1.1
//===== Description: =========================================
-//= [Official Conversion]
-//= Contains:
-//= Promotional Staff Duplicate for Renewal
+//= Contains duplicate NPCs from main script.
//===== Additional Comments: =================================
-//= 1.0 First Version.
+//= 1.0 Moved Izlude NPC to pre-re/re paths. [Euphy]
+//= 1.1 Added Izlude duplicates. [Euphy]
//============================================================
-// Onward to the New World
-//============================================================
-izlude,102,171,6 duplicate(Promotional Staff#iz) Promotional Staff#izlude 100 \ No newline at end of file
+izlude,102,171,6 duplicate(PromotionalStaff_izlude) Promotional Staff#iz 4W_SAILOR
+izlude_a,102,171,6 duplicate(PromotionalStaff_izlude) Promotional Staff#iz_a 4W_SAILOR
+izlude_b,102,171,6 duplicate(PromotionalStaff_izlude) Promotional Staff#iz_b 4W_SAILOR
+izlude_c,102,171,6 duplicate(PromotionalStaff_izlude) Promotional Staff#iz_c 4W_SAILOR
+izlude_d,102,171,6 duplicate(PromotionalStaff_izlude) Promotional Staff#iz_d 4W_SAILOR
diff --git a/npc/re/quests/quests_brasilis.txt b/npc/re/quests/quests_brasilis.txt
index e9256047f..33758fe9a 100644
--- a/npc/re/quests/quests_brasilis.txt
+++ b/npc/re/quests/quests_brasilis.txt
@@ -1,13 +1,11 @@
//===== Hercules Script ======================================
-//= Brasilis Qiests
+//= Brasilis Quests
//===== By ===================================================
//= L0ne_W0lf
//===== Version ==============================================
-//= 1.2
-//===== Compatible With ======================================
-//= Hercules
+//= 1.2c
//===== Description ==========================================
-//= [Translated from the Official]
+//= [Official Conversion]
//= Lost Puppies (Repeatable, 24 hours.)
//= Suspicious Beach (Repeatable, 24 hours. iRO/cRO version.)
//= Guarana Candy Quest
@@ -18,11 +16,15 @@
//= 1.0 First version.
//= 1.1 Hydra Ball (12408)
//= 1.2 Optimization. [Euphy]
+//= 1.2a Added 'consumeitem' command. [Euphy]
+//= 1.2b Updated RE EXP. [Michieru]
+//= 1.2c Put end; before OnTouch events in npcs that
+//= have view id of a mob [Panikon]
//============================================================
-// Lost Puppies, Original file: dogdog.sc
+// Lost Puppies :: dogdog.sc
//============================================================
-brasilis,297,307,5 script Angelo#br 50,{
+brasilis,297,307,5 script Angelo#br 1_M_04,{
if (BaseLevel < 40) {
mes "[Angelo]";
mes "Pets went out the village~!!";
@@ -49,11 +51,12 @@ brasilis,297,307,5 script Angelo#br 50,{
mes "Oh, thank you. You found all of 3 puppies.";
mes "Thanks a lot.";
mes "I hope this is useful to you. hoho.";
- getexp 50000,0;
+ set .@randexp,rand(50000,112500);
+ getexp .@randexp,0;
erasequest 9031;
setquest 9032;
specialeffect2 EF_ASSUMPTIO;
- percentheal 100,100;
+ consumeitem 607; //Yggdrasilberry
set .@rand,rand(1,10);
if (.@rand > 4 && .@rand < 9) getitem 504,2; //White_Potion
else if (.@rand > 8) getitem 608,1; //Seed_Of_Yggdrasil
@@ -129,22 +132,22 @@ OnDisable:
end;
}
-bra_fild01,98,96,3 duplicate(Puppy#bra) Puppy#a1 81
-bra_fild01,59,116,5 duplicate(Puppy#bra) Puppy#a2 81
-bra_fild01,62,142,3 duplicate(Puppy#bra) Puppy#a3 81
-bra_fild01,80,163,3 duplicate(Puppy#bra) Puppy#b1 81
-bra_fild01,73,210,3 duplicate(Puppy#bra) Puppy#b2 81
-bra_fild01,80,210,3 duplicate(Puppy#bra) Puppy#b3 81
-bra_fild01,38,235,3 duplicate(Puppy#bra) Puppy#c1 81
-bra_fild01,307,64,3 duplicate(Puppy#bra) Puppy#c2 81
-bra_fild01,260,60,3 duplicate(Puppy#bra) Puppy#c3 81
-bra_fild01,234,101,3 duplicate(Puppy#bra) Puppy#d1 81
-bra_fild01,200,84,3 duplicate(Puppy#bra) Puppy#d2 81
-bra_fild01,176,63,5 duplicate(Puppy#bra) Puppy#d3 81
+bra_fild01,98,96,3 duplicate(Puppy#bra) Puppy#a1 4_DOG01
+bra_fild01,59,116,5 duplicate(Puppy#bra) Puppy#a2 4_DOG01
+bra_fild01,62,142,3 duplicate(Puppy#bra) Puppy#a3 4_DOG01
+bra_fild01,80,163,3 duplicate(Puppy#bra) Puppy#b1 4_DOG01
+bra_fild01,73,210,3 duplicate(Puppy#bra) Puppy#b2 4_DOG01
+bra_fild01,80,210,3 duplicate(Puppy#bra) Puppy#b3 4_DOG01
+bra_fild01,38,235,3 duplicate(Puppy#bra) Puppy#c1 4_DOG01
+bra_fild01,307,64,3 duplicate(Puppy#bra) Puppy#c2 4_DOG01
+bra_fild01,260,60,3 duplicate(Puppy#bra) Puppy#c3 4_DOG01
+bra_fild01,234,101,3 duplicate(Puppy#bra) Puppy#d1 4_DOG01
+bra_fild01,200,84,3 duplicate(Puppy#bra) Puppy#d2 4_DOG01
+bra_fild01,176,63,5 duplicate(Puppy#bra) Puppy#d3 4_DOG01
-// Suspicious Beach, original file: Suspicious_Beach.sc
+// Suspicious Beach :: Suspicious_Beach.sc
//============================================================
-brasilis,192,133,6 script Lucia#brasilis 478,{
+brasilis,192,133,6 script Lucia#brasilis 4_F_BRZ_WOMAN,{
/* -------------- Hydra Ball -------------------------
if (countitem(12408) > 0) {
delitem 12408,1; //Leaf_Cat_Ball
@@ -168,7 +171,7 @@ brasilis,192,133,6 script Lucia#brasilis 478,{
else {
set .@nQState1,checkquest(9028);
set .@nQState2,checkquest(9029);
- if (.@nQState1 == 0) {
+ if (.@nQState1 == -1) {
mes "[Lucia]";
mes "Hello.";
mes "Have you come here to hunt ^FF0000Strange Hydra^000000s?";
@@ -226,10 +229,10 @@ brasilis,192,133,6 script Lucia#brasilis 478,{
//recall_completequest 9029;
if (.@nQState2 > -1) erasequest 9029;
setquest 9029;
- percentheal 100,100;
- sc_start SC_FOOD_LUK, 1200000, 5; percentheal 5,2;
- sc_start SC_FOOD_VIT, 1200000, 5; percentheal 10,0;
- sc_start SC_FOOD_DEX, 1200000, 5; percentheal 5,5;
+ consumeitem 607; //Yggdrasilberry
+ consumeitem 12070; //Luk_Dish05
+ consumeitem 12055; //Vit_Dish05
+ consumeitem 12065; //Dex_Dish05
getitem 11502,3; //Light_Blue_Pot
close;
}
@@ -354,9 +357,9 @@ OnTimer7000:
end;
}
-// Guarana Quest, Original file: brazil_tre.sc
+// Guarana Quest :: brazil_tre.sc
//============================================================
-brasilis,187,162,5 script Candy Maker 476,{
+brasilis,187,162,5 script Candy Maker 4_M_BRZ_MAN1,{
if (!checkweight(1201,1)) {
mes "- You can't start the quest. Please reduce the weight in your inventory. -";
close;
@@ -450,7 +453,7 @@ brasilis,187,162,5 script Candy Maker 476,{
set brazil_gua,11;
completequest 2200;
getitem 12414,1; //Guarana_Candy
- getexp 700000,100000;
+ getexp 70000,10000;
close;
}
else if (brazil_gua == 11) {
@@ -470,7 +473,7 @@ brasilis,187,162,5 script Candy Maker 476,{
if (Zeny > 3999) {
mes "[Candy Maker]";
mes "Here is a delicious guarana candy.";
- set zeny,zeny-4000;
+ Zeny -= 4000;
getitem 12414,1; //Guarana_Candy
close;
}
@@ -494,7 +497,7 @@ brasilis,187,162,5 script Candy Maker 476,{
}
}
-bra_in01,95,179,3 script Cherto 477,{
+bra_in01,95,179,3 script Cherto 4_M_BRZ_MAN2,{
if (brazil_gua == 0) {
mes "[Cherto]";
mes "Hmm... hey man, you are from outside, aren't you?";
@@ -654,7 +657,7 @@ bra_in01,95,179,3 script Cherto 477,{
}
}
-brasilis,203,64,3 script Strange Kid#bra 706,{
+brasilis,203,64,3 script Strange Kid#bra 4_M_KID1,{
if (brazil_gua < 3) {
mes "[Strange Kid]";
mes "................";
@@ -809,11 +812,11 @@ brasilis,203,64,3 script Strange Kid#bra 706,{
end;
}
-brasilis,56,224,7 script Mage Paje#bra 704,{
+brasilis,56,224,7 script Mage Paje#bra 4_M_BIBI,{
mes "[Mage Paje]";
mes "Abracadabra~";
specialeffect EF_POISONHIT,AREA,"Poring#bra";
- setarray .@display[0],800,876,909;
+ setarray .@display[0], 4_NFCOCK, 4_CAT, 4_PORING;
setnpcdisplay "Poring#bra",.@display[rand(3)];
if (brazil_gua != 5) close;
next;
@@ -856,11 +859,13 @@ brasilis,56,224,7 script Mage Paje#bra 704,{
close;
}
-brasilis,59,226,3 script Poring#bra 909,{
+brasilis,59,226,3 script Poring#bra 4_PORING,{
end;
}
-bra_fild01,75,83,5 script Toucan#bra 2073,2,2,{
+bra_fild01,75,83,5 script Toucan#bra TOUCAN,2,2,{
+end;
+
OnTouch:
if (brazil_gua == 6) {
mes "[Toucan]";
@@ -920,7 +925,9 @@ OnTouch:
end;
}
-bra_fild01,34,184,5 script Jaguar#bra 2072,2,2,{
+bra_fild01,34,184,5 script Jaguar#bra JAGUAR,2,2,{
+end;
+
OnTouch_:
if (brazil_gua == 7) {
mes "[Jaguar]";
@@ -971,7 +978,7 @@ OnTouch_:
set brazil_gua,8;
changequest 2197,2198;
close2;
- sc_start SC_MOVHASTE_INFINITY,5000,0;
+ consumeitem 12016; //Speed_Up_Potion
end;
}
else {
@@ -982,11 +989,11 @@ OnTouch_:
end;
}
-bra_fild01,245,53,3 script #Monkeybra 1057,{
+bra_fild01,245,53,3 script #Monkeybra YOYO,{
end;
}
-bra_fild01,245,52,3 script Monkey#bra 111,{
+bra_fild01,245,52,3 script Monkey#bra HIDDEN_NPC,{
if (brazil_gua == 8) {
mes "[Monkey]";
mes "What is it??!!";
@@ -1032,9 +1039,9 @@ bra_fild01,245,52,3 script Monkey#bra 111,{
}
}
-// Water Lily Quest, Original file: brazil_tre.sc
+// Water Lily Quest :: brazil_tre.sc
//============================================================
-brasilis,203,286,3 script Botanist Karmen#bra 893,{
+brasilis,203,286,3 script Botanist Karmen#bra 4_F_HUWOMAN,{
if (brazil_regia == 0) {
mes "[Karmen]";
mes "Brasilis' climate is special.";
@@ -1088,7 +1095,7 @@ brasilis,203,286,3 script Botanist Karmen#bra 893,{
mes "The water lily must truly be a lucky flower. hahaha";
set brazil_regia,10;
completequest 2207;
- getexp 500000,100000;
+ getexp 50000,10000;
close;
}
else {
@@ -1105,7 +1112,7 @@ brasilis,203,286,3 script Botanist Karmen#bra 893,{
}
}
-bra_in01,142,27,5 script Marta#bra 474,{
+bra_in01,142,27,5 script Marta#bra 4_F_BRZ_INDOLD,{
if (brazil_regia == 1) {
mes "[Brasilis Boy]";
mes "Grandma! That person has a weird smell.";
@@ -1256,7 +1263,7 @@ bra_in01,142,27,5 script Marta#bra 474,{
}
}
-bra_in01,145,27,3 script Brasilis Boy#bra 472,{
+bra_in01,145,27,3 script Brasilis Boy#bra 4_M_BRZ_INDIAN,{
if (brazil_regia == 1) {
mes "[Brasilis Boy]";
mes "Grandma! That person has a weird smell.";
@@ -1407,7 +1414,7 @@ bra_in01,145,27,3 script Brasilis Boy#bra 472,{
}
}
-brasilis,270,145,5 script Brasilis Girl#bra 473,5,5,{
+brasilis,270,145,5 script Brasilis Girl#bra 4_F_BRZ_INDIAN,5,5,{
if (!checkweight(1201,1)) {
mes "- wait a second!! -";
mes "- you have too many items -";
@@ -1696,7 +1703,7 @@ OnTouch:
end;
}
-bra_dun02,67,205,5 script Recluse#bra 475,3,3,{
+bra_dun02,67,205,5 script Recluse#bra 4_M_BRZ_JACI,3,3,{
if (brazil_regia == 3) {
mes "[Recluse]";
mes "Oh, I haven't seen another person in such a long time.";
@@ -1820,7 +1827,7 @@ OnTouchNPC:
end;
}
-bra_dun02,71,200,3 script Water lily#bra 111,{
+bra_dun02,71,200,3 script Water lily#bra HIDDEN_NPC,{
if (brazil_regia == 4) {
mes "An unusual Water lily is blooming here. You can't stop staring at it, knowing that few people have seen this flower bloom.";
next;
@@ -1929,9 +1936,9 @@ bra_dun02,71,200,3 script Water lily#bra 111,{
}
}
-// Dungeon Access Quest, Original file: brazil_tre.sc
+// Dungeon Access Quest :: brazil_tre.sc
//============================================================
-brasilis,185,246,5 script Pedro#bra 62,{
+brasilis,185,246,5 script Pedro#bra 1_M_SIZ,{
if (brazil_ghost == 0) {
OnTalk:
mes "[Pedro]";
@@ -2157,7 +2164,7 @@ brasilis,185,246,5 script Pedro#bra 62,{
}
}
-brasilis,187,244,1 script Mariana#bra 72,{
+brasilis,187,244,1 script Mariana#bra 1_F_MARIA,{
if (brazil_ghost == 0) {
doevent "Pedro#bra::OnTalk";
end;
@@ -2175,7 +2182,7 @@ brasilis,187,244,1 script Mariana#bra 72,{
}
}
-brasilis,181,250,5 script Fabio#bra 706,{
+brasilis,181,250,5 script Fabio#bra 4_M_KID1,{
if (brazil_ghost == 0) {
doevent "Pedro#bra::OnTalk";
end;
@@ -2195,7 +2202,7 @@ brasilis,181,250,5 script Fabio#bra 706,{
}
}
-brasilis,180,249,5 script Daniel#bra 706,{
+brasilis,180,249,5 script Daniel#bra 4_M_KID1,{
if (brazil_ghost == 0) {
doevent "Pedro#bra::OnTalk";
end;
@@ -2212,7 +2219,7 @@ brasilis,180,249,5 script Daniel#bra 706,{
}
}
-bra_in01,149,184,3 script Door#bra 844,{
+bra_in01,149,184,3 script Door#bra CLEAR_NPC,{
if (brazil_ghost > 0) {
mes "- A key is inserted in the locked door.-";
next;
@@ -2301,7 +2308,7 @@ bra_in01,149,184,3 script Door#bra 844,{
}
}
-bra_in01,144,187,3 script Toilet#bra 844,{
+bra_in01,144,187,3 script Toilet#bra CLEAR_NPC,{
if (brazil_ghost > 0) {
mes "- Looks like an ordinary toilet -";
next;
@@ -2387,7 +2394,7 @@ bra_in01,144,187,3 script Toilet#bra 844,{
}
}
-bra_in01,134,189,3 script Faucet#bra 844,{
+bra_in01,134,189,3 script Faucet#bra CLEAR_NPC,{
if (brazil_ghost > 0) {
mes "- It seems like an ordinary faucet -";
next;
@@ -2462,7 +2469,7 @@ bra_in01,134,189,3 script Faucet#bra 844,{
}
}
-bra_in01,138,184,3 script Carpet#bra 844,{
+bra_in01,138,184,3 script Carpet#bra CLEAR_NPC,{
if (brazil_ghost > 0) {
mes "- A carpet with an intricate pattern on it -";
next;
@@ -2544,7 +2551,7 @@ bra_in01,138,184,3 script Carpet#bra 844,{
}
}
-bra_in01,151,180,3 script Mirror#bra 844,{
+bra_in01,151,180,3 script Mirror#bra CLEAR_NPC,{
if (brazil_ghost > 0) {
mes "- You can see a clean mirror without any marks or dust -";
next;
@@ -2660,7 +2667,7 @@ bra_in01,151,180,3 script Mirror#bra 844,{
}
}
-bra_in01,136,180,5 script Ghost#bra 1867,{
+bra_in01,136,180,5 script Ghost#bra BANSHEE,{
end;
OnInit:
@@ -2668,7 +2675,7 @@ OnInit:
end;
}
-bra_in01,7,181,5 script Curator#bra 477,{
+bra_in01,7,181,5 script Curator#bra 4_M_BRZ_MAN2,{
if (BaseLevel < 40) {
mes "[Curator]";
mes "I'm sorry but this area is under construction right now.";
@@ -2754,7 +2761,7 @@ bra_in01,7,181,5 script Curator#bra 477,{
}
}
-bra_in01,12,185,0 script inbathroom#bra 45,1,1,{
+bra_in01,12,185,0 script inbathroom#bra WARPNPC,1,1,{
OnTouch_:
if (brazil_ghost > 6)
warp "bra_in01",138,176;
@@ -2768,7 +2775,7 @@ OnTouch_:
bra_in01,138,174,0 warp outbathroom#bra 1,1,bra_in01,12,183
bra_in01,206,98,0 warp tobath#bra 1,1,bra_in01,138,176
-bra_in01,206,188,1 script Open Manhole#todunbra 844,{
+bra_in01,206,188,1 script Open Manhole#todunbra CLEAR_NPC,{
if (brazil_ghost == 7) {
enablenpc "Ghost#bra_end";
mes "[Ghost]";
@@ -2796,7 +2803,7 @@ bra_in01,206,188,1 script Open Manhole#todunbra 844,{
set brazil_ghost,8;
//completequest 2208;
completequest 60355;
- getexp 900000,0;
+ getexp 90000,0;
disablenpc "Ghost#bra_end";
close;
}
@@ -2805,12 +2812,12 @@ bra_in01,206,188,1 script Open Manhole#todunbra 844,{
}
-bra_dun01,87,43,1 script Pipe#bra 844,{
+bra_dun01,87,43,1 script Pipe#bra CLEAR_NPC,{
warp "bra_in01",206,185;
end;
}
-bra_fild01,323,136,1 script Pipe#brafild 844,{
+bra_fild01,323,136,1 script Pipe#brafild CLEAR_NPC,{
if (brazil_ghost > 6) {
mes "You see a rusty pipe. It seems to be linked to somewhere beneath the jungle.";
next;
@@ -2831,7 +2838,7 @@ bra_fild01,323,136,1 script Pipe#brafild 844,{
}
}
-bra_in01,206,190,3 script Ghost#bra_end 1867,{
+bra_in01,206,190,3 script Ghost#bra_end BANSHEE,{
end;
OnInit:
@@ -2839,9 +2846,9 @@ OnInit:
end;
}
-// Iara, Original file: iara.sc
+// Iara :: iara.sc
//============================================================
-brasilis,315,334,5 script Shaman#nk 474,{
+brasilis,315,334,5 script Shaman#nk 4_F_BRZ_INDOLD,{
set .@iara_re,checkquest(4135,PLAYTIME);
if ((.@iara_re == 0) || (.@iara_re == 1)) {
mes "[Anori]";
@@ -2962,22 +2969,19 @@ brasilis,315,334,5 script Shaman#nk 474,{
mes "Could you listen to my stories for a moment.";
mes "There's an emergency in our tribe.";
next;
- switch(select("No.:Okay.")) {
- case 1:
+ if(select("No.:Okay.") == 1) {
mes "[Anori]";
mes "You are a heartless person...";
mes "You don't seem the helpful type.";
mes "Just keep on going your way.";
close;
- case 2:
- mes "[Anori]";
- mes "Thank you, I met a kind person.";
- mes "It's a secret of our tribe that";
- mes "you cannot tell anyone.";
- next;
- break;
}
mes "[Anori]";
+ mes "Thank you, I met a kind person.";
+ mes "It's a secret of our tribe that";
+ mes "you cannot tell anyone.";
+ next;
+ mes "[Anori]";
mes "Lately young men from";
mes "the tribe are disappearing.";
mes "Our entire tribe is being threatened.";
@@ -3044,7 +3048,7 @@ brasilis,315,334,5 script Shaman#nk 474,{
}
}
-bra_dun02,157,74,5 script Iara#nk 478,2,2,{
+bra_dun02,157,74,5 script Iara#nk 4_F_BRZ_WOMAN,2,2,{
if (countitem(11517) > 0) {
mes "[" + strcharinfo(0) + "]";
mes "Should I use a Purification Potion?";
@@ -3072,12 +3076,12 @@ bra_dun02,157,74,5 script Iara#nk 478,2,2,{
percentheal 100,100;
sc_start SC_INCFLEE,3600000,20;
sc_start SC_CRITICALPERCENT,3600000,10;
- sc_start SC_FOOD_STR,1200000,3;
- sc_start SC_FOOD_DEX,1200000,3;
- sc_start SC_FOOD_AGI,1200000,3;
- sc_start SC_FOOD_VIT,1200000,3;
- sc_start SC_FOOD_INT,1200000,3;
- sc_start SC_FOOD_LUK,1200000,3;
+ consumeitem 12043; //Str_Dish03
+ consumeitem 12063; //Dex_Dish03
+ consumeitem 12058; //Agi_Dish03
+ consumeitem 12053; //Vit_Dish03
+ consumeitem 12048; //Int_Dish03
+ consumeitem 12068; //Luk_Dish03
next;
mes "[Iara]";
mes "Ahhh~...";
@@ -3098,11 +3102,10 @@ bra_dun02,157,74,5 script Iara#nk 478,2,2,{
mes "Aaaaaaaaaaaaaaaaaaaaaah.";
mes "Eeeeeeeeeeeeeeeeeeeh.";
mes "Oooooooooooooooooh.";
- set .@get_de,rand(1,2);
- if (.@get_de == 1)
- sc_start Sc_Curse,60000,0;
+ if (rand(1,2) == 1)
+ sc_start SC_CURSE,60000,0;
else
- sc_start Sc_Confusion,60000,0;
+ sc_start SC_CONFUSION,60000,0;
next;
mes "[" + strcharinfo(0) + "]";
mes "Ugh! What's this strange voice?";
@@ -3116,11 +3119,10 @@ OnTouch:
mes "Aaaaaaaaaaaaaaaaaaaaaah.";
mes "Eeeeeeeeeeeeeeeeeeeh.";
mes "Oooooooooooooooooh.";
- set .@get_de,rand(1,2);
- if (.@get_de == 1)
- sc_start Sc_Curse,60000,0;
+ if (rand(1,2) == 1)
+ sc_start SC_CURSE,60000,0;
else
- sc_start Sc_Confusion,60000,0;
+ sc_start SC_CONFUSION,60000,0;
next;
mes "[" + strcharinfo(0) + "]";
mes "Ugh! What's this strange voice?";
@@ -3129,9 +3131,9 @@ OnTouch:
end;
}
-bra_fild01,188,301,5 script Native Warrior#nk 472,{
+bra_fild01,188,301,5 script Native Warrior#nk 4_M_BRZ_INDIAN,{
mes "[Native Warrior]";
- mes "Ah...the face I would never forget even in my dreams.";
+ mes "Ah... the face I would never forget even in my dreams.";
next;
mes "[Native Warrior]";
mes "When will she come out of the waterfall again...?";
@@ -3143,7 +3145,7 @@ bra_fild01,188,301,5 script Native Warrior#nk 472,{
else {
mes "[" + strcharinfo(0) + "]";
mes "(This guy will never";
- mes "get ocer Iara's curse...)";
+ mes "get over Iara's curse...)";
}
close;
}
diff --git a/npc/re/quests/quests_dewata.txt b/npc/re/quests/quests_dewata.txt
index f0f6fef1e..e3d1a7302 100644
--- a/npc/re/quests/quests_dewata.txt
+++ b/npc/re/quests/quests_dewata.txt
@@ -4,9 +4,8 @@
//= Gennosuke Kouga, Muad_Dib
//===== Current Version: =====================================
//= 1.2
-//===== Compatible With: =====================================
-//= Hercules
//===== Description: =========================================
+//= [Official Conversion]
//= Quest NPCs related to Dewata:
//== "Dewata Legend"
//== "Help Out the Old Man"
@@ -17,62 +16,9 @@
//= 1.2 Updated to match the official script. [Lemongrass/Euphy]
//============================================================
-// Entrance
+// Dewata Legend Quest :: dewata_legend
//============================================================
-alberta,212,202,4 script Dewata Sailor#alberta 536,{
- mes "[Dewata Sailor]";
- mes "Do you want to visit ^8B4513Dewata Island^000000?";
- mes "With it's dazzling waves and charming views it's a great place to relax.";
- mes "The transit fee is 10,000 Zeny.";
- next;
- switch(select("Yes!:No.")) {
- case 1:
- if (Zeny >= 10000) {
- mes "[Dewata Sailor]";
- mes "^8B4513Dewata^000000 is a beautiful and peaceful island country.";
- mes "Have a nice trip~";
- close2;
- set Zeny, Zeny - 10000;
- warp "dewata",232,53;
- end;
- } else {
- mes "[Dewata Sailor]";
- mes "You don't have the dough, kid.";
- mes "Come back when you have a bigger wallet.";
- close;
- }
- case 2:
- mes "[Dewata Sailor]";
- mes "Let me know";
- mes "when you're ready to travel~";
- close;
- }
-}
-
-dewata,229,49,6 script Alberta Sailor#dewata 536,{
- mes "[Alberta Sailor]";
- mes "Do you want to go back to Alberta?";
- next;
- switch(select("Yes.:No.")) {
- case 1:
- mes "[Alberta Sailor]";
- mes "I hope you had a lot of fun on";
- mes "your trip to ^8B4513Dewata^000000 Island.";
- mes "Please come again!";
- close2;
- warp "alberta",210,198;
- end;
- case 2:
- mes "[Alberta Sailor]";
- mes "Have some more fun before you go.";
- mes "^8B4513Dewata^000000 Island still has more to offer.";
- close;
- }
-}
-
-// Dewata Legend Quest
-//============================================================
-dew_fild01,57,274,0 script #hideout_legend 111,6,6,{
+dew_fild01,57,274,0 script #hideout_legend HIDDEN_NPC,6,6,{
OnTouch:
if (BaseLevel > 59 && dew_legend < 1) {
mes "- You hear a faint conversation going on inside. -";
@@ -106,7 +52,7 @@ OnTouch:
end;
}
-dew_in01,15,33,0 script #hidein_legend 111,5,5,{
+dew_in01,15,33,0 script #hidein_legend HIDDEN_NPC,5,5,{
OnTouch:
if (dew_legend == 3) {
mes "Kasyapa and Chief Paiko begin talking as you are about to leave...";
@@ -137,7 +83,7 @@ OnTouch:
end;
}
-dew_in01,22,48,3 script Sage Kasyapa#dew 541,{
+dew_in01,22,48,3 script Sage Kasyapa#dew 4_M_DEWZATIMAN,{
if (dew_legend == 0) {
mes "[Sage Kasyapa]";
mes "Ah, a stranger to our land.";
@@ -270,7 +216,7 @@ dew_in01,22,48,3 script Sage Kasyapa#dew 541,{
}
}
-dew_in01,15,49,4 script Tribal Chief Paiko#dew 540,{
+dew_in01,15,49,4 script Tribal Chief Paiko#dew 4_M_DEWZATICHIEF,{
if (dew_legend < 2) {
mes "[Tribal Chief Paiko]";
mes "I am the leader of this tribe";
@@ -569,7 +515,7 @@ L_Delivery:
}
}
-dew_fild01,78,288,6 script Jaty Tribe Warrior#dew 541,{
+dew_fild01,78,288,6 script Jaty Tribe Warrior#dew 4_M_DEWZATIMAN,{
mes "[Jaty Tribe Warrior]";
mes "We revere strength and bravery.";
mes "We are ^FF0000Jaty^000000 Tribe.";
@@ -607,7 +553,7 @@ dew_fild01,78,288,6 script Jaty Tribe Warrior#dew 541,{
close;
}
-dew_fild01,185,300,6 script Tribe Manager#dew 541,{
+dew_fild01,185,300,6 script Tribe Manager#dew 4_M_DEWZATIMAN,{
mes "[Tribe Manager]";
mes "Keeping our culture and tradition is very important.";
if (dew_legend != 11 || !countitem(11533)) {
@@ -660,7 +606,7 @@ dew_fild01,185,300,6 script Tribe Manager#dew 541,{
}
//Original name: Gatekeeper of Krakatau Volcano
-dewata,235,56,4 script Gatekeeper of Krakatau#1 534,{
+dewata,235,56,4 script Gatekeeper of Krakatau#1 4_M_DEWOLDMAN,{
mes "[Gatekeeper of Krakatau Volcano]";
mes "^8B4513Krakatau Volcano^000000 is";
mes "a very dangerous area";
@@ -728,7 +674,7 @@ dewata,235,56,4 script Gatekeeper of Krakatau#1 534,{
}
//Original name: Gatekeeper of Krakatau Volcano
-dew_dun01,292,164,4 script Gatekeeper of Krakatau#2 541,{
+dew_dun01,292,164,4 script Gatekeeper of Krakatau#2 4_M_DEWZATIMAN,{
mes "[Gatekeeper of Krakatau Volcano]";
mes "Want to go back";
mes "to Dewata?";
@@ -747,7 +693,7 @@ dew_dun01,292,164,4 script Gatekeeper of Krakatau#2 541,{
}
}
-dewata,78,192,6 script Borobudur Temple Manager 536,{
+dewata,78,192,6 script Borobudur Temple Manager 4_M_DEWMAN,{
mes "[Borobudur Temple Manager]";
mes "The weather today is so beautiful.";
if (dew_legend != 15 || !countitem(11533))
@@ -794,9 +740,9 @@ dewata,78,192,6 script Borobudur Temple Manager 536,{
close;
}
-// Help Out the Old Man
+// Help Out the Old Man :: dewata_drink
//============================================================
-dewata,109,262,4 script Memo#dew_drink 534,{
+dewata,109,262,4 script Memo#dew_drink 4_M_DEWOLDMAN,{
if (checkweight(1201,1) == 0 || MaxWeight - Weight < 5000) {
if (dew_drink) {
mes "[Memo]";
@@ -1122,7 +1068,7 @@ dewata,109,262,4 script Memo#dew_drink 534,{
}
}
-dew_fild01,114,275,4 script Lero#dew_drink 536,{
+dew_fild01,114,275,4 script Lero#dew_drink 4_M_DEWMAN,{
if (checkweight(1201,1) == 0 || MaxWeight - Weight < 5000) {
mes "[Lero]";
mes "You're carrying too many things...";
@@ -1383,7 +1329,7 @@ dew_fild01,114,275,4 script Lero#dew_drink 536,{
close;
}
-dew_fild01,259,48,4 script Poby#dew_drink 538,{
+dew_fild01,259,48,4 script Poby#dew_drink 4_M_DEWBOY,{
if (checkweight(1201,1) == 0 || MaxWeight - Weight < 500) {
if (dew_drink > 0) {
mes "[Poby]";
@@ -1675,50 +1621,50 @@ OnTimer300000:
donpcevent strnpcinfo(0)+"::OnEnable";
end;
}
-dew_fild01,247,62,0 duplicate(DewataPalm) Palm Tree#drink01 844
-dew_fild01,276,73,0 duplicate(DewataPalm) Palm Tree#drink02 844
-dew_fild01,278,63,0 duplicate(DewataPalm) Palm Tree#drink03 844
-dew_fild01,301,88,0 duplicate(DewataPalm) Palm Tree#drink04 844
-dew_fild01,314,72,0 duplicate(DewataPalm) Palm Tree#drink05 844
-dew_fild01,320,68,0 duplicate(DewataPalm) Palm Tree#drink06 844
-dew_fild01,334,107,0 duplicate(DewataPalm) Palm Tree#drink07 844
-dew_fild01,345,88,0 duplicate(DewataPalm) Palm Tree#drink08 844
-dew_fild01,344,71,0 duplicate(DewataPalm) Palm Tree#drink09 844
-dew_fild01,358,93,0 duplicate(DewataPalm) Palm Tree#drink10 844
-dew_fild01,338,121,0 duplicate(DewataPalm) Palm Tree#drink11 844
-dew_fild01,358,136,0 duplicate(DewataPalm) Palm Tree#drink12 844
-dew_fild01,326,147,0 duplicate(DewataPalm) Palm Tree#drink13 844
-dew_fild01,307,146,0 duplicate(DewataPalm) Palm Tree#drink14 844
-dew_fild01,325,159,0 duplicate(DewataPalm) Palm Tree#drink15 844
-dew_fild01,339,163,0 duplicate(DewataPalm) Palm Tree#drink16 844
-dew_fild01,346,193,0 duplicate(DewataPalm) Palm Tree#drink17 844
-dew_fild01,355,193,0 duplicate(DewataPalm) Palm Tree#drink18 844
-dew_fild01,363,219,0 duplicate(DewataPalm) Palm Tree#drink19 844
-dew_fild01,341,261,0 duplicate(DewataPalm) Palm Tree#drink20 844
-dew_fild01,289,302,0 duplicate(DewataPalm) Palm Tree#drink21 844
-dew_fild01,70,196,0 duplicate(DewataPalm) Palm Tree#drink22 844
-dew_fild01,97,145,0 duplicate(DewataPalm) Palm Tree#drink23 844
-dew_fild01,119,42,0 duplicate(DewataPalm) Palm Tree#drink24 844
-dew_fild01,188,72,0 duplicate(DewataPalm) Palm Tree#drink25 844
-dew_fild01,238,80,0 duplicate(DewataPalm) Palm Tree#drink26 844
-dew_fild01,252,97,0 duplicate(DewataPalm) Palm Tree#drink27 844
-dew_fild01,256,98,0 duplicate(DewataPalm) Palm Tree#drink28 844
-dew_fild01,279,93,0 duplicate(DewataPalm) Palm Tree#drink29 844
-dew_fild01,299,107,0 duplicate(DewataPalm) Palm Tree#drink30 844
-dew_fild01,355,113,0 duplicate(DewataPalm) Palm Tree#drink31 844
-dew_fild01,278,136,0 duplicate(DewataPalm) Palm Tree#drink32 844
-dew_fild01,258,128,0 duplicate(DewataPalm) Palm Tree#drink33 844
-dew_fild01,240,125,0 duplicate(DewataPalm) Palm Tree#drink34 844
-dew_fild01,225,117,0 duplicate(DewataPalm) Palm Tree#drink35 844
-dew_fild01,219,121,0 duplicate(DewataPalm) Palm Tree#drink36 844
-dew_fild01,226,99,0 duplicate(DewataPalm) Palm Tree#drink37 844
-dew_fild01,209,137,0 duplicate(DewataPalm) Palm Tree#drink38 844
-dew_fild01,206,156,0 duplicate(DewataPalm) Palm Tree#drink39 844
-dew_fild01,209,201,0 duplicate(DewataPalm) Palm Tree#drink40 844
+dew_fild01,247,62,0 duplicate(DewataPalm) Palm Tree#drink01 CLEAR_NPC
+dew_fild01,276,73,0 duplicate(DewataPalm) Palm Tree#drink02 CLEAR_NPC
+dew_fild01,278,63,0 duplicate(DewataPalm) Palm Tree#drink03 CLEAR_NPC
+dew_fild01,301,88,0 duplicate(DewataPalm) Palm Tree#drink04 CLEAR_NPC
+dew_fild01,314,72,0 duplicate(DewataPalm) Palm Tree#drink05 CLEAR_NPC
+dew_fild01,320,68,0 duplicate(DewataPalm) Palm Tree#drink06 CLEAR_NPC
+dew_fild01,334,107,0 duplicate(DewataPalm) Palm Tree#drink07 CLEAR_NPC
+dew_fild01,345,88,0 duplicate(DewataPalm) Palm Tree#drink08 CLEAR_NPC
+dew_fild01,344,71,0 duplicate(DewataPalm) Palm Tree#drink09 CLEAR_NPC
+dew_fild01,358,93,0 duplicate(DewataPalm) Palm Tree#drink10 CLEAR_NPC
+dew_fild01,338,121,0 duplicate(DewataPalm) Palm Tree#drink11 CLEAR_NPC
+dew_fild01,358,136,0 duplicate(DewataPalm) Palm Tree#drink12 CLEAR_NPC
+dew_fild01,326,147,0 duplicate(DewataPalm) Palm Tree#drink13 CLEAR_NPC
+dew_fild01,307,146,0 duplicate(DewataPalm) Palm Tree#drink14 CLEAR_NPC
+dew_fild01,325,159,0 duplicate(DewataPalm) Palm Tree#drink15 CLEAR_NPC
+dew_fild01,339,163,0 duplicate(DewataPalm) Palm Tree#drink16 CLEAR_NPC
+dew_fild01,346,193,0 duplicate(DewataPalm) Palm Tree#drink17 CLEAR_NPC
+dew_fild01,355,193,0 duplicate(DewataPalm) Palm Tree#drink18 CLEAR_NPC
+dew_fild01,363,219,0 duplicate(DewataPalm) Palm Tree#drink19 CLEAR_NPC
+dew_fild01,341,261,0 duplicate(DewataPalm) Palm Tree#drink20 CLEAR_NPC
+dew_fild01,289,302,0 duplicate(DewataPalm) Palm Tree#drink21 CLEAR_NPC
+dew_fild01,70,196,0 duplicate(DewataPalm) Palm Tree#drink22 CLEAR_NPC
+dew_fild01,97,145,0 duplicate(DewataPalm) Palm Tree#drink23 CLEAR_NPC
+dew_fild01,119,42,0 duplicate(DewataPalm) Palm Tree#drink24 CLEAR_NPC
+dew_fild01,188,72,0 duplicate(DewataPalm) Palm Tree#drink25 CLEAR_NPC
+dew_fild01,238,80,0 duplicate(DewataPalm) Palm Tree#drink26 CLEAR_NPC
+dew_fild01,252,97,0 duplicate(DewataPalm) Palm Tree#drink27 CLEAR_NPC
+dew_fild01,256,98,0 duplicate(DewataPalm) Palm Tree#drink28 CLEAR_NPC
+dew_fild01,279,93,0 duplicate(DewataPalm) Palm Tree#drink29 CLEAR_NPC
+dew_fild01,299,107,0 duplicate(DewataPalm) Palm Tree#drink30 CLEAR_NPC
+dew_fild01,355,113,0 duplicate(DewataPalm) Palm Tree#drink31 CLEAR_NPC
+dew_fild01,278,136,0 duplicate(DewataPalm) Palm Tree#drink32 CLEAR_NPC
+dew_fild01,258,128,0 duplicate(DewataPalm) Palm Tree#drink33 CLEAR_NPC
+dew_fild01,240,125,0 duplicate(DewataPalm) Palm Tree#drink34 CLEAR_NPC
+dew_fild01,225,117,0 duplicate(DewataPalm) Palm Tree#drink35 CLEAR_NPC
+dew_fild01,219,121,0 duplicate(DewataPalm) Palm Tree#drink36 CLEAR_NPC
+dew_fild01,226,99,0 duplicate(DewataPalm) Palm Tree#drink37 CLEAR_NPC
+dew_fild01,209,137,0 duplicate(DewataPalm) Palm Tree#drink38 CLEAR_NPC
+dew_fild01,206,156,0 duplicate(DewataPalm) Palm Tree#drink39 CLEAR_NPC
+dew_fild01,209,201,0 duplicate(DewataPalm) Palm Tree#drink40 CLEAR_NPC
-// Traditional Weapon Quest
+// Traditional Weapon Quest :: dewata_weapon
//============================================================
-dew_fild01,127,240,4 script Gatti#weapon 813,{
+dew_fild01,127,240,4 script Gatti#weapon 2_M_OLDBLSMITH,{
if (checkweight(1201,1) == 0 || MaxWeight - Weight < 10000) {
mes "- Hold it right there!! -";
mes "- You're carrying too many items and don't have enough inventory space to receive any rewards. -";
@@ -2151,7 +2097,7 @@ dew_fild01,127,240,4 script Gatti#weapon 813,{
}
specialeffect2 EF_REPAIRWEAPON;
progressbar "0xFFFF00",3;
- set Zeny, Zeny - 100000;
+ Zeny -= 100000;
// Socket 3
set .@i, rand(4300);
diff --git a/npc/re/quests/quests_dicastes.txt b/npc/re/quests/quests_dicastes.txt
index 20320b078..d17b63267 100644
--- a/npc/re/quests/quests_dicastes.txt
+++ b/npc/re/quests/quests_dicastes.txt
@@ -3,10 +3,11 @@
//===== By: ==================================================
//= Gennosuke Kouga, Muad_Dib
//===== Current Version: =====================================
-//= 1.9a
-//===== Compatible With: =====================================
-//= Hercules
+//= 2.3
+//===== File Encoding ========================================
+//= CP-949 (EUC-KR compatible). Do NOT read/save it as UTF-8.
//===== Description: =========================================
+//= [Official Conversion]
//= Quest NPCs related to Dewata:
//== Sapha's Visit, Doha's Secrect Order, Frede's Request,
//== Department Quests, Document Quests,
@@ -28,11 +29,15 @@
//= 1.8b Updated "Calyon" NPC and fixed a check. [Euphy]
//= 1.9 Updated "Fish Tails" with RE coordinates.
//= 1.9a Minor fix. [Joseph]
+//= 2.0 Fixed variables. [Joseph]
+//= 2.1 Added reset option to "Kareka". [Euphy]
+//= 2.2 Added Izlude duplicates. [Euphy]
+//= 2.3 Added GM management NPCs. [Euphy]
//============================================================
// Entrance
//============================================================
-manuk,321,182,5 script Entrance Manager#ep133 450,{
+manuk,321,182,5 script Entrance Manager#ep133 4_MAN_GALTUN,{
if (!isequipped(2782)) {
mes "[Average Galten]";
mes "¢¤¡ð¡ú? ¢£ ¡ù¡ð...";
@@ -47,13 +52,13 @@ manuk,321,182,5 script Entrance Manager#ep133 450,{
if(select("Yes.:No.") == 2) {
mes "[Entrance Manager]";
mes "Then use the tunnel next time.";
- close;
+ close;
}
mes "[Entrance Manager]";
mes "Be careful.";
close2;
- warp "dic_dun01",33,212;
- end;
+ warp "dic_dun01",33,212;
+ end;
}
mes "[Entrance Manager]";
mes "Sorry.";
@@ -61,114 +66,127 @@ manuk,321,182,5 script Entrance Manager#ep133 450,{
close;
}
-dic_dun01,266,113,5 script Curious Sapha#ep13_3_ 449,{
+dic_dun01,266,113,5 script Curious Sapha#ep13_3_ 4_MAN_BENKUNI,{
+ if (!isequipped(2782)) {
+ mes "[Curious Sapha]";
+ mes "¡ö¡ñ¡Ð ¡ò ¡õ?";
+ next;
+ mes "- Cannot understand a word. -";
+ close;
+ }
mes "[Curious Sapha]";
- if (isequipped(2782)) {
- mes "Hello?";
+ mes "Hello?";
+ next;
+ switch(select("What are you doing here?:Buy research items.:Hello!:I want to help your research.")) {
+ case 1:
+ mes "[Curious Sapha]";
+ mes "Do you see that dirty vigilante over there?";
next;
- switch(select("What are you doing here?:Buy research items.:Hello!:I want to help your research.")) {
- case 1:
- mes "[Curious Sapha]";
- mes "Do you see that dirty vigilante over there?";
- next;
- mes "[Curious Sapha]";
- mes "He was attacked by Scarabas after falling into Scaraba Hall.";
- mes "And he was the only one attacked even with others around him.";
- next;
- mes "[Curious Sapha]";
- mes "I think he slipped and fell on some secretion of the Queen Scaraba. I thought it was an accident was looking into it.";
- next;
- mes "[Curious Sapha]";
- mes "If the research results are correct, the Scarabas are very sensitive to the smell.";
- mes "Or else say they go crazy over it. Almost as if they were losing it...";
- next;
- mes "[Curious Sapha]";
- mes "I came to research the relationship between the Queen secretion component and the Scarabas.";
- mes "So I created this into a perfume to carry it easily.";
- next;
- mes "[Curious Sapha]";
- mes "I might be able to use this perfume's reaction to Scarabas and make progress in research.";
- close;
- case 2:
- if (!checkweight(1201,1)) {
- mes "[Curious Sapha]";
- mes "You don't seem to have enough space.";
- close;
- }
- if ((MaxWeight - Weight) < 2000) {
- mes "[Curious Sapha]";
- mes "Your bags already seem too heavy.";
- close;
- }
- mes "[Curious Sapha]";
- mes "You want to buy the Scaraba Perfume? A gift for home?";
- mes "Well, it has become a rare perfume.";
- next;
- mes "[Curious Sapha]";
- mes "I'll give you a deal and sell it by 500 Zeny each. But, try not to carry it with you into Scaraba Hall.";
- mes "How many do you want? You can buy up to 100.";
- next;
- input .@input;
- set .@deal, 500 * .@input;
- if (.@deal == 0) {
- mes "[Curious Sapha]";
- mes "You changed your mind?";
- close;
- }
- if (Zeny < .@deal) {
- mes "[Curious Sapha]";
- mes "You don't have enough money.";
- close;
- }
- mes "[Curious Sapha]";
- mes "Will you buy "+.@input+"?";
- next;
- if(select("Yes:No") == 2) {
- mes "[Curious Sapha]";
- mes "You changed your mind?";
- close;
- }
- set Zeny, Zeny - .@deal;
- getitem 6437,.@input; //Scaraba_Perfume
- mes "[Curious Sapha]";
- mes "Here you go. Scaraba might flock around you so don't use it near Scaraba Hall.";
- close;
- case 3:
- mes "[Curious Sapha]";
- mes "Hello? You must be a traveler. This place is dangerous so please find your way out of this tunnel.";
- close;
- case 4:
- mes "[Curious Sapha]";
- mes "Do you have any useful information?";
- mes "Please let me know!";
- input .@str$;
- next;
- mes "[Curious Sapha]";
- mes "It says ^0000FF"+.@str$+"^000000.";
- next;
- set .@his_rd_ms, rand(1,3);
- if (.@his_rd_ms == 1) {
- mes "[Curious Sapha]";
- mes "That is great information!";
- mes "I must start on the research.";
- close;
- }
- else if (.@his_rd_ms == 2) {
- mes "[Curious Sapha]";
- mes "I already know about that information but I'm really grateful for you to come all the way here to tell me.";
- close;
- }
- else {
- mes "[Curious Sapha]";
- mes "Hmm... do you think so?";
- mes "I have some doubts about your information. I'll think it over.";
- close;
- }
+ mes "[Curious Sapha]";
+ mes "He was attacked by Scarabas after falling into Scaraba Hall.";
+ mes "And he was the only one attacked even with others around him.";
+ next;
+ mes "[Curious Sapha]";
+ mes "I think he slipped and fell on some secretion of the Queen Scaraba. I thought it was an accident was looking into it.";
+ next;
+ mes "[Curious Sapha]";
+ mes "If the research results are correct, the Scarabas are very sensitive to the smell.";
+ mes "Or else say they go crazy over it. Almost as if they were losing it...";
+ next;
+ mes "[Curious Sapha]";
+ mes "I came to research the relationship between the Queen secretion component and the Scarabas.";
+ mes "So I created this into a perfume to carry it easily.";
+ next;
+ mes "[Curious Sapha]";
+ mes "I might be able to use this perfume's reaction to Scarabas and make progress in research.";
+ close;
+ case 2:
+ if (checkweight(1201,1) == 0) {
+ mes "[Curious Sapha]";
+ mes "You don't seem to have enough space.";
+ close;
+ }
+ if (MaxWeight - Weight < 2000) {
+ mes "[Curious Sapha]";
+ mes "Your bags already seem too heavy.";
+ close;
+ }
+ mes "[Curious Sapha]";
+ mes "You want to buy the Scaraba Perfume? A gift for home?";
+ mes "Well, it has become a rare perfume.";
+ next;
+ mes "[Curious Sapha]";
+ mes "I'll give you a deal and sell it by 500 Zeny each. But, try not to carry it with you into Scaraba Hall.";
+ mes "How many do you want? You can buy up to 100.";
+ next;
+ input .@input;
+ set .@deal, 500 * .@input;
+ if (.@deal == 0) {
+ mes "[Curious Sapha]";
+ mes "You changed your mind?";
+ close;
+ }
+ if (Zeny < .@deal) {
+ mes "[Curious Sapha]";
+ mes "You don't have enough money.";
+ close;
+ }
+ mes "[Curious Sapha]";
+ mes "Will you buy "+.@input+"?";
+ next;
+ if(select("Yes:No") == 2) {
+ mes "[Curious Sapha]";
+ mes "You changed your mind?";
+ close;
+ }
+ Zeny -= .@deal;
+ getitem 6437,.@input; //Scaraba_Perfume
+ mes "[Curious Sapha]";
+ mes "Here you go. Scaraba might flock around you so don't use it near Scaraba Hall.";
+ close;
+ case 3:
+ mes "[Curious Sapha]";
+ mes "Hello? You must be a traveler. This place is dangerous so please find your way out of this tunnel.";
+ close;
+ case 4:
+ mes "[Curious Sapha]";
+ mes "Do you have any useful information?";
+ mes "Please let me know!";
+ input .@str$;
+ next;
+ mes "[Curious Sapha]";
+ mes "It says ^0000FF"+.@str$+"^000000.";
+ next;
+ switch(rand(1,3)) {
+ case 1:
+ mes "[Curious Sapha]";
+ mes "That is great information!";
+ mes "I must start on the research.";
+ close;
+ case 2:
+ mes "[Curious Sapha]";
+ mes "I already know about that information but I'm really grateful for you to come all the way here to tell me.";
+ close;
+ case 3:
+ mes "[Curious Sapha]";
+ mes "Hmm... do you think so?";
+ mes "I have some doubts about your information. I'll think it over.";
+ close;
}
}
- mes "¡ö¡ñ¡Ð ¡ò ¡õ?";
- next;
- mes "- Cannot understand a word. -";
+}
+
+sec_in02,16,43,5 script Scaraba Dungeon Entrance 4_MAN_BENKUNI,{
+ callfunc "F_GM_NPC";
+ mes "Setting you for dungeon entry.";
+ mes "You will be able to go through if the password is correct.";
+ if (callfunc("F_GM_NPC",1854,0) == 1) {
+ set ep13_3_secret,6;
+ getitem 2782,1; //Ring_Of_Wise_King
+ getitem 6437,2; //Scaraba_Perfume
+ mes "Setting Complete";
+ } else
+ mes "Wrong Password";
close;
}
@@ -231,11 +249,11 @@ dic_dun01,266,113,5 script Curious Sapha#ep13_3_ 449,{
close;
}
-dic_dun01,286,104,5 duplicate(Vigilante#main) Vigilante#ep133_23 450
-dic_dun01,294,106,3 duplicate(Vigilante#main) Vigilante#ep133_24 492
-dic_dun01,30,216,5 duplicate(Vigilante#main) Vigilante#ep133_26 492
+dic_dun01,286,104,5 duplicate(Vigilante#main) Vigilante#ep133_23 4_MAN_GALTUN
+dic_dun01,294,106,3 duplicate(Vigilante#main) Vigilante#ep133_24 4_MAN_GALTUN1
+dic_dun01,30,216,5 duplicate(Vigilante#main) Vigilante#ep133_26 4_MAN_GALTUN1
-dic_dun01,284,102,5 script Dirty Vigilante#ep13_3 450,{
+dic_dun01,284,102,5 script Dirty Vigilante#ep13_3 4_MAN_GALTUN,{
if (!isequipped(2782)) {
mes "[Vigilante]";
mes "¡ô¡ó¡ö ¡÷ ¡þ¡ù¡ó¢¤¡ö¡ø ¢³ ¡÷¢£¡ü ¡ø ¡Ð¡õ¡û.";
@@ -261,7 +279,7 @@ dic_dun01,284,102,5 script Dirty Vigilante#ep13_3 450,{
next;
if (select("Enter after spraying perfume.:Do not enter because it's dangerous.") == 1) {
if (!countitem(6437)) {
- mes "- You Scaraba Perfume disappeared. -";
+ mes "- Your Scaraba Perfume disappeared. -";
close;
}
mes "[Vigilante]";
@@ -278,7 +296,7 @@ dic_dun01,284,102,5 script Dirty Vigilante#ep13_3 450,{
close;
}
mes "[Vigilante]";
- mes "Phew, what happened?! Why are they all over me";
+ mes "Phew, what happened?! Why are they all over me?";
next;
mes "[Vigilante]";
mes "I already had bad luck in falling into Scaraba Hall and being drenched with this awful ^FF0000stench^000000 my head is starting to ache!";
@@ -287,7 +305,7 @@ dic_dun01,284,102,5 script Dirty Vigilante#ep13_3 450,{
close;
}
-mid_camp,216,246,0 script #ep133_event03 139,2,2,{
+mid_camp,216,246,0 script #ep133_event03 HIDDEN_WARP_NPC,2,2,{
end;
OnTouch:
if (ep13_3_secret == 23) {
@@ -316,7 +334,7 @@ OnTouch:
end;
}
-mid_camp,218,250,3 script Suspicious Guy#ep133_ 494,{
+mid_camp,218,250,3 script Suspicious Guy#ep133_ 4_M_ROKI,{
mes "[Suspicious Guy]";
mes ".....";
hideonnpc strnpcinfo(0);
@@ -329,14 +347,14 @@ OnEnable:
end;
}
-- script Guard#ep133_11 492,{
+- script Guard#ep133_11 4_MAN_GALTUN1,{
if (!isequipped(2782)) {
mes "[Capital City Guard]";
mes "¡ô¡ó¡ö ¡÷ ¡þ¡ù¡ó?";
mes "¡ð¡ú¢± ¡ô ¡ò¡õ¡ú ¡õ..!";
next;
mes "- Cannot communicate with him. -";
- close;
+ close;
}
if (ep13_3_invite < 4) {
mes "[Capital City Guard]";
@@ -388,10 +406,10 @@ OnEnable:
mes "Please inquiry with a GM.";
close;
}
-dic_fild01,146,281,5 duplicate(Guard#ep133_11) Capital City Guard#1 492
-dic_fild01,153,281,3 duplicate(Guard#ep133_11) Capital City Guard#2 450
+dic_fild01,146,281,5 duplicate(Guard#ep133_11) Capital City Guard#1 4_MAN_GALTUN1
+dic_fild01,153,281,3 duplicate(Guard#ep133_11) Capital City Guard#2 4_MAN_GALTUN
-dic_in01,254,119,0 script Item Storage#01 844,{
+dic_in01,254,119,0 script Item Storage#01 CLEAR_NPC,{
mes "This is the item storage.";
mes "There is some writing on the paper.";
next;
@@ -408,35 +426,47 @@ dic_in01,254,119,0 script Item Storage#01 844,{
if(select("Use safe:No way.")==2) {
mes "["+strcharinfo(0)+"]";
mes "I will use it later.";
- close;
+ close;
}
if (Zeny < 500) {
mes "Not enough Zeny.";
- close;
+ close;
}
- set Zeny, Zeny-500;
+ Zeny -= 500;
close2;
openstorage;
end;
}
+sec_in02,10,42,1 script 13.3 Related Reset 4_MAN_BENKUNI,{
+ callfunc "F_GM_NPC";
+ mes "[Reset]";
+ mes "Resets all quest windows including daily and map quests for 13.3.";
+ freeloop(1);
+ for(set .@i,12099; .@i<=12216; set .@i,.@i+1) {
+ if (checkquest(.@i) > -1)
+ erasequest .@i;
+ }
+ freeloop(0);
+ close;
+}
+
// Civil Services
//============================================================
-
function script que_dic {
if (!getarg(0)) {
if (checkquest(getarg(1),HUNTING) != 2) return;
- mes getarg(3);
+ mes getarg(3);
}
else if (getarg(0) == 1) {
if (checkquest(getarg(1)) == -1) return;
if (countitem(getarg(3)) < getarg(4)) {
mes "It looks like you are short on the amount.";
- close;
+ close;
}
- mes getarg(5);
+ mes getarg(5);
mes getarg(6,"");
- delitem getarg(3), getarg(4);
+ delitem getarg(3), getarg(4);
}
else if (getarg(0) == 2) {
for(set .@i,1; .@i<getargcount(); set .@i,.@i+1) {
@@ -452,7 +482,7 @@ function script que_dic {
close;
}
-dic_in01,48,263,5 script Hunting Dept. 1 Manager 449,{
+dic_in01,48,263,5 script Hunting Dept. 1 Manager 4_MAN_BENKUNI,{
if (checkweight(1201,1) == 0) {
mes "You have too many kinds of items. Let's try again after you reduce the number of items.";
close;
@@ -522,7 +552,7 @@ dic_in01,48,263,5 script Hunting Dept. 1 Manager 449,{
close;
}
-dic_in01,51,266,6 script Hunting Dept. 2 Manager 449,{
+dic_in01,51,266,6 script Hunting Dept. 2 Manager 4_MAN_BENKUNI,{
if (checkweight(1201,1) == 0) {
mes "You have too many kinds of items. Let's try again after you reduce the number of items.";
close;
@@ -591,7 +621,7 @@ dic_in01,51,266,6 script Hunting Dept. 2 Manager 449,{
close;
}
-dic_in01,51,270,7 script Supply Dept. 1 Manager 449,{
+dic_in01,51,270,7 script Supply Dept. 1 Manager 4_MAN_BENKUNI,{
if (checkweight(1201,1) == 0) {
mes "You have too many kinds of items. Let's try again after you reduce the number of items.";
close;
@@ -662,7 +692,7 @@ dic_in01,51,270,7 script Supply Dept. 1 Manager 449,{
close;
}
-dic_in01,48,273,8 script Supply Dept. 2 Manager 449,{
+dic_in01,48,273,8 script Supply Dept. 2 Manager 4_MAN_BENKUNI,{
if (!checkweight(1201,1)) {
mes "You have too many kinds of items. Let's try again after you reduce the number of items.";
close;
@@ -729,7 +759,7 @@ dic_in01,48,273,8 script Supply Dept. 2 Manager 449,{
close;
}
-dic_in01,43,273,1 script Transport Dept. 1 Mgr 449,{
+dic_in01,43,273,1 script Transport Dept. 1 Mgr 4_MAN_BENKUNI,{
if (!checkweight(1201,1)) {
mes "You have too many kinds of items. Let's try again after you reduce the number of items.";
close;
@@ -782,18 +812,18 @@ dic_in01,43,273,1 script Transport Dept. 1 Mgr 449,{
next;
mes "[Transport Dept. 1 Manager]";
set .@s$, "Quantity check finished. Ahhh, you going to rest? Then why don't you visit the famous pub of the Capital? They have no yummy food though....";
- que_dic(1,12137,30000,7143,4,.@s);
- que_dic(1,12138,25000,744,5,.@s);
- que_dic(1,12139,47500,748,1,.@s);
- que_dic(1,12140,27500,736,15,.@s);
- que_dic(1,12141,27000,746,10,.@s);
- que_dic(1,12142,27500,740,15,.@s);
- que_dic(1,12143,21600,925,50,.@s);
- que_dic(1,12144,21400,965,50,.@s);
- que_dic(1,12145,20900,964,20,.@s);
- que_dic(1,12146,22400,911,30,.@s);
- que_dic(1,12147,20800,910,40,.@s);
- mes "Um......What do you want me to do?";
+ que_dic(1,12137,30000,7143,4,.@s$);
+ que_dic(1,12138,25000,744,5,.@s$);
+ que_dic(1,12139,47500,748,1,.@s$);
+ que_dic(1,12140,27500,736,15,.@s$);
+ que_dic(1,12141,27000,746,10,.@s$);
+ que_dic(1,12142,27500,740,15,.@s$);
+ que_dic(1,12143,21600,925,50,.@s$);
+ que_dic(1,12144,21400,965,50,.@s$);
+ que_dic(1,12145,20900,964,20,.@s$);
+ que_dic(1,12146,22400,911,30,.@s$);
+ que_dic(1,12147,20800,910,40,.@s$);
+ mes "Um...... What do you want me to do?";
next;
mes "[Transport Dept. 1 Manager]";
mes "....";
@@ -803,7 +833,7 @@ dic_in01,43,273,1 script Transport Dept. 1 Mgr 449,{
close;
}
-dic_in01,40,270,2 script Transport Dept. 2 Mgr 449,{
+dic_in01,40,270,2 script Transport Dept. 2 Mgr 4_MAN_BENKUNI,{
if (!checkweight(1201,1)) {
mes "You have too many kinds of items. Let's try again after you reduce the number of items.";
close;
@@ -872,7 +902,7 @@ dic_in01,40,270,2 script Transport Dept. 2 Mgr 449,{
}
-dic_in01,40,193,1 script Papyrus#0001 453,{
+dic_in01,40,193,1 script Papyrus#0001 4_MAN_NITT,{
if (!checkweight(1201,1)) {
mes "You have too many items in your inventory.";
close;
@@ -982,7 +1012,6 @@ dic_in01,40,193,1 script Papyrus#0001 453,{
// Document Packages
//============================================================
-
- script Document Package#main -1,{
function eldicastes_dp;
if (isequipped(2782) < 1) {
@@ -1015,7 +1044,7 @@ dic_in01,40,193,1 script Papyrus#0001 453,{
} else if (.@doc > 60 && .@doc <= 70) {
mes "You suddenly feel nauseated. You feel like this won't go away any time soon. Finding the documents will have to wait.";
setquest 12165;
- close;
+ close;
}
else if (.@doc == 1) eldicastes_dp(12209,"Horn","Hard wedge-like horn from some insects. Doesn't have much practical use.","");
else if (.@doc == 2) eldicastes_dp(12195,"Horrendous Mouth","Tooth from a dead body.","Important material for research on time of death and health conditions. Useful in discovering human ecology.");
@@ -1080,17 +1109,16 @@ dic_in01,40,193,1 script Papyrus#0001 453,{
mes "You've found a document about ^990099"+getarg(1)+"^000000. Check for details in the ^800080Quest Window^000000.";
specialeffect2 EF_STEAL;
setquest getarg(0);
- close;
+ close;
}
}
-dic_in01,31,192,0 duplicate(Document Package#main) Document Package#0001 844
-dic_in01,31,187,0 duplicate(Document Package#main) Document Package#0002 844
-dic_in01,25,192,0 duplicate(Document Package#main) Document Package#0003 844
-dic_in01,25,187,0 duplicate(Document Package#main) Document Package#0004 844
+dic_in01,31,192,0 duplicate(Document Package#main) Document Package#0001 CLEAR_NPC
+dic_in01,31,187,0 duplicate(Document Package#main) Document Package#0002 CLEAR_NPC
+dic_in01,25,192,0 duplicate(Document Package#main) Document Package#0003 CLEAR_NPC
+dic_in01,25,187,0 duplicate(Document Package#main) Document Package#0004 CLEAR_NPC
// Unknown Relics
//============================================================
-
function script unknown_d {
if (checkquest(getarg(0)) == -1) {
mes "You see some traces of digging.";
@@ -1111,57 +1139,62 @@ function script unknown_d {
}
close;
}
-prt_fild09,371,255,0 script Reptile Tongues 844,{ unknown_d(12167,903); }
-prt_fild09,352,241,0 script Scorpion Tails 844,{ unknown_d(12168,904); }
-pay_fild02,177,108,0 script Stems 844,{ unknown_d(12169,905); }
-pay_fild02,105,113,0 script Pointed Scales 844,{ unknown_d(12170,906); }
-pay_fild01,152,171,0 script Resin 844,{ unknown_d(12171,907); }
-gef_fild01,104,111,0 script Spawn 844,{ unknown_d(12172,908); }
-prt_fild08,299,332,0 script Jellopy 844,{ unknown_d(12173,909); }
-izlude,136,160,0 script Fish Tails 844,{ unknown_d(12174,1023); } // Pre-RE: izlude (132,136)
-prt_fild05,303,169,0 script Worm Peelings 844,{ unknown_d(12175,955); }
-iz_dun03,155,165,0 script Gills 844,{ unknown_d(12176,956); }
-mjo_dun01,222,226,0 script Tooth of Bat 844,{ unknown_d(12177,913); }
-prt_fild06,182,290,0 script Fluff 844,{ unknown_d(12178,914); }
-prt_fild06,127,85,0 script Chrysalis 844,{ unknown_d(12179,915); }
-moc_fild07,201,360,0 script Feather of Bird 844,{ unknown_d(12180,916); }
-moc_fild12,116,122,0 script Talons 844,{ unknown_d(12181,917); }
-prt_fild04,315,245,0 script Sticky Webfoot 844,{ unknown_d(12182,918); }
-mjolnir_08,108,99,0 script Animal Skin 844,{ unknown_d(12183,919); }
-moc_fild03,175,201,0 script Wolf Claws 844,{ unknown_d(12184,920); }
-pay_fild08,188,153,0 script Mushroom Spores 844,{ unknown_d(12185,921); }
-gef_fild03,251,109,0 script Orc's Fangs 844,{ unknown_d(12186,922); }
-c_tower2,170,9,0 script Evil Horns 844,{ unknown_d(12187,923); }
-gef_fild05,111,96,0 script Powder of Butterfly 844,{ unknown_d(12188,924); }
-moc_fild11,237,273,0 script Bill of Birds 844,{ unknown_d(12189,925); }
-pay_fild06,306,233,0 script Snake Scales 844,{ unknown_d(12190,926); }
-pay_fild07,126,49,0 script Insect Feelers 844,{ unknown_d(12191,928); }
-iz_dun02,112,96,0 script Immortal Hearts 844,{ unknown_d(12192,929); }
-moc_pryd02,134,112,0 script Rotten Bandages 844,{ unknown_d(12193,930); }
-moc_pryd02,36,75,0 script Decayed Nails 844,{ unknown_d(12194,957); }
-moc_pryd02,148,184,0 script Horrendous Mouths 844,{ unknown_d(12195,958); }
-iz_dun01,210,77,0 script Tentacles 844,{ unknown_d(12196,962); }
-iz_dun01,191,92,0 script Shells 844,{ unknown_d(12197,935); }
-mjolnir_04,191,154,0 script Scale Shells 844,{ unknown_d(12198,936); }
-mjolnir_04,162,168,0 script Venom Canines 844,{ unknown_d(12199,937); }
-prt_fild02,102,97,0 script Sticky Mucus 844,{ unknown_d(12200,938); }
-mjolnir_09,99,100,0 script Bee Stings 844,{ unknown_d(12201,939); }
-prt_fild07,76,122,0 script Grasshopper's Legs 844,{ unknown_d(12202,940); }
-prt_fild03,64,35,0 script Royal Jelly 844,{ unknown_d(12203,526); }
-prt_fild03,180,163,0 script Yoyo Tails 844,{ unknown_d(12204,942); }
-prt_fild03,226,170,0 script Solid Shells 844,{ unknown_d(12205,943); }
-prt_fild03,262,201,0 script Nice Sweet Potato 844,{ unknown_d(12206,549); }
-prt_fild03,284,190,0 script Raccoon Leaf 844,{ unknown_d(12207,945); }
-gef_fild09,67,46,0 script Snail's Shells 844,{ unknown_d(12208,946); }
-prt_fild03,366,237,0 script Horns 844,{ unknown_d(12209,947); }
-pay_fild07,269,164,0 script Bear's Footskin 844,{ unknown_d(12210,948); }
-prt_fild02,142,116,0 script Feathers 844,{ unknown_d(12211,949); }
-prt_fild02,97,209,0 script Red Herbs 844,{ unknown_d(12212,507); }
-prt_fild02,280,328,0 script Carrots 844,{ unknown_d(12213,515); }
-moc_fild01,169,62,0 script Cactus Needles 844,{ unknown_d(12214,952); }
-cmd_fild08,324,163,0 script Stone Hearts 844,{ unknown_d(12215,953); }
+prt_fild03,144,95,0 script Tree Roots CLEAR_NPC,{ unknown_d(12166,902); }
+prt_fild09,371,255,0 script Reptile Tongues CLEAR_NPC,{ unknown_d(12167,903); }
+prt_fild09,352,241,0 script Scorpion Tails CLEAR_NPC,{ unknown_d(12168,904); }
+pay_fild02,177,108,0 script Stems CLEAR_NPC,{ unknown_d(12169,905); }
+pay_fild02,105,113,0 script Pointed Scales CLEAR_NPC,{ unknown_d(12170,906); }
+pay_fild01,152,171,0 script Resin CLEAR_NPC,{ unknown_d(12171,907); }
+gef_fild01,104,111,0 script Spawn CLEAR_NPC,{ unknown_d(12172,908); }
+prt_fild08,299,332,0 script Jellopy CLEAR_NPC,{ unknown_d(12173,909); }
+izlude,136,160,0 script Fish Tails CLEAR_NPC,{ unknown_d(12174,1023); } // Old coordinates: (132,136)
+izlude_a,136,160,0 script Fish Tails#a CLEAR_NPC,{ unknown_d(12174,1023); }
+izlude_b,136,160,0 script Fish Tails#b CLEAR_NPC,{ unknown_d(12174,1023); }
+izlude_c,136,160,0 script Fish Tails#c CLEAR_NPC,{ unknown_d(12174,1023); }
+izlude_d,136,160,0 script Fish Tails#d CLEAR_NPC,{ unknown_d(12174,1023); }
+prt_fild05,303,169,0 script Worm Peelings CLEAR_NPC,{ unknown_d(12175,955); }
+iz_dun03,155,165,0 script Gills CLEAR_NPC,{ unknown_d(12176,956); }
+mjo_dun01,222,226,0 script Tooth of Bat CLEAR_NPC,{ unknown_d(12177,913); }
+prt_fild06,182,290,0 script Fluff CLEAR_NPC,{ unknown_d(12178,914); }
+prt_fild06,127,85,0 script Chrysalis CLEAR_NPC,{ unknown_d(12179,915); }
+moc_fild07,201,360,0 script Feather of Bird CLEAR_NPC,{ unknown_d(12180,916); }
+moc_fild12,116,122,0 script Talons CLEAR_NPC,{ unknown_d(12181,917); }
+prt_fild04,315,245,0 script Sticky Webfoot CLEAR_NPC,{ unknown_d(12182,918); }
+mjolnir_08,108,99,0 script Animal Skin CLEAR_NPC,{ unknown_d(12183,919); }
+moc_fild03,175,201,0 script Wolf Claws CLEAR_NPC,{ unknown_d(12184,920); }
+pay_fild08,188,153,0 script Mushroom Spores CLEAR_NPC,{ unknown_d(12185,921); }
+gef_fild03,251,109,0 script Orc's Fangs CLEAR_NPC,{ unknown_d(12186,922); }
+c_tower2,170,9,0 script Evil Horns CLEAR_NPC,{ unknown_d(12187,923); }
+gef_fild05,111,96,0 script Powder of Butterfly CLEAR_NPC,{ unknown_d(12188,924); }
+moc_fild11,237,273,0 script Bill of Birds CLEAR_NPC,{ unknown_d(12189,925); }
+pay_fild06,306,233,0 script Snake Scales CLEAR_NPC,{ unknown_d(12190,926); }
+pay_fild07,126,49,0 script Insect Feelers CLEAR_NPC,{ unknown_d(12191,928); }
+iz_dun02,112,96,0 script Immortal Hearts CLEAR_NPC,{ unknown_d(12192,929); }
+moc_pryd02,134,112,0 script Rotten Bandages CLEAR_NPC,{ unknown_d(12193,930); }
+moc_pryd02,36,75,0 script Decayed Nails CLEAR_NPC,{ unknown_d(12194,957); }
+moc_pryd02,148,184,0 script Horrendous Mouths CLEAR_NPC,{ unknown_d(12195,958); }
+iz_dun01,210,77,0 script Tentacles CLEAR_NPC,{ unknown_d(12196,962); }
+iz_dun01,191,92,0 script Shells CLEAR_NPC,{ unknown_d(12197,935); }
+mjolnir_04,191,154,0 script Scale Shells CLEAR_NPC,{ unknown_d(12198,936); }
+mjolnir_04,162,168,0 script Venom Canines CLEAR_NPC,{ unknown_d(12199,937); }
+prt_fild02,102,97,0 script Sticky Mucus CLEAR_NPC,{ unknown_d(12200,938); }
+mjolnir_09,99,100,0 script Bee Stings CLEAR_NPC,{ unknown_d(12201,939); }
+prt_fild07,76,122,0 script Grasshopper's Legs CLEAR_NPC,{ unknown_d(12202,940); }
+prt_fild03,64,35,0 script Royal Jelly CLEAR_NPC,{ unknown_d(12203,526); }
+prt_fild03,180,163,0 script Yoyo Tails CLEAR_NPC,{ unknown_d(12204,942); }
+prt_fild03,226,170,0 script Solid Shells CLEAR_NPC,{ unknown_d(12205,943); }
+prt_fild03,262,201,0 script Nice Sweet Potato CLEAR_NPC,{ unknown_d(12206,549); }
+prt_fild03,284,190,0 script Raccoon Leaf CLEAR_NPC,{ unknown_d(12207,945); }
+gef_fild09,67,46,0 script Snail's Shells CLEAR_NPC,{ unknown_d(12208,946); }
+prt_fild03,366,237,0 script Horns CLEAR_NPC,{ unknown_d(12209,947); }
+pay_fild07,269,164,0 script Bear's Footskin CLEAR_NPC,{ unknown_d(12210,948); }
+prt_fild02,142,116,0 script Feathers CLEAR_NPC,{ unknown_d(12211,949); }
+prt_fild02,97,209,0 script Red Herbs CLEAR_NPC,{ unknown_d(12212,507); }
+prt_fild02,280,328,0 script Carrots CLEAR_NPC,{ unknown_d(12213,515); }
+moc_fild01,169,62,0 script Cactus Needles CLEAR_NPC,{ unknown_d(12214,952); }
+cmd_fild08,324,163,0 script Stone Hearts CLEAR_NPC,{ unknown_d(12215,953); }
-dic_in01,138,225,3 script Diel Guard#ep133_19 492,{
+dic_in01,138,225,3 script Diel Guard#ep133_19 4_MAN_GALTUN1,{
if (!isequipped(2782)) {
mes "[Diel Guard]";
mes "¡ô¡ó¡ö ¡÷ ¡þ¡ù¡ó?";
@@ -1218,13 +1251,13 @@ dic_in01,138,225,3 script Diel Guard#ep133_19 492,{
close;
}
-dic_in01,242,182,0 script Elevator#5f_to_4f 844,{
+dic_in01,242,182,0 script Elevator#5f_to_4f CLEAR_NPC,{
select("Administrative Office");
warp "dic_in01",138,221;
end;
}
-dic_in01,263,193,3 script Diel Guard#ep133_20 450,{
+dic_in01,263,193,3 script Diel Guard#ep133_20 4_MAN_GALTUN,{
if (!isequipped(2782)) {
mes "[Diel Guard]";
mes "¡ô¡ó¡ö ¡÷ ¡þ¡ù¡ó?";
@@ -1278,14 +1311,14 @@ dic_in01,263,193,3 script Diel Guard#ep133_20 450,{
close;
}
-dic_in01,299,268,0 script #ep133_event01 139,4,4,{
+dic_in01,299,268,0 script #ep133_event01 HIDDEN_WARP_NPC,4,4,{
end;
OnTouch:
if (ep13_3_secret == 13) {
mes "As soon as you enter the room, someone";
mes "pushes down your head to force you to bow.";
soundeffect "wander_man_move.wav",0;
- sc_start SC_Blind,60000,0;
+ sc_start SC_BLIND,60000,0;
next;
mes "[Ringing Voice]";
mes "That is fine, Cheshire.";
@@ -1298,7 +1331,7 @@ OnTouch:
cutin (Sex?"ep13_ahat_f":"ep13_ahat_m"),1;
mes "You hold up your head at the sound of Ahat's voice";
mes "But you see a human in high-ranking Sapha clothing in front of you.";
- sc_end SC_Blind;
+ sc_end SC_BLIND;
emotion e_omg,1;
set ep13_3_secret, 14;
erasequest 7198;
@@ -1308,7 +1341,7 @@ OnTouch:
end;
}
-dic_in01,294,276,5 script Secret Adjutant#ep133_2 498,{
+dic_in01,294,276,5 script Secret Adjutant#ep133_2 4_M_CATMAN2,{
// if ((GetInventoryRemainCount 1301 3 == 2) || (GetInventoryRemainCount 1301 3 == 3)) {
if ((MaxWeight - Weight) < 1000) {
mes "- You can too many items to proceed with the quest. -";
@@ -1472,7 +1505,7 @@ dic_in01,294,276,5 script Secret Adjutant#ep133_2 498,{
end;
}
-dic_in01,300,280,5 script Minister Ahat#ep133_21 493,{
+dic_in01,300,280,5 script Minister Ahat#ep133_21 4_HUMAN_GERUTOO,{
// if ((GetInventoryRemainCount 1301 3 == 2) || (GetInventoryRemainCount 1301 3 == 3)) {
if ((MaxWeight - Weight) < 1000) {
mes "- You can too many items to proceed with the quest. -";
@@ -1490,7 +1523,7 @@ dic_in01,300,280,5 script Minister Ahat#ep133_21 493,{
mes "As soon as you try to approach Ahat, someone";
mes "pushes down your head to force you to bow.";
soundeffect "wander_man_move.wav",0;
- SC_Start SC_Blind,60000,0;
+ sc_start SC_BLIND,60000,0;
next;
mes "[Ringing Voice]";
mes "That is fine, Cheshire.";
@@ -1503,7 +1536,7 @@ dic_in01,300,280,5 script Minister Ahat#ep133_21 493,{
cutin (Sex?"ep13_ahat_f":"ep13_ahat_m"),2;
mes "You hold up your head at the sound of Ahat's voice";
mes "But you see a human in high-ranking Sapha clothing in front of you.";
- SC_End SC_Blind;
+ sc_end SC_BLIND;
emotion e_omg,1;
set ep13_3_secret, 14;
erasequest 7198;
@@ -1759,7 +1792,7 @@ dic_in01,300,280,5 script Minister Ahat#ep133_21 493,{
end;
}
-dic_in01,138,188,0 script #ep133_event02 139,4,4,{
+dic_in01,138,188,0 script #ep133_event02 HIDDEN_WARP_NPC,4,4,{
OnTouch:
if (ep13_3_secret == 19) {
if (!isequipped(2782)) {
@@ -1773,12 +1806,12 @@ OnTouch:
mes "Just a moment.";
}
close2;
- warp "dic_in01",155,188;
+ warp "dic_in01",155,188;
}
end;
}
-dic_in01,158,188,3 script Jarute HesLanta#ep133_2 451,{
+dic_in01,158,188,3 script Jarute HesLanta#ep133_2 4_MAN_JERUTOO,{
if (!isequipped(2782)) {
mes "[Jarute HesLanta]";
mes "¡ô¡ó¡ö ¡÷ ¡þ¡ù¡ó?";
@@ -2281,7 +2314,7 @@ dic_in01,158,188,3 script Jarute HesLanta#ep133_2 451,{
close;
}
-dicastes01,223,190,1 script Calyon#pa8029 453,{
+dicastes01,223,190,1 script Calyon#pa8029 4_MAN_NITT,{
if (checkweight(1201,1) == 0) {
mes "You have too many kinds of items. Let's try again after you reduce the number of items.";
close;
@@ -2454,7 +2487,7 @@ dicastes01,223,190,1 script Calyon#pa8029 453,{
close;
}
-dicastes01,211,178,2 script Moltuka#pa0829 453,{
+dicastes01,211,178,2 script Moltuka#pa0829 4_MAN_NITT,{
if (!checkweight(1201,1)) {
mes "You have too many kinds of items. Let's try again after you reduce the number of items.";
close;
@@ -2678,7 +2711,7 @@ dicastes01,211,178,2 script Moltuka#pa0829 453,{
}
}
-dicastes01,175,217,5 script Kalipo#pa0829 453,{
+dicastes01,175,217,5 script Kalipo#pa0829 4_MAN_NITT,{
if (!checkweight(1201,1)) {
mes "You have too many kinds of items. Let's try again after you reduce the number of items.";
close;
@@ -2820,7 +2853,7 @@ dicastes01,175,217,5 script Kalipo#pa0829 453,{
}
}
-dicastes01,187,230,5 script Laponte#pa0829 453,{
+dicastes01,187,230,5 script Laponte#pa0829 4_MAN_NITT,{
if (checkweight(1201,1) == 0) {
mes "You have too many kinds of items. Let's try again after you reduce the number of items.";
close;
@@ -2991,7 +3024,7 @@ dicastes01,187,230,5 script Laponte#pa0829 453,{
}
}
-dicastes01,208,230,3 script Pura#pa0829 453,{
+dicastes01,208,230,3 script Pura#pa0829 4_MAN_NITT,{
if (!checkweight(1201,1)) {
mes "You have too many kinds of items. Let's try again after you reduce the number of items.";
close;
@@ -3182,7 +3215,7 @@ dicastes01,208,230,3 script Pura#pa0829 453,{
close;
}
-dicastes01,225,211,3 script Tragis#pa0829 453,{
+dicastes01,225,211,3 script Tragis#pa0829 4_MAN_NITT,{
if (!checkweight(1201,1)) {
mes "You have too many kinds of items. Let's try again after you reduce the number of items.";
close;
@@ -3354,10 +3387,8 @@ dicastes01,225,211,3 script Tragis#pa0829 453,{
// Doha's Secret Orders
//============================================================
-
-mid_campin,168,170,3 script Inspector Doha#ep133 59,{
-// if ((GetInventoryRemainCount 1301 3 == 2) || (GetInventoryRemainCount 1301 3 == 3)) {
- if ((MaxWeight - Weight) < 1000) {
+mid_campin,168,170,3 script Inspector Doha#ep133 1_M_ORIENT01,{
+ if (checkweight(1201,1) == 0 || MaxWeight - Weight < 1000) {
mes "- You can too many items to proceed with the quest. -";
close;
}
@@ -3636,7 +3667,7 @@ mid_campin,168,170,3 script Inspector Doha#ep133 59,{
close;
}
-dic_in01,245,119,4 script Shay#ep133_13 884,{
+dic_in01,245,119,4 script Shay#ep133_13 4_M_ACROSS,{
// if ((GetInventoryRemainCount 1301 3 == 2) || (GetInventoryRemainCount 1301 3 == 3)) {
if ((MaxWeight - Weight) < 1000) {
mes "- You can too many items to proceed with the quest. -";
@@ -3645,11 +3676,11 @@ dic_in01,245,119,4 script Shay#ep133_13 884,{
cutin "ep13_shy",2;
mes "[Shay]";
switch (rand(1,5)) {
- Case 1: mes ".. Burman Flone."; break;
- Case 2: mes "What?"; break;
- Case 3: mes "Boring. What is it?"; break;
- Case 4: mes "Sigh... Ready to order?"; break;
- Case 5:
+ case 1: mes ".. Burman Flone."; break;
+ case 2: mes "What?"; break;
+ case 3: mes "Boring. What is it?"; break;
+ case 4: mes "Sigh... Ready to order?"; break;
+ case 5:
mes "Another failure?.";
mes "I'm talking to myself. Don't bother.";
mes "What do you want?";
@@ -3662,7 +3693,7 @@ dic_in01,245,119,4 script Shay#ep133_13 884,{
mes "What will it be?";
mes "I have Tropical Sograt and Vermilion on the Beach flown in from Morroc.";
mes "A bit on the expensive side though.";
- next;
+ next;
if (select("Tropical Sorgrat - 2000z:Vermilion on the Beach - 2000z:Anything else?") == 3) {
mes "[Shay]";
mes "Here.. ";
@@ -3675,7 +3706,7 @@ dic_in01,245,119,4 script Shay#ep133_13 884,{
if (Zeny > 1999) {
mes "[Shay]";
mes "Here is your "+.@str$[@menu]+".";
- set Zeny, Zeny - 2000;
+ Zeny -= 2000;
getitem .@item[@menu],1; //Tropical_Sograt
break;
}
@@ -3808,7 +3839,7 @@ dic_in01,245,119,4 script Shay#ep133_13 884,{
mes "What is it now?";
mes "Any luck?";
next;
- setarray .@ward$,
+ setarray .@ward$,
"7188","The Knits at the square are interested in Ahat.",
"7189","I heard from Pioms that most of the Saphas are interested in the minister.",
"7190","Galtens are interested in the Cat Merchant for their cat ears.";
@@ -4259,7 +4290,7 @@ dic_in01,245,119,4 script Shay#ep133_13 884,{
end;
}
-dicastes01,207,210,5 script Walking Knit#ep133_15 449,{
+dicastes01,207,210,5 script Walking Knit#ep133_15 4_MAN_BENKUNI,{
if (!isequipped(2782)) {
mes "[Knit]";
mes "¡õ¢£¡ô";
@@ -4357,7 +4388,7 @@ dicastes01,207,210,5 script Walking Knit#ep133_15 449,{
close2;
}
-dicastes01,112,248,5 script Resting Piom#ep133_16 491,{
+dicastes01,112,248,5 script Resting Piom#ep133_16 4_MAN_PIOM5,{
mes "[Piom]";
if (!isequipped(2782)) {
mes "¡ñ¡÷¢¤ ¡ö ¢±¡ñ¡ú?";
@@ -4430,7 +4461,7 @@ dicastes01,112,248,5 script Resting Piom#ep133_16 491,{
close;
}
-dicastes01,249,140,3 script Training Galten#ep133_17 450,{
+dicastes01,249,140,3 script Training Galten#ep133_17 4_MAN_GALTUN,{
if (!isequipped(2782)) {
mes "[Galten]";
mes "¡ø¡ô¡ü ¡ø ¡ø¡ô¡ü";
@@ -4502,7 +4533,7 @@ dicastes01,249,140,3 script Training Galten#ep133_17 450,{
close;
}
-dic_fild01,231,174,5 script BK#ep133_18 496,{
+dic_fild01,231,174,5 script BK#ep133_18 4_M_MERCAT2,{
if (ep13_3_secret < 3) {
mes "[BK]";
mes "Ha. I'm the information collector of the Cat Merchants.";
@@ -4810,7 +4841,7 @@ dic_fild01,231,174,5 script BK#ep133_18 496,{
set ep13_3_secret, 11;
getitem .@item[.@type], 1;
erasequest 7193;
- setquest 7194;
+ setquest 7194;
donpcevent strnpcinfo(0)+"::OnDisable";
next;
mes "[" + strcharinfo(0) + "]";
@@ -4871,7 +4902,7 @@ dic_fild01,231,174,5 script BK#ep133_18 496,{
}
if (.@npc$[.@type] == "Rock Pile") mes "You collect another stone fragment that emits a strange magical force.";
else if (.@npc$[.@type] == "Dirt Pile") mes "You collect another clotted bloodstain from a dirt pile.";
- else if (.@npc$[.@type] == "Split Earth") mes "You collect another piece of skin frozen in the frost in the crack of the split earth.";
+ else if (.@npc$[.@type] == "Split Earth") mes "You collect another piece of skin frozen in the frost in the crack of the split earth.";
getitem .@item[.@type], 1;
donpcevent strnpcinfo(0)+"::OnDisable";
close;
@@ -4929,40 +4960,40 @@ OnTimer300000:
stopnpctimer;
end;
}
-dic_fild02,269,55,0 duplicate(ep133_crack#main) Rock Pile#ep133_ef1 844
-dic_fild02,236,29,0 duplicate(ep133_crack#main) Rock Pile#ep133_ef2 844
-dic_fild02,220,34,0 duplicate(ep133_crack#main) Rock Pile#ep133_ef3 844
-dic_fild02,228,55,0 duplicate(ep133_crack#main) Rock Pile#ep133_ef4 844
-dic_fild02,228,63,0 duplicate(ep133_crack#main) Rock Pile#ep133_ef5 844
-dic_fild02,210,75,0 duplicate(ep133_crack#main) Rock Pile#ep133_ef6 844
-dic_fild02,213,35,0 duplicate(ep133_crack#main) Rock Pile#ep133_ef7 844
-dic_fild02,171,49,0 duplicate(ep133_crack#main) Rock Pile#ep133_ef8 844
-dic_fild02,266,44,0 duplicate(ep133_crack#main) Rock Pile#ep133_ef9 844
-dic_fild02,174,79,0 duplicate(ep133_crack#main) Rock Pile#ep133_ef10 844
-dic_fild02,215,85,0 duplicate(ep133_crack#main) Dirt Pile#ep133_ef1 844
-dic_fild02,207,41,0 duplicate(ep133_crack#main) Dirt Pile#ep133_ef2 844
-dic_fild02,232,41,0 duplicate(ep133_crack#main) Dirt Pile#ep133_ef3 844
-dic_fild02,245,68,0 duplicate(ep133_crack#main) Dirt Pile#ep133_ef4 844
-dic_fild02,184,63,0 duplicate(ep133_crack#main) Dirt Pile#ep133_ef5 844
-dic_fild02,207,94,0 duplicate(ep133_crack#main) Dirt Pile#ep133_ef6 844
-dic_fild02,230,71,0 duplicate(ep133_crack#main) Dirt Pile#ep133_ef7 844
-dic_fild02,188,50,0 duplicate(ep133_crack#main) Dirt Pile#ep133_ef8 844
-dic_fild02,248,36,0 duplicate(ep133_crack#main) Dirt Pile#ep133_ef9 844
-dic_fild02,206,115,0 duplicate(ep133_crack#main) Dirt Pile#ep133_ef10 844
-dic_fild02,194,86,0 duplicate(ep133_crack#main) Split Earth#ep133_ef1 844
-dic_fild02,240,51,0 duplicate(ep133_crack#main) Split Earth#ep133_ef2 844
-dic_fild02,176,65,0 duplicate(ep133_crack#main) Split Earth#ep133_ef3 844
-dic_fild02,254,45,0 duplicate(ep133_crack#main) Split Earth#ep133_ef4 844
-dic_fild02,178,119,0 duplicate(ep133_crack#main) Split Earth#ep133_ef5 844
-dic_fild02,200,81,0 duplicate(ep133_crack#main) Split Earth#ep133_ef6 844
-dic_fild02,205,54,0 duplicate(ep133_crack#main) Split Earth#ep133_ef7 844
-dic_fild02,224,74,0 duplicate(ep133_crack#main) Split Earth#ep133_ef8 844
-dic_fild02,244,59,0 duplicate(ep133_crack#main) Split Earth#ep133_ef9 844
-dic_fild02,249,43,0 duplicate(ep133_crack#main) Split Earth#ep133_ef10 844
+dic_fild02,269,55,0 duplicate(ep133_crack#main) Rock Pile#ep133_ef1 CLEAR_NPC
+dic_fild02,236,29,0 duplicate(ep133_crack#main) Rock Pile#ep133_ef2 CLEAR_NPC
+dic_fild02,220,34,0 duplicate(ep133_crack#main) Rock Pile#ep133_ef3 CLEAR_NPC
+dic_fild02,228,55,0 duplicate(ep133_crack#main) Rock Pile#ep133_ef4 CLEAR_NPC
+dic_fild02,228,63,0 duplicate(ep133_crack#main) Rock Pile#ep133_ef5 CLEAR_NPC
+dic_fild02,210,75,0 duplicate(ep133_crack#main) Rock Pile#ep133_ef6 CLEAR_NPC
+dic_fild02,213,35,0 duplicate(ep133_crack#main) Rock Pile#ep133_ef7 CLEAR_NPC
+dic_fild02,171,49,0 duplicate(ep133_crack#main) Rock Pile#ep133_ef8 CLEAR_NPC
+dic_fild02,266,44,0 duplicate(ep133_crack#main) Rock Pile#ep133_ef9 CLEAR_NPC
+dic_fild02,174,79,0 duplicate(ep133_crack#main) Rock Pile#ep133_ef10 CLEAR_NPC
+dic_fild02,215,85,0 duplicate(ep133_crack#main) Dirt Pile#ep133_ef1 CLEAR_NPC
+dic_fild02,207,41,0 duplicate(ep133_crack#main) Dirt Pile#ep133_ef2 CLEAR_NPC
+dic_fild02,232,41,0 duplicate(ep133_crack#main) Dirt Pile#ep133_ef3 CLEAR_NPC
+dic_fild02,245,68,0 duplicate(ep133_crack#main) Dirt Pile#ep133_ef4 CLEAR_NPC
+dic_fild02,184,63,0 duplicate(ep133_crack#main) Dirt Pile#ep133_ef5 CLEAR_NPC
+dic_fild02,207,94,0 duplicate(ep133_crack#main) Dirt Pile#ep133_ef6 CLEAR_NPC
+dic_fild02,230,71,0 duplicate(ep133_crack#main) Dirt Pile#ep133_ef7 CLEAR_NPC
+dic_fild02,188,50,0 duplicate(ep133_crack#main) Dirt Pile#ep133_ef8 CLEAR_NPC
+dic_fild02,248,36,0 duplicate(ep133_crack#main) Dirt Pile#ep133_ef9 CLEAR_NPC
+dic_fild02,206,115,0 duplicate(ep133_crack#main) Dirt Pile#ep133_ef10 CLEAR_NPC
+dic_fild02,194,86,0 duplicate(ep133_crack#main) Split Earth#ep133_ef1 CLEAR_NPC
+dic_fild02,240,51,0 duplicate(ep133_crack#main) Split Earth#ep133_ef2 CLEAR_NPC
+dic_fild02,176,65,0 duplicate(ep133_crack#main) Split Earth#ep133_ef3 CLEAR_NPC
+dic_fild02,254,45,0 duplicate(ep133_crack#main) Split Earth#ep133_ef4 CLEAR_NPC
+dic_fild02,178,119,0 duplicate(ep133_crack#main) Split Earth#ep133_ef5 CLEAR_NPC
+dic_fild02,200,81,0 duplicate(ep133_crack#main) Split Earth#ep133_ef6 CLEAR_NPC
+dic_fild02,205,54,0 duplicate(ep133_crack#main) Split Earth#ep133_ef7 CLEAR_NPC
+dic_fild02,224,74,0 duplicate(ep133_crack#main) Split Earth#ep133_ef8 CLEAR_NPC
+dic_fild02,244,59,0 duplicate(ep133_crack#main) Split Earth#ep133_ef9 CLEAR_NPC
+dic_fild02,249,43,0 duplicate(ep133_crack#main) Split Earth#ep133_ef10 CLEAR_NPC
// Frede's Request
//============================================================
-dicastes01,117,262,0 script Frede#13_3 491,2,2,{
+dicastes01,117,262,0 script Frede#13_3 4_MAN_PIOM5,2,2,{
if (isequipped(2782)) {
if (ep13_3_invite <= 5) {
mes "[Frede]";
@@ -5008,7 +5039,7 @@ dicastes01,117,262,0 script Frede#13_3 491,2,2,{
close;
}
mes "[Frede]";
- mes "¢£¡ô¡ñ ¡û";
+ mes "¢£¡ô¡ñ ¡û";
mes "¡ú¡ö¡ø ¢£ ¡ô";
close;
OnTouch:
@@ -5020,7 +5051,7 @@ OnTouch:
end;
}
-dic_in01,165,104,0 script Frede#13_3_in 454,{
+dic_in01,165,104,0 script Frede#13_3_in 4_MAN_PIOM,{
if (isequipped(2782)) {
if (ep13_3_bra < 1) {
mes "[Frede]";
@@ -5127,7 +5158,7 @@ dic_in01,165,104,0 script Frede#13_3_in 454,{
mes "Maybe......they forgot?";
next;
mes "[Frede]";
- mes "Oh.. what should I do......";
+ mes "Oh... what should I do......";
mes "I would run there myself if only my legs would move normally.";
next;
mes "[Frede]";
@@ -5158,7 +5189,7 @@ dic_in01,165,104,0 script Frede#13_3_in 454,{
}
else if (ep13_3_bra == 3) {
mes "[Frede]";
- mes "Oh.. what should I do......";
+ mes "Oh... what should I do......";
mes "I would run there myself if only my legs would move normally.";
next;
mes "[Frede]";
@@ -5318,7 +5349,7 @@ dic_in01,165,104,0 script Frede#13_3_in 454,{
close;
}
-dic_dun01,205,43,5 script Brian#ep13_3_ 490,{
+dic_dun01,205,43,5 script Brian#ep13_3_ 4_MAN_PIOM4,{
if (isequipped(2782)) {
if (ep13_3_bra < 4) {
mes "[Brian]";
@@ -5417,7 +5448,7 @@ dic_dun01,205,43,5 script Brian#ep13_3_ 490,{
close;
}
-dic_dun01,153,107,4 script Tyler#13_3 489,{
+dic_dun01,153,107,4 script Tyler#13_3 4_MAN_PIOM6,{
if (isequipped(2782)) {
if (ep13_3_bra < 4) {
mes "[Tyler]";
@@ -5543,7 +5574,7 @@ dic_dun01,153,107,4 script Tyler#13_3 489,{
close;
}
-dic_dun01,235,243,0 script John#13_3 454,{
+dic_dun01,235,243,0 script John#13_3 4_MAN_PIOM,{
if (isequipped(2782)) {
if (ep13_3_bra < 4) {
mes "[John]";
@@ -5645,7 +5676,7 @@ dic_dun01,235,243,0 script John#13_3 454,{
close;
}
-dic_dun02,110,127,5 script Rose#13_3 489,{
+dic_dun02,110,127,5 script Rose#13_3 4_MAN_PIOM6,{
if (isequipped(2782)) {
if (ep13_3_bra < 4) {
mes "[Rose]";
@@ -5744,7 +5775,7 @@ dic_dun02,110,127,5 script Rose#13_3 489,{
close;
}
-dic_dun01,64,107,7 script Bain#13_3 490,{
+dic_dun01,64,107,7 script Bain#13_3 4_MAN_PIOM4,{
if (isequipped(2782)) {
if (ep13_3_bra < 4) {
mes "[Bain]";
@@ -5838,7 +5869,7 @@ dic_dun01,64,107,7 script Bain#13_3 490,{
close;
}
-dic_dun01,58,225,4 script Lash#13_3 491,{
+dic_dun01,58,225,4 script Lash#13_3 4_MAN_PIOM5,{
if (isequipped(2782)) {
if (ep13_3_bra < 4) {
mes "[Lash]";
@@ -5939,7 +5970,7 @@ dic_dun01,58,225,4 script Lash#13_3 491,{
close;
}
-dic_in01,349,129,5 script Bouy#13_3 449,{
+dic_in01,349,129,5 script Bouy#13_3 4_MAN_BENKUNI,{
if (isequipped(2782)) {
if (ep13_3_bra < 5) {
mes "[Bouy]";
@@ -5999,7 +6030,7 @@ dic_in01,349,129,5 script Bouy#13_3 449,{
mes "I've been waiting for the Galtens to return because I'm not accustomed to battle since I'm Venknick. Thank you very much.";
next;
mes "[Bouy]";
- mes "Handwork is much faster to refine pieces of Bradium instead of using a machine. I will only need an hour to finish.";
+ mes "Handwork is much faster to refine pieces of Bradium instead of using a machine. I will only need two hours to finish."; //Official: "an hour", but gives 2-hour quest.
next;
mes "[Bouy]";
mes "Please go rest while I get to work.";
@@ -6056,7 +6087,7 @@ dic_in01,349,129,5 script Bouy#13_3 449,{
close;
}
mes "[Bouy]";
- mes "¡ø¡ö¡þ ¡ù ¡ú¡ð¡ï ¡ø";
+ mes "¡ø¡ö¡þ ¡ù ¡ú¡ð¡ï ¡ø";
mes "¡ï¡ú¡ö ¡ù";
mes "¡õ¡ï¡õ ¡ò";
close;
@@ -6070,7 +6101,7 @@ dic_in01,349,129,5 script Bouy#13_3 449,{
mes "[Maha]";
mes "But I do think the Sapha race is overly kind, almost unnaturally.";
mes "Guess it'll be fine.";
- close;
+ close;
}
mes "[Ben]";
mes "There is nothing strange!";
@@ -6078,7 +6109,7 @@ dic_in01,349,129,5 script Bouy#13_3 449,{
next;
mes "[Ben]";
mes "I can also visit the Sapha if I work well here, can't I?";
- close;
+ close;
}
mes "[Ben]";
mes "Hmm. Hey, Maha,";
@@ -6152,10 +6183,10 @@ dic_in01,349,129,5 script Bouy#13_3 449,{
mes "Try seeing ^4d4dffAello^000000.";
close;
}
-mid_camp,220,246,5 duplicate(Expedition#ep133_is) Expedition Guard Ben 930
-mid_camp,223,246,4 duplicate(Expedition#ep133_is) Expedition Guard Maha 868
+mid_camp,220,246,5 duplicate(Expedition#ep133_is) Expedition Guard Ben 4_M_RACHMAN2
+mid_camp,223,246,4 duplicate(Expedition#ep133_is) Expedition Guard Maha 4_M_LGTGUARD
-mid_campin,93,114,3 script Guard Aello#ep133_is03 967,{
+mid_campin,93,114,3 script Guard Aello#ep133_is03 4_M_RUSMAN1,{
if (ep13_ryu > 99 || ep13_start > 99) {
if (ep13_3_invite == 0) {
mes "[Aello]";
@@ -6211,7 +6242,7 @@ mid_campin,93,114,3 script Guard Aello#ep133_is03 967,{
close;
}
-mid_campin,111,120,3 script Soldier#ep133_is04 852,{
+mid_campin,111,120,3 script Soldier#ep133_is04 4_M_EIN_SOLDIER,{
if (ep13_3_invite == 1) {
mes "[Soldier]";
mes "Sorry, but this room is currently restricted from visitors.";
@@ -6367,7 +6398,7 @@ function script eldicastes_c {
mes "[Vyhannus]";
mes "Amazing.";
mes "Like with Hound, that ring you humans made...";
- mes "is like a ring of wisdom.";
+ mes "is like a ring of wisdom.";
}
else {
mes "[Hound]";
@@ -6382,7 +6413,7 @@ function script eldicastes_c {
}
mes "[Vyhannus]";
mes "Shall we skip to the point?";
- mes "The reason why I am here...";
+ mes "The reason why I am here...";
next;
mes "[Someone's voice]";
mes "Excuse me, hold on a second.";
@@ -6465,7 +6496,7 @@ function script eldicastes_c {
}
}
-mid_campin,168,128,3 script Sapha from Manuk 451,{
+mid_campin,168,128,3 script Sapha from Manuk 4_MAN_JERUTOO,{
if (isequipped(2782)) {
if (!ep13_3_invite) {
mes "-Looks like the Sapha messenger from Manuk.-";
@@ -6481,7 +6512,7 @@ mid_campin,168,128,3 script Sapha from Manuk 451,{
mes "You just stand there without";
mes "knowing what he says, so the";
mes "expedition guard next to you starts to talk. -";
- next;
+ next;
callfunc "eldicastes_c",3;
}
else if (ep13_3_invite == 2) {
@@ -6491,7 +6522,7 @@ mid_campin,168,128,3 script Sapha from Manuk 451,{
mes "He's name is Galten. He is so quick, you won't notice the weight of his armor.";
next;
callfunc "eldicastes_c",1;
- }
+ }
else if (ep13_3_invite == 3) {
callfunc "eldicastes_c",2;
}
@@ -6502,7 +6533,7 @@ mid_campin,168,128,3 script Sapha from Manuk 451,{
mes "The tunnel might be a little scary.";
mes "But I'm sure you will reach the end of it since you are strong.";
close;
- }
+ }
else if (ep13_3_invite == 5) {
mes "[Vyhannus]";
mes "Oh, the tunnel?";
@@ -6515,8 +6546,8 @@ mid_campin,168,128,3 script Sapha from Manuk 451,{
next;
mes "[Vyhannus]";
mes "That is it.";
- close;
- }
+ close;
+ }
else if (ep13_3_invite == 6) {
mes "[Vyhannus]";
mes "You received the Light of El Dicastes.";
@@ -6563,7 +6594,7 @@ mid_campin,168,128,3 script Sapha from Manuk 451,{
close;
}
-mid_campin,168,125,3 script Hound#ep133_is06 997,{
+mid_campin,168,125,3 script Hound#ep133_is06 4_M_MOCASS1,{
if (!isequipped(2782)) {
mes "[Hound]";
mes "Where is the interpreter ring?";
@@ -6582,10 +6613,10 @@ mid_campin,168,125,3 script Hound#ep133_is06 997,{
}
else if (ep13_3_invite == 2) {
callfunc "eldicastes_c",1;
- }
+ }
else if (ep13_3_invite == 3) {
callfunc "eldicastes_c",2;
- }
+ }
else if (ep13_3_invite == 4) {
mes "[Hound]";
mes "First thing you need to do when you reach Manuk is to meet General Guard Avalanche.";
@@ -6598,7 +6629,7 @@ mid_campin,168,125,3 script Hound#ep133_is06 997,{
mes "[Hound]";
mes "And don't forget what the captain said.";
mes "Inspector Doha is in the next room.";
- close;
+ close;
}
else if (ep13_3_invite > 4) {
mes "[Hound]";
@@ -6622,23 +6653,23 @@ mid_campin,168,125,3 script Hound#ep133_is06 997,{
close;
}
-mid_campin,165,127,5 script Hibba Agip#ep133_is07 459,{
+mid_campin,165,127,5 script Hibba Agip#ep133_is07 4_M_REDSWORD,{
mes "[Hibba Agip]";
mes "Hmm..?";
mes "I should go now.";
close2;
OnInit:
disablenpc strnpcinfo(0);
- end;
+ end;
}
-man_in01,315,52,3 script Guard Captain Avalanche 450,{
+man_in01,315,52,3 script Guard Captain Avalanche 4_MAN_GALTUN,{
mes "[Guard Captain Avalanche]";
if (!isequipped(2782)) {
mes "¢¤¡ð¡ú? ¢£ ¡ù¡ð...";
mes "¡ï¡ò¡Ð ¢¤ ?";
mes "¡ñ¡ï..?";
- close;
+ close;
}
if (ep13_3_invite == 4) {
mes "[Avalanche]";
@@ -6710,7 +6741,7 @@ man_in01,315,52,3 script Guard Captain Avalanche 450,{
close;
}
-dic_in01,42,264,3 script Adventurer Clerk#ep133 453,{
+dic_in01,42,264,3 script Adventurer Clerk#ep133 4_MAN_NITT,{
if (!isequipped(2782)) {
mes "[Clerk Knit]";
mes "¡ð¡ñ¡ô ¡õ ¡ü¢±¢³ ¡ö ¡ò...?";
@@ -6912,7 +6943,6 @@ dic_in01,42,264,3 script Adventurer Clerk#ep133 453,{
}
// Enchantment NPCs
//============================================================
-
- script dic_enc#main -1,{
set .@re$, strnpcinfo(1);
set .@n$, "["+.@re$+"]";
@@ -6929,8 +6959,37 @@ dic_in01,42,264,3 script Adventurer Clerk#ep133 453,{
mes "[Kareka]";
mes "Do you want to upgrade the ^990099Light of El Dicastes^000000 again?";
next;
+
+ // The reset feature was disabled in previous versions.
+ //mes "[Kareka]";
+ //mes "Ha ha ha, that is out of the question. This item is very rare and valuable so I cannot give you a new one.";
+ //close;
+
+ mes "[Kareka]";
+ mes "That will cost ^9900996 Sapha Certifications^000000 in order to retry.";
+ mes "And note this, your current Light of El Dicastes will be destroyed along with all of its enchantments.";
+ next;
mes "[Kareka]";
- mes "Ha ha ha, that is out of the question. This item is very rare and valuable so I cannot give you a new one.";
+ mes "Are you sure you want to do this?";
+ next;
+ if(select("No, let me think about it.:Take my Light of El Dicastes.") == 2) {
+ if (countitem(2844) == 0 || countitem(6304) < 6) {
+ mes "[Kareka]";
+ mes "You need to bring the Light of El Dicastes and 6 Sapha Certifications!";
+ mes "Don't try to cheat me!";
+ close;
+ }
+ mes "[Kareka]";
+ mes "Ok, let's get this started.";
+ mes "I'm going to remove all enchantments from your Light of El Dicastes.";
+ mes "Haaap--!";
+ specialeffect2 EF_REPAIRWEAPON;
+ progressbar "ffff00",3;
+ delitem 6304,6; //Sapa_Feat_Cert
+ delitem 2844,1; //El_Dicastes_Light
+ getitem 2844,1; //El_Dicastes_Light
+ set ep13_3_ring2,0;
+ }
close;
}
if (countitem(6304) < 1) {
@@ -6973,21 +7032,21 @@ dic_in01,42,264,3 script Adventurer Clerk#ep133 453,{
mes .@n$;
set .@cat_hi, rand(1,30);
if (.@cat_hi == 1) mes "It is difficult to find fish here. Can't find any so Jahbong would forget that he's busy or angry at the sight of a Fish Tail.";
- if (.@cat_hi == 2) mes "Grrr... I was punished with a ladle for peeing on my blanket yesterday.";
- if (.@cat_hi == 3) mes "I dream sometimes of a giant patting me on the head. But I feel more annoyed than afraid.";
- if (.@cat_hi == 4) mes "Newbie Jarute, Ahat doesn't seem to look like a Sapha.";
- if (.@cat_hi == 5) mes "Our people say Ahat looks like a beautiful cat.";
- if (.@cat_hi == 6) mes "I heard there was a superior equipment upgrade craftsman in the capital city of Manuk.";
- if (.@cat_hi == 7) mes "Grrr... I don't think my voice sounds normal these days. I think it's the weather.";
- if (.@cat_hi == 8) mes "There are times when I shout out loud but it is only because I am in a good mood. No need to be startled.";
- if (.@cat_hi == 9) mes "I feel an urge to jump on a pile with my four paws when I see one.";
- if (.@cat_hi == 10) mes "I must have been a cat in my previous life.";
- if (.@cat_hi == 11) mes "I dreamt about the giant again. I waved my paws annoyed and he kept on patting me.";
- if (.@cat_hi == 12) mes "Yup!! Was the rumor true that Ahat looks like a human?! ";
- if (.@cat_hi == 13) mes "I heard on my way that this Pinqucula Dark has a Withered Flower.";
- if (.@cat_hi == 14) mes "There is a guy named Pinguicula nearby who has the Sharp Leaf nearby.";
- if (.@cat_hi == 15) mes "There is a guy named Pinguicula nearby who has the Great Leaf nearby.";
- if (.@cat_hi == 16) mes "I recommend getting it from the Dracos nearby. But then, they only drop it randomly so you may come back empty handed...";
+ else if (.@cat_hi == 2) mes "Grrr... I was punished with a ladle for peeing on my blanket yesterday.";
+ else if (.@cat_hi == 3) mes "I dream sometimes of a giant patting me on the head. But I feel more annoyed than afraid.";
+ else if (.@cat_hi == 4) mes "Newbie Jarute, Ahat doesn't seem to look like a Sapha.";
+ else if (.@cat_hi == 5) mes "Our people say Ahat looks like a beautiful cat.";
+ else if (.@cat_hi == 6) mes "I heard there was a superior equipment upgrade craftsman in the capital city of Manuk.";
+ else if (.@cat_hi == 7) mes "Grrr... I don't think my voice sounds normal these days. I think it's the weather.";
+ else if (.@cat_hi == 8) mes "There are times when I shout out loud but it is only because I am in a good mood. No need to be startled.";
+ else if (.@cat_hi == 9) mes "I feel an urge to jump on a pile with my four paws when I see one.";
+ else if (.@cat_hi == 10) mes "I must have been a cat in my previous life.";
+ else if (.@cat_hi == 11) mes "I dreamt about the giant again. I waved my paws annoyed and he kept on patting me.";
+ else if (.@cat_hi == 12) mes "Yup!! Was the rumor true that Ahat looks like a human?! ";
+ else if (.@cat_hi == 13) mes "I heard on my way that this Pinqucula Dark has a Withered Flower.";
+ else if (.@cat_hi == 14) mes "There is a guy named Pinguicula nearby who has the Sharp Leaf nearby.";
+ else if (.@cat_hi == 15) mes "There is a guy named Pinguicula nearby who has the Great Leaf nearby.";
+ else if (.@cat_hi == 16) mes "I recommend getting it from the Dracos nearby. But then, they only drop it randomly so you may come back empty handed...";
else mes "Hmm... This may not be important to you but.";
next;
mes .@n$;
@@ -7096,12 +7155,12 @@ dic_in01,42,264,3 script Adventurer Clerk#ep133 453,{
mes .@n$;
mes "When you are ready,";
mes "Please come back again";
- close;
+ close;
}
if (countitem(.@Items_) < 1) {
mes .@n$;
mes "Then, take the equipment off first.";
- close;
+ close;
}
specialeffect2 EF_OVERTHRUST;
mes .@n$;
@@ -7116,7 +7175,7 @@ dic_in01,42,264,3 script Adventurer Clerk#ep133 453,{
mes .@n$;
mes "But...";
mes "you don't seem to be wearing or even carrying equipment to upgrade on you.";
- close;
+ close;
}
}
if (getd("ep13_3_"+.@v$) == 0) {
@@ -7142,7 +7201,7 @@ dic_in01,42,264,3 script Adventurer Clerk#ep133 453,{
mes .@n$;
mes "Second upgrade step requires ^9900992 Exploit Certifications of Sapha^000000. Do you want to proceed?";
set .@req, 2;
- }
+ }
else if (getd("ep13_3_"+.@v$) < 69) {
mes .@n$;
mes "I'm preparing for the";
@@ -7204,7 +7263,7 @@ dic_in01,42,264,3 script Adventurer Clerk#ep133 453,{
mes .@n$;
mes "When you are ready,";
mes "Please come back again.";
- close;
+ close;
}
if (countitem(6304) < .@req) {
mes .@n$;
@@ -7275,7 +7334,7 @@ dic_in01,42,264,3 script Adventurer Clerk#ep133 453,{
set .@cri[5], 4764; set .@cri[7], 4765;
set .@atk[2], 4766; set .@atk[3], 4767;
set .@dex[1], 4720; set .@dex[2], 4721; set .@dex[3], 4722;
- set .@int[1], 4710; set .@int[2], 4711; set .@int[3], 4712;
+ set .@int[1], 4710; set .@int[2], 4711; set .@int[3], 4712;
set .@agi[1], 4730; set .@agi[2], 4731; set .@agi[3], 4732;
// Enchant attribute is determined by the digit position of variable value (ep13_3_<type>).
@@ -7309,30 +7368,30 @@ dic_in01,42,264,3 script Adventurer Clerk#ep133 453,{
setd "ep13_3_"+.@v$, .@var[.@r-1] + getd("ep13_3_"+.@v$);
close;
}
-dic_fild01,240,198,2 duplicate(dic_enc#main) Jalapeno#pa0829 495
-dic_fild01,251,183,3 duplicate(dic_enc#main) Brare#pa0829 495
-dic_fild01,259,172,3 duplicate(dic_enc#main) Mancho#pa0829 495
-dic_in01,353,37,5 duplicate(dic_enc#main) Kareka#pa0829 454
+dic_fild01,240,198,2 duplicate(dic_enc#main) Jalapeno#pa0829 4_M_MERCAT1
+dic_fild01,251,183,3 duplicate(dic_enc#main) Brare#pa0829 4_M_MERCAT1
+dic_fild01,259,172,3 duplicate(dic_enc#main) Mancho#pa0829 4_M_MERCAT1
+dic_in01,353,37,5 duplicate(dic_enc#main) Kareka#pa0829 4_MAN_PIOM
-dic_fild01,228,159,4 script Jahbong#pa0829 496,{
+dic_fild01,228,159,4 script Jahbong#pa0829 4_M_MERCAT2,{
mes "[Jahbong]";
if (countitem(6304) < 1) {
mes "You haven't received a Sapha Certification yet?";
next;
mes "[Jahbong]";
mes "Come back to me once you have one. I'll give you something good in exchange.";
- close;
+ close;
}
set .@cattalkj,rand(1,9);
if (.@cattalkj == 1) mes "Don't touch my back! I might bite you unconsciously.";
- else if (.@cattalkj == 2) mes "Pub owner Shay carried something away to make something strange! Be careful!";
- else if (.@cattalkj == 3) mes "We cats can jump 5 times our size. Isn't it cool? But then, don't ask me to jump from here now.";
- else if (.@cattalkj == 4) mes "I have to be diligent with my grooming to maintain beautiful fur.";
- else if (.@cattalkj == 5) mes "I have to groom myself everyday to maintain shiny fluffy fur. But I don't have very nice fur in the first place. Very sad.";
- else if (.@cattalkj == 6) mes "You should receive a Sapha Certification with both paws as a sign of respect. No cat deserves a certification if they don't!";
- else if (.@cattalkj == 7) mes "I don't really talk that much! Ahat looks like... meow meow meooow... sorry.";
- else if (.@cattalkj == 8) mes "Meow~~~~~~~~~~";
- else mes "Yarn is a great way to calm a cat.";
+ else if (.@cattalkj == 2) mes "Pub owner Shay carried something away to make something strange! Be careful!";
+ else if (.@cattalkj == 3) mes "We cats can jump 5 times our size. Isn't it cool? But then, don't ask me to jump from here now.";
+ else if (.@cattalkj == 4) mes "I have to be diligent with my grooming to maintain beautiful fur.";
+ else if (.@cattalkj == 5) mes "I have to groom myself everyday to maintain shiny fluffy fur. But I don't have very nice fur in the first place. Very sad.";
+ else if (.@cattalkj == 6) mes "You should receive a Sapha Certification with both paws as a sign of respect. No cat deserves a certification if they don't!";
+ else if (.@cattalkj == 7) mes "I don't really talk that much! Ahat looks like... meow meow meooow... sorry.";
+ else if (.@cattalkj == 8) mes "Meow~~~~~~~~~~";
+ else mes "Yarn is a great way to calm a cat.";
next;
mes "[Jahbong]";
mes "Why are you here?";
@@ -7388,12 +7447,14 @@ dic_fild01,228,159,4 script Jahbong#pa0829 496,{
// Cat Hand Agent
//============================================================
-moc_para01,44,19,3 script Cat Hand Agent#gekk 496,{
+moc_para01,44,19,3 script Cat Hand Agent#gekk 4_M_MERCAT2,{
if (BaseLevel < 70) {
mes "[Cat Hand Agent]";
mes "Hey, human! Did you come to make a request, too? When will it be my turn?";
+ next;
mes "[Cat Hand Agent]";
mes "Our Cat Hand Merchant group really needs any help it can get. But by the looks of all those requests that Ebenor is holding in his hand, Cat Hand Merchant will be closed by the time my request is put up on the board!";
+ next;
mes "[Cat Hand Agent]";
mes "It breaks my heart to think my colleagues will be shivering in the blizzard. I hope I don't get into trouble since I can't do anything about it, right?";
close;
@@ -7481,7 +7542,7 @@ moc_para01,44,19,3 script Cat Hand Agent#gekk 496,{
mes "[Agent Geck]";
mes "With this, our contract is now complete.";
mes "Geck will help you to get to Ash-Vacuum in one piece.";
- set Zeny, Zeny - 50000;
+ Zeny -= 50000;
set ep13_start, 100;
next;
mes "[Agent Geck]";
@@ -7521,7 +7582,7 @@ moc_para01,44,19,3 script Cat Hand Agent#gekk 496,{
close;
}
-moc_fild20,368,197,3 script Cat#to22 876,{
+moc_fild20,368,197,3 script Cat#to22 4_CAT,{
if (ep13_start != 100) {
mes "[Cat]";
mes "Meow~";
@@ -7545,7 +7606,7 @@ moc_fild20,368,197,3 script Cat#to22 876,{
end;
}
-moc_fild22b,182,179,3 script Cat Hand Agent#Tat 495,{
+moc_fild22b,182,179,3 script Cat Hand Agent#Tat 4_M_MERCAT1,{
if (ep13_start != 100) {
mes "[Cat Hand Agent]";
mes "This place as no meaning for us.";
diff --git a/npc/re/quests/quests_eclage.txt b/npc/re/quests/quests_eclage.txt
new file mode 100644
index 000000000..0bc237d58
--- /dev/null
+++ b/npc/re/quests/quests_eclage.txt
@@ -0,0 +1,1837 @@
+//===== Hercules Script ======================================
+//= Eclage Quest NPCs
+//===== By: ==================================================
+//= Euphy
+//===== Current Version: =====================================
+//= 0.1
+//===== Description: =========================================
+//= Quest NPCs related to Eclage.
+//===== Additional Comments: =================================
+//= 0.1 NPCs are mostly placeholders. [Euphy]
+//============================================================
+
+// Teleport Cats (14.2 Cat Hand Addition)
+//============================================================
+- script Teleport Cat#ep14_2 -1,{
+ switch(atoi(charat(strnpcinfo(1),16))) {
+ case 1:
+ setarray .@map$[0],"Entrance to Mora";
+ setarray .@cost[0],15;
+ break;
+ case 2:
+ setarray .@map$[0],"Near Eclage","Near Splendide";
+ setarray .@cost[0],15,55;
+ break;
+ case 3:
+ setarray .@map$[0],"Entrance to Mora","Midgard Allied Forces Post";
+ setarray .@cost[0],55,10;
+ break;
+ case 4:
+ setarray .@map$[0],"Near Splendide","Manuk Field";
+ setarray .@cost[0],10,10;
+ break;
+ case 5:
+ setarray .@map$[0],"Midgard Allied Forces Post","Near El Dicastes";
+ setarray .@cost[0],10,20;
+ break;
+ case 6:
+ setarray .@map$[0],"Manuk Field";
+ setarray .@cost[0],20;
+ break;
+ }
+ mes "[Teleport Cat]";
+ mes "What a nice day, isn't it!";
+ mes "Welcome to Cat Merchant Group. We do anything to please our customers. We would even lie on our back if you want!";
+ next;
+ mes "[Teleport Cat]";
+ mes "We provide teleport service between various regions based on our accumulated knowledge. We accept Malangdo Canned Specialties or Zeny, so you can pay however you like it~";
+ next;
+ set .@menu$,"Forget it:";
+ for(set .@i,0; .@i<getarraysize(.@map$); set .@i,.@i+1) {
+ set .@menu$, .@menu$+
+ .@map$[.@i]+" ("+.@cost[.@i]+" Canned Food):"+
+ .@map$[.@i]+" ("+.@cost[.@i]+",000 Zeny):";
+ }
+ set .@i, select(.@menu$)-2;
+ if (.@i == -1) {
+ mes "[Teleport Cat]";
+ mes "I'll see you later then.";
+ close;
+ }
+ set .@choice$, .@map$[.@i/2];
+ set .@price, .@cost[.@i/2];
+ if (.@i % 2) {
+ set .@price, .@price*1000;
+ if (Zeny < .@price) {
+ mes "[Teleport Cat]";
+ mes "I'm afraid it's not enough. Sorry, but it can't be done for free~";
+ close;
+ }
+ Zeny -= .@price;
+ } else {
+ if (countitem(12636) < .@price) {
+ mes "[Teleport Cat]";
+ mes "I'm afraid it's not enough. Sorry, but it can't be done for free~";
+ close;
+ }
+ delitem 12636,.@price; //Malang_Sp_Can
+ }
+ if (compare(.@choice$,"Midgard Allied Forces Post")) warp "mid_camp",180,247;
+ else if (compare(.@choice$,"Manuk Field")) warp "man_fild02",133,47;
+ else if (compare(.@choice$,"Near Splendide")) warp "spl_fild02",51,240;
+ else if (compare(.@choice$,"Near El Dicastes")) warp "dic_fild01",159,264;
+ else if (compare(.@choice$,"Entrance to Mora")) warp "bif_fild02",291,323;
+ else if (compare(.@choice$,"Near Eclage")) warp "ecl_fild01",116,309;
+ close;
+}
+ecl_fild01,118,311,4 duplicate(Teleport Cat#ep14_2) Teleport Cat No.1 4_M_BOSSCAT
+bif_fild02,293,325,4 duplicate(Teleport Cat#ep14_2) Teleport Cat No.2 4_M_BOSSCAT
+spl_fild02,53,242,4 duplicate(Teleport Cat#ep14_2) Teleport Cat No.3 4_M_BOSSCAT
+mid_camp,207,234,4 duplicate(Teleport Cat#ep14_2) Teleport Cat No.4 4_M_BOSSCAT
+man_fild02,135,49,4 duplicate(Teleport Cat#ep14_2) Teleport Cat No.5 4_M_BOSSCAT
+dic_fild01,161,266,4 duplicate(Teleport Cat#ep14_2) Teleport Cat No.6 4_M_BOSSCAT
+
+// Eclage's Entrance
+//============================================================
+ecl_fild01,97,322,0 script #ep14_2Entrance WARPNPC,3,3,{
+OnTouch:
+ if (ep14_2_enter < 3) {
+ mes "[Security Guard]";
+ mes "Please wait a minute.";
+ mes "All first-time visitors to Eclage must fill out the necessary forms before entering.";
+ close;
+ }
+ warp "eclage",100,28;
+ end;
+}
+
+ecl_fild01,94,322,5 script Security Guard#ep14_2 4_M_FAIRYSOLDIER,{
+ if (ep14_2_enter == 0) {
+ mes "[Security Guard]";
+ mes "All first-time visitors to Eclage must fill out the necessary forms here before entering.";
+ next;
+ mes "[Security Guard]";
+ mes "Please understand because of a recent increase in the influx of people from Midgard through Bifrost, we had to create this process.";
+ next;
+ mes "[Security Guard]";
+ mes "Of course, the documents will be secured away after their use in access regulations, so you don't have to worry.";
+ next;
+ if(select("Fill out the forms.:Forget it.") == 2) {
+ mes "[Security Guard]";
+ mes "Please note that you would not be able to enter the city without filling out the forms.";
+ close;
+ }
+ mes "[Security Guard]";
+ mes "Please fill out your name, occupation, and level here.";
+ next;
+ mes "Write your name.";
+ input .@input1$;
+ next;
+ mes "Write your occupation.";
+ input .@input1$;
+ next;
+ mes "Write your level.";
+ input .@input1$;
+ next;
+ mes "[Security Guard]";
+ mes "If you completed your forms, please submit them to the administrator over there.";
+ mes "There may be some waiting time, so take your time.";
+ set ep14_2_enter,1;
+ setquest 11310;
+ close;
+ } else if (ep14_2_enter == 1) {
+ mes "[Security Guard]";
+ mes "Please submit your forms to the administrator over there after writing in your name, occupation, and level.";
+ mes "There may be some waiting time, so take your time.";
+ close;
+ } else if (ep14_2_enter == 2) {
+ mes "[Security Guard]";
+ mes "Great, you completed the forms.";
+ mes "Welcome to Eclage, the capital of the Laphines.";
+ next;
+ mes "[Security Guard]";
+ mes "Since Eclage is under the influence of Bifrost, there is fluent communication among the races.";
+ next;
+ mes "[Security Guard]";
+ mes "There would be no need for any separate translation, and there are enough bridges for on-foot races, so I hope you have a comfortable visit.";
+ set ep14_2_enter,3;
+ erasequest 11311;
+ close2;
+ warp "eclage",100,28;
+ end;
+ } else {
+ mes "[Security Guard]";
+ mes "Welcome to Eclage, the capital of the Laphines.";
+ next;
+ mes "[Security Guard]";
+ mes "Since Eclage is under the influence of Bifrost, there is fluent communication among the races.";
+ next;
+ mes "[Security Guard]";
+ mes "There would be no need for any separate translation, and there are enough bridges for on-foot races, so I hope you have a comfortable visit.";
+ close;
+ }
+}
+ecl_fild01,100,323,3 duplicate(Security Guard#ep14_2) Security Guard#ep14_2_2 4_M_FAIRYSOLDIER
+
+ecl_fild01,111,320,2 script Immigration Officer#ep1 4_M_FAIRYKID4,{
+ if (ep14_2_enter == 0) {
+ mes "[Immigration Officer]";
+ mes "What do you need?";
+ mes "As you can see, I'm really busy here, so unless you need something, please don't bother me.";
+ emotion e_an;
+ close;
+ } else if (ep14_2_enter == 1) {
+ mes "[Immigration Officer]";
+ mes "Whew! I'm sorry to have kept you waiting.";
+ mes "There are just too many visitors.";
+ emotion e_wah;
+ next;
+ mes "[Immigration Officer]";
+ mes "So if you will place your forms here...";
+ next;
+ mes "[???]";
+ mes "Here!! These are my completed forms!!";
+ mes "This time it's all good, right?";
+ mes "Let me through quick!";
+ cutin "bu_du1.bmp",2;
+ emotion e_omg,1;
+ next;
+ cutin "bu_du1.bmp",255;
+ mes "[Immigration Officer]";
+ mes "I'm taking care of visitors in the order they arrived, so please wait for your turn.";
+ emotion e_swt;
+ next;
+ mes "[???]";
+ mes "What are you talking about!";
+ mes "I was waaaay before all of these guys!";
+ cutin "bu_du3.bmp",2;
+ next;
+ cutin "bu_du3.bmp",255;
+ mes "[Immigration Officer]";
+ mes "Well, your turn was delayed because you had to fill out your forms, so you have to wait until later.";
+ emotion e_ag;
+ next;
+ mes "[???]";
+ mes "What?! You just said you take care of visitors in the order they arrived!!!";
+ cutin "bu_du5.bmp",2;
+ next;
+ cutin "bu_du5.bmp",255;
+ mes "[Immigration Officer]";
+ mes "Yes, I did say that but...";
+ next;
+ mes "- SMACK!!! -";
+ next;
+ mes "[???]";
+ mes "OW!! Why did you hit me?";
+ cutin "bu_du4.bmp",2;
+ next;
+ mes "[???]";
+ mes "I'm so sorry.";
+ mes "My stupid friend here is causing trouble.";
+ cutin "bu_mark3.bmp",0;
+ next;
+ mes "[???]";
+ mes "Who are you calling stupid?!";
+ cutin "bu_du5.bmp",2;
+ next;
+ mes "[???]";
+ mes "If you hadn't filled out my name incorrectly in the first place, we wouldn't be waiting like this!";
+ cutin "bu_mark3.bmp",0;
+ next;
+ mes "[???]";
+ mes "Mark Esha or Madrid, they're all the same!";
+ cutin "bu_du3.bmp",2;
+ next;
+ mes "[Mark Esha]";
+ mes "They're not at all the same!";
+ mes "And what's more, how can you not know the name of your friend of 15 years?";
+ cutin "bu_mark4.bmp",0;
+ next;
+ mes "[???]";
+ mes "It's not that I didn't know- I did it on purpose!!";
+ mes "Madrid is just fine! Madrid!";
+ cutin "bu_du3.bmp",2;
+ next;
+ cutin "bu_du3.bmp",255;
+ mes "- SMACK -";
+ next;
+ mes "[Mark Esha]";
+ mes "Hu... I am so sorry that my friend is this stupid.";
+ mes "Please don't mind us and do what you need to do.";
+ cutin "bu_mark3.bmp",0;
+ next;
+ mes "[???]";
+ mes "AHHHH!!!";
+ mes "LET ME IN!!!!";
+ mes "How long do I have to wait out here!!!";
+ cutin "bu_du5.bmp",2;
+ next;
+ mes "[Mark Esha]";
+ mes "Would you stay put just for a second?!!!";
+ mes "Sorry. So sorry.";
+ cutin "bu_mark3.bmp",0;
+ next;
+ cutin "bu_mark3.bmp",255;
+ mes "[Immigration Officer]";
+ mes "Oh wow, this is just so crazy.";
+ mes "Test15696 Here, your documents are processed.";
+ mes "You may enter the city when you go talk to the security guard.";
+ emotion e_go;
+ next;
+ mes "[???]";
+ mes "Shuffle, shuffle";
+ cutin "bu_oliver0.bmp",0;
+ next;
+ cutin "bu_oliver0.bmp",255;
+ mes "[Immigration Officer]";
+ mes "And Mr. Deu Lean, please take your group and enter. It's just way too noisy.";
+ emotion e_an;
+ next;
+ mes "[Du Lian]";
+ mes "Mwahah!!";
+ mes "SEE THAT?!";
+ mes "Thanks to me, we got through faster!";
+ cutin "bu_du1.bmp",2;
+ next;
+ mes "[Mark Esha]";
+ mes "You mean slower...";
+ cutin "bu_mark4.bmp",0;
+ next;
+ mes "[Du Lian]";
+ mes "A real man does not get bogged down by the past!!";
+ mes "I may have been slow with the documentation but I will be the one to enter Eclage first!";
+ mes "Mwahah!";
+ cutin "bu_du2.bmp",2;
+ next;
+ mes "[Mark Esha]";
+ mes "......Whew";
+ mes "I'm so sorry for everything.";
+ cutin "bu_mark2.bmp",0;
+ next;
+ mes "[???]";
+ mes "Well......";
+ mes "Mr. Mark, Mr. Du is already gone.";
+ cutin "bu_maggi3.bmp",2;
+ next;
+ mes "[Mark Esha]";
+ mes "Oh.............";
+ mes "Oh......................";
+ cutin "bu_mark3.bmp",0;
+ next;
+ mes "[Mark Esha]";
+ mes "My goodness......";
+ emotion e_swt2,1;
+ set ep14_2_enter,2;
+ erasequest 11310;
+ setquest 11311;
+ close2;
+ cutin "bu_mark3.bmp",255;
+ end;
+ } else {
+ mes "[Immigration Officer]";
+ mes "Oh wow, this is just so crazy.";
+ mes strcharinfo(0)+".";
+ mes "Here, your documents are processed.";
+ mes "You may enter the city when you go talk to the security guard.";
+ emotion e_go;
+ close;
+ }
+}
+
+// Oliver Wolf Hood
+//============================================================
+eclage,102,32,4 script Fairy Carpenter#ep14_2 4_M_FAIRYKID2,{
+ if (BaseLevel < 120) {
+ mes "[Fairy Carpenter]";
+ mes "The bridge is kind of broken so please be careful.";
+ emotion e_sob;
+ close;
+ }
+ if (checkquest(11312) == -1) {
+ mes "[Fairy Carpenter]";
+ mes "This area is kind of broken, so be careful.";
+ mes "Otherwise, you'll fall aaaaaall the way down.";
+ next;
+ switch(select("The work being done right now:The reason for the bridge being broken:Forget it.")) {
+ case 1:
+ //missing
+ close;
+ case 2:
+ mes "[Fairy Carpenter]";
+ mes "Oh, just a minute ago, there was a human benig who took a misstep and broke a tree branch while falling.";
+ emotion e_an;
+ next;
+ mes "[Fairy Carpenter]";
+ mes "Being close to the entrance and all, this really needs to be fixed soon.";
+ mes "I'm trying to decide whether I should put up a warning sign, gather the necessary materials for it, and fix it myself."; //custom
+ next;
+ switch(select("Give help.:Don't give help.")) {
+ case 1:
+ mes "[Fairy Carpenter]";
+ mes "Wow!!!";
+ mes "You are going to help me?!";
+ mes "So... so kind...";
+ next;
+ mes "[Fairy Carpenter]";
+ mes "I can't believe there's still this kind of kindness left in the world... Hmm, sweaty eyes...";
+ emotion e_sob;
+ next;
+ mes "[Fairy Carpenter]";
+ mes "Would you then bring me a new bridge to use for repair?";
+ mes "Since other people can get hurt, I'll use my magic to maintain this bridge in the meantime.";
+ emotion e_go;
+ //setquest 11312;
+ close;
+ case 2:
+ //missing
+ close;
+ }
+ case 3:
+ //missing
+ close;
+ }
+ }
+ select("What if you use magic to repair it?");
+ mes "[Fairy Carpenter]";
+ mes "Hmm, it's not impossible, but magic that deals with creation of life requires much magic power and shouldn't be used so freely.";
+ next;
+ mes "[Fairy Carpenter]";
+ mes "If I were to describe how stupid that would be... Well, it's like turning a deliciously baked chocolate cake back into flour.";
+ next;
+ mes "[Fairy Carpenter]";
+ mes "Since the broken part is about 19 meters from here...";
+ next;
+ mes "[Fairy Carpenter]";
+ mes "Ahh! Now that I remember, before we used to be able to order the exact necessary length, but because they are mass-producing them nowadays, they only provide preset lengths.";
+ next;
+ mes "[Fairy Carpenter]";
+ mes "To maximize the stability, it's better to avoid connecting multiple bridge pieces together,";
+ next;
+ mes "[Fairy Carpenter]";
+ mes "and this broken bridge... from here to there it's about 19 meters and the present pieces come in 3 meters, 5 meters, and 10 meters......";
+ emotion e_swt2;
+ next;
+ mes "[Fairy Carpenter]";
+ mes "Hmm.......";
+ next;
+ mes "[Fairy Carpenter]";
+ mes "Hmm.......";
+ mes "......";
+ emotion e_swt2;
+ next;
+ mes "[Fairy Carpenter]";
+ mes "......Hmm.........";
+ emotion e_swt2;
+ next;
+ mes "- It's probably just my imagination that smoke is coming out of his head, right? -";
+ next;
+ mes "[Fairy Carpenter]";
+ mes "Oh ho!";
+ mes "What do you think?";
+ emotion e_heh;
+ next;
+ mes "[Fairy Carpenter]";
+ mes "To make a bridge of 19 meters in length with the fewest number of pieces possible, how many of each 3, 5, or 10 meter length pieces would I need?";
+ emotion e_what;
+ next;
+ mes "[Fairy Carpenter]";
+ mes "Please write the number of pieces necessary for each length. If no pieces for that length are necessary, please write 0.";
+ input .@inputstr$;
+ if (.@inputstr$ != "002") {
+ //missing
+ close;
+ }
+ next;
+ mes "[Fairy Carpenter]";
+ mes "Yeah, that sounds good, right?";
+ mes "Especially since there wouldn't be a need to make them so straight.";
+ emotion e_ic;
+ next;
+ mes "[Fairy Carpenter]";
+ mes "Okay, if you talk to [Golie] who works outside the city near the tower, he will give you the new bridge pieces.";
+ //erasequest 11312;
+ //setquest 11313;
+ close;
+/*
+OnTouch:
+ if (ep14_2_hood == 0) {
+ mes "[Fairy Carpenter]";
+ mes "Hey!!!!!!!";
+ mes "Be careful over there!!";
+ close;
+ }
+ end;
+*/
+}
+
+eclage,283,275,4 script Glaces#ep14_2 4_F_FAIRYKID3,{
+ mes "[Glaces]";
+ mes "Hm......";
+ mes "The guys are late.";
+ mes "I can only imagine that they would be busy just looking at the number of people visiting Eclage nowadays but...";
+ next;
+ mes "[Glaces]";
+ mes "Why... why do I have so much time at hand...?";
+ mes "Am I the only one with so much free time?";
+ mes "Am I really the only one?";
+ emotion e_omg;
+ close;
+}
+
+eclage,266,216,4 script Moreng#ep14_2 4_M_FAIRYKID3,{
+ mes "[Moreng]";
+ mes "Eclage is a really nice place to live.";
+ mes "The flowers are always in full bloom and the weather is always comfortable.";
+ next;
+ mes "[Moreng]";
+ mes "If there were a beautiful Yai of my own, it would truly be a paradise!";
+ next;
+ mes "[Moreng]";
+ mes "Yai actually signifies an egg.";
+ mes "And to Laphines, Yai could even signify what is beyond a home...";
+ emotion e_shy;
+ close;
+}
+
+eclage,191,200,4 script Yube#ep14_2 4_M_FAIRYKID5,{
+ mes "- Shuffle shuffle -";
+ mes "He's working on something.";
+ mes "Let's not bother him.";
+ close;
+}
+
+eclage,292,265,0 script #ep14_2Yube Entrance WARPNPC,2,2,{
+OnTouch:
+ mes "- Looks like the door is locked. -";
+ close;
+}
+
+eclage,265,166,4 script Shul#ep14_2 4_M_FAIRYKID2,{
+ mes "[Shul]";
+ mes "Laphine's put their lives on the line to make Yai beautiful.";
+ mes "I'm a Laphine myself but that kind of priority is difficult to understand.";
+ close;
+}
+
+eclage,137,169,4 script Tato#ep14_2 4_F_FAIRYKID4,{
+ mes "[Tato]";
+ mes "A friend of mine recently applied to the Splendide unit.";
+ mes "I heard Jotunheim is really cold. I hope he's doing well.";
+ close;
+}
+
+ecl_in01,60,71,4 script Old Man#ep14_2 4_M_FAIRYKID2,{
+ mes "[Old Man]";
+ mes "Hohoho~!";
+ next;
+ mes "[Old Man]";
+ mes "Looks like there are a lot of interesting visitors nowadays...";
+ mes "When I was young, you had to put your life on the line to go into the foreign lands.";
+ next;
+ mes "[Old Man]";
+ mes "Nowadays, things are much more convenient with de-regulation and all.";
+ mes "And with the warps and flying to all these places, where's all the romance in adventures anymore?";
+ emotion e_pif;
+ next;
+ mes "[Old Man]";
+ mes "Young people nowadays probably don't even know how frog eggs taste like.";
+ next;
+ mes "[Old Man]";
+ mes "It seems like yesterday when I saved enough Jellopies to buy a Tsurugi, but even that Tsurugi is deserted somewhere in storage.";
+ emotion e_sob;
+ close;
+}
+
+ecl_in01,44,53,4 script Delivery Man#ep14_2 4_M_DOGTRAVELER,{
+ mes "[Delivery Man]";
+ mes "Sigh...";
+ mes "I need to get going in order to make it on time.";
+ next;
+ mes "[Delivery Man]";
+ mes "Wait a minute...";
+ mes "Is it actually better to deliver it later...";
+ mes "I remember seeing so many boxes of pickled Poring in the storage waiting to be delivered...";
+ emotion e_sob;
+ close;
+}
+
+ecl_in01,70,88,4 script Sack Merchant#ep14_2 4_M_MERCAT1,{
+ mes "[Sack Merchant]";
+ mes "Meow?";
+ mes "Helloeow~";
+ mes "I have a treasure from a place very, very fareow~";
+ mes "Take a lookeow~";
+ mes "I'll give you a good priceow~";
+ close;
+}
+
+ecl_in01,73,51,4 script Murah#ep14_2 4_M_FAIRYKID,{
+ mes "[Murah]";
+ mes "Hmm... What amazing present should I give?";
+ emotion e_flash;
+ close;
+}
+
+ecl_fild01,192,94,4 script Golie#ep14_2 4_M_FAIRYKID,{
+ mes "[Golie]";
+ mes "To grow Elder Willow trees,";
+ mes "since Spring, Peco Peco";
+ mes "must have cried as such.";
+ next;
+ mes "[Golie]";
+ mes "To grow Elder Willow trees";
+ mes "the alarm in the clock tower";
+ mes "again must have cried as such.";
+ next;
+ mes "[Golie]";
+ mes "It's a song given to me by a bard from Midgard. The lyrical and nature-oriented words really resonated with me.";
+ next;
+ mes "[Golie]";
+ mes "I would love to hear any songs that you might know also.";
+ close;
+}
+
+ecl_fild01,97,315,4 script Traveler#ep14_2 4_M_JOB_HUNTER,{
+ mes "[Traveler]";
+ mes "Who are you?";
+ mes "I've never seen you before.";
+ next;
+ mes "[Traveler]";
+ mes "Oh, you came to ask me about the feather, too?";
+ mes "It's just a plain old decoration, but everyone really likes to bother me about it.";
+ next;
+ mes "[Traveler]";
+ mes "If you are thinking about selling it, you should just give up.";
+ mes "I have no wishes to sell it no matter how much you beg.";
+ next;
+ mes "[Traveler]";
+ mes "This feather...";
+ close;
+}
+
+// Wanted to be Big and Beautiful
+//============================================================
+eclage,282,255,4 script Wuhari#eclbig 4_M_FAIRYKID6,{
+ mes "[Wuhari]";
+ mes "Ah... Is there anyone with more experienced with this...";
+ close;
+}
+
+eclage,163,228,4 script Goatie#eclbig 4_F_FAIRYKID3,{
+ mes "[Goatie]";
+ mes "Have you ever been to the palace?";
+ mes "They say that it is so much more beautiful than our Yai's could ever be.";
+ next;
+ mes "[Goatie]";
+ mes "I guess people who have nothing can only dream.";
+ close;
+}
+
+eclage,170,195,4 script Svery#eclbig 4_M_FAIRYKID2,{
+ mes "[Svery]";
+ mes "It's my wife's big wish to visit the palace.";
+ next;
+ mes "[Svery]";
+ mes "I want to grant that wish for her, but how could that ever be possible.";
+ mes "Especially given our situation...";
+ close;
+}
+
+eclage,126,151,4 script Pompe#eclbig 4_M_FAIRYKID3,{
+ mes "[Pompe]";
+ mes "I saw it!";
+ next;
+ mes "[Pompe]";
+ mes "I really saw it!!";
+ close;
+}
+
+// Mystery Robbery Investigation
+//============================================================
+eclage,164,102,3 script Cruyan#eclage 4_M_FAIRYKID,{}
+
+eclage,222,131,4 script Wandering Merchant#ecla 1_M_SIGNMCNT,{
+ mes "[Wandering Merchant]";
+ mes "Go away kids~";
+ close;
+}
+
+// Troublesome Fairie
+//============================================================
+ecl_in01,26,88,4 script Cecilia#nk 4_F_FAIRYKID5,{
+ mes "[Cecilia]";
+ mes "Mm...mm... what should I do...";
+ next;
+ mes "- She seems too busy to talk to you. -";
+ close;
+}
+
+ecl_in01,80,77,4 script Dominic#nk 4_M_FAIRYKID4,{
+ mes "[Dominic]";
+ mes "I won't stop you from walking around in Eclage but, don't bother me you outsider!";
+ close;
+}
+
+ecl_in02,160,36,4 script Eirinn#nk 4_F_FAIRYKID6,{
+ mes "[Eirinn]";
+ mes "Oww, my stomach hurts!!";
+ mes "What are you looking at?";
+ next;
+ mes "[Eirinn]";
+ mes "I haven't really eaten anything unusual these days but why am I getting stomach aches so often!";
+ close;
+}
+
+ecl_in03,175,69,4 script Bourbon#nk 4_M_FAIRYKID3,{
+ mes "[Bourbon]";
+ mes "How strange. I've been losing my stuff recently like things I put in my pocket or even the things I put away properly.";
+ close;
+}
+
+ecl_in01,82,80,0 script Monthly Eclage#pa0829 HIDDEN_NPC,{
+ mes "^000099I see a plain-looking journal. It seems to deal with third-rate gossip stories.^000000";
+ close;
+}
+
+ecl_in01,82,78,0 script Magazine#01 HIDDEN_NPC,{
+ mes "- I saw a book and stretched my hand out to reach for it. I think it's about Midgard. -";
+ next;
+ mes "[Dominic]";
+ mes "Hey, outsider,";
+ mes "who said you can touch my books?";
+ mes "Stay away from my bookshelves!";
+ close;
+}
+ecl_in01,82,79,0 duplicate(Magazine#01) Magazine#02 HIDDEN_NPC
+ecl_in01,83,81,0 duplicate(Magazine#01) Exploration of Midgard::ExplorationMidgard1 HIDDEN_NPC
+ecl_in01,82,84,0 duplicate(Magazine#01) Exploration of Midgard::ExplorationMidgard2 HIDDEN_NPC
+ecl_in01,80,86,0 duplicate(Magazine#01) Exploration of Midgard::ExplorationMidgard3 HIDDEN_NPC
+
+// Hiel's Workshop
+//============================================================
+eclage,155,91,4 script #pa0829Hiel's Door10 2_BOARD2,{
+ mes "[Notice]";
+ mes "Pan-galactic ultra genius engineer Hiel's strange and creepy workshop.";
+ mes "Normal Laphines, animals, and Saphas are prohibited.";
+ next;
+ if(select("Continue on my way.:Enter this place.") == 2)
+ warp "ecl_in04",107,213;
+ close;
+}
+
+ecl_in04,108,215,0 script Supreme Electronic Rope HIDDEN_NPC,{
+ mes "If you would like to go down, please press the bell~";
+ next;
+ if(select("Forget it.:Go down.") == 2)
+ warp "eclage",152,91;
+ close;
+}
+
+ecl_in04,105,216,0 script Hiel's Workshop#pa0829 HIDDEN_NPC,{
+ mes "^000099It's a workshop with lots of oddities.^000000";
+ close;
+}
+
+ecl_in04,109,215,2 script Hiel#pa0829 4_M_FAIRYSCHOLAR,{
+ mes "[Hiel]";
+ mes "It is said that the leaves from home tree have the length X with the average m and standard deviation of 4. If P(m<X<a)=0.3413 ... (Mumble mumble)";
+ next;
+ mes "^0000ffIt doesn't look like I'll understand anything he says. Let's get out of here.^000000";
+ close;
+}
+
+// For Eclage
+//============================================================
+function script F_Eclage_Traveler {
+ if (checkquest(7411) > -1 && checkquest(7412) > -1 && checkquest(7413) > -1) {
+ cutin "minuel01.bmp",4;
+ donpcevent "Eclage Guard#tl01::OnEnable";
+ mes "[Eclage Guard]";
+ mes "Excuse me for a moment.";
+ mes "Is there anyone from Splendide here?";
+ next;
+ select("I am, but why?");
+ mes "[Eclage Guard]";
+ mes "Ah, you are?";
+ mes "There's someone who wants to see you. Do you have time right now?";
+ next;
+ mes "[Eclage Guard]";
+ mes "You don't have to worry. It's nothing suspicious or bad.";
+ mes "We just wanted to ask you about Splendide, so please spare your time for us.";
+ next;
+ mes "[Eclage Guard]";
+ mes "I'll guide you if it's okay.";
+ next;
+ switch(select("Sure. Let's go.:I don't have time for it right now...")) {
+ case 1: //missing
+ break;
+ case 2:
+ mes "[Eclage Guard]";
+ mes "Oh, is that right?";
+ mes "That's too bad.";
+ mes "But if you have some time later, please pay us a visit.";
+ next;
+ break;
+ }
+ mes "[Eclage Guard]";
+ mes "I'll be at the east side of the plaze near the gate.";
+ mes "Please, find me there.";
+ mes "I'll be looking forward to seeing you.";
+ erasequest 7411;
+ erasequest 7412;
+ erasequest 7413;
+ setquest 7414;
+ set ep14_2_tl,1;
+ donpcevent "Eclage Guard#tl01::OnDisable";
+ close2;
+ cutin "minuel01.bmp",255;
+ end;
+ }
+ return;
+}
+
+ecl_in01,32,52,4 script Traveler Fome#tl01 4_F_DOGTRAVELER,3,3,{
+ if (ep14_2_tl == 0) {
+ if (checkquest(7411) == -1) {
+ mes "[Fome]";
+ mes "Come here and have a talk with us.";
+ mes "My name is Fome and I'm from the central region of Alpheim.";
+ mes "You are...";
+ next;
+ mes "[Fome]";
+ mes "Wait, let me guess!";
+ mes "You're a member of the famous Midgard expedition, right?!";
+ next;
+ select("Yes.:How did he know?");
+ mes "[Fome]";
+ mes "Well, it's simple.";
+ mes "There's no one who looks like you or dresses like you around Eclage.";
+ next;
+ mes "[Fome]";
+ mes "I heard the ways to Bifrost are blocked by a strange rift and soon, travelers who came here through the Hazy Forest started to appear.";
+ next;
+ mes "[Fome]";
+ mes "They are humans who came from Midgard passing through Jotunheim!";
+ mes "Seriously...I'm glad I came to Eclage.";
+ mes "I didn't expect to meet a person from Midgard!";
+ next;
+ mes "[Fome]";
+ mes "Eclage is crowded with travelers, and until recently, most of them were from Alpheim.";
+ mes "It's nice to see you. I was about to talk to you just now.";
+ next;
+ switch(select("Why is Eclage popular among travelers?:What is the main attraction of Eclage?")) {
+ case 1:
+ case 2: //missing
+ mes "[Fome]";
+ mes "Why does this place have so many travelers...?";
+ mes "First of all, I think it's due to the fact that you're able to communicate freely here since Eclage is with Bifrost.";
+ next;
+ mes "[Fome]";
+ mes "Thanks to Bifrost's will, everyone is able to communicate with no problem here just like you and I right now.";
+ next;
+ mes "[Fome]";
+ mes "Second, it's because Eclage is the end and the gateway of Alpheim.";
+ mes "It's the only way to get to Jotunheim.";
+ next;
+ mes "[Fome]";
+ mes "A great number of travelers who admire the unknown world come to Eclage.";
+ mes "Also, they want to see Bifrost, which connects Jotunheim and Alpheim, with their own eyes.";
+ next;
+ mes "[Fome]";
+ mes "Moreover, the biggest reason why Eclage is so crowded recently is...!!!";
+ next;
+ select("It is...?!");
+ emotion e_loud;
+ mes "[Fome]";
+ mes "A new Mayor Jun was born!";
+ next;
+ select("Whosa whatsits?");
+ mes "[Fome]";
+ mes "No, no, Mayor Jun. It's a Laphine name.";
+ mes "It's a...right, it means a 'king.'";
+ mes "The King is born!";
+ next;
+ mes "[Fome]";
+ mes "Although he is pretty old, he became a king.";
+ mes "As the king of Laphines, he is so beautiful.";
+ next;
+ select("When was that?");
+ mes "[Fome]";
+ mes "Mm? Maybe 10 years ago?";
+ mes "5 years ago? Or 15? Anyway, it's less than 100 years.";
+ next;
+ break;
+ }
+ setquest 7411;
+ callfunc "F_Eclage_Traveler";
+ mes "This traveler named Fome is going on forever about the king of Laphines.";
+ mes "It seems as if she doesn't care about others and is sinking into her own world, so it's hard to understand what she's talking about.";
+ mes "Let's talk to other travelers.";
+ close;
+ } else {
+ mes "[Fome]";
+ mes "Oh my, did I talk too much?";
+ mes "But you're really lucky.";
+ mes "If you tell them that you're here to congratulate on the birth of new Mayor Jun, you'll surely meet the great Kardui.";
+ next;
+ mes "[Fome]";
+ mes "Ah...how beautiful.";
+ mes "I heard some bad rumors but I don't believe in them at all~";
+ next;
+ mes "[Fome]";
+ mes "Ha, I almost went too far again.";
+ mes "Did you talk to Litrip and York?";
+ next;
+ mes "[Fome]";
+ mes "When it comes to Bifrost Tower, which is the most popular tourist attraction, Litrip knows the best!";
+ close;
+ }
+ } else if (ep14_2_tl == 1) {
+ mes "[Fome]";
+ mes "An Eclage Guard was looking for you just a minute ago, right?";
+ mes "I think he said he'll be waiting for you at the east gate. Don't you have to go?";
+ next;
+ mes "[Fome]";
+ mes "Since he was very polite and all, I'm sure it's something good.";
+ mes "Sure. The Laphines in Eclage are very generous to travelers.";
+ close;
+ } else {
+ mes "[Fome]";
+ mes "You seem very busy.";
+ mes "I heard so much about you from here and there.";
+ mes "I see that you're friends with Laphines already.";
+ close;
+ }
+OnTouch:
+ if (ep14_2_tl == 0 && checkquest(7411) == -1 && checkquest(7412) == -1 && checkquest(7413) == -1) {
+ mes "A group of travelers of Alpheim are having a conversation.";
+ emotion e_loud;
+ next;
+ if(select("Avoid them.:Join the group.") == 1) {
+ mes "They don't seem to care that much.";
+ close;
+ }
+ mes "When you approach, they stop talking for a second and make a seat for you.";
+ mes "Start a conversation.";
+ close;
+ }
+ end;
+}
+
+ecl_in01,32,51,6 script Traveler Litrip#tl02 4_M_DOGTRAVELER,{
+ if (ep14_2_tl == 0) {
+ if (checkquest(7412) == -1) {
+ mes "[Litrip]";
+ mes "Oh, look at this strange traveler.";
+ mes "Come here. My name is Litrip.";
+ next;
+ mes "[Litrip]";
+ mes "You're from Mora?";
+ mes "You must have seen Bifrost Tower on the way then?";
+ next;
+ switch(select("I saw it from the outside.:I've gone inside the tower.")) {
+ case 1:
+ mes "[Litrip]";
+ mes "Really? That's too bad.";
+ mes "Well, but it's good to play it safe since there are frightful monsters inside the tower.";
+ mes "It's certainly better than losing your life by being rash.";
+ next;
+ break;
+ case 2:
+ mes "[Litrip]";
+ mes "I see. Wasn't it pretty crazy?";
+ mes "Once upon a time, It used to be a very nice observatory.";
+ next;
+ mes "[Litrip]";
+ mes "Although it's occupied by horrible monsters now.";
+ mes "Seeing that you went into the tower and came out unharmed, I can tell you're pretty skilled.";
+ next;
+ break;
+ }
+ mes "[Litrip]";
+ mes "There's a rumor that a suspicious alchemist resides on top of the tower.";
+ mes "No one knows why, but I heard he's been there for a good while.";
+ next;
+ mes "[Litrip]";
+ mes "If that alchemist is still alive, he could be a living history himself since the tower, the alchemist, and Bifrost have existed even before Eclage was founded.";
+ next;
+ mes "[Litrip]";
+ mes "A good number of people still challenge themselves to find the mysterious legend of Bifrost but so far, none of them succeeded.";
+ next;
+ select("What about Laphines?");
+ mes "[Litrip]";
+ mes "Hmm, Laphines?";
+ mes "For some reason, they're not interested in Bifrost Tower at all.";
+ mes "I think they perceive it just as a natural object.";
+ next;
+ mes "[Litrip]";
+ mes "They're actually more than capable of solving the mystery if they wanted to but I feel like they're just respecting the existence of Bifrost Tower.";
+ next;
+ mes "[Litrip]";
+ mes "However, they don't necessarily stop people from going into the tower, either. So I'm thinking maybe they're just not aware of it.";
+ mes "If you're curious, go challenge yourself and solve the mystery of the tower.";
+ next;
+ setquest 7412;
+ callfunc "F_Eclage_Traveler";
+ mes "[Litrip]";
+ mes "If you ever happen to solve the mystery of Bifrost Tower, let me be the first one to know about it.";
+ mes "You're strong enough to explore the tower.";
+ mes "I only got to the first floor. Haha.";
+ next;
+ mes "[Litrip]";
+ mes "Have you talked to other friends?";
+ mes "Isn't information the most important thing to a traveler?";
+ close;
+ } else {
+ mes "[Litrip]";
+ mes "It's not fun listening to my story only.";
+ mes "You should go talk to Fome and Chiba, too.";
+ next;
+ mes "[Litrip]";
+ mes "And Let me know if you ever solve the mystery of Bifrost Tower.";
+ mes "I'll be looking forward to hearing from you, hahaha.";
+ close;
+ }
+ } else if (ep14_2_tl == 1) {
+ mes "[Litrip]";
+ mes "It seems like Laphines have some official affairs to do with you.";
+ mes "Didn't they tell you to come to the east gate?";
+ mes "You should go.";
+ close;
+ } else {
+ mes "[Litrip]";
+ mes "Since the last time I saw you talking to the guard, I hear your name here and there.";
+ mes "Is it something important? You've become pretty famous here.";
+ close;
+ }
+}
+
+ecl_in01,35,51,2 script Traveler Chiba#tl03 4_M_DOGTRAVELER2,{
+ if (ep14_2_tl == 0) {
+ if (checkquest(7413) == -1) {
+ mes "[Chiba]";
+ mes "You're human from Midgard.";
+ mes "I'm Chiba.";
+ mes "As you can see, I'm a traveler just like you.";
+ next;
+ mes "[Chiba]";
+ mes "I think local area information is the most important when traveling.";
+ mes "You think so, too?";
+ next;
+ mes "[Chiba]";
+ mes "I heard there's a way to avoid a rift that is blocking Jotunheim...";
+ mes "Do people really travel through Hazy Forest?";
+ next;
+ switch(select("Yes.:By magic!")) {
+ case 1:
+ mes "[Chiba]";
+ mes "So it is.";
+ mes "That's how strong humans are, I guess.";
+ mes "When I was Mora, I heard there are many missing men in Hazy Forest...";
+ next;
+ break;
+ case 2:
+ mes "[Chiba]";
+ mes "Indeed... people who get to Mora first use magic to help others travel?";
+ mes "That's brilliant.";
+ next;
+ break;
+ }
+ mes "[Chiba]";
+ mes "Anyway it's true that there are active interactions thanks to you people.";
+ mes "I should be grateful for that.";
+ next;
+ mes "[Chiba]";
+ mes "Do you want to know something more interesting?";
+ mes "Everyone in Alpheim knows about it, but I'm sure you people have never heard about it.";
+ next;
+ mes "[Chiba]";
+ mes "Among Laphines, have you seen the taller ones with especially bright skin and gorgeous wings?";
+ next;
+ mes "[Chiba]";
+ mes "They're the 'Donas.' By the way, normal-looking Laphines are called 'Papang' in their language.";
+ mes "It sounds like some kind of a snack, but well, we should respect them.";
+ next;
+ mes "[Chiba]";
+ mes "The reason Donas are taller and gorgeous is because they're all candidates for Mayor.";
+ mes "That is, they all have a chance of becoming the king.";
+ next;
+ mes "[Chiba]";
+ mes "We're not talking about upper class or lower class here. They are classified according to their job.";
+ mes "It might not be important, but it's good to know about it as a foreigner.";
+ next;
+ mes "[Chiba]";
+ mes "Anyway, Donas have strong magical powers and they live longer. But since there are not many of them most of them are assigned to important positions.";
+ next;
+ mes "[Chiba]";
+ mes "The throne of the king of Laphines seems to be inherited by blood, but it isn't in reality.";
+ mes "Mayor Jun is known to emerge among the Donas but it's just exactly that.";
+ next;
+ mes "[Chiba]";
+ mes "He literally just emerges without any kind of a formal inheritance process.";
+ mes "Isn't it pretty interesting?";
+ next;
+ setquest 7413;
+ callfunc "F_Eclage_Traveler";
+ mes "[Chiba]";
+ mes "Try talking to the other travelers."; //custom
+ close;
+ } else {
+ mes "[Chiba]";
+ mes "Try talking to the other travelers."; //custom
+ close;
+ }
+ } else if (ep14_2_tl == 1) {
+ mes "[Chiba]";
+ mes "Wasn't there an Eclage Guard looking for you just now?";
+ mes "You'd better respect Laphines as much as possible in order to avoid any discord.";
+ mes "It's the basis of traveling.";
+ close;
+ } else {
+ mes "[Chiba]";
+ mes "So, you weren't a mere traveler after all.";
+ close;
+ }
+}
+
+ecl_in01,82,70,2 script Eclage Guard#tl02 4_M_FAIRYSOLDIER,{
+ if (ep14_2_tl == 0) {
+ mes "[Eclage Guard]";
+ mes "Welcome to Eclage."; //custom
+ close;
+ } else if (ep14_2_tl == 1) {
+ cutin "minuel02.bmp",2;
+ mes "[Eclage Guard]";
+ mes "Oh, you are here!";
+ mes "May I escort take you to the one who wants to meet you?";
+ next;
+ switch(select("Sure. Let's go.:I don't have time for it right now...")) {
+ case 1:
+ mes "[Eclage Guard]";
+ mes "Please follow me then.";
+ erasequest 7414;
+ setquest 7415;
+ set ep14_2_tl,2;
+ close2;
+ warp "ecl_in03",244,89;
+ cutin "minuel02.bmp",255;
+ end;
+ case 2:
+ mes "[Eclage Guard]";
+ mes "Ah...is that right?";
+ mes "I'll wait then.";
+ next;
+ mes "[Eclage Guard]";
+ mes "Don't worry about me.";
+ mes "I'll just wait here as long as it takes.";
+ mes "Well, it's my job. Don't worry.";
+ close2;
+ cutin "minuel02.bmp",255;
+ end;
+ }
+ } else if (ep14_2_tl == 2) {
+ cutin "minuel01.bmp",2;
+ mes "[Eclage Guard]";
+ mes "I thought you sill had something to do.";
+ mes "May I guide you?";
+ next;
+ switch(select("Yes, please.:No, it's okay.")) {
+ case 1:
+ mes "[Eclage Guard]";
+ mes "Please follow me then.";
+ close2;
+ warp "ecl_in03",244,89;
+ cutin "minuel02.bmp",255;
+ end;
+ case 2:
+ mes "[Eclage Guard]";
+ mes "Is that right?";
+ mes "I see. Come find me whenever you need it.";
+ close2;
+ cutin "minuel02.bmp",255;
+ end;
+ }
+ } else if (ep14_2_tl == 3) {
+ cutin "minuel01.bmp",2;
+ mes "[Eclage Guard]";
+ mes "I see you pretty often.";
+ mes "I was notified in advance that the Chief of Staff requested for an audience.";
+ next;
+ if (checkquest(7416,PLAYTIME) < 2) {
+ mes "[Eclage Guard]";
+ mes "But I'm afraid it's too early.";
+ mes "I think you have to wait for a while.";
+ close2;
+ cutin "minuel02.bmp",255;
+ end;
+ }
+ mes "[Eclage Guard]";
+ mes "I see you pretty often.";
+ mes "I was notified in advance that the Chief of Staff requested for an audience.";
+ next;
+ mes "[Eclage Guard]";
+ mes "Since it's about time, should I lead you in now?";
+ next;
+ switch(select("Yes, please.:I'll come back later.")) {
+ case 1:
+ mes "[Eclage Guard]";
+ mes "Follow me, please.";
+ set ep14_2_tl,4;
+ close2;
+ warp "ecl_in03",58,72;
+ cutin "minuel02.bmp",255;
+ end;
+ case 2:
+ mes "[Eclage Guard]";
+ mes "Do as you wish although Mayor Jun might be upset if you keep him waiting for too long.";
+ close2;
+ cutin "minuel02.bmp",255;
+ end;
+ }
+ } else if (ep14_2_tl == 4) {
+ cutin "minuel01.bmp",2;
+ mes "[Eclage Guard]";
+ mes "May I escort you to the audience chamber?";
+ next;
+ switch(select("Yes, please.:No, it's okay.")) {
+ case 1:
+ mes "[Eclage Guard]";
+ mes "Follow me, please.";
+ close2;
+ warp "ecl_in03",58,72;
+ cutin "minuel02.bmp",255;
+ end;
+ case 2:
+ mes "[Eclage Guard]";
+ mes "Thank you.";
+ mes "I thought you were using me for teleportation since you're here so often.";
+ close2;
+ cutin "minuel02.bmp",255;
+ end;
+ }
+ } else if (ep14_2_tl == 5) {
+ if (checkquest(7418) == -1) {
+ cutin "minuel01.bmp",2;
+ mes "[Eclage Guard]";
+ mes "Eh, good to see you again.";
+ mes "We should have introduced ourselves earlier if we knew we would run into each other so often like this.";
+ next;
+ mes "[Minuel]";
+ mes "I'm Minuel.";
+ mes "It's such a common name. I don't even know what it means.";
+ mes "I think my parents just gave me a name that is easy on the ear.";
+ next;
+ mes "[Minuel]";
+ mes "Come to think of it, I heard the news.";
+ mes "You've decided to work in Eclage...";
+ next;
+ switch(select("It's just a rumor.:Do they have a job for me?")) {
+ case 1:
+ mes "[Minuel]";
+ mes "Eh? Really?";
+ mes "That's too bad. There was a suitable job for you.";
+ mes "Well, I understand.";
+ close2;
+ cutin "minuel02.bmp",255;
+ end;
+ case 2:
+ mes "[Minuel]";
+ mes "Actually I don't have any time for myself since I have to be here all the time.";
+ mes "Not only I, but most Laphines who are in this business are faced with that position, too.";
+ next;
+ mes "[Minuel]";
+ mes "So, we don't have any time to decorate our Yai.";
+ mes "Of course we could buy the materials. But just like any other consumers, we would like to gather them on our own.";
+ next;
+ mes "[Minuel]";
+ mes "Since you're free to go anywhere,";
+ mes "could you gather some decorations for Yai?";
+ next;
+ switch(select("Sure.:No.")) {
+ case 1:
+ mes "[Minuel]";
+ mes "Thank you.";
+ mes "You need to find";
+ mes "5 Horns of Hillslion, 5 Magical Powers, and 5 Horse's Hooves each.";
+ next;
+ mes "[Minuel]";
+ mes "I would like to decorate it with unpolished beauty.";
+ mes "You can get the materials by hunting the monsters near Splendide, where I'm not supoosed to go.";
+ next;
+ mes "[Minuel]";
+ mes "I've heard some rumors about Hillslions, and they seem to appear in Sapha's areas.";
+ mes "Their horns, Mystic Horns of Cornuses that live in the grasslands and something called Horse's Hooves.";
+ next;
+ mes "[Minuel]";
+ mes "I'm sure you would know more about those hooves than I do.";
+ mes "I'll be counting on you!";
+ setquest 7418;
+ close2;
+ cutin "minuel02.bmp",255;
+ end;
+ case 2:
+ mes "[Minuel]";
+ mes "Ha, do you really think so?";
+ mes "You will be coming here again.";
+ mes "Soon, in the near future. Hehehe~";
+ close2;
+ cutin "minuel02.bmp",255;
+ end;
+ }
+ }
+ }
+ mes "[Minuel]";
+ mes "I asked you for 5 Horns of Hillslion, 5 Mystic Horns, and 5 Horse's Hooves.";
+ mes "You'll be able to get Mystic Horns by catching Cornuses near Splendide.";
+ close;
+ }
+}
+
+ecl_in03,245,93,2 script Chief of Staff#tl01 4_F_FAIRY,{
+ if (ep14_2_tl < 2) {
+ mes "[Chief of Staff]";
+ mes "Sorry, but no unauthorized entry is allowed here.";
+ close;
+ } else if (ep14_2_tl == 2) {
+ mes "[Chief of Staff]";
+ mes "Welcome to Eclage.";
+ mes "I ordered them to lead you here.";
+ next;
+ mes "[Shenime]";
+ mes "I'm in charge of the military supplies that are sent to the outpost of Splendide.";
+ mes "My name is Shenime.";
+ next;
+ mes "[Shenime]";
+ mes "Our supplies sent to Mora Village...";
+ mes "oww...I'm sorry. I've been having this headache recently...";
+ next;
+ mes "[Shenime]";
+ mes "Anyway, I've heard that there are people";
+ mes "who deliver our supplies to Splendide through Hazy Forest.";
+ next;
+ mes "[Shenime]";
+ mes "It's so good to see you in person.";
+ mes "People who are clever enough are already trying hard to build relationships with Eclage.";
+ next;
+ select("So, I'm not the first one?");
+ mes "[Shenime]";
+ mes "Yes, you're not...oww...";
+ mes "But it doesn't matter.";
+ mes "You humans are already doing so much for Splendide and us.";
+ next;
+ mes "[Shenime]";
+ mes "Oh, the reason I'm frowning is because of this headache.";
+ mes "Don't get me wrong.";
+ mes "Um...anyway, to go on with my story...";
+ next;
+ mes "[Shenime]";
+ mes "We are supposed to welcome you.";
+ mes "Should I get to the point now? I mean, the reason why I wanted to meet you.";
+ next;
+ mes "[Shenime]";
+ mes "As you know already, we're disconnected from Splendide due to the accident in Bifrost.";
+ mes "And for us Laphines, it's hard to go against the will of the forest and Bifrost.";
+ next;
+ mes "[Shenime]";
+ mes "I'm sure every fairy in Alpheim feels the same, too.";
+ mes "Anyway, I want to know what's going on in Splendide and Jotunheim nowadays.";
+ next;
+ mes "[Shenime]";
+ mes "I heard the battle against Manuk has recently calmed down to the point of a truce...";
+ mes "and it could have been that they didn't get supplies in time.";
+ next;
+ mes "You've answered Shenime's serious questions and describe the situation as far as you could remember.";
+ next;
+ select("Now that I think about it...");
+ mes "[Shenime]";
+ mes "What is it?";
+ mes "What you've told me is going to be very helpful.";
+ mes "Is there anything else you would like to talk about?";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "I was told that Sapha made Yggdrasil Tree sick,";
+ mes "and your side started a war in order to protect the tree...";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "...but what I know is a little bit different from that.";
+ mes "Apparently, the cause of the war seems to be the damage given to Yggdrasil Tree caused by Sapha's excessive mining, but...";
+ next;
+ mes "[Shenime]";
+ mes "Wait, stop there.";
+ next;
+ select("What's the matter?");
+ mes "[Shenime]";
+ mes "This war is like a holy war for us.";
+ mes "It's a war that we carry on upon our honor and dignity.";
+ next;
+ mes "[Shenime]";
+ mes "So whatever the truth you know is,";
+ mes "if you're not going to hold responsibility for the backlash it might bring,";
+ mes "don't say anything at all.";
+ next;
+ select("Why are you trying to hide the truth...");
+ mes "[Shenime]";
+ mes "This is a matter between Yggdrasil the world-ash and its protector.";
+ mes "Mayor Jun should be the one listening to your story, not me.";
+ next;
+ select("What?");
+ mes "[Shenime]";
+ mes "My work is done here.";
+ mes "What I'm saying is that I'm not the one to clear up your question.";
+ mes "I'll arrange a meeting with Mayor Jun for you.";
+ next;
+ mes "In the middle of the conversation, Shenime stopped talking and frowned as if he was having a headache again.";
+ mes "After massaging his head for a while, he looked much better and continued to go on.";
+ next;
+ mes "[Shenime]";
+ mes "Promise me that you will not tell anyone";
+ mes "about the truth that you believe.";
+ next;
+ if(select("No!:Yes, I promise.") == 1) {
+ mes "[Shenime]";
+ mes "You put me on the spot.";
+ mes "I don't want you to be the cause of friction.";
+ next;
+ mes "[Shenime]";
+ mes "Can't you just keep it to yourself before discussing the matter with Mayor Jun?";
+ next;
+ switch(select("No, I can't!:Fine, I won't tell anyone.")) {
+ case 1:
+ mes "[Shenime]";
+ mes "Oh well...";
+ mes "It's your loss...";
+ close;
+ case 2:
+ mes "[Shenime]";
+ mes "I see that you've made up your mind.";
+ next;
+ break;
+ }
+ }
+ mes "[Shenime]";
+ mes "I'll arrange a meeting to let Mayor Jun get to know you.";
+ mes "You need to wait a little bit. Please bear with us.";
+ next;
+ mes "[Shenime]";
+ mes "I'll notify the guard that brought you here.";
+ mes "Go find the guard after some time.";
+ mes "He will guide you.";
+ next;
+ mes "[Shenime]";
+ mes "Until then, I hope you have a good time.";
+ mes "I'll send you to the plaza.";
+ mes "By the way, the guard who is going to lead you will be at the east gate. Don't forget the time.";
+ erasequest 7415;
+ setquest 7416;
+ set ep14_2_tl,3;
+ close2;
+ warp "ecl_in01",47,28;
+ end;
+ } else if (ep14_2_tl == 3) {
+ if (checkquest(7416,PLAYTIME) < 2) {
+ mes "[Shenime]";
+ mes "You need to wait a little longer to see Mayor Jun.";
+ mes "He is pretty busy, so please bear with us.";
+ close;
+ }
+ mes "[Shenime]";
+ mes "There's another guard who was supposed to be guiding you...";
+ mes "I can't go anywhere right now.";
+ next;
+ mes "[Shenime]";
+ mes "There's a guard at the east side of the plaza near the gate.";
+ mes "I notified him already, so just ask him to guide you.";
+ close;
+ } else if (ep14_2_tl == 4) {
+ mes "[Shenime]";
+ mes "Did you tell Mayor Jun about what you think?";
+ mes "He should be the one to decide.";
+ next;
+ mes "[Shenime]";
+ mes "It seems like you haven't even met him yet. Ask the guard to guide you.";
+ close;
+ } else if (ep14_2_tl == 5) {
+ mes "[Shenime]";
+ mes "I've heard about you.";
+ mes "You've decided to work for Eclage?";
+ next;
+ mes "[Shenime]";
+ mes "At the starting point of Bifrost, there should be a messenger stamping his feet.";
+ next;
+ mes "[Shenime]";
+ mes "It's a messenger that we sent in an effort to contact Splendide regularly,";
+ mes "but I think it's still difficult to do so.";
+ next;
+ mes "[Shenime]";
+ mes "If you could help us with that, wouldn't other Laphines think better of you?";
+ close;
+ }
+}
+
+ecl_in03,41,90,2 script Mayor Jun Kardui#tl01 4_M_FARIYKING,{
+ if (ep14_2_tl < 4) {
+ mes "[Kardui]";
+ mes "Mmm...";
+ mes "I don't know who you are, but could you wait until I call you?";
+ mes "I'll have to meet you some day, but now is not the right time.";
+ cutin "kardui01.bmp",1;
+ close2;
+ cutin "kardui01.bmp",255;
+ end;
+ } else if (ep14_2_tl == 4) {
+ mes "[Kardui]";
+ mes "Welcome to Eclage, stranger.";
+ mes "...this was a popular way of greeting each other, but I guess it's not fun anymore.";
+ cutin "kardui01.bmp",1;
+ next;
+ mes "[Kardui]";
+ mes "Anyway, you who came from a long way away";
+ mes "and reconized by the guardian.";
+ mes "There is a truth that you would like to tell me?";
+ next;
+ mes "[Kardui]";
+ mes "If that's the case, you will be very busy from now on.";
+ next;
+ select("What do you mean?");
+ mes "[Kardui]";
+ mes "You have to do a lot of work in order to convince me, the elders, and many other Laphines.";
+ next;
+ mes "[Kardui]";
+ mes "Of couse I could trust everything you say,";
+ mes "but will other Laphines accept a Mayor Jun who is swayed by a word of a foreigner?";
+ next;
+ cutin "kardui03.bmp",1;
+ mes "[Kardui]";
+ mes "Especially when that Mayor Jun is me. Ah...";
+ next;
+ cutin "kardui01.bmp",1;
+ mes "[Kardui]";
+ mes "Don't you understand?";
+ mes "Here, in Eclage, You have to get more recognition from Laphines.";
+ next;
+ if(select("Do I have to make a contribution?:It's about Yggdrasil!") == 1) {
+ mes "[Kardui]";
+ mes "See, you understood it right.";
+ next;
+ select("It's about Yggdrasil!");
+ }
+ cutin "kardui04.bmp",1;
+ mes "[Kardui]";
+ mes "Um.";
+ mes "I know.";
+ next;
+ mes "[Kardui]";
+ mes "You don't have to make a face.";
+ mes "No matter what I look like to you, I am the history and the spirit of Laphines, and also the protector of Yggdrasil.";
+ next;
+ mes "[Kardui]";
+ mes "Do you think I, who inherited the will of Yggdrasil, don't know anything?";
+ mes "I don't blame you since it is ignorance.";
+ next;
+ mes "[Kardui]";
+ mes "The war of Jotunheim will soon be over.";
+ mes "And it will happen not by constraint, but as a result of mutual agreement.";
+ next;
+ cutin "kardui01.bmp",1;
+ mes "[Kardui]";
+ mes "So, stranger,";
+ mes "don't worry about it and do you want to work with me for Eclage?";
+ next;
+ select("Then why do you make war and disregard the truth?");
+ cutin "kardui02.bmp",1;
+ mes "[Kardui]";
+ mes "Hmm...";
+ mes "I'll tell you when we get closer to each other.";
+ mes "I'm not obligated to talk about this important subject with a person I just met.";
+ next;
+ cutin "kardui01.bmp",1;
+ mes "[Kardui]";
+ mes "For now, I will tell the administrative ruler, the elders, and all the guards";
+ mes "about you,";
+ mes "and you will enjoy all the rights in Eclage as a person who works for the king.";
+ next;
+ select("Just hire a worker then!");
+ mes "[Kardui]";
+ mes "It's a part of building relationships with me, the king of a race. You don't like it?";
+ mes "If that's the case, I guess there's no friendship between the two of us.";
+ next;
+ select("What do you mean 'the two of us'?");
+ mes "[Kardui]";
+ mes "Us?";
+ mes "Umm...";
+ mes "Friends who share their secrets from now on?";
+ next;
+ mes "[Kardui]";
+ mes "...Haha...wasn't it funny?";
+ mes "What's up with that face.";
+ mes "Anyway, I allow you to visit anytime.";
+ next;
+ cutin "kardui04.bmp",1;
+ mes "[Kardui]";
+ mes "However, if you don't meet my expectation, you won't get anything.";
+ mes "I'll be looking forward to seeing you, stranger who will be my friend.";
+ erasequest 7416;
+ setquest 7417;
+ set ep14_2_tl,5;
+ close2;
+ cutin "kardui01.bmp",255;
+ end;
+ } else if (ep14_2_tl == 5) {
+ mes "[Kardui]";
+ mes "Now, you who work for the king!";
+ mes "Work your fingers to the bone for me!";
+ next;
+ cutin "kardui04.bmp",1;
+ mes "[Kardui]";
+ mes "...It's a joke.";
+ mes "I truly want you to become an important figure in Eclage.";
+ mes "Even if you don't, I want you to be recognized as a harmless person who gives benefit to Eclage.";
+ next;
+ mes "[Kardui]";
+ mes "It's going to be tough, but think of it as having insurance.";
+ mes "Some day, a person who remembers your name will be a great help to you.";
+ close2;
+ cutin "kardui01.bmp",255;
+ end;
+ }
+}
+
+ecl_in01,31,49,6 script Eclage Guard#tl01 4_M_FAIRYSOLDIER,{
+ mes "[Eclage Guard]";
+ mes "Oh, I should hurry and go back to where I was.";
+ mes "Excuse me.";
+ close;
+OnInit:
+OnDisable:
+ disablenpc "Eclage Guard#tl01";
+ end;
+OnEnable:
+ enablenpc "Eclage Guard#tl01";
+ end;
+}
+
+ecl_fild01,205,86,4 script Eclage Messenger Roy#tl 4_M_FAIRYSOLDIER2,{
+ if (ep14_2_tl < 5) {
+ mes "[Roy]";
+ mes "I can make it to Mora Village.";
+ mes "But how can I go through Hazy Forest? All alone?";
+ mes "...Ah... I'm just feeling sorry for myself, so just continue on your way.";
+ close;
+ } else {
+ if (checkquest(7419) == -1) {
+ mes "[Roy]";
+ mes "It's hard.";
+ mes "It really is hard.";
+ mes "The more I think about it, I feel like Shenime has a nasty temper.";
+ emotion e_gasp;
+ next;
+ mes "[Roy]";
+ mes "You, who appeared in this time of crisis.";
+ mes "You, who went through Hazy Forest Maze... Are you the guidance of god? Or a blessing from god?";
+ next;
+ mes "[Roy]";
+ mes "I guess I have no other choice.";
+ mes "They say Laphines are nothing without their pride, but since I value my life over pride,";
+ mes "can I ask you a favor?";
+ next;
+ switch(select("What is it?:No.")) {
+ case 1:
+ mes "[Roy]";
+ mes "It's something difficult for Laphines, but for humans, it's very easy.";
+ mes "That is, brining the news from Splendide!";
+ next;
+ mes "[Roy]";
+ mes "I should take care of it but...";
+ mes "my magical powers are not all that great.";
+ next;
+ mes "[Roy]";
+ mes "...well, you don't need to know the details!";
+ mes "You just need to collect mails from the contact officer in Splendide.";
+ next;
+ mes "[Roy]";
+ mes "There's nothing confidential, so you can do it, too.";
+ mes "Bringing one mail. I'm sure it's easy for you.";
+ next;
+ switch(select("Leave it to me!:I don't want to.")) {
+ case 1:
+ mes "[Roy]";
+ mes "Good!";
+ mes "Go to Splendide and meet the contact officer!";
+ mes "Collect mails that are not confidential and could be a love letter to someone!";
+ mes "and bring them to me, please.";
+ setquest 7419;
+ next;
+ mes "[Roy]";
+ mes "Isn't that easy?";
+ mes "I'll be standing here and waiting for you to bring me that mail.";
+ close;
+ case 2:
+ mes "[Roy]";
+ mes "What? You're saying no after making me talk all this time?";
+ mes "....Well, things happen.";
+ mes "But you'll come back. So I'm not worried.";
+ next;
+ mes "[Roy]";
+ mes "Hehe. I knew it.";
+ mes "From the moment they picked me for this job,";
+ mes "everything is in 'the big invisible hand!!'";
+ close;
+ }
+ case 2:
+ mes "[Roy]";
+ mes "Ah...";
+ mes "It took you less than a second to say no, how clear is that.";
+ mes "Now, I'll erase the memory of this very moment!";
+ next;
+ mes "[Roy]";
+ mes "So that I could ask you again with a renewed mind.";
+ mes "Ahahahah...ha...hahha..hahaa..";
+ close;
+ }
+ }
+ mes "[Roy]";
+ mes "Let me explain again.";
+ mes "Go to Splendide and meet the contact officer!";
+ mes "Collect mails that are not confidential and could be a love letter to someone!";
+ mes "and bring them to me, please.";
+ close;
+ }
+}
+
+eclage,112,40,4 script Eclage Guard Leo#tl 4_M_FAIRYSOLDIER2,{
+ if (ep14_2_tl < 5) {
+ mes "[Leo]";
+ mes "Welcome to Eclage, the capital of Laphines and a gateway to Alpheim.";
+ mes "I hope you enjoy your trip.";
+ close;
+ } else {
+ if (checkquest(7420) == -1) {
+ mes "[Leo]";
+ mes "Hi, how are you?";
+ emotion e_gasp;
+ next;
+ mes "[Leo]";
+ mes "How are you, really!";
+ next;
+ mes "[Leo]";
+ mes ".....";
+ next;
+ switch(select("Does he want something?:It's a strange fairy!")) {
+ case 1:
+ mes "[Leo]";
+ mes "Mayor Jun told us";
+ mes "that you would do anything for Laphines and Eclage.";
+ next;
+ mes "[Leo]";
+ mes "In order to take care of the urgent matter...";
+ next;
+ switch(select("No, I refuse!:What do you want me to do?")) {
+ case 1:
+ mes "[Leo]";
+ mes "Although you have all the rights to say no, this is what I get...";
+ mes "I understand.";
+ close;
+ case 2:
+ mes "[Leo]";
+ mes "It's nothing more than a request for Pinguicula's pickled fruits and Luciola's honey jam,";
+ mes "which are specialties of Splendide...";
+ next;
+ mes "[Leo]";
+ mes "I know it's something personal...but Hazy Forest is such a huge obstacle...";
+ mes "so I couldn't help but...";
+ next;
+ select("You said it's something urgent!!!");
+ mes "[Leo]";
+ mes "I feel like I might die if I don't eat them!!!";
+ mes "What's more urgent than this?!!?!?";
+ next;
+ mes "[Leo]";
+ mes "You visit Splendide pretty often anyway!";
+ mes "On your way back, just carry one under your arm, another in your hand, please~";
+ mes "I won't ask you anything like this ever again!";
+ next;
+ mes "[Leo]";
+ mes "So...is that yes?";
+ mes "I need 3 jars of Pinguicula's pickled fruits and another 3 jars of Luciola's honey jam~";
+ mes "They are sold inside the base of Splendide.";
+ setquest 7420;
+ next;
+ mes "[Leo]";
+ mes "You might need Splendide Coins to buy pickled fruits and honey jam.";
+ mes "You could earn those coins if you work in Splendide, so...hehe..........";
+ next;
+ mes "[Leo]";
+ mes "Helping out in Splendide is eventually helping Eclage, too.";
+ mes "Now, go for it!";
+ close;
+ }
+ case 2:
+ mes "[Leo]";
+ mes "Oh...no. I'm not a weird Laphine.";
+ mes "You got me wrong. It's a misunderstanding...";
+ close;
+ }
+ }
+ mes "[Leo]";
+ mes "I need 3 jars of Pinguicula's pickled fruits and another 3 jars of Luciola's honey jam~";
+ mes "They are specialties of the base of Splendide.";
+ mes "I'll be counting on you!";
+ close;
+ }
+}
+
+ecl_in03,245,54,2 script Working Laphine 4_F_FAIRYKID4,{ //Laphine on official duty#tl01
+ mes "[Working Laphine]";
+ mes "This is the office area designated for official business.";
+ mes "You're not supposed to be here.";
+ close;
+}
+
+ecl_in03,244,57,4 script Resting Laphine#tl01 4_F_FAIRYKID5,{
+ mes "Two Laphines from the upper class are talking about something.";
+ mes "One of them seems to be working and very annoyed.";
+ mes "As if they were aware of my stare, they waved me away with a show of irritation.";
+ close;
+}
+
+ecl_in02,98,32,2 script Eclage Guard#tl1b 4_M_FAIRYSOLDIER2,{
+ mes "[Eclage Guard]";
+ mes "This the prison where we put criminals.";
+ mes "No outsiders can enter.";
+ close;
+}
+
+eclage,274,294,4 script Conversing Laphine 4_F_FAIRYKID,{ //Laphines in a conversation#tl02
+ mes "A female Laphine and a male Laphine are talking about something.";
+ mes "But they stopped talking as soon as they saw me.";
+ mes "I think I've interrupted the conversation.";
+ close;
+}
+
+eclage,275,294,2 script Eclage Resident#tl02 4_M_FAIRYKID4,{
+ mes "[Male Laphine]";
+ mes "You're visiting Eclage?";
+ mes "I hope you have a good time here.";
+ close;
+}
+
+eclage,307,237,0 script Normal Yai#tllb CLEAR_NPC,{
+ mes "This is a Laphine's Yai.";
+ mes "The door is locked shut.";
+ cutin "avn_labo.bmp",4;
+ close2;
+ cutin "avn_labo.bmp",255;
+ end;
+}
+
+// Unknown
+//============================================================
+ecl_fild01,173,95,4 script Diary Frog No. 30#worm 4_FROG,{
+ mes "[Diary Frog No. 30]";
+ mes "As you can see, I am a broken Diary Frog.";
+ mes "Professor Worm threw me out really hard all the way out here.";
+ mes "I didn't even do anything wrong!";
+ close;
+}
+
+eclage,156,56,0 script Residence Entrance CLEAR_NPC,{}
diff --git a/npc/re/quests/quests_izlude.txt b/npc/re/quests/quests_izlude.txt
index 0286baca0..9e7b34746 100644
--- a/npc/re/quests/quests_izlude.txt
+++ b/npc/re/quests/quests_izlude.txt
@@ -1,15 +1,19 @@
//===== Hercules Script ======================================
//= Quest NPCs related to Izlude
-//===== By: ==================================================
+//===== By: ==================================================
//= Daegaladh, Masao
-//===== Current Version: =====================================
-//= 1.0
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
-//= Edgar's Offer
-//===== Additional Comments: =================================
+//===== Current Version: =====================================
+//= 1.1
+//===== Description: =========================================
+//= Contains:
+//= - Edgar's Offer
+//===== Additional Comments: =================================
//= 1.0 Updated to match the new Izlude Map. [Masao]
+//= 1.1 Added Izlude duplicates. [Euphy]
//============================================================
-izlude,179,219,4 duplicate(Edgar_izlude) Edgar#izlude 49
+izlude,179,219,2 duplicate(Edgar_izlude) Edgar#izlude 1_M_03
+izlude_a,179,219,2 duplicate(Edgar_izlude) Edgar#izlude_a 1_M_03
+izlude_b,179,219,2 duplicate(Edgar_izlude) Edgar#izlude_b 1_M_03
+izlude_c,179,219,2 duplicate(Edgar_izlude) Edgar#izlude_c 1_M_03
+izlude_d,179,219,2 duplicate(Edgar_izlude) Edgar#izlude_d 1_M_03
diff --git a/npc/re/quests/quests_lighthalzen.txt b/npc/re/quests/quests_lighthalzen.txt
deleted file mode 100644
index 3f029f7f4..000000000
--- a/npc/re/quests/quests_lighthalzen.txt
+++ /dev/null
@@ -1,592 +0,0 @@
-//===== Hercules Script =======================================
-//= Quest NPCs located in Lighthalzen
-//===== By: ==================================================
-//= Ziu, Heris (translation)
-//===== Current Version: =====================================
-//= 1.1a
-//===== Compatible With: =====================================
-//= Hercules GIT
-//===== Description: =========================================
-//= Quests related to Lighthalzen City.
-//===== Additional Comments: =================================
-//= 1.0 Updated to match the new Izlude Map. [Masao]
-//= 1.1 Added Somatology Laboratory F4 quest. [Euphy]
-//= 1.1a Coordinate update
-//============================================================
-
-// Renewal split [Daegaladh]
-//============================================================
-izlude,172,73,6 duplicate(Scamp) Scamp#2 853
-
-// Somatology Laboratory F4
-//============================================================
-lighthalzen,303,304,5 script Jerome Jameson#start 904,{
- if (lhz_dun04 == 0) {
- mes "[Jerome Jameson]";
- mes "Wow, what a "+((Sex)?"strong man!":"beautiful dame!");
- next;
- mes "[Jerome Jameson]";
- mes ((Sex)?"Sir":"Ma'am")+", please take heed -- as soon";
- mes "as a dangerous rumor aroused about";
- mes "the endangerment of everyone in";
- mes "town, the best thing to do is lock";
- mes "your doors.";
-
- // To do: check BaseLevel requirement.
- if (BaseLevel < 90 || hg_tre < 54) close;
-
- next;
- select("Dangerous rumor?");
- mes "[Jerome Jameson]";
- mes "Strong rumors have been heard from";
- mes "Rekenber Investigation Institute";
- mes "about terrible, secret experiments";
- mes "with human beings!";
- next;
- select("What? Experiments?");
- mes "[Jerome Jameson]";
- mes "Yes. Biological experiments!!";
- mes "Experiments with human beings";
- mes "conducted in the undergrounds of";
- mes "these very slums. Apparently, they";
- mes "have spread the rumors upon being";
- mes "denied of social benefits.";
- next;
- mes "[Jerome Jameson]";
- mes "This rumor cannot go about";
- mes "unhandled. The biological";
- mes "experiments that have been carried";
- mes "out in this place can be real.";
- mes "This really needs to be";
- mes "investigated, and soon!";
- setquest 5109;
- set lhz_dun04,1;
- close;
- }
- mes "[Jerome Jameson]";
- mes "Please investigate the deeper";
- mes "parts of the laboratory. I hope";
- mes "to hear from you soon.";
- close;
-}
-
-// Is this the correct behavior? (limited and conflicting sources)
-// -- iRO: lhz_dun03 warps directly to que_lhz.
-// -- Ziu: NPC in lhz_dun04 warps into que_lhz.
-function script lhz4enter {
- if (getmapusers("que_lhz") == 0 && mobcount("que_lhz","#controllhz4::OnMyMobDead") < 1) {
- if (getarg(0) == 0) {
- mes "- Having Jerome Jameson's orders";
- mes "in mind, you hold your breath and";
- mes "descend the flooded flight of";
- mes "stairs. -";
- } else {
- mes "[Researcher]";
- mes "Who are you?";
- mes "................";
- emotion e_omg;
- next;
- mes "The man runs away and you go after him.";
- }
- if (lhz_dun04 > 1) {
- changequest 5110,5109;
- set lhz_dun04,1;
- }
- close2;
- // Check twice because of 'next'.
- if (getmapusers("que_lhz") == 0 && mobcount("que_lhz","#controllhz4::OnMyMobDead") < 1) {
- donpcevent "#lhz4mes1::OnEnable";
- warp "que_lhz",244,52;
- }
- end;
- }
- mes "Right now there are other people inside. Wait for your turn.";
- close;
-}
-
-lhz_dun03,239,77,0 script #warplhz3lhz4 45,1,1,{
-OnTouch:
- if (lhz_dun04 == 0) {
- mes "It doesn't make sense to go down these flooded stairs.";
- close;
- } else if (lhz_dun04 < 6) {
- callfunc "lhz4enter",0;
- end;
- }
- warp "lhz_dun04",244,52;
- end;
-}
-lhz_dun04,245,61,0 warp #warplhz4lhz3 1,1,lhz_dun03,240,74
-
-// Does this portal exist?
-que_lhz,245,61,0 warp #warplhzqlhz3 1,1,lhz_dun03,240,74
-
-que_lhz,244,52,0 script #lhz4mes1 -1,2,2,{
-OnTouch:
- mes "- You find another flight of";
- mes "stairs that is raised and deviates";
- mes "from the flooded path. -";
- // Missing dialogue.
- close2;
- donpcevent "#lhz4mes1::OnDisable";
- end;
-OnInit:
-OnDisable:
- disablenpc "#lhz4mes1";
- end;
-OnEnable:
- enablenpc "#lhz4mes1";
- end;
-}
-
-lhz_dun04,151,276,3 script Researcher#lhz4 865,{
- if (lhz_dun04 == 0) {
- mes "[Researcher]";
- mes "................";
- close;
- } else if (lhz_dun04 < 6) {
- callfunc "lhz4enter",1;
- end;
- } else if (lhz_dun04 == 6) {
- mes "Think twice before saying that these samples are a reason to shut this place down.";
- next;
- mes "["+strcharinfo(0)+"]";
- mes "You're stopping me for doing nothing good? What about the last four men I've created?";
- next;
- mes "[Wolfchev]";
- mes "Hmm. This place will be completely flooded...";
- next;
- mes "[Wolfchev]";
- mes "What is the problem?";
- next;
- mes "[Wolfchev]";
- mes "Hmm... All this burocracy is ruining my laboratory. For God's sake!";
- next;
- mes "["+strcharinfo(0)+"]";
- mes "Hey! Wolfchev!!";
- next;
- mes "[Wolfchev]";
- mes "Oh yes? To please them all! ^FF0080The different specimen^000000 are organically connected to each other.";
- next;
- mes "[Wolfchev]";
- mes "Perhaps the boss of these ^00FF00things^000000...";
- mes "My inability to control my own experiment... Here, are all the ^808000slaves used as decoys^000000 and the laboratory will be shut down.";
- next;
- mes "["+strcharinfo(0)+"]";
- mes "Hey, Wolfchev!! This ^00FF00boss^000000 you're talking about. Where is it?";
- next;
- mes "[Wolfchev]";
- mes "...in my laboratory. I awakened it. I tried to use it to destroy them all, but it didn't work... you'll have to do it...";
- next;
- mes "["+strcharinfo(0)+"]";
- mes "How can I get access to your laboratory?";
- next;
- mes "[Wolfchev]";
- mes "Now... One moment!";
- mes "I will help you.";
- next;
- mes "[Wolfchev]";
- mes "Luckily, the boss hasn't awaken sober, though he's still strong and destructive.";
- next;
- mes "[Wolfchev]";
- mes "But it's still dangerous. He wil release his colleagues and this means we don't have much time here.";
- set lhz_dun04,7;
- completequest 5111;
- setquest 5113;
- setquest 5114;
- setquest 5115;
- setquest 5116;
- setquest 5117;
- setquest 5118;
- setquest 5119;
- setquest 5120;
- setquest 5121;
- setquest 5122;
- setquest 5123;
- setquest 5124;
- setquest 5125;
- close;
- } else if (lhz_dun04 == 7) {
- mes "[Wolfchev]";
- mes "Are you going alone?";
- mes "You will need a really good group to bypass the system and defeat the boss.";
- close;
- }
- end;
-}
-
-que_lhz,207,75,3 script Researcher#ins 865,3,3,{
-OnTouch:
- if (lhz_dun04 == 1) {
- mes "[Researcher]";
- mes "..........";
- next;
- mes "["+strcharinfo(0)+"]";
- mes "You! Are you professor Wolfchev?";
- emotion e_omg,1;
- next;
- mes "[Wolfchev]";
- mes "Many people come here looking for me. But most of them are reluctant to.";
- mes "What do you want?";
- emotion e_gg;
- next;
- mes "["+strcharinfo(0)+"]";
- mes "I've heard rumors about biological experiments.";
- mes "Wolfchev!!";
- next;
- mes "["+strcharinfo(0)+"]";
- mes "These experiments...";
- next;
- mes "[Wolfchev]";
- mes "I think I know what you're gonna say. Are you accusing me of something?";
- mes "I don't want to hear more of that.";
- mes "You better leave.";
- emotion e_gg;
- next;
- mes "[Wolfchev]";
- mes "They seem to have cried for a long time... I'm busy, excuse me!";
- next;
- mes "From Wolfchev's eyes tears welled and he started laughing before running away.";
- next;
- mes "["+strcharinfo(0)+"]";
- mes "Hey! Wolfchev there...";
- emotion e_omg,1;
- changequest 5109,5110;
- set lhz_dun04,2;
- close2;
- warp "que_lhz",96,136;
- end;
- }
- mes "[Researcher]";
- mes "..........";
- close;
-}
-
-que_lhz,94,119,3 script Researcher#ins2 865,{
- if (lhz_dun04 == 2) {
- mes "[Wolfchev]";
- mes "Hehehe. You are really persistent. What do you want from someone like me?";
- emotion e_swt2;
- next;
- mes "["+strcharinfo(0)+"]";
- mes "Wolfchev... You've admitted it's dangerous already. And all these investigations...";
- next;
- mes "[Wolfchev]";
- mes "You're right...hehe.";
- next;
- mes "["+strcharinfo(0)+"]";
- mes "Your research is too dangerous. Do you think everybody wants it to keep going?";
- next;
- mes "[Wolfchev]";
- mes "Everyone wants to be strong and dominate the others. Have their obedience, respect and attention. Don't you want that? Hehe.";
- emotion e_gg;
- next;
- mes "["+strcharinfo(0)+"]";
- mes "... ... ...";
- next;
- mes "[Wolfchev]";
- mes "With such a dangerous life, avoiding being damaged... Don't you see it?. Hehe.";
- next;
- mes "Again, Wolfchev hastily escapes.";
- next;
- mes "["+strcharinfo(0)+"]";
- mes "Oh! He's far... and...";
- set lhz_dun04,3;
- close2;
- warp "que_lhz",148,215;
- end;
- }
- mes "[Researcher]";
- mes "..........";
- close;
-}
-que_lhz,147,224,3 script Researcher#ins3 865,{
- if (lhz_dun04 == 4 || mobcount("que_lhz","#controllhz4::OnMyMobDead") > 0) {
- mes "[Wolfchev]";
- mes "Wolfchev is freaking out. He is out of his mind.";
- emotion e_turn;
- close;
- } else if (lhz_dun04 == 3) {
- mes "[Wolfchev]";
- mes "You really are a bothersome little";
- mes "tick, aren't you? Isn't that";
- mes "apparent to you at all?";
- next;
- mes "["+strcharinfo(0)+"]";
- mes "... ... ...";
- emotion e_dots,1;
- next;
- mes "Wolfchev didn't want to talk to you anymore, so while laughing he pressed a button on his hand. Then he went mad.";
- specialeffect EF_SIGHTRASHER;
- next;
- mes "[Wolfchev]";
- mes "Unfortunately to you, I will beat you here.";
- donpcevent "#controllhz4::OnEnable";
- next;
- mes "[Wolfchev]";
- mes "You're such a fool.";
- emotion e_gasp;
- next;
- mes "[Wolfchev]";
- mes "Look at all these experimental bodies you'll have to deal and see how good they are.";
- next;
- donpcevent "#controllhz4::OnEnable2";
- progressbar "ffff00",6;
- set lhz_dun04,4;
- next;
- mes "[Wolfchev]";
- mes "NO!! ...Look what you did!! You";
- mes "wreckless madman!!!";
- emotion e_omg;
- next;
- mes "[Wolfchev]";
- mes "Go back!";
- next;
- mes "First, let's destroy all these experiments!";
- close;
- } else if (lhz_dun04 == 5) {
- mes "Wolfchev is freaking out. He is out of his mind.";
- next;
- mes "["+strcharinfo(0)+"]";
- mes "*Slaps Face* Hey, snap out of it!";
- mes "We've destroyed them!";
- specialeffect EF_STUNATTACK;
- sleep2 1000;
- specialeffect EF_STUNATTACK;
- next;
- mes "["+strcharinfo(0)+"]";
- mes "Let's get out of here first! Is there a place we can go?";
- specialeffect EF_DARKBREATH;
- emotion e_no,1;
- next;
- mes "[Wolfchev]";
- mes "This. My laboratory... My laboratory...";
- next;
- mes "["+strcharinfo(0)+"]";
- mes "The laboratory? Where am I indeed?";
- next;
- mes "[Wolfchev]";
- mes "Back to the beggining... here's when...";
- next;
- mes "- Wolfchev weakly points to the 12 o' clock direction. -";
- next;
- mes "I have to go to ^0000FF Wolfchev's Laboratory^000000...";
- changequest 5110,5111;
- set lhz_dun04,6;
- donpcevent "#controllhz4d::OnEnable";
- close;
- } else if (lhz_dun04 == 6) {
- mes "I have to go to ^0000FF Wolfchev's Laboratory^000000...";
- close;
- }
- end;
-}
-
-- script Awake Specimen#lhz -1,{
- end;
-OnInit:
-OnDisable:
- hideonnpc strnpcinfo(0);
- end;
-OnEnable:
- hideoffnpc strnpcinfo(0);
- end;
-OnEffect1:
- specialeffect EF_SUI_EXPLOSION;
- end;
-OnEffect2:
- specialeffect EF_BEGINASURA;
- end;
-OnEffect3:
- specialeffect EF_FLASHER;
- end;
-}
-que_lhz,148,231,0 duplicate(Awake Specimen#lhz) Awake Specimen#0 2244
-que_lhz,140,231,1 duplicate(Awake Specimen#lhz) Awake Specimen#1 2244
-que_lhz,140,224,2 duplicate(Awake Specimen#lhz) Awake Specimen#2 2244
-que_lhz,140,216,3 duplicate(Awake Specimen#lhz) Awake Specimen#3 2244
-que_lhz,147,216,4 duplicate(Awake Specimen#lhz) Awake Specimen#4 2244
-que_lhz,155,216,5 duplicate(Awake Specimen#lhz) Awake Specimen#5 2244
-que_lhz,155,224,6 duplicate(Awake Specimen#lhz) Awake Specimen#6 2244
-que_lhz,155,231,7 duplicate(Awake Specimen#lhz) Awake Specimen#7 2244
-
-- script #controllhz4 -1,{
-OnInit:
- disablenpc "#controllhz4";
- end;
-OnEnable:
- enablenpc "#controllhz4";
- donpcevent "Awake Specimen#0::OnEnable";
- donpcevent "Awake Specimen#1::OnEnable";
- donpcevent "Awake Specimen#2::OnEnable";
- donpcevent "Awake Specimen#3::OnEnable";
- donpcevent "Awake Specimen#4::OnEnable";
- donpcevent "Awake Specimen#5::OnEnable";
- donpcevent "Awake Specimen#6::OnEnable";
- donpcevent "Awake Specimen#7::OnEnable";
- end;
-OnEnable2:
- initnpctimer;
- end;
-OnTimer1000:
- donpcevent "Awake Specimen#0::OnEffect1";
- end;
-OnTimer2000:
- donpcevent "Awake Specimen#0::OnEffect2";
- donpcevent "Awake Specimen#7::OnEffect1";
- end;
-OnTimer3000:
- donpcevent "Awake Specimen#7::OnEffect2";
- donpcevent "Awake Specimen#6::OnEffect1";
- end;
-OnTimer4000:
- donpcevent "Awake Specimen#6::OnEffect2";
- donpcevent "Awake Specimen#5::OnEffect1";
- end;
-OnTimer5000:
- donpcevent "Awake Specimen#5::OnEffect2";
- donpcevent "Awake Specimen#4::OnEffect1";
- end;
-OnTimer6000:
- donpcevent "Awake Specimen#4::OnEffect2";
- donpcevent "Awake Specimen#3::OnEffect1";
- end;
-OnTimer7000:
- donpcevent "Awake Specimen#3::OnEffect2";
- donpcevent "Awake Specimen#2::OnEffect1";
- end;
-OnTimer8000:
- donpcevent "Awake Specimen#2::OnEffect2";
- donpcevent "Awake Specimen#1::OnEffect1";
- end;
-OnTimer9000:
- donpcevent "Awake Specimen#1::OnEffect2";
- end;
-OnTimer11000:
- donpcevent "Awake Specimen#0::OnEffect3";
- donpcevent "Awake Specimen#1::OnEffect3";
- donpcevent "Awake Specimen#2::OnEffect3";
- donpcevent "Awake Specimen#3::OnEffect3";
- donpcevent "Awake Specimen#4::OnEffect3";
- donpcevent "Awake Specimen#5::OnEffect3";
- donpcevent "Awake Specimen#6::OnEffect3";
- donpcevent "Awake Specimen#7::OnEffect3";
- end;
-OnTimer14000:
- donpcevent "Awake Specimen#0::OnDisable";
- donpcevent "Awake Specimen#1::OnDisable";
- donpcevent "Awake Specimen#2::OnDisable";
- donpcevent "Awake Specimen#3::OnDisable";
- donpcevent "Awake Specimen#4::OnDisable";
- donpcevent "Awake Specimen#5::OnDisable";
- donpcevent "Awake Specimen#6::OnDisable";
- donpcevent "Awake Specimen#7::OnDisable";
- end;
-OnTimer16000:
- monster "que_lhz",148,231,"Awake Specimen",2244,1,"#controllhz4::OnMyMobDead";
- monster "que_lhz",140,231,"Awake Specimen",2244,1,"#controllhz4::OnMyMobDead";
- monster "que_lhz",140,224,"Awake Specimen",2244,1,"#controllhz4::OnMyMobDead";
- monster "que_lhz",140,216,"Awake Specimen",2244,1,"#controllhz4::OnMyMobDead";
- monster "que_lhz",147,216,"Awake Specimen",2244,1,"#controllhz4::OnMyMobDead";
- monster "que_lhz",155,216,"Awake Specimen",2244,1,"#controllhz4::OnMyMobDead";
- monster "que_lhz",155,224,"Awake Specimen",2244,1,"#controllhz4::OnMyMobDead";
- monster "que_lhz",155,231,"Awake Specimen",2244,1,"#controllhz4::OnMyMobDead";
- donpcevent "#controllhz4b::OnEnable";
- stopnpctimer;
- end;
-OnMyMobDead:
- if (mobcount("que_lhz","#controllhz4::OnMyMobDead") < 1) {
- donpcevent "#controllhz4b::OnStop";
- donpcevent "#controllhz4c::OnEnable";
- disablenpc "#controllhz4";
- end;
- }
- end;
-}
-
-- script #controllhz4b -1,{
-OnInit:
-OnDisable:
- disablenpc "#controllhz4b";
- end;
-OnEnable:
- enablenpc "#controllhz4b";
- initnpctimer;
- end;
-OnStop:
- stopnpctimer;
- donpcevent "#controllhz4b::OnDisable";
- end;
-OnTimer400000:
- killmonster "que_lhz","#controllhz4::OnMyMobDead";
- mapwarp "que_lhz","lighthalzen",263,200;
- disablenpc "#controllhz4";
- disablenpc "#controllhz4b";
- stopnpctimer;
- end;
-}
-
-- script #controllhz4c -1,{
-OnInit:
- disablenpc "#controllhz4c";
- end;
-OnEnable:
- enablenpc "#controllhz4c";
- initnpctimer;
- end;
-OnTimer10000:
- mapannounce "que_lhz","Whisper of a man: Help me... Please... Aaah... I don't want to... Die....",bc_map,0x0080C0;
- donpcevent "#controllhz4d::OnEnable";
- stopnpctimer;
- disablenpc "#controllhz4c";
- end;
-}
-
-que_lhz,147,248,0 script #controllhz4d -1,6,4,{
-OnTouch:
- if (lhz_dun04 == 4) {
- mes "Looks like it's all done.";
- set lhz_dun04,5;
- donpcevent "#controllhz4d::OnDisable";
- close;
- } else if (lhz_dun04 == 6) {
- mes "- Concrete falls from the ceiling";
- mes "due to the weakened structure of";
- mes "the lab and you tumble down the";
- mes "flight of stairs avoiding it. -";
- close2;
- warp "lhz_dun04",148,269;
- donpcevent "#lhz4mes2::OnEnable";
- donpcevent "#controllhz4d::OnDisable";
- end;
- }
- end;
-OnInit:
-OnDisable:
- disablenpc "#controllhz4d";
- end;
-OnEnable:
- enablenpc "#controllhz4d";
- end;
-}
-
-lhz_dun04,148,269,0 script #lhz4mes2 -1,2,2,{
-OnTouch:
- if (lhz_dun04 == 6) {
- heal -Hp/2,0; // To do: check HP value.
- mes "- You awaken injured, hearing the";
- mes "sounds of footsteps all around";
- mes "you... -";
- close2;
- donpcevent "#lhz4mes2::OnDisable";
- end;
- }
- end;
-OnInit:
-OnDisable:
- disablenpc "#lhz4mes2";
- end;
-OnEnable:
- enablenpc "#lhz4mes2";
- end;
-}
diff --git a/npc/re/quests/quests_malangdo.txt b/npc/re/quests/quests_malangdo.txt
index 160c3f8a9..0511a1e55 100644
--- a/npc/re/quests/quests_malangdo.txt
+++ b/npc/re/quests/quests_malangdo.txt
@@ -1,27 +1,365 @@
-//===== rAthena Script =======================================
+//===== Hercules Script ======================================
//= Malangdo Quest NPCs
//===== By: ==================================================
//= Muad_Dib
//===== Current Version: =====================================
-//= 1.4
-//===== Compatible With: =====================================
-//= rAthena SVN
+//= 1.6
+//===== File Encoding ========================================
+//= CP-949 (EUC-KR compatible). Do NOT read/save it as UTF-8.
//===== Description: =========================================
+//= [Official Conversion]
//= Quest NPCs related to Malangdo:
//== Malangdo Island, Help the Bad Cats in Danger,
-//== Clean the Ship, Help Chef Nyas,
-//== Play with Baby Cats, Archangel Wing Enchants
+//== Clean the Ship, Help Chef Nyas, Play with Baby Cats,
+//== Cat Gamers, Archangel Wing Enchants
//===== Additional Comments: =================================
//= 1.0 First version. [Euphy]
//= 1.1 Added Clean the Ship and Help Chef Nyas.
//= 1.2 Added Archangel Wing Enchants.
//= 1.3 Added Play with Baby Cats.
//= 1.4 Added Malangdo Island.
+//= 1.4a Dialogue edits, source iRO.
+//= 1.5 Added Cat Gamers.
+//= Added "Investment Cat Helper" and "Storekeeper" NPCs.
+//= 1.6 Added GM management function.
//============================================================
+// Utility NPCs :: cat_merchant
+//============================================================
+mal_in02,134,31,5 script Investment Cat Helper 4_WHITETIGER,{
+ if (MaxWeight - Weight < 100 || checkweight(1201,1) == 0) {
+ mes "[Investment Cat Helper]";
+ mes "You have a heavy load. Maybe you're a peddler? No peddlers in this area.";
+ close;
+ }
+ if (ep13_yong1 < 10) {
+ mes "[Investment Cat Helper]";
+ mes "Ohh!";
+ mes "You've come here to ask about investing?";
+ mes "You've come to the right place.";
+ next;
+ mes "[Investment Cat Helper]";
+ mes "I am here to invest in the Cat Paw Merchant Association.";
+ mes "Err-- I mean I'm here to help honest people like you.";
+ mes "Hehehe~";
+ next;
+ mes "[Investment Cat Helper]";
+ mes "I can't remember everything because I've been here talking to you humans.";
+ mes "But I want to know first... Hold on.";
+ next;
+ mes "smell... smell...";
+ next;
+ mes "[Investment Cat Helper]";
+ mes "Ah?!";
+ mes "You don't know much about the Cat Paw Merchant Association, do you?";
+ mes "Hmm, you do not really smell like a cat.";
+ next;
+ mes "[Investment Cat Helper]";
+ mes "Good!!";
+ mes "You made the right decision to be here to invest in the Cat Paw Merchant Association~";
+ next;
+ mes "[Investment Cat Helper]";
+ mes "First, you need to have ten pieces of Malangdo cans if you want to open an account.";
+ next;
+ while(1) {
+ switch(select("Open an account:Ask about benefits:Cancel")) {
+ case 1:
+ if (countitem(12636) < 10) {
+ mes "[Investment Cat Helper]";
+ mes "Hmm!";
+ mes "I'd love to give you account for";
+ mes "free but as you know, this is for";
+ mes "advertising investers of the trader group, sorry.";
+ close;
+ }
+ delitem 12636,10; //Malang_Sp_Can
+ set ep13_yong1,10;
+ mes "[Investment Cat Helper]";
+ mes "Good!";
+ mes "Write down here~ and";
+ mes "print your palm there,";
+ mes "ah!~ what's your name?";
+ next;
+ mes "[Investment Cat Helper]";
+ mes strcharinfo(0)+" you are~";
+ next;
+ mes "[Investment Cat Helper]";
+ mes "Name: "+strcharinfo(0);
+ mes "Number of accounts: 10";
+ mes "OK! Registered!";
+ next;
+ mes "[Investment Cat Helper]";
+ mes "You have an account now.";
+ mes "Will get an investment of a certain nunber of cans next time.";
+ next;
+ mes "[Investment Cat Helper]";
+ mes "I wish to get lots of investments";
+ mes "so you can have many services as well.";
+ mes "And, I also hope that we, the Cat Paw Merchant Association, will make much money.";
+ next;
+ mes "[Investment Cat Helper]";
+ mes "See you next investment~";
+ close;
+ case 2:
+ mes "[Investment Cat Helper]";
+ mes "You want to know the benefits of investing?";
+ mes "Actually, we are a small group of cats and we don't think like humans.";
+ next;
+ mes "[Investment Cat Helper]";
+ mes "There are lots of benefits based on how much you've invested in our services.";
+ mes "These include more warps, extra storage locations and price reductions of goods and services.";
+ next;
+ mes "[Investment Cat Helper]";
+ mes "I promise that if our trade is growing you will benefit from it as well.";
+ next;
+ break;
+ case 3:
+ mes "[Investment Cat Helper]";
+ mes "Ahh~ You're just going to leave?";
+ mes "T_T~ Please open an account.";
+ close;
+ }
+ }
+ } else if (ep13_yong1 < 20000) {
+ mes "[Investment Cat Helper]";
+ mes "I can't remember everyone since I meet so many people...";
+ mes "But I want to check first... Hold on.";
+ mes "Excuse me!";
+ next;
+ mes "smell... smell...";
+ next;
+ if (ep13_yong1 < 10000) {
+ set .@cans,10;
+ mes "[Investment Cat Helper]";
+ mes "This is a familiar smell!!";
+ mes "If it's so...!!";
+ next;
+ mes "[Investment Cat Helper]";
+ mes "You are here to invest!!";
+ mes "Good!~~ Good to see you~";
+ next;
+ mes "[Investment Cat Helper]";
+ mes "From your smell~ you are below 10,000 accounts.";
+ mes "Until then, you can get an account by investing ten cans.";
+ } else {
+ set .@cans,20;
+ mes "[Investment Cat Helper]";
+ mes "Such a stong smell!!";
+ mes "Then it must be!!";
+ next;
+ mes "[Investment Cat Helper]";
+ mes "A VIP invester!!!!!!";
+ mes "You're here to invest? Welcome!";
+ next;
+ mes "[Investment Cat Helper]";
+ mes "A VIP invester with over 10,000 accounts";
+ mes "can get another account with 20 cans.";
+ mes "A good investment!";
+ }
+ next;
+ mes "[Investment Cat Helper]";
+ mes "What will you do?";
+ next;
+ switch(select("Invest:Check the number of accounts:Cancel")) {
+ case 1:
+ mes "[Investment Cat Helper]";
+ mes "Ohh~ thank you for investing~";
+ mes "You can get a maximum of 10 accounts at one time.";
+ mes "Isn't it lovely?";
+ mes "How many will you invest in? Enter 0 to cancel.";
+ next;
+ input .@input;
+ if (.@input == 0) {
+ mes "[Investment Cat Helper]";
+ mes "Please invest next time~";
+ close;
+ } else if (.@input > 10) {
+ mes "[Investment Cat Helper]";
+ mes "You can get a maximum of 10 accounts~";
+ close;
+ }
+ set .@required, .@input*.@cans;
+ mes "[Investment Cat Helper]";
+ mes "Total " + .@input + " accounts, right?";
+ mes "The number of cans you need is "+.@required+" pieces.";
+ mes "Do you want to go through with this?";
+ next;
+ if(select("Yes:No") == 2) {
+ mes "[Investment Cat Helper]";
+ mes "Oh? Is that wrong? Weird.";
+ mes "Please check again~";
+ close;
+ }
+ if (countitem(12636) < .@required) {
+ mes "[Investment Cat Helper]";
+ mes "Ahhh!";
+ mes "You don't have enough cans.";
+ mes "I'm a busy cat, you know.";
+ close;
+ }
+ if (ep13_yong1 < 10000) {
+ delitem 12636,.@required; //Malang_Sp_Can
+ set ep13_yong1, ep13_yong1+.@input;
+ mes "[Investment Cat Helper]";
+ mes .@input+" accounts were invested in.";
+ mes "Thank you for your help~";
+ next;
+ mes "[Investment Cat Helper]";
+ mes "Once we get more investments of cans,";
+ mes "our trader group will grow even more.";
+ mes "And you can get services as well~";
+ mes "A win-win strategy?";
+ close;
+ } else {
+ if (.@input + ep13_yong1 > 20000) {
+ delitem 12636,.@required; //Malang_Sp_Can
+ set ep13_yong1,20000;
+ mes "[Investment Cat Helper]";
+ mes "You can have 20,000 accounts max";
+ mes "according to the trader policy...";
+ mes strcharinfo(0)+"'s accounts increase to 20,000.";
+ mes "Thank you so much for your investment~";
+ next;
+ mes "[Investment Cat Helper]";
+ mes "Now, "+strcharinfo(0)+", you can't invest further";
+ mes "but you can still donate some of your cans to the trader group.";
+ mes "Thank you so much~";
+ close;
+ } else {
+ delitem 12636,.@required; //Malang_Sp_Can
+ set ep13_yong1, ep13_yong1+.@input;
+ mes "[Investment Cat Helper]";
+ mes .@input+" accounts have been invested in.";
+ mes "Thank you for your help~";
+ next;
+ mes "[Investment Cat Helper]";
+ mes "With your big investment in cans,";
+ mes "this will help us meet our goals earlier.";
+ mes "Thank you again.";
+ close;
+ }
+ }
+ case 2:
+ mes "[Investment Cat Helper]";
+ mes "You want to check the number of accounts? Hmm, let's see~";
+ next;
+ mes "[Investment Cat Helper]";
+ mes "Name: "+strcharinfo(0);
+ mes "Number of accounts: "+ep13_yong1;
+ next;
+ mes "[Investment Cat Helper]";
+ if (ep13_yong1 < 10000)
+ mes "Got it?";
+ else
+ mes "You've made many investments. Thank you.";
+ close;
+ case 3:
+ mes "[Investment Cat Helper]";
+ mes "Please invest next time~";
+ close;
+ }
+ } else if (ep13_yong1 >= 20000) {
+ mes "[Investment Cat Helper]";
+ mes strcharinfo(0) + ", welcome~";
+ mes strcharinfo(0) + "~ I felt something upon your arrival.";
+ next;
+ mes "[Investment Cat Helper]";
+ mes "Want to donate?";
+ next;
+ if(select("Donate:No") == 2) {
+ mes "[Investment Cat Helper]";
+ mes "Hehe~ then have fun in here~";
+ close;
+ }
+ mes "[Investment Cat Helper]";
+ mes "Wow, thank you, "+strcharinfo(0)+"~!";
+ next;
+ mes "[Investment Cat Helper]";
+ mes strcharinfo(0)+"~ with your help";
+ mes "the cans will be distributed to cats";
+ mes "in the Midgard area with honor~";
+ next;
+ mes "[Investment Cat Helper]";
+ mes "The can donation can range from a minimum of 20 to a maximum of 10,000.";
+ next;
+ input .@input;
+ if (.@input < 20 || .@input > 10000) {
+ mes "[Investment Cat Helper]";
+ mes "The can donation can range from a minimum of 20 to a maximum of 10,000.";
+ close;
+ } else if (countitem(12636) < .@input) { // Malang_Sp_Can
+ mes "[Investment Cat Helper]";
+ mes "Hmm? You don't have enough cans.";
+ close;
+ } else {
+ delitem 12636,.@input; //Malang_Sp_Can
+ mes "[Investment Cat Helper]";
+ mes "Ohh! Thank you~";
+ next;
+ mes "[Investment Cat Helper]";
+ mes "Dear "+strcharinfo(0)+" ~";
+ mes "I have only Increase AGI";
+ mes "and Blessing to give you.";
+ mes "Thank you.";
+ npcskill "AL_INCAGI",10,0,0;
+ npcskill "AL_BLESSING",10,0,0;
+ close;
+ }
+ }
+}
+
+malangdo,184,139,4 script Storekeeper#mal 4_CAT_ADV2,{
+ mes "[Storekeeper]";
+ mes "Hey, looks like you might be looking to unload some of your stuff from your pack.";
+ mes "Want to open storage? For free?";
+ next;
+ mes "[Storekeeper]";
+ mes "Hahaha~ Just kidding, of course it isn't free.";
+ mes "What do you take me for?";
+ next;
+ if (ep13_yong1 > 999) {
+ set .@cans,1;
+ set .@zeny,1500;
+ set .@i, select("Pay with Can ----- 1 unit:Pay with Zeny ------- 1,500z");
+ } else {
+ set .@cans,2;
+ set .@zeny,3000;
+ set .@i, select("Pay with Can ----- 2units:Pay with Zeny ------- 3,000z");
+ }
+ if (getskilllv("NV_BASIC") < 6) {
+ mes "[Storekeeper]";
+ mes "Ah, hold on!!";
+ mes "You need to have ^FF0000Basic Skill level 6^000000 to use the storage service!!";
+ close;
+ }
+ switch(.@i) {
+ case 1:
+ if (countitem(12636) < .@cans) {
+ mes "[Storekeeper]";
+ mes "You don't have enough cans...";
+ close;
+ }
+ delitem 12636,.@cans; //Malang_Sp_Can
+ break;
+ case 2:
+ if (Zeny < .@zeny) {
+ mes "[Storekeeper]";
+ mes "You don't have enough zeny...";
+ close;
+ }
+ Zeny -= .@zeny;
+ break;
+ }
+ mes "[Storekeeper]";
+ mes "Thank you.";
+ close2;
+ openstorage;
+ end;
+}
+
// Malangdo Island :: ma_tomas
//============================================================
-mal_in02,28,56,5 script Samuel#mal 495,{
+mal_in02,28,56,5 script Samuel#mal 4_M_MERCAT1,{
mes "[Samuel]";
mes "Ah, you mean the ad... well, you mean our village chief?";
mes "You'd better not bother him, since he's always busy.";
@@ -65,7 +403,7 @@ mal_in02,28,56,5 script Samuel#mal 495,{
}
}
-mal_in02,22,62,3 script Tomas#mal 556,{
+mal_in02,22,62,3 script Tomas#mal 4_CAT_ADMIRAL,{
if (BaseLevel < 60) {
mes "[Tomas, Village Chief]";
mes "Ummm... Who are you?";
@@ -292,7 +630,7 @@ mal_in02,22,62,3 script Tomas#mal 556,{
end;
}
-mal_in02,182,61,3 script President of Meeting#mal 421,{
+mal_in02,182,61,3 script President of Meeting#mal 4_M_BOSSCAT,{
if (ma_tomas == 0) {
mes "[President of Meeting]";
mes "Please be silent, the regular meeting is getting started a moment later~";
@@ -358,7 +696,7 @@ mal_in02,182,61,3 script President of Meeting#mal 421,{
close;
}
-mal_in02,178,66,5 script Scottfold#mal 422,{
+mal_in02,178,66,5 script Scottfold#mal 4_M_BABYCAT,{
if (ma_tomas == 0) {
mes "[Scottfold]";
mes "Attending the meeting is an important thing to do.";
@@ -396,7 +734,7 @@ mal_in02,178,66,5 script Scottfold#mal 422,{
close;
}
-mal_in02,177,58,7 script Koon#mal 546,{
+mal_in02,177,58,7 script Koon#mal 4_CAT_SAILOR3,{
if (ma_tomas == 0) {
mes "[Koon]";
mes "Though I'm busy, I always attend this meeting.";
@@ -434,7 +772,7 @@ mal_in02,177,58,7 script Koon#mal 546,{
close;
}
-mal_in02,174,64,5 script Linguist Devore#mal 549,{
+mal_in02,174,64,5 script Linguist Devore#mal 4_CAT_MERMASTER,{
if (ma_tomas < 4) {
mes "[Linguist Devore]";
mes "Most of our cats are especially talented in language.";
@@ -608,7 +946,7 @@ mal_in02,174,64,5 script Linguist Devore#mal 549,{
close;
}
-mal_in02,179,57,1 script Geologist Mali#mal 559,{
+mal_in02,179,57,1 script Geologist Mali#mal 4_CAT_ADV1,{
if (ma_tomas < 5) {
mes "[Geologist Mali]";
mes "Malangdo is named because the ground here is so soft, mew~";
@@ -809,7 +1147,7 @@ mal_in02,179,57,1 script Geologist Mali#mal 559,{
close;
}
-mal_in02,140,94,0 script Bob#mal 553,{
+mal_in02,140,94,0 script Bob#mal 4_CAT_DOWN,{
if (ma_tomas < 14) {
mes "[Bob]";
mes "You bow-wow! bow! wow! I mew! mew! mew!";
@@ -1051,16 +1389,16 @@ OnDisable:
disablenpc strnpcinfo(0);
end;
}
-malangdo,114,157,0 duplicate(Crack#mal0) Crack#mal1 550
-malangdo,284,237,0 duplicate(Crack#mal0) Crack#mal2 550
-malangdo,134,150,0 duplicate(Crack#mal0) Crack#mal3 550
-malangdo,173,199,0 duplicate(Crack#mal0) Crack#mal4 550
-malangdo,233,197,0 duplicate(Crack#mal0) Crack#mal5 550
-malangdo,137,239,0 duplicate(Crack#mal0) Crack#mal6 550
-malangdo,239,157,0 duplicate(Crack#mal0) Crack#mal7 550
-malangdo,221,155,0 duplicate(Crack#mal0) Crack#mal8 550
-malangdo,217,109,0 duplicate(Crack#mal0) Crack#mal9 550
-malangdo,162,183,0 duplicate(Crack#mal0) Crack#mal10 550
+malangdo,114,157,0 duplicate(Crack#mal0) Crack#mal1 4_CRACK
+malangdo,284,237,0 duplicate(Crack#mal0) Crack#mal2 4_CRACK
+malangdo,134,150,0 duplicate(Crack#mal0) Crack#mal3 4_CRACK
+malangdo,173,199,0 duplicate(Crack#mal0) Crack#mal4 4_CRACK
+malangdo,233,197,0 duplicate(Crack#mal0) Crack#mal5 4_CRACK
+malangdo,137,239,0 duplicate(Crack#mal0) Crack#mal6 4_CRACK
+malangdo,239,157,0 duplicate(Crack#mal0) Crack#mal7 4_CRACK
+malangdo,221,155,0 duplicate(Crack#mal0) Crack#mal8 4_CRACK
+malangdo,217,109,0 duplicate(Crack#mal0) Crack#mal9 4_CRACK
+malangdo,162,183,0 duplicate(Crack#mal0) Crack#mal10 4_CRACK
- script Crackt0#mal -1,{
end;
@@ -1094,7 +1432,7 @@ OnTimer30000:
- duplicate(Crackt0#mal) Crackt9#mal -1
- duplicate(Crackt0#mal) Crackt10#mal -1
-mal_in02,181,55,3 script Brie#mal 545,{
+mal_in02,181,55,3 script Brie#mal 4_CAT_SAILOR2,{
if (ma_tomas < 6) {
mes "[Brie]";
mes "Sorry, but I don't feel like talking with you. Please leave me alone.";
@@ -1224,7 +1562,7 @@ mal_in02,181,55,3 script Brie#mal 545,{
close;
}
-mal_in01,114,169,5 script Rican#mal 547,{
+mal_in01,114,169,5 script Rican#mal 4_CAT_SAILOR4,{
if (ma_tomas < 9) {
mes "[Rican]";
mes "Woo waa hoohoo...";
@@ -1467,7 +1805,7 @@ mal_in01,114,169,5 script Rican#mal 547,{
mes "If you see my son, please tell him to get back soon~";
close;
} else if (ma_tomas > 99) {
- if (checkquest(11238,PLAYTIME) == 0 || checkquest(11238,PLAYTIME) == 1) {
+ if (checkquest(11238) != -1) {
if (countitem(6435) < 30) {
mes "[Rican]";
mes "You need exactly 30 to get a set!";
@@ -1523,7 +1861,7 @@ mal_in01,114,169,5 script Rican#mal 547,{
close;
}
-mal_in01,116,168,0 script Dry Machine#mal 563,{
+mal_in01,116,168,0 script Dry Machine#mal 2_SLOT_MACHINE,{
if (ma_tomas == 10) {
if (countitem(6435) < 30) {
mes "[Rican]";
@@ -1554,20 +1892,12 @@ mal_in01,116,168,0 script Dry Machine#mal 563,{
- script Suspicious Sand Pile#0 -1,{
if (.off) end; // Official script uses a 1-second timer to disable sand piles. Added to prevent abuse.
- if (checkweight(1201,1) == 0) {
- mes " - Notice !! -";
- mes " - Since you have too many items - ";
- mes " - you cannot get the item. - ";
- mes " - Let your body lighten - ";
- mes " - and try this again. - ";
+ if (MaxWeight - Weight < 1000) {
+ mes "Your inventory is too heavy to proceed. Come back after lightening your load.";
close;
}
- if (MaxWeight - Weight < 1000) {
- mes " - Notice !! -";
- mes " - Since your items are too heavy - ";
- mes " - you cannot get the item. - ";
- mes " - Let your body lighten - ";
- mes " - and try this again. - ";
+ if (checkweight(1201,1) == 0) {
+ mes "Your inventory is too full to proceed. Come back after reducing your load.";
close;
}
if (ma_tomas == 9 || checkquest(11238) > -1) {
@@ -1597,16 +1927,16 @@ OnDisable:
disablenpc strnpcinfo(0);
end;
}
-malangdo,221,139,0 duplicate(Suspicious Sand Pile#0) Suspicious Sand Pile#1 557
-malangdo,208,174,0 duplicate(Suspicious Sand Pile#0) Suspicious Sand Pile#2 557
-malangdo,191,223,0 duplicate(Suspicious Sand Pile#0) Suspicious Sand Pile#3 557
-malangdo,150,195,0 duplicate(Suspicious Sand Pile#0) Suspicious Sand Pile#4 557
-malangdo,116,196,0 duplicate(Suspicious Sand Pile#0) Suspicious Sand Pile#5 557
-malangdo,178,145,0 duplicate(Suspicious Sand Pile#0) Suspicious Sand Pile#6 557
-malangdo,142,120,0 duplicate(Suspicious Sand Pile#0) Suspicious Sand Pile#7 557
-malangdo,136,122,0 duplicate(Suspicious Sand Pile#0) Suspicious Sand Pile#8 557
-malangdo,152,143,0 duplicate(Suspicious Sand Pile#0) Suspicious Sand Pile#9 557
-malangdo,242,175,0 duplicate(Suspicious Sand Pile#0) Suspicious Sand Pile#10 557
+malangdo,221,139,0 duplicate(Suspicious Sand Pile#0) Suspicious Sand Pile#1 4_SOIL
+malangdo,208,174,0 duplicate(Suspicious Sand Pile#0) Suspicious Sand Pile#2 4_SOIL
+malangdo,191,223,0 duplicate(Suspicious Sand Pile#0) Suspicious Sand Pile#3 4_SOIL
+malangdo,150,195,0 duplicate(Suspicious Sand Pile#0) Suspicious Sand Pile#4 4_SOIL
+malangdo,116,196,0 duplicate(Suspicious Sand Pile#0) Suspicious Sand Pile#5 4_SOIL
+malangdo,178,145,0 duplicate(Suspicious Sand Pile#0) Suspicious Sand Pile#6 4_SOIL
+malangdo,142,120,0 duplicate(Suspicious Sand Pile#0) Suspicious Sand Pile#7 4_SOIL
+malangdo,136,122,0 duplicate(Suspicious Sand Pile#0) Suspicious Sand Pile#8 4_SOIL
+malangdo,152,143,0 duplicate(Suspicious Sand Pile#0) Suspicious Sand Pile#9 4_SOIL
+malangdo,242,175,0 duplicate(Suspicious Sand Pile#0) Suspicious Sand Pile#10 4_SOIL
- script Water Sand0#mal -1,{
OnInit:
@@ -1639,7 +1969,7 @@ OnTimer30000:
- duplicate(Water Sand0#mal) Water Sand9#mal -1
- duplicate(Water Sand0#mal) Water Sand10#mal -1
-mal_dun01,136,120,6 script Linguist Devore#mald 549,{
+mal_dun01,136,120,6 script Linguist Devore#mald 4_CAT_MERMASTER,{
end;
OnInit:
disablenpc "Linguist Devore#mald";
@@ -1657,7 +1987,7 @@ OnTimer100000:
end;
}
-mal_dun01,136,122,3 script Biscuit#mal 551,{
+mal_dun01,136,122,3 script Biscuit#mal 4_ASTER,{
if (ma_tomas < 20) {
mes "- There's something strange. -";
mes "- It feels like somehow - ";
@@ -2090,7 +2420,7 @@ mal_dun01,136,122,3 script Biscuit#mal 551,{
close;
}
-mal_in02,102,94,3 script Cleaning Staff#mal 544,2,2,{
+mal_in02,102,94,3 script Cleaning Staff#mal 4_CAT_SAILOR1,2,2,{
OnTouch:
if (checkweight(1201,1) == 0) {
mes " - Notice !! -";
@@ -2140,7 +2470,7 @@ OnTouch:
close;
}
-malangdo,246,184,0 script 1st Rate Point 111,{
+malangdo,246,184,0 script 1st Rate Point HIDDEN_NPC,{
if (checkweight(1201,1) == 0) {
mes " - Notice !! -";
mes " - Since you have too many items - ";
@@ -2178,7 +2508,7 @@ malangdo,246,184,0 script 1st Rate Point 111,{
}
}
-mal_dun01,133,125,5 script Star Candy#mal 552,{
+mal_dun01,133,125,5 script Star Candy#mal 4_F_STARFISHGIRL,{
if (ma_tomas == 19) {
mes "[Star Candy]";
mes "....";
@@ -2345,15 +2675,15 @@ mal_dun01,133,125,5 script Star Candy#mal 552,{
close;
}
}
-mal_dun01,143,137,0 duplicate(#skin_mal) Dry Skin#29 111
-mal_dun01,131,150,0 duplicate(#skin_mal) Prickly Skin#30 111
-mal_dun01,116,144,0 duplicate(#skin_mal) Chapped Skin#31 111
-mal_dun01,120,129,0 duplicate(#skin_mal) Hard Skin#32 111
+mal_dun01,143,137,0 duplicate(#skin_mal) Dry Skin#29 HIDDEN_NPC
+mal_dun01,131,150,0 duplicate(#skin_mal) Prickly Skin#30 HIDDEN_NPC
+mal_dun01,116,144,0 duplicate(#skin_mal) Chapped Skin#31 HIDDEN_NPC
+mal_dun01,120,129,0 duplicate(#skin_mal) Hard Skin#32 HIDDEN_NPC
-malangdo,190,167,7 script Portali#mal 546,{
+malangdo,190,167,7 script Portali#mal 4_CAT_SAILOR3,{
if (ma_tomas < 100) {
mes "[Portali]";
- mes "I have no business for a immature fellow!";
+ mes "I have no business for an immature fellow!";
close;
}
mes "[Portali]";
@@ -2423,9 +2753,13 @@ L_Warp:
// Malangdo Island :: mal_ppl
//============================================================
-malangdo,137,200,6 script Pipielle 549,{
- if (checkweight(1201,1) == 0 || MaxWeight - Weight < 1000) {
- mes "You have too many items, please try again after reducing your weight.";
+malangdo,137,200,6 script Pipielle 4_CAT_MERMASTER,{
+ if (MaxWeight - Weight < 1000) {
+ mes "Your inventory is too heavy to proceed. Come back after lightening your load.";
+ close;
+ }
+ if (checkweight(1201,1) == 0) {
+ mes "Your inventory is too full to proceed. Come back after reducing your load.";
close;
}
if (BaseLevel < 60) {
@@ -2435,14 +2769,14 @@ malangdo,137,200,6 script Pipielle 549,{
mes "[Pipielle]";
mes "I would ask for your help, if you were a stronger advanturer...";
next;
- mes "^770099This cat is working on something, but she asks for help above LV60.^000000";
+ mes "^770099This cat is working on something, but she asks for help above level 60.^000000";
close;
}
- set .@fish_ss1$, "What are you doing??";
+ set .@fish_ss1$, "What are you doing?";
if (countitem(6451) > 29)
set .@fish_ss2$, "I caught a lot of strange fishes!";
else
- set .@fish_ss2$, "Remaining " + (30-countitem(6451)) + " of ^bbbbbbUnidentified Fish are required.^000000";
+ set .@fish_ss2$, (30-countitem(6451))+" of ^bbbbbbUnidentified Fish are required.^000000";
if (ma_tomas == 100)
set .@fish_ss3$, "I met an Admiral Tomas...";
mes "[Pipielle]";
@@ -2451,48 +2785,51 @@ malangdo,137,200,6 script Pipielle 549,{
switch(select(.@fish_ss1$,.@fish_ss2$,.@fish_ss3$)) {
case 1:
mes "[Pipielle]";
- mes "There are many beautiful fishes around here. So I feel my heart beating as I stand here.";
+ mes "There are many beautiful fish around here. So I feel my heart beating standing here.";
next;
- select("Of course, after seeing such a delicious thing!");
+ select("I think my heart is beating faster...");
mes "[Pipielle]";
- mes "How come you only know about eating?! My heart doesn't beat up because I see something delicious. Don't treat me the same as the others.";
+ mes "How come you only know about eating! My heart doesn't only beat for food.";
next;
mes "[Pipielle]";
- mes "I used to study from a scholar from Uno who was human. And I am good at the human language as well. Don't treat me like the others.";
+ mes "I've studied at a human university before and I learned to speak there so don't treat me like some animal.";
next;
mes "[Pipielle]";
- mes "I am a scholar who researches fish here. It's a little funny that a cat researches fish, but it's true.";
+ mes "I am a scholar of fish research.";
+ mes "It's important for cats to research fish.";
next;
- select("Were you originally a scholar?");
+ select("How's your research going?");
mes "[Pipielle]";
- mes "Originally I used to be the mate of admiral Tomas. But our ship never went back to sea after we arrived here.";
+ mes "I was a good friend of admiral Thomas but our ship hasn't gone back to sea since we arrived here.";
next;
mes "[Pipielle]";
- mes "The mate of a ship that never voyages is lonely.";
+ mes "The shipmates seem to be pretty lonely.";
next;
mes "[Pipielle]";
- mes "The scholar from Uno came here for research, and he thought it was amazing that cats spoke the human language. Therefore he started to teach me.";
+ mes "A scholar from the university came here to research us and thought it was amazing to find a cat that speaks his language already.";
+ mes "So he's been helping me teach the others.";
next;
- select("But now everyone speaks the human language.");
+ select("Is that why I understand all the cats?");
mes "[Pipielle]";
- mes "Oh yes, there were only a few cats who spoke the human language. That's why he treated me special.";
+ mes "Yes, exactly!";
+ mes "I was one of the few cats who could talk to humans before that scholar arrived.";
next;
mes "[Pipielle]";
- mes "Anyway, now I collect specimens to be an ichthyologist. I hope you can help me.";
+ mes "Anyways, now I'm collecting specimens to study the monsters here. I hope you can help me.";
next;
- if(select("How can I help you?:I would say no.") == 2) {
+ if(select("How can I help you?:I have to decline.") == 2) {
mes "[Pipielle]";
mes "Oh, okay. If you change your mind, please come again.";
close;
}
mes "[Pipielle]";
- mes "There is a Pouring who's eating all the fishes in the Octopus and Culvert dungeons.";
+ mes "There is a monster called a Pouring who's eating all fish in the Octopus and Culvert dungeon.";
next;
mes "[Pipielle]";
- mes "It didn't use to live there, but might have come here for the winter. Could you collect the specimens of unidentified fish after geting rid of it?";
+ mes "It suddenly appeared during the winter, so could you collect the specimens of Unidentified Fish after getting rid of it?";
next;
mes "[Pipielle]";
- mes "You can get identified fishes from Pouring, so please collect about 30 pieces.";
+ mes "You can get Unidentified Fish from the Pouring monsters, so please collect 30 of them.";
close;
case 2:
if (countitem(6451) > 29) {
@@ -2509,7 +2846,7 @@ malangdo,137,200,6 script Pipielle 549,{
close;
}
mes "[Pipielle]";
- mes "I'm sorry, but please collect 30 pieces of unidentified fish specimens.";
+ mes "I'm sorry, but please collect 30 Unidentified Fish specimens.";
close;
case 3:
mes "[Pipielle]";
@@ -2548,7 +2885,7 @@ malangdo,137,200,6 script Pipielle 549,{
// Help the Bad Cats in Danger :: mal_bad_guys
//============================================================
-malangdo,175,206,3 script Gobonge#ml 561,{
+malangdo,175,206,3 script Gobonge#ml 4_CAT_SAILOR5,{
if (checkweight(1201,1) == 0) {
mes "- Can't go next step due to having too many items. -";
close;
@@ -2571,7 +2908,7 @@ malangdo,175,206,3 script Gobonge#ml 561,{
}
if (BaseLevel < 60) {
mes "[Gobonge]";
- mes "Are you here to get help";
+ mes "Are you here to help";
mes "or to get help?";
mes "You look so weak, haha...";
mes "Go and hunt more Porings!";
@@ -2752,71 +3089,67 @@ OnDisable:
close;
}
-malangdo,181,205,3 script Gobulee#ml1 547,{
+malangdo,181,205,3 script Gobulee#ml1 4_CAT_SAILOR4,{
mes "[Gobulee]";
- mes "Why do you come now?";
- mes "You should have come when we were healthy.";
- mes "So, you want to me take out what you have?";
+ mes "What a time to show up!";
+ mes "You should come around when we're healthy.";
close;
}
-malangdo,180,202,3 script Gobyungee#ml1 547,{
+malangdo,180,202,3 script Gobyungee#ml1 4_CAT_SAILOR4,{
mes "[Gobyungee]";
- mes "I can't see other cats because";
- mes "I could't have time to do bad behavior...";
+ mes "I can't even look another cat in the eye since I'm too sick to be doin' crimes properly.";
close;
}
-malangdo,186,201,3 script Gosigee#ml1 547,{
+malangdo,186,201,3 script Gosigee#ml1 4_CAT_SAILOR4,{
mes "[Gosigee]";
- mes "I am desperate for pill of stomachache,";
- mes "cap is only thinking of finding out criminal";
- mes "and to revenge!";
+ mes "I wish I had some peppy bistmuth pills...";
+ mes "Meanwhile the Captain only thinks about catching the bad guys and getting revenge!";
mes "...";
next;
mes "[Gosigee]";
- mes "How can we follow him as a cap...!";
+ mes "How can we follow someone so single-minded!";
close;
}
-malangdo,177,202,3 script Gonanee#ml2 547,{
+malangdo,177,202,3 script Gonanee#ml2 4_CAT_SAILOR4,{
mes "[Gonanee]";
- mes "We are only bad circle in Malangdo";
- mes "and we are very proud.";
- mes "Can't just lie in bed.";
+ mes "We are the only violent gang in Malangdo and we are very proud.";
+ mes "I don't feel right just lying in bed.";
close;
}
-malangdo,183,202,3 script Godoree#ml3 547,{
+malangdo,183,202,3 script Godoree#ml3 4_CAT_SAILOR4,{
mes "[Godoree]";
mes "I saw unfamiliar cats around";
- mes "the dock frequently.";
+ mes "the dock recently.";
mes "Are they tourists?";
- mes "We should check their pockets";
- mes "once I get well...";
+ mes "I should -inspect- their pockets";
+ mes "once I'm better...";
close;
}
-malangdo,203,116,5 script Suspious Dealer#ml 543,{
- mes "On listening to the story for";
- mes "a while, he pretends to be indifferent once hearing someone's noise.";
+malangdo,203,116,5 script Suspious Dealer#ml 4_MASK_SMOKEY,{
+ mes "He appears to be listening intently.";
+ mes "Upon hearing you approach, he pretends to be completely oblivious.";
next;
mes "[Suspious Dealer]";
- mes "Oh my body, too much pain...";
+ mes "Oh the pain, oh the pain of it all...";
close;
}
-malangdo,205,116,3 script Very Suspious Dealer#ml1 543,{
+malangdo,205,116,3 script Very Suspious Dealer#ml1 4_MASK_SMOKEY,{
mes "On listening to the story for";
mes "a while, he pretends to be indifferent once hearing someone's noise.";
next;
- mes "[Very Suspious Dealer]";
- mes "The weather is so dirty...";
+ mes "[Suspious Dealer]";
+ mes "Could it BE any smoggier today?";
close;
}
-malangdo,197,120,5 script Foolish Cat#ml 546,{
- mes "[Foolish Cat]";
+malangdo,197,120,5 script A Foolish Cat#ml 4_CAT_SAILOR3,{
+ mes "[A Foolish Cat]";
mes "If you stay here, you";
mes "can hear all they're saying.";
mes "Don't know exactly what, but";
@@ -2903,11 +3236,10 @@ OnTouch:
end;
}
-malangdo,171,163,3 script Awfully Suspious Dealer 543,{
+malangdo,171,163,3 script Awfully Suspious Dealer 4_MASK_SMOKEY,{
if (malang_bad_guys < 4) {
mes "[Awfully Suspious Dealer]";
- mes "We quit our sales,";
- mes "find the other merchant!";
+ mes "We quit selling them, find another merchant!";
close;
} else if (malang_bad_guys == 4) {
mes "[Awfully Suspious Dealer]";
@@ -3034,7 +3366,7 @@ malangdo,171,163,3 script Awfully Suspious Dealer 543,{
close;
}
-mal_in02,184,72,3 script Gozangee#ml 547,{
+mal_in02,184,72,3 script Gozangee#ml 4_CAT_SAILOR4,{
mes "[Gozangee]";
mes "I have too much pain in my stomach...";
mes "Should endure myself!";
@@ -3077,7 +3409,7 @@ OnTouch:
end;
}
-malangdo,125,147,3 script Patrol Leader#ml 545,{
+malangdo,125,147,3 script Patrol Leader#ml 4_CAT_SAILOR2,{
if (checkweight(1201,1) == 0) {
mes "- Can't go next step due to having too many items. -";
close;
@@ -3158,7 +3490,7 @@ malangdo,125,147,3 script Patrol Leader#ml 545,{
close;
}
-malangdo,129,146,3 script Crime Prevention Staff 545,{
+malangdo,129,146,3 script Crime Prevention Staff 4_CAT_SAILOR2,{
if (malang_bad_guys > 11) {
mes "[Crime Prevention Staff]";
mes "A work to do means happy things!";
@@ -3181,10 +3513,8 @@ malangdo,129,146,3 script Crime Prevention Staff 545,{
close;
}
-/*
-malangdo,3,1,3 script Guidance for quest#ml 543,{
- input .@input,1,9999;
- if (.@input != 1854) {
+malangdo,3,1,3 script Guidance for quest#ml 4_MASK_SMOKEY,{
+ if (callfunc("F_GM_NPC",1854,0) < 1) {
mes "[Helper]";
mes "What is this security code?";
mes "Go away!";
@@ -3229,11 +3559,10 @@ malangdo,3,1,3 script Guidance for quest#ml 543,{
close;
}
}
-*/
// Clean the Ship :: mal_day_qook
//============================================================
-mal_in02,76,63,7 script Cleanyang 544,{
+mal_in02,76,63,7 script Cleanyang 4_CAT_SAILOR1,{
if (checkweight(1201,1) == 0) {
mes "- You have too many items so you can't continue the quest. -";
close;
@@ -3523,11 +3852,11 @@ mal_in02,76,63,7 script Cleanyang 544,{
mes "Recently, there are 9 spot that hided cat's ship biscuit as well.";
next;
mes "[Cleanyang]";
- mes "Someone think that good angel took them all as I collected and threw away";
+ mes "Someone think that good angel took them all as I collected and threw away.";
mes "He still hide them that place.";
next;
mes "[Cleanyang]";
- mes "It is so easy because I don't have to search everywhere, but";
+ mes "It is so easy because I don't have to search everywhere, but...";
mes "Please search the 9 spot where hiding frequently.";
close;
}
@@ -3542,7 +3871,7 @@ mal_in02,76,63,7 script Cleanyang 544,{
case 1:
mes "[Cleanyang]";
mes "My service to you today.";
- mes "The inside of ship Navi, home and cat tower too. Don't even miss a blade of grass";
+ mes "The inside of ship Navi, home and cat tower too. Don't even miss a blade of grass.";
mes "Search everywhere.";
setquest 7268;
close;
@@ -3618,7 +3947,7 @@ mal_in02,76,63,7 script Cleanyang 544,{
}
}
-mal_in02,29,67,0 script #CaptainRoom3 844,{
+mal_in02,29,67,0 script #CaptainRoom3 CLEAR_NPC,{
if (checkweight(1201,1) == 0) {
mes "- You have too many items so you can't continue the quest. -";
close;
@@ -3697,7 +4026,7 @@ mal_in02,29,67,0 script #CaptainRoom3 844,{
close;
}
-mal_in02,183,49,0 script #MeetingFloor4 844,{
+mal_in02,183,49,0 script #MeetingFloor4 CLEAR_NPC,{
if (checkweight(1201,1) == 0) {
mes "- You have too many items so you can't continue the quest. -";
close;
@@ -3744,7 +4073,7 @@ mal_in02,183,49,0 script #MeetingFloor4 844,{
close;
}
-mal_in02,103,22,0 script #MalBed5 844,{
+mal_in02,103,22,0 script #MalBed5 CLEAR_NPC,{
if (checkweight(1201,1) == 0) {
mes "- You have too many items so you can't continue the quest. -";
close;
@@ -3789,7 +4118,7 @@ mal_in02,103,22,0 script #MalBed5 844,{
close;
}
-malangdo,141,178,0 script #Darkweed6 844,{
+malangdo,141,178,0 script #Darkweed6 CLEAR_NPC,{
if (checkweight(1201,1) == 0) {
mes "- You have too many items so you can't continue the quest. -";
close;
@@ -3826,7 +4155,7 @@ malangdo,141,178,0 script #Darkweed6 844,{
close;
}
-malangdo,133,134,0 script Strange Pile of Sand#7 557,{
+malangdo,133,134,0 script Strange Pile of Sand#7 4_SOIL,{
if (checkweight(1201,1) == 0) {
mes "- You have too many items so you can't continue the quest. -";
close;
@@ -3868,9 +4197,9 @@ malangdo,133,134,0 script Strange Pile of Sand#7 557,{
mes "- That's it... -";
close;
}
-malangdo,197,237,0 duplicate(Strange Pile of Sand#7) Strange Pile of Sand#12 557
+malangdo,197,237,0 duplicate(Strange Pile of Sand#7) Strange Pile of Sand#12 4_SOIL
-malangdo,232,131,0 script #UnderStairs8 844,{
+malangdo,232,131,0 script #UnderStairs8 CLEAR_NPC,{
if (checkweight(1201,1) == 0) {
mes "- You have too many items so you can't continue the quest. -";
close;
@@ -3904,7 +4233,7 @@ malangdo,232,131,0 script #UnderStairs8 844,{
close;
}
-mal_in01,74,20,0 script #CornerTower9 844,{
+mal_in01,74,20,0 script #CornerTower9 CLEAR_NPC,{
if (checkweight(1201,1) == 0) {
mes "- You have too many items so you can't continue the quest. -";
close;
@@ -3935,7 +4264,7 @@ mal_in01,74,20,0 script #CornerTower9 844,{
close;
}
-mal_in01,159,225,0 script #CornerLocker10 844,{
+mal_in01,159,225,0 script #CornerLocker10 CLEAR_NPC,{
if (checkweight(1201,1) == 0) {
mes "- You have too many items so you can't continue the quest. -";
close;
@@ -3966,7 +4295,7 @@ mal_in01,159,225,0 script #CornerLocker10 844,{
close;
}
-mal_in01,24,72,0 script #FootholdTower11 844,{
+mal_in01,24,72,0 script #FootholdTower11 CLEAR_NPC,{
if (checkweight(1201,1) == 0) {
mes "- You have too many items so you can't continue the quest. -";
close;
@@ -4000,7 +4329,7 @@ mal_in01,24,72,0 script #FootholdTower11 844,{
// Help Chef Nyas :: mal_day_qook
//============================================================
-mal_in02,187,58,3 script Chef Nyas 548,{
+mal_in02,187,58,3 script Chef Nyas 4_CAT_CHEF,{
if (checkweight(1201,1) == 0) {
mes "- You have too many items so you can't continue the quest. -";
close;
@@ -4315,7 +4644,7 @@ mal_in02,187,58,3 script Chef Nyas 548,{
// Play with Baby Cats :: mal_nyadventurer
//============================================================
-malangdo,165,223,4 script Expert Cat#nya_01 561,{
+malangdo,165,223,4 script Expert Cat#nya_01 4_CAT_SAILOR5,{
if (checkweight(1201,1) == 0 || MaxWeight - Weight < 4000) {
mes "- You have too many items to proceed in this quest. -";
close;
@@ -4475,19 +4804,19 @@ malangdo,165,223,4 script Expert Cat#nya_01 561,{
}
}
-malangdo,211,203,4 script [Meow Team] Charo#nya_11 560,{
+malangdo,211,203,4 script [Meow Team] Charo#nya_11 4_CAT_ADV2,{
if (checkweight(1201,1) == 0 || MaxWeight - Weight < 4000) {
mes "- You have too many items to proceed in this quest. -";
close;
}
if (nyadven == 0) {
- mes "There are gathered cats who seems younger than other crews.";
+ mes "There are cats who seem younger than the other crew.";
mes "They are having a serious conversation about the weird machine in front of them.";
close;
} else if (nyadven == 1) {
- mes "There are gathered cats who seems younger than other crews.";
+ mes "There are cats who seem younger than the other crew.";
mes "They are having a serious conversation about the weird machine in front of them.";
- mes "They are looks like kids who Rato told me.";
+ mes "They look like the kids that Rato told me about.";
next;
switch(select("Just watch them without a word.:Busy right now.")) {
case 1:
@@ -4829,7 +5158,7 @@ malangdo,211,203,4 script [Meow Team] Charo#nya_11 560,{
}
}
-malangdo,214,204,3 script [Meow Team] Rosy#nya_09 559,{
+malangdo,214,204,3 script [Meow Team] Rosy#nya_09 4_CAT_ADV1,{
if (nyadven < 2) {
mes "A young cat with white fur tries so hard with the weird machine.";
mes "The machine might be broken.";
@@ -4874,13 +5203,13 @@ malangdo,214,204,3 script [Meow Team] Rosy#nya_09 559,{
}
}
-malangdo,215,201,3 script [Meow Team] Roku#nya_10 553,{
+malangdo,215,201,3 script [Meow Team] Roku#nya_10 4_CAT_DOWN,{
if (checkweight(1201,1) == 0 || MaxWeight - Weight < 4000) {
mes "- You have too many items to proceed in this quest. -";
close;
}
if (nyadven < 2) {
- mes "A young black cat helps a busy white cat.";
+ mes "A young black cat helps the busy white cat.";
mes "Maybe the machine is broken.";
close;
} else if (nyadven == 2) {
@@ -5057,7 +5386,7 @@ malangdo,215,201,3 script [Meow Team] Roku#nya_10 553,{
}
}
-malangdo,212,204,0 script Beginning Compass#nya_02 844,{
+malangdo,212,204,0 script Beginning Compass#nya_02 CLEAR_NPC,{
if (countitem(6428) == 0) {
mes "There is a strange machine.";
mes "The kids said this was the ride called Duruduru compass of the Meow Bravery Team.";
@@ -5107,7 +5436,7 @@ malangdo,212,204,0 script Beginning Compass#nya_02 844,{
L_Viewpoint:
switch(getarg(0)) {
case 1: // Order 1: Red, Blue, Yellow, Green, White
- setarray .@Colors$[1],"^FF0000","^0000FF","^FFFF00","^00FF00","^cccccc";
+ setarray .@colors$[1],"^FF0000","^0000FF","^FFFF00","^00FF00","^cccccc";
setarray .@Text$[1],"Red","Blue","Yellow","Green","White";
if (getarg(1) <= 1)
viewpoint 1,213,89,0,0xFF0000;
@@ -5120,7 +5449,7 @@ L_Viewpoint:
viewpoint 1,111,178,4,0xcccccc;
break;
case 2: // Order 2: Yellow, Blue, White, Green, Red
- setarray .@Colors$[1],"^FFFF00","^0000FF","^cccccc","^00FF00","^FF0000";
+ setarray .@colors$[1],"^FFFF00","^0000FF","^cccccc","^00FF00","^FF0000";
setarray .@Text$[1],"Yellow","Blue","White","Green","Red";
if (getarg(1) <= 1)
viewpoint 1,73,253,0,0xFFFF00;
@@ -5134,7 +5463,7 @@ L_Viewpoint:
break;
}
for(set .@i,1; .@i<=5; set .@i,.@i+1)
- set .@str$, .@str$+((.@i >= getarg(1))?.@Colors$[.@i]:"")+.@Text$[.@i]+" ";
+ set .@str$, .@str$+((.@i >= getarg(1))?.@colors$[.@i]:"")+.@Text$[.@i]+" ";
if (getarg(1) > 1)
mes "After inserting the card and pressing the red button, the path to the destination lit up.";
mes "The order will be "+.@str$+"^000000.";
@@ -5249,13 +5578,13 @@ L_Viewpoint:
}
close;
}
-malangdo,213,89,0 duplicate(#malangdo_compass) Red Flame Compass#1 844
-malangdo,128,103,0 duplicate(#malangdo_compass) Blue Flame Compass#2 844
-malangdo,73,253,0 duplicate(#malangdo_compass) Gold Flame Compass#3 844
-malangdo,153,146,0 duplicate(#malangdo_compass) Forest Compass#4 844
-malangdo,111,178,0 duplicate(#malangdo_compass) Cloud Compass#5 844
+malangdo,213,89,0 duplicate(#malangdo_compass) Red Flame Compass#1 CLEAR_NPC
+malangdo,128,103,0 duplicate(#malangdo_compass) Blue Flame Compass#2 CLEAR_NPC
+malangdo,73,253,0 duplicate(#malangdo_compass) Gold Flame Compass#3 CLEAR_NPC
+malangdo,153,146,0 duplicate(#malangdo_compass) Forest Compass#4 CLEAR_NPC
+malangdo,111,178,0 duplicate(#malangdo_compass) Cloud Compass#5 CLEAR_NPC
-malangdo,175,163,0 script Meowbell#nya_12 844,{
+malangdo,175,163,0 script Meowbell#nya_12 CLEAR_NPC,{
if (countitem(6428) == 0) {
mes "There is a fancy bell which doesn't fit in with the ship.";
mes "This bell is used in a game by the Meow Bravery Team.";
@@ -5330,7 +5659,7 @@ malangdo,175,163,0 script Meowbell#nya_12 844,{
}
}
-malangdo,176,165,3 script Deckhand Bubi#nya_16 544,{
+malangdo,176,165,3 script Deckhand Bubi#nya_16 4_CAT_SAILOR1,{
mes "[Bubi]";
mes "Hey, human adventurer, what are you here for?";
mes "Yeah~ this is a beautiful view.";
@@ -5346,7 +5675,7 @@ malangdo,176,165,3 script Deckhand Bubi#nya_16 544,{
close;
}
-malangdo,172,178,7 script Cat Detective#nya_14 560,{
+malangdo,172,178,7 script Cat Detective#nya_14 4_CAT_ADV2,{
cutin "mal_homnya_n",2;
if (nyadven < 6) {
mes "[Cat Detective]";
@@ -5750,7 +6079,7 @@ malangdo,172,178,7 script Cat Detective#nya_14 560,{
end;
}
-malangdo,173,177,7 script Friend of Detective#mal 559,{
+malangdo,173,177,7 script Friend of Detective#mal 4_CAT_ADV1,{
cutin "mal_homnya_n",2;
mes "[Nyangson]";
mes "I am a friend of Detective Homnya, Nyangson.";
@@ -5764,7 +6093,7 @@ malangdo,173,177,7 script Friend of Detective#mal 559,{
end;
}
-malangdo,174,175,0 script Noisy Machine#nya_13 844,{
+malangdo,174,175,0 script Noisy Machine#nya_13 CLEAR_NPC,{
if (nyadven < 7) {
mes "There is a strange machine.";
mes "It has a Red, Blue, Yellow, and Green luminous body with buttons to react,";
@@ -5899,12 +6228,12 @@ L_ShowLights:
mes "In that order.";
next;
mes "Luminous";
- setarray .@Color$[0],"Red","Blue","Yellow","Green";
+ setarray .@color$[0],"Red","Blue","Yellow","Green";
setarray .@Cutin$[0],"nya_red","nya_blue","nya_yellow","nya_green";
for(set .@i,0; .@i<getarg(0); set .@i,.@i+1) {
set .@rand, rand(4);
set .@Lamp[.@i],.@rand;
- mes .@Color$[.@rand];
+ mes .@color$[.@rand];
if (.@i+1 == getarg(0))
mes "Shines according to this order.";
cutin .@Cutin$[.@rand],4;
@@ -5915,9 +6244,9 @@ L_ShowLights:
mes "Stop the machine by pressing the right button within time.";
next;
set .@pass,0;
- setarray .@Count$[0],"first","second","third","fourth","fifth","sixth","seventh","eighth";
+ setarray .@count$[0],"first","second","third","fourth","fifth","sixth","seventh","eighth";
for(set .@i,0; .@i<getarg(0); set .@i,.@i+1) {
- mes "Which color button do you want to press "+.@Count$[.@i]+"?";
+ mes "Which color button do you want to press "+.@count$[.@i]+"?";
next;
// Red <-> Green, Blue <-> Yellow
set .@j, select("Red:Blue:Yellow:Green");
@@ -6002,7 +6331,7 @@ function script F_Mal_Picture {
}
}
-mal_in02,187,45,0 script Box#nya01 844,{
+mal_in02,187,45,0 script Box#nya01 CLEAR_NPC,{
switch(callfunc(
"F_Mal_Picture",
7251,1,
@@ -6028,7 +6357,7 @@ mal_in02,187,45,0 script Box#nya01 844,{
}
}
-mal_in02,170,75,0 script Book#nya02 844,{
+mal_in02,170,75,0 script Book#nya02 CLEAR_NPC,{
switch(callfunc(
"F_Mal_Picture",
7252,1,
@@ -6053,7 +6382,7 @@ mal_in02,170,75,0 script Book#nya02 844,{
}
}
-mal_in02,133,98,0 script Dirty Bed#nya03 844,{
+mal_in02,133,98,0 script Dirty Bed#nya03 CLEAR_NPC,{
switch(callfunc(
"F_Mal_Picture",
7253,1,
@@ -6080,7 +6409,7 @@ mal_in02,133,98,0 script Dirty Bed#nya03 844,{
}
}
-mal_in02,31,57,0 script Seashell#nya04 844,{
+mal_in02,31,57,0 script Seashell#nya04 CLEAR_NPC,{
switch(callfunc(
"F_Mal_Picture",
7254,0,
@@ -6097,7 +6426,7 @@ mal_in02,31,57,0 script Seashell#nya04 844,{
}
}
-mal_in02,114,56,0 script Ship Pillar#nya05 844,{
+mal_in02,114,56,0 script Ship Pillar#nya05 CLEAR_NPC,{
switch(callfunc(
"F_Mal_Picture",
7255,1,
@@ -6123,7 +6452,7 @@ mal_in02,114,56,0 script Ship Pillar#nya05 844,{
}
}
-mal_in02,139,30,0 script Ventilation Window#nya06 844,{
+mal_in02,139,30,0 script Ventilation Window#nya06 CLEAR_NPC,{
switch(callfunc(
"F_Mal_Picture",
7256,0,
@@ -6144,7 +6473,7 @@ mal_in02,139,30,0 script Ventilation Window#nya06 844,{
}
}
-mal_in02,166,74,4 script Neat Crew#nyaong01 555,{
+mal_in02,166,74,4 script Neat Crew#nyaong01 4_CAT_3COLOR,{
mes "[Neat Crew]";
mes "Please clean up your stuff by yourself.";
mes "Especially you guys getting dirty after we came to this island!";
@@ -6161,7 +6490,7 @@ mal_in02,166,74,4 script Neat Crew#nyaong01 555,{
close;
}
-mal_in02,132,95,5 script Scary Crew#nyaong02 561,{
+mal_in02,132,95,5 script Scary Crew#nyaong02 4_CAT_SAILOR5,{
mes "[Scary Crew]";
mes "I try to be nice these days, and kids just take liberties with me.";
mes "Will you too?";
@@ -6172,7 +6501,7 @@ mal_in02,132,95,5 script Scary Crew#nyaong02 561,{
close;
}
-mal_in02,109,62,4 script Picky Crew#nyaong03 545,{
+mal_in02,109,62,4 script Picky Crew#nyaong03 4_CAT_SAILOR2,{
mes "[Picky Crew]";
mes "Do not run in the hall!";
mes "My fur falls out because of someone who";
@@ -6180,16 +6509,4012 @@ mal_in02,109,62,4 script Picky Crew#nyaong03 545,{
close;
}
+// Cat Gamers :: mal_gamer
+//============================================================
+mal_in01,31,210,2 script Cat Gamers Director 4_CAT_MERMASTER,{
+ if (MaxWeight - Weight < 1000) {
+ mes "Your inventory is too heavy to proceed. Come back after lightening your load.";
+ close;
+ }
+ if (checkweight(1201,1) == 0) {
+ mes "Your inventory is too full to proceed. Come back after reducing your load.";
+ close;
+ }
+ if (BaseLevel < 60) {
+ mes "A gentle looking cat is whispering to himself.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Hello... Mr. Cat...";
+ next;
+ mes "The cat takes a glance at you and goes back to his whispering as if he didn't even see you.";
+ next;
+ mes "It seems you are not being considered worth talking to.";
+ close;
+ }
+ if (malang_gamer == 0) {
+ mes "A gentle looking cat is whispering to himself.";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Man! 10 losses in a row...";
+ emotion e_sigh;
+ next;
+ mes "[Cat Gamers Director]";
+ mes "We are the 'Cat Gamers' Association.";
+ mes "But, we still keep on losing and we have no idea why!";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "We've got to find out the reason for this losing streak.";
+ set malang_gamer,1;
+ next;
+ mes "You are getting interested in the cat's story. Let's hear more.";
+ close;
+ } else if (malang_gamer == 1) {
+ mes "[Cat Gamers Director]";
+ mes "The reason, yes!";
+ mes "This can be one of them.";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "^DD2234Giving up so many points!^000000";
+ mes "That's right. No matter how much you score,";
+ mes "we will still lose if we give up so many points.";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "For the other reason. Hmm!";
+ mes "This could be related with the previous reason.";
+ mes "No ^DD2234aggresive point betting^000000 at all.";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Other teams bet on games that they think will win, and bet low when they are not confident.";
+ mes "I guess we didn't know that.";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Hmm, can this be a reason?";
+ mes "For some reason there were ^DD2234players disappearing right before the match up^000000 and I guess this could have effected our game spirit.";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Hmm... So the reason of our losing streak will be,";
+ mes "giving up too many points;";
+ mes "aggressive point betting;";
+ mes "and players disappearing?";
+ set malang_gamer,2;
+ next;
+ mes "It seems like the gentle looking cat has finished thinking. Let's interrupt the conversion.";
+ close;
+ } else if (malang_gamer == 2) {
+ mes "[Cat Gamers Director]";
+ mes "Now that I know the reason,";
+ mes "there should be a solution to that.";
+ emotion e_hmm;
+ next;
+ select("Umm... Mr. Cat...");
+ mes "[Cat Gamers Director]";
+ mes "Who's there? Human? You are a human?";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "... ... ... ...";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Oh! Yes! Right!";
+ mes "I remember hearing that";
+ mes "humans have started passing through here recently.";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "So good to see you!!";
+ mes "What is your name by the way?";
+ emotion e_gasp;
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "My name is "+strcharinfo(0)+", Mr. Cat.";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Oh, ^0000FF"+strcharinfo(0)+"^000000.";
+ mes "How may I help you?";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Actually I wanted to help you out since I heard that you've lost 10 games in a row...";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Well, you didn't really have to point it out like that...";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "A weakness is no longer a weakness when you say it out loud.";
+ emotion e_no1,1;
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Hahahaha I like that phrase.";
+ mes "I should remember it and";
+ mes "tell it to my kids. Heh~";
+ next;
+ if (Sex == 0)
+ setarray .@sex$[0],"Mr.","boy";
+ else
+ setarray .@sex$[0],"Miss","girl";
+ mes "[Cat Gamers Director]";
+ mes "I like you, "+.@sex$[0]+" "+strcharinfo(0)+". Will you help us get out of this 10 game losing streak? Ehehe~";
+ next;
+ switch(select("Sorry, I'm a stupid "+.@sex$[1]+".:Sure, I'm a cool "+.@sex$[1]+".")) {
+ case 1:
+ mes "[Cat Gamers Director]";
+ mes "Guess I was wrong about you~";
+ mes "How can a person call themself stupid.";
+ mes "Now I can see how stupid you are.";
+ mes "Good bye~";
+ emotion e_hmm;
+ close;
+ case 2:
+ mes "[Cat Gamers Director]";
+ mes "Wow. I respect you, "+strcharinfo(0)+".";
+ mes "Let me ask you a favor.";
+ mes "Please meet the hard working Manager Cat and ask about our team's attitude these days.";
+ set malang_gamer,3;
+ setquest 5058;
+ next;
+ mes "[Cat Gamers Director]";
+ mes "The Manager Cat must be around here somewhere~";
+ close;
+ }
+ } else if (malang_gamer == 3) {
+ mes "[Cat Gamers Director]";
+ mes "Please meet the hard working";
+ mes "Manager Cat, and ask about our team's attitude these days.";
+ mes "The Manager Cat must be around here somewhere~";
+ close;
+ } else if (malang_gamer == 4) {
+ mes "[Cat Gamers Director]";
+ mes "Ok Ok. So what did the manager cat say about the atmosphere these days?~";
+ emotion e_what;
+ next;
+ mes "You tell him exactly what the Manager Cat said.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "The manager cat said...";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Do not hesitate... Just tell me everything~";
+ emotion e_what;
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Umm... the player cats are afraid of you...";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "What... What did you say?";
+ emotion e_omg;
+ next;
+ mes "Cat Gamers Director seems to be in shock. Let's give him some time to calm down.";
+ set malang_gamer,5;
+ erasequest 5059;
+ setquest 5060;
+ close;
+ } else if (malang_gamer == 5) {
+ if (checkquest(5060,PLAYTIME) == 0 || checkquest(5060,PLAYTIME) == 1) {
+ mes "Cat Gamers Director seems to be in shock. Let's give him some time to calm down.";
+ close;
+ }
+ mes "[Cat Gamers Director]";
+ mes "That is impossible!";
+ mes "There is no other cat that's nicer than I am!";
+ emotion e_sob;
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Am I really that scary?";
+ mes "Are those players who bailed on the practice afraid of me too?";
+ emotion e_swt2;
+ next;
+ mes "[Cat Gamers Director]";
+ mes "It can't be, right? ehehehehe~";
+ next;
+ mes "- He laughs nervously. -";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Is that the truth?";
+ next;
+ mes "[Cat Gamers Director]";
+ mes strcharinfo(0)+", will you help me out?";
+ mes "There are 4 players who ran away from practice saying they were too tired.";
+ mes "Could you check if they ran away because of me? ehehehe~";
+ emotion e_what;
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Their names are Eryu, Stew, Ketchup, and Eff.";
+ mes "They've got to be somewhere around here.";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Please find them all~";
+ mes "But, don't ask too directly! Ok?";
+ mes "Just ask them gentle questions~";
+ mes "Ok? Be! Gentle!";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "I appreciate your help, "+strcharinfo(0)+". heh~";
+ set malang_gamer,6;
+ erasequest 5060;
+ setquest 5061;
+ close;
+ } else if (malang_gamer == 6) {
+ if (checkquest(5062) == 2 && checkquest(5063) == 2 && checkquest(5064) == 2 && checkquest(5065) == 2) {
+ mes "[Cat Gamers Director]";
+ mes "Heh~ It seems some humans are scamming cats around this town.";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "What good is it to scam innocent cats?~";
+ emotion e_gg;
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Yes, I think that you're right.";
+ emotion e_hmm,1;
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Oh, so you met Eryu, Stew, Ketchup, and Eff.";
+ mes "It is so good to see you again. Heh~";
+ mes "Thank you very much for your effort~. Heh~";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "So what did they say?";
+ mes "They really think I am scary?";
+ next;
+ mes "You tell the Cat Gamers Director what Eryu, Stew, Ketchup, and Eff said.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "They think you push them too much through the practices. So they are scared.";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "What? Really?";
+ next;
+ mes "The Cat Gamers Director seems to be shocked once again. Better give him more time to calm down.";
+ set malang_gamer,7;
+ erasequest 5061;
+ setquest 5060;
+ close;
+ }
+ mes "[Cat Gamers Director]";
+ mes "Their names are Eryu, Stew, Ketchup, and Eff.";
+ mes "They've got to be somewhere around here.";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Please find them all~";
+ mes "But, don't ask too directly! Ok?";
+ mes "Just ask them gentle questions~";
+ mes "Ok? Be! Gentle!";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "I appreciate your help, "+strcharinfo(0)+". heh~";
+ close;
+ } else if (malang_gamer == 7) {
+ if (checkquest(5060,PLAYTIME) == 0 || checkquest(5060,PLAYTIME) == 1) {
+ mes "Cat Gamers Director seems to be in shock once again. Better give more time to calm down.";
+ close;
+ }
+ mes "[Cat Gamers Director]";
+ mes "Ok, I understand.";
+ mes "I was a scary cat after all.";
+ mes "This can't be right!! Heh~";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "I need to change my scary cat image. Heh~";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "This is my mission now,";
+ mes "so our team can improve";
+ mes "game performance. Heh~";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Please go meet our manager cat,";
+ mes "and find out how can I change";
+ mes "this scary cat image of mine. Heh~";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Heh~ I would much appreciate your help, "+strcharinfo(0)+"~.";
+ set malang_gamer,8;
+ erasequest 5060;
+ setquest 5066;
+ close;
+ } else if (malang_gamer == 8) {
+ mes "[Cat Gamers Director]";
+ mes "Please ask our manager cat how can I change this scary cat image.";
+ mes "Heh~";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Heh~ Please help me out,";
+ mes strcharinfo(0)+"! Heh~";
+ close;
+ } else if (malang_gamer == 9) {
+ mes "[Cat Gamers Director]";
+ mes "You came back!! Heh~";
+ mes "So, what did our manager cat say?";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Manager cat asked to prepare a box.";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "A box? Heh~ Sure, why not?";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Are you going to ask me what is it for?";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Well, I kind of was eavesdropping when "+strcharinfo(0)+" and Manager Cat were talking together. Heh~";
+ emotion e_heh;
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "............";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Now I need to check with our players, see how they really feel.";
+ mes "Heh~ Why don't you come back tomorrow?";
+ mes "Heh~ Let me decide what to do after checking their honest petition letters. Heh~";
+ set malang_gamer,10;
+ erasequest 5067;
+ setquest 5068;
+ close;
+ } else if (malang_gamer == 10) {
+ if (checkquest(5068,PLAYTIME) == 0 || checkquest(5068,PLAYTIME) == 1) {
+ mes "[Cat Gamers Director]";
+ mes "Still receiving petition letters. Heh~";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "I wonder what they really want to say~ Heh~";
+ close;
+ }
+ mes "[Cat Gamers Director]";
+ mes "Heh~ All done with collecting petition letters~";
+ mes "Heh~ Let's see what they wrote here?";
+ next;
+ mes "Reading...~";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Heh~ Let me see... 'Stupid Cat lea...de...'";
+ emotion e_an;
+ next;
+ mes "- Crumpling the paper -";
+ mes "Cat Gamers Director has crumpled the paper and thrown it away.";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Heh~ Wrong paper.";
+ mes "Let's read another one... Heh~";
+ next;
+ mes "~Reading~";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Heh~ Here we go.";
+ mes "'I don't like playing with the same team members over and over.";
+ mes "Please pick new team members,";
+ mes "or get me a practicing partner.'";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Heh~ I see.";
+ mes "I can take this positively.";
+ mes "Heh~ Let's move on to another one.";
+ emotion e_ok;
+ next;
+ mes "~Reading~";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Heh~";
+ mes "'We need more snacks~ Get us some more snacks~'";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Heh~ This one also sounds productive.";
+ mes "Heh~ Petition letters are good, I guess... Heh~";
+ emotion e_ok;
+ next;
+ mes "Reading...~";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Heh~";
+ mes "'Elders are bullying me. Help me...'";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Heh~ Our team is absolutely";
+ mes "like a family here~ Someone is";
+ mes "playing here, you know. Heh~";
+ emotion e_gasp;
+ next;
+ mes "Reading...~";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Heh~ There are only 4 letters!";
+ mes "Including a prank one...";
+ mes "Heh~";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Everyone seems to have a satisfied team life~ Heh~";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Not... Really...";
+ next;
+ mes "There are tons of letters piled in the back of the box, but Cat Gamers Director doesn't want to admit the problem.";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Heh~";
+ mes "Hey, "+strcharinfo(0)+". What did you say? Heh~";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Nothing! Please carry on.";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Heh~ Because of what these players want,";
+ mes "I have a favor to ask you, "+strcharinfo(0)+"...";
+ mes "Heh~";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "What is it?";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Will you be our players' practicing partner?";
+ mes "Heh~ I feel strongly that you, "+strcharinfo(0)+", can be trusted for this. Heh~";
+ next;
+ switch(select("No thanks, buddy!:Ok, I'll do it!")) {
+ case 1:
+ mes "[Cat Gamers Director]";
+ mes "Heh~ Are you rejecting me? Heh~";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "I'm sad. Sad~ Heh~";
+ mes "I didn't expect a refusal from a person like you, "+strcharinfo(0)+".";
+ mes "But still, here's some coins for you~";
+ mes "Heh~";
+ emotion e_sob;
+ next;
+ mes "[Cat Gamers Director]";
+ mes "We will always welcome you, "+strcharinfo(0)+", as a guest member of the Cat Gamers.";
+ mes "Heh~";
+ set malang_gamer,11;
+ erasequest 5068;
+ getitem 6422,100; //Egrade_Coin
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Heh~ Please come back if you change your mind.";
+ close;
+ case 2:
+ mes "[Cat Gamers Director]";
+ mes "Heh~ Good choice.";
+ mes "I knew you would help us Cat Gamers... Heh~";
+ emotion e_no1;
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Heh~ Thank you for your help.";
+ mes "Heh~ Here are some coins as a small gift... Heh~";
+ mes "Get yourself some goodies. Heh~";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Since you will be our team's practicing partner, please come back in an hour.";
+ mes "Then I will give you our '^0000FFCat Gamers Certificate^000000'.";
+ mes "Heh~";
+ set malang_gamer,12;
+ erasequest 5068;
+ setquest 5069;
+ getitem 6422,100; //Egrade_Coin
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Heh~ Ok, "+strcharinfo(0)+". I will see you in an hour. Heh~";
+ close;
+ }
+ } else if (malang_gamer == 11) {
+ mes "[Cat Gamers Director]";
+ mes "Heh~";
+ mes "Aren't you "+strcharinfo(0)+"?";
+ mes "Have you changed your mind yet?";
+ mes "Are you willing to be our team's practicing partner?";
+ next;
+ switch(select("No, I'm just passing through.:I accept your offer.")) {
+ case 1:
+ mes "[Cat Gamers Director]";
+ mes "Heh~ I see.";
+ mes "But, let me tell you once again, "+strcharinfo(0)+".";
+ mes "You are always welcome to be one of our 'Cat Gamers Honorable Members'.";
+ mes "Heh~";
+ close;
+ case 2:
+ mes "[Cat Gamers Director]";
+ mes "Heh~ At last!!";
+ mes strcharinfo(0)+" will become our honorable member!!";
+ mes "I shall make a '^0000FFCat Gamers Certificate^000000' right away. Heh~";
+ emotion e_ho;
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Come back in an hour and I will get you a '^0000FFCat Gamers Certificate^000000'.";
+ mes "Heh~";
+ set malang_gamer,12;
+ setquest 5069;
+ close;
+ }
+ } else if (malang_gamer == 12) {
+ if (checkquest(5069,PLAYTIME) == 0 || checkquest(5069,PLAYTIME) == 1) {
+ mes "[Cat Gamers Director]";
+ mes "Heh~ You want to get the '^0000FFCat Gamers Certificate^000000' faster. Heh~ It's not really easy to get such a certificate easily.";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "So, it's a bit tricky... Heh~ Please come later. Heh~";
+ emotion e_ho;
+ close;
+ }
+ mes "[Cat Gamers Director]";
+ mes "Heh~ I got a message from the workshop that their work on the certificate is done. Heh~";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "This is not some ordinary certificate. Heh~";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "What do you mean?";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Heh~ This is...";
+ next;
+ mes "The Cat Gamers Director's eyes are shining with pride.";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Heh~ The pure essence of the 'Cat Gamers' tech team's effort!!";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Heh~ Equip this item, then all of your game playing records will be saved. Heh~";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Heh~ Take this and show us what you've got.";
+ erasequest 5069;
+ set malang_gamer,20;
+ getitem 2872,1; //G_Honor_Certificate
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Heh~ I may be worrying too much... But, please wear this '^0000FFCat Gamers Certificate^000000', and play the game. Heh~";
+ close;
+ } else if (malang_gamer == 20) {
+ // fall through
+ } else {
+ mes "[Cat Gamers Director]";
+ mes "This is not possible. Please contact an administrator.";
+ close;
+ }
+ mes "[Cat Gamers Director]";
+ mes "Heh~ Hello, "+strcharinfo(0)+". How is it going practicing with the players?";
+ emotion e_what;
+ next;
+ switch(select("How are the players doing?:Just stopped by to say hi~:Here's the current status...")) {
+ case 1:
+ mes "[Cat Gamers Director]";
+ mes "Heh~ Wow, "+strcharinfo(0)+"! I'm so touched by your care for the players.";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Heh~ For 13 years of my life, I've never seen anyone like you, "+strcharinfo(0)+". Heh~";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Heh~ "+strcharinfo(0)+", which player's condition are you interested in?";
+ next;
+ switch(select("Rock Paper Scissors players:ChamChamCham players:KongNyangKong players:Flag Game players")) {
+ case 1:
+ mes "[Cat Gamers Director]";
+ mes "Heh~ Rock Paper Scissors players are missing practices occasionally, but they are still getting better. Heh~";
+ break;
+ case 2:
+ mes "[Cat Gamers Director]";
+ mes "ChamChamCham players are actually complaining about the practice because you are doing so well with them, very hard to remember the winner. Heh~";
+ break;
+ case 3:
+ mes "[Cat Gamers Director]";
+ mes "Heh~ KongNyangKong players are so happy with the practice. Heh~";
+ break;
+ case 4:
+ mes "[Cat Gamers Director]";
+ mes "Heh~ Flag Game players are always nervous since you make them work so much. Heh~ But, they are really getting better. Heh~";
+ break;
+ }
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Heh~ Please keep up the good work, "+strcharinfo(0)+". Heh~";
+ close;
+ case 2:
+ mes "[Cat Gamers Director]";
+ mes "Heh~ Hello there~ "+strcharinfo(0)+". You have such good manners~ Heh~";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Heh~ These days, there are so many cats and humans without proper manners. Heh~";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "We also have some of thme in our 'Cat Gamers'. They are so arrogant every time we win the game... Heh~";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Heh~ There should be more people like you, "+strcharinfo(0)+". Heh~";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Heh~ Please practice with our players more often~ Heh~ So they can learn some manners from you, "+strcharinfo(0)+". Heh~";
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Keep up the good work~ Heh~";
+ close;
+ case 3:
+ mes "[Cat Gamers Director]";
+ mes "Heh~ What happened to your face, "+strcharinfo(0)+"? Guess you lost from the practice, right? Heh~";
+ emotion e_gg;
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Heh~ I saw players puting notes in the 'Petition box'. Heh~ Guess that was your work. Let me see...";
+ next;
+ break;
+ }
+
+ // Detect quest (ID range 5074~5090)
+ mes "[Cat Gamers Director]";
+ if (checkquest(5074,HUNTING) > -1) {
+ mes "Heh~ It's not like I didn't feed them right... Heh~ I hope it was not too much for you, "+strcharinfo(0)+".";
+ next;
+ if (checkquest(5074,HUNTING) == 2 && countitem(1023) >= 10) {
+ delitem 1023,10; //Fish_Tail
+ callsub L_CompleteQuest,5074,
+ "Heh~ So, you brought 30 Phens and 10 Fish Tails, just as ordered.";
+ } else {
+ mes "[Cat Gamers Director]";
+ mes "Heh~ It says in the note to bring 30 Phens and 10 Fish Tails. Heh~ Maybe you didn't catch enough Phens, or forgot some Fish Tails? Heh~";
+ close;
+ }
+ } else if (checkquest(5075,HUNTING) > -1) {
+ mes "Heh~ Hmm, 50 Marses, and 30 Milk Bottles... Heh~";
+ next;
+ if (checkquest(5075,HUNTING) == 2 && countitem(519) >= 30) {
+ delitem 519,30; //Milk
+ callsub L_CompleteQuest,5075,
+ "Heh~ Guess they wanted some healthy food. Heh~ They should have just told me... Let me show you my skills. Heh~";
+ } else {
+ mes "[Cat Gamers Director]";
+ mes "Heh~ But, where are 50 Marses and 30 Milk Bottles? Heh~ Please see if you haven't missed them...";
+ close;
+ }
+ } else if (checkquest(5076,HUNTING) > -1) {
+ mes "Heh~ Our team must have some grudge over Team 'Dog n Waltz', enough to ask you for this kind of favor...";
+ next;
+ if (checkquest(5076,HUNTING) == 2) {
+ callsub L_CompleteQuest,5076,
+ "Heh~ So you have finished harassing 30 Kobold Archers as noted. Heh~ Outstanding.";
+ } else {
+ mes "[Cat Gamers Director]";
+ mes "Heh~ It says on the note, harass 30 Kobold Archers. Heh~ Please check if you have harassed 30 of them already.";
+ close;
+ }
+ } else if (checkquest(5077,HUNTING) > -1) {
+ mes "Heh~ Ah, quickness training. It's good to see our players trying their best on training.";
+ mes "Heh~ Yes, nothing is better than mouse catching for improving quickness.";
+ next;
+ if (checkquest(5077,HUNTING) == 2) {
+ callsub L_CompleteQuest,5077,
+ "Heh~ Oh, you got some fresh and chubby Cramps. Heh~ Great.";
+ } else {
+ mes "[Cat Gamers Director]";
+ mes "Heh? Where are those 10 Cramps you promised? Heh~ You didn't eat them... did you?";
+ close;
+ }
+ } else if (checkquest(5078,HUNTING) > -1) {
+ mes "Heh~ '50 Peco Peco please!! Let's party.' Hmm... Heh~ 50 Pecos can feed all of our neighbors.";
+ next;
+ if (checkquest(5078,HUNTING) == 2) {
+ callsub L_CompleteQuest,5078,
+ "Heh~ Wow, you did bring 50 Peco Pecos. Heh~ I guess we'll really have a party this evening.";
+ } else {
+ mes "[Cat Gamers Director]";
+ mes "Heh~ Where are those Peco Pecos? Still not ready? Heh~";
+ close;
+ }
+ } else if (checkquest(5079) > -1) {
+ mes "Heh~ Hmm... let me see... Heh~ That's right, I was worrying about our team getting so nervous before the actual game... But, they won't even talk to me about it.";
+ next;
+ if (countitem(7038) >= 20) {
+ delitem 7038,20; //Yarn
+ callsub L_CompleteQuest,5079,
+ "Heh~ How could I miss that? I shall give some to my team for sure.";
+ } else {
+ mes "[Cat Gamers Director]";
+ mes "Heh~ Where are those 20 yarns? It says 20 on the note, right...? Please check if you have lost them somewhere.";
+ close;
+ }
+ } else if (checkquest(5080) > -1) {
+ mes "Heh~ The note says, get me 30 Rat Tails for a snack.";
+ next;
+ if (countitem(1016) >= 30) {
+ delitem 1016,30; //Rat_Tail
+ callsub L_CompleteQuest,5080,
+ "Heh~ I think I've fed them good snacks... Didn't I? Lately I was little busy, they should have some patience... Heh~ Poor manager...";
+ } else {
+ mes "[Cat Gamers Director]";
+ mes "Heh~ Where are those 30 Rat Tails? Please check and come back later.";
+ close;
+ }
+ } else if (checkquest(5081) > -1) {
+ mes "Heh~ It says 5 on the note... 5 of what? What?! Lemons?";
+ next;
+ if (countitem(568) >= 5) {
+ delitem 568,5; //Lemon
+ callsub L_CompleteQuest,5081,
+ "Heh~ Lemon is forbidden before the actual game... heh? They won't eat it at game time, right? Heh~";
+ } else {
+ mes "[Cat Gamers Director]";
+ mes "Heh~ Let's just get 5 Lemons for them, will you? Heh~ I am still not sure where they want to use them...";
+ close;
+ }
+ } else if (checkquest(5082) > -1) {
+ mes "Heh~ Give us 10 Ice Pieces or 10 Ice Creams!! Heh~ I personally prefer Ice Cream, just so you know.";
+ next;
+ if (countitem(7066) >= 10) {
+ delitem 7066,10; //Ice_Piece
+ callsub L_CompleteQuest,5082,
+ "Heh~ Oh, you brought Ice Pieces. Heh~ The players will love it.";
+ } else if (countitem(536) >= 10) {
+ delitem 536,10; //Ice_Cream
+ callsub L_CompleteQuest,5082,
+ "Heh~ Oh, you brought Ice Creams. Heh~ The players will love it.";
+ } else {
+ mes "[Cat Gamers Director]";
+ mes "Heh~ Where are the Ice Pieces or Ice Creams? You should get them before they melt...";
+ close;
+ }
+ } else if (checkquest(5083) > -1 || checkquest(5084) > -1) {
+ mes "Heh~ Here, I found the note from our team. Heh~";
+ next;
+ if (checkquest(5083) > -1) {
+ mes "[Cat Gamers Director]";
+ mes "Heh~ It says 'We will meet Eryu together.'. Heh~ Have you met Eryu already? I don't think so... Heh~";
+ close;
+ } else {
+ callsub L_CompleteQuest,5084,
+ "Heh~ Oh, you did meet Eryu. Heh~ I will lecture them later for making you work too much... Heh~";
+ }
+ } else if (checkquest(5085) > -1 || checkquest(5086) > -1) {
+ mes "Heh~ Here, I found the note from our team. Heh~";
+ next;
+ if (checkquest(5085) > -1) {
+ mes "[Cat Gamers Director]";
+ mes "Heh~ It says 'We will meet Stew together.'. Heh~ Have you met Stew already? I don't think so... Heh~";
+ close;
+ } else {
+ callsub L_CompleteQuest,5086,
+ "Heh~ Oh, you did meet Stew. Heh~ I will lecture them later for making you work too much... Heh~";
+ }
+ } else if (checkquest(5087) > -1 || checkquest(5088) > -1) {
+ mes "Heh~ Here, I found the note from our team. Heh~";
+ next;
+ if (checkquest(5087) > -1) {
+ mes "[Cat Gamers Director]";
+ mes "Heh~ It says 'We will meet Ketchup together.'. Heh~ Have you met Ketchup already? I don't think so... Heh~";
+ close;
+ } else {
+ callsub L_CompleteQuest,5088,
+ "Heh~ Oh, you did meet Ketchup. Heh~ I will lecture them later for making you work too much... Heh~";
+ }
+ } else if (checkquest(5089) > -1 || checkquest(5090) > -1) {
+ mes "Heh~ Here, I found the note from our team. Heh~";
+ next;
+ if (checkquest(5089) > -1) {
+ mes "[Cat Gamers Director]";
+ mes "Heh~ It says 'We will meet Eff together.'. Heh~ Have you met Eff already? I don't think so... Heh~";
+ close;
+ } else {
+ callsub L_CompleteQuest,5090,
+ "Heh~ Oh, you did meet Eff. Heh~ I will lecture them later for making you work too much... Heh~";
+ }
+ }
+ mes "[Cat Gamers Director]";
+ mes "Heh?! There's no favor note for you, "+strcharinfo(0)+". Heh~ What do you want to report? Heh~";
+ close;
+
+// callsub L_CompleteQuest,<quest ID>,"<message>";
+L_CompleteQuest:
+ erasequest getarg(0);
+ getitem 12636,3; //Malang_Sp_Can
+ mes "[Cat Gamers Director]";
+ mes getarg(1);
+ next;
+ mes "[Cat Gamers Director]";
+ mes "Heh~ Thanks for coming by, "+strcharinfo(0)+". Heh~ Keep up the good work. Heh~";
+ emotion e_thx;
+ close;
+}
+
+malangdo,127,111,4 script Strange Cat#gamer 4_CAT_SAILOR4,{
+ if (MaxWeight - Weight < 1000) {
+ mes "Your inventory is too heavy to proceed. Come back after lightening your load.";
+ close;
+ }
+ if (checkweight(1201,1) == 0) {
+ mes "Your inventory is too full to proceed. Come back after reducing your load.";
+ close;
+ }
+ if (malang_gamer < 3) {
+ mes "[Strange Cat]";
+ mes "Meow~ Meo~ Ow Ow~ Meow Meo~ Eow Eow~";
+ next;
+ mes "Some strange cat is here.";
+ close;
+ } else if (malang_gamer == 3) {
+ mes "[Manager Cat]";
+ mes "Meow~ Meo~ Ow Ow~ Meow Meo~ Eow Eow~";
+ next;
+ mes "[Manager Cat]";
+ mes "What do you want?";
+ emotion e_what;
+ next;
+ set .@cat_gam, rand(1,10);
+ select("Ask about the team's attitude...");
+ if (.@cat_gam == 5) {
+ mes "[Manager Cat]";
+ mes "Do not lie to me! How can I trust you and reveal our team secret? Aren't you a spy from the doggy team?";
+ emotion e_ag;
+ next;
+ select("Aww, come on...");
+ mes "You play with a foxtail nearby and then ask again.";
+ next;
+ select("Cat Gamers Director says...");
+ mes "The Manager Cat seems to be interested in the foxtail and starts answering.";
+ emotion e_awsm;
+ next;
+ mes "[Manager Cat]";
+ mes "Players are afraid of the Cat Gamers Director. When they see Cat Gamers Director at the game, they get nervous.";
+ emotion e_lv;
+ next;
+ mes "[Manager Cat]";
+ mes "Can you give me that?";
+ set malang_gamer,4;
+ erasequest 5058;
+ setquest 5059;
+ next;
+ mes "You hand the foxtail to the Manager Cat. Go back to the Cat Gamers Director.";
+ close;
+ } else {
+ mes "[Manager Cat]";
+ mes "Don't lie to me!";
+ mes "Why should I trust you,";
+ mes "and give our team information?";
+ mes "Aren't you a spy from doggy team...?";
+ mes "Go away.";
+ emotion e_ag;
+ next;
+ mes "This cat might hit you.";
+ close;
+ }
+ } else if (malang_gamer < 8) {
+ mes "The Manager Cat is playing with the foxtail you gave him.";
+ mes "He seems to be liking it...";
+ emotion e_lv;
+ close;
+ } else if (malang_gamer == 8) {
+ mes "The Manager Cat is playing with the foxtail you gave him.";
+ mes "He seems to be liking it...";
+ emotion e_lv;
+ next;
+ switch(select("Help~ Fire~:Hey~!:Do you want to hear something?")) {
+ case 1:
+ mes "[Manager Cat]";
+ mes "Don't lie~ We don't use fire that much~";
+ emotion e_an;
+ next;
+ break;
+ case 2:
+ mes "The Manager Cat ignores you, and keeps on playing with the foxtail.";
+ emotion e_lv;
+ close;
+ case 3:
+ mes "[Manager Cat]";
+ mes "Meow~ I want to tell you a story~ Follow me meow~ Let talk over there, meow~";
+ emotion e_gg;
+ next;
+ break;
+ }
+ mes "["+strcharinfo(0)+"]";
+ mes "Haha, I was just kidding. I actually need to tell you that the Cat Gamers Director has an issue...";
+ emotion e_swt2,1;
+ next;
+ mes "You explain the story to the Manager Cat.";
+ emotion e_swt2,1;
+ next;
+ mes "[Manager Cat]";
+ mes "Scary image... Meow, I understand... Cat Gamers Director should feel peace by giving up things.";
+ emotion e_hmm;
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "... ... ...";
+ emotion e_dots,1;
+ next;
+ mes "[Manager Cat]";
+ mes "Meow! Go tell him this, meow~ Prepare a box, meow~";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "A box?";
+ emotion e_what,1;
+ next;
+ mes "[Manager Cat]";
+ mes "Petition it is, meow!! There is some place where humans do such things, I think it will help us~";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Ok, I will go tell it to the Games Director~";
+ emotion e_ok,1;
+ set malang_gamer,9;
+ erasequest 5066;
+ setquest 5067;
+ close;
+ } else if (malang_gamer == 9) {
+ mes "[Manager Cat]";
+ mes "You tell the Cat Gamers Director to prepare a Box for sure!~ I will tell this to my team, meow.";
+ close;
+ } else if (malang_gamer == 10) {
+ mes "[Manager Cat]";
+ mes "The players are excited and writing a bunch of things for the petition box... I wonder what they are writing.";
+ close;
+ } else if (malang_gamer == 11) {
+ mes "[Manager Cat]";
+ mes "You won't help practice? If you help, the Cat Gamers Director will give you food cans... Please reconsider!";
+ close;
+ } else if (malang_gamer == 12) {
+ mes "[Manager Cat]";
+ mes "Meow~ Aren't you "+strcharinfo(0)+"? I heard Cat Gamers Director ordered a special certificate, meow~";
+ next;
+ mes "[Manager Cat]";
+ mes "When practicing, you must equip the '^0000FFCat Gamers Certificate^000000' item~ Don't forget, meow~";
+ close;
+ } else if (malang_gamer == 20) {
+ // fall through
+ } else {
+ mes "[Manager Cat]";
+ mes "This is not possible. Please contact an administrator.";
+ close;
+ }
+ mes "[Manager Cat]";
+ mes "What do you want meow?";
+ next;
+ switch(select("Hi.:Any news?:Help me with playing.")) {
+ case 1:
+ mes "[Manager Cat]";
+ mes "Oh, hi meow~";
+ emotion e_heh;
+ close;
+ case 2:
+ switch(rand(1,7)) {
+ case 1:
+ mes "[Manager Cat]";
+ mes "I tell you this meow~ You don't know Cat Gamers Director's feeling meow~.";
+ next;
+ mes "[Manager Cat]";
+ mes "lol? >> Curious, Admire";
+ mes "Heh~ >> Normal";
+ mes "lol Heh~ >> Happy";
+ mes "lol lol Heh~ >> Crazy meow";
+ emotion e_ok;
+ close;
+ case 2:
+ mes "[Manager Cat]";
+ mes "But, why are you asking me meow? Strange meow...";
+ close;
+ case 3:
+ mes "[Manager Cat]";
+ mes "Some cats use 'meow meow' like me when talking, but some don't.";
+ close;
+ case 4:
+ mes "[Manager Cat]";
+ mes "Cats don't have an honorific phrase, so don't get us wrong as looking down on you meow.~";
+ close;
+ case 5:
+ mes "[Manager Cat]";
+ mes "You should walk around many places and ask for information meow... But, don't bother me please meow~";
+ close;
+ case 6:
+ case 7:
+ mes "[Manager Cat]";
+ mes "No easy way for that... I just breathe meow...";
+ close;
+ }
+ case 3:
+ mes "[Manager Cat]";
+ mes "What game do you want to play?";
+ mes "'Cat Gamers' has players for 4 types of games meow~";
+ mes "The Cat Gamers Director said he will challenge other games later~";
+ next;
+ switch(select("Rock Paper Scissors:KongNyangKong:ChamChamCham:Flag Game")) {
+ case 1:
+ mes "[Manager Cat]";
+ mes "Rock Paper Scissors meow? Nothing special...";
+ next;
+ mes "[Manager Cat]";
+ mes "Scissor beats Paper, meow.";
+ mes "Rock beats Scissors, meow.";
+ mes "Paper beats Rock, meow.";
+ mes "These are basic rules.";
+ next;
+ mes "[Manager Cat]";
+ mes "You play 5 Rock Paper Scissors games with player cats meow.";
+ mes "You play again when you are even meow.";
+ next;
+ mes "[Manager Cat]";
+ mes "You can get a present after 3 times of winning meow.";
+ mes "And you get a big present when you win all 5 matches, meow!!";
+ next;
+ mes "[Manager Cat]";
+ mes "Find Paa or Ser if you want to play the Rock Paper Scissors game.";
+ close;
+ case 2:
+ mes "[Manager Cat]";
+ mes "KongNyangKong is not an easy game meow.";
+ next;
+ mes "[Manager Cat]";
+ mes "When attacking, face your hand the same direction as the opponent meow.";
+ next;
+ mes "[Manager Cat]";
+ mes "When defending, you should face your hand the opposite direction from the opponent meow.";
+ next;
+ mes "[Manager Cat]";
+ mes "If the attack is a success, you can keep on attacking.";
+ mes "But, if you fail, you have to defend meow.";
+ next;
+ mes "[Manager Cat]";
+ mes "If you be careful, you can win without getting hit at all meow.";
+ next;
+ mes "[Manager Cat]";
+ mes "Once you make your opponent's HP 0, you win meow.";
+ mes "Of course there will be a present meow.";
+ mes "Good luck meow.";
+ next;
+ mes "[Manager Cat]";
+ mes "Oh~ right meow~!! Find KungKung if you want to play KongNyangKong.";
+ close;
+ case 3:
+ mes "[Manager Cat]";
+ mes "ChamChamCham is a high level mind game meow.";
+ next;
+ mes "[Manager Cat]";
+ mes "The rules are simple, but you need to think a lot meow.";
+ next;
+ mes "[Manager Cat]";
+ mes "You should direct your hand to where the cat turns its face meow.";
+ next;
+ mes "[Manager Cat]";
+ mes "A present is given for 3 wins in a row meow.";
+ mes "The more wins, the more presents meow.";
+ next;
+ mes "[Manager Cat]";
+ mes "Kuka is smart, and remembers players with many wins meow.";
+ mes "There will be more presents when you take 1st place meow.";
+ close;
+ case 4:
+ mes "[Manager Cat]";
+ mes "Flag Game is way harder than ChamChamCham game meow.";
+ mes "Really~ Really~ Really~";
+ mes "hard mind game meow.";
+ mes "It's 1,000 times harder meow.";
+ next;
+ mes "[Manager Cat]";
+ mes "You get 5 Flag Point when starting meow.";
+ mes "1 point goes away when you wave the flag once meow.";
+ next;
+ mes "[Manager Cat]";
+ mes "You win the game when no other cats are waving flags meow.";
+ next;
+ mes "[Manager Cat]";
+ mes "You can predict if other cats will wave their flags or not meow.";
+ mes "By looking at their actions meow.";
+ next;
+ mes "[Manager Cat]";
+ mes "You must win to get presents meow.";
+ mes "You will get more presents since this is hard game meow~";
+ next;
+ mes "[Manager Cat]";
+ mes "If you want to play Flag Game meow~";
+ mes "Go find the other manager cat who is trying to get the Referee Certificate meow.";
+ close;
+ }
+ }
+}
+
+malangdo,161,197,4 script Eryu#gamer 4_CAT,{
+ if (MaxWeight - Weight < 1000) {
+ mes "Your inventory is too heavy to proceed. Come back after lightening your load.";
+ close;
+ }
+ if (checkweight(1201,1) == 0) {
+ mes "Your inventory is too full to proceed. Come back after reducing your load.";
+ close;
+ }
+ if (checkquest(5061) == 0 || checkquest(5061) == 1) {
+ if (checkquest(5062) == -1) {
+ mes "You found Eryu the cat, and start talking.";
+ next;
+ mes "[Eryu]";
+ mes "Umm... Who are you?";
+ next;
+ switch(select("The Games Director sent me.:I am a writer for the 'Human' magazine.:Who are you?")) {
+ case 1:
+ mes "[Eryu]";
+ mes "Arrgg. Go away...";
+ mes "I don't know who you're talking about.";
+ emotion e_an;
+ break;
+ case 2:
+ mes "[Eryu]";
+ mes "Umm? 'Human' magazine?";
+ mes "Is there such a thing?";
+ emotion e_what;
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "We've been publishing for 10 years.";
+ mes "But, I guess it is possible for cats to not know who we are.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "We are a really famous magazine throughout the World!";
+ mes "Don't you believe me?";
+ next;
+ mes "[Eryu]";
+ mes "Hmm... ok. But, what can I do for you?";
+ emotion e_what;
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "I am in the middle of writing an article named 'Game Playing Cats'...'";
+ mes "It is a special piece for me.";
+ mes "And some team named umm... do... umm... wal... not sure...";
+ next;
+ mes "[Eryu]";
+ mes "'Dog n Waltz'?";
+ emotion e_what;
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Oh! Yes!";
+ mes "One of players there 'Dog n Waltz' has recommended Eryu for an interview.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "He says you are a really good player who can help me with the article.";
+ next;
+ mes "[Eryu]";
+ mes "I don't remember anyone from 'Dog n Waltz' that much.";
+ emotion e_dots;
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "The person isn't important.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Just answer a few questions for me, ok?";
+ mes "Be yourself and you'll do just fine.";
+ mes "Ok, first question: How much do you practice a day?";
+ emotion e_what,1;
+ next;
+ mes "[Eryu]";
+ mes "Usually for about 8 hours, but I have to tell you that I'm not on the team anymore...";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Wait, what?";
+ mes "You are not with the team now? How come...?";
+ emotion e_omg,1;
+ next;
+ mes "[Eryu]";
+ mes "Well...";
+ mes "The Director Cat was too scary...";
+ mes "I was very sick and had to take a day off...";
+ mes "Just one freaking day...";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "And...?";
+ next;
+ mes "[Eryu]";
+ mes "And then the Director Cat was raging at me!";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Hmm, sounds pretty rough.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "'Cat Gamers' has lost another great player.";
+ mes "I'm sorry to hear that you're not on the team anymore.";
+ mes "I guess this is the end of the interview.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Because this is for current players only.";
+ next;
+ mes "[Eryu]";
+ mes "Oh...";
+ mes "Sorry to make you waste your time.";
+ emotion e_sry;
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Oh, don't worry.";
+ mes "I should say sorry for taking up your precious time.";
+ mes "Have a nice day.";
+ next;
+ mes "You found out the reason why Eryu left the team.";
+ mes "Time to go find the other cats.";
+ setquest 5062;
+ completequest 5062;
+ break;
+ case 3:
+ mes "[Eryu]";
+ mes "Yes, I am Eryu! What do you want, huh, meow~";
+ break;
+ }
+ close2;
+ } else if (checkquest(5062) == 2) {
+ mes "[Eryu]";
+ mes "Aren't you the magazine writer?";
+ mes "What brings you here again...?";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Ah!";
+ mes "Sorry, I was trying to interview another cat...";
+ mes "And came back to you by mistake.";
+ mes "I'm sorry.";
+ emotion e_sry,1;
+ next;
+ mes "[Eryu]";
+ mes "Ah... I see. Take care of yourself.";
+ close2;
+ } else {
+ mes "[Eryu]";
+ mes "This is not possible. Please contact an administrator.";
+ close2;
+ }
+ } else if (checkquest(5083) == 0 || checkquest(5083) == 1) {
+ mes "[Eryu]";
+ mes "Who are you?";
+ next;
+ mes "What do you want to say?";
+ next;
+ input .@inputstr$;
+ if (.@inputstr$ == "Come back") {
+ erasequest 5083;
+ setquest 5084;
+ set .@str$, "You've delivered the message, so let's get away.";
+ } else
+ set .@str$, "You didn't deliver the right message, but let's still get away.";
+ mes "[Eryu]";
+ mes "What is this? What do you mean by '"+.@inputstr$+"'...?";
+ mes "Ah... aren't you the writer?";
+ emotion e_an;
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Huh... Who is that..?";
+ next;
+ mes "Eryu seems to recognize you.";
+ mes .@str$;
+ close2;
+ } else if (checkquest(5084) == 0 || checkquest(5084) == 1) {
+ mes "[Eryu]";
+ mes "I think you are the writer...";
+ mes "Hey~ Stop there~";
+ next;
+ mes "You've been found. Let's get away.";
+ close2;
+ } else {
+ if (malang_gamer < 6) {
+ mes "[Eryu]";
+ mes "Dirty 'Cat Gamers'!";
+ mes "I won't go back ever... Who are you?";
+ next;
+ mes "This cat might hit you. Let's get away.";
+ close2;
+ } else {
+ mes "[Eryu]";
+ mes "Aren't you the writer?";
+ emotion e_what;
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Huh... Who is that..?";
+ next;
+ mes "Eryu seems to recognize you. Let's get away.";
+ close2;
+ }
+ }
+ donpcevent "Eryu#gamer::OnDisable";
+ end;
+OnEnable:
+ enablenpc "Eryu#gamer";
+ disablenpc "Stew#gamer";
+ disablenpc "Ketchup#gamer";
+ disablenpc "Eff#gamer";
+ end;
+OnDisable:
+ switch(rand(3)) {
+ case 0:
+ donpcevent "Stew#gamer::OnEnable";
+ break;
+ case 1:
+ donpcevent "Ketchup#gamer::OnEnable";
+ break;
+ case 2:
+ donpcevent "Eff#gamer::OnEnable";
+ break;
+ }
+ end;
+}
+
+malangdo,230,197,4 script Stew#gamer 4_CAT_3COLOR,{
+ if (MaxWeight - Weight < 1000) {
+ mes "Your inventory is too heavy to proceed. Come back after lightening your load.";
+ close;
+ }
+ if (checkweight(1201,1) == 0) {
+ mes "Your inventory is too full to proceed. Come back after reducing your load.";
+ close;
+ }
+ if (checkquest(5061) == 0 || checkquest(5061) == 1) {
+ if (checkquest(5063) == -1) {
+ mes "You found Stew the cat, and start talking.";
+ next;
+ mes "[Stew]";
+ mes "Meow...? Who are you, meow?";
+ emotion e_what;
+ next;
+ switch(select("The 'Cat Gamers' Manager sent me.:Meow~ Grrr~:I'm with the 'Boom Can' Company.")) {
+ case 1:
+ mes "[Stew]";
+ mes "Stew is not interested meow.";
+ mes "Don't come back again meow~";
+ break;
+ case 2:
+ mes "[Stew]";
+ mes "Stew doesn't have time for crazy people.";
+ break;
+ case 3:
+ mes "[Stew]";
+ mes "'Boom Can' Company, meow?";
+ emotion e_what;
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "You don't know 'Boom Can' food?";
+ mes "You don't eat canned food at all?";
+ mes "Then, I came to the wrong cat.";
+ next;
+ mes "[Stew]";
+ mes "Yes meow~ Stew likes canned food very much meow~";
+ emotion e_lv;
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Ah! Ok then.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "We, the 'Boom Can' Company, have been servicing for over 10 years, so we are doing a survey for better food production.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Let me ask a few questions.";
+ mes "It is very easy.";
+ next;
+ mes "[Stew]";
+ mes "Ok meow~ Go ahead meow~";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Thank you! We were right about out cat customers with big hearts.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "I met dog customers last week and they didn't answer me at all...";
+ mes "And they were so rude~ You know.";
+ next;
+ mes "[Stew]";
+ mes "Dogs are natually like that~";
+ mes "You humans know animals~";
+ emotion e_ok;
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Thank you! I'm flattered.~";
+ mes "Ok, let me ask you a few things.";
+ mes "What is your job?";
+ next;
+ mes "[Stew]";
+ mes "Job meow? Stew was a pro gamer meow~";
+ mes "But, Stew quit now meow~";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Well, how did that happen?";
+ mes "You seem to have good skills.";
+ mes "Fast and big hearted, its a pity that you quit already.";
+ next;
+ mes "[Stew]";
+ mes "Meow~ Meow~ Meow~ Yes, Stew was something meow.";
+ mes "If it was not for that Cat Gamers Director scaring me, Stew would still be playing meow~";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "What a bad Director.";
+ next;
+ mes "[Stew]";
+ mes "Not that bad actually meow~";
+ mes "Sometimes.. Stew gets very tired meow.";
+ mes "So, Stew takes it easy while practicing meow.";
+ next;
+ mes "[Stew]";
+ mes "Then the Cat Gamers Director started to get angry and scary meow.";
+ mes "So I quit meow.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Ah! I see.";
+ mes "Ok, the survey is over now.";
+ mes "Thank you for your opinion on our survey for the 'Boom Can' company.";
+ emotion e_thx,1;
+ next;
+ mes "[Stew]";
+ mes "Meow? Did you aks anything meow?";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "I already asked you everything...";
+ mes "Don't you remember?";
+ mes "There were 10 questions!";
+ emotion e_what,1;
+ next;
+ mes "[Stew]";
+ mes "Really meow? Strange meow.";
+ mes "Sorry meow? Don't remember meow.";
+ mes "It didn't felt like an interview meow.";
+ emotion e_sry;
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Well you did way better than those dogs.";
+ mes "I don't even want to think about them~ Phew~..";
+ mes "I should get going now.";
+ mes "Have a great day.";
+ next;
+ mes "[Stew]";
+ mes "Really meow? Dogs are always like that meow.";
+ mes "Cats are winners meow~";
+ mes "Ok meow~ Good bye meow~";
+ next;
+ mes "You found out the reason why Stew left the team.";
+ mes "Let's find the other cats.";
+ setquest 5063;
+ completequest 5063;
+ break;
+ }
+ close2;
+ } else if (checkquest(5063) == 2) {
+ mes "[Stew]";
+ mes "Aren't you from the 'Boom Can' Company?";
+ mes "Another survey meow?";
+ emotion e_what;
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Oops! I should be meeting other cats.";
+ mes "I am very sorry...";
+ emotion e_sry,1;
+ next;
+ mes "[Stew]";
+ mes "It's ok meow~ Good bye meow~";
+ close2;
+ } else {
+ mes "[Stew]";
+ mes "This is not possible. Please contact an administrator.";
+ close2;
+ }
+ } else if (checkquest(5085) == 0 || checkquest(5085) == 1) {
+ mes "[Stew]";
+ mes "Who are you meow?";
+ emotion e_what;
+ next;
+ mes "What do you want to say?";
+ next;
+ input .@inputstr$;
+ if (.@inputstr$ == "Come back") {
+ erasequest 5085;
+ setquest 5086;
+ set .@str$, "You've delivered the message, so let's get away.";
+ } else
+ set .@str$, "You didn't deliver the right message, but let's still get away.";
+ mes "[Stew]";
+ mes "What is this? What do you mean by '"+.@inputstr$+"'? Meow...";
+ mes "And... Aren't you from the 'Boom Can' Company, meow?";
+ emotion e_what;
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Huh? What's that?";
+ next;
+ mes "Stew seems to recognize you.";
+ mes .@str$;
+ close2;
+ } else if (checkquest(5086) == 0 || checkquest(5086) == 1) {
+ mes "[Stew]";
+ mes "I think you are from the 'Boom Can' Company, meow... Who are you, meow~";
+ next;
+ mes "Stew seems to recognize you. Let's get away.";
+ close2;
+ } else {
+ if (malang_gamer < 6) {
+ mes "[Stew]";
+ mes "Meow Meow~ Good bye to 'Cat Gamer's meow~ Who are you meow?";
+ next;
+ mes "This cat might hit you. Let's get away.";
+ close2;
+ } else {
+ mes "[Stew]";
+ mes "The 'Boom Can' Company!!";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Huh? What's that?";
+ next;
+ mes "Stew seems to recognize you. Let's get away.";
+ close2;
+ }
+ }
+ donpcevent "Stew#gamer::OnDisable";
+ end;
+OnInit:
+ disablenpc "Stew#gamer";
+ end;
+OnEnable:
+ disablenpc "Eryu#gamer";
+ enablenpc "Stew#gamer";
+ disablenpc "Ketchup#gamer";
+ disablenpc "Eff#gamer";
+ end;
+OnDisable:
+ switch(rand(3)) {
+ case 0:
+ donpcevent "Eryu#gamer::OnEnable";
+ break;
+ case 1:
+ donpcevent "Ketchup#gamer::OnEnable";
+ break;
+ case 2:
+ donpcevent "Eff#gamer::OnEnable";
+ break;
+ }
+ end;
+}
+
+malangdo,244,144,4 script Ketchup#gamer 4_CAT_SAILOR3,{
+ if (MaxWeight - Weight < 1000) {
+ mes "Your inventory is too heavy to proceed. Come back after lightening your load.";
+ close;
+ }
+ if (checkweight(1201,1) == 0) {
+ mes "Your inventory is too full to proceed. Come back after reducing your load.";
+ close;
+ }
+ if (checkquest(5061) == 0 || checkquest(5061) == 1) {
+ if (checkquest(5064) == -1) {
+ mes "You found Ketchup the cat, and start talking.";
+ next;
+ mes "[Ketchup]";
+ mes "Meow...? Who are you?";
+ emotion e_what;
+ next;
+ switch(select("Grrr~ Bow wow~:The Game Director cat sent me.:I'm from 'Cans for Kittens'.")) {
+ case 1:
+ mes "[Ketchup]";
+ mes "What the dog? Hiss~";
+ break;
+ case 2:
+ mes "[Ketchup]";
+ mes "Get away from me, human, before I get really angry~";
+ break;
+ case 3:
+ mes "[Ketchup]";
+ mes "Oh yeah? 'Cans for Kittens'?";
+ emotion e_what;
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "I want to share some of our philosophy with you.";
+ mes "Do you believe in giving to others?";
+ emotion e_what,1;
+ next;
+ mes "[Ketchup]";
+ mes "Umm I guess so...";
+ emotion e_slur;
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "'Cans for Kittens' is a religion that embraces all felines.";
+ mes "Bow before the Lord of Cans!";
+ next;
+ mes "[Ketchup]";
+ mes "...";
+ next;
+ mes "[Ketchup]";
+ mes "...";
+ mes "......";
+ next;
+ mes "[Ketchup]";
+ mes "...";
+ mes "......";
+ mes ".........";
+ mes "What's the Lord of Cans?";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Your name is Ketchup, right? Don't you know about the Lord of Cans?";
+ mes "He knows everything.";
+ mes "Do not try to fool him and bow!";
+ next;
+ mes "[Ketchup]";
+ mes "Meow?! How can you know my name? Wow...";
+ next;
+ mes "[Ketchup]";
+ mes "I am sorry. Really sorry.";
+ mes "Please forgive me Lord of Cans.";
+ emotion e_sob;
+ next;
+ mes "[Ketchup]";
+ mes "That Director Cat was so scary~!";
+ mes "I said so many bad things when I left the Cat Gamers...";
+ mes "Please forgive.";
+ emotion e_sob;
+ next;
+ emotion e_dots;
+ emotion e_dots,1;
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "The Lord of Cans forgives Ketchup's sins.";
+ mes "Our Lord also wants you to stop swearing and live an honest life!";
+ next;
+ mes "[Ketchup]";
+ mes "Thank you Lord of Cans.";
+ mes "I will live a kind cat life from this point on.";
+ next;
+ mes "You found out why did Ketchup left the Cat gamers.";
+ mes "Let's look for the other cats.";
+ setquest 5064;
+ completequest 5064;
+ break;
+ }
+ close2;
+ } else if (checkquest(5064) == 2) {
+ mes "[Ketchup]";
+ mes "You are...";
+ emotion e_omg;
+ next;
+ mes "Ketchup gives you an apologetic look and runs away.";
+ mes "He probably did something bad already.";
+ close2;
+ } else {
+ mes "[Ketchup]";
+ mes "This is not possible. Please contact an administrator.";
+ close2;
+ }
+ } else if (checkquest(5087) == 0 || checkquest(5087) == 1) {
+ mes "[Ketchup]";
+ mes "Who are you?";
+ emotion e_what;
+ next;
+ mes "What do you want to say?";
+ next;
+ input .@inputstr$;
+ if (.@inputstr$ == "Come back") {
+ erasequest 5087;
+ setquest 5088;
+ mes "[Ketchup]";
+ mes "What is this? What do you mean by 'Come back'...?";
+ mes "Can... 'Cans for Kittens'?";
+ emotion e_omg;
+ emotion e_what;
+ next;
+ mes "Ketchup recognized you and ran away.";
+ mes "You've delivered the message.";
+ close2;
+ } else {
+ mes "[Ketchup]";
+ mes "What is this? What do you mean by '"+.@inputstr$+"'...?";
+ mes "Can... 'Cans for Kittens'?";
+ emotion e_omg;
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Huh? What's that?";
+ next;
+ mes "Ketchup recognized you and ran away.";
+ mes "It seems you need to find Ketchup one more time.";
+ close2;
+ }
+ } else if (checkquest(5088) == 0 || checkquest(5088) == 1) {
+ mes "[Ketchup]";
+ mes "Can... 'Cans for Kittens'?";
+ emotion e_omg;
+ next;
+ mes "Ketchup ran away once again.";
+ close2;
+ } else {
+ if (malang_gamer < 6) {
+ mes "[Ketchup]";
+ mes "Dirty 'Cat Gamers'!";
+ mes "I will never come back, for sure... Who are you?";
+ next;
+ mes "This cat might hit you. Let's get away.";
+ close2;
+ } else {
+ mes "[Ketchup]";
+ mes "Can... 'Cans for Kittens'?";
+ next;
+ mes "Ketchup ran away.";
+ close2;
+ }
+ }
+ donpcevent "Ketchup#gamer::OnDisable";
+ end;
+OnInit:
+ disablenpc "Ketchup#gamer";
+ end;
+OnEnable:
+ disablenpc "Eryu#gamer";
+ disablenpc "Stew#gamer";
+ enablenpc "Ketchup#gamer";
+ disablenpc "Eff#gamer";
+ end;
+OnDisable:
+ switch(rand(3)) {
+ case 0:
+ donpcevent "Stew#gamer::OnEnable";
+ break;
+ case 1:
+ donpcevent "Eryu#gamer::OnEnable";
+ break;
+ case 2:
+ donpcevent "Eff#gamer::OnEnable";
+ break;
+ }
+ end;
+}
+
+malangdo,181,119,7 script Eff#gamer 4_CAT_ADV2,{
+ if (MaxWeight - Weight < 1000) {
+ mes "Your inventory is too heavy to proceed. Come back after lightening your load.";
+ close;
+ }
+ if (checkweight(1201,1) == 0) {
+ mes "Your inventory is too full to proceed. Come back after reducing your load.";
+ close;
+ }
+ if (checkquest(5061) == 0 || checkquest(5061) == 1) {
+ if (checkquest(5065) == -1) {
+ mes "You found Eff the cat, and start talking.";
+ next;
+ mes "[Eff]";
+ mes "Who are you meow?";
+ emotion e_what;
+ next;
+ switch(select("I have some good investment news...:A... Cat?:The 'Cat Gamers' Director sent me...")) {
+ case 1:
+ mes "[Eff]";
+ mes "Investment info? Meow~?";
+ mes "What is that? Meow~?";
+ emotion e_what;
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Interested, huh?";
+ mes "This is classified information.";
+ mes "You won't get it from any other human.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Haha! You are lucky today.";
+ mes "You heard that land can be a good investment, right?";
+ emotion e_what,1;
+ next;
+ mes "[Eff]";
+ mes "Oh oh~ I think so. Meow~";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "You do know about our capital Prontera, don't you?";
+ next;
+ mes "[Eff]";
+ mes "Prontera meow? Yes, I know about it. Meow~";
+ emotion e_heh;
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "There are some locations where";
+ mes "Prontera kingdom is secretly selling...";
+ next;
+ mes "[Eff]";
+ mes "And... And...?? Meow~";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Hmm, this is top secret.";
+ mes "Something that must not be revealed at all...";
+ mes "Can you really keep this secret...?";
+ emotion e_what,1;
+ next;
+ mes "[Eff]";
+ mes "Well... I've always been known for being a good keeper of secrets meow.";
+ mes "Meow~ Don't worry at all. Meow~";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Ok, I believe you, Eff...";
+ mes "Please keep this a secret.";
+ next;
+ mes "[Eff]";
+ mes "I got it. Meow~";
+ emotion e_ok;
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Well, I heard that there is a location in Juno where underground big shots will be investing about 10,000,000,000 zeny.";
+ mes "And it is now available for pre-investment.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "If you invest in 1 Can food here, the outcome will be enormous.";
+ next;
+ mes "[Eff]";
+ mes "Enor... mous... meow...?";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "100 Cans!!";
+ mes "You will get 100 cans for investing just 1 can food!";
+ mes "The profit will be X100! X100!!";
+ next;
+ mes "[Eff]";
+ mes "Woot!! 100 Cans~ Meow~";
+ emotion e_omg;
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "So, how many cans do you want to invest?";
+ mes "You'll be a part owner so make sure to invest the max that you can afford.";
+ emotion e_what,1;
+ next;
+ mes "[Eff]";
+ mes "I want to invest.";
+ mes "But, I don't have cans with me. Meow~";
+ emotion e_sob;
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "You can always get a loan!!";
+ mes "This a like 100 times result for sure!!";
+ mes "How can you loose a chance like this?";
+ mes "You should do whatever it takes!";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "You know what..? They say some careers like pro gamers can get solid loans.";
+ mes "Like about 1,000 can loan at once.";
+ mes "Without a high interest rate!";
+ next;
+ mes "[Eff]";
+ mes "Meow!! 1... 1,000...";
+ mes "Moew~ I am a Pro Gamer.";
+ mes "Meow~ But, I quit~ Meow~";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "What!! Why would you quit such good a gig!! Are you crazy?";
+ emotion e_omg,1;
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Let's say we invest 1,000 cans after getting that loan.";
+ mes "One, Ten, Hundred, Tousand. Woot!";
+ mes "I can't believe this.";
+ mes "The result will be 100,000 cans, 100,000!!";
+ next;
+ mes "[Eff]";
+ mes "1... 100,000 cans... Meow~";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "So tell me... Why did you quit such a great job?";
+ mes "Why?";
+ next;
+ mes "[Eff]";
+ mes "I was afraid of the Director Cat there...";
+ mes "Meow~ This one time, I had to take a sick day.";
+ mes "Meow~ And I haven't seen such scary cat my entire life...";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "So you quit because Cat Gamers Director was so scary. Hmm, sorry but I can't let you in on this investment...";
+ mes "I guess... What a waste of time!";
+ mes "Good bye!";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Oh and don't tell anyone what I just told you!";
+ mes "Bye~";
+ next;
+ mes "You found out why Eff has left the team.";
+ mes "Now, let's find the other cats.";
+ setquest 5065;
+ completequest 5065;
+ break;
+ case 2:
+ mes "[Eff]";
+ mes "Yes. I am a cat.";
+ mes "Meow~ Do you think I am a dog?";
+ mes "Meow~ You are a strange human. Meow~";
+ break;
+ case 3:
+ mes "[Eff]";
+ mes "Seeing as this is like the first time I met you.";
+ mes "I'll forgive you today. Meow.";
+ mes "Meow~ Don't even think about bringing up that name to me again...";
+ break;
+ }
+ close2;
+ } else if (checkquest(5065) == 2) {
+ mes "[Eff]";
+ mes "You are--!!";
+ mes "Meow~ I want to invest. Meow~";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Not without the cans you can't!!";
+ mes "You didn't tell anyone about this deal, right?";
+ next;
+ mes "[Eff]";
+ mes "I didn't. Meow~";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Ok, good cat! Never!!";
+ mes "Tell this to other cats!~";
+ mes "Bye Bye~";
+ close2;
+ } else {
+ mes "[Eff]";
+ mes "This is not possible. Please contact an administrator.";
+ close2;
+ }
+ } else if (checkquest(5089) == 0 || checkquest(5089) == 1) {
+ mes "[Eff]";
+ mes "Who are you, meow?";
+ next;
+ mes "What do you want to say?";
+ next;
+ input .@inputstr$;
+ if (.@inputstr$ == "Come back") {
+ erasequest 5089;
+ setquest 5090;
+ set .@str$, "You've delivered the message, so let's get away.";
+ } else
+ set .@str$, "You didn't deliver the right message, but let's still get away.";
+ mes "[Eff]";
+ mes "What is this? What do you mean by '"+.@inputstr$+"'? Meow...";
+ mes "Meow...? Meow! You! Investor meow?";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Huh? Who...?";
+ next;
+ mes "Eff seems to recognize you.";
+ mes .@str$;
+ close2;
+ } else if (checkquest(5090) == 0 || checkquest(5090) == 1) {
+ mes "[Eff]";
+ mes "You are--!!";
+ mes "Meow~ I want to invest. Meow~";
+ next;
+ mes "Eff seems to recognize you, so let's get away.";
+ close2;
+ } else {
+ if (malang_gamer < 6) {
+ mes "[Eff]";
+ mes "Meow Meow~ 'Cat Gamers' can say good bye to me, meow.";
+ mes "Meow... Who are you meow?";
+ next;
+ mes "This cat might hit you. Let's get away.";
+ close2;
+ } else {
+ mes "[Eff]";
+ mes "Meow~ I want to invest. Meow~";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Huh? Who...?";
+ next;
+ mes "Eff seems to recognize you, so let's get away.";
+ close2;
+ }
+ }
+ donpcevent "Eff#gamer::OnDisable";
+ end;
+OnInit:
+ disablenpc "Eff#gamer";
+ end;
+OnEnable:
+ disablenpc "Eryu#gamer";
+ disablenpc "Stew#gamer";
+ disablenpc "Ketchup#gamer";
+ enablenpc "Eff#gamer";
+ end;
+OnDisable:
+ switch(rand(3)) {
+ case 0:
+ donpcevent "Stew#gamer::OnEnable";
+ break;
+ case 1:
+ donpcevent "Ketchup#gamer::OnEnable";
+ break;
+ case 2:
+ donpcevent "Eryu#gamer::OnEnable";
+ break;
+ }
+ end;
+}
+
+mal_in01,91,216,4 script Ser#gamer 4_CAT_SAILOR1,{
+ if (MaxWeight - Weight < 1000) {
+ mes "Your inventory is too heavy to proceed. Come back after lightening your load.";
+ close;
+ }
+ if (checkweight(1201,1) == 0) {
+ mes "Your inventory is too full to proceed. Come back after reducing your load.";
+ close;
+ }
+ for(set .@i,5074; .@i<=5090; set .@i,.@i+1) {
+ if (checkquest(.@i) > -1) {
+ mes "[Ser]";
+ mes "Hey, ^0000FF"+strcharinfo(0)+"^000000. You haven't done what we asked you for. A promise is a promise, you know.";
+ next;
+ mes "[Ser]";
+ mes "Ah!! When you are done, please get checked by the Cat Gamers Director over there.";
+ close;
+ }
+ }
+ if (malang_gamer < 20) {
+ if (countitem(2872)) {
+ mes "[Ser]";
+ mes "You seem like a first timer! Where did you get the certificate? Someone lost it, I guess.";
+ close;
+ }
+ mes "[Ser]";
+ mes "Rock Paper Scissors is a serious game. When will our practicing partner come?";
+ close;
+ }
+ if (!isequipped(2872)) {
+ mes "[Ser]";
+ mes "Oh, ^0000FF"+strcharinfo(0)+"^000000? Want to play the Rock Paper Scissors game?";
+ next;
+ mes "[Ser]";
+ mes "... ... ...";
+ next;
+ mes "[Ser]";
+ mes "Where is your Cat Gamers Certificate? It seems like nothing, but you can't play this game without it!";
+ next;
+ mes "[Ser]";
+ mes "Please go get the certificate.";
+ close;
+ }
+ if (checkquest(5070,PLAYTIME) == 0 || checkquest(5070,PLAYTIME) == 1) {
+ mes "[Ser]";
+ mes "Is it tomorrow already? I don't think so! Can't you read the time?";
+ close;
+ } else if (checkquest(5070,PLAYTIME) == 2)
+ erasequest 5070;
+ mes "[Ser]";
+ mes "Oh, ^0000FF"+strcharinfo(0)+"^000000? Want to play the Rock Paper Scissors game?";
+ next;
+ switch(select("Play the game.:Say hi.:Ask about the game rules.")) {
+ case 1:
+ mes "[Ser]";
+ mes "Good idea.";
+ next;
+ break;
+ case 2:
+ mes "[Ser]";
+ mes "Oh! Ok, hi? But, why now?";
+ next;
+ mes "[Ser]";
+ mes "Ah... You are bored? Why don't you play a game with me?";
+ next;
+ mes "[Ser]";
+ mes "Hey, you! Don't neglect the Rock Paper Scissors game!!";
+ mes "I've seen many people getting their butts kicked in this game!!";
+ next;
+ mes "[Ser]";
+ mes "You better mark my words, if you don't want to end up like them!~";
+ close;
+ case 3:
+ mes "[Ser]";
+ mes "You don't even know how to play this game?";
+ mes "Let me kindly teach you.";
+ next;
+ mes "[Ser]";
+ mes "Scissors beats Paper,";
+ emotion e_scissors;
+ emotion e_paper,1;
+ next;
+ mes "[Ser]";
+ mes "Paper beats Rock,";
+ emotion e_paper;
+ emotion e_rock,1;
+ next;
+ mes "[Ser]";
+ mes "And Rock beats Scissors.";
+ emotion e_rock;
+ emotion e_scissors,1;
+ next;
+ mes "[Ser]";
+ mes "Ok? Got it now?";
+ next;
+ mes "[Ser]";
+ mes "You must play 5 matches with me.";
+ mes "We go again if the game is even!!";
+ next;
+ mes "[Ser]";
+ mes "I will give you a present if you beat me 3 times. Ok?";
+ next;
+ mes "[Ser]";
+ mes "Ok, then. Go away.";
+ close;
+ }
+ setarray .@rps$[0], "Rock", "Paper", "Scissors";
+ setarray .@emote[0], e_rock, e_paper, e_scissors;
+ setarray .@count$[0],"First","Second","Third","Fourth","Last";
+ while(1) {
+ mes "[Ser]";
+ mes .@count$[.@match]+" match ~~";
+ if (.@tie) {
+ mes "Result is even, so we play again.";
+ set .@tie,0;
+ }
+ mes "Try your best!";
+ next;
+ mes "[Ser & "+strcharinfo(0)+"]";
+ mes "Rock! Paper! Scissors!";
+ next;
+
+ set .@pc, select("Rock:Paper:Scissors")-1;
+ set .@npc, rand(3);
+ emotion .@emote[.@pc],1;
+ emotion .@emote[.@npc];
+ mes "["+strcharinfo(0)+"] "+.@rps$[.@pc];
+ mes "--------------------------------";
+ mes "[Ser] "+.@rps$[.@npc];
+ if (.@pc == .@npc) {
+ set .@tie,1;
+ set .@result$, "Hmm, we are even. Let's play again.";
+ } else if ((.@pc == 0 && .@npc == 2) || (.@pc == 1 && .@npc == 0) || (.@pc == 2 && .@npc == 1)) {
+ set .@match, .@match+1;
+ set .@win, .@win+1;
+ set .@result$, "I lost!";
+ } else {
+ set .@match, .@match+1;
+ set .@loss, .@loss+1;
+ set .@result$, "So I win!!";
+ }
+ next;
+ mes "[Ser]";
+ mes "You were "+.@rps$[.@pc]+", I was "+.@rps$[.@npc]+"~";
+ mes .@result$;
+ next;
+ if (.@match == 5) break;
+ }
+ mes "[Ser]";
+ mes "All 5 matches are over!!";
+ next;
+ mes "[Ser]";
+ mes "Hmm... Let me see...";
+ mes "I won "+.@loss+" times, and you, "+strcharinfo(0)+", won "+.@win+" times, right?";
+ next;
+ if (.@win > .@loss) {
+ mes "[Ser]";
+ mes strcharinfo(0)+" has won the game.";
+ next;
+ mes "Ser became polite all of a sudden.";
+ next;
+ mes "[Ser]";
+ mes "Great game it was. I admire your enthusiasm for the game. So, I want to give you my precious Can as a present.";
+ next;
+ switch(select("I don't need it!:Thank you.")) {
+ case 1:
+ mes "[Ser]";
+ mes "Just take it!! Do as I say~";
+ break;
+ case 2:
+ mes "[Ser]";
+ mes "You are polite. But, sadly this is all I can give you.";
+ break;
+ }
+ next;
+ mes "[Ser]";
+ mes "Good bye~ Come back tomorrow for more practice~";
+ if (.@win == 5) {
+ mes "Oh! You won all 5 matches. Here are some more extra Cans.";
+ getitem 12636,10; //Malang_Sp_Can
+ } else
+ getitem 12636,5; //Malang_Sp_Can
+ setquest 5070;
+ close;
+ }
+ mes "[Ser]";
+ mes strcharinfo(0)+" has lost. Ha... Ha...";
+ next;
+ mes "Ser became very arrogant.";
+ next;
+ mes "[Ser]";
+ mes "You want to play with me? Ser? With that skill of yours? Meow?";
+ next;
+ mes "[Ser]";
+ mes "What? Present? How can you ask for such a thing when you lose? Go practice more!! Work!! Yes, I should make you do this!!";
+ next;
+ setquest 5070;
+ switch(rand(1,13)) {
+ case 1:
+ setquest 5074;
+ mes "[Ser]";
+ mes "Hmm. Do you know a fish named Phen? Do you? Isn't it a delicious looking fish?";
+ next;
+ mes "- Chrub -";
+ mes "Ser wipes the drool from his mouth.";
+ next;
+ mes "[Ser]";
+ mes "Go catch 30 Phens. And also get me 10 Fish Tails. Get them to our Director cat, and he will make a delicious dish with them.";
+ close;
+ case 2:
+ setquest 5075;
+ mes "[Ser]";
+ mes "Lately, I've felt powerless and that there's too much weight on me. I should take care of my health.";
+ next;
+ mes "[Ser]";
+ mes "Now it's time for some healthy food.";
+ next;
+ mes "[Ser]";
+ mes "Get 50 Marse and 25 Milk to our Cat Gamers Director. He has excellent knowledge on healthy foods.";
+ close;
+ case 3:
+ setquest 5076;
+ mes "[Ser]";
+ mes "Well... we do have a rival, you know. They are 'Dog n Waltz', and everything goes wrong when they come around.";
+ next;
+ mes "[Ser]";
+ mes "I would ask you to bully them, but I suppose that's illegal... So, please at least harass similar looking monsters. What would be a good target?";
+ next;
+ mes "[Ser]";
+ mes "Oh, that archer among Kobolds!! I hate those the most. Go harass 30 Kobold Archers, and report to our Cat Gamers Director.";
+ close;
+ case 4:
+ setquest 5077;
+ mes "[Ser]";
+ mes "What is most important for winning the game? It is quickness. What should we do to get faster?";
+ next;
+ mes "[Ser]";
+ mes "I've been thinking... The best way for us cats is obviously catching rats.";
+ next;
+ mes "[Ser]";
+ mes "You know Cramp, right? That blue chubby creature... Please go catch 10 of them, and report to our Cat Gamers Director.";
+ close;
+ case 5:
+ setquest 5078;
+ mes "[Ser]";
+ mes "Ah... I want some bird cuisine. Which one would be most delicious?";
+ next;
+ mes "[Ser]";
+ mes "Picky? Ah! It's too small. How about Condor? I am not sure... Peco Peco?";
+ next;
+ mes "[Ser]";
+ mes "Alright! Please catch 50 Peco Pecos and get them to our Cat Gamers Director. We shall have a party with bird cuisine tonight.";
+ close;
+ case 6:
+ setquest 5079;
+ mes "[Ser]";
+ mes "I get too nervous before the game. And I don't play well when I'm nervous. I need something to calm down before the game starts.";
+ next;
+ mes "[Ser]";
+ mes "Oh! That's right! Yarn! I used to play with Yarn when I was young. Wasn't able to have that kind of relaxation after joining the 'Cat Gamers'.";
+ next;
+ mes "[Ser]";
+ mes "Please get 20 Yarns for me. Why 20? There are many other cats with the same issue. Our Director should take care of this for you.";
+ close;
+ case 7:
+ setquest 5080;
+ mes "[Ser]";
+ mes "Recently, our Director seems to have been trying to cut some expenses. Or is the manager taking advantage?";
+ next;
+ mes "[Ser]";
+ mes "Regular snacks for our players have been reduced. You should go get 30 Rat Tails, and give them to our Cat Gamers Director.";
+ next;
+ mes "[Ser]";
+ mes "Then, we shall find out if our manager is being greedy or not.";
+ close;
+ case 8:
+ setquest 5081;
+ mes "[Ser]";
+ mes "I am having a slump these days. I can't give my 100% to the game.";
+ next;
+ mes "[Ser]";
+ mes "It is the lemon we need in times like this.";
+ next;
+ mes "[Ser]";
+ mes "Please get 5 lemons for me. Don't forget, I need 5 Lemons... Our Cat Gamers Director should know what to do with them.";
+ close;
+ case 9:
+ setquest 5082;
+ mes "[Ser]";
+ mes "Malangdo is a good place for a cat to live. But, it gets very hot when we play games.";
+ next;
+ mes "[Ser]";
+ mes "When we are playing a lot, it gets really crazy hot, hard for us to bear. You know how hysterical we cats can be, right?";
+ next;
+ mes "[Ser]";
+ mes "Please get us either 10 Ice Pieces or 10 Ice Creams. Our Cat Gamers Director should know what to do with them.";
+ close;
+ case 10:
+ setquest 5083;
+ mes "[Ser]";
+ mes "I can see that you also need some rest. Feel free to relax for a while. How about taking a walk around the village? I insist~!";
+ next;
+ mes "[Ser]";
+ mes "But, it is no fun to just walk around the village. Hmm... Right!! Why don't you go ahead and meet a cat named Eryu?";
+ next;
+ mes "[Ser]";
+ mes "Oh! And when you meet the cat, make sure to say 'Come back'. That is the password. And don't forget to tell our Director I was with you all the time!!";
+ close;
+ case 11:
+ setquest 5085;
+ mes "[Ser]";
+ mes "I can see that you also need some rest. Feel free to relax for a while. How about taking a walk around the village? I insist~!";
+ next;
+ mes "[Ser]";
+ mes "But, it is no fun to just walk around the village. Hmm... Right!! Why don't you go ahead and meet a cat named Stew?";
+ next;
+ mes "[Ser]";
+ mes "Oh! And when you meet the cat, make sure to say 'Come back'. That is the password. And don't forget to tell our Director I was with you all the time!!";
+ close;
+ case 12:
+ setquest 5087;
+ mes "[Ser]";
+ mes "I can see that you also need some rest. Feel free to relax for a while. How about taking a walk around the village? I insist~!";
+ next;
+ mes "[Ser]";
+ mes "But, it is no fun to just walk around the village. Hmm... Right!! Why don't you go ahead and meet a cat named Ketchup?";
+ next;
+ mes "[Ser]";
+ mes "Oh! And when you meet the cat, make sure to say 'Come back'. That is the password. And don't forget to tell our Director I was with you all the time!!";
+ close;
+ case 13:
+ setquest 5089;
+ mes "[Ser]";
+ mes "I can see that you also need some rest. Feel free to relax for a while. How about taking a walk around the village? I insist~!";
+ next;
+ mes "[Ser]";
+ mes "But, it is no fun to just walk around the village. Hmm... Right!! Why don't you go ahead and meet a cat named Eff?";
+ next;
+ mes "[Ser]";
+ mes "Oh! And when you meet the cat, make sure to say 'Come back'. That is the password. And don't forget to tell our Director I was with you all the time!!";
+ close;
+ }
+}
+
+mal_in01,86,222,4 script Paa#gamer 4_CAT_SAILOR1,{
+ if (MaxWeight - Weight < 1000) {
+ mes "Your inventory is too heavy to proceed. Come back after lightening your load.";
+ close;
+ }
+ if (checkweight(1201,1) == 0) {
+ mes "Your inventory is too full to proceed. Come back after reducing your load.";
+ close;
+ }
+ for(set .@i,5074; .@i<=5090; set .@i,.@i+1) {
+ if (checkquest(.@i) > -1) {
+ mes "[Paa]";
+ mes "You haven't done what we asked you for meow. A promise is a promise, you know meow.";
+ next;
+ mes "[Paa]";
+ mes "When you are done meow, please get checked by the Cat Gamers Director over there meow.";
+ close;
+ }
+ }
+ if (malang_gamer < 20) {
+ if (countitem(2872)) {
+ mes "[Paa]";
+ mes "You seem like a first timer meow! Where did you get the certificate meow? Someone lost it, I guess meow.";
+ close;
+ }
+ mes "[Paa]";
+ mes "When is our practicing partner coming meow? I am bored meow.";
+ close;
+ }
+ if (!isequipped(2872)) {
+ mes "[Paa]";
+ mes "Oh, ^0000FF"+strcharinfo(0)+"^000000 meow? Want to play the Rock Paper Scissors game meow?";
+ next;
+ mes "[Paa]";
+ mes "... ... ...";
+ next;
+ mes "[Paa]";
+ mes "Where is your Cat Gamers Certificate meow? It seems like nothing, but you can't play this game without it meow!";
+ next;
+ mes "[Paa]";
+ mes "Go get the certificate meow.";
+ close;
+ }
+ if (checkquest(5070,PLAYTIME) == 0 || checkquest(5070,PLAYTIME) == 1) {
+ mes "[Paa]";
+ mes "We can only play the game once a day meow. Come tomorrow meow.";
+ close;
+ } else if (checkquest(5070,PLAYTIME) == 2)
+ erasequest 5070;
+ mes "[Paa]";
+ mes "Oh, ^0000FF"+strcharinfo(0)+"^000000 meow? Want to play the Rock Paper Scissors game meow?";
+ next;
+ switch(select("Play the game.:Say hi.:Ask about the game rules.")) {
+ case 1:
+ mes "[Paa]";
+ mes "Good idea meow.";
+ next;
+ break;
+ case 2:
+ mes "[Paa]";
+ mes "Hello meow~ Nice to see you meow~";
+ next;
+ mes "[Paa]";
+ mes "Other games have one cat player. But, we have two for Rock Paper Scissors. You want to know why meow?";
+ next;
+ mes "[Paa]";
+ mes "Paa is kind meow. So, I'll tell you story meow.";
+ next;
+ mes "[Paa]";
+ mes "Ser cat is my twin brother. I was born first, but he always says he is the elder meow. But, I don't fight with Ser meow. I am a good brother meow.";
+ next;
+ mes "[Paa]";
+ mes "Anyways, me and Ser are well known as the pro gamer cat brothers meow. Everyone knows us meow.";
+ next;
+ mes "[Paa]";
+ mes "You are free to admire me, meow. I give you permission meow.";
+ close;
+ case 3:
+ mes "[Paa]";
+ mes "You want to know how to play this game meow? I'll teach you because I am a kind cat meow~";
+ next;
+ mes "[Paa]";
+ mes "You don't seem that stupid meow. So, let's skip the part about what beats what meow.";
+ next;
+ mes "[Paa]";
+ mes "You must play 5 matches with me meow. We go again if the game is even meow.";
+ next;
+ mes "[Paa]";
+ mes "If you win 3 times, I'll give you a present meow~ Cat Gamers Director said so meow.";
+ next;
+ mes "[Paa]";
+ mes "That is all meow~ But it is not an easy game meow. Respect the game meow~";
+ close;
+ }
+ setarray .@rps$[0], "Rock", "Paper", "Scissors";
+ setarray .@emote[0], e_rock, e_paper, e_scissors;
+ setarray .@count$[0],"First","Second","Third","Fourth","Last";
+ while(1) {
+ mes "[Paa]";
+ mes .@count$[.@match]+" match ~~ meow.";
+ if (.@tie) {
+ mes "Result is even, so we play again meow.";
+ set .@tie,0;
+ }
+ mes "Try your best meow!";
+ next;
+ mes "[Ser & "+strcharinfo(0)+"]";
+ mes "Rock! Paper! Scissors!";
+ next;
+
+ set .@pc, select("Rock:Paper:Scissors")-1;
+ set .@npc, rand(3);
+ emotion .@emote[.@pc],1;
+ emotion .@emote[.@npc];
+ mes "["+strcharinfo(0)+"] "+.@rps$[.@pc];
+ mes "--------------------------------";
+ mes "[Ser] "+.@rps$[.@npc];
+ if (.@pc == .@npc) {
+ set .@tie,1;
+ set .@result$, "Hmm, we are even. Let's play again meow.";
+ } else if ((.@pc == 0 && .@npc == 2) || (.@pc == 1 && .@npc == 0) || (.@pc == 2 && .@npc == 1)) {
+ set .@match, .@match+1;
+ set .@win, .@win+1;
+ set .@result$, "I lost meow!";
+ } else {
+ set .@match, .@match+1;
+ set .@loss, .@loss+1;
+ set .@result$, "So I win meow!!";
+ }
+ next;
+ mes "[Paa]";
+ mes "You were "+.@rps$[.@pc]+", I was "+.@rps$[.@npc]+"~";
+ mes .@result$;
+ next;
+ if (.@match == 5) break;
+ }
+ mes "[Paa]";
+ mes "Meow!! All 5 matches are over meow!!";
+ next;
+ mes "[Paa]";
+ mes "Let me see meow...";
+ mes "I won "+.@loss+" times meow, and you, "+strcharinfo(0)+", won "+.@win+" times, right meow?";
+ next;
+ if (.@win > .@loss) {
+ mes "[Paa]";
+ mes "You won meow.";
+ next;
+ mes "Paa became polite all of a sudden.";
+ next;
+ mes "[Paa]";
+ mes "Great game it was meow. I admire your enthusiasm for the game meow. So, I want to give you my precious Can as a present meow.";
+ next;
+ switch(select("I don't need it!:Thank you.")) {
+ case 1:
+ mes "[Paa]";
+ mes "Just take it meow!! Do as I say meow~";
+ break;
+ case 2:
+ mes "[Paa]";
+ mes "You are polite meow. But, sadly this is all I can give you meow.";
+ break;
+ }
+ next;
+ mes "[Paa]";
+ mes "Good bye meow~ Come back tomorrow for more practice meow~";
+ if (.@win == 5) {
+ mes "Oh! You won all 5 matches meow. Here are some more extra Cans meow!";
+ getitem 12636,10; //Malang_Sp_Can
+ } else
+ getitem 12636,5; //Malang_Sp_Can
+ setquest 5070;
+ close;
+ }
+ mes "[Paa]";
+ mes "You lost. Meow... Meow...";
+ next;
+ mes "Paa became very arrogant.";
+ next;
+ mes "[Paa]";
+ mes "You want to play with me? Paa? With that skill of yours? Meow?";
+ next;
+ mes "[Paa]";
+ mes "What? Present meow? How can you ask for such a thing meow? You lost meow! Go practice more!! Work!! Yes, I should make you do this meow!!";
+ next;
+ setquest 5070;
+ switch(rand(1,13)) {
+ case 1:
+ setquest 5074;
+ mes "[Paa]";
+ mes "Hmm. Do you know a fish named Phen meow? Do you? Isn't it a delicious looking fish meow?";
+ next;
+ mes "- Chrub -";
+ mes "Paa wipes the drool from his mouth.";
+ next;
+ mes "[Paa]";
+ mes "Go catch 30 Phens meow. And also get me 10 Fish Tails meow. Get them to our Director cat, and he will make a delicious dish with them meow.";
+ close;
+ case 2:
+ setquest 5075;
+ mes "[Paa]";
+ mes "Lately, I've felt powerless and that there's too much weight on me meow. I should take care of my health meow.";
+ next;
+ mes "[Paa]";
+ mes "Now it's time for some healthy food meow.";
+ next;
+ mes "[Paa]";
+ mes "Get 50 Marse and 25 Milk to our Cat Gamers Director meow. He has excellent knowledge on healthy foods meow.";
+ close;
+ case 3:
+ setquest 5076;
+ mes "[Paa]";
+ mes "We do have a rival, you know meow. They are 'Dog n Waltz', and everything goes wrong when they come around meow.";
+ next;
+ mes "[Paa]";
+ mes "I would ask you to bully them, but I suppose that's illegal meow... So, I will ask you to harass similar looking monsters meow.";
+ next;
+ mes "[Paa]";
+ mes "Oh, that archer among Kobolds meow!! I hate those the most. Go harass 30 Kobold Archers, and report to our Cat Gamers Director meow.";
+ close;
+ case 4:
+ setquest 5077;
+ mes "[Paa]";
+ mes "What is most important for winning the game meow? It is quickness. What should we do to get faster meow?";
+ next;
+ mes "[Paa]";
+ mes "I've been thinking meow... The best way for us cats is obviously catching rats meow.";
+ next;
+ mes "[Paa]";
+ mes "You know Cramp, right meow? That blue chubby creature meow... Please go catch 10 of them, and report to our Cat Gamers Director meow.";
+ close;
+ case 5:
+ setquest 5078;
+ mes "[Paa]";
+ mes "Chrub... I want some bird cuisine meow. Which one would be most delicious meow?";
+ next;
+ mes "[Paa]";
+ mes "Picky? Ah! It's too small meow. How about Condor? I am not sure... Peco Peco meow?";
+ next;
+ mes "[Paa]";
+ mes "Alright meow! Please catch 50 Peco Pecos and get them to our Cat Gamers Director meow. We shall have a party with bird cuisine tonight meow.";
+ close;
+ case 6:
+ setquest 5079;
+ mes "[Paa]";
+ mes "I get too nervous before the game meow. And I don't play well when I'm nervous meow. I need something to calm down before the game starts meow.";
+ next;
+ mes "[Paa]";
+ mes "Oh! That's right meow! Yarn meow! I used to play with Yarn when I was young meow. Wasn't able to have that kind of relaxation after joining the 'Cat Gamers' meow.";
+ next;
+ mes "[Paa]";
+ mes "Please get 20 Yarns for me meow. Why 20? There are many other cats with the same issue meow. Our Director should take care of this for you meow.";
+ close;
+ case 7:
+ setquest 5080;
+ mes "[Paa]";
+ mes "Recently, our Director seems to have been trying to cut some expenses meow. Or is the manager taking advantage meow?";
+ next;
+ mes "[Paa]";
+ mes "Regular snacks for our players have been reduced meow. You should go get 30 Rat Tails, and give them to our Cat Gamers Director meow.";
+ next;
+ mes "[Paa]";
+ mes "Then, we shall find out if our manager is being greedy or not meow.";
+ close;
+ case 8:
+ setquest 5081;
+ mes "[Paa]";
+ mes "I am having a slump these days meow. I can't give my 100% to the game meow.";
+ next;
+ mes "[Paa]";
+ mes "It is the lemon we need in times like this meow.";
+ next;
+ mes "[Paa]";
+ mes "Get 5 lemons for me meow. Don't forget, I need 5 Lemons meow... Our Cat Gamers Director should know what to do with them meow.";
+ close;
+ case 9:
+ setquest 5082;
+ mes "[Paa]";
+ mes "Malangdo is a good place for a cat to live meow. But, it gets very hot when we play games meow.";
+ next;
+ mes "[Paa]";
+ mes "When we are playing a lot, it gets really crazy hot, hard for us to bear meow. You know how hysterical we cats can be, right meow?";
+ next;
+ mes "[Paa]";
+ mes "Get me either 10 Ice Pieces or 10 Ice Creams. Our Cat Gamers Director should know what to do with them meow.";
+ close;
+ case 10:
+ setquest 5083;
+ mes "[Paa]";
+ mes "I can see that you also need some rest meow. Feel free to relax for a while meow. How about taking a walk around the village meow? I insist meow~!";
+ next;
+ mes "[Paa]";
+ mes "But, it is no fun to just walk around the village meow. Hmm... Right meow!! Why don't you go ahead and meet a cat named Eryu meow?";
+ next;
+ mes "[Paa]";
+ mes "Oh! And when you meet the cat, make sure to say 'Come back' meow. That is the password meow. And don't forget to tell our Director I was with you all the time meow!!";
+ close;
+ case 11:
+ setquest 5085;
+ mes "[Paa]";
+ mes "I can see that you also need some rest meow. Feel free to relax for a while meow. How about taking a walk around the village meow? I insist meow~!";
+ next;
+ mes "[Paa]";
+ mes "But, it is no fun to just walk around the village meow. Hmm... Right meow!! Why don't you go ahead and meet a cat named Stew meow?";
+ next;
+ mes "[Paa]";
+ mes "Oh! And when you meet the cat, make sure to say 'Come back' meow. That is the password meow. And don't forget to tell our Director I was with you all the time meow!!";
+ close;
+ case 12:
+ mes "[Paa]";
+ mes "I can see that you also need some rest meow. Feel free to relax for a while meow. How about taking a walk around the village meow? I insist meow~!";
+ next;
+ mes "[Paa]";
+ mes "But, it is no fun to just walk around the village meow. Hmm... Right meow!! Why don't you go ahead and meet a cat named Ketchup meow?";
+ next;
+ mes "[Paa]";
+ mes "Oh! And when you meet the cat, make sure to say 'Come back' meow. That is the password meow. And don't forget to tell our Director I was with you all the time meow!!";
+ close;
+ case 13:
+ mes "[Paa]";
+ mes "I can see that you also need some rest meow. Feel free to relax for a while meow. How about taking a walk around the village meow? I insist meow~!";
+ next;
+ mes "[Paa]";
+ mes "But, it is no fun to just walk around the village meow. Hmm... Right meow!! Why don't you go ahead and meet a cat named Eff meow?";
+ next;
+ mes "[Paa]";
+ mes "Oh! And when you meet the cat, make sure to say 'Come back' meow. That is the password meow. And don't forget to tell our Director I was with you all the time meow!!";
+ close;
+ }
+}
+
+mal_in01,91,222,4 script Kuka#gamer 4_M_BABYCAT,{
+ if (MaxWeight - Weight < 1000) {
+ mes "Your inventory is too heavy to proceed. Come back after lightening your load.";
+ close;
+ }
+ if (checkweight(1201,1) == 0) {
+ mes "Your inventory is too full to proceed. Come back after reducing your load.";
+ close;
+ }
+ for(set .@i,5074; .@i<=5090; set .@i,.@i+1) {
+ if (checkquest(.@i) > -1) {
+ mes "[Kuka]";
+ mes "You haven't done what we asked you for yo~. A promise is a promise, you know yo~.";
+ next;
+ mes "[Kuka]";
+ mes "When you are done, please get checked by the Cat Gamers Director over there yo.~";
+ close;
+ }
+ }
+ if (malang_gamer < 20) {
+ if (countitem(2872)) {
+ mes "[Kuka]";
+ mes "You seem like a first timer yo~ Where did you get the certificate yo~ You better give that back yo~";
+ close;
+ }
+ mes "[Kuka]";
+ mes "The Cat Gamers Director said a practicing partner is coming yo~ But, that human didn't show up yo~ I am bored yo~";
+ close;
+ }
+ if (!isequipped(2872)) {
+ mes "[Kuka]";
+ mes "Oh great member you, ^0000FF"+strcharinfo(0)+"^000000~ Let's play ChamChamCham yo~";
+ next;
+ mes "[Kuka]";
+ mes "... ... ...";
+ next;
+ mes "[Kuka]";
+ mes "But, you don't have the certificate yo~ Certificate helps you save the game record yo~ You must have it! yo~";
+ next;
+ mes "[Kuka]";
+ mes "Please go get the certificate yo~";
+ close;
+ }
+ if (checkquest(5071,PLAYTIME) == 0 || checkquest(5071,PLAYTIME) == 1) {
+ mes "[Kuka]";
+ mes "Is it not tomorrow yet yo~ You can play one game a day yo~ Come back tomorrow yo~";
+ close;
+ } else if (checkquest(5071,PLAYTIME) == 2)
+ erasequest 5071;
+ mes "[Kuka]";
+ mes "Oh great member you, ^0000FF"+strcharinfo(0)+"^000000~ Let's play ChamChamCham yo~";
+ next;
+ switch(select("Play the game.:Ask who is 1st place.:Ask about the game rules.")) {
+ case 1:
+ mes "[Kuka]";
+ mes "Good choice yo~";
+ next;
+ break;
+ case 2:
+ // custom condition
+ if (!$malangdo_gamer) {
+ mes "[Kuka]";
+ mes "No one holds a record for the ChamChamCham game yo~";
+ mes "You could be the first yo~";
+ close;
+ }
+ mes "[Kuka]";
+ mes "Current 1st place for the ChamChamCham game is";
+ mes "^0000FF"+$malangdo_gamer$+"^000000 with ^DE2B21"+$malangdo_gamer+"^000000 winning streak yo~";
+ if (strcharinfo(0) == $malangdo_gamer$)
+ mes "Never know when someone else would break the record yo~";
+ else
+ mes "I expect that you, "+strcharinfo(0)+", can beat ^0000FF"+$malangdo_gamer$+"^000000 sometime yo~";
+ close;
+ case 3:
+ mes "[Kuka]";
+ mes "ChamChamCham game rules are very simple yo~";
+ mes "Just direct your hand towards the direction where I direct my face yo~";
+ next;
+ cutin "g_cat_01",4;
+ mes "[Kuka]";
+ mes "Like this yo~";
+ next;
+ cutin "g_cat_03",4;
+ mes "[Kuka]";
+ mes "Or like that yo~";
+ next;
+ cutin "",255;
+ mes "[Kuka]";
+ mes "A present is available for 3 wins yo~";
+ mes "If you beat the previous record, you get a bigger present yo~";
+ next;
+ mes "[Kuka]";
+ mes "See you at the practice yo~";
+ close;
+ }
+ while(1) {
+ cutin "g_cat_00",4;
+ mes "[Kuka & "+strcharinfo(0)+"]";
+ mes "Cham!";
+ next;
+ mes "[Kuka & "+strcharinfo(0)+"]";
+ mes "Cham! Cham!";
+ next;
+ mes "[Kuka & "+strcharinfo(0)+"]";
+ mes "Cham! Cham! Cham!";
+ next;
+ switch(select("Hand towards left:Hand towards right")) {
+ case 1:
+ if (rand(1000) < 500) {
+ cutin "g_cat_01",4;
+ set .@win, .@win+1;
+ } else {
+ cutin "g_cat_02",4;
+ set .@loss,1;
+ }
+ break;
+ case 2:
+ if (rand(1000) < 500) {
+ cutin "g_cat_03",4;
+ set .@win, .@win+1;
+ } else {
+ cutin "g_cat_04",4;
+ set .@loss,1;
+ }
+ break;
+ }
+ if (.@loss) {
+ mes "[Kuka]";
+ mes "Hehe~ I won yo~ I feel good yo~";
+ next;
+ cutin "",255;
+ break;
+ }
+ mes "[Kuka]";
+ mes "Well~ I lost yo~ Let's practice more yo~";
+ next;
+ cutin "",255;
+ mes "[Kuka]";
+ mes strcharinfo(0)+" has won "+.@win+" times yo~ Next game starts yo~";
+ next;
+ }
+ if (.@win == 0) {
+ // fall through
+ } else if (.@win > 0 && .@win < 3) {
+ setquest 5071;
+ mes "[Kuka]";
+ mes "After the practice, "+strcharinfo(0)+" has won "+.@win+" in a row yo~";
+ mes "Present is for 3 wins or more yo~ Nothing for today yo~ But, come again tomorrow yo~";
+ close;
+ } else {
+ set .@name_record$, $malangdo_gamer$;
+ set .@win_record, $malangdo_gamer;
+ set .@win_cnt, .@win-.@win_record;
+ set .@cans, .@win-2;
+ if (.@win > .@win_record) {
+ set $malangdo_gamer$, strcharinfo(0);
+ set $malangdo_gamer, .@win;
+ mes "[Kuka]";
+ mes "Congrats yo~ You won ^DE2B21"+.@win+"^000000 in a row yo~";
+ if (strcharinfo(0) == .@name_record$)
+ mes "You won ^DE2B21"+.@win_cnt+"^000000 more than the recent ^DE2B21"+.@win_record+"^000000 record yo~ Congrats yo~";
+ // custom conditions
+ //else
+ else if (.@win_record)
+ mes "And you have won ^DE2B21"+.@win_cnt+"^000000 more than ^0000FF"+.@name_record$+"^000000's ^DE2B21"+.@win_record+"^000000 winning streak yo~ New record yo~ Congrats yo~";
+ else
+ mes "A new record yo~ Congrats yo~";
+ next;
+ mes "[Kuka]";
+ mes "I'll give you 1 random coin pocket as a special present yo~ Well done yo~ Come back tomorrow yo~";
+ setquest 5071;
+ getitem 12636, .@cans; //Malang_Sp_Can
+ getitem 12621,1; //Egrade_Pocket
+ close;
+ } else {
+ mes "[Kuka]";
+ mes "Congrats yo~ For winning "+.@win+" times I'll give you "+.@cans+" cans yo~ Well done yo~ Come back tomorrow yo~";
+ setquest 5071;
+ getitem 12636, .@cans; //Malang_Sp_Can
+ close;
+ }
+ }
+ mes "[Kuka]";
+ mes strcharinfo(0)+" didn't win at all yo~ You must work it out yo~";
+ next;
+ setquest 5071;
+ switch(rand(1,13)) {
+ case 1:
+ setquest 5074;
+ mes "[Kuka]";
+ mes "Kuka wants you to catch delicious Phens yo~";
+ next;
+ mes "- Chrub -";
+ mes "Kuka wipes the drool from his mouth.";
+ next;
+ mes "[Kuka]";
+ mes "Catch 30 Phens yo~ And also get me 10 Fish Tails yo~ Get them to our Director Cat, and he will make a delicious dish with them yo~";
+ close;
+ case 2:
+ setquest 5075;
+ mes "[Kuka]";
+ mes "Lately, I've felt powerless and that there's too much weight on me yo~ I should take care of my health yo~";
+ next;
+ mes "[Kuka]";
+ mes "Now it's time for some healthy food yo~";
+ next;
+ mes "[Kuka]";
+ mes "Get 50 Marse and 25 Milk to our Cat Gamers Director yo~. He has excellent knowledge on healthy foods yo~.";
+ close;
+ case 3:
+ setquest 5076;
+ mes "[Kuka]";
+ mes "We have a rival yo~ 'Dog n Waltz' yo~";
+ next;
+ mes "[Kuka]";
+ mes "I want to harass similar goons yo~";
+ next;
+ mes "[Kuka]";
+ mes "There is an archer among Kobolds yo~ Harass 30 Kobold Archers and report to our Cat Gamers Director yo~";
+ close;
+ case 4:
+ setquest 5077;
+ mes "[Kuka]";
+ mes "Quickness is very important for winning the game yo~ Work on quickness yo~";
+ next;
+ mes "[Kuka]";
+ mes "Mouse catching is the best work out for quickness training yo~";
+ next;
+ mes "[Kuka]";
+ mes "Catch 10 blue and chubby Cramps, and report to our Cat Gamers Director yo~";
+ close;
+ case 5:
+ setquest 5078;
+ mes "[Kuka]";
+ mes "I crave bird cuisine yo~ Bird cuisine is so delicious yo~";
+ next;
+ mes "[Kuka]";
+ mes "Picky is too small and Condor is not tasty yo~ How about Peco Peco yo~?";
+ next;
+ mes "[Kuka]";
+ mes "Ok yo~ Catch 50 Peco Pecos and report to our Cat Gamers Director yo~ Tonight, we will have a bird cuisine party yo~";
+ close;
+ case 6:
+ setquest 5079;
+ mes "[Kuka]";
+ mes "I get too nervous before the game yo~. And I don't play well when I am nervous yo~. I need something to calm down before the game starts yo~.";
+ next;
+ mes "[Kuka]";
+ mes "Yarn is very useful for relaxing yo~";
+ next;
+ mes "[Kuka]";
+ mes "Get 20 Yarns yo~ There are many other cats with the same issue yo~ The Cat Gamers Director will take care of them yo~";
+ close;
+ case 7:
+ setquest 5080;
+ mes "[Kuka]";
+ mes "Recently, our Director seems to have been trying to cut some expenses yo~ Or maybe the Manager Cat is taking advantage yo~";
+ next;
+ mes "[Kuka]";
+ mes "Regular snacks for our players have been reduced yo~ "+strcharinfo(0)+" should go get 30 Rat Tails, and report to our Cat Gamers Director yo~";
+ next;
+ mes "[Kuka]";
+ mes "Then, we shall find out if our manager is being greedy or not yo~";
+ close;
+ case 8:
+ setquest 5081;
+ mes "[Kuka]";
+ mes "I am having a slump these days yo~ I can't give my 100% to the game.";
+ next;
+ mes "[Kuka]";
+ mes "It is the lemon we need in times like this yo~";
+ next;
+ mes "[Kuka]";
+ mes "Get 5 lemons for me yo~ Don't forget, I need 5 Lemons yo~ Our Cat Gamers Director should know what to do with them yo~";
+ close;
+ case 9:
+ setquest 5082;
+ mes "[Kuka]";
+ mes "Malangdo is a good place for a cat to live yo~ But, it gets very hot when we play games yo~";
+ next;
+ mes "[Kuka]";
+ mes "When we are playing a lot, it gets really crazy hot yo~ Crazy cats are scary yo~ We need Ice Pieces or Ice Cream yo~";
+ next;
+ mes "[Kuka]";
+ mes "Get us either 10 Ice Pieces or 10 Ice Creams, and report to our Cat Gamers Director yo~";
+ close;
+ case 10:
+ setquest 5083;
+ mes "[Kuka]";
+ mes "Cat Gamers Director's order yo~ Find Eryu who is afraid of the Director yo~";
+ next;
+ mes "[Kuka]";
+ mes "You must find Eryu, and tell him 'Come back' yo~ report to our Cat Gamers Director yo~";
+ close;
+ case 11:
+ setquest 5085;
+ mes "[Kuka]";
+ mes "Cat Gamers Director's order yo~ Find Stew who is afraid of the Director yo~";
+ next;
+ mes "[Kuka]";
+ mes "You must find Stew, and tell him 'Come back' yo~ report to our Cat Gamers Director yo~";
+ close;
+ case 12:
+ setquest 5087;
+ mes "[Kuka]";
+ mes "Cat Gamers Director's order yo~ Find Ketchup who is afraid of the Director yo~";
+ next;
+ mes "[Kuka]";
+ mes "You must find Ketchup, and tell him 'Come back' yo~ report to our Cat Gamers Director yo~";
+ close;
+ case 13:
+ setquest 5089;
+ mes "[Kuka]";
+ mes "Cat Gamers Director's order yo~ Find Eff who is afraid of the Director yo~";
+ next;
+ mes "[Kuka]";
+ mes "You must find Eff, and tell him 'Come back' yo~ report to our Cat Gamers Director yo~";
+ close;
+ }
+}
+
+mal_in01,134,221,4 script KungKung#gamer 4_M_BABYCAT,{
+ if (MaxWeight - Weight < 1000) {
+ mes "Your inventory is too heavy to proceed. Come back after lightening your load.";
+ close;
+ }
+ if (checkweight(1201,1) == 0) {
+ mes "Your inventory is too full to proceed. Come back after reducing your load.";
+ close;
+ }
+ for(set .@i,5074; .@i<=5090; set .@i,.@i+1) {
+ if (checkquest(.@i) > -1) {
+ mes "[KungKung]";
+ mes "You didn't keep your promise. I have no business with you.";
+ close;
+ }
+ }
+ if (malang_gamer < 20) {
+ if (countitem(2872)) {
+ mes "[KungKung]";
+ mes "You are not qualified. Hmm... I am not sure how you got this, but we cannot practice with you. Go back.";
+ close;
+ }
+ mes "[KungKung]";
+ mes "Do not bother me. I am waiting for my practicing partner.";
+ close;
+ }
+ if (!isequipped(2872)) {
+ mes "[KungKung]";
+ mes "Are you the practice partner? You are late. Let's start right away.";
+ next;
+ mes "[KungKung]";
+ mes "... ... ...";
+ next;
+ mes "[KungKung]";
+ mes "Where is your certificate? You cannot practice with us unless you have that certificate. Go get it.";
+ close;
+ }
+ if (checkquest(5072,PLAYTIME) == 0 || checkquest(5072,PLAYTIME) == 1) {
+ mes "[KungKung]";
+ mes "You don't have a watch? Or can't read the time? It's not the time yet.";
+ close;
+ } else if (checkquest(5072,PLAYTIME) == 2)
+ erasequest 5072;
+ mes "[KungKung]";
+ mes "Are you the practice partner? You are late. Let's start right away.";
+ next;
+ switch(select("Play the game.:Ask current 1st place.:Ask about the game rules.")) {
+ case 1:
+ mes "[KungKung]";
+ mes "Before the game, we will decide the turn by rolling a dice.";
+ next;
+ break;
+ case 2:
+ mes "[KungKung]";
+ mes "Why do you want to know the 1st place? KongNyangKong is a brutal and tough match game. Kuka should know such thing!";
+ close;
+ case 3:
+ mes "[KungKung]";
+ mes "You want to learn the game rules?";
+ mes "You seem to have a polite way of asking things.";
+ mes "Listen carefully.";
+ next;
+ mes "[KungKung]";
+ mes "KongNyangKong has different play rules when attacking and defending.";
+ next;
+ mes "[KungKung]";
+ mes "When attacking, you must turn your hand to the same side as your opponent in order to complete the attack.";
+ next;
+ cutin "cat_g_01",4;
+ mes "[KungKung]";
+ mes "If we turn our hands the same way like this, then your attack is successful.";
+ next;
+ cutin "",255;
+ mes "[KungKung]";
+ mes "For defending, you must turn your hand to the opposite side of your opponent in order to defend yourself.";
+ next;
+ cutin "cat_g_06",4;
+ mes "[KungKung]";
+ mes "Yes! If you turn your hand opposite to mine like that, you have succeeded defending yourself.";
+ next;
+ cutin "",255;
+ mes "[KungKung]";
+ mes "If you are clever enough, you should know that the bottom hand is the attacker's hand.";
+ next;
+ mes "[KungKung]";
+ mes "Last!! Most important rule.";
+ mes "Once you succeed attacking, you can continue attacking your opponent.";
+ mes "When you fail, then you are on the defending side.";
+ mes "Do not forget this!";
+ next;
+ mes "[KungKung]";
+ mes "You can ask about the KongNyangKong rules anytime you want!";
+ mes "Our Manager Cat also knows all about the KongNyangKong rules.";
+ mes "That is all!";
+ close;
+ }
+ while(1) {
+ set .@pc_dic, rand(6);
+ set .@npc_dic, rand(6);
+
+ // Emote[58-63]:
+ // e_dice1, e_dice2, e_dice3, e_dice4, e_dice5, e_dice6
+ emotion 58+.@pc_dic,1;
+ emotion 58+.@npc_dic;
+
+ if (.@pc_dic > .@npc_dic) {
+ mes "[KungKung]";
+ mes "Your dice roll number is higher. You can attack first.";
+ set .@attack_turn,1;
+ next;
+ break;
+ } else if (.@pc_dic < .@npc_dic) {
+ mes "[KungKung]";
+ mes "My dice roll number is higher. I will attack first.";
+ set .@attack_turn,2;
+ next;
+ break;
+ } else {
+ mes "[KungKung]";
+ mes "We have even numbers. Let's roll the dice once again.";
+ next;
+ }
+ }
+ set .@pc_hp,100;
+ set .@npc_hp,100;
+ while(1) {
+ if (!.@pc_hp || !.@npc_hp) break;
+ mes strcharinfo(0)+" (^FF0000"+.@pc_hp+"^000000/100)";
+ mes "--------------------------------";
+ mes "KungKung (^FF0000"+.@npc_hp+"^000000/100)";
+ next;
+ mes "[KungKung & "+strcharinfo(0)+"]";
+ mes "Kong!";
+ emotion e_loud,1;
+ emotion e_loud;
+ next;
+ mes "[KungKung & "+strcharinfo(0)+"]";
+ mes "Kong! Nyang!";
+ emotion e_loud,1;
+ emotion e_loud;
+ next;
+ mes "[KungKung & "+strcharinfo(0)+"]";
+ mes "Kong! Nyang! Kong!";
+ emotion e_loud,1;
+ emotion e_loud;
+ next;
+ set .@cat_hand, rand(1,10);
+ switch(.@attack_turn) {
+ case 1: // Attack
+ mes "How would you like to attack?";
+ mes " ";
+ mes "¡¡ Tip !!";
+ mes "Choose back: ^FF0000You win if the cat shows the back of its paw.^000000";
+ mes "Choose palm: ^FF0000You win if the cat shows the palm of its paw.^000000";
+ next;
+ switch(select("Back:Palm")) {
+ case 1:
+ if (.@cat_hand <= 5) {
+ set .@npc_hp, .@npc_hp-10;
+ cutin "cat_g_01",4;
+ specialeffect EF_BASH;
+ mes "Attack was successful.";
+ mes "You have slapped the back of KungKung's paw.";
+ next;
+ cutin "",255;
+ } else {
+ set .@attack_turn,2;
+ cutin "cat_g_02",4;
+ mes "Attack has failed.";
+ mes "KungKung starts attack now.";
+ next;
+ cutin "",255;
+ }
+ break;
+ case 2:
+ if (.@cat_hand <= 5) {
+ set .@attack_turn,2;
+ cutin "cat_g_03",4;
+ mes "Attack has failed.";
+ mes "KungKung starts attack now.";
+ next;
+ cutin "",255;
+ } else {
+ set .@npc_hp, .@npc_hp-10;
+ cutin "cat_g_04",4;
+ specialeffect EF_BASH;
+ mes "Attack was successful.";
+ mes "You have slapped the back of KungKung's paw.";
+ next;
+ cutin "",255;
+ }
+ break;
+ }
+ break;
+ case 2: // Defend
+ mes "How would you like to defend?";
+ mes " ";
+ mes "¡¡ Tip !!";
+ mes "Choose back: ^FF0000You win if the cat shows the back of its paw.^000000";
+ mes "Choose palm: ^FF0000You win if the cat shows the palm of its paw.^000000";
+ next;
+ switch(select("Back:Palm")) {
+ case 1:
+ if (.@cat_hand <= 5) {
+ set .@pc_hp, .@pc_hp-10;
+ cutin "cat_g_05",4;
+ specialeffect2 EF_BASH;
+ mes "Defending has failed.";
+ mes "KungKung attacks the back of your hand with its sharp claw.";
+ next;
+ cutin "",255;
+ } else {
+ set .@attack_turn,1;
+ cutin "cat_g_06",4;
+ mes "Defending was succesful.";
+ mes "You can start attack now.";
+ next;
+ cutin "",255;
+ }
+ break;
+ case 2:
+ if (.@cat_hand <= 5) {
+ set .@attack_turn,1;
+ cutin "cat_g_07",4;
+ mes "Defending was succesful.";
+ mes "You can start attack now.";
+ next;
+ cutin "",255;
+ } else {
+ set .@pc_hp, .@pc_hp-10;
+ cutin "cat_g_08",4;
+ specialeffect2 EF_BASH;
+ mes "Defending has failed.";
+ mes "KungKung attacks the back of your hand with its sharp claw.";
+ next;
+ cutin "",255;
+ }
+ break;
+ }
+ break;
+ }
+ }
+ if (.@npc_hp == 0) {
+ mes "[KungKung]";
+ mes "I lost. It was good game indeed.";
+ mes "A win would have been better, but I am too busy to look back at the past.";
+ next;
+ cutin "cat_g_lose",4;
+ mes "[KungKung]";
+ mes "Sob...";
+ emotion e_sob;
+ next;
+ cutin "",255;
+ mes "[KungKung]";
+ mes "Hmm... That wasn't necessary, I guess.";
+ mes "This is for you, Human!";
+ setquest 5072;
+ getitem 12636,5; //Malang_Sp_Can
+ next;
+ mes "[KungKung]";
+ mes "Come again tomorrow. I will beat you next time.";
+ close2;
+ cutin "",255;
+ end;
+ }
+ cutin "cat_g_win",4;
+ mes "[KungKung]";
+ mes "I won. It was a boring match.";
+ mes "You need to practice more. Maybe some extra work will help.";
+ next;
+ setquest 5072;
+ switch(rand(1,13)) {
+ case 1:
+ setquest 5074;
+ mes "[KungKung]";
+ mes "Catch the delicious fish Phen.";
+ next;
+ mes "[KungKung]";
+ mes "Go catch 30 Phens. And also get me 10 Fish Tails. Give them to our Director cat, and he will make a delicious dish with them.";
+ break;
+ case 2:
+ setquest 5075;
+ mes "[KungKung]";
+ mes "I may have worked out too much... I feel powerless and that there's too much weight on me. I should take care of my health.";
+ next;
+ mes "[KungKung]";
+ mes "I am already 10 years old, so it's time for some healthy food.";
+ next;
+ mes "[KungKung]";
+ mes "Get 50 Marse and 30 Milk to our Cat Gamers Director. He has excellent knowledge on healthy foods.";
+ break;
+ case 3:
+ setquest 5076;
+ mes "[KungKung]";
+ mes "We have a rival. The 'Dog n Waltz' team... Everything goes wrong when they come around.";
+ next;
+ mes "[KungKung]";
+ mes "I want to ask you to bully them, but that's illegal...";
+ next;
+ mes "[KungKung]";
+ mes "Go harass 30 Kobold Archers instead of 'Dog n Waltz', and report to our Cat Gamers Director.";
+ break;
+ case 4:
+ setquest 5077;
+ mes "[KungKung]";
+ mes "Quickness is most important for winning the game. For better quickness...";
+ next;
+ mes "[KungKung]";
+ mes "Catching mice is best. It's Cramp hunting time.";
+ next;
+ mes "[KungKung]";
+ mes "Catch 10 Cramps, and report to our Cat Gamers Director.";
+ break;
+ case 5:
+ setquest 5078;
+ mes "[KungKung]";
+ mes "I want some bird cuisine. Have you tasted any before?";
+ next;
+ mes "[KungKung]";
+ mes "Peco Peco sounds delicious to me. I don't like eating alone, so...";
+ next;
+ mes "[KungKung]";
+ mes "Catch 50 Peco Pecos, and report to our Cat Gamers Director. We all can have a dinner party with Peco Peco cuisine.";
+ break;
+ case 6:
+ setquest 5079;
+ mes "[KungKung]";
+ mes "Being calm is the key to winning important matches.";
+ next;
+ mes "[KungKung]";
+ mes "There's not a single cat who hasn't played with Yarn when they were young.";
+ next;
+ mes "[KungKung]";
+ mes "Get 20 Yarns, and report to our Cat Gamers Director. It will help improve our team's ability.";
+ break;
+ case 7:
+ setquest 5080;
+ mes "[KungKung]";
+ mes "I have a strong belief that our Manager Cat is taking advantage of our snacks.";
+ next;
+ mes "[KungKung]";
+ mes "All we need is evidence... Get 30 Rat Tails, and report to our Cat Gamers Director.";
+ next;
+ mes "[KungKung]";
+ mes "Then, we shall find out whether or not Manager Cat was doing something wrong.";
+ break;
+ case 8:
+ setquest 5081;
+ mes "[KungKung]";
+ mes "Practice was ok, but I seem to be having a slump these days.";
+ next;
+ mes "[KungKung]";
+ mes "We need to have some Lemon in times like this.";
+ next;
+ mes "[KungKung]";
+ mes "Get 5 Lemons to our Cat Gamers Director. He'll know what to do.";
+ break;
+ case 9:
+ setquest 5082;
+ mes "[KungKung]";
+ mes "Malangdo is a good place for a cat to live. But, it gets hot easily.";
+ next;
+ mes "[KungKung]";
+ mes "On a hot days like this, we could use some Ice Pieces or Ice Cream.";
+ next;
+ mes "[KungKung]";
+ mes "Get either 10 Ice Pieces or 10 Ice Creams. Our Cat Gamers Director should know what to do with them.";
+ break;
+ case 10:
+ setquest 5083;
+ mes "[KungKung]";
+ mes "Our Cat Gamers Director asked this. I should make you do this errand.";
+ next;
+ mes "[KungKung]";
+ mes "Find Eryu the cat from Malangdo, and say 'Come back' loud and clear.";
+ next;
+ mes "[KungKung]";
+ mes "Afterwards, you can report to our Cat Gamers Director. Off you go!!";
+ break;
+ case 11:
+ setquest 5085;
+ mes "[KungKung]";
+ mes "Our Cat Gamers Director asked this. I should make you do this errand.";
+ next;
+ mes "[KungKung]";
+ mes "Find Stew the cat from Malangdo, and say 'Come back' loud and clear.";
+ next;
+ mes "[KungKung]";
+ mes "Afterwards, you can report to our Cat Gamers Director. Off you go!!";
+ break;
+ case 12:
+ setquest 5087;
+ mes "[KungKung]";
+ mes "Our Cat Gamers Director asked this. I should make you do this errand.";
+ next;
+ mes "[KungKung]";
+ mes "Find Ketchup the cat from Malangdo, and say 'Come back' loud and clear.";
+ next;
+ mes "[KungKung]";
+ mes "Afterwards, you can report to our Cat Gamers Director. Off you go!!";
+ break;
+ case 13:
+ setquest 5089;
+ mes "[KungKung]";
+ mes "Our Cat Gamers Director asked this. I should make you do this errand.";
+ next;
+ mes "[KungKung]";
+ mes "Find Eff the cat from Malangdo, and say 'Come back' loud and clear.";
+ next;
+ mes "[KungKung]";
+ mes "Afterwards, you can report to our Cat Gamers Director. Off you go!!";
+ break;
+ }
+ close2;
+ cutin "",255;
+ end;
+}
+
+mal_in01,133,214,6 script Leader#gamer 4_CAT_SAILOR3,{
+ if (MaxWeight - Weight < 1000) {
+ mes "Your inventory is too heavy to proceed. Come back after lightening your load.";
+ close;
+ }
+ if (checkweight(1201,1) == 0) {
+ mes "Your inventory is too full to proceed. Come back after reducing your load.";
+ close;
+ }
+ for(set .@i,5074; .@i<=5090; set .@i,.@i+1) {
+ if (checkquest(.@i) > -1) {
+ mes "[Leader]";
+ mes "You cannot challenge this Flag Game unless you are done with your assigned work.";
+ close;
+ }
+ }
+ if (malang_gamer < 20) {
+ if (countitem(2872)) {
+ mes "[Leader]";
+ mes "Not everyone can challenge just because they have the certificate.";
+ close;
+ }
+ mes "[Leader]";
+ mes "Ok, let's practice until a challenger comes!!";
+ close;
+ }
+ if (!isequipped(2872)) {
+ mes "[Leader]";
+ mes "Do you want to challege?";
+ next;
+ mes "[Leader]";
+ mes "... ... ...";
+ next;
+ mes "[Leader]";
+ mes "You cannot challenge this Flag Game unless you are wearing our certificate item. Please come back later.";
+ close;
+ }
+ if (checkquest(5073) == 0 || checkquest(5073) == 1) {
+ mes "[Leader]";
+ mes "The Flag Game is only available once a day.";
+ close;
+ } else if (checkquest(5073) == 2)
+ erasequest 5073;
+ mes "[Leader]";
+ mes "Do you want to challege?";
+ next;
+ switch(select("Challenge.:Who are you?:Ask about the rules.")) {
+ case 1:
+ mes "[Leader]";
+ mes "Let's challenge the Flag Game. Please wait while our cats get prepared.";
+ next;
+ break;
+ case 2:
+ mes "[Leader]";
+ mes "Oh! I retired from 'Cat Gamers', and am working on a national game referee license. Licenses are the new trend these days.";
+ next;
+ mes "[Leader]";
+ mes "A referee must use standard language... So it was very hard for me to stop crying meow meow~ like other cats.";
+ next;
+ mes "[Leader]";
+ mes "I know the game rules for players for sure, but refereeing the game is a lot harder than it seems.";
+ next;
+ mes "[Leader]";
+ mes "Sometimes I do make mistakes, and people go crazy like it's the end of world. What a hard job this is.";
+ next;
+ mes "[Leader]";
+ mes "But, I want to finish this course, and be the world's best referee ever.";
+ next;
+ mes "[Leader]";
+ mes "You can bet on it!!";
+ close;
+ case 3:
+ mes "[Leader]";
+ mes "Allow me to explain the rule for the Flag-Waving Game.";
+ next;
+ mes "[Leader]";
+ mes "You play with 5 other cats.";
+ mes "Wait and wave the flag when no others are waving it.";
+ next;
+ mes "[Leader]";
+ mes "You start with 5 Flag Points, and each time you wave the flag 1 point vanishes.";
+ mes "When your points hit 0, the game ends.";
+ next;
+ mes "[Leader]";
+ mes "There's a special rule for this Flag Game. For more thrill, we reduce 1 point if you do not wave your flag for 10 games.";
+ next;
+ mes "[Leader]";
+ mes "You will get bigger presents as you win with less Flag Points used.";
+ next;
+ mes "[Leader]";
+ mes "Come back anytime if you need more help with the game rules. Our Manager Cat is also available for some help with the game rules.";
+ close;
+ }
+
+ // Starting Flag Points (default 5).
+ set .@flag_point,5;
+ setarray .@flag_point_cat[1],5,5,5,5,5;
+
+ // Cat players' names.
+ setarray .@npc_name$[1],
+ "Debong#gamer","Seichi#gamer","Libs#gamer","Row#gamer","YongYong#gamer";
+ setarray .@cat_name$[1],
+ "Debong","Seichi","Annoying Libs","Row","YongYong";
+ setarray .@cat_desc$[1],
+ " who likes to pick hair"," the observer",""," who likes to show off"," who likes to droop";
+
+ // Emotions displayed when cats' flags not waved.
+ setarray .@cat_emote[1],
+ e_ho,e_no,e_an,e_no1,e_spin;
+
+ // .@cat_action[] when cats' flags are not waved.
+ setarray .@cat_emotes$[1],
+ "1|3|5|7", // Picking hair
+ "2|4|6|8", // Looking around
+ "1|3|6|8", // Getting annoyed
+ "2|4|5|7", // Showing off
+ "3|4|5|6"; // Drooping
+
+ while(1) {
+ for(set .@i,1; .@i<=5; set .@i,.@i+1)
+ set .@cat_action[.@i], ((.@flag_point_cat[.@i])?rand(1,8):0);
+
+ switch(.@cat_action[1]) {
+ case 0: set .@cat_mes$[1], "cannot do anything with all points used"; break;
+ case 1: set .@cat_mes$[1], "focuses on hair picking, careless for the game"; break;
+ case 2: set .@cat_mes$[1], "looks around with round eyes"; break;
+ case 3: set .@cat_mes$[1], "picks out hair around the front paw"; break;
+ case 4: set .@cat_mes$[1], "is getting annoyed at tails smacking on the ground"; break;
+ case 5: set .@cat_mes$[1], "picks his hair while looking around"; break;
+ case 6: set .@cat_mes$[1], "shows off his front paw to the Leader Cat"; break;
+ case 7: set .@cat_mes$[1], "is picking some hair on his belly with a calm mind"; break;
+ case 8: set .@cat_mes$[1], "is drooping down with a pleasant face"; break;
+ }
+ switch(.@cat_action[2]) {
+ case 0: set .@cat_mes$[2], "cannot do anything with all points used"; break;
+ case 1: set .@cat_mes$[2], "picks out hair around the front paw"; break;
+ case 2: set .@cat_mes$[2], "looks around with round eyes"; break;
+ case 3: set .@cat_mes$[2], "is getting annoyed with the Leader Cat"; break;
+ case 4: set .@cat_mes$[2], "observes flies flying around"; break;
+ case 5: set .@cat_mes$[2], "shows off picked hair proudly"; break;
+ case 6: set .@cat_mes$[2], "observes Leader Cat's tail curiously"; break;
+ case 7: set .@cat_mes$[2], "looks at you with drooping eyes"; break;
+ case 8: set .@cat_mes$[2], "is checking you out with a weird glimmer"; break;
+ }
+ switch(.@cat_action[3]) {
+ case 0: set .@cat_mes$[3], "cannot do anything with all points used"; break;
+ case 1: set .@cat_mes$[3], "is getting annoyed at tails smacking on the ground"; break;
+ case 2: set .@cat_mes$[3], "observes Leader Cat's tail curiously"; break;
+ case 3: set .@cat_mes$[3], "is getting annoyed while picking his hair"; break;
+ case 4: set .@cat_mes$[3], "scratches with a drooping face"; break;
+ case 5: set .@cat_mes$[3], "catches a flying fly and shows off"; break;
+ case 6: set .@cat_mes$[3], "is getting irritable with a tired face"; break;
+ case 7: set .@cat_mes$[3], "picks his hair while looking around"; break;
+ case 8: set .@cat_mes$[3], "is getting annoyed with the Leader Cat"; break;
+ }
+ switch(.@cat_action[4]) {
+ case 0: set .@cat_mes$[4], "cannot do anything with all points used"; break;
+ case 1: set .@cat_mes$[4], "is picking some hair on his belly with a calm mind"; break;
+ case 2: set .@cat_mes$[4], "shows off his front paw to the Leader Cat"; break;
+ case 3: set .@cat_mes$[4], "is getting irritable with a tired face"; break;
+ case 4: set .@cat_mes$[4], "catches a flying fly and shows off"; break;
+ case 5: set .@cat_mes$[4], "shows off an attractive tail"; break;
+ case 6: set .@cat_mes$[4], "is drooping and mumbling"; break;
+ case 7: set .@cat_mes$[4], "shows off picked hair proudly"; break;
+ case 8: set .@cat_mes$[4], "is checking you out with a weird glimmer"; break;
+ }
+ switch(.@cat_action[5]) {
+ case 0: set .@cat_mes$[5], "cannot do anything with all points used"; break;
+ case 1: set .@cat_mes$[5], "is fighting with his tail"; break;
+ case 2: set .@cat_mes$[5], "is scratching with his hind foot"; break;
+ case 3: set .@cat_mes$[5], "is drooping down with a pleasant face"; break;
+ case 4: set .@cat_mes$[5], "checks you out with a drooping face"; break;
+ case 5: set .@cat_mes$[5], "scratches with a drooping face"; break;
+ case 6: set .@cat_mes$[5], "is drooping and mumbling"; break;
+ case 7: set .@cat_mes$[5], "is lying around~"; break;
+ case 8: set .@cat_mes$[5], "is doing nothing"; break;
+ }
+
+ switch(rand(3)) {
+ case 0: set .@tip$, "You can predict if the cat will wave the flag or not with 'Observe cats'."; break;
+ case 1: set .@tip$, "1 Flag Point will be deducted if you choose 'Wave flag'."; break;
+ case 2: set .@tip$, "Choosing 'Wait', you can check the results and move on to the next game."; break;
+ }
+ while(1) {
+ mes "[Leader]";
+ mes "Cats are now all prepared.";
+ mes "What will you do?";
+ mes " ";
+ mes "Tip: ^F86A08"+.@tip$+"^000000";
+ next;
+ set .@choice, select("Observe cats:Wave flag:Wait");
+ switch(.@choice) {
+ case 1:
+ mes "Observing cats...";
+ next;
+ for(set .@i,1; .@i<=5; set .@i,.@i+1) {
+ mes "[------ Observing cats ------]";
+ mes .@cat_name$[.@i]+.@cat_desc$[.@i]+" ^FF0000"+.@cat_mes$[.@i]+"^000000.";
+ next;
+ }
+ break;
+ case 2:
+ set .@flag_point, .@flag_point-1;
+ set .@you_flag,1;
+ break;
+ case 3:
+ break;
+ }
+ if (.@choice != 1) break;
+ }
+ set .@round, .@round+1;
+ set .@rounds_nowave, .@rounds_nowave+1;
+ if (.@you_flag == 1) {
+ set .@you_flag$, "You waved the flag";
+ set .@emotion[0], e_korea;
+ } else {
+ set .@you_flag$, "You didn't wave the flag";
+ set .@emotion[0], e_swt2;
+ }
+ for(set .@i,1; .@i<=5; set .@i,.@i+1) {
+ if (.@flag_point_cat[.@i] == 0) {
+ set .@cat_flag$[.@i], "Not enough Flag Points, could not wave";
+ set .@emotion[.@i], e_ho;
+ } else {
+ if (compare(.@cat_emotes$[.@i],""+.@cat_action[.@i])) {
+ set .@cat_flag$[.@i], "Didn't wave";
+ set .@emotion[.@i], .@cat_emote[.@i];
+ } else {
+ set .@cat_flag$[.@i], "Did wave";
+ set .@flag_point_cat[.@i], .@flag_point_cat[.@i]-1;
+ set .@cat_flags_waved, .@cat_flags_waved+1;
+ set .@emotion[.@i], e_korea;
+ }
+ }
+ }
+ mes "[Leader]";
+ mes "Game ^C1653E"+.@round+"^000000 results...";
+ next;
+ mes "[Leader]";
+ mes "~ Flag Game challenger "+strcharinfo(0)+" ~";
+ mes "^FF0000"+.@you_flag$+"^000000 for game ^C1653E"+.@round+"^000000.";
+ mes .@flag_point+" Flag Point remaining.";
+ emotion .@emotion[0],1;
+ next;
+ for(set .@i,1; .@i<=5; set .@i,.@i+1) {
+ mes "[Leader]";
+ mes "~ "+.@cat_name$[.@i]+.@cat_desc$[.@i]+" ~";
+ mes "^FF0000"+.@cat_flag$[.@i]+"^000000 the flag for game ^C1653E"+.@round+"^000000.";
+ mes .@flag_point_cat[.@i]+" Flag Point remaining for "+.@cat_name$[.@i]+".";
+ emotion .@emotion[.@i],0,.@npc_name$[.@i];
+ next;
+ }
+ if (.@you_flag == 1) {
+ set .@rounds_nowave,0;
+ if (.@cat_flags_waved == 0) {
+ // You win.
+ break;
+ } else if (.@flag_point == 0) {
+ // You lose.
+ mes "[Leader]";
+ mes "You have used all your Flag Points.";
+ next;
+ break;
+ } else {
+ set .@you_flag,0;
+ mes "[Leader]";
+ mes "You have failed at flag waving.";
+ mes .@flag_point+" Flag Point remaining.";
+ next;
+ mes "[Leader]";
+ mes "Let's move on to the next game.";
+ next;
+ mes "... ... ... ...";
+ next;
+ }
+ } else {
+ if (.@cat_flags_waved == 5) {
+ mes "[Leader]";
+ mes "Congrats "+strcharinfo(0)+". You have succeed on not waving your flag.";
+ next;
+ mes "[Leader]";
+ mes "But! This is flag waving game, so this doesn't count.";
+ next;
+ } else {
+ if (.@rounds_nowave == 10) {
+ set .@rounds_nowave,0;
+ set .@flag_point, .@flag_point-1;
+ mes "[Leader]";
+ mes "Since you didn't wave your flag for 10 games, 1 Flag Point will be reduced according to the official Flag Game rules.";
+ next;
+ if (.@flag_point == 0) {
+ // You lose.
+ mes "[Leader]";
+ mes "You have used all your Flag Points.";
+ next;
+ break;
+ } else {
+ mes "[Leader]";
+ mes .@flag_point+" Flag Point remaining.";
+ next;
+ }
+ } else {
+ mes "[Leader]";
+ mes "Game "+.@round+" has ended properly. Point penalty will be given after "+(10-.@rounds_nowave)+" more.";
+ next;
+ }
+ mes "[Leader]";
+ mes "Let's move on to the next game.";
+ next;
+ mes "... ... ... ...";
+ next;
+ }
+ }
+ set .@cat_flags_waved,0;
+ }
+ mes "[Leader]";
+ mes "The Flag-Waving Game has ended.";
+ next;
+ mes "[Leader]";
+ mes "Final results!!";
+ mes "After "+.@round+" games, "+strcharinfo(0)+" has "+.@flag_point+" Flag Point left.";
+ mes "... ... ...";
+ next;
+ if (.@you_flag == 1 && .@cat_flags_waved == 0) {
+ setquest 5073;
+ if (.@flag_point_cat[1]+.@flag_point_cat[2]+.@flag_point_cat[3]+.@flag_point_cat[4]+.@flag_point_cat[5] < 5) {
+ getitem 12636,3; //Malang_Sp_Can
+ mes "[Leader]";
+ mes "Congratulations. You have won the Flag-Waving Game.";
+ next;
+ mes "[Leader]";
+ mes "But, only 3 Canned Foods will be given as the present since you didn't take a big part through the game.";
+ } else {
+ switch(.@flag_point) {
+ case 0: set .@cans,5; break;
+ case 1: set .@cans,7; break;
+ case 2: set .@cans,10; break;
+ case 3: set .@cans,15; break;
+ case 4: set .@cans,20; break;
+ }
+ getitem 12636, .@cans; //Malang_Sp_Can
+ mes "[Leader]";
+ mes "Congratulations. You have won the Flag-Waving Game. "+.@cans+" Canned Foods will be given as the present.";
+ }
+ next;
+ mes "[Leader]";
+ mes "Hope you win some more Canned Foods tomorrow.";
+ close;
+ }
+ mes "[Leader]";
+ mes "Flag waving failed...";
+ mes "... ... ... ...";
+ next;
+ setquest 5073;
+ switch(rand(1,13)) {
+ case 1: setquest 5074; break;
+ case 2: setquest 5075; break;
+ case 3: setquest 5076; break;
+ case 4: setquest 5077; break;
+ case 5: setquest 5078; break;
+ case 6: setquest 5079; break;
+ case 7: setquest 5080; break;
+ case 8: setquest 5081; break;
+ case 9: setquest 5082; break;
+ case 10: setquest 5083; break;
+ case 11: setquest 5085; break;
+ case 12: setquest 5087; break;
+ case 13: setquest 5089; break;
+ }
+ mes "Leader gives you a note without hesitation. You must follow the order now.";
+ close;
+}
+
+mal_in01,136,216,2 script Seichi#gamer 4_CAT_DOWN,{
+ if (malang_gamer == 20) {
+ mes "[Seichi]";
+ mes "Ah~ I'm hungry. Any rats wandering around?";
+ next;
+ mes "[Seichi]";
+ mes "Ah~ I think I could eat 100 cramps at once.";
+ next;
+ mes "[Seichi]";
+ mes "Hey, why don't you look around? Who knows? Maybe we can find a delicious canned food~";
+ emotion e_no;
+ next;
+ mes "[Seichi]";
+ mes "Then, you can give me one. Hehe~";
+ close;
+ } else {
+ mes "[Seichi]";
+ mes "I am hungry~ Any leftover canned food there?";
+ emotion e_no;
+ close;
+ }
+ end;
+}
+
+mal_in01,136,215,2 script Row#gamer 4_CAT_ADV1,{
+ if (malang_gamer == 20) {
+ mes "[Row]";
+ mes "Hut! Human, you came to see me, Row the Great? What? No?";
+ next;
+ mes "[Row]";
+ mes "What do want then? Get lost. Ah...!!";
+ next;
+ mes "[Row]";
+ mes "You want to play the Flag Game? I see. Show me what you've got.";
+ next;
+ mes "[Row]";
+ mes "But, you know you can never beat me, the great Row.";
+ emotion e_gg;
+ close;
+ } else {
+ mes "[Row]";
+ mes "Flag waving is a serious game. Only special cats like me can compete. Meow~";
+ close;
+ }
+ end;
+}
+
+mal_in01,136,214,2 script Debong#gamer 4_CAT,{
+ if (malang_gamer == 20) {
+ mes "[Debong]";
+ mes "Hair picking is my best hobby meow.";
+ next;
+ mes "[Debong]";
+ mes "When picking hair meow~";
+ mes "Time really flies meow~";
+ next;
+ mes "[Debong]";
+ mes "Come here, you, meow. I'll pick your hair meow.";
+ emotion e_lv;
+ close;
+ } else {
+ mes "The cat is picking your hair.";
+ close;
+ }
+ end;
+}
+
+mal_in01,136,213,2 script Libs#gamer 4_M_BOSSCAT,{
+ if (malang_gamer == 20) {
+ mes "[Libs]";
+ mes "Arrgg!! Why should I play this stupid flag waving game here?";
+ emotion e_an;
+ next;
+ mes "[Libs]";
+ mes "Hey you. What do you think? I know you've hearing me!";
+ next;
+ mes "[Libs]";
+ mes "... ... ...";
+ next;
+ mes "[Libs]";
+ mes "Well, I'm sure you won't have a clue why this is happening. I forgive you.";
+ emotion e_ok;
+ next;
+ mes "[Libs]";
+ mes "How can a human understand the overwhelming heart of cats.";
+ emotion e_pif;
+ close;
+ } else {
+ mes "[Libs]";
+ mes "A human? What are you doing here?";
+ next;
+ mes "[Libs]";
+ mes "Oh! I see. Our director is looking a practicing partner, why don't you apply?";
+ close;
+ }
+ end;
+}
+
+mal_in01,136,212,2 script YongYong#gamer 4_CAT_REST,{
+ if (malang_gamer == 20) {
+ mes "[YongYong]";
+ mes "Meow~ I'm annoyed meow~";
+ emotion e_an;
+ next;
+ mes "[YongYong]";
+ mes "Annoying meow~";
+ emotion e_an;
+ next;
+ mes "[YongYong]";
+ mes "You're annoying meow~";
+ emotion e_an;
+ next;
+ mes "[YongYong]";
+ mes "What are you, a dog? Meow~!";
+ emotion e_an;
+ specialeffect EF_SONICBLOW2;
+ next;
+ mes "[YongYong]";
+ mes "Do not mess with the drooping cat.";
+ mes "Or you will regret it.";
+ close;
+ } else {
+ mes "z..Z..z..Z";
+ mes "The cat is sleeping.";
+ close;
+ }
+ end;
+}
+
+malangdo,120,140,7 script Sign#Cat G Entrance 4_BULLETIN_BOARD2,{
+ mes "A small sign.";
+ next;
+ mes "[Cat Gamers Headquarters]";
+ mes "- Practicing partner welcome -";
+ mes "- Recruiting 'Cat Gamers' -";
+ mes "Consult with our Cat Gamers Director.";
+ close;
+}
+
+mal_in01,15,221,6 script Sign#Cat G 1F 4_BULLETIN_BOARD2,{
+ mes "[Cat Gamers Headquarters 1F]";
+ mes "- ~ B 1 ~ -";
+ mes "Rock Paper Scissors practice room";
+ mes "ChamChamCham practice room";
+ close;
+}
+
+mal_in01,77,214,4 script Sign#Cat G B1 4_BULLETIN_BOARD2,{
+ mes "[Cat Gamers Headquarters B1]";
+ mes "- ~ 1 F ~ -";
+ mes "Consult with the director...";
+ mes "-----------------------------";
+ mes "- ~ B 2 ~ -";
+ mes "KongNyangKong & Flag Game practice room";
+ mes "'Cat Gamers' Tech Team lab";
+ close;
+}
+
+mal_in01,142,220,6 script Sign#Cat G B2 4_BULLETIN_BOARD2,{
+ mes "[Cat Gamers Headquarters B2]";
+ mes "- ~ B 1 ~ -";
+ mes "Rock Paper Scissors practice room";
+ mes "ChamChamCham practice room";
+ close;
+}
+
+mal_in01,155,222,2 script Uneet#gamer 4_LAM,{
+ set .@playtime, checkquest(5069,PLAYTIME);
+ if (.@playtime == 0 || .@playtime == 1) {
+ mes "[Uneet]";
+ mes "Wow Wot~ What a busy day~";
+ mes "Oh, you are the one who won the honorable certificate?";
+ next;
+ mes "[Uneet]";
+ mes "There are more orders coming every day. Ahh!! Give me some more manpower!!";
+ close;
+ } else if (.@playtime == 2) {
+ mes "[Uneet]";
+ mes "Nyah~ Ong~ Certificate complete!!";
+ next;
+ mes "[Uneet]";
+ mes "I already gave your certificate to the Cat Gamers Director! Go check it out~";
+ next;
+ mes "[Uneet]";
+ mes "Please... Keep this wherever you go.";
+ close;
+ } else if (malang_gamer < 19) {
+ mes "[Uneet]";
+ mes "I am a cat. Nyah~ Ong~";
+ mes "I look like a sheep because I was so busy I didn't have time to shave.";
+ mes "It is not my fault...";
+ close;
+ } else {
+ mes "[Uneet]";
+ mes "Nyah~ Ong~ Do not interrupt my resting.";
+ mes "Usually, I am very busy...";
+ mes "Don't touch me.";
+ next;
+ mes "[Uneet]";
+ mes "I'm a bit fat now, but you should look at yourself too. Haha...";
+ close;
+ }
+ end;
+}
+
+mal_in01,30,222,4 script Interview Cat#gamer 4_CAT_ADV2,{
+ mes "[Interview Cat]";
+ mes "I want join 'Cat Gamers'.";
+ mes "But it seems the Cat Gamers Director is busy now. Should I just leave?";
+ next;
+ mes "[Interview Cat]";
+ mes "What? You also want join this group?";
+ close;
+}
+
+mal_in01,19,213,1 script Waiting Cat#gamer 4_CAT_3COLOR,{
+ mes "[Waiting Cat]";
+ mes "Why did someone put that vase inside of a glass?";
+ mes "The Cat Gamers Director did that?";
+ next;
+ mes "[Waiting Cat]";
+ mes "What strange taste.";
+ mes "Maybe I should rethink joining 'Cat Gamers', huh?";
+ close;
+}
+
// Archangel Wing Enchants :: enc_angel
//============================================================
-malangdo,234,153,6 script Notice Board#mal 837,{
+malangdo,234,153,6 script Notice Board#mal 2_BULLETIN_BOARD,{
mes "^0000FFThere's a hastily written message on this bulletin board.^000000";
next;
mes "A fallen angel within will unlock a hidden enchantment to Archangel Wings.";
close;
}
-mal_in01,15,16,3 script Fallen Angel#mal 403,{
+mal_in01,15,16,3 script Fallen Angel#mal 4_F_VALKYRIE2,{
disable_items;
if (checkweight(1201,1) == 0) {
mes "You are carrying too many items, please reduce them and come back!";
@@ -6301,7 +10626,7 @@ mal_in01,15,16,3 script Fallen Angel#mal 403,{
else if (.@i < 854) set .@enchant,4710; //Inteligence1
else set .@enchant,0;
- set Zeny, Zeny - 1000000;
+ Zeny -= 1000000;
delequip EQI_GARMENT;
if (.@enchant == 0) {
mes "[Fallen Angel]";
@@ -6356,6 +10681,7 @@ mal_in01,15,16,3 script Fallen Angel#mal 403,{
}
set .@equip_refine, getequiprefinerycnt(EQI_GARMENT);
setarray .@equip_card[0], getequipcardid(EQI_GARMENT,0),getequipcardid(EQI_GARMENT,1),getequipcardid(EQI_GARMENT,2);
+ delitem 6417,3; //Silvervine
delequip EQI_GARMENT;
getitem2 2573,1,1,.@equip_refine,0,.@equip_card[0],.@equip_card[1],.@equip_card[2],0; //Archangel_Wing
mes "[Fallen Angel]";
diff --git a/npc/re/quests/quests_malaya.txt b/npc/re/quests/quests_malaya.txt
new file mode 100644
index 000000000..0c9eb2a82
--- /dev/null
+++ b/npc/re/quests/quests_malaya.txt
@@ -0,0 +1,9152 @@
+//===== Hercules Script ======================================
+//= Port Malaya Quest NPCs
+//===== By: ==================================================
+//= Masao
+//===== Current Version: =====================================
+//= 1.2
+//===== Description: =========================================
+//= [Official Conversion]
+//= Quest NPCs related to Port Malaya:
+//== Cautious Village, Port Malaya Daily Quests,
+//== Secret in the Woods, Bakonawa Extermination
+//== Nurse in Port Malaya, Pintados Festival
+//= Merchants:
+//== Traders, Upgrade Boss Equipment
+//===== Additional Comments: =================================
+//= 0.1 Traders only. Adapted from Masao's conversion. [Euphy]
+//= 0.2 Added Tribe Blacksmith [DeadlySilence]
+//= 0.3 Added "Secret in the Woods" quest [DeadlySilence]
+//= 0.4 Added "Cautious Village" and subsequent quests [DeadlySilence]
+//= 0.5 Added "Bakonawa Extermination" quest. [Euphy]
+//= 1.0 Added "Nurse in Port Malaya" and "Pintados Festival" quests. [Euphy]
+//= 1.1 Added GM management function and NPC. [Euphy]
+//= 1.2 Added item Lost_Belongings to Tiyanak mob & fix wrong item id [Michieru]
+//============================================================
+
+// Cautious Village & Daily Quests :: hi_malaya
+//============================================================
+malaya,266,76,3 script Rodel the Guard#malaya 4_MAL_SOLDIER,4,4,{
+ if (MaxWeight - Weight < 1000 || checkweight(1201,1) == 0) {
+ mes "Cannot proceed with the quest. You are carrying too many items. -";
+ close;
+ }
+ if (malaya_hi == 0) {
+ mes "[Rodel the Guard]";
+ mes "Traveling at such confusing times?";
+ mes "Villagers have been feeling more threatened by evil spirits recently.";
+ mes "Villagers are scared and trembling with fear.";
+ next;
+ mes "[Rodel the Guard]";
+ mes "So... the citizens of Port Malaya will feel uncomfortable around you even though there are no hard feelings toward you.";
+ mes "Inns and stops may be closed to outsiders.";
+ next;
+ mes "[Rodel the Guard]";
+ mes "There is no definite solution to this, but you might want to meet Phong in Mumbaki first.";
+ mes "If the village leader gives his confirmation, other people might be less worried.";
+ next;
+ mes "[Rodel the Guard]";
+ mes "I will mark on the map the location of Phong in Mumbaki.";
+ mes "I welcome your visit though the times are harsh.";
+ viewpoint 1, 185, 358, 0, 0x0A82FF;
+ set malaya_hi, 1;
+ setquest 7350;
+ close;
+ } else if (malaya_hi == 1) {
+ mes "[Rodel the Guard]";
+ mes "Meet with Phong in Mumbaki first.";
+ mes "If you are proven to have a pure soul, other villagers will not avoid you.";
+ mes "If you are not sure of the location, I will mark it on your map.";
+ viewpoint 1, 185, 358, 0, 0x0A82FF;
+ close;
+ } else if (malaya_hi >= 20) {
+ if (BaseLevel < 100) {
+ mes "[Rodel the Guard]";
+ mes "How is the life here?";
+ mes "People aren't so bad are they?";
+ mes "If you were a little more skillful, there might be a job for you. Right now, you are little bit below the standard.";
+ next;
+ mes "[Rodel the Guard]";
+ mes "If you become stronger,";
+ mes "I was thinking of giving you the extermination mission that's being carried out in the city. What a shame. ";
+ close;
+ }
+ .@playtime = checkquest(7405, PLAYTIME);
+ if (.@playtime == 0) {
+ mes "[Rodel the Guard]";
+ mes "Whew, thanks to you, I have one less thing to worry about.";
+ mes "I will lose less of my things.";
+ mes "Job well done.";
+ next;
+ mes "[Rodel the Guard]";
+ mes "You can come back if you want.";
+ mes "You understand what I mean right?";
+ close;
+ } else if (.@playtime == 2) {
+ erasequest 7405;
+ mes "[Rodel the Guard]";
+ mes "Oh, about Jejeling that you hunted down before.";
+ mes "People traveling in and out of Baryo are happy about it.";
+ mes "If it's not much too much trouble, I'd like to ask for your help one more time.";
+ next;
+ mes "[Rodel the Guard]";
+ mes "You don't have to do it now, just whenever you are comfortable.";
+ mes "Come and find me when you decide.";
+ close;
+ } else {
+ .@hunting = checkquest(7404, HUNTING);
+ if (.@hunting == -1) {
+ mes "[Rodel the Guard]";
+ switch(rand(1, 6)) {
+ case 1:
+ mes "Recently, there have been a few that gained recognition for their bravery among the villagers." + $malayaNames$[0] + ", " + $malayaNames$[3] + ", " + $malayaNames$[5] + "... Isn't that amazing?";
+ break;
+ case 2:
+ mes "Yesterday, I saw someone who was carried off to the hospital after rolling down the stairs at the park. That person went by the name of " + $malayaNames$[1] + ". I wonder if that person is alright.";
+ break;
+ case 3:
+ mes "The one who contributed the most in the Jejeling hunt was " + $malayaNames$[1] + ".";
+ break;
+ case 4:
+ mes "If you are bored, how about you stand guard for me? This is a heck of a job. You have to keep standing like a statue even till the sun rises up above your head.";
+ break;
+ case 5:
+ mes "Have you been alone with a woman inside a Jeepney? Wow that was awkward... I'm never going to get married at this rate...";
+ break;
+ case 6:
+ mes "Recently among visitors, one became a close friend to me. Do you know " + $malayaNames$[1] + "? Oh, of course you are a good friend as well.";
+ break;
+ }
+ mes "Oh yes, there is a job for you if you are not too busy. Are you interested?";
+ next;
+ mes "[Rodel the Guard]";
+ mes "We are going to organize an extensive Jejeling hunt this time.";
+ mes "Peddlers going in and out of Baryo are always complaining about Jejelings.";
+ next;
+ if (select("Join the Jejeling hunt.:Refuse.") == 2) {
+ mes "[Rodel the Guard]";
+ mes "Is that so? I'm sorry to hear that.";
+ mes "Things would be so much simpler if we had a person like you around.";
+ close;
+ }
+ mes "[Rodel the Guard]";
+ mes "You just have to hunt 20 jejelings each.";
+ mes "It would be a simple task for you.";
+ setquest 7404;
+ close;
+ } else if (.@hunting == 0) {
+ mes "[Rodel the Guard]";
+ mes "You have to get rid of 20 Jejelings.";
+ mes "20 should be enough to give those Jejelings a good scare.";
+ close;
+ } else if (.@hunting == 1) {
+ mes "[Rodel the Guard]";
+ mes "Oh, the hunt is over, but you haven't killed all the Jejelings.";
+ mes "Come again if you want another try.";
+ erasequest 7404;
+ close;
+ } else {
+ mes "[Rodel the Guard]";
+ mes "Oh, I have confirmed you got rid of 20 Jejelings.";
+ mes "Here, this is a reward for people who participated in the Jejeling hunt.";
+ next;
+ mes "[Rodel the Guard]";
+ mes "I think there will be more Jejeling hunts in the future. Please join us again next time.";
+// if (IsPremiumPcCafe == 10)
+ getitem 6497, 2; // Lesser_Agimat
+// else
+// getitem 6497, 1; // Lesser_Agimat
+ getexp 200000,200000;
+ erasequest 7404;
+ setquest 7405;
+ if (rand(1))
+ $malayaNames$[1] = strcharinfo(0);
+// SavePPL Jejellopy
+ close;
+ }
+ }
+ } else {
+ mes "[Rodel the Guard]";
+ mes "Please understand even if people look at you warily.";
+ mes "The ghost have been haunting the people around here.";
+ close;
+ }
+OnTouch:
+ emotion e_gasp;
+ end;
+
+OnInit:
+ // if there are no names set, set some default values
+ if (!getarraysize($malayaNames$)) {
+ $malayaNames$[0] = "unknown";
+ $malayaNames$[1] = "unknown";
+ $malayaNames$[2] = "unknown";
+ $malayaNames$[3] = "unknown";
+ $malayaNames$[4] = "unknown";
+ $malayaNames$[5] = "unknown";
+ }
+ end;
+}
+
+malaya,185,358,3 script Leader Phong in Mumbaki 4_BARYO_CHIEF,{
+ if (MaxWeight - Weight < 1000 || checkweight(1201,1) == 0) {
+ mes "- Cannot proceed with the quest. You are carrying too many items. -";
+ close;
+ }
+ if (malaya_hi < 2) {
+ mes "[Phong in Mumbaki]";
+ mes "Looks like this soul came across a big body of water.";
+ mes "Young friend.";
+ mes "The reason you found me... yes... I see.";
+ next;
+ mes "[Phong in Mumbaki]";
+ mes "You don't have to say it in words.";
+ mes "The people are overly cautious of you.";
+ mes "Rodel was probably concerned about it, so he sent you here.";
+ next;
+ if (malaya_hi == 0) {
+ mes "[Phong in Mumbaki]";
+ mes "No?";
+ mes "Well then maybe there was some kind of a Spiritual bond between us.";
+ next;
+ }
+ mes "[Phong in Mumbaki]";
+ mes "Nonetheless, good to meet you, young friend.";
+ mes "Don't blame the villagers too much for their attitudes toward you.";
+ next;
+ mes "[Phong in Mumbaki]";
+ mes "We are always surrounded by spirits.";
+ mes "We live with them, praying for peace.";
+ mes "But recently, there has been a problem.";
+ next;
+ mes "[Phong in Mumbaki]";
+ mes "For some unknown reason,";
+ mes "Spirits have been running amok, and evil sprits have been haunting the villagers.";
+ next;
+ mes "[Phong in Mumbaki]";
+ mes "This is the shadow that is cast on this beautiful town.";
+ mes "They are cautious because they don't know when the dark shadow will fall on them.";
+ mes "They visit without warning.";
+ next;
+ mes "^4d4dffPhong in Mumbaki turns his head and dark shadows appear.";
+ mes "People are in panic, everyone trembling with fear.^000000";
+ cutin "malaya_ghost01", 4;
+ next;
+ select("Step toward the shadow.:Draw weapon.");
+ mes "[Phong in Mumbaki]";
+ mes "They have followed the trace of the outsider. ";
+ mes "Don't get to close too them.";
+ mes "Your soul can get absorbed.";
+ next;
+ mes "[Phong in Mumbaki]";
+ mes "Hmm? They are responding.";
+ mes "I don't understand? They look scared as if facing a powerful soul.";
+ mes "This feeling... it can't be...";
+ cutin "malaya_ghost02", 4;
+ next;
+ mes "^4d4dffLike words of Phong in Mumbaki, spirits are responding to something, hesitating.";
+ mes "Observing their reaction, you get closer. The spirits are flustered.^000000";
+ next;
+ cutin "", 255;
+ mes "[Phong in Mumbaki]";
+ mes "Amazing. Holder of a soul so strong and pure...!";
+ mes "The dark spirits have disappeared because of your presence.";
+ next;
+ mes "[Phong in Mumbaki]";
+ mes "I think other villagers would treat you differently now...";
+ mes "Haven't we all witnessed this miracle?";
+ next;
+ mes "[Phong in Mumbaki]";
+ mes "Young friend. Your presence is welcomed anywhere.";
+ mes "The light from your pure soul will protect you from the darkness.";
+ set malaya_hi, 10;
+ if (checkquest(7350) > -1)
+ erasequest 7350;
+ close;
+ } else if (malaya_hi == 10) {
+ mes "[Phong in Mumbaki]";
+ mes "Everyone in the village witnessed how strong and pure your soul is.";
+ mes "Do not be afraid of the dark.";
+ close;
+ } else if (malaya_hi == 11) {
+ mes "[Phong in Mumbaki]";
+ mes "Is there something wrong?";
+ mes "You look disturbed.";
+ mes "Your clothes also look messed up. Was there some kind of trouble?";
+ next;
+ switch (select("Explain what happened.:There is nothing to talk about.")) {
+ case 1:
+ mes "[Phong in Mumbaki]";
+ mes "Is that so?";
+ mes "Ha ha... that is a big problem. ";
+ mes "You must've been concerned.";
+ next;
+ mes "[Phong in Mumbaki]";
+ mes "You know, we were preparing a spiritual protection for ";
+ mes "villagers who are afraid of evil spirits...";
+ mes "but preparation is not going well.";
+ next;
+ mes "[Phong in Mumbaki]";
+ mes "As a temporary solution, how about giving them what they want?";
+ mes "Just pick among the items you have that are unimportant and give them to them.";
+ next;
+ mes "[Phong in Mumbaki]";
+ mes "All they want is inner peace anyways.";
+ mes "They give meaning to little things and find peace within that behavior.";
+ next;
+ mes "[Phong in Mumbaki]";
+ mes "What is really important is the belief that you will be safe as long as you carry that item.";
+ mes "If people can stop being afraid by holding on to your old shirt button, then that button is a Spiritual Protection.";
+ next;
+ mes "^4d4dffAs Mumbaki said, giving out some items to serve as a Spiritual Protection would be a good idea.";
+ mes "What would be adequate as a Spiritual Protection..^000000";
+ next;
+ switch (select("Holy Water!:Holy magical item Blue Gemstone?!:Writing utensils or school supplies")) {
+ case 1:
+ mes "[Phong in Mumbaki]";
+ mes "The name itself suggests holiness.";
+ mes "It was blessed by the Holy Water, yes?";
+ mes "Not bad.";
+ mes "Is there another? Something more persuading would be nice.";
+ next;
+ select("Talk about Blue Gemstone.");
+ mes "[Phong in Mumbaki]";
+ mes "Aha... a stone that disappears after absorbing the curse or magical affect instead of the holder.";
+ mes "Used in holy magic?";
+ mes "Sounds good.";
+ next;
+ break;
+ case 2:
+ mes "[Phong in Mumbaki]";
+ mes "Aha... a stone that disappears after absorbing the curse or magical affect instead of the holder.";
+ mes "Used in holy magic?";
+ mes "But it does not sound so holy though.";
+ next;
+ select("Talk about the Holy Water.");
+ mes "[Phong in Mumbaki]";
+ mes "The name itself suggests holiness.";
+ mes "It was blessed by the Holy Water, yes?";
+ mes "Sounds good.";
+ next;
+ break;
+ case 3:
+ mes "[Phong in Mumbaki]";
+ mes "Hmm? It isn't too bad if you are always going to carry it around.";
+ mes "But I think something that looks more persuading would be better.";
+ next;
+ mes "[Phong in Mumbaki]";
+ mes "It would be better is there is a holy feel to it...";
+ mes "Do you have something that was blessed by your god?";
+ next;
+ select("Holy Water or Blue Gemstone?");
+ mes "[Phong in Mumbaki]";
+ mes "The name itself suggests holiness.";
+ mes "It was blessed by the Holy Water, yes?";
+ mes "Stone that protects the bearer...";
+ mes "Sounds perfect.";
+ next;
+ break;
+ }
+ mes "[Phong in Mumbaki]";
+ mes "Can you find Holy Water and Blue Gemstone that you spoke of?";
+ mes "While I'm working on the Spiritual Protection, you can give out the Holy Artifacts.";
+ next;
+ mes "[Phong in Mumbaki]";
+ mes "People's trust toward you will grow stronger if you do that.";
+ mes "They will trust and listen to you.";
+ mes "Yes, because you will become their heart's savior.";
+ next;
+ mes "^4d4dffListening to Phong in Mumbaki, you decided to give out Holy Water and Blue Gemstone to the villagers.";
+ set malaya_hi, 12;
+ erasequest 7358;
+ setquest 7351;
+ close;
+ case 2:
+ mes "[Phong in Mumbaki]";
+ mes "Is that so?";
+ mes "Tell me if anything happens.";
+ mes "For you, it'll be my pleasure to lend you a hand";
+ close;
+ }
+ } else if (malaya_hi == 12) {
+ mes "[Phong in Mumbaki]";
+ mes "Holy Water and Blue Gemstone you spoke of will function well. ";
+ mes "I hope they can set aside their fear and worries this way...";
+ close;
+ } else if (malaya_hi == 13) {
+ mes "[Phong in Mumbaki]";
+ mes "Did you give out your present to everyone?";
+ mes "By doing this, you made friends with everyone in the town.";
+ next;
+ mes "[Phong in Mumbaki]";
+ mes "I found ways to build Spiritual Protection.";
+ mes "My grandchild Imelda will create it.";
+ mes "So don't worry. You don't have to give out any more of your things.";
+ erasequest 7365;
+ set malaya_hi, 20;
+ getexp 200000, 200000;
+// SavePPL Soul_Protection
+ close;
+ } else {
+ mes "[Phong in Mumbaki]";
+ switch(rand(1, 6)) {
+ case 1:
+ mes "There was a traveler who is as brave as you. The traveler went by the name of " + $malayaNames$[0] + ". Do you know that person?";
+ break;
+ case 2:
+ mes "There is a traveler recently that has been gaining popularity in the village. The traveler's name was " + $malayaNames$[0] + ". Outsiders seem to be very vigorous.";
+ break;
+ case 3:
+ mes "I have never in my life living as a Mumbaki seen a soul as pure and as strong as that of " + $malayaNames$[0] + "'s. Yes, even stronger and purer than yours.";
+ break;
+ case 4:
+ mes "I witnessed a traveler who flipped backward after stepping on a fruit peel. " + $malayaNames$[1] + ". He cried out 'Ouch! Somebody please help~'. We all had a good laugh.";
+ break;
+ case 5:
+ mes "Welcome! Welcome! You are always welcome around here.";
+ break;
+ case 6:
+ mes "I don't know if you are aware of this, but " + $malayaNames$[0] + " even aided Baryo. I feel good to know that there is a one more good soul around.";
+ break;
+ }
+ next;
+ switch (select("Ask for advice.:Bless flowers...")) {
+ case 1:
+ if (malaya_diwata == 2) {
+ mes "[Phong in Mumbaki]";
+ mes "Ferry at the Port?";
+ mes "So that has happened...";
+ mes "Important thing is to first find out why that child is so upset.";
+ next;
+ mes "[Phong in Mumbaki]";
+ mes "In this case, a bribe would work perfectly.";
+ mes "Flowers are always the best choice for seducing woman, right?";
+ next;
+ select("This is not a love consulting.");
+ mes "[Phong in Mumbaki]";
+ mes "I'm just saying.";
+ mes "Dead or alive, that poor soul is just a little girl.";
+ next;
+ mes "[Phong in Mumbaki]";
+ mes "Girls that age will smile even at the falling leaves.";
+ mes "Open her heart with an armful of flowers. ";
+ next;
+ mes "[Phong in Mumbaki]";
+ mes "Let's see...";
+ mes "^4d4dff3 Mystic Flowers, 3 Elegant Flowers, 3 Pretty Flowers^000000 would be enough to make a Bouquet.";
+ next;
+ mes "[Phong in Mumbaki]";
+ mes "Gather these flowers, and I'll make a Bouquet out of it and bless it.";
+ mes "Flowers can be found out side the village.";
+ set malaya_diwata, 3;
+ erasequest 7396;
+ setquest 7397;
+ close;
+ } else if (malaya_diwata == 3) {
+ if ((countitem(6509) < 3) || (countitem(6510) < 3) && (countitem(6511) < 3)) {
+ mes "[Phong in Mumbaki]";
+ mes "There are ^4d4dff3 Mystic Flowers, 3 Elegant Flowers, 3 Pretty Flowers^000000.";
+ mes "Do you understand?";
+ close;
+ }
+ mes "[Phong in Mumbaki]";
+ mes "Oh... I can smell the scent of flowers from here.";
+ mes "I'll gather these and bless them.";
+ next;
+ mes "-Phong in Mumbaki carries out a blessing ceremony after carefully tying flowers into a Bouquet.-";
+ mes "-Just by watching it, holiness overwhelms you.-";
+ next;
+ mes "[Phong in Mumbaki]";
+ mes "Isn't it a beauty?";
+ mes "Not bad for a old man huh?";
+ mes "I made so many Offering Bouquets in the past that I can make one with my eyes closed now.";
+ next;
+ mes "[Phong in Mumbaki]";
+ mes "Now, deliver this to that child.";
+ mes "I hope she opens her heart with this and becomes willing to talk to you.";
+ delitem 6509, 3; // Mysterious_Flower
+ delitem 6510, 3; // Elegant_Flower
+ delitem 6511, 3; // Beautiful_Flower
+ getitem 6506, 1; // Memorial_Bouquet
+ set malaya_diwata, 4;
+ erasequest 7397;
+ setquest 7398;
+ close;
+ } else if (malaya_diwata == 4) {
+ mes "[Phong in Mumbaki]";
+ mes "Take this Bouquet and talk to the spirit that has nested in the boat.";
+ close;
+ } else if (malaya_diwata > 5) {
+ mes "[Phong in Mumbaki]";
+ mes "It is a pity to see a misfortunate spirit... just as with that Ferry incident.";
+ mes "If you are going to offer a Bouquet for a spirit, I'm always willing to help.";
+ close;
+ } else {
+ mes "[Phong in Mumbaki]";
+ mes "There is nothing this old man can tell you.";
+ mes "Nothing can beat staying healthy, right?";
+ close;
+ }
+ case 2:
+ if (checkquest(7402) == -1) {
+ mes "[Phong in Mumbaki]";
+ mes "Who is the floral tribute for?";
+ mes "Don't tell me you're making one in advance cause you're lazy?";
+ mes "A tribute must be sincere. Don't forget that.";
+ close;
+ }
+ if (countitem(6506) > 0) {
+ mes "[Phong in Mumbaki]";
+ mes "Isn't it already made?";
+ mes "What is that in your hand?";
+ mes "Why are you standing around here? Go and give out those flowers.";
+ close;
+ }
+ if ((countitem(6509) < 3) || (countitem(6510) < 3) || (countitem(6511) < 3)) {
+ mes "[Phong in Mumbaki]";
+ mes "Going to Diwata?";
+ mes "You need Mysterious Flowers, Elegant Flowers and Beautiful Flowers, 3 of each, okay?";
+ mes "I'll make it when the flowers are ready.";
+ close;
+ }
+ mes "[Phong in Mumbaki]";
+ mes "Diwata is some woman.";
+ mes "And you going to her every day is something too.";
+ next;
+ mes "[Phong in Mumbaki]";
+ mes "Hey, here's the Bouquet.";
+ mes "Make offerings with your soul and wish for a fruitful day.";
+ delitem 6509, 3; // Mysterious_Flower
+ delitem 6510, 3; // Elegant_Flower
+ delitem 6511, 3; // Beautiful_Flower
+ getitem 6506, 1; // Memorial_Bouquet
+ close;
+ }
+ }
+}
+
+malaya,169,350,5 script Imelda#malaya 4_M_BRZ_JACI,{
+ if (MaxWeight - Weight < 1000 || checkweight(1201,1) == 0) {
+ mes "- Cannot proceed with the quest. You are carrying too many items. -";
+ close;
+ }
+ if (malaya_hi < 10) {
+ mes "[Imelda]";
+ mes ".... Hmm.";
+ close;
+ } else if (malaya_hi < 20) {
+ mes "[Imelda]";
+ mes "..........";
+ mes "Not bad.";
+ mes "I have my eyes on you. Let's see how you do in this town.. *chuckle*";
+ next;
+ mes "- She is a rather annoying little girl. -";
+ close;
+ } else if (malaya_hi == 20) {
+ mes "[Imelda]";
+ mes "Aren't you the hero who recently got on the villagers good side with the cheap foreign Holy Artifact?";
+ mes "What's up?";
+ next;
+ select ("You want to make a traditional Spiritual Protection?");
+ mes "[Imelda]";
+ mes "Yes. My grandfather found a way.";
+ mes "I'm going to make it.";
+ next;
+ mes "[Imelda]";
+ mes "This is my job and nobody else's.";
+ mes "Protecting traditions is my job.";
+ next;
+ switch (select("Is that so?:Good luck on your own!")) {
+ case 1:
+ if (BaseLevel < 100) {
+ mes "[Imelda]";
+ mes "Of course.";
+ mes "And to get help from someone as... weak as you is not such a good idea.";
+ next;
+ mes "[Imelda]";
+ mes "Getting the materials is not as easy as it sounds.";
+ mes "Maybe when you become stronger, yes, but not now. Never.";
+ close;
+ }
+ mes "[Imelda]";
+ mes "What then?";
+ mes "You're going to get the materials?";
+ mes "Fine I'll accept your proposal.";
+ next;
+ select ("....?!");
+ mes "[Imelda]";
+ mes "If you wanted to help me out so much, why didn't you say so from the beginning?";
+ mes "Or ask my grandfather?";
+ next;
+ mes "[Imelda]";
+ mes "If you are so enthusiastic about making a Spiritual Protection.";
+ mes "I'd have to give up, won't I?";
+ next;
+ mes "[Imelda]";
+ mes "Now, the needed materials are ^4d4dff6 Sharpened Bamboos, 6 Salt bags and 6 Silver Crosses^000000.";
+ next;
+ mes "[Imelda]";
+ mes "You'll have to manufacture the salt yourself at the north western beach.";
+ mes "You'll find the pits I've made there.";
+ next;
+ mes "[Imelda]";
+ mes "Go to Pandoi at the weapon shop for the Silver Crosses.";
+ mes "He promised to make me some.";
+ next;
+ mes "[Imelda]";
+ mes "Sharpened Bamboos you can get at Baryo or from a nearby forest.";
+ mes "You got all that?";
+ next;
+ mes "[Imelda]";
+ mes "Now's the time to prove your prowess!";
+ set malaya_hi, 21;
+ setquest 7366;
+ close;
+ case 2:
+ mes "[Imelda]";
+ mes "Indeed.";
+ mes "I will protect the village!";
+ next;
+ mes "[" + strcharinfo(0) + "]";
+ mes "Now I haven't seen any Spiritual Protections made with those!";
+ mes "Interesting~";
+ mes "I'm sure you'll do just fine~";
+ mes "Ha ha ha ha~";
+ next;
+ mes "[Imelda]";
+ mes "Stop annoying me and go away!";
+ close;
+ }
+ } else if (malaya_hi == 21) {
+ if ((countitem(6501) < 6) || (countitem(6500) < 6) || (countitem(6502) < 6)) {
+ mes "[Imelda]";
+ mes "I'll approve you as worthy if you bring all the materials for the Spiritual Protection!";
+ next;
+ mes "[Imelda]";
+ mes "Manufacture the salt at the north western beach and bamboos grow in Baryo Mahiwaga.";
+ mes "Ask Pandoi to make the Silver Crosses.";
+ mes "Don't forget to get 6 of each.";
+ close;
+ }
+ mes "[Imelda]";
+ mes "... Oh... My, you really did get them?";
+ mes "You're better than I thought.";
+ mes "That was not a compliment at all!";
+ next;
+ mes "[Imelda]";
+ mes "Now I'm going through the holy ritual to make a traditional Spiritual Protection.";
+ mes "Give them to me! And don't bother me during the process!";
+ set malaya_hi, 22;
+ delitem 6500, 6; // Sharp_Bamboo
+ delitem 6501, 6; // Salt_Bag
+ delitem 6502, 6; // Silver_Cross
+ erasequest 7366;
+ setquest 7367;
+ close;
+ } else if (malaya_hi == 22) {
+ .@playtime = checkquest(7367, PLAYTIME);
+ if (.@playtime == 0 || .@playtime == 1) {
+ mes "Imelda is in ritual with a devout aura, compared to when she streamed invectives.";
+ mes "Better not disturb her.";
+ close;
+ } else if (.@playtime == 2) {
+ mes "[Imelda]";
+ mes "Still here?";
+ mes "Of course, you want to see how much better my Spiritual Protection is compared to that cheap Holy Artifact.";
+ next;
+ mes "[Imelda]";
+ mes "Fine.";
+ mes "Now go and give these Spiritual Protections to the people!";
+ mes "You have all the rights to do so!";
+ mes "*Giggles*";
+ next;
+ mes "Took the Spiritual Protection, despite her ridiculous logic and vigor.";
+ mes "Let's give them to the villagers.";
+ set malaya_hi, 23;
+ getitem 6503, 6; // Soul_Protection
+ erasequest 7367;
+ setquest 7368;
+ setquest 7369;
+ setquest 7370;
+ setquest 7371;
+ setquest 7372;
+ setquest 7373;
+ setquest 7374;
+ close;
+ } else {
+ mes "[Imelda]";
+ mes "Don't disturb the ritual and go away.";
+ mes "Please wait while I make the Spiritual Protection.";
+ setquest 7367;
+ close;
+ }
+ } else if (malaya_hi == 23) {
+ mes "[Imelda]";
+ mes "The ones who gets the Spiritual Protections are on the list.";
+ mes "Go and give them the new Spiritual Protections";
+ next;
+ mes "[Imelda]";
+ mes "Such a kind person like yourself will surely do it, won't you? ";
+ mes "*Smirk*";
+ close;
+ } else if (malaya_hi == 24) {
+ mes "[Imelda]";
+ mes "... You really did what I asked you?";
+ mes "You know what? I give up.";
+ mes "I thought you'd leave after getting something from this town with sweet talk...";
+ next;
+ mes "[Imelda]";
+ mes "I apologize for my rude behavior.";
+ mes "....This is something to go with the apology.";
+ next;
+ mes "[Imelda]";
+ mes "I'd be happy if you could help me, because the Spiritual Protections needs to be made every day.";
+ set malaya_hi, 25;
+ erasequest 7374;
+ erasequest 7379;
+ setquest 7375;
+// if (IsPremiumPcCafe == 10)
+ getitem 6497, 2; // Lesser_Agimat
+// else
+// getitem 6497, 1; // Lesser_Agimat
+ getexp 200000,200000;
+ if (rand(1))
+ $malayaNames$[0] = strcharinfo(0);
+ close;
+ } else {
+ mes "[Imelda]";
+ mes "Hello there.";
+ mes "Did you enjoy the scenery of Malaya?";
+ mes "It's nice to have a chat with friends on a Jeepney.";
+ next;
+ switch (select("I'll help you making Spiritual Protections.:Love and Spiritual Protection for all.")) {
+ case 1:
+ if (checkquest(7380) > -1) {
+ if ((countitem(6501) < 6) || (countitem(6502) < 6) || (countitem(6500) < 6)) {
+ mes "[Imelda]";
+ mes "Materials for making a Spiritual Protection are";
+ mes "Salt Bags, Silver Crosses and Sharpened Bamboos, 6 of each.";
+ next;
+ mes "[Imelda]";
+ mes "Salt form the north western beach, Silver Crosses from Pandoi, and Sharpened Bamboos from near Baryo.";
+ close;
+ }
+ mes "[Imelda]";
+ mes "Yes, you got everything precisely.";
+ mes "Thanks for the help.";
+ next;
+ mes "[Imelda]";
+ mes "It'll be nice if you could help again tomorrow.";
+ mes "Here's something for your trouble.";
+ delitem 6500, 6; // Sharp_Bamboo
+ delitem 6501, 6; // Salt_Bag
+ delitem 6502, 6; // Silver_Cross
+ erasequest 7380;
+ setquest 7381;
+// if (IsPremiumPcCafe == 10)
+ getitem 6497, 2; // Lesser_Agimat
+// else
+// getitem 6497, 1; // Lesser_Agimat
+ getexp 200000,200000;
+ close;
+ } else {
+ .@playtime = checkquest(7381, PLAYTIME);
+ if ((.@playtime == 0) || (.@playtime == 1)) {
+ mes "[Imelda]";
+ mes "I appreciate your kindness, but we have enough for today.";
+ mes "I'll ask for you when I need more materials.";
+ close;
+ } else if (.@playtime == 2) {
+ mes "[Imelda]";
+ mes "Very good timing.";
+ mes "I ran out of materials for today's Spiritual Protections.";
+ mes "Could you go for them now?";
+ erasequest 7381;
+ next;
+ switch (select("Sure.:I need some preparations.")) {
+ case 1:
+ mes "[Imelda]";
+ mes "As usual then.";
+ mes "6 Salt Bags. Silver Crosses and Sharpened Bamboos, please.";
+ setquest 7380;
+ close;
+ case 2:
+ mes "[Imelda]";
+ mes ".......I see.";
+ mes "I'll be waiting then.";
+ close;
+ }
+ } else {
+ mes "[Imelda]";
+ mes "That is great news indeed.";
+ mes "You know what you need for making Spiritual Protections?";
+ mes "Of course, it's not your first time...";
+ next;
+ mes "[Imelda]";
+ mes "I'll leave you to it then.";
+ mes "6 Salt Bags. Silver Crosses and Sharpened Bamboos, please.";
+ setquest 7380;
+ close;
+ }
+ }
+ case 2:
+ if (checkquest(7374) != -1) {
+ if (checkquest(7379) == -1) {
+ mes "[Imelda]";
+ mes "Please deliver these new Spiritual Protections to the villagers.";
+ mes "You know them, right?";
+ close;
+ }
+ mes "[Imelda]";
+ mes "They cannot rely on these Spiritual Protections forever...";
+ mes "It would be much better to have a strong mind such as yours.";
+ next;
+ mes "[Imelda]";
+ mes "Strong spirits are full of light.";
+ mes "Those of the dark cannot approach due the blinding light";
+ next;
+ mes "[Imelda]";
+ mes "I guess that's it for today.";
+ mes "Thank you very much.";
+ setquest 7375;
+ erasequest 7374;
+ erasequest 7379;
+// if (IsPremiumPcCafe == 10)
+ getitem 6497, 2; // Lesser_Agimat
+// else
+// getitem 6497, 1; // Lesser_Agimat
+ getexp 200000,200000;
+ if (rand(1))
+ $malayaNames$[0] = strcharinfo(0);
+ close;
+ } else {
+ .@playtime = checkquest(7375, PLAYTIME);
+ if (.@playtime == 0 || .@playtime == 1) {
+ mes "[Imelda]";
+ mes "The Spiritual Protections given before will still be in effect";
+ mes "It's okay for now.";
+ close;
+ } else if (.@playtime == 2) {
+ mes "[Imelda]";
+ mes "I was wondering when you would drop by.";
+ mes "Could you deliver Spiritual Protections to the folks today?";
+ erasequest 7375;
+ next;
+ if (select("Of course.:Not today.") == 2) {
+ mes "[Imelda]";
+ mes "Yes.";
+ mes "Why not take a stroll in Malaya today?";
+ mes "Of course, you'll still encounter ghosts here and there.";
+ close;
+ }
+ if ((checkquest(7381) == 0) || (checkquest(7381) == 1)) {
+ mes "[Imelda]";
+ mes "Thank you very much.";
+ mes "Come back when you've given them all out.";
+ setquest 7374;
+ setquest 7368;
+ setquest 7369;
+ setquest 7370;
+ setquest 7371;
+ setquest 7372;
+ setquest 7373;
+ getitem 6503, 6; // Soul_Protection
+ close;
+ } else {
+ mes "[Imelda]";
+ mes "Thanks for your concern, but I couldn't make any because I ran out of materials.";
+ mes "Shame, is it not?";
+ mes "I do hope there's somebody willing to get them for me.";
+ close;
+ }
+ } else {
+ mes "[Imelda]";
+ mes "Are you at peace? I could feel your serenity all the way from here.";
+ mes "You want to spend that extra time for me?";
+ next;
+ mes "[Imelda]";
+ mes "Could you give out these Spiritual Protections to the villagers for me?";
+ next;
+ switch (select("Yes.:Not today.") == 2) {
+ mes "[Imelda]";
+ mes "Yes.";
+ mes "Why not take a stroll in Malaya today?";
+ mes "Of course, you'll still encounter ghosts here and there.";
+ close;
+ }
+ if ((checkquest(7381, PLAYTIME) == 0) || (checkquest(7381, PLAYTIME) == 1)) {
+ mes "[Imelda]";
+ mes "Thank you very much.";
+ mes "Come back when you've given them all out.";
+ setquest 7374;
+ setquest 7368;
+ setquest 7369;
+ setquest 7370;
+ setquest 7371;
+ setquest 7372;
+ setquest 7373;
+ getitem 6503, 6; // Soul_Protection
+ close;
+ } else {
+ mes "[Imelda]";
+ mes "Thanks for your concern, but I couldn't make any because I ran out of materials.";
+ mes "Shame, is it not?";
+ mes "I do hope there's somebody willing to get them for me.";
+ close;
+ }
+ }
+ }
+ break;
+ }
+ }
+ end;
+}
+
+malaya,181,353,5 script Old Man Nardo#malaya 4_M_BARYO_OLD,{
+ if (MaxWeight - Weight < 1000 || checkweight(1201,1) == 0) {
+ mes "- Cannot proceed with the quest. You are carrying too many items. -";
+ close;
+ }
+ if (malaya_hi < 10) {
+ mes "[Old Man Nardo]";
+ mes ".......";
+ mes "Not from around here, I see. I have nothing to say.";
+ close;
+ } else if (malaya_hi == 10) {
+ if (checkquest(7353) == 2) {
+ mes "[Old Man Nardo]";
+ mes "How about lending a hand for a poor old man?";
+ mes "I don't care if it's just a sleeve of your shirt, just give me something with your vigor.";
+ next;
+ mes "[Old Man Nardo]";
+ mes "You know, I've not long to go now...";
+ mes "Help me be at peace along the way.";
+ close;
+ } else {
+ mes "[Old Man Nardo]";
+ mes "Y... You!!";
+ mes "You're the young one with such strong spirit to fend off ghosts of darkness?!";
+ mes "Would it be... Possible to share some of your spirit with me?";
+ next;
+ mes "[Old Man Nardo]";
+ mes "I have trouble sleeping because of the mischievous ghosts around town, and my back hurts when it rains.";
+ next;
+ mes "[Old Man Nardo]";
+ mes "Please share that miraculous spirit of yours with me.";
+ mes "How about just a button of yours?";
+ next;
+ mes "-The troubled villagers desire your belongings because you fend off the ghosts. -";
+ setquest 7353;
+ completequest 7353;
+ if ((checkquest(7352) + checkquest(7353) + checkquest(7354) + checkquest(7355) + checkquest(7356) + checkquest(7357)) > 9) {
+ next;
+ mes "-So many have already asked you for this. Perhaps it will be better to speak with Phong in Mumbaki.-";
+ set malaya_hi, 11;
+ setquest 7358;
+ }
+ close;
+ }
+ } else if (malaya_hi == 11) {
+ mes "[" + strcharinfo(0) + "]";
+ mes "He'll rake off all my buttons if I talk to him now.";
+ mes "Must counsel with Mumbaki first!";
+ close;
+ } else if (malaya_hi == 12) {
+ if (checkquest(7360) != -1) {
+ mes "[Old Man Nardo]";
+ mes "To be honest, I do not believe that this Holy Artifact has any abilities.";
+ mes "It's just for the peace of mind.";
+ next;
+ mes "[Old Man Nardo]";
+ mes "Nevertheless, I see you differently now";
+ mes "To exclude just because someone's an outsider doesn't seem like a good idea anymore.";
+ mes "I'm sorry I ignored you.";
+ close;
+ }
+ if (!countitem(523) || !countitem(717)) {
+ mes "^4d4dffPrepare and give Blue Gemstone and Holy Water. ^000000";
+ close;
+ }
+ mes "[Old Man Nardo]";
+ mes "So, changed your mind about sharing your spirit?";
+ next;
+ select("Hand over the prepared items.");
+ mes "[Old Man Nardo]";
+ mes "Ahh... Thank you.";
+ mes "Now I can be at peace for some time...";
+ mes "...Peace is always good. Yes.";
+ next;
+ mes "- Gave Holy Water and Blue Gemstone to Old Man Nardo.-";
+ delitem 717, 1; //Blue_Gemstone
+ delitem 523, 1; //Holy_Water
+ setquest 7360;
+ completequest 7360;
+ if ((checkquest(7359) + checkquest(7360) + checkquest(7361) + checkquest(7362) + checkquest(7363) + checkquest(7364)) > 11) {
+ mes "-With the Old Man as last, enough Holy Artifacts have been given out.-";
+ set malaya_hi, 13;
+ erasequest 7351;
+ setquest 7365;
+ }
+ close;
+ } else if ((malaya_hi > 12) && (malaya_hi < 20)) {
+ mes "[Old Man Nardo]";
+ mes "To be honest, I do not believe that this Holy Artifact has any abilities.";
+ mes "It's just for the peace of mind.";
+ next;
+ mes "[Old Man Nardo]";
+ mes "When you have the time, could you help me out with something?";
+ mes "I'm fine now... I mean later.";
+ close;
+ } else {
+ mes "[Old Man Nardo]";
+ switch(rand(1, 6)) {
+ case 1:
+ mes "Do you know Capre? I hear " + $malayaNames$[1] + " travelers are helping out Capre... Anyhow...";
+ break;
+ case 2:
+ mes "There are plenty of Spiritual Protection these days. " + $malayaNames$[0] + " was keen at giving out Spiritual Protections. Is it a tradition where you come from?";
+ break;
+ case 3:
+ mes "I hear that, between merchants, " + $malayaNames$[1] + "? The name seems to pop up a lot. He seems to be talented in the business.";
+ break;
+ case 4:
+ mes "Once, I saw a traveler who slipped on a piece of fruit. 'Someone help " + $malayaNames$[1] + "~' he shouted, which gave me a good laugh.";
+ break;
+ case 5:
+ mes "Ah, you again? Thanks for the help back then.";
+ break;
+ case 6:
+ mes "I hear that " + $malayaNames$[2] + " is famous in Baryo. Why don't you try for some fame?";
+ break;
+ }
+ mes "What is it?";
+ next;
+ switch (select("Speak.:Give Spiritual Protection.:The Old Man and the Cast Iron Cauldron")) {
+ case 1:
+ mes "[Old Man Nardo]";
+ mes "Port Malaya is a beautiful city.";
+ mes "The old and new are in perfect harmony.";
+ next;
+ mes "[Old Man Nardo]";
+ mes "Of course there's the recent problem with ghosts wondering about...";
+ mes "It relieves me that you and other young people are working hard on it.";
+ mes "Thank you.";
+ close;
+ case 2:
+ if ((checkquest(7374) != -1) && (checkquest(7369) != -1)) {
+ if (!countitem(6503)) {
+ mes "^4d4dffThere's no Spiritual Protection to give to the Old Man.^000000";
+ close;
+ }
+ mes "[Old Man Nardo]";
+ mes "Is this a new Spiritual Protection made from traditional methods?";
+ mes "I am grateful that you'd replace mine with a new one.";
+ mes "I am always in your and Imelda's debt.";
+ next;
+ mes "-Delivered the Spiritual Protection to Old Man Nardo.-";
+ delitem 6503, 1; // Soul_Protection
+ erasequest 7369;
+ setquest 7383;
+ if ((checkquest(7382) + checkquest(7383) + checkquest(7384) + checkquest(7385) + checkquest(7386) + checkquest(7387)) > 5) {
+ mes "- With the Old Man as last, all Spiritual Protections have been delivered. Head back to Imelda.-";
+ if (malaya_hi == 23) {
+ set malaya_hi, 24;
+ }
+ setquest 7379;
+ erasequest 7382;
+ erasequest 7383;
+ erasequest 7384;
+ erasequest 7385;
+ erasequest 7386;
+ erasequest 7387;
+ }
+ close;
+ } else {
+ mes "[Old Man Nardo]";
+ mes "What? A new Spiritual Protection?";
+ mes "I'm okay. I still have the one you gave me before.";
+ mes "Could you give me a new one when this one wears out?";
+ close;
+ }
+ break;
+ case 3:
+ if (BaseLevel < 100) {
+ mes "[Old Man Nardo]";
+ mes "Hmm... You don't look strong enough to travel to Baryo.";
+ mes "I'm sorry but I can't let you carry the precious Cast Iron Cauldron.";
+ close;
+ }
+ if ((checkquest(7378, PLAYTIME) == 0) || (checkquest(7378, PLAYTIME) == 1)) {
+ mes "[Old Man Nardo]";
+ mes "You've delivered the Cast Iron Cauldron to Baryo, so that's enough for today.";
+ mes "No matter how strong a cauldron is, even with the toughest cast iron, it only lasts a day.";
+ next;
+ mes "[Old Man Nardo]";
+ mes "Help me out again tomorrow if you can.";
+ close;
+ } else if (checkquest(7378, PLAYTIME) == 2) {
+ mes "[Old Man Nardo]";
+ mes "Hey there!";
+ mes "So, are you well and well fed?";
+ mes "Come back again when you have the time.";
+ next;
+ mes "[Old Man Nardo]";
+ mes "It's about the Cast Iron Cauldron, but it can wait for after your current errand.";
+ erasequest 7378;
+ close;
+ } else {
+ if (checkquest(7377) != -1) {
+ if (countitem(6503) < 5) {
+ mes "[Old Man Nardo]";
+ mes "Did you deliver the cauldron in one piece?";
+ mes "Kiko in Mumbaki should have given you a Spiritual Protection. Do you have it?";
+ mes "You must have left it somewhere. Go fetch it please.";
+ close;
+ }
+ mes "[Old Man Nardo]";
+ mes "Good. It's the Spiritual Protection promised by Kiko in Mumbaki in return.";
+ mes "I know Imelda makes them and you bring them every day, but more the Spiritual Protections, the better.";
+ next;
+ mes "[Old Man Nardo]";
+ mes "Please stop by again.";
+ mes "I always prepare the Cast Iron Cauldron needed at Baryo.";
+ delitem 6503, 5; // Soul_Protection
+ setquest 7378;
+ erasequest 7377;
+// if (IsPremiumPcCafe == 10)
+ getitem 6497, 2; // Lesser_Agimat
+// else
+// getitem 6497, 1; // Lesser_Agimat
+ getexp 200000,200000;
+ if (!rand(3))
+ $malayaNames$[2] = strcharinfo(0);
+ close;
+ } else {
+ if (checkquest(7376) > -1) {
+ mes "[Old Man Nardo]";
+ mes "Go to Kiko in Mumbaki at Baryo Mahiwaga and deliver the Cast Iron Cauldron.";
+ mes "This should help against the Bakonawa troubles.";
+ close;
+ } else {
+ mes "[Old Man Nardo]";
+ mes "Yes, the Cast Iron Cauldron.";
+ mes "Go to Kiko in Mumbaki at Baryo Mahiwaga and deliver the Cast Iron Cauldron.";
+ mes "I'd like you to do it for me...";
+ next;
+ switch (select("Cast Iron Cauldron??:I'll do it.:I'm busy right now.")) {
+ case 1:
+ mes "[Old Man Nardo]";
+ mes "It's because of the Bakonawa.";
+ mes "Beat the cauldron and the surprised Bakonawa spits back out the moon.";
+ next;
+ mes "[Old Man Nardo]";
+ mes "Baryo Mahiwaga is close to where Bakonawa lives, so they are always prepared for trouble.";
+ next;
+ mes "[Old Man Nardo]";
+ mes "Enough Cast Iron Cauldrons must be prepared for beating.";
+ mes "But the forge is better here.";
+ mes "So I deliver them every day.";
+ close;
+ case 2:
+ mes "[Old Man Nardo]";
+ mes "This is the Cast Iron Cauldron. They have fine blacksmiths in Malaya.";
+ mes "Deliver this to Kiko in Mumbaki at the nearby town of Baryo Mahiwaga.";
+ setquest 7376;
+ getitem 6504, 5; // Cast_Iron_Caldron
+ close;
+ case 3:
+ mes "[Old Man Nardo]";
+ mes "Is that so.";
+ mes "I'm sorry, you must be very busy.";
+ close;
+ }
+ }
+ }
+ }
+ break;
+ }
+ }
+ end;
+}
+
+malaya,224,267,3 script Romel#malaya 4_M_MAYOR,{
+ if (malaya_hi < 10) {
+ mes "[Romel]";
+ mes ".........";
+ mes " ";
+ mes "(He evades your gaze and ignores you.)";
+ close;
+ } else if (malaya_hi == 10) {
+ if (checkquest(7357) == 2) {
+ mes "[Romel]";
+ mes "....So cold-hearted.";
+ mes "And here we are, always trembling in anxiety...";
+ next;
+ mes "[Romel]";
+ mes "Not even allowed the peace of mind...";
+ close;
+ } else {
+ mes "[Romel]";
+ mes "Ahh....";
+ mes "... You..";
+ mes "I'm sorry I ignored you.";
+ mes "But... you must be the one they're talking about...";
+ next;
+ mes "[Romel]";
+ mes "Are you the one who fends off the ghosts?";
+ mes "If it's okay with you, can I have one of your belongings or some hair?";
+ next;
+ mes "[Romel]";
+ mes "I want to carry it... Like a charm of sort.";
+ next;
+ mes "-The troubled villagers desire your belongings because you fend off the ghosts. -";
+ setquest 7357;
+ completequest 7357;
+ if ((checkquest(7352) + checkquest(7353) + checkquest(7354) + checkquest(7355) + checkquest(7356) + checkquest(7357)) > 9) {
+ next;
+ mes "- So many have already asked you for this. Perhaps it will be better to speak with Phong in Mumbaki.-";
+ set malaya_hi, 11;
+ setquest 7358;
+ }
+ close;
+ }
+ } else if (malaya_hi == 11) {
+ mes "Romel looks in your way with a sad look.";
+ mes "He'll surely take a hair or pull a sleeve if he had his way!";
+ close;
+ } else if (malaya_hi == 12) {
+ if (checkquest(7364) != -1) {
+ mes "[Romel]";
+ mes "Frankly speaking, it's for the peace of mind.";
+ mes "With it, I could face them with more boldness.";
+ next;
+ mes "[Romel]";
+ mes "I mean, I'm relying on such items,";
+ mes "but I am braver with them.";
+ close;
+ }
+ if (!countitem(523) || !countitem(717)) {
+ mes "^4d4dffPrepare and give Blue Gemstone and Holy Water. ^000000";
+ close;
+ }
+ mes "[Romel]";
+ mes "...What is it?";
+ next;
+ select ("Hand him the prepared items");
+ mes "[Romel]";
+ mes "Oh... Thank you.";
+ mes "I can feel your spirit.";
+ mes "This will keep me safe.";
+ next;
+ mes "[Romel]";
+ mes "Hey... Could you give some for my daughter as well?";
+ next;
+ mes "- Gave Romel the prepared Holy Water and Blue Gemstone.-";
+ delitem 717, 1; //Blue_Gemstone
+ delitem 523, 1; //Holy_Water
+ setquest 7364;
+ completequest 7364;
+ if ((checkquest(7359) + checkquest(7360) + checkquest(7361) + checkquest(7362) + checkquest(7363) + checkquest(7364)) > 11) {
+ mes "-With Romel as last, I think enough Holy Artifacts have been given.-";
+ set malaya_hi, 13;
+ erasequest 7351;
+ setquest 7365;
+ }
+ close;
+ } else if (malaya_hi == 13) {
+ mes "[Romel]";
+ mes "The Holy Artifact is in good hands.";
+ mes "Same with my daughter.";
+ close;
+ } else {
+ mes "[Romel]";
+ mes "Hello there.";
+ switch(rand(1, 6)) {
+ case 1:
+ mes "Ha ha, I had a dream last night, you see, and there was " + $malayaNames$[0] + " in the dream. Ha ha... Strange indeed...";
+ break;
+ case 2:
+ mes "Sometimes, my wife makes these sounds in her sleep. " + $malayaNames$[0] + "... " + $malayaNames$[0] + "... she says. Who is it? Do you know?! Is she possessed by a ghost?";
+ break;
+ case 3:
+ mes "It's all thanks to " + $malayaNames$[0] + " for changing the atmosphere of the house. It seems like we were saved by the Holy Artifact and Spiritual Protection.";
+ break;
+ case 4:
+ mes "The people of the neighboring Baryo Mahiwaga are so strong. Even their children play in the forest. I can't imagine myself doing that.";
+ break;
+ case 5:
+ mes "Without the slightest doubt, the most famous person in town is " + $malayaNames$[2] + ". Even famous in Baryo they say.";
+ break;
+ case 6:
+ mes "Merchant Woeon says 'Our " + $malayaNames$[1] + " sir/ma'am' 'we " + $malayaNames$[1] + " sir/ma'am' during drinking. I wonder what happened between the two of them?";
+ break;
+ }
+ next;
+ if (select("Give Spiritual Protection:How are things?") == 2) {
+ mes "[Romel]";
+ mes "I am at peace these days.";
+ close;
+ }
+ if ((checkquest(7374) == -1) || (checkquest(7373) == -1)) {
+ mes "[Romel]";
+ mes "A new Spiritual Protection?";
+ mes "The one you gave me before still works fine.";
+ mes "I'm okay for now.";
+ close;
+ }
+ if (!countitem(6503)) {
+ mes "^4d4dffThere are no Spiritual Protections to give to Romel.^000000";
+ close;
+ }
+ mes "[Romel]";
+ mes "A new Spiritual Protection.";
+ mes "I was thinking this one had worn out... Thanks for coming.";
+ mes "This Spiritual Protection will also protect us.";
+ next;
+ mes "- Delivered Romel his Spiritual Protection.-";
+ delitem 6503, 1; // Soul_Protection
+ erasequest 7373;
+ setquest 7387;
+ if ((checkquest(7382) + checkquest(7383) + checkquest(7384) + checkquest(7385) + checkquest(7386) + checkquest(7387)) > 5) {
+ mes "- With Romel as last, all Spiritual Protections have been delivered. Head back to Imelda.-";
+ if (malaya_hi == 23) {
+ set malaya_hi, 24;
+ }
+ setquest 7379;
+ erasequest 7382;
+ erasequest 7383;
+ erasequest 7384;
+ erasequest 7385;
+ erasequest 7386;
+ erasequest 7387;
+ }
+ close;
+ }
+ end;
+}
+
+malaya,223,267,5 script Talah#malaya 4_F_DST_CHILD,{
+ if (malaya_hi < 10) {
+ mes "[Talah]";
+ mes "..........gasp!";
+ mes " ";
+ mes "(When your eyes met with hers, she ran and hid behind her father.)";
+ close;
+ } else if (malaya_hi == 10) {
+ if (checkquest(7356) == 2) {
+ mes "[Talah]";
+ mes "Talah might be taken away tonight.";
+ mes "Scary kids might come to Talah.";
+ next;
+ mes "When Talah tugs at Romel's shirt, Romel looks at you with a sad gaze.";
+ mes "Better do something before they take a button from you...";
+ close;
+ } else {
+ mes "[Talah]";
+ mes "....I..umm... that.....";
+ mes ".........oh... Daddy....";
+ next;
+ mes "[Romel]";
+ mes "Hey, could you give my daughter a button or some hair of yours?";
+ mes "She has trouble sleeping at night .......";
+ next;
+ mes "[Romel]";
+ mes "Wouldn't she be able to sleep well if she had something from you as a lucky charm?";
+ next;
+ mes "- The troubled villagers desire your belongings because you fend off the ghosts. -";
+ setquest 7356;
+ completequest 7356;
+ if ((checkquest(7352) + checkquest(7353) + checkquest(7354) + checkquest(7355) + checkquest(7356) + checkquest(7357)) > 9) {
+ next;
+ mes "- So many have already asked you for this. Perhaps it will be better to speak with Phong in Mumbaki. -";
+ set malaya_hi, 11;
+ setquest 7358;
+ }
+ close;
+ }
+ } else if (malaya_hi == 11) {
+ mes "Talah looks from you to her father with inquisitive eyes.";
+ close;
+ } else if (malaya_hi == 12) {
+ if (checkquest(7363) != -1) {
+ mes "[Talah]";
+ mes "I dont know for sure";
+ mes "but I get a warm feel from them.";
+ mes "Daddy's braver now and that makes Talah stronger too.";
+ close;
+ }
+ if (!countitem(523) || !countitem(717)) {
+ mes "^4d4dffPrepare and give Blue Gemstone and Holy Water. ^000000";
+ close;
+ }
+ mes "[Talah]";
+ mes ".... Can I say hello?";
+ mes "Hello... there...";
+ next;
+ select("Give the prepared items.");
+ mes "[Talah]";
+ mes "Pretty blue stones...!";
+ mes "Oooooh~ They're beautiful!";
+ mes "Is this stone going to keep Talah safe?";
+ next;
+ mes "- Delivered the Holy Water and Blue Gemstone to Talah. -";
+ delitem 717, 1; //Blue_Gemstone
+ delitem 523, 1; //Holy_Water
+ setquest 7363;
+ completequest 7363;
+ if ((checkquest(7359) + checkquest(7360) + checkquest(7361) + checkquest(7362) + checkquest(7363) + checkquest(7364)) > 11) {
+ mes "-With Talah as last, I think enough Holy Artifacts have been given.-";
+ set malaya_hi, 13;
+ erasequest 7351;
+ setquest 7365;
+ }
+ close;
+ } else if (malaya_hi == 13) {
+ mes "[Talah]";
+ mes "Daddy told me to hold on to the Holy Artifact really tight.";
+ mes "So it keeps away bad ghosts...";
+ close;
+ } else {
+ mes "[Talah]";
+ mes "Hello...";
+ next;
+ if (select("Give Spiritual Protection.:Hi there?") == 2) {
+ mes "[Talah]";
+ mes "...Hey...Thank you.";
+ mes "You're keeping us safe aren't you?";
+ close;
+ }
+ if ((checkquest(7374) != -1) && (checkquest(7372) != -1)) {
+ if (!countitem(6503)) {
+ mes "^4d4dffThere is no Spiritual Protection to give to Talah.^000000";
+ close;
+ }
+ mes "[Talah]";
+ mes "Is this a new Spiritual Protection?";
+ mes "Thank you.";
+ mes "Talah can sleep well now with the Spiritual Protection.";
+ mes "Daddy likes it too.";
+ next;
+ mes "- Delivered new Spiritual Protection to Talah.-";
+ delitem 6503, 1; // Soul_Protection
+ erasequest 7372;
+ setquest 7386;
+ if ((checkquest(7382) + checkquest(7383) + checkquest(7384) + checkquest(7385) + checkquest(7386) + checkquest(7387)) > 5) {
+ mes "- With Talah as last, all Spiritual Protections have been delivered. Head back to Imelda. -";
+ if (malaya_hi == 23) {
+ set malaya_hi, 24;
+ }
+ setquest 7379;
+ erasequest 7382;
+ erasequest 7383;
+ erasequest 7384;
+ erasequest 7385;
+ erasequest 7386;
+ erasequest 7387;
+ }
+ close;
+ } else {
+ mes "[Talah]";
+ mes "Umm...";
+ mes "The one you gave before still keeps Talah safe.";
+ mes "I'm okay.";
+ close;
+ }
+ }
+ end;
+}
+
+malaya,62,274,0 script Sand Trap#malaya 4_SOIL,{
+ if (MaxWeight - Weight < 1000 || checkweight(1201,1) == 0) {
+ mes "- Cannot proceed with the quest. You are carrying too many items. -";
+ close;
+ }
+ if ((checkquest(7366) == -1) && (checkquest(7380) == -1)) {
+ mes "A device to evaporate sea water is buried in the sand...";
+ close;
+ }
+ if (countitem(6501) >= 6) {
+ mes "There's enough salt.";
+ close;
+ }
+ mes "A device to evaporate sea water is installed in the Sand Trap.";
+ next;
+ mes "Salt can be scraped off the dried leaves";
+ mes "someone scattered on the sea water.";
+ close2;
+ progressbar "0xffff00", 5;
+ disablenpc strnpcinfo(0);
+ initnpctimer;
+ getitem 6501, 1; // Salt_Bag
+ mes "[" + strcharinfo(0) + "]";
+ mes "This should be enough.";
+ close;
+
+OnTimer30000:
+ enablenpc strnpcinfo(0);
+ stopnpctimer;
+ end;
+}
+malaya,66,277,0 duplicate(Sand Trap#malaya) Sand Trap#malaya01 4_SOIL
+malaya,70,282,0 duplicate(Sand Trap#malaya) Sand Trap#malaya02 4_SOIL
+
+ma_fild01,178,206,0 script Black Bamboo#malaya CLEAR_NPC,4,4,{
+ if (MaxWeight - Weight < 1000 || checkweight(1201,1) == 0) {
+ mes "- Cannot proceed with the quest. You are carrying too many items. -";
+ close;
+ }
+ if ((checkquest(7366) == -1) && (checkquest(7380) == -1)) {
+ mes "There's a short and black bamboo tree.";
+ close;
+ }
+ if (countitem(6500) >= 6) {
+ mes "There's enough Sharpened Bamboos...";
+ close;
+ }
+ mes "There's bamboo here with black cane and leaves.";
+ mes "If some of it is cut off and sharpened, I think it will suffice for the Sharpened Bamboo Imelda wanted.";
+ close2;
+ progressbar "0xffff00", 3;
+ disablenpc strnpcinfo(0);
+ initnpctimer;
+ getitem 6500, 1; //Sharp_Bamboo
+ mes "[" + strcharinfo(0) + "]";
+ mes "I knew I could do this!";
+ close;
+OnTouch:
+ if ((checkquest(7366) != -1) || (checkquest(7380) != -1)) {
+ specialeffect EF_LEVEL99_4;
+ }
+ end;
+OnTimer30000:
+ enablenpc strnpcinfo(0);
+ stopnpctimer;
+ end;
+}
+ma_fild01,225,186,0 duplicate(Black Bamboo#malaya) Black Bamboo#malaya01 CLEAR_NPC,4,4
+ma_fild01,230,244,0 duplicate(Black Bamboo#malaya) Black Bamboo#malaya02 CLEAR_NPC,4,4
+ma_fild01,174,238,0 duplicate(Black Bamboo#malaya) Black Bamboo#malaya03 CLEAR_NPC,4,4
+ma_fild01,180,273,0 duplicate(Black Bamboo#malaya) Black Bamboo#malaya04 CLEAR_NPC,4,4
+ma_fild01,179,145,0 duplicate(Black Bamboo#malaya) Black Bamboo#malaya05 CLEAR_NPC,4,4
+
+malaya,295,171,3 script Collection Dealer Woeon 4_M_MALAYA,{
+ if (MaxWeight - Weight < 1000 || checkweight(1201,1) == 0) {
+ mes "- Cannot proceed with the quest. You are carrying too many items. -";
+ close;
+ }
+ if (malaya_hi < 10) {
+ mes "[Woeon]";
+ mes "Urghh... Urgh... I got a headache...";
+ mes "My headache must have been brought to me by you from out of town!";
+ mes "Go away. Shoo, leave!";
+ close;
+ } else if (malaya_hi == 10) {
+ if (checkquest(7355) == 2) {
+ mes "[Woeon]";
+ mes "Now, look here my friend...";
+ mes "This can all be solved by giving me a button.";
+ mes "It doesn't look so expensive either.";
+ close;
+ } else {
+ mes "[Woeon]";
+ mes "Aha! You're the one they're all talking about!";
+ mes "I was kinda rude right? Forget about it!";
+ mes "Yes, do forget...";
+ next;
+ mes "[Woeon]";
+ mes "If you're in dire need, I could get you a job around here you know..";
+ mes ".... Could you give me some of your things?";
+ next;
+ mes "[Woeon]";
+ mes "I heard the rumors about you shooing away the ghosts!";
+ mes "Can't you see my shaking hands from fear of them ghosts?";
+ mes "I'll feel much better if you could just give me a button off your sleeve...";
+ next;
+ mes "- The troubled villagers desire your belongings because you fend off the ghosts. -";
+ setquest 7355;
+ completequest 7355;
+ if ((checkquest(7352) + checkquest(7353) + checkquest(7354) + checkquest(7355) + checkquest(7356) + checkquest(7357)) > 9) {
+ next;
+ mes "- So many have already asked you for this. Perhaps it will be better to speak with Phong in Mumbaki.-";
+ set malaya_hi, 11;
+ setquest 7358;
+ }
+ close;
+ }
+ } else if (malaya_hi == 11) {
+ mes "[Woeon]";
+ mes "Sigh... Life is so tough these days.";
+ mes "Why did ghosts come along to bother me so.";
+ mes "I wish I had a lucky charm or something...";
+ next;
+ mes "[Woeon]";
+ mes "Why won't you give me one of your belongings so I could keep as a charm?";
+ mes "Come on, one sock could save a man's life, you know.";
+ mes "Cold hearted son of a...";
+ close;
+ } else if (malaya_hi == 12) {
+ if (checkquest(7362) != -1) {
+ mes "[Woeon]";
+ mes "Hmm. Look at my hands.";
+ mes "Less shaky, eh?";
+ mes "Isn't that so?";
+ close;
+ }
+ if (!countitem(523) || !countitem(717)) {
+ mes "^4d4dffPrepare and give Blue Gemstone and Holy Water. ^000000";
+ close;
+ }
+ mes "[Woeon]";
+ mes "Humph! What do you want?";
+ next;
+ select ("Give the prepared items.");
+ mes "[Woeon]";
+ mes "Oh dear... Forget about the thing back there.";
+ mes "You see, I was haunted by another ghost after you left...";
+ mes "No hard feelings..";
+ next;
+ mes "[Woeon]";
+ mes "Is this the source of your spirit?";
+ mes "It feels kinda cool!";
+ mes "Perhaps this will fend off some of them...";
+ next;
+ mes "[Woeon]";
+ mes "Anyway, thanks a lot.";
+ mes "I'll call for you first when a job opens up for you.";
+ next;
+ mes "- Gave Woeon the Holy Water and Blue Gemstone.-";
+ delitem 717, 1; //Blue_Gemstone
+ delitem 523, 1; //Holy_Water
+ setquest 7362;
+ completequest 7362;
+ if ((checkquest(7359) + checkquest(7360) + checkquest(7361) + checkquest(7362) + checkquest(7363) + checkquest(7364)) > 11) {
+ mes "-With Woeon as last, I think enough Holy Artifacts have been given.-";
+ set malaya_hi, 13;
+ erasequest 7351;
+ setquest 7365;
+ }
+ close;
+ } else if (malaya_hi == 13) {
+ mes "[Woeon]";
+ mes "Now... Let's get back to business.";
+ mes "Thanks to you, I don't see any of those darn ghosts.";
+ mes "Ha ha ha ha ha";
+ close;
+ } else {
+ mes "[Woeon]";
+ mes "Oh, hi there!";
+ next;
+ if (select("Give Spiritual Protection.:The Dealer and his Collection") == 1) {
+ if (((checkquest(7374) == 0) || (checkquest(7374) == 1)) && ((checkquest(7371) == 0) || (checkquest(7371) == 1))) {
+ if (!countitem(6503)) {
+ mes "^4d4dffThere is no Spiritual Protection to give to Woeon.^000000";
+ close;
+ }
+ mes "[Woeon]";
+ mes "Phew~ A new Spiritual Protection?";
+ mes "Is it an officially made protective charm? Imelda does some fine work.";
+ mes "I'm thankful to you as well, of course.";
+ next;
+ mes "-Delivered Spiritual Protection to Woeon.-";
+ delitem 6503, 1; // Soul_Protection
+ erasequest 7371;
+ setquest 7385;
+ if ((checkquest(7382) + checkquest(7383) + checkquest(7384) + checkquest(7385) + checkquest(7386) + checkquest(7387)) > 5) {
+ mes "-With Woeon as last, all Spiritual Protections have been delivered.-";
+ if (malaya_hi == 23) {
+ set malaya_hi, 24;
+ }
+ setquest 7379;
+ erasequest 7382;
+ erasequest 7383;
+ erasequest 7384;
+ erasequest 7385;
+ erasequest 7386;
+ erasequest 7387;
+ }
+ close;
+ } else {
+ mes "[Woeon]";
+ mes "Spiritual Protection?";
+ mes "Mine still works fine.";
+ mes "Very effective indeed.";
+ close;
+ }
+ } else {
+ if (BaseLevel < 100) {
+ mes "[Woeon]";
+ mes "Yes, I collect various by-products from monsters.";
+ mes "In fact, I'm collecting Jejellopys here...";
+ next;
+ mes "[Woeon]";
+ mes "It's too much for you.";
+ mes "Things can get pretty ugly around here, you see.";
+ mes "I'll let you have at it once you're stronger, my friend!";
+ close;
+ }
+ if ((checkquest(7392, PLAYTIME) == 0) || (checkquest(7392, PLAYTIME) == 1)) {
+ mes "[Woeon]";
+ mes "Oh, the Jejellopy collecting?";
+ mes "I have enough for today.";
+ mes "Come back again tomorrow.";
+ close;
+ } else if (checkquest(7392, PLAYTIME) == 2) {
+ mes "[Woeon]";
+ mes "Oh, yes yes.";
+ mes "You're going to collect Jejellopy today as well?";
+ mes "I know it's a difficult job... But you do it so well.";
+ erasequest 7392;
+ next;
+ if (select("I'm too busy today.:Leave it to me!") == 1) {
+ mes "[Woeon]";
+ mes "Is that so? So it is then.";
+ mes "Come stop by when you need some work.";
+ close;
+ }
+ mes "[Woeon]";
+ mes "As usual, bring me 30 Jejellopys, please.";
+ mes "You can get them from the Jejelings.";
+ setquest 7391;
+ close;
+ } else {
+ if ((checkquest(7391) == 0) || (checkquest(7391) == 1)) {
+ if (countitem(6498) < 30) {
+ mes "[Woeon]";
+ mes "Hmm? I don't think you have enough.";
+ mes "I asked you for 30 Jejellopys. Business is business I'm afraid.";
+ close;
+ }
+ mes "[Woeon]";
+ mes "Oh, you have the requested numbers?";
+ mes "I'll take them from here.";
+ mes "You have no need for them, right?";
+ next;
+ mes "[Woeon]";
+ mes "So I have all the Jejellopys...";
+ mes "Come back again!";
+ delitem 6498, countitem(6498); //Jejellopy
+ setquest 7392;
+ erasequest 7391;
+// if (IsPremiumPcCafe == 10)
+ getitem 6497, 2; // Lesser_Agimat
+// else
+// getitem 6497, 1; // Lesser_Agimat
+ getexp 200000,200000;
+ set .@memo_name, rand(1,3);
+ if (!rand(3))
+ $malayaNames$[1] = strcharinfo(0);
+ close;
+ } else {
+ mes "[Woeon]";
+ mes "As you can see, I'm a Collection Dealer.";
+ mes "I trade all kinds of monster or animal by-products.";
+ next;
+ mes "[Woeon]";
+ mes "They're used as materials for manufactured goods.";
+ mes "Of course, the most preferred in Port Malaya is from the monster Jejeling..";
+ next;
+ mes "[Woeon]";
+ mes "Jejellopy can be acquired from the Jejeling.";
+ mes "Can you get me 30 Jejellopys?";
+ next;
+ if (select("Yeah, sure.:Nope.") == 2) {
+ mes "[Woeon]";
+ mes "Is that so. Such a shame.";
+ mes "Come back when you need some work.";
+ close;
+ }
+ mes "[Woeon]";
+ mes "Good, I trust you can do it.";
+ mes "Remember, 30 Jejellopys.";
+ setquest 7391;
+ close;
+ }
+ }
+ }
+ }
+ end;
+}
+
+malaya,119,217,3 script Blacksmith Pandoi 4_M_DEWBOY,{
+ if (MaxWeight - Weight < 1000 || checkweight(1201,1) == 0) {
+ mes "- Cannot proceed with the quest. You are carrying too many items. -";
+ close;
+ }
+ if (malaya_hi < 10) {
+ mes "[Pandoi]";
+ mes "...Gasp!";
+ mes "Go... Go away!";
+ close;
+ } else if (malaya_hi == 10) {
+ if (checkquest(7354) == 2) {
+ mes "[Pandoi]";
+ mes "Please..";
+ mes "Couldn't you help a guy out here, just for the sake of it?";
+ mes "Do you really think ignoring me is the best option?!";
+ next;
+ mes "[Pandoi]";
+ mes "Now look here.";
+ mes "Please give me just a peek..";
+ mes "It's just a button...";
+ close;
+ } else {
+ mes "[Pandoi]";
+ mes "Hello there!";
+ mes "I've heard of your prestige.";
+ mes "I was wondering if I could receive something to prove that I've met you in person...";
+ next;
+ mes "[Pandoi]";
+ mes "Oh... You're surprised because I'm suddenly so nice to you.";
+ mes "I heard the news you fought off the ghosts.";
+ mes "That's brilliant!";
+ next;
+ mes "[Pandoi]";
+ mes "With an item of your spirit, it would scare away the ghosts, wouldn't it?";
+ mes "Please, be generous, I beg you...";
+ next;
+ mes "-The troubled villagers desire your belongings because you fend off the ghosts. -";
+ setquest 7354;
+ completequest 7354;
+ if ((checkquest(7352) + checkquest(7353) + checkquest(7354) + checkquest(7355) + checkquest(7356) + checkquest(7357)) > 9) {
+ next;
+ mes "- So many have already asked you for this. Perhaps it will be better to speak with Phong in Mumbaki.-";
+ set malaya_hi, 11;
+ setquest 7358;
+ }
+ close;
+ }
+ } else if (malaya_hi == 11) {
+ mes "[Pandoi]";
+ mes "Phew... Life is so tough these days.";
+ mes "Why did ghosts come along to bother me so.";
+ mes "I wish I had a lucky charm or something...";
+ next;
+ mes "[Pandoi]";
+ mes "Please...";
+ mes "Couldn't you help a guy out here, just for the sake of it?";
+ mes "Do you really think ignoring me is the best option?!";
+ close;
+ } else if (malaya_hi == 12) {
+ if (checkquest(7361) != -1) {
+ mes "[Pandoi]";
+ mes "Now that I have confidence, the only thing left for me to do is charge to the hospital or field for material!";
+ mes "Bu... But, I'm too scared...";
+ close;
+ }
+ if (!countitem(523) || !countitem(717)) {
+ mes "^4d4dffPrepare and give Blue Gemstone and Holy Water. ^000000";
+ close;
+ }
+ mes "[Pandoi]";
+ mes "Wh, what, you've finally decided to help me?!";
+ mes "You're going to give Pandoi a gift of peace?!";
+ next;
+ select ("Give the prepared items.");
+ mes "[Pandoi]";
+ mes "Great! I knew you'd come back!";
+ mes "Yes... Now that I have some of your spirit, I can rest well at night.";
+ next;
+ mes "- Gave Pandoi the Holy Water and Blue Gemstone.-";
+ delitem 717, 1; //Blue_Gemstone
+ delitem 523, 1; //Holy_Water
+ setquest 7361;
+ completequest 7361;
+ if ((checkquest(7359) + checkquest(7360) + checkquest(7361) + checkquest(7362) + checkquest(7363) + checkquest(7364)) > 11) {
+ mes "-With Pandoi as last, I think I've given enough Holy Artifacts.-";
+ set malaya_hi, 13;
+ erasequest 7351;
+ setquest 7365;
+ }
+ close;
+ } else if (malaya_hi == 13) {
+ mes "[Pandoi]";
+ mes "Sil... Silver. I need silver, please.";
+ mes "I thought I could get the silver once the ghosts are gone, but I can't...";
+ close;
+ } else {
+ mes "[Pandoi]";
+ switch(rand(1, 6)) {
+ case 1:
+ mes "You know. " + $malayaNames$[1] + ". You are my hero for becoming stronger. I look up to you!";
+ break;
+ case 2:
+ mes "I've seen you, " + $malayaNames$[1] + " beating those Jejelings outside the town. The energy... I... I was so impressed!";
+ break;
+ case 3:
+ mes "You, " + $malayaNames$[0] + ", lit up my soul. It sparkles, you know. No? You don't?";
+ break;
+ case 4:
+ mes "As far as I can see, recently, " + $malayaNames$[1] + " is the most diligent person around. He's like a god of hard work.";
+ break;
+ case 5:
+ mes $malayaNames$[5] + "made a huge discovery. A dragon, they say.";
+ break;
+ case 6:
+ mes "Hello there?!";
+ break;
+ }
+ next;
+ switch (select("Give Spiritual Protection.:Silver Blade.:Silver Cross")) {
+ case 1:
+ if ((checkquest(7374) == -1) || (checkquest(7370) == -1)) {
+ mes "[Pandoi]";
+ mes "I appreciate you taking care of the expiration dates of my Spiritual Protection.";
+ mes "I think mine's good for now. ";
+ mes "When it wear's out, I'll ask you for another one!";
+ close;
+ }
+ if (!countitem(6503)) {
+ mes "^4d4dffThere is no Spiritual Protection to give to Pandoi.^000000";
+ close;
+ }
+ mes "[Pandoi]";
+ mes "Good. A new Spiritual Protection.";
+ mes "It's always good to know that you won't see those black things again!";
+ next;
+ mes "-Delivered Spiritual Protection to Pandoi.-";
+ delitem 6503, 1; // Soul_Protection
+ erasequest 7370;
+ setquest 7384;
+ if ((checkquest(7382) + checkquest(7383) + checkquest(7384) + checkquest(7385) + checkquest(7386) + checkquest(7387)) > 5) {
+ mes "-With Pandoi as last, all Spiritual Protections have been delivered.-";
+ if (malaya_hi == 23) {
+ set malaya_hi, 24;
+ }
+ setquest 7379;
+ erasequest 7382;
+ erasequest 7383;
+ erasequest 7384;
+ erasequest 7385;
+ erasequest 7386;
+ erasequest 7387;
+ }
+ close;
+ case 2:
+ if (BaseLevel < 100) {
+ mes "[Pandoi]";
+ mes "Hmm... To make a Silver Blade, you need silver.";
+ mes "I could melt Silver Bracelets to get silver.";
+ mes "Silver Bracelets can be acquired at the hospital.";
+ next;
+ mes "[Pandoi]";
+ mes "However, I don't think you can make it right now. I'm sorry, it's just too much for you!";
+ mes "If you go in there like that... You'll never make it out alive!";
+ close;
+ }
+ .@hunting = checkquest(7393, HUNTING);
+ if (.@hunting == 2) {
+ if (countitem(6508) < 10) {
+ mes "[Pandoi]";
+ mes "Where are the Silver Bracelets?";
+ mes "I know you're invincible...";
+ mes "But I must have a Silver Bracelet to make a Silver Blade.";
+ next;
+ mes "[Pandoi]";
+ mes "10 Silver Bracelets!";
+ mes "Regardless of how many of them you hinder, I need 10 Silver Bracelets!!";
+ mes "Now it is in your hands!";
+ close;
+ }
+ mes "[Pandoi]";
+ mes "Respect, all the way!";
+ mes "You fought them off and brought the Silver Bracelets as well.";
+ next;
+ mes "[Pandoi]";
+ mes "From this day on, I shall try to smelt a new silver weapon..!!";
+ mes "I will pound and beat at them until I am left with a fine silver blade in my hands...!!";
+ next;
+ mes "[Pandoi]";
+ mes "It's not much, but here's something for the troubles you went through to get the Silver Bracelets.";
+ mes "If I fail... I'll ask of you the task again!";
+ delitem 6508, 10; //Silver_Bracelet
+ setquest 7394;
+ erasequest 7393;
+// if (IsPremiumPcCafe == 10)
+ getitem 6497, 2; // Lesser_Agimat
+// else
+// getitem 6497, 1; // Lesser_Agimat
+ getexp 200000,200000;
+ if (!rand(3))
+ $malayaNames$[1] = strcharinfo(0);
+ close;
+ } else if (.@hunting == 0 || .@hunting == 1) {
+ mes "[Pandoi]";
+ mes "The village hospital holds the most hideous things inside.";
+ mes "I'm not sure what exactly... Whatever's in there, I'm not willing to go near it...";
+ next;
+ mes "[Pandoi]";
+ mes "Please get rid of those rumored monsters and get those Silver Bracelets.";
+ mes "You're the only one I can trust!";
+ close;
+ } else {
+ .@playtime = checkquest(7394, PLAYTIME);
+ if (.@playtime == 0 || .@playtime == 1) {
+ mes "[Pandoi]";
+ mes "I still have some silver to smelt.";
+ mes "I'll request more if I fail again.";
+ close;
+ } else if (.@playtime == 2) {
+ erasequest 7394;
+ mes "[Pandoi]";
+ mes "Oh... what am I to do?";
+ mes "I've wasted the precious materials you brought back for me...";
+ next;
+ mes "[Pandoi]";
+ mes "Maybe I'm not supposed to be a blacksmith!";
+ mes "I'm good with crafting silver, though!";
+ next;
+ if (select("I'll get you the materials. Cheer up.:Give up. It's a lot easier when you do.") == 2) {
+ mes "[Pandoi]";
+ mes "... You're right...";
+ mes "I'll never be able to make a Silver Blade...";
+ mes "Give up... I thought you'd cheer me up.. I'm a little disappointed in you.";
+ close;
+ }
+ mes "[Pandoi]";
+ mes "I knew I could count on you!";
+ mes "I knew I could count on you!";
+ mes "10 Silver Bracelets, please.";
+ setquest 7393;
+ next;
+ mes "[Pandoi]";
+ mes "Pandoi will always smile at you~";
+ mes "*Grin*";
+ close;
+ } else {
+ mes "[Pandoi]";
+ mes "Silver Blade!";
+ mes "It's great. Wonderful! The holy blade to carve all evil with one stroke...!";
+ next;
+ mes "[Pandoi]";
+ mes "I want to be a noted blacksmith by making a Silver Blade.";
+ mes "However, I cannot get the materials.";
+ next;
+ mes "[Pandoi]";
+ mes "I heard that they wore silver bracelets as recognition at the hospital.";
+ mes "But when I got there, it was not the hospital that I used to know.";
+ next;
+ mes "[Pandoi]";
+ mes "Could you slay the horrible creepers and get me the Silver Bracelets?";
+ next;
+ if (select("Indeed!:No. Way.") == 2) {
+ mes "[Pandoi]";
+ mes "... You're right...";
+ mes "I'll never make a Silver Blade...";
+ mes "Such plain expression of disgust. You know what? I hate the idea now.";
+ close;
+ }
+ mes "[Pandoi]";
+ mes "I knew it!";
+ mes "Teach those things at the hospital some manners...";
+ mes "And bring back 10 Silver Bracelets, please.";
+ setquest 7393;
+ next;
+ mes "[Pandoi]";
+ mes "Pandoi will always smile at you~";
+ mes "*Grin*";
+ close;
+ }
+ }
+ case 3:
+ mes "[Pandoi]";
+ mes "You need Silver Crosses?";
+ mes "Pandoi will make them for you!";
+ mes "Still, I cannot create something out of the blue, so I'll be needing some silver.";
+ next;
+ mes "[Pandoi]";
+ mes "I could make one Silver Cross for ^4d4dff2 Silver Bracelets^000000 the monsters hold there...";
+ mes "If you have Silver Bracelets, I could make Silver Crosses with them.";
+ next;
+ switch(select("Make 1 Silver Cross:Make 6 Silver Crosses:Input Number:Quit.")) {
+ case 1:
+ set .@amount,1;
+ case 2:
+ if (!.@amount) set .@amount,6;
+ if (countitem(6508) < (.@amount * 2)) {
+ mes "[Pandoi]";
+ mes "You need at least " + (.@amount * 2) + " Silver Bracelets to make " + .@amount + " Silver " + ((.@amount == 1) ? "Cross" : "Crosses") + ".";
+ close;
+ }
+ set .@time,5;
+ break;
+ case 3:
+ mes "[Pandoi]";
+ mes "How many Silver Crosses do you need?";
+ mes "I can make up to 50 at a time.";
+ next;
+ input .@amount;
+ if (.@amount == 0) {
+ mes "[Pandoi]";
+ mes "Don't need Silver Crosses?";
+ mes "Well, I can take a rest then. Ha ha ha ha~";
+ close;
+ } else if (.@amount > 50) {
+ mes "[Pandoi]";
+ mes "A maximum of 50 at a time!";
+ close;
+ }
+ if (countitem(6508) < (2 * .@amount)) {
+ mes "[Pandoi]";
+ mes "To make " + .@amount + " Silver " + ((.@amount == 1) ? "Cross" : "Crosses") + ", I need at least " + (2 * .@amount) + " Silver Bracelets.";
+ close;
+ }
+ set .@time,15;
+ break;
+ case 4:
+ mes "[Pandoi]";
+ mes "I'll be here if you need me!";
+ close;
+ }
+ mes "[Pandoi]";
+ mes "It'll take just a second.";
+ mes "Pandoi can do it in a jiffy!";
+ close2;
+ progressbar "0xffff00", .@time;
+ delitem 6508, .@amount * 2; //Silver_Bracelet
+ getitem 6502, .@amount; // Silver_Cross
+ mes "[Pandoi]";
+ mes "Look at this!";
+ mes "Very nice indeed.";
+ mes "I should've been a craftsman, not a blacksmith!";
+ close;
+ }
+ }
+ end;
+}
+
+malaya,326,68,2 script Pedro the Sailor 4W_SAILOR,{
+ if (MaxWeight - Weight < 1000 || checkweight(1201,1) == 0) {
+ mes "- Cannot proceed with the quest. You are carrying too many items. -";
+ close;
+ }
+ if (malaya_hi < 10) {
+ mes "[Pedro the Sailor]";
+ mes "Oh... This ship's not in service.";
+ mes "Or rather, it can't set sail. *Snigger*";
+ mes "I'm seeing ghosts. I think it's my time to die.";
+ close;
+ } else if (malaya_hi == 10) {
+ if (checkquest(7352) == 2) {
+ mes "- Pedro the Sailor seems to have given up, but he can't take his gaze off of me.-";
+ close;
+ }
+ mes "[Pedro the Sailor]";
+ mes "Oh, you're th... The one who fends off ghosts at the wave of a hand?!";
+ mes "Could you stay for a bit and hear me out?!";
+ next;
+ if (select("Sorry.:Sure.") == 1) {
+ mes "[Pedro the Sailor]";
+ mes "Oh, a solid denial.";
+ mes "You just impaled my last glimpse of hope.";
+ mes "Maybe I wasn't persuasive enough...";
+ close;
+ }
+ mes "[Pedro the Sailor]";
+ mes "Straight to the point, this town is a den of ghosts!";
+ mes "Sigh... I've been a sailor for quite a while and went to a lot of places, but this I never experienced before.";
+ next;
+ mes "[Pedro the Sailor]";
+ mes "You see that ship there?";
+ mes "It's a small ferry, but it also stopped service because of these darn ghosts!";
+ next;
+ mes "[Pedro the Sailor]";
+ mes "It looks okay from the outside, but it's full of ghost, I tell ya.";
+ mes "But the way I heard it, they're afraid of you, right?";
+ next;
+ select ("Oh no, you too...:Not my buttons!");
+ mes "[Pedro the Sailor]";
+ mes "I see many have already asked you for some of your stuff for charms, huh.";
+ mes "Can I budge in that line too?";
+ next;
+ mes "[Pedro the Sailor]";
+ mes "I need to have some sincere conversations with that ghost over there.";
+ mes "But the spirit is too strong for me to approach.";
+ next;
+ mes "[Pedro the Sailor]";
+ mes "...........That was a lame story.";
+ mes "And it's not easy to give away your stuff to someone else.";
+ next;
+ mes "- Pedro the Sailor seems to have given up, but he can't take his gaze off of me.-";
+ setquest 7352;
+ completequest 7352;
+ if ((checkquest(7352) + checkquest(7353) + checkquest(7354) + checkquest(7355) + checkquest(7356) + checkquest(7357)) > 9) {
+ next;
+ mes "- So many have already asked you for this. Perhaps it will be better to speak with Phong in Mumbaki. -";
+ set malaya_hi, 11;
+ setquest 7358;
+ }
+ close;
+ } else if (malaya_hi == 11) {
+ mes "[Pedro the Sailor]";
+ mes "Sigh...";
+ mes "This is so awkward.";
+ close;
+ } else if (malaya_hi == 12) {
+ if (checkquest(7359) != -1) {
+ mes "[Pedro the Sailor]";
+ mes "Anyway, now that I have what they hate...";
+ mes "Now's the time to charge into my ship...!";
+ close;
+ }
+ if (!countitem(523) || !countitem(717)) {
+ mes "^4d4dffPrepare and give Blue Gemstone and Holy Water.^000000";
+ close;
+ }
+ mes "[Pedro the Sailor]";
+ mes "What? I can sense something refreshing in your hands. What is it?";
+ next;
+ mes "[Pedro the Sailor]";
+ mes "You're giving it to me?";
+ mes "Ghosts will hate it?";
+ mes "That's wonderful news!";
+ next;
+ mes "[Pedro the Sailor]";
+ mes "Pedro, at your service!";
+ mes "After you're finished with the ghosts here, I'll take on my ship to the end of the world!";
+ next;
+ mes "- Gave Pedro the Sailor the Holy Water and Blue Gemstone. -";
+ delitem 717, 1; //Blue_Gemstone
+ delitem 523, 1; //Holy_Water
+ setquest 7359;
+ completequest 7359;
+ if ((checkquest(7359) + checkquest(7360) + checkquest(7361) + checkquest(7362) + checkquest(7363) + checkquest(7364)) > 11) {
+ mes "-With Pedro the Sailor as last, I think I gave enough Holy Artifacts.-";
+ set malaya_hi, 13;
+ erasequest 7351;
+ setquest 7365;
+ }
+ close;
+ } else if (malaya_hi == 13) {
+ mes "[Pedro the Sailor]";
+ mes "Anyway, now that I have what they hate...";
+ mes "Now's the time to charge into my ship...!";
+ next;
+ mes "-Pedro the Sailor looks determined.-";
+ close;
+ } else {
+ mes "[Pedro the Sailor]";
+ mes "Whoa... Did you see that?";
+ mes "Those black souls just came up and disappeared.";
+ mes "Well, living the dream, eh?";
+ next;
+ if (select("Give Spiritual Protection.:About the Ferry Ride") == 1) {
+ if ((checkquest(7374) == -1) || (checkquest(7368) == -1)) {
+ mes "[Pedro the Sailor]";
+ mes "The Spiritual Protection you gave me before works fine.";
+ mes "I'm good for now.";
+ mes "It's still up for the fight!";
+ close;
+ }
+ if (!countitem(6503)) {
+ mes "^4d4dffThere is no Spiritual Protection to give to Pedro the Sailor.^000000";
+ close;
+ }
+ mes "[Pedro the Sailor]";
+ mes "A newly made Spiritual Protection.";
+ mes "Alright. I'll go at them with this one today.";
+ next;
+ mes "-Delivered the Spiritual Protection to Pedro the Sailor.-";
+ delitem 6503, 1; // Soul_Protection
+ erasequest 7368;
+ setquest 7382;
+ if ((checkquest(7382) + checkquest(7383) + checkquest(7384) + checkquest(7385) + checkquest(7386) + checkquest(7387)) > 5) {
+ mes "-With Pedro the Sailor as last, all Spiritual Protections have been delivered.-";
+ if (malaya_hi == 23) {
+ set malaya_hi, 24;
+ }
+ setquest 7379;
+ erasequest 7382;
+ erasequest 7383;
+ erasequest 7384;
+ erasequest 7385;
+ erasequest 7386;
+ erasequest 7387;
+ }
+ close;
+ }
+ if (BaseLevel < 100) {
+ mes "[Pedro the Sailor]";
+ mes "Hmm... Don't you remember me talking about ghosts?";
+ mes "The Ferry is full of ghosts.";
+ mes "Wait, was it one or many?";
+ next;
+ mes "[Pedro the Sailor]";
+ mes "Whatever. For you and your current condition, it's out of the question.";
+ mes "Yes. You can't do it. You'll be dragged out in a body bag.";
+ next;
+ mes "[Pedro the Sailor]";
+ mes "Now I'm not going to stand here and wait for that to happen. No way.";
+ close;
+ }
+ if (malaya_diwata == 0) {
+ mes "[Pedro the Sailor]";
+ mes "I'm sorry, but didn't I say something about ghosts over there?";
+ mes "It can't set sail because of that.";
+ next;
+ mes "[Pedro the Sailor]";
+ mes "So what's this whole ghost story about?";
+ mes "Hmmm..........";
+ mes "It's a long story...";
+ next;
+ if (select("I'm listening.:Maybe later.") == 2) {
+ mes "[Pedro the Sailor]";
+ mes "I knew it.";
+ mes "Though, it's not such a boring story.";
+ mes "After all, it is a ghost story.";
+ close;
+ }
+ mes "[Pedro the Sailor]";
+ mes "The story goes back to when I first made port here.";
+ mes "It was a nerve racking first time as a liner manager.";
+ next;
+ mes "[Pedro the Sailor]";
+ mes "I was ready to disembark when I saw something I simply could not believe.";
+ mes "Black haze was swarming to the port from all over town.";
+ next;
+ mes "[Pedro the Sailor]";
+ mes "At first, I thought it was just a very thick smog.";
+ mes "As the days went by, it became clear as to what it was.";
+ mes "It was a swarm of souls.";
+ next;
+ mes "[Pedro the Sailor]";
+ mes "A very unpleasant group of souls indeed.";
+ mes "Some were wailing some horrible cries around the Ferry about to set sail...";
+ next;
+ mes "[Pedro the Sailor]";
+ mes "After that incident, that ship stayed on that spot until this day.";
+ mes "Why? Because they took over the ship! It's haunted!";
+ next;
+ mes "[Pedro the Sailor]";
+ mes "If you don't believe me, see for yourself.";
+ mes "Then you'll believe me.";
+ set malaya_diwata, 1;
+ setquest 7395;
+ close;
+ } else if (malaya_diwata == 1) {
+ mes "[Pedro the Sailor]";
+ mes "If you want to know, go and see for yourself and get on it.";
+ close;
+ } else if (malaya_diwata == 2) {
+ mes "[Pedro the Sailor]";
+ mes "Soul of a Little Girl?";
+ mes "What about all them bullying ones?";
+ mes "They came and went?";
+ next;
+ mes "[Pedro the Sailor]";
+ mes "I don't understand.";
+ mes "Maybe the Leader Mumbaki will know what to do.";
+ close;
+ } else if (malaya_diwata == 3) {
+ mes "[Pedro the Sailor]";
+ mes "Hmm... A floral tribute to soothe the soul....";
+ mes "You want to hear its story after it calms down?";
+ mes "Well... Good luck.";
+ next;
+ mes "[Pedro the Sailor]";
+ mes "It can't be helped for the Ferry to set sail again.";
+ mes "I can't go near it because of those mean ones.";
+ next;
+ mes "[Pedro the Sailor]";
+ mes "Now I'm asking you to do this not because I can't be bothered,";
+ mes "but because I simply can't do it myself.";
+ close;
+ } else if (malaya_diwata == 4) {
+ mes "[Pedro the Sailor]";
+ mes "Did Mumbaki bless the flower?";
+ mes "I hope this works...";
+ mes "I wish you all the luck!!";
+ next;
+ mes "[Pedro the Sailor]";
+ mes "I hope you can negotiate with success!";
+ mes "I'll take care of those rude ones outside the ship the best I can.";
+ close;
+ } else if (malaya_diwata == 5) {
+ mes "[Pedro the Sailor]";
+ mes "I see.";
+ mes "Perhaps the Ferry can move again...";
+ mes "Thank you for all you've done for us.";
+ next;
+ mes "[Pedro the Sailor]";
+ mes "I'd better get ready to set sail then.";
+ mes "It's not much, but this is for you.";
+ mes "If we can get back in business, I'll take you to Izlude for just 1000z.";
+ set malaya_diwata, 6;
+ erasequest 7399;
+ setquest 7401;
+// if (IsPremiumPcCafe == 10)
+ getitem 6497, 2; // Lesser_Agimat
+// else
+// getitem 6497, 1; // Lesser_Agimat
+ getexp 200000,200000;
+ if (!rand(3))
+ $malayaNames$[0] = strcharinfo(0);
+ close;
+ } else {
+ .@playtime = checkquest(7401, PLAYTIME);
+ if (.@playtime == 0 || .@playtime == 1) {
+ mes "[Pedro the Sailor]";
+ mes "If you want to go to Alberta, use the big ship over there.";
+ mes "This little one goes to Izlude.";
+ mes "That will be 1000z.";
+ next;
+ if (select("Use.:That's a rip off!") == 2) {
+ mes "[Pedro the Sailor]";
+ mes "What?!";
+ mes "How much do you pay for the Alberta Liner to get here!?";
+ mes "Call this a rip off... You think I'm doing charity?";
+ close;
+ }
+ if (Zeny < 1000) {
+ mes "[Pedro the Sailor]";
+ mes "The price is 1000 zeny.";
+ mes "I can't help you there~";
+ close;
+ }
+ mes "[Pedro the Sailor]";
+ mes "Thank you~";
+ mes "Let's go before the ghosts come back!";
+ Zeny -= 1000;
+ close2;
+ warp "izlude",195,180;
+ end;
+ } else if (.@playtime == 2) {
+ erasequest 7401;
+ goto L_SetQuest;
+ } else {
+ if (checkquest(7403) == -1) {
+ if (checkquest(7402) == -1) {
+ goto L_SetQuest;
+ }
+ mes "[Pedro the Sailor]";
+ mes "You know what to do.";
+ mes "Gather the flowers and take it to Mumbaki to get an Offering Bouquet made.";
+ next;
+ mes "[Pedro the Sailor]";
+ mes "Give the Bouquet to Miss Diwata to cheer her up.";
+ mes "....Thank you.";
+ close;
+ }
+ mes "[Pedro the Sailor]";
+ mes "Diwata is calm!";
+ mes "I can even feel the difference out here.";
+ mes "I am always in your debt.";
+ next;
+ mes "[Pedro the Sailor]";
+ mes "You know what? Why don't you do this on a more regular basis?";
+ mes "I think you kind of like doing it.";
+ setquest 7401;
+ erasequest 7403;
+// if (IsPremiumPcCafe == 10)
+ getitem 6497, 2; // Lesser_Agimat
+// else
+// getitem 6497, 1; // Lesser_Agimat
+ getexp 200000,200000;
+ if (!rand(3))
+ $malayaNames$[0] = strcharinfo(0);
+ close;
+ }
+ }
+ }
+ end;
+
+L_SetQuest:
+ mes "[Pedro the Sailor]";
+ mes "Ah, the thing is...";
+ mes "We can't go right now..";
+ mes "You see, the ghosts are back...";
+ mes "I'm fed up with nuisance.";
+ next;
+ mes "[Pedro the Sailor]";
+ mes "I mean... Miss Diwata... Isn't feeling very well and, even with the Spiritual Protection";
+ mes "a normal person can't stand it.";
+ next;
+ if (select("I see. Take care then.:How about a Floral Tribute?") == 1) {
+ mes "[Pedro the Sailor]";
+ mes "I'm glad you understand.";
+ mes "Sigh...";
+ close;
+ }
+ mes "[Pedro the Sailor]";
+ mes "Hmmm. That would be nice.";
+ mes "If she can be soothed with flowers...!";
+ mes "Good luck.";
+ setquest 7402;
+ close;
+}
+
+ma_in01,125,107,3 script Ghost Diwata G_SKOGUL,4,4,{
+ end;
+OnTouch:
+ if (malaya_diwata == 0) {
+ cutin "malaya_diwata01", 2;
+ mes "- A creepy Little Girl is standing.";
+ mes "As our eyes meet, a chill runs down my spine with goose bumps all over. -";
+ next;
+ mes "[Diwata]";
+ mes "Are you here to bully Diwata too?";
+ mes "I won't have it!";
+ next;
+ cutin "", 255;
+ mes "-I was thrown out after the Little Girl's low creepy voice and flash from her eyes.-";
+ close;
+ warp "malaya", 324, 66;
+ end;
+ } else if (malaya_diwata == 1) {
+ cutin "malaya_diwata01", 2;
+ mes "- A creepy Little Girl is standing.";
+ mes "As our eyes meet, a chill runs down my spine with goose bumps all over. -";
+ next;
+ mes "[Diwata]";
+ mes "Are you here to bully Diwata too?";
+ mes "I won't have it!";
+ next;
+ select ("Wait! I just want to talk!");
+ mes "[Diwata]";
+ mes "Then who are they behind you?";
+ mes "You're one of them!";
+ next;
+ cutin "malaya_ghost01", 4;
+ mes "- Familiar souls are approaching Diwata. -";
+ next;
+ if (select("It's a misunderstanding!:You're from that..!") == 2) {
+ cutin "malaya_ghost02", 4;
+ mes "[" + strcharinfo(0) + "]";
+ mes "Just as I thought! You're afraid of me?!";
+ mes "Stand aside!";
+ mes "I need to talk to her.";
+ next;
+ cutin "malaya_diwata01", 2;
+ mes "[Diwata]";
+ mes "I don't know why they're backing away...";
+ mes "You get out of my sight too!";
+ next;
+ cutin "", 255;
+ mes "-I was thrown out after the Little Girl's annoyed cry and flash from her eyes.-";
+ set malaya_diwata, 2;
+ setquest 7396;
+ erasequest 7395;
+ close2;
+ warp "malaya", 324, 66;
+ end;
+ }
+ cutin "malaya_diwata01",2;
+ mes "[Diwata]";
+ mes "Enough!";
+ next;
+ cutin "", 255;
+ mes "-I was thrown out after the Little Girl's resolute cry and flash from her eyes.-";
+ set malaya_diwata, 2;
+ setquest 7396;
+ erasequest 7395;
+ close2;
+ warp "malaya", 324, 66;
+ end;
+ } else if ((malaya_diwata == 2) || (malaya_diwata == 3)) {
+ cutin "malaya_diwata01", 2;
+ mes "[Diwata]";
+ mes "You crawled back in?";
+ mes "Get out-!!!!!";
+ next;
+ cutin "", 255;
+ mes "-I was thrown out after the Little Girl's screeching cry and flash from her eyes.-";
+ close;
+ warp "malaya", 324, 66;
+ end;
+ } else if (malaya_diwata == 4) {
+ if (!countitem(6506)) {
+ cutin "malaya_diwata01", 2;
+ mes "- The soul of Little Girl Diwata is looking at me fiercely.";
+ mes "No Offering Bouquet...!!!";
+ next;
+ cutin "", 255;
+ mes "-I was thrown out with a remote look from her.-";
+ close;
+ warp "malaya", 324, 66;
+ end;
+ }
+ mes "- The soul of Little Girl Diwata is looking at me fiercely. -";
+ mes "- The Offering Bouquet... -";
+ cutin "malaya_diwata01", 2;
+ next;
+ if (select("Throw it to the Little Girl.:Slide it across on the floor.") == 1) {
+ mes "- I threw the bouquet before she could toss me out, and she catches in surprise...";
+ mes "She won't toss me... far, now that she has the flower.-";
+ } else {
+ mes "- I slid the flower across the floor to her. She looks puzzled. -";
+ }
+ next;
+ mes "[Diwata]";
+ mes "What is the meaning of this?";
+ mes "You're not an enemy?";
+ next;
+ mes "[Diwata]";
+ mes "What? You're an outsider too?";
+ mes "Ha, so live ones are allowed and I'm not?";
+ next;
+ mes "[Diwata]";
+ mes "Now there's the stereotype of countryside people over outsiders.";
+ mes "I am so annoyed. I feel like wiping them off the map.";
+ next;
+ mes "[Diwata]";
+ mes "What? I shouldn't?";
+ mes "Why should I not?";
+ mes "I'm stalling the ship?";
+ next;
+ mes "[Diwata]";
+ mes "I was going to hear you out because of the flowers";
+ mes "but you're telling me lies?!";
+ next;
+ mes "[Diwata]";
+ mes "So you're saying that I brought these hillbillies on this ship";
+ mes "and that fighting with them is causing the stall?";
+ next;
+ mes "[Diwata]";
+ mes "... Hmm... Humph. It wasn't what I was intending to do.";
+ mes "But they're the ones who're getting on my nerves!";
+ next;
+ mes "[Diwata]";
+ mes "... I can't get off anyway.";
+ mes "Which means that I could feel bad again. Got it?";
+ next;
+ mes "[Diwata]";
+ mes "... I'll try to keep it in today.";
+ mes "It's not because I like the flowers or because I like having company!";
+ mes "It's because I was treated the same way as those cheap ghosts!";
+ next;
+ mes "[Diwata]";
+ mes "Now if you'll excuse me.";
+ mes "And I'll be clear. I'm not going to hold my temper for so long.";
+ next;
+ mes "[Diwata]";
+ mes "Now, g... go away!";
+ set malaya_diwata, 5;
+ delitem 6506, 1; // Memorial_Boquet
+ erasequest 7398;
+ setquest 7399;
+ close;
+ } else if (malaya_diwata == 5) {
+ cutin "malaya_diwata02", 2;
+ mes "[Diwata]";
+ mes "I promise I'll be a good little girl if those hillbillies leave me alone.";
+ mes "If they bother me again, however, I won't be.";
+ close;
+ } else {
+ if (checkquest(7402) == -1) {
+ if (checkquest(7403) == -1) {
+ if ((checkquest(7401, PLAYTIME) == 0) || (checkquest(7401, PLAYTIME) == 1)) {
+ cutin "malaya_diwata02", 2;
+ mes "[Diwata]";
+ mes "Surprisingly enough, I'm doing fine.";
+ mes "Of course I'm tense for when they return,";
+ mes "but, as always, I'll win.";
+ next;
+ mes "[Diwata]";
+ mes "Then the poor crew will cry again";
+ mes "I just can't calm myself down after a fight.";
+ next;
+ mes "[Diwata]";
+ mes "The flowers you bring makes me calm down.";
+ mes "....";
+ mes ".. It's not because I miss people or I like the flowers. Don't take it the wrong way.";
+ close;
+ }
+ cutin "malaya_diwata01", 2;
+ mes "[Diwata]";
+ mes "Get lost!";
+ mes "What? Oh, it's you.";
+ mes "Those hillbillies came back again!";
+ mes "I'm going to kill them!";
+ close;
+ }
+ cutin "malaya_diwata02", 2;
+ mes "[Diwata]";
+ mes "It's good to look at flowers from abroad~";
+ mes "Do all flowers from the warm parts of the world smell so nice?";
+ next;
+ mes "[Diwata]";
+ mes "The flowers you bring makes me calm down.";
+ mes "....";
+ mes ".. It's not because I miss people or I like the flowers. Don't take it the wrong way.";
+ close;
+ }
+ cutin "malaya_diwata01", 2;
+ mes "[Diwata]";
+ mes "Darn it! Have you come for more?!";
+ mes "What?";
+ mes "Oh. It's you?";
+ mes "I'm really depressed right now.";
+ next;
+ mes "- Diwata reached her hands out as if expecting something. -";
+ next;
+ if (select("Give the Bouquet.:Hold her hand.") == 2) {
+ mes "[Diwata]";
+ mes "What do you think you're doing?!!??!?!!";
+ mes "Arghhhh - I have enough creeps around here, thank you!!";
+ next;
+ cutin "", 255;
+ mes "-I was tossed out with Diwata's thunderous cry.-";
+ close;
+ warp "malaya", 324, 66;
+ end;
+ }
+ if (!countitem(6506)) {
+ mes "[Diwata]";
+ mes "What? You want me to wave?";
+ mes "You didn't bring it?";
+ mes "You didn't?!?";
+ mes "Arghhh you just can't trust anybody! Anybody!";
+ next;
+ cutin "", 255;
+ mes "-I was tossed out with Diwata's thunderous cry.-";
+ close;
+ warp "malaya", 324, 66;
+ end;
+ }
+ cutin "malaya_diwata02", 2;
+ mes "[Diwata]";
+ mes "... Oh... Just as I thought!";
+ mes "My only happiness, my only peace of mind..!";
+ mes "Flowers from abroad~!";
+ next;
+ mes "-Diwata seems to feel better. The atmosphere shifts to a more refreshing ambience.-";
+ next;
+ mes "[Diwata]";
+ mes "Tell Pedro the Sailor!";
+ mes "Diwata will be a goddess of sea, so set sail in my generosity.";
+ delitem 6506, 1; // Memorial_Boquet
+ setquest 7403;
+ erasequest 7402;
+ close;
+ }
+ cutin "", 255;
+ end;
+}
+
+ma_fild01,261,208,2 script Kiko in Mumbaki 4_BARYO_CHIEF,{
+ if (MaxWeight - Weight < 1000 || checkweight(1201,1) == 0) {
+ mes "- Cannot proceed with the quest. You are carrying too many items. -";
+ close;
+ }
+ mes "[Kiko in Mumbaki]";
+ mes "Welcome to Baryo, stranger.";
+ mes "I am the soul guidance, protector of people and souls here at Baryo.";
+ mes "So, I'm a good leader Kiko in Mumbaki.";
+ next;
+ switch (select("Give Cast-Iron Caldron.:Request Purification Ritual.:Exchange Jellopy for gold.")) {
+ case 1:
+ if (checkquest(7376) == -1) {
+ if (checkquest(7377) == -1) {
+ mes "[Kiko in Mumbaki]";
+ mes "What cauldron?";
+ mes "As far as I know, you're not the one bringing it.";
+ next;
+ mes "[Kiko in Mumbaki]";
+ mes "Poor thing.";
+ mes "do not live a life of lies.";
+ close;
+ }
+ mes "[Kiko in Mumbaki]";
+ mes "Baryo is not a great place for smithy work.";
+ mes "So we always ask a favor to the forge of Malaya.";
+ next;
+ mes "[Kiko in Mumbaki]";
+ mes "Bakonawa does not like loud noises.";
+ mes "That's why we beat the sturdy Cast Iron Cauldrons.";
+ next;
+ mes "[Kiko in Mumbaki]";
+ mes "The Spiritual Protection is proof that I've got my cauldron,";
+ mes "so deliver it well. Okay? Good.";
+ close;
+ }
+ if (countitem(6504) < 5) {
+ mes "[Kiko in Mumbaki]";
+ mes "Oh, must be the cauldron I ordered.";
+ mes "But, where is it?";
+ mes "Are you mocking me?!";
+ close;
+ }
+ mes "[Kiko in Mumbaki]";
+ mes "Yes, excellent!";
+ mes "Very Good.";
+ mes "We can aggravate the Bakonawa more with this.";
+ next;
+ mes "[Kiko in Mumbaki]";
+ mes "I'll give you this for the cauldron.";
+ mes "I hear you're having some trouble with souls?";
+ mes "Take this. It will help you.";
+ delitem 6504, 5; // Cast_Iron_Caldron
+ getitem 6503, 5; // Soul_Protection
+ setquest 7377;
+ erasequest 7376;
+ close;
+ case 2:
+ if (checkquest(7406) == -1) {
+ if (checkquest(7407) == -1) {
+ mes "[Kiko in Mumbaki]";
+ mes "The only purification needed in this village is Vantai's food.";
+ mes "There are no rituals where an outsider, like yourself, can take part in.";
+ close;
+ }
+ mes "[Kiko in Mumbaki]";
+ mes "Vantai must be hungry.";
+ mes "Go give it to him.";
+ mes "Quickly now.";
+ close;
+ }
+ if ((countitem(523) < 10) || (countitem(6507) < 10)) {
+ mes "[Kiko in Mumbaki]";
+ mes "Purification of the bones the Guard Dog Vantai needs to gnaw on?";
+ mes "My work here just gets better and better.";
+ next;
+ mes "[Kiko in Mumbaki]";
+ mes "Go into the forest and fetch me ^4d4dff10 Evil Spirit Bones^000000 and ^4d4dff10 Holy Waters^000000 for the purification ritual.";
+ mes "I'll do the ritual myself.";
+ close;
+ }
+ mes "[Kiko in Mumbaki]";
+ mes "Bones from the animals of this forest all have bad spirits within.";
+ mes "Of course it cannot be helped due to the malignant spirits flailing about...";
+ next;
+ mes "[Kiko in Mumbaki]";
+ mes "You do this and do this here and there and...";
+ mes "There. The evil spirit has left and the bone is so pure that you can just chew on it.";
+ next;
+ mes "[Kiko in Mumbaki]";
+ mes "Now, take this back to Dong the Guard.";
+ mes "Vantai will become stronger after eating this purified Evil Spirit Bone.";
+ next;
+ mes "[Kiko in Mumbaki]";
+ mes "Moreover, holding on to Evil Spirit Bones will only do you harm,";
+ mes "so I'll take them all to purify.";
+ delitem 6507, countitem(6507); // Evil_Bone
+ delitem 523, 10; //Holy_Water
+ getitem 6505, 10; //Purified_Bone
+ setquest 7407;
+ erasequest 7406;
+ close;
+ case 3:
+ mes "[Kiko in Mumbaki]";
+ mes "Oh no you don't!";
+ mes "Don't you dare!";
+ close;
+ }
+ end;
+}
+
+ma_fild01,239,253,3 script Dhong the Guard 4_MAL_SOLDIER,{
+ if (MaxWeight - Weight < 1000 || checkweight(1201,1) == 0) {
+ mes "- Cannot proceed with the quest. You are carrying too many items. -";
+ close;
+ }
+ mes "[Dhong the Guard]";
+ mes "Hi there!";
+ mes "Welcome to Baryo.";
+ next;
+ if (select("You're job seems so hard~:Guard Dog Vantai") == 1) {
+ mes "[Dhong the Guard]";
+ mes "Not at all. I just watch who comes and goes from here.";
+ mes "Travelers are the ones who go through more hardship.";
+ close;
+ }
+ if (BaseLevel < 100) {
+ mes "[Dhong the Guard]";
+ mes "Vantai is a nice dog.";
+ mes "He's probably stronger than you.";
+ next;
+ mes "[Dhong the Guard]";
+ mes "No offense, but";
+ mes "you look weaker than the original owners of the bones Vantai chews on.";
+ next;
+ mes "[Dhong the Guard]";
+ mes "That means just about as strong as me!";
+ mes "Ha ha ha ha ha ha ha!";
+ close;
+ }
+ .@playtime = checkquest(7408, PLAYTIME);
+ if (.@playtime == 0 || .@playtime == 1) {
+ mes "[Dhong the Guard]";
+ mes "The bones you brought Vantai gave him a feast.";
+ mes "He'll be full and merry for a while now.";
+ mes "Nobody can beat Vantai in recon around here.";
+ next;
+ mes "[Dhong the Guard]";
+ mes "Though it is not nice to say a person is lesser than a dog,";
+ mes "but there are some who are lesser.";
+ close;
+ } else if (.@playtime == 2) {
+ erasequest 7408;
+ mes "[Dhong the Guard]";
+ mes "Vantai?";
+ mes "Always the same.";
+ mes "Now that you mention it, it's almost time for him to get hungry.";
+ next;
+ mes "[Dhong the Guard]";
+ mes "Of course, he eats normal dog food, but he can't go without those.";
+ mes "You know what I mean, right?";
+ mes "Smirk...";
+ next;
+ mes "[Dhong the Guard]";
+ mes "Me and Vantai are always waiting";
+ mes "for the hero to get us some Evil Spirit Bones from the forest.";
+ close;
+ } else {
+ if (checkquest(7406) != -1) {
+ mes "[Dhong the Guard]";
+ mes "What I'm saying is that, to be a good guard dog, he must be able to stand ground against evil spirits.";
+ mes "For that he needs to eat Evil Spirit Bones, but it must be purified before he can eat them.";
+ next;
+ mes "[Dhong the Guard]";
+ mes "You can get Evil Spirit Bones from monsters or animals in the forest.";
+ mes "Kiko in Mumbaki will purify them for you.";
+ close;
+ } else {
+ if (checkquest(7407) == 1) {
+ if (countitem(6505) < 10) {
+ mes "[Dhong the Guard]";
+ mes "Kiko in Mumbaki asked for 10 Purified Spirit Bones.";
+ mes "He needs to have at least 10 at a time. Which of course does not last a day...";
+ close;
+ }
+ mes "[Dhong the Guard]";
+ mes "Hey, Vantai will love these!";
+ mes "It's all in good condition...";
+ mes "An evil bone purified through holy ritual...";
+ next;
+ mes "[Dhong the Guard]";
+ mes "This is the perfect dog food!!";
+ mes "Now he can sense and detect evil spirits,";
+ mes "and since he ate purified ones, he'll get the ability to eradicate them.";
+ next;
+ mes "[Dhong the Guard]";
+ mes "I bet he's the strongest living thing in the village now.";
+ mes "Of course not me. I mean Vantai.";
+ next;
+ mes "[Dhong the Guard]";
+ mes "This is your reward.";
+ mes "It would be very nice if you could help us again tomorrow.";
+ delitem 6505, 10; // Purified_Bone
+ setquest 7408;
+ erasequest 7407;
+// if (IsPremiumPcCafe == 10)
+ getitem 6497, 2; // Lesser_Agimat
+// else
+// getitem 6497, 1; // Lesser_Agimat
+ getexp 200000,200000;
+ if (!rand(0, 2))
+ $malayaNames$[2] = strcharinfo(0);
+ close;
+ } else {
+ mes "[Dhong the Guard]";
+ mes "Vantai is not only a guard dog, but he's also a great detector and recon scout.";
+ mes "But for him to do so, he needs to eat Purified Spirit Bones.";
+ next;
+ mes "[Dhong the Guard]";
+ mes "As you can see, I can't move from here,";
+ mes "so I was wondering if you can get the bones for Vantai...";
+ next;
+ if (select("Alright.:Sorry.") == 2) {
+ mes "[Dhong the Guard]";
+ mes "I see.";
+ mes "Vantai!";
+ mes "No treat for you today..!!";
+ next;
+ mes "- It seems like Vantai's eyes are more moist today. -";
+ close;
+ }
+ mes "[Dhong the Guard]";
+ mes "Bones can be acquired from animals or monsters around here.";
+ mes "Take them to Kiko in Mumbaki for purification, which, in turn, can be given to Vantai to eat.";
+ next;
+ mes "[Dhong the Guard]";
+ mes "Bring us 10 Purified Spirit Bones.";
+ mes "That reminds me. You'll need Holy Water for the purification ritual.";
+ next;
+ mes "[Dhong the Guard]";
+ mes "Take your time.";
+ mes "Look here. Vantai likes it too.";
+ setquest 7406;
+ close;
+ }
+ }
+ }
+ end;
+}
+
+ma_fild01,238,257,2 script Guard Dog Vantai 4_RUS_DWOLF,{
+ mes "[Vantai]";
+ mes "Grrrrrrr...";
+ mes " ";
+ mes "(He is intimidated by you.)";
+ close;
+}
+
+ma_fild01,200,190,3 script Maries#malaya 4_F_BARYO_WOMAN,{
+ if (MaxWeight - Weight < 1000 || checkweight(1201,1) == 0) {
+ mes "- Cannot proceed with the quest. You are carrying too many items. -";
+ close;
+ }
+ if (BaseLevel < 100) {
+ mes "[Maries]";
+ mes "Umm... Hey...";
+ mes "Oh, no, sorry. You don't look so strong or bold.";
+ mes "I'm sorry. I'm just not quite myself...";
+ close;
+ }
+ if (malaya_hi < 20) {
+ mes "An anxious looking woman is stands.";
+ close;
+ }
+ .@playtime = checkquest(7390, PLAYTIME);
+ if (.@playtime == 0 || .@playtime == 1) {
+ mes "[Maries]";
+ mes "Now that the children know that they can get back home with an Inside-out Shirt,";
+ mes "they play out in the forest recklessly and timelessly.";
+ next;
+ mes "[Maries]";
+ mes "The children will surely get lost again in these conditions.";
+ mes "If it happens again, I'll seek your help again.";
+ close;
+ } else if (.@playtime == 2) {
+ mes "[Maries]";
+ mes "I'm missing a child... again.";
+ mes "Oh my goodness...";
+ erasequest 7390;
+ close;
+ } else {
+ if (checkquest(7389) != -1) {
+ mes "[Maries]";
+ mes "You came back.";
+ mes "Thanks to you, the child has returned home safely.";
+ next;
+ mes "[Maries]";
+ mes "Although the shirt is inside-out, it miraculously brings them back to where they should be.";
+ mes "Thank you for delivering those precious shirts to my children.";
+ setquest 7390;
+ erasequest 7389;
+// if (IsPremiumPcCafe == 10)
+ getitem 6497, 2; // Lesser_Agimat
+// else
+// getitem 6497, 1; // Lesser_Agimat
+ getexp 200000,200000;
+ if (!rand(3))
+ $malayaNames$[2] = strcharinfo(0);
+ close;
+ } else {
+ if (checkquest(7388) != -1) {
+ mes "[Maries]";
+ mes "I'm sure they're lost in the woods because of mischievous spirits.";
+ mes "Please give the child the ^4d4dffInside-out Shirt^000000 when found.";
+ next;
+ mes "[Maries]";
+ mes "The Inside-out Shirts...";
+ mes "You can probably get them from the demons, since they ran away with them.";
+ close;
+ } else {
+ mes "[Maries]";
+ mes "Hello... I'm looking for my child...";
+ mes "My daughter did not return.";
+ mes "Please help, I think she's lost in the forest.";
+ next;
+ switch (select("Of course.:I'm too busy right now.:You have so many children.")) {
+ case 1:
+ mes "[Maries]";
+ mes "I'm sure she's lost in the woods because of mischievous spirits.";
+ next;
+ mes "[Maries]";
+ mes "If she's cursed, it will be difficult to get her out of there.";
+ mes "She'll drift around in the maze so mesmerizing, even for you, in fact.";
+ next;
+ mes "[Maries]";
+ mes "Acquire an ^4d4dffInside-out Shirt^000000 and give it to my daughter.";
+ mes "Although the shirt is inside-out, it miraculously brings them back to where they should be.";
+ next;
+ mes "[Maries]";
+ mes "The Inside-out Shirts...";
+ mes "You can probably get them from the demons, since they ran away with them.";
+ setquest 7388;
+ close;
+ case 2:
+ mes "[Maries]";
+ mes "... Yes... I see.";
+ mes "I'll have to ask someone else.";
+ mes "Alright.";
+ mes "Sigh...";
+ close;
+ case 3:
+ mes "[Maries]";
+ mes "...I ended up having triplets.";
+ mes "Even I sometimes get confused. *Chuckle*";
+ next;
+ mes "[Maries]";
+ mes "They seem to be under a curse because one of them always get's lost in the woods..";
+ mes "Sigh...";
+ close;
+ }
+ }
+ }
+ }
+ end;
+}
+
+ma_fild01,203,189,3 script Little Girl#malaya 4_F_BARYO_GIRL,{
+ mes "[Little Girl]";
+ mes "He he, the forest is scary, but it's so much fun so I go there often to play~";
+ mes "Strange, how we always get lost.";
+ next;
+ mes "[Little Girl]";
+ mes "But it's okay because I'm not the only one getting lost~";
+ mes "We're triplets~ And we're missing the other two~ Giggle~";
+ close;
+}
+
+ma_fild01,251,93,3 script Lost Child#malaya01 4_F_BARYO_GIRL,{
+ if (checkquest(7388) > -1) {
+ if (!countitem(12700)) {
+ mes "[Little Kid]";
+ mes "Sigh. Are you lost too?";
+ mes "They are so naughty.";
+ next;
+ mes "[Little Kid]";
+ mes "An Inside-out Shirt is just what I need.";
+ mes "*Chuckle*...";
+ close;
+ }
+ mes "[Little Kid]";
+ mes "Oh, darn them.";
+ mes "They must have tricked me into getting lost again!";
+ next;
+ select ("Do you want to go home?");
+ mes "[Little Kid]";
+ mes "If I don't get back soon, my mom will be worried sick.";
+ mes "Sigh... I wish I had an Inside-out Shirt to go back.";
+ next;
+ select ("Here you are.");
+ mes "[Little Kid]";
+ mes "Really?";
+ mes "It really is the shirt!";
+ mes "This will take me straight home!";
+ next;
+ mes "[Little Kid]";
+ mes "Did mom send you?";
+ mes "She must be worried..!";
+ mes "I'll go home now!";
+ mes "Thanks' a lot!";
+ delitem 12700, 1; // Insideout_Shirt
+ setquest 7389;
+ erasequest 7388;
+ close2;
+ disablenpc strnpcinfo(0);
+ if (strnpcinfo(0) == "Lost Child#malaya01") {
+ enablenpc "Lost Child#malaya02";
+ } else if (strnpcinfo(0) == "Lost Child#malaya01") {
+ enablenpc "Lost Child#malaya03";
+ } else {
+ enablenpc "Lost Child#malaya01";
+ }
+ end;
+ } else {
+ if (checkquest(7389) != -1) {
+ mes "[Little Kid]";
+ mes "I want to play some more.";
+ mes "I can always go back with this shirt.";
+ mes "Mom won't be concerned.";
+ close;
+ } else {
+ mes "[Little Kid]";
+ mes "Hmmm. Am I lost again?";
+ mes "Where am I...";
+ mes "I'm sure I have to head in the direction of sunrise from the third tree to get home... Huh?";
+ next;
+ mes "[Little Kid]";
+ mes "Why~ Do I always go in circles here?";
+ mes "Do you why, " + ((Sex) ? "mister" : "ma'am") + "?";
+ mes "What's with this road?";
+ mes "Is somebody trying to trick me?";
+ close;
+ }
+ }
+ end;
+
+OnInit:
+ if (strnpcinfo(0) != "Lost Child#malaya01")
+ disablenpc strnpcinfo(0);
+}
+ma_fild01,114,141,3 duplicate(Lost Child#malaya01) Lost Child#malaya02 4_F_BARYO_GIRL
+ma_fild01,130,314,3 duplicate(Lost Child#malaya01) Lost Child#malaya03 4_F_BARYO_GIRL
+
+ma_fild02,241,39,5 script Good Capre Budidai 4_MAL_BUDIDAI,{
+ mes "[Budidai]";
+ mes "Hey hey hey~";
+ mes "I am such a nice Capre~ Hey!";
+ mes "I am going to a fine cafe~YO!";
+ mes "I am better than yesterday~Hey!";
+ mes "I'm a fine rhyming Capre~Oh?";
+ next;
+ mes "[Budidai]";
+ mes "Hey buddy, You here to hear Budidai singing?";
+ next;
+ switch (select("You like songs?:A profound study of one eyed monsters.:See ya!")) {
+ case 1:
+ mes "[Budidai]";
+ mes "Yup, Budidai loves singing.";
+ mes "Cows, horses, goats, roosters, boars all love my songs.";
+ mes "They're all friends.";
+ next;
+ mes "[Budidai]";
+ mes "Except for that one eyed Bongisungisu.";
+ mes "He picks on my friends.";
+ mes "I am annoyed, but Budidai is weak.";
+ next;
+ mes "[Budidai]";
+ mes "I fear it's single gaze, but I fear more the club he flails.";
+ mes "I have to sing my friends some songs, but they don't come because of him.";
+ next;
+ mes "[Budidai]";
+ mes "So Budidai, sings here.";
+ mes "Lots of travelers pass by.";
+ mes "Capre is a wanderer's buddy.";
+ mes "You're a buddy too.";
+ close;
+ case 2:
+ if (BaseLevel < 100) {
+ mes "[Budidai]";
+ mes "You interested in that fiend, my friend?";
+ mes "It's just a bully of the forest!";
+ mes "It picks on my animal friends!";
+ next;
+ mes "[Budidai]";
+ mes "Sadly, singing is all that Budidai is skilled at.";
+ mes "I can't do anything about the scary gaze and the flailing club.";
+ next;
+ mes "[Budidai]";
+ mes "Bongisungisu! I get the chills just by being in the same forest with it...";
+ mes "But Budidai is weak.";
+ next;
+ mes "[Budidai]";
+ mes "You and me, wanderer.";
+ mes "We'll never make it.";
+ close;
+ }
+ .@playtime = checkquest(7410, PLAYTIME);
+ if (.@playtime == 0 || .@playtime == 1) {
+ mes "[Budidai]";
+ mes "Traveler, my friend!";
+ mes "Bongisungisu ran far far away.";
+ mes "Dogs, cows, horse, goat and rooster will come back to me, won't they?";
+ next;
+ mes "[Budidai]";
+ mes "But Budidai is worried.";
+ mes "The one eyed bully will return eventually.";
+ mes "Will you help me out again?";
+ next;
+ mes "[Budidai]";
+ mes "You, friend of Budidai";
+ mes "You won't turn you're back on a good Capre?";
+ close;
+ } else {
+ if (checkquest(7409) != -1) {
+ if (checkquest(7409, HUNTING) == 2) {
+ mes "[Budidai]";
+ mes "Astonishing, wanderer!";
+ mes "I could hear the pitiful wails of Bongisungisu all the way from here!";
+ mes "Budidai can sing again for his friends, yes?";
+ next;
+ mes "[Budidai]";
+ mes "Now, what can Budidai do for the kind wanderer, slayer of the one eyed monster?";
+ mes "Aha! Here's a talisman.";
+ mes "It will be good for you travelers.";
+ next;
+ mes "[Budidai]";
+ mes "Kind Capre is a friend of travelers.";
+ mes "I hope to see you again, wanderer.";
+ mes "This is a blessing for friends. Hey hey hey~";
+ setquest 7410;
+ erasequest 7409;
+// if (IsPremiumPcCafe == 10)
+ getitem 6497, 2; // Lesser_Agimat
+// else
+// getitem 6497, 1; // Lesser_Agimat
+ getexp 200000,200000;
+ if (!rand(3))
+ $malayaNames$[1] = strcharinfo(0);
+ close;
+ } else {
+ mes "[Budidai]";
+ mes "Please slay the destructive libertine Bongisungisu.";
+ mes "For me, a Capre to sing again for one's friends.";
+ close;
+ }
+ } else {
+ if (.@playtime == 2) {
+ mes "[Budidai]";
+ mes "Hey, kind wanderer.";
+ mes "Bongisungisu, the one eyed debauchee is back!";
+ mes "What do I do? What should I do?";
+ next;
+ mes "[Budidai]";
+ mes "He gets angry when I sing.";
+ mes "But the horse, cow, goat, dog and boars love it.";
+ mes "It gives Budidai such a hard time.";
+ erasequest 7410;
+ close;
+ } else {
+ mes "[Budidai]";
+ mes "You interested in that fiend, my friend?";
+ mes "It's just a bully of the forest!";
+ mes "It picks on my animal friends!";
+ next;
+ mes "[Budidai]";
+ mes "Sadly, singing is all that Budidai is skilled at.";
+ mes "I can't do anything about the scary gaze and the flailing club.";
+ next;
+ mes "[Budidai]";
+ mes "Bongisungisu! I get the chills just by being in the same forest with it...";
+ mes "But Budidai is weak.";
+ next;
+ if (select("Shall I take care of it?:That does give the chills.") == 2) {
+ mes "[Budidai]";
+ mes "Don't remind me.";
+ mes "My friends can't come and listen to my songs because of that behemoth.";
+ mes "It is so frustrating.";
+ close;
+ }
+ mes "[Budidai]";
+ mes "You'd teach Bongisungisu a lesson?!";
+ mes "Kind wanderer!!";
+ mes "Kick some libertine butt!!";
+ setquest 7409;
+ close;
+ }
+ }
+ }
+ break;
+ case 3:
+ mes "[Budidai]";
+ mes "Leave me wanderer~";
+ mes "Capre Budidai will sing of wonders~";
+ mes "You best everyone else~";
+ mes "You bring all them beasts~";
+ mes "Just go back to Kafra~";
+ next;
+ mes "[Budidai]";
+ mes "Hey hey hey~";
+ mes "Blessing of the Kind and Good Capre~";
+ mes "A wanderer's friend the gift of Capre~";
+ mes "Hey hey hey~";
+ close;
+ }
+ end;
+}
+
+// Traders :: malaya_npc
+//============================================================
+ma_fild01,166,214,6 script Old Man in Dilemma#GA 4_F_BARYO_OLD,{
+ if (MaxWeight - Weight < 600 || checkweight(1201,1) == 0) {
+ mes "Cannot proceed because you have too many items in your possession.";
+ close;
+ }
+ mes "[Old Man in Dilemma]";
+ mes "Oh! Demons are gaining more and more power in this world.";
+ next;
+ switch(select("We need to gather items to fight them off.:Ignore.")) {
+ case 1:
+ if (countitem(6497) >= 3 && Zeny >= 1000) {
+ mes "[Old Man in Dilemma]";
+ mes "You don't seem to be strong enough to fight off demons.";
+ next;
+ mes "[Old Man in Dilemma]";
+ mes "Will you create a Greater Agimat of Ancient Spirit with 3 Lesser Agimats and 1,000 Zeny?";
+ next;
+ if(select("Create.:No, thank you.") == 1) {
+ if (countitem(6497) >= 3 && Zeny >= 1000) {
+ specialeffect2 EF_CONE;
+ specialeffect EF_FORESTLIGHT2;
+ Zeny -= 1000;
+ getitem 12775,1; //Ancient_Spirit_Agimat
+ } else {
+ mes "[Old Man in Dilemma]";
+ mes "Short on materials.";
+ close;
+ }
+ }
+ mes "[Old Man in Dilemma]";
+ mes "Hope you win the fight with the demon.";
+ close;
+ }
+ mes "[Old Man in Dilemma]";
+ mes "Can't make it now but there is an old way of making it handed down by generations.";
+ next;
+ mes "[Old Man in Dilemma]";
+ mes "You need to call upon the power of Ancient Spirits. But you'll need several important materials first.";
+ next;
+ select("What are they?");
+ mes "[Old Man in Dilemma]";
+ mes "3 Lesser Agimats to hold the power of Ancient Spirits here and another special material handed down for generations.";
+ next;
+ mes "[Old Man in Dilemma]";
+ mes "But nobody can get this special item anymore.";
+ next;
+ select("Something money cannot buy?");
+ mes "[Old Man in Dilemma]";
+ mes "No, no... It's this round little thing, you see?";
+ next;
+ select("Are you talking about Zeny?");
+ mes "[Old Man in Dilemma]";
+ mes "Looks similar to the special items handed down from generations.";
+ next;
+ mes "[Old Man in Dilemma]";
+ mes "As long as we have enough of that, we could make the Greater Agimat of Ancient Spirit to fight against the demons.";
+ next;
+ select("Sounds good.");
+ mes "[Old Man in Dilemma]";
+ mes "In case you are too weary to take on the demons...";
+ next;
+ mes "[Old Man in Dilemma]";
+ mes "Come by with 3 Lesser Agimats and 1,000 of those so-called Zeny.";
+ next;
+ mes "[Old Man in Dilemma]";
+ mes "I will make a Greater Agimat of Ancient Spirit that will increase your attacks against demons by 10% for 20 min.";
+ close;
+ case 2:
+ mes "[Old Man in Dilemma]";
+ mes "Hope you win the fight with the demon.";
+ close;
+ }
+}
+
+ma_fild01,238,198,4 script Tikbalang Expert#malaya 4_M_MALAYA,{
+ if (MaxWeight - Weight < 50 || checkweight(1201,1) == 0) {
+ mes "Cannot proceed because you have too many items in your possession.";
+ close;
+ }
+ mes "[Tikbalang Expert]";
+ mes "I spent 90% of my life studying Tikbalang.";
+ next;
+ switch(select("But you look young?:What is Tikbalang?:Teach me how to catch a Tikbalang.")) {
+ case 1:
+ mes "[Tikbalang Expert]";
+ mes "What! I might be imagining things.";
+ next;
+ mes "[Tikbalang Expert]";
+ mes "I look younger than I am because of my baby face. Ha ha ha~";
+ next;
+ select("... ... ...");
+ mes "[Tikbalang Expert]";
+ mes "Trust!! They say faith will bring you luck.";
+ close;
+ case 2:
+ mes "[Tikbalang Expert]";
+ mes "Ha ha... You ask the right question.";
+ mes "I'm a specialist in that field. Ask me anything.";
+ next;
+ select("Why won't you answer me?");
+ mes "[Tikbalang Expert]";
+ mes "Have you... ever been fooled by anyone around you? Why can't you believe someone's word for it? Really, ask me anything.";
+ next;
+ while(1) {
+ switch(select("I don't have any questions.:Characteristics?:Features?:Rumors?:Habitat?")) {
+ case 1:
+ mes "[Tikbalang Expert]";
+ mes "I think this is enough explanation for now. You wouldn't understand other highly sophisticated topics with specific terminology and all anyway.";
+ next;
+ mes "[Tikbalang Expert]";
+ mes "Oh! Do you have any other questions?";
+ next;
+ mes "[Tikbalang Expert]";
+ mes "What do you think? Impressed at how much I know? Come by anytime when you have any more questions.";
+ close;
+ case 2:
+ mes "[Tikbalang Expert]";
+ mes "Tikbalangs have a way to confuse travelers when they meet them by making them turn in circles regardless of wherever and how far they travel.";
+ next;
+ mes "[Tikbalang Expert]";
+ mes "They are mischievous creatures.";
+ next;
+ mes "[Tikbalang Expert]";
+ mes "But of course there is a way to stop their pranks. You know about the Inside-out Shirt? You can either wear your top inside-out.";
+ next;
+ mes "[Tikbalang Expert]";
+ mes "Or go on your way quietly without disrupting the Tikbalangs.";
+ next;
+ mes "[Tikbalang Expert]";
+ mes "Ha ha ha ha~ But everyone knows adventurers are never quiet while they travel, right?";
+ next;
+ mes "[Tikbalang Expert]";
+ mes "Never...";
+ break;
+ case 3:
+ mes "[Tikbalang Expert]";
+ mes "They say Tikbalangs have several distinctions.";
+ next;
+ mes "[Tikbalang Expert]";
+ mes "First, they are very tall ^AAAAAA(tsk... wish I were tall)^000000 and have skinny, imbalanced legs and arms. Looks almost like a human but their knees are higher than their upper body when they sit down.";
+ next;
+ mes "[Tikbalang Expert]";
+ mes "Second, is the standard characteristics acknowledged by the association. They have heads and feet like a horse.";
+ next;
+ mes "[Tikbalang Expert]";
+ mes "So with all these appearance traits, Tikbalang is sometimes called the creature from hell.";
+ break;
+ case 4:
+ mes "[Tikbalang Expert]";
+ mes "There are several fun rumors about Tikbalangs.";
+ next;
+ mes "[Tikbalang Expert]";
+ mes "One of them is about Tikbalangs being the guardians of some kingdom that worships nature.";
+ next;
+ mes "[Tikbalang Expert]";
+ mes "So the Tikbalangs will trick travelers who come with bad intentions to the kingdom by making them travel in circles.";
+ next;
+ mes "[Tikbalang Expert]";
+ mes "Another rumor is that people around here say that 'if it rains on a clear day, then it must be Tikbalang's wedding day'.";
+ next;
+ mes "[Tikbalang Expert]";
+ mes "The association speculates that sayings like 'it rains on Bathory's wedding day' or 'it rains on Moonlight Flower's wedding day' might have derived from the Tikbalang's saying.";
+ next;
+ mes "[Tikbalang Expert]";
+ mes "Lastly, ancient fairy tales say that Tikbalangs can transform into human form or even make themselves transparen't but nobody has verified this yet.";
+ break;
+ case 5:
+ mes "[Tikbalang Expert]";
+ mes "Tikbalangs usually live in dark, busy places where there aren't many people around.";
+ next;
+ mes "[Tikbalang Expert]";
+ mes "Hmm... For example, they are known to live beneath bridges, in banana and bamboo forests and beneath large trees.";
+ next;
+ mes "[Tikbalang Expert]";
+ mes "And this is just my opinion but wouldn't you agree that they are living in dark places because it is easier to play pranks on people?";
+ break;
+ }
+ next;
+ }
+ case 3:
+ mes "[Tikbalang Expert]";
+ mes "Ha ha ha. Do you now know how great I am?";
+ next;
+ if (countitem(6496) >= 3 && countitem(6497) >= 5) {
+ mes "[Tikbalang Expert]";
+ mes "Oh! Isn't this material to make 'Tikbalang Belt' used to tame Tikbalangs?";
+ next;
+ mes "[Tikbalang Expert]";
+ mes "The '^F80835Tikbalang Belt^000000' is used to capture Tikbalangs without the hassle. But that doesn't mean it's 100% successful. Interested? Do you want me to make one for you?";
+ next;
+ switch(select("Yes, Im interested.:No, I can capture one myself.")) {
+ case 1:
+ delitem 6496,3; //Tikbalang_Thick_Spine
+ getitem 12699,1; //Tikbalang_Belt
+ mes "[Tikbalang Expert]";
+ mes "Yiiiiiiiiiiii! Yap!";
+ next;
+ specialeffect EF_SONICBLOW2;
+ select("Huh?");
+ mes "[Tikbalang Expert]";
+ mes "The '^F80835Tikbalang Belt^000000' is already created.";
+ close;
+ case 2:
+ mes "[Tikbalang Expert]";
+ mes "You? Ha... You can try if you want to.";
+ close;
+ }
+ }
+ mes "[Tikbalang Expert]";
+ mes "There is the easy way and the hard way to capture Tikbalangs. Which one do you prefer?";
+ next;
+ switch(select("Easy way.:Hard way.")) {
+ case 1:
+ mes "[Tikbalang Expert]";
+ mes "Ha ha. I've come up with the easy way myself.";
+ next;
+ mes "[Tikbalang Expert]";
+ mes "Bring me 3 Tikbalang's Thick Spines and 5 Lesser Agimats to make a '^F80835Tikbalang Belt^000000' to help you easily capture Tikbalangs.";
+ next;
+ mes "[Tikbalang Expert]";
+ mes "Ha ha ha ha ha!";
+ mes "I will say it again.";
+ mes "It's 3 Tikbalang's Thick Spines and 5 Lesser Agimats. Understood?";
+ close;
+ case 2:
+ mes "[Tikbalang Expert]";
+ mes "It's easy for me but I don't know about you.";
+ next;
+ mes "[Tikbalang Expert]";
+ mes "Tikbalangs have a sharp, pointy mane behind their neck.";
+ next;
+ mes "[Tikbalang Expert]";
+ mes "Of course! There are several of them but you must get the three thickest ones.";
+ next;
+ mes "[Tikbalang Expert]";
+ mes "These three manes are the weak point. You can tame a Tikbalang by pulling the manes out.";
+ next;
+ mes "[Tikbalang Expert]";
+ mes "Now let me explain how to pull these manes out.";
+ next;
+ mes "[Tikbalang Expert]";
+ mes "You must fly like a butterfly and land like a bee on the back of a Tikbalang.";
+ next;
+ mes "[Tikbalang Expert]";
+ mes "Of course! The Tikbalang will get mad and try to shake you off with all its might.";
+ next;
+ mes "[Tikbalang Expert]";
+ mes "All you have to do is hold on until the Tikbalang gets exhausted.";
+ next;
+ mes "[Tikbalang Expert]";
+ mes "Then again, itll take 4 days and 3 nights for Tikbalangs to get tired since they are strong creatures. But let's not focus on too much details.";
+ next;
+ mes "[Tikbalang Expert]";
+ mes "Which means!! The Tikbalang is already tamed.";
+ close;
+ }
+ }
+}
+
+// Upgrade Boss Equipment :: malaya_mvpitem
+//============================================================
+ma_fild01,158,243,6 script Tribe Blacksmith#malaya 4_M_MALAYA,{
+ mes "[Bayani]";
+ mes "I will upgrade your armor if you bring one that holds enormous power.";
+ next;
+ switch (select("What kind of equipment do upgrade?:What are the required materials?:What will it become after an upgrade?:Please upgrade this.")) {
+ case 1:
+ mes "[Bayani]";
+ mes "Your questions are too simple, but!";
+ next;
+ mes "[Bayani]";
+ mes "Are also important.";
+ next;
+ mes "[Bayani]";
+ mes "^7B4772Bakonawa Scale Armor^000000 made from the scales of the Bakonawa monster known to swallow the moon.";
+ next;
+ mes "[Bayani]";
+ mes "Light but sturdy ^7B4772Kalasag^000000 made from rattan that grows wild around Port Malaya.";
+ next;
+ mes "[Bayani]";
+ mes "^7B4772Buwaya Sack Cloth^000000 made from the sack of the man-eating alligator Buwaya.";
+ next;
+ mes "[Bayani]";
+ mes "^7B4772Bangungot Boots of Nightmare^000000 imbued with the hatred and vengeance of the monster Bangungot.";
+ next;
+ mes "[Bayani]";
+ mes "As just mentioned.";
+ next;
+ mes "[Bayani]";
+ mes "I will make powerful armor out of ONLY the strongest armor dropped from fearful monsters.";
+ close;
+ case 2:
+ mes "[Bayani]";
+ mes "Learned well.";
+ mes "Seems you learned that there is no such thing as free in life.";
+ next;
+ mes "[Bayani]";
+ mes "First thing to remember is that the object to upgrade must be strong itself. At least strong enough to endure ^FF0000+9 Refinement^000000.";
+ next;
+ mes "[Bayani]";
+ mes "Next is true strength that only comes out of power obtained naturally. I need ^FF000020 Ancient Grudges^000000 for protection from evil while Im refining.";
+ next;
+ mes "[Bayani]";
+ mes "When a ^FF0000+9 Refined Strong armor^000000 is combined with ^FF000020 Ancient Grudges^000000 for protection!!";
+ next;
+ mes "[Bayani]";
+ mes "You get a completely new and improved armor from old scraps.";
+ next;
+ mes "[Bayani]";
+ mes "Always look forward to this.";
+ close;
+ case 3:
+ mes "[Bayani]";
+ mes "Listen, because this is a very important question.";
+ next;
+ mes "[Bayani]";
+ mes "It won't matter if I say it more than a 100 times that upgraded armor is powerful.";
+ next;
+ mes "[Bayani]";
+ mes "Unless the one that holds it doesn't believe it is! Ask about what has changed and decide for yourself!";
+ next;
+ while (1) {
+ switch (select("There is no more.:Bakonawa Scale Armor:Kalasag:Buwaya Sack Cloth:Bangungot Boots of Nightmare")) {
+ case 1:
+ mes "[Bayani]";
+ mes "Looks like you ran out of questions.";
+ mes "Don't forget. You'll have to give up something to gain something.";
+ close;
+ case 2:
+ mes "[Bayani]";
+ mes "The Bakonawa Scale Armor adds +1 to all stats for all jobs which is overall great armor for everyone.";
+ next;
+ mes "[Bayani]";
+ mes "But I'm sure the inner you thinks this isn't enough.";
+ next;
+ mes "[Bayani]";
+ mes "That is why +2 can be added to all stats and an extra slot for a card to your socket if upgraded.";
+ next;
+ break;
+ case 3:
+ mes "[Bayani]";
+ mes "Kalasag is a good shield to reduce damage from boss monsters by 1% per 3 refinements.";
+ next;
+ mes "[Bayani]";
+ mes "But not enough. Can't believe that a shield doesnt have a place to equip a card.";
+ next;
+ mes "[Bayani]";
+ mes "That is why I can add an extra slot for a card to your socket if upgraded.";
+ next;
+ break;
+ case 4:
+ mes "[Bayani]";
+ mes "The Buwaya Sack Cloth offers healing capacity and healing item effect increase by 1% per 3 refinements. Not to mention it reduces 10% damage from Water, Earth, Fire, and Wind elemental monsters.";
+ next;
+ mes "[Bayani]";
+ mes "But not enough. Can't believe that these clothes don't come with a place to equip a card. Everyone knows that clothes should have Raydric on them!";
+ next;
+ mes "[Bayani]";
+ mes "Don't worry! I can add an extra slot for a card to your socket if upgraded.";
+ next;
+ break;
+ case 5:
+ mes "[Bayani]";
+ mes "The Bangungot Boots of Nightmare increases +1 MDEF per 1 refinement and speed increases starting at 14 refinement and above.";
+ next;
+ mes "[Bayani]";
+ mes "The speed increase effect from shoes like Moonlight Flower Shoes and Sleipnir items are out of reach for ordinary people.";
+ next;
+ mes "[Bayani]";
+ mes "But of course, +14 refinement isn't easy but there is an easy way to get it.";
+ next;
+ mes "[Bayani]";
+ mes "By upgrading your shoes, you can get speed increase starting from +12 refinement!";
+ next;
+ mes "[Bayani]";
+ mes "And it doesn't end there!!";
+ mes "I will also put in an extra slot in your socket to add a card.";
+ next;
+ break;
+ }
+ mes "[Bayani]";
+ mes "However, you'll have to give up something to gain something.";
+ next;
+ mes "[Bayani]";
+ mes "^0000FFEquipping the Kalasag, Buwaya Sack Cloth, Bakonawa Scale Armor, and Bangungot Boots of Nightmare all at once will lose the ^FF0000Set Effects^0000FF.^000000";
+ next;
+ mes "[Bayani]";
+ mes "Think it through. Next question?";
+ next;
+ }
+ }
+ mes "[Bayani]";
+ mes "Ha ha ha ha ha ha ha! Good!";
+ mes "You've brought the materials, right?";
+ next;
+ if (select("Oh... sorry...:Preparations are complete!!") == 1) {
+ mes "[Bayani]";
+ mes "Oh no!!";
+ mes "I will need an light but sturdy armor with an refinement of +9 or greater and 20 Ancient Grudges!!";
+ close;
+ }
+ if (countitem(6499) < 20) {
+ mes "[Bayani]";
+ mes "You said all preparations are done and you give me this?! I need at least 20 Ancient Grudges to refine your item.";
+ close;
+ }
+ mes "[Bayani]";
+ mes "So what armor will it be?";
+ next;
+ switch (select("Bakonawa Scale Armor:Kalasag:Buwaya Sack Cloth:Bangungot Boots of Nightmare")) {
+ case 1:
+ .@part = EQI_ARMOR;
+ .@item = 15051;
+ .@newItem = 15052;
+ break;
+ case 2:
+ .@part = EQI_HAND_L;
+ .@item = 2169;
+ .@newItem = 2170;
+ break;
+ case 3:
+ .@part = EQI_GARMENT;
+ .@item = 2590;
+ .@newItem = 2591;
+ break;
+ case 4:
+ .@part = EQI_SHOES;
+ .@item = 2491;
+ .@newItem = 2492;
+ break;
+ }
+
+ if (!(.@item)) {
+ mes "[Bayani]";
+ mes "You should wear the equipment to upgrade and not come without it on you.";
+ close;
+ } else if (getequipid(.@part) != .@item) {
+ mes "[Bayani]";
+ mes "What is this! You said you wanted to upgrade " + getitemname(.@item) + " but why are you giving me this? You should be wearing " + getitemname(.@item) + ".";
+ close;
+ } else if (getequiprefinerycnt(.@part) < 9) {
+ mes "[Bayani]";
+ mes "No, the sturdiness of this item has not been tested yet. It'll have to be at least +9 refined for me to say, 'Oh this is pretty sturdy armor.";
+ close;
+ }
+
+ mes "[Bayani]";
+ mes "Looks like you did your homework! Don't see a flaw! Then I have one question to ask before I start refinement.";
+ next;
+ mes "[Bayani]";
+ mes "^0000FFOnce your item is refined, the refinement level will be ^FF00000^0000FF and the item will be upgraded.^000000 You get this part?";
+ next;
+ if (select("No.:Yes.") == 1) {
+ mes "[Bayani]";
+ mes "What? You didn't know this? Then, read through my instructions and come back again.";
+ close;
+ }
+ mes "[Bayani]";
+ mes "Good. Next question. Once refinement is done,";
+ mes "^0000FFEquipping the Kalasag, Buwaya Sack Cloth, Bakonawa Scale Armor, and Bangungot Boots of Nightmare all at once will lose the ^FF0000Set Effects^0000FF.^000000";
+ mes "Do you understand this point?";
+ next;
+ if (select("No.:Yes.") == 1) {
+ mes "[Bayani]";
+ mes "What? You didn't know this? Then, read through my instructions and come back again.";
+ close;
+ }
+ mes "[Bayani]";
+ mes "Awesome! Then let's start refining " + getitemname(.@item) + ".";
+ next;
+ specialeffect EF_SONICBLOW;
+ mes "[Bayani]";
+ mes "Pow!! Wow!! Flip... flop!";
+ next;
+ specialeffect2 EF_TRIPLEATTACK;
+ mes "[Bayani]";
+ mes "BAM!!";
+ next;
+
+ delitem 6499,20; //Ancient_Grudge
+ delequip .@part;
+ getitem .@newItem, 1;
+
+ mes "[Bayani]";
+ mes "Ha ha. Perfect.";
+ mes "Congratulations. Your armor is better than ever.";
+ close;
+}
+
+// Secret in the Woods :: malaya_buwaya
+//============================================================
+malaya,305,281,3 script Guard#buwaya 4_MAL_SOLDIER,7,7,{
+ if (malaya_hi < 10) {
+ mes "- From the wary looks on the guard's face, it is obvious he is at alert at the sight of you. He won't intimidate you but seems he won't even deal with you either. -";
+ next;
+ mes "- Would there be anyone to talk to in the village? -";
+ close;
+ } else if (malaya_hi < 20) {
+ mes "[Guard]";
+ mes "There is a small area called ^3131FFBaryo Mahiwaga^000000 outside of Port Malaya.";
+ mes "The place is closer to mother nature than what we have here.";
+ next;
+ mes "[Guard]";
+ mes "On the other hand, the area is full of fierce monsters. Take care of yourself while you're traveling there.";
+ close;
+ }
+ if (malaya_buwaya == 0) {
+ mes "[Guard]";
+ mes "There are more people leaving the village secretly these days. Are you also heading for the woods to look for the mysterious treasure?";
+ next;
+ if (BaseLevel < 100) {
+ mes "[Guard]";
+ mes "I take that back. On second thought, I don't think a weakling like you would even dare to go there.";
+ next;
+ mes "[Guard]";
+ mes "You'd better hold tight to your mommy's hand if you want to go outside of Port Malaya or else the monsters will eat you alive. Ha ha.";
+ close;
+ }
+ mes "[Guard]";
+ mes "Is that why there are more outsiders here these days? Now don't be sneaky and a know-it-all. How would you know if I'd offered to take you around?";
+ next;
+ if (select("Treasure?:Ignore.") == 2) {
+ mes "[Guard]";
+ mes "Are you ignoring me? Bah.";
+ close;
+ }
+ mes "[Guard]";
+ mes "Oh, so you aren't here to look for treasure?";
+ next;
+ mes "[Guard]";
+ mes "I hear people are talking about a mysterious treasure hidden deep in the woods.";
+ set malaya_buwaya,1;
+ setquest 2271;
+ next;
+ }
+ if (malaya_buwaya == 1) {
+ mes "[Guard]";
+ mes "Do you see that group of people over there? They always gather and talk about it every day.";
+ mes "Try talking to them if you are interested, too.";
+ close;
+ }
+ mes "[Guard]";
+ mes "So the talk about treasure was just a rumor? I'm not asking because I want to be rich overnight. Ha ha.";
+ close;
+OnTouch:
+ if ((malaya_hi > 19) && (malaya_buwaya == 0)) {
+ emotion e_gasp;
+ emotion e_gasp,1;
+ }
+ end;
+}
+malaya,276,288,5 script Port Malaya Villager::buwaya_A 4_M_MALAYA,{
+ if (malaya_hi < 20) {
+ mes "- Look at you warily while whispering to each other. -";
+ close;
+ } else if (malaya_buwaya == 1) {
+ emotion e_gasp,0,"buwaya_A";
+ mes "[Port Malaya Villager]";
+ mes "No, I heard they got lost in the woods.";
+ mes "Who would hide such a treasure from a small village like ours?";
+ next;
+ emotion e_swt2,0,"buwaya_B";
+ mes "[Port Malaya Villager]";
+ mes "Could it been a monster? My grandma said there is a dragon with a huge head living deep inside the woods.";
+ next;
+ emotion e_no,0,"buwaya_C";
+ mes "[Port Malaya Villager]";
+ mes "No. Listen to me.";
+ next;
+ mes "[Port Malaya Villager]";
+ mes "You all know ^3131FFTotoy^000000? The kid living at the ^3131FFInn^000000.";
+ mes "Well, did you know Totoy came back from the woods recently?";
+ next;
+ emotion e_omg,0,"buwaya_A";
+ emotion e_omg,0,"buwaya_B";
+ mes "[Port Malaya Villager]";
+ mes "Really??? He came back alive?";
+ next;
+ emotion e_gasp,0,"buwaya_C";
+ mes "[Port Malaya Villager]";
+ mes "Yeah. But the strange part is that the troublemaker ^3131FFTotoy^000000 now quietly stays home and never comes out.";
+ next;
+ emotion e_what,0,"buwaya_B";
+ mes "[Port Malaya Villager]";
+ mes "Why?";
+ next;
+ emotion e_gasp,0,"buwaya_C";
+ mes "[Port Malaya Villager]";
+ mes "Don't you get it? Totoy must have found the treasure.";
+ next;
+ emotion e_omg,0,"buwaya_A";
+ emotion e_omg,0,"buwaya_B";
+ mes "[Port Malaya Villager]";
+ mes "What!!!! Then ^3131FFTotoy^000000 is rich now?";
+ next;
+ emotion e_no,0,"buwaya_C";
+ mes "[Port Malaya Villager]";
+ mes "I don't think so.";
+ mes "I saw ^3131FFTotoy^000000 come back home, but Totoy wasn't carrying anything.";
+ mes "But then, I must have missed it because I ran back home right away.";
+ next;
+ emotion e_what,0,"buwaya_B";
+ mes "[Port Malaya Villager]";
+ mes "Then what is ^3131FFTotoy^000000 doing at home?";
+ next;
+ emotion e_dots,0,"buwaya_C";
+ mes "[Port Malaya Villager]";
+ mes "I think Totoy is making a plan to bring the treasure back without us knowing it.";
+ mes "To have the whole treasure for himself, that greedy kid.";
+ next;
+ emotion e_what,0,"buwaya_A";
+ mes "[Port Malaya Villager]";
+ mes "Is that true?";
+ next;
+ emotion e_lv2,0,"buwaya_B";
+ mes "[Port Malaya Villager]";
+ mes "The treasure would be in better hands with me ~";
+ mes "I would clean it every day so it shined and would use it as a beautiful ornament. Ah~~~";
+ next;
+ emotion e_dots,0,"buwaya_C";
+ mes "[Port Malaya Villager]";
+ mes "Then how about we talk to ^3131FFTotoy^000000 to spill the beans on where the treasure is?";
+ next;
+ emotion e_what,0,"buwaya_A";
+ mes "[Port Malaya Villager]";
+ mes "Wow. That is an awesome idea. No wonder you're the leader!";
+ next;
+ emotion e_dots,0,"buwaya_A";
+ mes "[Port Malaya Villager]";
+ mes "But will ^3131FFTotoy^000000 give up the information easily?";
+ mes "Because Totoy was sneaky enough to think of getting away with taking the whole treasure.";
+ next;
+ emotion e_sob,0,"buwaya_B";
+ mes "[Port Malaya Villager]";
+ mes "Then we should convince ^3131FFTotoy^000000 to tell us where the treasure is instead of looking for it ourselves.";
+ next;
+ emotion e_sob,0,"buwaya_B";
+ mes "[Port Malaya Villager]";
+ mes "Ah~~~ it is so hard to get something pretty these days ~~~!!!!";
+ set malaya_buwaya,2;
+ erasequest 2271;
+ setquest 2272;
+ close;
+ } else if (malaya_buwaya == 2) {
+ mes "- Better pay a visit to this Totoy to get more information about the treasure. -";
+ close;
+ } else {
+ mes "- People are talking with serious faces. -";
+ close;
+ }
+}
+malaya,278,288,3 duplicate(buwaya_A) Port Malaya Villager::buwaya_B 4_F_MALAYA
+malaya,276,286,7 duplicate(buwaya_A) Port Malaya Villager::buwaya_C 4_M_MALAYA
+
+ma_in01,47,101,3 script Totoy#buwaya 4_M_BARYO_BOY,7,7,{
+ if ((malaya_hi < 20) || (malaya_buwaya < 2)) {
+ mes "- See someone shaky with dopey eyes. -";
+ close;
+ }
+ if (malaya_buwaya == 2) {
+ mes "- See someone shaky with dopey eyes. -";
+ next;
+ if (select("Tap him on the shoulder.:Ignore him.") == 2)
+ close;
+ emotion e_omg;
+ mes "[Totoy]";
+ mes "Wah! No! Go away! Leave me alone!";
+ next;
+ mes "[" + strcharinfo(0) + "]";
+ mes "Hey, are you alright?";
+ next;
+ mes "[Totoy]";
+ mes "Huh... you're a person? Who are you?";
+ next;
+ mes "- He looks you straight in the face but doesn't seem to recognize you. -";
+ next;
+ mes "[Totoy]";
+ mes "Who's there?";
+ next;
+ mes "[" + strcharinfo(0) + "]";
+ mes "I am " + strcharinfo(0) + ". You are Totoy, right? People say you've found a treasure. Is it true?";
+ next;
+ mes "[Totoy]";
+ mes "What treasure?";
+ mes "I can't see. I'm blinded. Please help me. I'm tired and frustrated.";
+ next;
+ mes "[" + strcharinfo(0) + "]";
+ mes "What happened?";
+ next;
+ mes "[Totoy]";
+ mes "Can't talk long. I need to heal my eyes first.";
+ mes "There should be some ^3131FFGreen Potion^000000 left inside the drawer. Will you take it out for me?";
+ set malaya_buwaya,3;
+ close;
+ } else if (malaya_buwaya == 3) {
+ if (!countitem(506)) {
+ mes "[Totoy]";
+ mes "Can't talk long. I need to heal my eyes first.";
+ mes "There should be some ^3131FFGreen Potion^000000 left inside the drawer. Will you get it for me?";
+ close;
+ }
+ mes "[Totoy]";
+ mes "Hello? Hey, are you still there? What happened to the Green Potion? Jeez, this is driving me crazy.";
+ next;
+ if (select("Hand over the Green Potion.:Do not hand over the potion.") == 2) {
+ mes "[Totoy]";
+ mes "Did you really leave? Hey! Darn!";
+ } else {
+ mes "[Totoy]";
+ mes "Gulp, gulp...";
+ delitem 506,1; //Green_Potion
+ set malaya_buwaya,4;
+ }
+ close;
+ } else if (malaya_buwaya == 4) {
+ emotion e_gasp;
+ mes "[Totoy]";
+ mes "I can see!! My eyes work!!!";
+ mes "Yay! I feel better now!";
+ next;
+ emotion e_dots,1;
+ emotion e_no1;
+ mes "[Totoy]";
+ mes "Wow! You look better than you sounded. Ha ha.";
+ next;
+ mes "[Totoy]";
+ mes "But what did you say? Something about a treasure?";
+ mes "Did you say I found a treasure?";
+ mes "What is that about?";
+ next;
+ select("Tell him what the people are talking about.");
+ emotion e_heh;
+ mes "[Totoy]";
+ mes "WHAT?";
+ mes "Puhaha! Totoy is rich! Became rich overnight! Chief Ed!";
+ next;
+ emotion e_pif;
+ mes "[Totoy]";
+ mes "Sorry but I went to the woods to collect bugs. Wish I saw a treasure while I was at it. Hmph!";
+ next;
+ emotion e_dots;
+ mes "[Totoy]";
+ mes "I did go deep in the woods because I wasn't getting anywhere with collecting bugs. But who would have thought I'd get into this mess?";
+ next;
+ if (select("What Totoy saw:About bugs") == 2) {
+ mes "[Totoy]";
+ mes "I only wanted to show people my collection of cute bugs. Ha ha.";
+ next;
+ emotion e_heh;
+ mes "[Totoy]";
+ mes "Dropping ice or bugs down peoples clothes is just like a daily greeting, isn't it?";
+ next;
+ mes "[Totoy]";
+ mes "I love to see people run around the village like they are in a marathon. He he.";
+ next;
+ }
+ mes "[Totoy]";
+ mes "I thought people wouldn't run away because of an ordinary bug so I went in the woods with Ed.";
+ next;
+ mes "[Totoy]";
+ mes "Ah, Ed is my cute puppy. He's very nice and cuddly. My best friend in the whole wide world.";
+ next;
+ emotion e_dots;
+ mes "[Totoy]";
+ mes "Ed usually barks a lot but I should have looked around when he barked and pulled on my sleeves.";
+ next;
+ mes "[Totoy]";
+ mes "- Totoy bends over and whispers to you as if walls have ears. -";
+ next;
+ mes "[Totoy]";
+ mes "There was a monster with a mouth the size of a house right behind me.";
+ next;
+ select("A monster?!");
+ mes "[Totoy]";
+ mes "Shssh! Be quiet. I've never seen a mouth that big before. It was full of a river of saliva flowing out of spiky teeth. Just the thought of it makes me want to hide.";
+ next;
+ mes "[Totoy]";
+ mes "The scariest part is that the monster has two heads. You won't believe it till you see it.";
+ next;
+ emotion e_sob;
+ mes "[Totoy]";
+ mes "Ed bit the monsters leg with all his might to let me get away. But I don't know what happened to him afterwards. Sniff~";
+ next;
+ mes "[Totoy]";
+ mes "That's when I hurt my eye. To tell you the truth I don't even remember how I came back.";
+ next;
+ select("About the monster");
+ mes "[Totoy]";
+ mes "Don't know. It was the first time I saw a monster like that. Who could live to tell the story?";
+ next;
+ mes "[Totoy]";
+ mes "Wait, maybe the ^FF0000Master of Hunting^000000 might know about the monster. They say he fought with all sorts of monsters.";
+ next;
+ mes "[Totoy]";
+ mes "I need some time alone. I need to make a tombstone for Ed. If you want to meet the ^FF0000Master of Hunting^000000, you'll find him near the Weapon Store.";
+ next;
+ mes "[Totoy]";
+ mes "And tell everyone else to stop spreading rumors about treasure. They don't know what I went through. Sniff! I'm going to put Ancient Worms in everyones clothes!";
+ set malaya_buwaya,5;
+ erasequest 2272;
+ setquest 2273;
+ close;
+ } else if (malaya_buwaya == 5) {
+ mes "[Totoy]";
+ mes "I have to make a grave for Ed. My loyal friend, Ed...";
+ mes "If you want to meet the ^FF0000Master of Hunting^000000, you'll find him near the Weapon Store.";
+ close;
+ } else if (malaya_buwaya == 6) {
+ mes "[Totoy]";
+ mes "Ed!! Eeeeeddddddd!!!";
+ mes "Can't believe you gave your life to save me. Wail!!!";
+ next;
+ mes "- Totoy can't be lying when he's crying his heart out like this. -";
+ close;
+ } else if (malaya_buwaya == 7) {
+ mes "[Totoy]";
+ mes "Where I saw the monster?";
+ next;
+ mes "[Totoy]";
+ mes "Um... Hmm...";
+ mes "I was so busy running away...";
+ next;
+ mes "[Totoy]";
+ mes "It was really deep in the woods. Probably even past Baryo Mahiwaga.";
+ mes "I think I heard the sound of ^3131FFFlowing Water^000000. A large whooshing sound. This is all I remember.";
+ close;
+ } else if ((malaya_buwaya > 7) && (malaya_buwaya < 12)) {
+ mes "[Totoy]";
+ mes "Poor Ed. I miss Ed. Wail!!!!";
+ close;
+ } else if (malaya_buwaya == 12) {
+ emotion e_sob;
+ mes "[Totoy]";
+ mes "Poor Ed. I miss Ed. Wail!!!!";
+ next;
+ enablenpc "Dog#buwaya_totoi";
+ mes "[Dog]";
+ mes "Bark bark!!";
+ next;
+ emotion e_omg;
+ mes "[Totoy]";
+ mes "Ed!!";
+ mes "Ed!!! You're alive!!!";
+ mes "You've come back!!! I'm so happy!!!!";
+ next;
+ mes "[Totoy]";
+ mes "Did you bring Ed back?";
+ mes "Thank you so much!";
+ mes "You didn't see the monster, did you?";
+ next;
+ mes "[" + strcharinfo(0) + "]";
+ mes "The monster is called Buwaya. I told the Guard about the monster. You better not go near the place again.";
+ next;
+ mes "[Totoy]";
+ mes "Okay!";
+ mes "He he. Ed, the woods are too dangerous so we can't go there for bugs anymore.";
+ next;
+ mes "[Dog]";
+ mes "Whimper...";
+ next;
+ mes "[Totoy]";
+ mes "But I'm sure we can find a way to keep our reputation with other creepy stuff!";
+ next;
+ mes "[Dog]";
+ mes "Bark bark!!";
+ next;
+ /*
+ // Better translation needed.
+ mes "[Totoy]";
+ mes "Um... hey!";
+ next;
+ select("You are a " + ((Sex) ? "boy" : "girl") + ", aren't you?");
+ emotion e_omg,1;
+ mes "[Totoy]";
+ mes "Huh?";
+ if (!Sex) {
+ mes "Totoy is a girl, and you are a boy.";
+ mes "You're not a boy?";
+ } else {
+ mes "Totoy is a girl, and you are a girl.";
+ mes "You're not a girl?";
+ }
+ next;
+ mes "[Totoy]";
+ mes "Is it because my name, Totoy? But that's the name my parents gave me thinking I would be a boy when I was born. Ha ha!";
+ next;
+ */
+ mes "[Totoy]";
+ mes "Anyway, thanks for bringing my best friend back.";
+ mes "I don't have much but would like to thank you. Wait, let me see what's inside my drawer. He he-";
+ set malaya_buwaya,13;
+ erasequest 2278;
+ setquest 2279;
+ close;
+ } else if (malaya_buwaya == 13) {
+// if (IsPremiumPcCafe == 10)
+ .@amount = 10;
+// else
+// .@amount = 5;
+ if (checkweight(1201,1) == 0 || MaxWeight - Weight < 2000) {
+ mes "- Wait!! -";
+ mes "- You have too many items on you. -";
+ mes "- Cannot receive the item. -";
+ mes "- Clean up your items -";
+ mes "- And please try again. -";
+ close;
+ }
+ mes "- Totoy goes through the drawer, turning it upside down. Making a mess of the room. -";
+ next;
+ mes "[Totoy]";
+ mes "Found it!";
+ next;
+ mes "[Totoy]";
+ mes "Here. My mom gave it to me but I don't know how to use it... He he.";
+ mes "I hope you can use it.";
+ next;
+ mes "[Totoy]";
+ mes "Visit me when you get bored!";
+ mes "Just don't ask about the treasure again~!";
+ next;
+ mes "[Dog]";
+ mes "Woof woof woof!!!!";
+ set malaya_buwaya,14;
+ getitem 6497,5; //Lesser_Agimat
+ disablenpc "Dog#buwaya_totoi";
+ erasequest 2279;
+ setquest 2280;
+ close;
+ } else {
+ mes "[Totoy]";
+ mes "Ed went out to play so I'm alone.";
+ mes "Would there be something awesome to surprise people with?";
+ close;
+ }
+OnTouch:
+ emotion e_omg;
+ end;
+}
+
+ma_in01,43,101,7 script Dog#buwaya_totoi 4_DOG01,{
+ end;
+OnInit:
+ disablenpc "Dog#buwaya_totoi";
+ end;
+}
+
+ma_in01,44,105,3 script Drawer#buwaya CLEAR_NPC,{
+ if (malaya_buwaya == 3) {
+ mes "- You look for the Green Potion in Totoys drawer. -";
+ next;
+ mes "- Rummaging, fumbling. -";
+ next;
+ mes "- Rummaging, fumbling. -";
+ mes "- Rummaging, fumbling. -";
+ next;
+ mes "- Clunk, clank, crunch. -";
+ next;
+ mes "[" + strcharinfo(0) + "]";
+ mes "What? I only see an empty potion bottle.";
+ mes "Does this mean I have to get the potion myself? That Totoy is really a troublemaker.";
+ close;
+ }
+ end;
+}
+
+malaya,290,152,5 script Master of Hunting#buwaya 4_M_BARYO_MAN,{
+ if ((malaya_hi < 20) || (malaya_buwaya < 5)) {
+ mes "[Master of Hunting]";
+ mes "Oh! Ho! Ho!";
+ mes "I am the Master of Hunting! I'm not afraid of anything with just one exception! I'm afraid of outsiders...";
+ close;
+ }
+ if (malaya_buwaya == 5) {
+ mes "[Master of Hunting]";
+ mes "Yo! Ho! Ho!";
+ mes "I went all the way to Rune-Midgarts Kingdom to defeat the Angry Minorous.";
+ next;
+ mes "[Master of Hunting]";
+ mes "And I succeeded in killing Muka, the one with the voice of a demon that disturbs the peace of the world.";
+ mes "Wow! He was really tough. I'm starting to sweat just thinking of him.";
+ next;
+ mes "[Master of Hunting]";
+ mes "Yo! You look like you have a few battle stories yourself. Have you ever seen a Minorous? Ha ha ha!";
+ next;
+ mes "[Master of Hunting]";
+ mes "So you came here to learn all about my excellent hunting skills? Or to ask me to publish an essay on Master of Hunting? Ho!";
+ next;
+ if (select("About Totoys monster:Interrupt.") == 2) {
+ mes "[Master of Hunting]";
+ mes "Oh? Hey! Where are you going?!";
+ close;
+ }
+ mes "[Master of Hunting]";
+ mes "You say someone saw the monster?";
+ next;
+ mes "[Master of Hunting]";
+ mes "There are many monsters in and out of Port Malaya. What is so special about this one?";
+ next;
+ select("About a monster with two heads");
+ mes "[Master of Hunting]";
+ mes "Ho! A monster with two heads, you say? Are you kidding? Where on earth is there a monster with two heads?!";
+ next;
+ mes "[Master of Hunting]";
+ mes "The kid must have been scared by a Condor or something.";
+ mes "There's a saying that someone surprised to see a Permeter, will also be surprised to see a peach tree. Ha ha!";
+ next;
+ mes "[Master of Hunting]";
+ mes "You shouldn't lie to an adult. I understand you want the Master of Huntings attention. Ha ha!";
+ next;
+ if (select("I will prove it.:Suspicious of Totoy.") == 2) {
+ mes "[Master of Hunting]";
+ mes "Kids tell stories for their own reasons. I'm sure Totoy is the same.";
+ set malaya_buwaya,6;
+ close;
+ }
+ mes "[Master of Hunting]";
+ mes "Oh! Really? Bring proof if you really think the kid is telling the truth.";
+ next;
+ mes "[Master of Hunting]";
+ mes "Every living thing leaves some kind of trace behind. You also leave behind traces and scents wherever you go. Especially in private places, I mean. He he!";
+ next;
+ mes "[Master of Hunting]";
+ mes "Try collecting 10 Animal Samples from where the kid saw the monster. I will look for traces of that monster from the samples.";
+ next;
+ mes "[Master of Hunting]";
+ mes (Sex) ? "It won't be pleasant but any brave man could easily do it, don't you agree?" : "I don't want the hands of a pretty girl to smell bad but I could care less with someone like you. Ha ha!";
+ set malaya_buwaya,7;
+ erasequest 2273;
+ setquest 2274;
+ close;
+ } else if (malaya_buwaya == 6) {
+ mes "[Master of Hunting]";
+ mes "Oh, you're back!";
+ next;
+ if (select("Let's see if we have a monster in it!:I don't think there is a monster.") == 2) {
+ mes "[Master of Hunting]";
+ mes "It was a kid's joke. Ha ha.";
+ close;
+ }
+ mes "[Master of Hunting]";
+ mes "Oh! Really? Bring proof if you really think the kid is telling the truth.";
+ next;
+ mes "[Master of Hunting]";
+ mes "Every living thing leaves some kind of trace behind. You also leave behind traces and scents wherever you go. Especially in private places, I mean. He he!";
+ next;
+ mes "[Master of Hunting]";
+ mes "Try collecting 10 Animal Samples from where the kid saw the monster. I will look for traces of that monster from the samples.";
+ next;
+ mes "[Master of Hunting]";
+ mes (Sex) ? "It won't be pleasant but any brave man could easily do it, don't you agree?" : "I don't want the hands of a pretty girl to smell bad but I could care less with someone like you. Ha ha!";
+ set malaya_buwaya,7;
+ erasequest 2273;
+ setquest 2274;
+ close;
+ } else if (malaya_buwaya == 7) {
+ if (countitem(6519) < 10) {
+ mes "[Master of Hunting]";
+ mes "Bring me back samples if you want to prove there is a monster with two heads.";
+ close;
+ }
+ mes "[Master of Hunting]";
+ mes "Argh! That's so foul.";
+ mes "You've really brought back the samples.";
+ mes "Ho! Leave it there and come back after washing your hands. Even god won't smile down at you with that stench.";
+ delitem 6519,10; //Collected_Sample
+ set malaya_buwaya,8;
+ erasequest 2274;
+ setquest 2275;
+ close;
+ } else if (malaya_buwaya == 8) {
+ mes "[Master of Hunting]";
+ mes "Ho! Shall I?";
+ next;
+ mes "- Rummaging, fumbling. -";
+ next;
+ mes "- Rummaging, fumbling. -";
+ mes "- Wriggling, wiggling. -";
+ next;
+ mes "- Rummaging, fumbling. -";
+ mes "- Wriggling, wiggling. -";
+ mes "- Sway, swag. -";
+ next;
+ mes "[Master of Hunting]";
+ mes "Ho! This is!!";
+ next;
+ mes "[Master of Hunting]";
+ mes "Wow! Ho! Ho! Ho! Awesome!!!!!!";
+ next;
+ mes "[Master of Hunting]";
+ mes "You! Come here and feel this!";
+ set malaya_buwaya,9;
+ enablenpc "#buwaya_soil";
+ close;
+ } else if (malaya_buwaya == 9) {
+ mes "[Master of Hunting]";
+ mes "Don't just stand there. Touch the sample!";
+ enablenpc "#buwaya_soil";
+ close;
+ } else if (malaya_buwaya == 10) {
+ mes "[Master of Hunting]";
+ mes "Hurry and tell the Guard Leader that Buwaya is active again. Hurry! You'll find the Guard Leader at the north of the village.";
+ close;
+ } else {
+ mes "[Master of Hunting]";
+ mes "Snooze...";
+ close;
+ }
+}
+
+malaya,291,152,3 script #buwaya_soil 4_SOIL,{
+ if (malaya_buwaya == 9) {
+ mes "- Rummaging, fumbling. -";
+ next;
+ mes "- Rummaging, fumbling. -";
+ mes "- Wriggling, wiggling. -";
+ next;
+ mes "- Rummaging, fumbling. -";
+ mes "- Wriggling, wiggling. -";
+ mes "- Sway, swag. -";
+ next;
+ if (rand(1,10) <= 5) {
+ mes "[" + strcharinfo(0) + "]";
+ mes "I don't see anything.";
+ next;
+ mes "[Master of Hunting]";
+ mes "It can't be! Look closer!";
+ } else {
+ mes "- Felt something pointy with the end of your fingers. -";
+ next;
+ mes "[" + strcharinfo(0) + "]";
+ mes "Ouch!";
+ mes "What is this?";
+ next;
+ mes "[Master of Hunting]";
+ mes "Ho! This is huge! And so dense that it can easily scratch steel!";
+ next;
+ mes "[Master of Hunting]";
+ mes "This is ^3131FFBuwaya^000000's tooth!";
+ mes "How could this be!";
+ next;
+ select("Buwaya?");
+ mes "[Master of Hunting]";
+ mes "Ah! Yes! Stop holding it up. It stinks. Go wash your hands.";
+ next;
+ mes "[Master of Hunting]";
+ mes "Hmm. The monster the kid saw must be Buwaya. No doubt about it.";
+ next;
+ mes "[Master of Hunting]";
+ mes "I've heard that the wife of the neighbor of my grandfather's uncle on my mom's side was also killed by Buwaya.";
+ next;
+ mes "[Master of Hunting]";
+ mes "They say no living thing is left after Buwaya passes by.";
+ mes "Totoy is one lucky kid. Wow!";
+ next;
+ mes "[Master of Hunting]";
+ mes "Buwaya was inactive for a long time. Wonder if it was hibernating? Hmm.";
+ next;
+ mes "[Master of Hunting]";
+ mes "Now that I know that a monster like that is out there, I should be cautious, too.";
+ mes "Must tell the villagers not to go too deep into the woods.";
+ next;
+ mes "[Master of Hunting]";
+ mes "Please go and tell the Guard Leader that Buwaya is active again.";
+ mes "I will contact other hunters in the meantime and think of a plan to kill Buwaya.";
+ set malaya_buwaya,10;
+ disablenpc "#buwaya_soil";
+ erasequest 2275;
+ setquest 2276;
+ }
+ close;
+ }
+ end;
+OnInit:
+ disablenpc "#buwaya_soil";
+ end;
+}
+
+- script Unknown Trace#buwaya -1,{
+ if (checkweight(1201,1) == 0 || MaxWeight - Weight < 2000) {
+ mes "- Wait!! -";
+ mes "- You have too many items on you. -";
+ mes "- Cannot receive the item. -";
+ mes "- Clean up your items -";
+ mes "- And please try again. -";
+ close;
+ }
+ if (malaya_buwaya == 7) {
+ if (countitem(6519) >= 10) {
+ mes "- You don't have to collect any more samples. -";
+ close;
+ }
+ mes "- You see something entangled with soil and grass. -";
+ next;
+ if (rand(1,10) <= 2) {
+ mes "- You are nauseous by the foul smell coming from the samples you are collecting. -";
+ sc_start SC_POISON,5000,0;
+ close;
+ }
+ mes "- You slowing and cautiously collect the squashy and slightly warm substance. -";
+ next;
+ mes "[" + strcharinfo(0) + "]";
+ mes "It's warm as a mother's bosom.";
+ getitem 6519,1; //Collected_Sample
+ disablenpc strnpcinfo(0);
+ initnpctimer;
+ close;
+ }
+ end;
+OnTimer20000:
+ enablenpc strnpcinfo(0);
+ stopnpctimer;
+ end;
+}
+ma_fild02,155,235,3 duplicate(Unknown Trace#buwaya) Unknown Trace#buwaya_1 4_SOIL
+ma_fild02,143,142,3 duplicate(Unknown Trace#buwaya) Unknown Trace#buwaya_2 4_SOIL
+ma_fild02,266,155,3 duplicate(Unknown Trace#buwaya) Unknown Trace#buwaya_3 4_SOIL
+ma_fild02,221,91,3 duplicate(Unknown Trace#buwaya) Unknown Trace#buwaya_4 4_SOIL
+ma_fild02,205,85,3 duplicate(Unknown Trace#buwaya) Unknown Trace#buwaya_5 4_SOIL
+ma_fild02,300,98,3 duplicate(Unknown Trace#buwaya) Unknown Trace#buwaya_6 4_SOIL
+ma_fild02,100,275,3 duplicate(Unknown Trace#buwaya) Unknown Trace#buwaya_7 4_SOIL
+
+malaya,290,340,3 script Guard Leader#buwaya 4_MAL_CAPTAIN,{
+ if (checkweight(1201,1) == 0 || MaxWeight - Weight < 2000) {
+ mes "- Wait!! -";
+ mes "- You have too many items on you. -";
+ mes "- Cannot receive the item. -";
+ mes "- Clean up your items -";
+ mes "- And please try again. -";
+ close;
+ }
+ if (malaya_hi < 20) {
+ mes "- Look at you warily while whispering to each other. -";
+ close;
+ }
+ if (malaya_buwaya <= 10) {
+ mes "[Guard Leader]";
+ mes "We are busy as hell because of Bangungots servants attacking the hospital.";
+ next;
+ mes "[Guard Leader]";
+ mes "We are doing our best in securing the safety of our village so please enjoy your stay in Port Malaya.";
+ }
+ if (malaya_buwaya == 10) {
+ next;
+ if (select("Tell him about Buwaya.:Done with conversation.") == 2) {
+ close;
+ }
+ mes "[Guard Leader]";
+ mes "Buwaya? The merciless creature is back?";
+ next;
+ mes "[Guard Leader]";
+ mes "That's bad news. We are already short-handed by assigning everyone to fight off Bangungot.";
+ next;
+ mes "[Guard Leader]";
+ mes "And villagers need to go to the woods to collect fruits and vegetables.";
+ next;
+ mes "[Guard Leader]";
+ mes "Hmm... will you be able to help Port Malaya?";
+ next;
+ if (select("Leave it to me!:I'm pretty busy myself.") == 2) {
+ mes "[Guard Leader]";
+ mes "Really? That's no good. All the lives of the villagers will be at stake if we don't do something. How can a youth like you be so heartless. Are all outsiders like you? Hmph! Can't trust young people these days. Hmph.";
+ close;
+ }
+ mes "[Guard Leader]";
+ mes "I knew I could count on you.";
+ next;
+ mes "[Guard Leader]";
+ mes "Good. I will trust you.";
+ mes "I need to know where Buwaya will likely appear in order to secure villagers living area.";
+ mes "Guess Buwayas nest will be the best bet.";
+ next;
+ mes "[Guard Leader]";
+ mes "^3131FFShoot a smoke bomb^000000 once you reach the area.";
+ mes "Then we will run to where the smoke bomb was shot.";
+ next;
+ mes "[Guard Leader]";
+ mes "Then take care and good luck.";
+ set malaya_buwaya,11;
+ erasequest 2276;
+ setquest 2277;
+ } else if (malaya_buwaya == 11) {
+ mes "[Guard Leader]";
+ mes "^3131FFShoot a smoke bomb^000000 once you reach the area.";
+ mes "Then we will run to where the smoke bomb was shot.";
+ } else if ((malaya_buwaya == 12) || (malaya_buwaya == 13)) {
+ mes "[" + strcharinfo(0) + "]";
+ mes "Let's first bring Ed to Totoy.";
+ } else if (malaya_buwaya == 14) {
+ mes "[Guard Leader]";
+ mes "The Guard Leader gave you the location of Buwaya's cave.";
+ mes "This can't be happening.";
+ next;
+ mes "[Guard Leader]";
+ mes "I'm way out of men to assign to the Buwaya situation but well have to do something with what we got.";
+ next;
+ mes "[Guard Leader]";
+ mes "Here, this is a symbol of our gratitude.";
+ mes "If you would like to help with Buwaya again, please look for me.";
+ mes "Hope you have a great journey.";
+ set malaya_buwaya,15;
+ getexp 1000000, 600000;
+ completequest 2280;
+ } else {
+ set .@hunting, checkquest(2281,HUNTING);
+ if (.@hunting == -1) {
+ mes "[Guard Leader]";
+ mes "Hear Buwaya appeared from the depth of the Forest.";
+ mes "As everyone knows, all our manpower is dispatched to handle Bangungots servants attacking the hospital recently.";
+ next;
+ mes "[Guard Leader]";
+ mes "That is why we have no choice but to ask an outsider to help eliminate Buwaya.";
+ mes "They say Buwaya is a very strong and ugly monster with two heads.";
+ mes "Will you help us defeat Buwaya?";
+ next;
+ if (select("Of course.:Nope.") == 2) {
+ mes "[Guard Leader]";
+ mes "Buwaya is known to be a very dangerous monster.";
+ mes "There is no shame in rejecting this request.";
+ close;
+ }
+ if (BaseLevel < 130) {
+ mes "[Guard Leader]";
+ mes "This mission will be a dangerous one.";
+ mes "If you want to help get rid of Buwaya, you must be prepared.";
+ mes "Come back once you reach LV 130.";
+ close;
+ }
+ mes "[Guard Leader]";
+ mes "According to the legend, Buwaya kidnaps people and puts them in the sack on its back and then eats them later.";
+ next;
+ mes "[Guard Leader]";
+ mes "Keep this in mind and be cautious at all times.";
+ mes "I recommend asking trustful colleagues for help.";
+ setquest 2281;
+ } else if (.@hunting == 0 || .@hunting == 1) {
+ mes "[Guard Leader]";
+ mes "How is it going with the Buwaya situation?";
+ next;
+ if (select("I give up.:Still fighting.") == 2) {
+ mes "[Guard Leader]";
+ mes "Keep this in mind and be cautious at all times.";
+ mes "I recommend asking trustful colleagues for help.";
+ close;
+ }
+ mes "[Guard Leader]";
+ mes "Buwaya is known to be a very dangerous monster.";
+ mes "There is no shame in rejecting this request.";
+ erasequest 2281;
+ } else if (.@hunting == 2) {
+// if (IsPremiumPcCafe == 10)
+ .@amount = 10;
+// else
+// .@amount = 5;
+ mes "[Guard Leader]";
+ mes "Can't believe you really got rid of Buwaya!";
+ mes "You aren't just any ordinary youth, aren't you? People of Port Malaya can now sleep at night.";
+ next;
+ mes "[Guard Leader]";
+ mes "Good work.";
+ erasequest 2281;
+ getitem 6497, .@amount; //Lesser_Agimat
+ getexp 0,600000;
+ } else {
+ mes "[Guard Leader]";
+ mes "I will not stand down until all of Port Malaya, including Baryo Mahiwaga, is safe from Buwaya. Promise to take care of yourself.";
+ erasequest 2281;
+ }
+ }
+ close;
+}
+
+ma_fild02,307,245,0 script #buwaya_todog1 HIDDEN_WARP_NPC,3,3,{
+ end;
+OnTouch:
+ if (malaya_buwaya == 11) {
+ enablenpc "Dog#buwaya";
+ //mes "[Here something]";
+ mes "Bark bark!!";
+ close;
+ }
+ end;
+}
+ma_fild02,320,241,0 duplicate(#buwaya_todog1) #buwaya_todog2 HIDDEN_WARP_NPC,3,3
+ma_fild02,317,250,0 duplicate(#buwaya_todog1) #buwaya_todog3 HIDDEN_WARP_NPC,7,7
+
+ma_fild02,312,259,3 script Dog#buwaya 4_DOG01,{
+ if (malaya_buwaya == 11) {
+ mes "[Dog]";
+ mes "Bark bark!!";
+ next;
+ mes "[" + strcharinfo(0) + "]";
+ mes "Why is a dog here?";
+ next;
+ if (select("Look closely at the dog.:Ignore it.") == 2) {
+ mes "[" + strcharinfo(0) + "]";
+ mes "Looks like a lost dog.";
+ close;
+ }
+ mes "- Looked real hard at the dirty dog and noticed an old collar on its neck. -";
+ next;
+ mes "- The collar says, 'Forever with Totoy'. -";
+ next;
+ mes "[" + strcharinfo(0) + "]";
+ mes "So you are Ed?";
+ next;
+ mes "[Dog]";
+ mes "Bark bark!";
+ next;
+ mes "[" + strcharinfo(0) + "]";
+ mes "You didn't get killed by Buwaya. You lucky little dog. Let's go back to your owner.";
+ next;
+ emotion e_ho;
+ mes "[Dog]";
+ mes "Bark bark!!";
+ next;
+ mes "[" + strcharinfo(0) + "]";
+ mes "Ah, before we go, do you happen to know where Buwaya's nest is?";
+ next;
+ mes "[Dog]";
+ mes "Woof!";
+ next;
+ mes "- Ed is one smart dog and understood what you asked him. Ed started to bark towards the north. -";
+ next;
+ mes "[" + strcharinfo(0) + "]";
+ mes "Buwaya is over there!";
+ mes "Then I should shoot the smoke bomb here.";
+ next;
+ mes "- You take the smoke bomb out of your inventory and shoot towards the sky. -";
+ next;
+ mes "^FF0000- Shoook-^000000";
+ enablenpc "Guard#buwayacave";
+ specialeffect2 EF_MVP;
+ next;
+ mes "[Guard]";
+ mes "Job well done!";
+ mes "So Buwaya lives in remote place like this. I will make sure this information goes to the Guard Leader!";
+ disablenpc "Guard#buwayacave";
+ next;
+ mes "[" + strcharinfo(0) + "]";
+ mes "Should I return Ed to Totoy first and then go see the Guard Leader?";
+ next;
+ mes "[Dog]";
+ mes "Bark bark!";
+ set malaya_buwaya,12;
+ disablenpc "Dog#buwaya";
+ erasequest 2277;
+ setquest 2278;
+ close;
+ } else if (malaya_buwaya == 12) {
+ mes "[" + strcharinfo(0) + "]";
+ mes "Lets first bring Ed to Totoy and then go back to the Guard Leader.";
+ close;
+ }
+ end;
+OnInit:
+ disablenpc "Dog#buwaya";
+ end;
+}
+
+ma_fild02,308,262,3 script Guard#buwayacave 4_MAL_SOLDIER,{
+ end;
+OnInit:
+ disablenpc "Guard#buwayacave";
+ end;
+}
+
+// Bakonawa Extermination :: malaya_bakonawa
+//============================================================
+malaya,280,331,4 script Singing Man#bako1 4_M_BARYO_MAN,{
+ if (malaya_bakona1 < 5) {
+ mes "[Singing Man]";
+ mes "Story of dragon that lives at a lake~";
+ mes "Story of an old lady";
+ mes "that became a dragon long ago~";
+ next;
+ mes "[Singing Man]";
+ mes "Waiting for the son that left for a foreign land,";
+ mes "my son will return";
+ mes "when that moon sets for the 90th time";
+ next;
+ mes "[Singing Man]";
+ mes "The moon sets for the 89th,";
+ mes "The moon sets for the 90th,";
+ mes "The moon sets for the 191st...";
+ next;
+ mes "[Singing Man]";
+ mes "That moon has taken my son away~";
+ mes "That horrible thing";
+ mes "has swallowed my son,";
+ mes "and I will punish that moon~";
+ next;
+ mes "[Singing Man]";
+ mes "The day the furious moon hides itself from sight,";
+ mes "the whole world will be flooded with rain";
+ mes "with all the villages and people facing death under water~";
+ next;
+ mes "[Singing Man]";
+ mes "The old lady's curse made the moon furious~";
+ mes "Get rid of the old lady to calm the moon~";
+ mes "If only the old lady wasn't here, If only the old lady wasn't here...";
+ next;
+ mes "[Singing Man]";
+ mes "I hear rumors~";
+ mes "The old lady threw herself into the lake~";
+ mes "the old lady, now turned into a dragon, will swallow the moon";
+ mes "and soon swallow the village too~";
+ close;
+ } else {
+ mes "[Singing Man]";
+ mes "You say the legend is all a lie?";
+ mes "You mean my ancestors are all liars";
+ mes "and swindlers?";
+ next;
+ mes "[Singing Man]";
+ mes "This village is built on an old legend";
+ mes "and history.";
+ mes "They are not the kind of people that will be shaken by";
+ mes "foolish words of an imbecile such as yourself.";
+ close;
+ }
+}
+
+malaya,275,333,5 script Singing Woman#bako1 4_F_BARYO_WOMAN,{
+ if (malaya_bakona1 < 5) {
+ mes "[Singing Woman]";
+ mes "Bakonawa that live at a lake,";
+ mes "story of an old lady that became a dragon.";
+ next;
+ mes "[Singing Woman]";
+ mes "The son that was suppose to return after the moon sets for the 90th time";
+ mes "never did come back even after the moon had set for a few hundred times~";
+ mes "The moon has swallowed the old lady's son~";
+ next;
+ mes "[Singing Woman]";
+ mes "The moon, the moon, you shall receive the old lady's curse~";
+ mes "The whole village was immersed in death";
+ mes "with rain and floods sent by the furious moon~";
+ next;
+ mes "[Singing Woman]";
+ mes "The moon, the moon, be still and be calm,";
+ mes "for the old lady is gone and she is no more~";
+ mes "The old lady has drowned in the lake~";
+ mes "She will transform into Bakonawa and come back...";
+ next;
+ mes "[Singing Woman]";
+ mes "...to swallow you and";
+ mes "punish the village soon~";
+ mes "The day the moon dies";
+ mes "is the day the village dies too~";
+ close;
+ } else {
+ mes "[Singing Woman]";
+ mes "The legends are all a lie?";
+ mes "Why do you say such nonsense?";
+ mes "Is there nothing";
+ mes "that is important for you to protect?";
+ next;
+ mes "[Singing Woman]";
+ mes "Poor Bakonawa...";
+ mes "I would be happy";
+ mes "if she took a big bite out of someone like you!";
+ close;
+ }
+}
+
+malaya,290,329,4 script Frightened Boy#bako1 4_M_BARYO_BOY,{
+ if (malaya_hi < 20) {
+ mes "- He seems cautious of you. -";
+ close;
+ }
+ if (malaya_bakona1 < 5) {
+ mes "[Frightened Boy]";
+ mes "The vicious monster Bakonawa will soon come";
+ mes "to swallow the moon and take vengeance upon the village.";
+ mes "I'm scared, please help...";
+ close;
+ } else {
+ mes "[Frightened Boy]";
+ mes "The legend of Bakonawa is all a lie?";
+ mes "So that means Bakonawa doesn't exist?";
+ mes "I'm going to play with my friends at the lake later.";
+ mes "You told me it was all a lie right?";
+ close;
+ }
+}
+
+malaya,264,338,4 script Frightened Maiden#bako1 4_F_BARYO_GIRL,{
+ if (malaya_hi < 20) {
+ mes "- She seems cautious of you. -";
+ close;
+ }
+ if (malaya_bakona1 < 5) {
+ mes "[Frightened Maiden]";
+ mes "It is said that Bakonawa hates loud noises.";
+ mes "Pound the pot if you want to live!";
+ next;
+ switch(select("Hates loud noises?:What is Bakonawa?")) {
+ case 1:
+ mes "[Frightened Maiden]";
+ mes "You already heard that the old lady";
+ mes "died and became Bakonawa, right?";
+ next;
+ mes "[Frightened Maiden]";
+ mes "The legend has it that";
+ mes "the old lady had very keen hearing";
+ mes "because she was always focusing on";
+ mes "the returning of her traveling son.";
+ next;
+ mes "[Frightened Maiden]";
+ mes "So naturally, Bakonawa also";
+ mes "has very keen hearing.";
+ mes "The reason why everyone is banging";
+ mes "pots and pans is because of this.";
+ close;
+ case 2:
+ mes "[Frightened Maiden]";
+ mes "It is a terrible monster that lives at a lake.";
+ mes "We are all trembling with fear";
+ mes "because we don't know when it might attack the village.";
+ next;
+ mes "[Frightened Maiden]";
+ mes "Some say that it is more obsessed with swallowing the moon";
+ mes "than attacking the village.";
+ mes "if that's the case, I wish it would just swallow the moon";
+ mes "and leave us alone.";
+ close;
+ }
+ } else {
+ mes "[Frightened Maiden]";
+ mes "The villagers hate you now.";
+ mes "You've been saying that legend of Bakonawa";
+ mes "is a lie and they are saying you are more of a monster";
+ mes "than Bakonawa.";
+ close;
+ }
+}
+
+malaya,272,339,5 script Old Fortune Teller#bako1 4_F_BARYO_OLD,{
+ if (malaya_hi < 20) {
+ mes "- Old Fortune Teller seems cautious of you. -";
+ close;
+ }
+ if (malaya_bakona1 < 5) {
+ mes "[Old Fortune Teller]";
+ mes "You must not hate Bakonawa.";
+ mes "The hate against it is only feeding its rage";
+ mes "to grow bigger.";
+ next;
+ mes "[Old Fortune Teller]";
+ mes "To calm the dead lady's anger,";
+ mes "we annually hold a ceremony and prepare food.";
+ mes "But there seems to be no way to calm the";
+ mes "ever growing anger of the old lady.";
+ next;
+ mes "[Old Fortune Teller]";
+ mes "The day is nearing. I can sense it.";
+ mes "Bakonawa will soon swallow the moon";
+ mes "and come to punish the village.";
+ close;
+ } else {
+ mes "[Old Fortune Teller]";
+ mes "How can you say the legend is a lie!";
+ mes "Because of you, the fury of Bakonawa";
+ mes "grew even larger!";
+ mes "If the village perishes,";
+ mes "it is all your fault!";
+ close;
+ }
+}
+
+malaya,285,332,4 script Old Legend Teller#bako1 4_M_BARYO_OLD,{
+ if (checkweight(1301,3) == 0) {
+ mes "You cannot start the conversation. You are carrying too many items. -";
+ close;
+ }
+ if (BaseLevel < 120) {
+ mes "[Old Legend Teller]";
+ mes "There is something that needs to be done";
+ mes "but you look too fragile";
+ mes "to give me a hand.";
+ next;
+ mes "[Old Legend Teller]";
+ mes "Come back when";
+ mes "your strength grows strong enough";
+ mes "to match Incubus.";
+ close;
+ }
+ if (malaya_hi < 20) {
+ mes "- He seems cautious of you. -";
+ close;
+ }
+ if (malaya_bakona1 == 0) {
+ mes "[Old Legend Teller]";
+ mes "The old lady has come back";
+ mes "to life as Bakonawa.";
+ mes "Soon she will come to take vengeance on the village.";
+ mes "We must calm her";
+ mes "if to prevent further destruction...";
+ next;
+ switch(select("Calm Bakonawa?:Further destruction?")) {
+ case 1:
+ mes "[Old Legend Teller]";
+ mes "The old lady faced an unjust death";
+ mes "because of villagers' selfishness.";
+ mes "She was a caring mother who loved her";
+ mes "son dearly.";
+ next;
+ mes "[Old Legend Teller]";
+ mes "If we track the whereabouts of her son and hold a ritual";
+ mes "with her son's belongings,";
+ mes "her restless soul will be calmed";
+ mes "and she will spare us from destruction.";
+ next;
+ mes "[Villagers]";
+ mes "It is no use sir!!";
+ next;
+ mes "[Villagers]";
+ mes "You cannot stop the monster that way!";
+ next;
+ mes "[Old Legend Teller]";
+ mes "Of course, it will not be easy to track down the whereabouts of a person";
+ mes "who has been gone for a hundred years.";
+ mes "...";
+ next;
+ mes "[Old Legend Teller]";
+ mes "Still, don't you think";
+ mes "it is worth a try?";
+ mes "Please help us and save us from our misery.";
+ next;
+ switch(select("It is no use.:I'll help.")) {
+ case 1:
+ mes "[Old Legend Teller]";
+ mes "Yes, you are also right.";
+ mes "You are up against not a human,";
+ mes "but a monster.";
+ mes "Still, I trust in that old lady's";
+ mes "good heart.";
+ close;
+ case 2:
+ mes "[Old Legend Teller]";
+ mes "Will you do it?";
+ mes "According to the legend,";
+ mes "the old lady's son was limping";
+ mes "and was a traveling merchant that sold wooden dolls.";
+ next;
+ mes "[Old Legend Teller]";
+ mes "There is a ^FF0000Slate Piece^000000 he left.";
+ mes "But the piece is small and damaged,";
+ mes "its hard to identify it.";
+ next;
+ mes "[Old Legend Teller]";
+ mes "First, bring it to me.";
+ mes "Down along this path";
+ mes "you will meet my granddaughter near the port.";
+ mes "Get the Slate Piece from there.";
+ set malaya_bakona1,1;
+ setquest 1174;
+ close;
+ }
+ case 2:
+ mes "[Old Legend Teller]";
+ mes "The grudge against the people of";
+ mes "Bakonawa- I mean, the dead old lady.";
+ mes "The moon and this village...";
+ mes "She will try to destroy it.";
+ next;
+ select("Take vengeance? After all these years?");
+ mes "[Old Legend Teller]";
+ mes "For some time, she has";
+ mes "blamed the moon and";
+ mes "resented the villagers.";
+ mes "The feeling grew larger as the time passed.";
+ next;
+ mes "[Old Legend Teller]";
+ mes "Why do you think she became such a monster?";
+ mes "What do you think went through her head";
+ mes "for years and years?";
+ mes "Anger and vengeance.";
+ next;
+ mes "[Old Legend Teller]";
+ mes "Unforgettable grudge";
+ mes "that she was abandoned.";
+ mes "against the moon and the village.";
+ mes "This is why this grudge must be resolved.";
+ close;
+ }
+ } else if (malaya_bakona1 == 1) {
+ mes "[Old Legend Teller]";
+ mes "Please bring the ^FF0000Slate Piece^000000.";
+ mes "Down along this path";
+ mes "you will meet my granddaughter near the port.";
+ mes "Get the Slate Piece from there.";
+ close;
+ } else if (malaya_bakona1 == 2) {
+ mes "[Old Legend Teller]";
+ mes "Good, you have the Slate Piece.";
+ mes "Hold on to it and don't lose it.";
+ mes "It will be of helpful in tracking down the legend.";
+ next;
+ mes "[Old Legend Teller]";
+ mes "I heard there is a man that lives by himself";
+ mes "at the end of northwestern part of Forest Field.";
+ mes "I heard someone saw a wooden doll there.";
+ mes "It is such a remote place that people like us";
+ mes "simply cannot travel there.";
+ mes "Could you visit the place for us?";
+ next;
+ switch(select("Go there yourself!:Your explanation is too vague.:On my way!")) {
+ case 1:
+ mes "[Old Legend Teller]";
+ mes "You twisted youth!";
+ close;
+ case 2:
+ mes "[Old Legend Teller]";
+ mes "You have a point, but";
+ mes "this is the best I can do for now.";
+ mes "The place is at the end of northwestern part of the forest.";
+ mes "After you pass the bridge and travel west,";
+ mes "you will see a person.";
+ break;
+ case 3:
+ mes "[Old Legend Teller]";
+ mes "You have a good heart young man!";
+ mes "The place is at the end of northwestern part of the forest.";
+ mes "After you pass the bridge and travel west,";
+ mes "You will see a ^0000FFMalaya Immigrant^000000.";
+ break;
+ }
+ mes "Good luck to you... for our sake...";
+ erasequest 1175;
+ setquest 1176;
+ set malaya_bakona1,3;
+ close;
+ } else if (malaya_bakona1 == 3) {
+ mes "[Old Legend Teller]";
+ mes "The place is at the end of northwestern part of the forest.";
+ mes "After you pass the bridge and travel west,";
+ mes "you will see a person.";
+ mes "Good luck to you... for our sake...";
+ close;
+ } else if (malaya_bakona1 < 6) {
+ mes "[Old Legend Teller]";
+ mes "The track of the old lady's son";
+ mes "is connected all the way to";
+ mes "Baryo Mahiwaga?";
+ mes "There is a chance he wasn't a merchant...";
+ mes "I'm really curious about who he was...";
+ next;
+ mes "[Old Legend Teller]";
+ mes "Why did you come back here";
+ mes "instead of going straight to";
+ mes "Baryo Mahiwaga?";
+ close;
+ } else if (malaya_bakona1 == 6) {
+ mes "[Old Legend Teller]";
+ mes "Is that really true?";
+ mes "Bakonawa turning into an old lady";
+ mes "and fabricating the legend...";
+ mes "It seems all the villagers up until now";
+ mes "have been manipulated by that terrible monster.";
+ next;
+ mes "[Old Legend Teller]";
+ mes "There is no reason to hesitate then.";
+ mes "You must go into Bakonawa's lair";
+ mes "before it attacks first.";
+ mes "I believe we can trust you to do this, yes?";
+ next;
+ switch(select("Well...:Of course!")) {
+ case 1:
+ mes "[Old Legend Teller]";
+ mes "The atmosphere was really good";
+ mes "but suddenly it's all ruined.";
+ mes "I didn't expect you to be so shy...";
+ close;
+ case 2:
+ mes "[Old Legend Teller]";
+ mes "I will speak to";
+ mes "the village chief for you";
+ mes "so that you can enter the Bakonawa Lake.";
+ mes "Please get rid of this monster for us.";
+ erasequest 1179;
+ set malaya_bakona1,7;
+// if (IsPremiumPcCafe == 10)
+ getitem 6499,5; //Ancient_Grudge
+// else
+// getitem 6499,3; //Ancient_Grudge
+ getexp 500000,200000;
+ close;
+ }
+ close;
+ } else if (malaya_bakona1 == 7) {
+ if (malaya_bakona2 < 15) {
+ mes "[Old Legend Teller]";
+ mes "If you don't mind,";
+ mes "could you lend a hand to the Village Chief?";
+ mes "Nobody cares for each other anymore";
+ mes "because of Bakonawa...";
+ next;
+ }
+ mes "[Old Legend Teller]";
+ mes "The legend that";
+ mes "we believed for a hundred years,";
+ mes "all lies....";
+ mes "Please get rid of this monster for us.";
+ close;
+ }
+}
+
+ma_fild02,40,240,4 script Malaya Immigrant#bako1 4_M_BARYO_MAN,{
+ if (malaya_bakona1 < 3) {
+ mes "[Malaya Immigrant]";
+ mes "You must have a brave heart";
+ mes "to come to such a remote place.";
+ mes "How is Port Malaya these days?";
+ mes "I heard the monster that lives at the lake, Baknoawa";
+ mes "is threatening the villagers.";
+ mes "I am in the dark about what is going on because I'm here all the time.";
+ close;
+ } else if (malaya_bakona1 == 3) {
+ mes "[Malaya Immigrant]";
+ mes "You must have a brave heart";
+ mes "to come to such a remote place.";
+ mes "How is Port Malaya these days?";
+ mes "I heard the monster that lives at the lake, Baknoawa";
+ mes "is threatening the villagers.";
+ mes "I am in the dark about what is going on because I'm here all the time.";
+ next;
+ mes "[Malaya Immigrant]";
+ mes "Are you the traveling merchant who used to sell Wooden Doll, right?";
+ mes "I don't know about any traveling merchant, but by Wooden Doll";
+ mes "(going through things) do you mean this?";
+ mes "I don't know about the specifics, but";
+ mes "I think it's related to what I heard long time ago.";
+ next;
+ switch(select("What are you doing here?:Do you know about this Slate Piece?:Please tell me the story.:Who is the traveling merchant?")) {
+ case 1:
+ mes "[Malaya Immigrant]";
+ mes "I liked the environment here";
+ mes "so I decided to stay and live.";
+ mes "There is no obligation here.";
+ mes "To me, that's as good as heaven.";
+ close;
+ case 2:
+ mes "[Malaya Immigrant]";
+ mes "It is a very old Slate Piece.";
+ mes "I'm sorry but I never seen this before.";
+ mes "There is some kind of writing here";
+ mes "but I can't make it out.";
+ close;
+ case 3:
+ mes "[Malaya Immigrant]";
+ mes "It's a simple story.";
+ mes "^0000FFA wounded man who I had never seen before^000000";
+ mes "^0000FFcame to my house and asked for help.^000000";
+ mes "^0000FFOnce healed, he made a Wooden Doll^000000";
+ next;
+ mes "[Malaya Immigrant]";
+ mes "^0000FFthat is suppose to chase away evil spirits ^000000";
+ mes "^0000FFas a token of gratitude,^000000";
+ mes "^0000FFand left for Baryo Mahiwaga.^000000";
+ next;
+ select("He left for Baryo Mahiwaga?");
+ mes "[Malaya Immigrant]";
+ mes "According to what I've heard";
+ mes "that's correct. But the story has been";
+ mes "passed on from mouth to mouth for a";
+ mes "long time. I can't be sure.";
+ next;
+ mes "From Baryo Mahiwaga village, using keyword ^0000FFMalaya^000000,";
+ mes "or ^0000FFBakonawa^000000,";
+ mes "maybe I could find out the identity and whereabouts";
+ mes "of the traveling merchant.";
+ erasequest 1176;
+ setquest 1177;
+ set malaya_bakona1,4;
+ close;
+ case 4:
+ mes "[Malaya Immigrant]";
+ mes "Well, there is a lack of information";
+ mes "so I can't make say for sure but";
+ mes "I'm skeptical if he was in fact even a merchant.";
+ mes "Coming to a town with a";
+ mes "critical wound seems too suspicious...";
+ next;
+ mes "[Malaya Immigrant]";
+ mes "And craving a Wooden Doll";
+ mes "could be seen to have some kind of ritualistic meaning.";
+ mes "Protecting one from some evil force...";
+ mes "that kind of thing.";
+ next;
+ mes "Identity of the traveling merchant...";
+ mes "Looks like there is one more";
+ mes "mystery to be solved.";
+ mes "I suppose it will all come to light";
+ mes "soon enough.";
+ close;
+ }
+ } else {
+ mes "[Malaya Immigrant]";
+ mes "I will tell you again slowly";
+ mes "the story that has been passed on.";
+ mes "Listen carefully and repeat...";
+ mes "no, I mean, you don't have repeat it.";
+ next;
+ mes "[Orally Transmitted Story]";
+ mes "^0000FFA wounded man who I had never seen before^000000";
+ mes "^0000FFcame to my house and asked for help.^000000";
+ mes "^0000FFOnce healed, as a token of gratitude, he made a Wooden Doll^000000";
+ mes "^0000FFthat is suppose to chase away evil sprits.^000000";
+ mes "^0000FFThen he left for Baryo Mahiwaga.^000000";
+ next;
+ mes "From Baryo Mahiwaga village, using keyword ^0000FFMalaya^000000,";
+ mes "or ^0000FFBakonawa^000000,";
+ mes "maybe I could find out the identity and whereabouts";
+ mes "of the traveling merchant.";
+ close;
+ }
+}
+
+ma_fild01,165,237,4 script Malaya Immigrant#bako2 4_M_MALAYA,{
+ if (malaya_bakona1 < 4) {
+ mes "[Malaya Immigrant]";
+ mes "Have you been to";
+ mes "Port Malaya?";
+ mes "I am curious to know";
+ mes "what is going on there";
+ mes "but I can't travel because there are monsters everywhere.";
+ close;
+ } else if (malaya_bakona1 == 4) {
+ mes "[Malaya Immigrant]";
+ mes "Wooden Doll?";
+ mes "There is a tale related to that,";
+ mes "but you didn't come all the way";
+ mes "just to hear some folktale right?";
+ next;
+ switch(select("I just came here to take a break.:Tell me the tale.")) {
+ case 1:
+ mes "[Malaya Immigrant]";
+ mes "You must have a lot of free time on your hands!";
+ mes "I'm no travel agent";
+ mes "so go bother someone else!";
+ close;
+ case 2:
+ mes "[Malaya Immigrant]";
+ mes "It's baloney";
+ mes "so I don't really remember the details.";
+ next;
+ mes "[Summary of the folktale]";
+ mes "Long time ago, 5 swordsmen fought";
+ mes "against the monster Bakonawa.";
+ mes "Four died and one left a critical wound";
+ mes "to the monster but in return";
+ mes "sustained a serious wound in his leg himself.";
+ next;
+ mes "[Summary of the folktale]";
+ mes "After escaping the scene, Bakonawa transformed into a human";
+ mes "and secretly pursued the swordsman.";
+ mes "The swordsman made a Wooden Doll that";
+ mes "can keep the monster from approaching.";
+ next;
+ mes "[Malaya Immigrant]";
+ mes "This is the end of story.";
+ mes "Without any conclusion...";
+ next;
+ mes "[Malaya Immigrant]";
+ mes "I heard there is a record that the swordsman left";
+ mes "but I don't understand why";
+ mes "he would leave it here in such a distant place";
+ mes "here instead of Malaya.";
+ next;
+ select("I wish to see the record.");
+ mes "[Malaya Immigrant]";
+ mes "The record is engraved on the stone ahead.";
+ mes "However, the stone is so badly";
+ mes "damaged and some pieces fell out that";
+ mes "it will be hard to make the words out.";
+ next;
+ mes "Investigate the stone ahead.";
+ erasequest 1177;
+ setquest 1178;
+ set malaya_bakona1,5;
+ close;
+ }
+ } else if (malaya_bakona1 == 5) {
+ mes "[Malaya Immigrant]";
+ mes "The stone ahead holds a record that";
+ mes "a swordsman from a long time ago left.";
+ next;
+ switch(select("Where did this swordsman go after?:Tell me the tale again.")) {
+ case 1:
+ mes "[Malaya Immigrant]";
+ mes "Well, there is no story after that so";
+ mes "I guess nobody would know what happened.";
+ close;
+ case 2:
+ mes "[Summary of the folktale]";
+ mes "Long time ago, 5 swordsmen fought";
+ mes "against the monster Bakonawa.";
+ mes "Four died and one left a critical wound";
+ mes "on the monster but in return";
+ mes "sustained a serious wound in his leg himself.";
+ next;
+ mes "[Summary of the folktale]";
+ mes "After escaping the scene, Bakonawa transformed into a human";
+ mes "and secretly pursued the swordsman.";
+ mes "The swordsman made a Wooden Doll that";
+ mes "can keep the monster from approaching.";
+ close;
+ }
+ } else {
+ mes "[Malaya Immigrant]";
+ mes "I suppose you wish to hear the story again right?";
+ mes "No problem! I can tell this story forever!";
+ next;
+ mes "[Summary of the folktale]";
+ mes "Long time ago, 5 swordsmen fought";
+ mes "against the monster Bakonawa.";
+ mes "Four died and one left a critical wound";
+ mes "on the monster but in return";
+ mes "sustained a serious wound in his leg himself.";
+ next;
+ mes "[Summary of the folktale]";
+ mes "After escaping the scene, Bakonawa transformed into a human";
+ mes "and secretly pursued the swordsman.";
+ mes "The swordsman made a Wooden Doll that";
+ mes "can keep the monster from approaching.";
+ close;
+ }
+}
+
+ma_fild01,171,235,0 script #bako1 HIDDEN_WARP_NPC,2,2,{
+ end;
+OnTouch:
+ if (malaya_bakona1 == 5) {
+ mes "The damage is so severe";
+ mes "that the record is unidentifiable.";
+ mes "When inserting the Slate Piece";
+ mes "to a hole on the wall, it fits perfectly like a piece of puzzle.";
+ mes "The letters are not clear but you can still read it.";
+ next;
+ callsub L_Record;
+ set malaya_bakona1,6;
+ erasequest 1178;
+ setquest 1179;
+ close;
+ } else if (malaya_bakona1 == 6) {
+ mes "Here is the record left by a swordsman";
+ mes "from a hundred years ago.";
+ next;
+ switch(select("I don't need to read it.:Read the record again.")) {
+ case 1:
+ mes "I remember the story clearly.";
+ mes "Let's tell the ^0000FFOld Legend Teller^000000 in Malaya";
+ mes "about what I discovered.";
+ close;
+ case 2:
+ callsub L_Record;
+ close;
+ }
+ }
+ end;
+
+L_Record:
+ mes "[Record left by a swordsman from a hundred years ago]";
+ mes "After fighting with Bakonawa, I sustained a critical wound";
+ mes "and came to this place.";
+ mes "Only thing I can do is";
+ mes "Place the Wooden Doll in one place";
+ mes "the monster would come.";
+ next;
+ mes "[Record left by a swordsman from a hundred years ago]";
+ mes "^0000FFSometimes transforming into a child, or even a old lady,^000000";
+ mes "I know that ^0000FFBakonawa^000000has been";
+ mes "chasing after me in secret to kill me.";
+ mes "Because of that critical injury the monster * sustained,";
+ next;
+ mes "[Record left by a swordsman from a hundred years ago]";
+ mes "** it will need nearly a hundred years";
+ mes "for Bakonawa to absorb the power of the moon";
+ mes "to fully recover its power.";
+ mes "Beware of the day the moon disappears.";
+ next;
+ mes "[Record left by a swordsman from a hundred years ago]";
+ mes "The day will come when Bakonawa";
+ mes "will run amuck.";
+ mes "But it will take nearly a hundred years to fully recover its power.";
+ mes "There will always be someone better than me";
+ mes "to defeat the vile creature.";
+ next;
+ mes "[Record left by a swordsman from a hundred years ago]";
+ mes "I will place my trust in the one that will replace me ages from now...";
+ next;
+ mes "How could this be...";
+ mes "Lie told by Bakonawa when it turned into an old lady";
+ mes "in order to take revenge on the swordsman";
+ mes "turned into a legend after all these years.";
+ next;
+ mes "I found out that Bakonawa";
+ mes "is nothing but a blood thirsty monster.";
+ mes "I must tell what I know to the ^0000FFOld Legend Teller^000000";
+ mes "in Malaya.";
+ return;
+}
+
+malaya,304,100,4 script Old Man's Granddaughter 4_F_BARYO_GIRL,{
+ if (malaya_hi < 20) {
+ mes "- He seems cautious of you. -";
+ close;
+ }
+ if (malaya_bakona1 == 0) {
+ mes "[Old Man's Granddaughter]";
+ mes "Grandpa believes";
+ mes "Bakonawa can";
+ mes "turn good.";
+ mes "Do you think it's possible?";
+ close;
+ } else if (malaya_bakona1 == 1) {
+ mes "[Old Man's Granddaughter]";
+ mes "^FF0000Slate Piece^000000?";
+ mes "Why would you need something";
+ mes "that is barely recognizable?";
+ mes "I'll give it to you if you want.";
+ next;
+ mes "Let's go to the";
+ mes "^FF0000Old Legend Teller^000000";
+ mes "now that I have the Slate Piece.";
+ erasequest 1174;
+ setquest 1175;
+ set malaya_bakona1,2;
+ close;
+ } else if (malaya_bakona1 == 2) {
+ mes "[Old Man's Granddaughter]";
+ mes "Please take this Slate Piece";
+ mes "and deliver it to my grandpa.";
+ next;
+ mes "Let's go to the";
+ mes "^FF0000Old Legend Teller^000000";
+ mes "now that I have the Slate Piece.";
+ close;
+ } else {
+ mes "[Old Man's Granddaughter]";
+ mes "Because of Bakonawa,";
+ mes "the village is always unpeaceful.";
+ close;
+ }
+}
+
+malaya,286,269,4 script Angry Man#bako2 4_M_BARYO_MAN,{
+ if (malaya_hi < 20) {
+ mes "- He seems cautious of you. -";
+ close;
+ }
+ mes "[Angry Man]";
+ mes "Calm Bakonawa?";
+ mes "Do you know how many people have been";
+ mes "sacrificed by Bakonawa?";
+ mes "I will fight on my own if I have to!";
+ close;
+}
+
+malaya,276,269,5 script Calm Woman#bako2 4_F_BARYO_WOMAN,{
+ if (malaya_hi < 20) {
+ mes "- He seems cautious of you. -";
+ close;
+ }
+ mes "[Calm Little Girl]";
+ mes "It is too dangerous to fight against";
+ mes "Bakonawa. There is a chance";
+ mes "it will get more angry and put children and";
+ mes "elders in danger.";
+ close;
+}
+
+malaya,276,262,4 script Angry Boy#bako2 4_M_BARYO_BOY,{
+ if (malaya_hi < 20) {
+ mes "- He seems cautious of you. -";
+ close;
+ }
+ mes "[Angry Boy]";
+ mes "I lost my father and my friend";
+ mes "to that Bakonawa.";
+ mes "I will surely revenge them!";
+ close;
+}
+
+malaya,283,265,4 script Village Chief#bako2 4_BARYO_CHIEF,{
+ if (checkweight(1301,3) == 0) {
+ mes "You cannot start the conversation. You are carrying too many items. -";
+ close;
+ }
+ if (BaseLevel < 120) {
+ mes "[Village Chief]";
+ mes "I'm desperate for a helping hand";
+ mes "but you look";
+ mes "too weak and fragile.";
+ next;
+ mes "[Village Chief]";
+ mes "Please come back when";
+ mes "you grow strong enough";
+ mes "to match Incubus.";
+ close;
+ }
+ if (malaya_hi < 20) {
+ mes "- He seems cautious of you. -";
+ close;
+ }
+ if (malaya_bakona2 == 0) {
+ if (malaya_bakona1 <= 5) {
+ mes "[Village Chief]";
+ mes "I'm don't know what's the right decision.";
+ mes "To fight against Bakonawa,";
+ mes "or calm it by offering it a sacrificial gift.";
+ } else {
+ mes "[Village Chief]";
+ mes "The legend was all a lie?";
+ mes "It seems all the villagers up until now";
+ mes "were manipulated by that vile monster.";
+ next;
+ mes "[Village Chief]";
+ }
+ mes "Recently, there have been more people that have";
+ mes "been harmed by Bakonawa.";
+ next;
+ mes "[Village Chief]";
+ mes "There are some missing villagers";
+ mes "but I can't find out if";
+ mes "they are simply missing or if they have been";
+ mes "killed by Bakonawa.";
+ next;
+ mes "[Village Chief]";
+ mes "I heard that the belongings of the missing people";
+ mes "are being found at Baryo Mahiwaga Field.";
+ mes "Please go there to find ^0000FFLost Belongings^000000";
+ mes "and give them to the families of";
+ mes "the missing people";
+ mes "in whatever amount they want.";
+ next;
+ mes "[Village Chief]";
+ mes "^0000FFLost Belongings^000000";
+ mes "are said to be carried by";
+ mes "^FF0000Tiucknuc^000000 that roams Baryo Mahiwaga.";
+ next;
+ switch(select("Do it yourself.:I'm on my way.")) {
+ case 1:
+ mes "[Village Chief]";
+ mes "You give me a lot to think about.";
+ mes "Leave the village at once.";
+ close;
+ case 2:
+ mes "[Village Chief]";
+ mes "Let's start then. First,";
+ mes "retrieve two ^FF0000Lost Belongings^000000 from Tiucknuc";
+ mes "and take them to ^0000FFMissing Person's Father^000000";
+ mes "for me.";
+ set malaya_bakona2,1;
+ setquest 1180;
+ close;
+ }
+ } else if (malaya_bakona2 == 1) {
+ mes "[Village Chief]";
+ mes "From Tiucknuc that roams Baryo Mahiwaga Field,";
+ mes "retrieve two ^FF0000Lost Belongings^000000";
+ mes "and deliver them to ^0000FFMissing Person's Father^000000";
+ mes "for me.";
+ close;
+ } else if (malaya_bakona2 == 2) {
+ mes "[Village Chief]";
+ mes "Retrieve Seven ^FF0000Lost Belongings^000000 from Tiucknuc";
+ mes "and deliver them to ^0000FFMissing Person's Friend^000000";
+ mes "for me.";
+ close;
+ } else if (malaya_bakona2 == 3) {
+ mes "[Village Chief]";
+ mes "Retrieve three ^FF0000Lost Belongings^000000 from Tiucknuc";
+ mes "and deliver them to ^0000FFMissing Person's Son^000000";
+ mes "for me.";
+ close;
+ } else if (malaya_bakona2 == 4) {
+ mes "[Village Chief]";
+ mes "Retrieve five ^FF0000Lost Belongings^000000 from Tiucknuc";
+ mes "and deliver them to ^0000FFMissing Person's Mother^000000";
+ mes "for me.";
+ close;
+ } else if (malaya_bakona2 == 5) {
+ mes "[Village Chief]";
+ mes "So it's clear that all the missing people";
+ mes "have been killed by Bakonawa.";
+ next;
+ mes "[Villagers]";
+ mes "Kill Bakonawa!";
+ mes "Let's get rid of the monster ourselves!";
+ next;
+ mes "[Village Chief]";
+ mes "It seems we would no longer be able to";
+ mes "hold rituals to calm Bakonawa.";
+ next;
+ mes "[Village Chief]";
+ mes "Young Fortune Teller is looking for your help";
+ mes "saying that the energy of the moon seems strange.";
+ erasequest 1184;
+ setquest 1185;
+ set malaya_bakona2,6;
+// if (IsPremiumPcCafe == 10)
+ getitem 12700,7; //Insideout_Shirt
+// else
+// getitem 12700,5; //Insideout_Shirt
+ close;
+ } else if (malaya_bakona2 == 6) {
+ mes "[Village Chief]";
+ mes "Young Fortune Teller is looking for your help";
+ mes "saying that the energy of the moon seems strange.";
+ close;
+ } else if (malaya_bakona2 == 7) {
+ mes "[Village Chief]";
+ mes "I know that terrible things happened";
+ mes "long time ago when the moon disappeared.";
+ mes "I hope the moon recovers its strength";
+ mes "with your devoted effort.";
+ close;
+ } else if (malaya_bakona2 == 8) {
+ mes "[Village Chief]";
+ mes "I will tell the";
+ mes "Young Fortune Teller to help you.";
+ mes "But before that, there is";
+ mes "something you must do immediately.";
+ next;
+ mes "[Village Chief]";
+ mes "We never know when Bakonawa will attack";
+ mes "the village so we must set traps near the village";
+ mes "entrance and near the cave.";
+ next;
+ mes "[Village Chief]";
+ mes "I would be grateful if you help us.";
+ mes "I have dispatched workers";
+ mes "near where traps will be set up,";
+ mes "so you just have to visit about 5 places.";
+ next;
+ switch(select("Sounds like too much work.:Sure thing.")) {
+ case 1:
+ mes "[Village Chief]";
+ mes "This operation means life and death to us";
+ mes "yet you refuse it easily as if";
+ mes "it was some kind of a chore...";
+ next;
+ mes "[Village Chief]";
+ mes "What a hero!";
+ close;
+ case 2:
+ mes "[Village Chief]";
+ mes "The first trap will be set up at";
+ mes "Baryo Mahiwaga Field";
+ mes "near the village entrance. ^0000FFGruffy Worker^000000";
+ mes "will be waiting for you. He will be very helpful.";
+ erasequest 1187;
+ setquest 1188;
+ set malaya_bakona2,9;
+ close;
+ }
+ } else if (malaya_bakona2 == 9) {
+ mes "[Village Chief]";
+ mes "The first trap will be set up at";
+ mes "Baryo Mahiwaga Field";
+ mes "near the village entrance. ^0000FFGruffy Worker^000000";
+ mes "will be waiting for you. He will be very helpful.";
+ close;
+ } else if (malaya_bakona2 == 10) {
+ mes "[Village Chief]";
+ mes "The second trap will be set up";
+ mes "near a place where it connects from";
+ mes "Baryo Mahiwaga Field to Bakonawa Lake.";
+ mes "^0000FFGrumpy Worker^000000";
+ mes "will be waiting for you. He will be very helpful.";
+ close;
+ } else if (malaya_bakona2 == 11) {
+ mes "[Village Chief]";
+ mes "The third trap will be set up";
+ mes "near Bakonawa Lake Entrance.";
+ mes "^0000FFCowardly Worker^000000";
+ mes "will be waiting for you. He will be very helpful.";
+ close;
+ } else if (malaya_bakona2 == 12) {
+ mes "[Village Chief]";
+ mes "The fourth trap will be set up";
+ mes "near the entrance of Bakonawa Lake as well.";
+ mes "^0000FFGloomy Worker^000000 will be waiting for you.";
+ mes "He will be very helpful.";
+ close;
+ } else if (malaya_bakona2 == 13) {
+ mes "[Village Chief]";
+ mes "The fifth trap will be set up";
+ mes "near the entrance of Bakonawa Lake too.";
+ mes "^0000FFSentimental Worker^000000";
+ mes "will be waiting for you. He will be very helpful.";
+ close;
+ } else if (malaya_bakona2 == 14) {
+ mes "[Village Chief]";
+ mes "It looks like the traps are all set up.";
+ mes "We just finished our village meeting on";
+ mes "what to do about Bakonawa.";
+ next;
+ mes "[Village Chief]";
+ mes "We have concluded that";
+ mes "we will fight against Bakonawa.";
+ mes "Please help us by";
+ mes "attacking his lair.";
+ erasequest 1193;
+ set malaya_bakona2,15;
+ getexp 1000000,600000;
+// if (IsPremiumPcCafe == 10)
+ getitem 6497,7; //Lesser_Agimat
+// else
+// getitem 6497,5; //Lesser_Agimat
+ close;
+ } else if (malaya_bakona2 == 15) {
+ mes "[Village Chief]";
+ if (malaya_bakona1 < 7) {
+ mes "Would you visit ^0000FFOld Legend Teller^000000";
+ mes "when you have a chance?";
+ mes "I think you would be able to help him.";
+ next;
+ mes "[Village Chief]";
+ mes "Thank you.";
+ }
+ mes "Please think of the countless victims";
+ mes "and defeat Bakonawa";
+ mes "for their sake.";
+ close;
+ }
+}
+
+ma_fild01,1,1,0 script malaya_ma_fild01_mon -1,{
+OnInit:
+ enablenpc "malaya_ma_fild01_mon";
+ donpcevent "malaya_ma_fild01_mon::OnEnable";
+ end;
+
+OnEnable:
+ monster "ma_fild01",0,0,"Tiyanak",2314,5,"malaya_ma_fild01_mon::OnMyMobDead";
+ initnpctimer;
+ end;
+
+OnDisable:
+ stopnpctimer;
+ killmonster "ma_fild01","malaya_ma_fild01_mon::OnMyMobDead";
+ disablenpc "malaya_ma_fild01_mon";
+ end;
+
+OnTimer600000:
+ killmonster "ma_fild01","malaya_ma_fild01_mon::OnMyMobDead";
+ stopnpctimer;
+ donpcevent "malaya_ma_fild01_mon::OnEnable";
+ end;
+
+OnMyMobDead:
+ if (mobcount("ma_fild01","malaya_ma_fild01_mon::OnMyMobDead") < 5 && (malaya_bakona2 == 1 || malaya_bakona2 == 2 || malaya_bakona2 == 3 || malaya_bakona2 == 4))
+ getitem 6520,1; //Lost_Belongings
+ end;
+}
+
+malaya,269,267,5 script Missing Person's Father 4_M_MALAYA,{
+ if (malaya_hi < 20) {
+ mes "- He seems cautious of you. -";
+ close;
+ }
+ if (malaya_bakona2 == 0) {
+ mes "[Missing Person's Father]";
+ mes "Please find our";
+ mes "child.";
+ mes "Bakonawa would have not harmed our child.";
+ mes "He must be around here somewhere.";
+ close;
+ } else if (malaya_bakona2 == 1) {
+ if (countitem(6520) < 2) {
+ mes "[Missing Person's Father]";
+ mes "You are looking for two of his ^FF0000Lost Belongings^000000?";
+ mes "Are you confident that";
+ mes "he already died?";
+ close;
+ }
+ mes "[Missing Person's Father]";
+ mes "This... is our child's ^FF0000Lost Belongings^000000";
+ mes "for sure.";
+ mes "The monster got to him after all....";
+ next;
+ mes "The man is unable to continue as he tries to hold back his tears.";
+ mes "Let's continue to find the lost belongings of the missing people.";
+ mes "Let's retrieve them from Tiucknuc that roams Baryo Mahiwaga Field,";
+ mes "seven ^FF0000Lost Belongings^000000";
+ mes "and deliver them to ^0000FFMissing Person's Friend^000000.";
+ delitem 6520,2; //Lost_Belongings
+ erasequest 1180;
+ setquest 1181;
+ set malaya_bakona2,2;
+ close;
+ } else if (malaya_bakona2 == 2) {
+ mes "[Missing Person's Father]";
+ mes "My baby... my poor baby...";
+ next;
+ mes "The man is unable to continue as he tries to hold back his tears.";
+ mes "Let's continue to find the lost belongings of the missing people.";
+ mes "Retrieve seven ^FF0000Lost Belongings^000000 from Tiucknuc";
+ mes "and deliver them to ^0000FFMissing Person's Friend^000000.";
+ close;
+ } else {
+ mes "[Missing Person's Father]";
+ mes "My baby... my poor baby...";
+ close;
+ }
+}
+
+malaya,265,274,5 script Missing Person's Friend 4_M_BARYO_BOY,{
+ if (malaya_hi < 20) {
+ mes "- He seems cautious of you. -";
+ close;
+ }
+ if (malaya_bakona2 < 2) {
+ mes "[Missing Person's Friend]";
+ mes "Please find";
+ mes "my friend.";
+ mes "We were playing ball together";
+ mes "and suddenly my friend disappeared.";
+ next;
+ mes "[Missing Person's Friend]";
+ mes "I'm sure he is alive and well";
+ mes "somewhere.";
+ close;
+ } else if (malaya_bakona2 == 2) {
+ if (countitem(6520) < 7) {
+ mes "[Missing Person's Friend]";
+ mes "You are looking for seven ^FF0000Lost Belongings^000000";
+ mes "of my friend?";
+ mes "My friend is not dead!";
+ close;
+ }
+ mes "[Missing Person's Friend]";
+ mes "These are marbles and toys I gave him...";
+ mes "These are clearly ^FF0000Lost Belongings^000000";
+ mes "of my friend... Where is my friend?";
+ mes "Bring him here, bring him here now!";
+ callsub L_Quest;
+ delitem 6520,7; //Lost_Belongings
+ erasequest 1181;
+ setquest 1182;
+ set malaya_bakona2,3;
+ close;
+ } else {
+ mes "[Missing Person's Friend]";
+ mes "Bring back my friend!";
+ mes "Bring back my friend now!";
+ mes "My friend is alive,";
+ mes "It's all a lie, sob~";
+ if (malaya_bakona2 == 3)
+ callsub L_Quest;
+ close;
+ }
+
+L_Quest:
+ next;
+ mes "Leaving behind the crying boy,";
+ mes "let's continue to find the lost belongings of the missing people.";
+ mes "Retrieve three ^FF0000Lost Belongings^000000 from Tiucknuc";
+ mes "and deliver them to ^0000FFMissing Person's Son^000000.";
+ return;
+}
+
+malaya,270,278,4 script Missing Person's Son 4_M_BARYO_MAN,{
+ if (malaya_hi < 20) {
+ mes "- He seems cautious of you. -";
+ close;
+ }
+ if (malaya_bakona2 < 3) {
+ mes "[Missing Person's Son]";
+ mes "Bakonawa has hurt my father?";
+ mes "I can't believe this.";
+ mes "Please find my father!";
+ close;
+ } else if (malaya_bakona2 == 3) {
+ if (countitem(6520) < 3) {
+ mes "[Missing Person's Son]";
+ mes "You are looking for three ^FF0000Lost Belongings^000000";
+ mes "of my father? Why lost belongings and not my father?";
+ mes "No, that can't be it. He is alive somewhere!";
+ close;
+ }
+ mes "[Missing Person's Son]";
+ mes "These are clearly his clothes and shoes...";
+ mes "These are ^FF0000Lost Belongings^000000 of my father.";
+ mes "Oh dear lord... father!";
+ callsub L_Quest;
+ delitem 6520,3; //Lost_Belongings
+ erasequest 1182;
+ setquest 1183;
+ set malaya_bakona2,4;
+ close;
+ } else {
+ mes "[Missing Person's Son]";
+ mes "Why did such a thing happen....";
+ if (malaya_bakona2 == 4)
+ callsub L_Quest;
+ close;
+ }
+
+L_Quest:
+ next;
+ mes "Man crying in agony.";
+ mes "Let's continue to find the lost belongings of the missing people.";
+ mes "Retrieve five ^FF0000Lost Belongings^000000 from Tiucknuc";
+ mes "and deliver them to ^0000FFMissing Person's Mother^000000.";
+ return;
+}
+
+malaya,265,284,4 script Missing Person's Mother 4_F_BARYO_WOMAN,{
+ if (malaya_hi < 20) {
+ mes "- He seems cautious of you. -";
+ close;
+ }
+ if (malaya_bakona2 < 4) {
+ mes "[Missing Person's Mother]";
+ mes "Please find my child.";
+ mes "I sent her out to do a chore";
+ mes "and she still isn't back.";
+ close;
+ } else if (malaya_bakona2 == 4) {
+ if (countitem(6520) < 5) {
+ mes "[Missing Person's Mother]";
+ mes "You are looking for five ^FF0000Lost Belongings^000000 of my child?";
+ mes "What does this mean?";
+ mes "Are you saying my child is dead?";
+ close;
+ }
+ mes "[Missing Person's Mother]";
+ mes "This is my child's hair comb.";
+ mes "Why do you have five ^FF0000Lost Belongings^000000 of my child?";
+ mes "Why...? She's... dead?";
+ next;
+ mes "[Missing Person's Mother]";
+ mes "No wait... I think I hear her voice.";
+ mes "She's going to be home soon. I should go home now.";
+ mes "I should prepare a dinner for her. She must be starving.";
+ mes "Ha ha...";
+ next;
+ mes "A mother that has gone mad...";
+ mes "Now that I finished finding the missing people,";
+ mes "I should report back to the Village Chief.";
+ delitem 6520,5; //Lost_Belongings
+ erasequest 1183;
+ setquest 1184;
+ set malaya_bakona2,5;
+ close;
+ } else {
+ mes "[Missing Person's Mother]";
+ mes "Ha ha ha... I can hear my child's voice,";
+ mes "just listen closely.";
+ mes "Can't you hear her calling her mother?";
+ mes "Ha ha ha...";
+ next;
+ mes "A mother that has gone mad...";
+ if (malaya_bakona2 == 5) {
+ mes "Now that I finished finding the missing people,";
+ mes "I should report back to the Village Chief.";
+ }
+ close;
+ }
+}
+
+malaya,289,364,4 script Young Fortune Teller 4_F_MALAYA,{
+ if (checkweight(1301,3) == 0) {
+ mes "You cannot start the conversation. You are carrying too many items. -";
+ close;
+ }
+ if (malaya_hi < 20) {
+ mes "- He seems cautious of you. -";
+ close;
+ }
+ if (malaya_bakona2 < 6) {
+ mes "[Young Fortune Teller]";
+ mes "The energy of the moon grew weak.";
+ mes "The reason there are more monsters,";
+ mes "and the reason there are more victims,";
+ mes "is all because of this.";
+ close;
+ } else if (malaya_bakona2 == 6) {
+ mes "[Young Fortune Teller]";
+ mes "The energy of the moon grew weak for a couple of days.";
+ mes "The reason there are more monsters,";
+ mes "and the reason there are more victims, is all because of this.";
+ next;
+ mes "[Young Fortune Teller]";
+ mes "I'm trying to hold a ritual";
+ mes "that will restore the moon's energy by sacrificing monsters' blood,";
+ mes "so I need you to hunt fifteen ^FF0000Tikbalang^000000";
+ mes "at Baryo Mahiwaga Field.";
+ next;
+ switch(select("It's none of my business.:You can count on me.")) {
+ case 1:
+ mes "[Young Fortune Teller]";
+ mes "You are so selfish!";
+ mes "During the ritual,";
+ mes "I will pray for your bad luck too.";
+ close;
+ case 2:
+ mes "[Young Fortune Teller]";
+ mes "Hurry.";
+ mes "If the moon completely disappears,";
+ mes "there will be a great disaster.";
+ erasequest 1185;
+ setquest 1186;
+ set malaya_bakona2,7;
+ close;
+ }
+ } else if (malaya_bakona2 == 7) {
+ if (checkquest(1186,HUNTING) == 2) {
+ mes "[Young Fortune Teller]";
+ mes "It looks like you took care of ^FF0000Tikbalang^000000";
+ mes "well enough.";
+ mes "I think I can start the ritual now.";
+ mes "There are some items that we need, please go to";
+ mes "the Village Chief for help.";
+ erasequest 1186;
+ setquest 1187;
+ set malaya_bakona2,8;
+// if (IsPremiumPcCafe == 10)
+ getitem 12699,7; //Tikbalang_Belt
+// else
+// getitem 12699,5; //Tikbalang_Belt
+ close;
+ } else {
+ mes "[Young Fortune Teller]";
+ mes "I need you to hunt fifteen ^FF0000Tikbalang^000000";
+ mes "at Baryo Mahiwaga Field.";
+ next;
+ mes "[Young Fortune Teller]";
+ mes "Hurry.";
+ mes "If the moon completely disappears,";
+ mes "there will be a great disaster.";
+ close;
+ }
+ } else if (malaya_bakona2 == 8) {
+ mes "[Young Fortune Teller]";
+ mes "I think I can start the ritual now.";
+ mes "There are some items that we need, please go to";
+ mes "the Village Chief for help.";
+ close;
+ } else {
+ mes "[Young Fortune Teller]";
+ mes "On the day when the moon fully disappears,";
+ mes "the dragon will attack the village.";
+ mes "No one will be safe.";
+ close;
+ }
+ end;
+}
+
+ma_fild01,54,253,4 script Gruffy Worker#bako2 4_M_MALAYA,{
+ if (malaya_bakona2 < 9) {
+ mes "[Gruffy Worker]";
+ mes "The Village Chief told me to";
+ mes "wait for you here.";
+ close;
+ } else if (malaya_bakona2 == 9) {
+ mes "[Gruffy Worker]";
+ mes "The trap will be set right in front.";
+ mes "Walk forward a little.";
+ close;
+ } else if (malaya_bakona2 == 10) {
+ mes "[Gruffy Worker]";
+ mes "You can find the";
+ mes "Grumpy Worker near where";
+ mes "Baryo Mahiwaga Field connects to Bakonawa Lake.";
+ mes "Go and set up the trap together.";
+ close;
+ } else {
+ mes "[Gruffy Worker]";
+ mes "Are you trying to advertise that";
+ mes "there is a trap here? Step aside.";
+ close;
+ }
+ end;
+}
+
+ma_fild01,54,244,0 script #bako2 HIDDEN_WARP_NPC,2,2,{
+ end;
+OnTouch:
+ if (malaya_bakona2 == 9) {
+ mes "I should set up the trap";
+ mes "right about here.";
+ next;
+ mes "[Gruffy Worker]";
+ mes "Using the tools like this";
+ mes "bang bang bang!";
+ next;
+ mes "bang bang bang!";
+ next;
+ mes "The trap is now set.";
+ next;
+ mes "[Gruffy Worker]";
+ mes "You can find the";
+ mes "Grumpy Worker near where";
+ mes "Baryo Mahiwaga Field connects to Bakonawa Lake.";
+ mes "Go and set up the trap together.";
+ erasequest 1188;
+ setquest 1189;
+ set malaya_bakona2,10;
+ close;
+ } else if (malaya_bakona2 == 10) {
+ mes "The trap has been set up here.";
+ next;
+ mes "[Gruffy Worker]";
+ mes "This trap is not meant to capture you,";
+ mes "so move.";
+ next;
+ mes "[Gruffy Worker]";
+ mes "You can find the";
+ mes "Grumpy Worker near where";
+ mes "Baryo Mahiwaga Field connects to Bakonawa Lake.";
+ mes "Go there to him.";
+ close;
+ }
+ end;
+}
+
+ma_fild01,236,119,5 script Grumpy Worker#bako2 4_M_BARYO_BOY,{
+ if (malaya_bakona2 < 10) {
+ mes "[Grumpy Worker]";
+ mes "Village Chief told me to";
+ mes "wait for you here.";
+ mes "Sooo boring!";
+ close;
+ } else if (malaya_bakona2 == 10) {
+ mes "[Grumpy Worker]";
+ mes "A hole needs to be dug up in front of here?";
+ mes "I have to dig too?";
+ mes "Says who?";
+ close;
+ } else if (malaya_bakona2 == 11) {
+ mes "[Grumpy Worker]";
+ mes "Go find the Cowardly Worker";
+ mes "near the entrance of Bakonawa Lake.";
+ mes "Come on, move it!";
+ close;
+ } else {
+ mes "[Grumpy Worker]";
+ mes "I set up the trap";
+ mes "and you are advertising that it's here.";
+ mes "Scram!";
+ close;
+ }
+}
+
+ma_fild01,242,116,0 script #bako3 HIDDEN_WARP_NPC,2,2,{
+ end;
+OnTouch:
+ if (malaya_bakona2 == 10) {
+ mes "I should set up the trap";
+ mes "right about here.";
+ next;
+ mes "[Grumpy Worker]";
+ mes "I really don't like it here!";
+ mes "...";
+ mes "With this pickax,";
+ mes "dig dig dig!";
+ next;
+ mes "dig dig dig!";
+ next;
+ mes "The trap is now set.";
+ next;
+ mes "[Grumpy Worker]";
+ mes "Go find the Cowardly Worker";
+ mes "near the entrance of Bakonawa Lake.";
+ mes "Come on, move it!";
+ erasequest 1189;
+ setquest 1190;
+ set malaya_bakona2,11;
+ close;
+ } else if (malaya_bakona2 == 11) {
+ mes "The trap has been set up here.";
+ next;
+ mes "[Grumpy Worker]";
+ mes "Are you trying to test";
+ mes "with your body if the trap works?";
+ mes "Move aside!";
+ next;
+ mes "[Grumpy Worker]";
+ mes "Go find the Cowardly Worker";
+ mes "near the entrance of Bakonawa Lake.";
+ mes "Come on, move it!";
+ close;
+ }
+ end;
+}
+
+ma_scene01,177,89,4 script Cowardly Worker#bako2 4_M_BARYO_MAN,{
+ if (malaya_bakona2 < 11) {
+ mes "[Cowardly Worker]";
+ mes "Village Chief told me to";
+ mes "wait for you here.";
+ mes "Why me? I have a bad feeling about this....";
+ close;
+ } else if (malaya_bakona2 == 11) {
+ mes "[Cowardly Worker]";
+ mes "set up a trap in front of here?";
+ mes "Village Chief said I have to help too?";
+ mes "Can you please do it by yourself?";
+ close;
+ } else if (malaya_bakona2 == 12) {
+ mes "[Cowardly Worker]";
+ mes "Go up and you will";
+ mes "find the Gloomy Worker.";
+ mes "Go! You scare me.";
+ mes "You look like you are going to beat me up.";
+ close;
+ } else {
+ mes "[Cowardly Worker]";
+ mes "Go away!";
+ mes "What if Bakonawa";
+ mes "appears because of you?";
+ mes "I'm scared to death!";
+ close;
+ }
+ end;
+}
+
+ma_scene01,179,85,0 script #bako4 HIDDEN_WARP_NPC,2,2,{
+ end;
+OnTouch:
+ if (malaya_bakona2 == 11) {
+ mes "I should set up the trap";
+ mes "right about here.";
+ next;
+ mes "[Cowardly Worker]";
+ mes "There is nothing weird";
+ mes "buried here right?";
+ mes "...";
+ mes "Using the shovel, dig dig dig!";
+ next;
+ mes "dig dig dig!";
+ next;
+ mes "The trap is now set.";
+ next;
+ mes "[Cowardly Worker]";
+ mes "Go up and you will";
+ mes "find the Gloomy Worker.";
+ erasequest 1190;
+ setquest 1191;
+ set malaya_bakona2,12;
+ close;
+ } else if (malaya_bakona2 == 12) {
+ mes "The trap has been set up here.";
+ next;
+ mes "[Cowardly Worker]";
+ mes "Step aside immediately!";
+ mes "Bakonawa might find out this is a trap";
+ mes "and come for us.";
+ next;
+ mes "[Cowardly Worker]";
+ mes "Go up and you will";
+ mes "find the Gloomy Worker.";
+ emotion e_swt,1;
+ close;
+ }
+ end;
+}
+
+ma_scene01,141,118,4 script Gloomy Worker#bako2 4_M_MALAYA,{
+ if (malaya_bakona2 < 12) {
+ mes "[Gloomy Worker]";
+ mes "Village Chief told me to wait for you here.";
+ mes "He must want me to do something.";
+ mes "Whew...";
+ close;
+ } else if (malaya_bakona2 == 12) {
+ mes "[Gloomy Worker]";
+ mes "set up a trap on the left side?";
+ mes "I don't think it will be much use...";
+ mes "Whew, I should've moved away or something...";
+ close;
+ } else if (malaya_bakona2 == 13) {
+ mes "[Gloomy Worker]";
+ mes "We are all gonna die anyway by Bakonawa.";
+ mes "This is pointless.";
+ mes "Just go up the path and you will find";
+ mes "Sentimental Worker.";
+ close;
+ } else {
+ mes "[Gloomy Worker]";
+ mes "Bakonawa is going to attack us anyway.";
+ mes "What pointless work...";
+ close;
+ }
+ end;
+}
+
+ma_scene01,138,122,0 script #bako5 HIDDEN_WARP_NPC,2,2,{
+ end;
+OnTouch:
+ if (malaya_bakona2 == 12) {
+ mes "I should set up the trap";
+ mes "right about here.";
+ next;
+ mes "[Gloomy Worker]";
+ mes "Just catch this net,";
+ mes "throw throw!";
+ next;
+ mes "throw throw!";
+ next;
+ mes "The trap is now set.";
+ next;
+ mes "[Gloomy Worker]";
+ mes "Just go up the path and you will find";
+ mes "Sentimental Worker.";
+ mes "Though I doubt it will be much help.";
+ erasequest 1191;
+ setquest 1192;
+ set malaya_bakona2,13;
+ close;
+ } else if (malaya_bakona2 == 13) {
+ mes "The trap has been set up here.";
+ next;
+ mes "[Gloomy Worker]";
+ mes "The trap is meaningless.";
+ mes "See? It doesn't even work.";
+ close;
+ }
+ end;
+}
+
+ma_scene01,175,170,5 script Sentimental Worker#bako2 4_M_BARYO_MAN,{
+ if (malaya_bakona2 < 13) {
+ mes "[Sentimental Worker]";
+ mes "Village Chief told me to wait for you here.";
+ mes "Is there a some kind of surprise event?";
+ mes "My heart is beating faster~";
+ close;
+ } else if (malaya_bakona2 == 13) {
+ mes "[Sentimental Worker]";
+ mes "Wow! So we are going to work together";
+ mes "to set up a trap behind this place?";
+ mes "This is sooo cool!";
+ mes "This is the coolest thing in the world!";
+ close;
+ } else if (malaya_bakona2 == 14) {
+ mes "[Sentimental Worker]";
+ mes "Now that the trap is set,";
+ mes "Are we going to report back to Village Chief?";
+ mes "Oh what fun!";
+ mes "It sounds so exiting!";
+ close;
+ } else {
+ mes "[Sentimental Worker]";
+ mes "More I think about it, more exited I get.";
+ mes "I'm secretly guarding the trap!";
+ mes "I want to hear out loud.";
+ mes "I have a trap in front of me! Ha ha ha ha~";
+ emotion e_swt2,1;
+ close;
+ }
+ end;
+}
+
+ma_scene01,171,174,0 script #bako6 HIDDEN_WARP_NPC,2,2,{
+ end;
+OnTouch:
+ if (malaya_bakona2 == 13) {
+ mes "I should set up the trap";
+ mes "right about here.";
+ next;
+ mes "[Sentimental Worker]";
+ mes "Wow! This really is a perfect place";
+ mes "to set up a trap.";
+ mes "I'm going to throw the rope!";
+ mes "Here goes the rope!";
+ next;
+ mes "Here goes the rope!";
+ next;
+ mes "The trap is now set.";
+ mes "Let's go to the Village Chief";
+ mes "now that the trap is set.";
+ erasequest 1192;
+ setquest 1193;
+ set malaya_bakona2,14;
+ close;
+ } else if (malaya_bakona2 == 14) {
+ mes "The trap is set here.";
+ next;
+ mes "[Sentimental Worker]";
+ mes "Try out the trap first!";
+ mes "I'm so curious";
+ mes "what would happen!";
+ mes "It's going to be so much fun!";
+ close;
+ }
+ end;
+}
+
+// Original name: "Bakonawa Introduction Quest Helper#bako1"
+sec_in02,10,16,5 script Bakonawa Intro Helper 4_MASK_SMOKEY,{
+ if (callfunc("F_GM_NPC",1854,0) < 1) {
+ mes "Seafood and Black Bean Sauce Noodle!";
+ close;
+ }
+ mes "[Briquet Scheme]";
+ mes "Just boldly tell me";
+ mes "what is it that you want!";
+ next;
+ switch(select("Reset all quests:Just before the end of first quest:Reset secondary quest:Distribution of lost belongings:Just after hunting")) {
+ case 1:
+ mes "Here you go!";
+ set malaya_bakona1,0;
+ set malaya_bakona2,0;
+ for(set .@i,1174; .@i<=1193; set .@i,.@i+1) {
+ if (checkquest(.@i) > -1)
+ erasequest .@i;
+ }
+ close;
+ case 2:
+ mes "[Briquet Scheme]";
+ mes "Here you go!";
+ set malaya_bakona1,6;
+ for(set .@i,1174; .@i<=1178; set .@i,.@i+1) {
+ if (checkquest(.@i) > -1)
+ erasequest .@i;
+ }
+ setquest 1179;
+ close;
+ case 3:
+ mes "[Briquet Scheme]";
+ mes "Here you go!";
+ set malaya_bakona2,0;
+ for(set .@i,1180; .@i<=1193; set .@i,.@i+1) {
+ if (checkquest(.@i) > -1)
+ erasequest .@i;
+ }
+ close;
+ case 4:
+ mes "[Briquet Scheme]";
+ mes "Here you go!";
+ getitem 6520,17; //Lost_Belongings
+ close;
+ case 5:
+ mes "[Briquet Scheme]";
+ mes "Here you go!";
+ set malaya_bakona2,8;
+ setquest 1187;
+ for(set .@i,1178; .@i<=1193; set .@i,.@i+1) {
+ if (checkquest(.@i) > -1)
+ erasequest .@i;
+ }
+ close;
+ }
+}
+
+// Nurse in Port Malaya :: malaya_bang
+//============================================================
+function script F_Malaya_Nurse {
+ if (malaya_bang == 30) {
+ mes "[Nurse Las]";
+ mes "A talisman?";
+ mes "I think you should search for something else.";
+ cutin "malaya_nurseA01",2;
+ callsub L_Warp, getarg(0);
+ } else if (malaya_bang == 31) {
+ mes "[Nurse Las]";
+ mes "A talisman and a person?";
+ cutin "malaya_nurseA01",2;
+ next;
+ mes "[Nurse Las]";
+ mes "I did see the talisman but I didn't go near it because I got a bad feeling about it.";
+ next;
+ mes "[Nurse Las]";
+ mes "Oh!";
+ mes "Speaking of talismans, wouldn't that old lady know about them, since she put some around the village?";
+ mes "I think it'll be a good idea to ask her.";
+ set malaya_bang,32;
+ changequest 11303,11304;
+ callsub L_Warp, getarg(0), 1;
+ } else if (malaya_bang == 32) {
+ mes "[Nurse Las]";
+ mes "Oh!";
+ mes "Speaking of talismans, wouldn't that old lady know about them, since she put some around the hospital?";
+ mes "I think it'll be a good idea to ask her.";
+ cutin "malaya_nurseA01",2;
+ callsub L_Warp, getarg(0), 1;
+ } else if (malaya_bang == 33) {
+ mes "[Nurse Las]";
+ mes "A shaman... Best if we met her.";
+ cutin "malaya_nurseA01",2;
+ callsub L_Warp, getarg(0), 1;
+ } else if (malaya_bang == 34) {
+ mes "[Nurse Las]";
+ mes "Oh!";
+ mes "You must have met her.";
+ mes "I feel something strong...";
+ cutin "malaya_nurseA01",2;
+ next;
+ select("Tell her about the talisman.");
+ mes "[Nurse Las]";
+ mes "Yes!";
+ mes "I have an idea.";
+ mes "How about we stick that one over the one we saw on the 2nd floor door?";
+ emotion e_ic;
+ next;
+ mes "[Nurse Las]";
+ mes "Maybe it will block the bad energy it's giving out.";
+ set malaya_bang,35;
+ changequest 11306,11307;
+ callsub L_Warp, getarg(0), 1;
+ } else if (malaya_bang == 35) {
+ mes "[Nurse Las]";
+ mes "Yes!";
+ mes "I have an idea.";
+ mes "How about we stick that one over the one we saw on the 2nd floor door?";
+ emotion e_ic;
+ cutin "malaya_nurseA01",2;
+ next;
+ mes "[Nurse Las]";
+ mes "Maybe it will block the bad energy it's giving out.";
+ callsub L_Warp, getarg(0), 1;
+ } else if (malaya_bang == 36) {
+ callsub L_Weight;
+ mes "[Nurse Maenne]";
+ mes "*Sigh*...";
+ mes "I thought it strange when you were standing behind me....";
+ cutin "malaya_nurseB",2;
+ next;
+ mes "[Nurse Maenne]";
+ mes "I didn't think you'd do something like this.";
+ emotion e_dots;
+ next;
+ mes "[Nurse Maenne]";
+ mes "We were just about to enter Bangungot's room, before we were thrown out...";
+ next;
+ switch(select("Bangungot?:Nurse Maenne?")) {
+ case 1:
+ callsub L_Bangungot;
+ select("Nurse Maenne");
+ callsub L_Maenne;
+ break;
+ case 2:
+ callsub L_Maenne;
+ select("Bangungot");
+ callsub L_Bangungot;
+ break;
+ }
+ callsub L_Incomplete;
+ set malaya_bang,42;
+ changequest 11308,11309;
+ callsub L_Reward;
+ callsub L_Warp, getarg(0), 1;
+ } else if (malaya_bang == 40) {
+ callsub L_Weight;
+ if (checkquest(11309,HUNTING) == 2) {
+ callsub L_Complete;
+ set malaya_bang,41;
+ completequest 11309;
+ callsub L_Reward;
+ callsub L_Warp, getarg(0), 1;
+ } else {
+ callsub L_Incomplete;
+ set malaya_bang,42;
+ callsub L_Reward;
+ callsub L_Warp, getarg(0);
+ }
+ } else if (malaya_bang > 40) {
+ if (malaya_bang == 42) {
+ if (checkquest(11309,HUNTING) == 2) {
+ callsub L_Complete;
+ set malaya_bang,41;
+ completequest 11309;
+ callsub L_Warp, getarg(0), 1;
+ } else {
+ callsub L_Incomplete;
+ callsub L_Warp, getarg(0);
+ }
+ }
+ callsub L_Incomplete;
+ switch(getarg(0)) {
+ case 1:
+ next;
+ switch(select("Enter the hospital.:Quit.")) {
+ case 1:
+ callsub L_Warp, getarg(0);
+ case 2:
+ mes "[Nurse Maenne]";
+ mes "Hmmm...";
+ close2;
+ cutin "",255;
+ end;
+ }
+ case 2:
+ callsub L_Warp, getarg(0);
+ }
+ }
+ return;
+
+L_Weight:
+ if (checkweight(1201,1) == 0) {
+ mes "- Wait !! -";
+ mes "- You have too many items. -";
+ mes "- Cannot receive item. -";
+ mes "- Please lighten your bag -";
+ mes "- and try again. -";
+ close;
+ }
+ if (MaxWeight - Weight < 1000) {
+ mes "- Wait !! -";
+ mes "- You are carrying too many items. -";
+ mes "- Cannot receive item. -";
+ mes "- Please lighten your bag -";
+ mes "- and try again. -";
+ close;
+ }
+ return;
+
+L_Warp:
+ switch(getarg(0)) {
+ case 1:
+ close2;
+ cutin "",255;
+ if (getarg(1,0) == 0)
+ warp "ma_dun01",33,110;
+ end;
+ case 2:
+ next;
+ switch(select("Go outside.:Quit.")) {
+ case 1:
+ close2;
+ cutin "",255;
+ warp "malaya",58,76;
+ end;
+ case 2:
+ mes "[Nurse Las]";
+ mes "Tsk...";
+ close2;
+ cutin "",255;
+ end;
+ }
+ }
+
+L_Reward:
+// if (IsPremiumPcCafe == 10) {
+ getitem 6499,5; //Ancient_Grudge
+ getitem 6497,10; //Lesser_Agimat
+// } else {
+// getitem 6499,3; //Ancient_Grudge
+// getitem 6497,5; //Lesser_Agimat
+// }
+ getitem 617,1; //Old_Violet_Box
+ getexp 1000000,0;
+ return;
+
+L_Bangungot:
+ mes "[Nurse Maenne]";
+ mes "It's a vicious monster roaming this hospital.";
+ next;
+ mes "[Nurse Maenne]";
+ mes "Hmmmm...";
+ mes "It's not exactly a monster....";
+ mes "More like a curse or disease...";
+ next;
+ mes "[Nurse Maenne]";
+ mes "There's a story saying that it used to be a wood fairy.";
+ next;
+ mes "[Nurse Maenne]";
+ mes "Anyway, it doesnt change the fact that she killed the patients of this hospital and turned them into monsters.";
+ next;
+ return;
+
+L_Maenne:
+ mes "[Nurse Maenne]";
+ mes "Me?";
+ mes "As you can see, I'm the new nurse here.";
+ mes "I'm a nurse who specializes in 'this' kind of work, instead of looking after patients.";
+ cutin "malaya_nurseB",2;
+ next;
+ mes "[Nurse Maenne]";
+ mes "Oh!";
+ mes "The Bangungot pretended to be me?";
+ next;
+ mes "[Nurse Maenne]";
+ mes "Seeing how much it rattled you.";
+ mes "It's a rather smart one.";
+ next;
+ mes "[Nurse Maenne]";
+ mes "Simply said, I cure unnatural phenomenon around hospitals.";
+ next;
+ mes "[Nurse Maenne]";
+ mes "Many things happen in the world.";
+ next;
+ return;
+
+L_Complete:
+ mes "[Nurse Maenne]";
+ mes "She may have rooted here deeper than I thought.";
+ mes "I can still feel her presence.";
+ cutin "malaya_nurseB",2;
+ next;
+ mes "[Nurse Maenne]";
+ mes "What you killed was a part of her...";
+ mes "But, it was a big help since you confused and damaged her at the same time.";
+ next;
+ mes "[Nurse Maenne]";
+ mes "It makes things a lot easier.";
+ mes "Thank you.";
+ return;
+
+L_Incomplete:
+ mes "[Nurse Maenne]";
+ mes "It would've been easier if she was apart from her body, but now that she returned to her room, this is going to be a little tricky.";
+ cutin "malaya_nurseB",2;
+ next;
+ mes "[Nurse Maenne]";
+ mes "Of course, don't you dare walk away from this, since you disturbed my job and led her to her room.";
+ next;
+ mes "[Nurse Maenne]";
+ mes "If you make it to the 2nd floor door, I'll open a small door to her room for you.";
+ mes "After that, she's all yours.";
+ return;
+}
+
+malaya,55,72,4 script Nurse#ma_n1 4_F_NURSE,{
+ if (malaya_hi < 20) {
+ mes "[Nurse]";
+ mes "People of this town are too cautious of outsiders.";
+ emotion e_ag;
+ cutin "malaya_nurseA01",2;
+ next;
+ mes "[Nurse]";
+ mes "I'm sure they have their reasons, but I wish they'd tell me how to get closer...";
+ close2;
+ cutin "",255;
+ end;
+ }
+ if (BaseLevel < 100) {
+ mes "There's a nurse outside the hospital holding a large bag.";
+ mes "I don't think I can help her.";
+ close;
+ }
+ if (malaya_bang == 0) {
+ mes "[Nurse]";
+ mes "Hey, hold on.";
+ mes "Are you planning on going inside?";
+ cutin "malaya_nurseA01",2;
+ next;
+ switch(select("Yes.:No.")) {
+ case 1:
+ mes "[Nurse]";
+ mes "Oh~";
+ mes "I'm so glad!";
+ mes "I was literally waiting all day for someone to some by.";
+ cutin "malaya_nurseA02",2;
+ next;
+ switch(select("About the hospital:Reason for stalling me:Ignore.")) {
+ case 1:
+ mes "[Nurse]";
+ mes "This hospital is the only one in town.";
+ mes "And it's going to be my new job.";
+ cutin "malaya_nurseA03",2;
+ next;
+ mes "[Nurse]";
+ mes "I heard it was just built, but it seems so creepy....";
+ emotion e_swt;
+ next;
+ mes "[Nurse]";
+ mes "I was surprised when I got here too.";
+ mes "It says 'closed' all around it!";
+ next;
+ select("Reason for stalling me.");
+ mes "[Nurse]";
+ mes "I was told that they needed nurses in this town,";
+ mes "so I came here after turning down numerous proposals.";
+ next;
+ mes "[Nurse]";
+ mes "I'd heard they were really cautious of outsiders...";
+ next;
+ mes "[Nurse]";
+ mes "Not even a soul to welcome me, let alone a party!";
+ mes "Shocking!";
+ emotion e_sob;
+ next;
+ mes "[Nurse]";
+ mes "What's more, I made it here after being lost and now I'm facing a creepy and locked hospital!";
+ next;
+ break;
+ case 2:
+ mes "[Nurse]";
+ mes "I was told that they needed nurses in this town,";
+ mes "so I came here after turning down numerous proposals.";
+ cutin "malaya_nurseA03",2;
+ next;
+ mes "[Nurse]";
+ mes "I'd heard they were really cautious of outsiders...";
+ next;
+ mes "[Nurse]";
+ mes "Not even a soul to welcome me, let alone a party!";
+ mes "Shocking!";
+ emotion e_sob;
+ next;
+ mes "[Nurse]";
+ mes "What's more, I made it here after being lost and now I'm facing a creepy and locked hospital!";
+ next;
+ select("About the hospital");
+ mes "[Nurse]";
+ mes "This hospital is the only one in town.";
+ mes "And it's going to be my new job.";
+ next;
+ mes "[Nurse]";
+ mes "I heard it was just built, but it seems so creepy....";
+ emotion e_swt;
+ next;
+ mes "[Nurse]";
+ mes "I was surprised when I got here too.";
+ mes "It says 'closed' all around it!";
+ next;
+ break;
+ case 3:
+ mes "[Nurse]";
+ mes "Yes, you must be busy.";
+ mes "Oh, well.";
+ mes "I'll let you be on your way.";
+ mes "Don't mind me. *Sob*";
+ emotion e_sob;
+ cutin "malaya_nurseA03",2;
+ close2;
+ cutin "",255;
+ end;
+ }
+ break;
+ case 2:
+ mes "[Nurse]";
+ mes "Oh, I see...";
+ emotion e_sob;
+ close2;
+ cutin "",255;
+ end;
+ }
+ mes "[Nurse]";
+ mes "Now that you say it... If you're going inside, could you take me with you?";
+ cutin "malaya_nurseA04",2;
+ next;
+ mes "[Nurse]";
+ mes "Doors are locked!";
+ mes "My bags are heavy!";
+ mes "And my legs are killing me.";
+ cutin "malaya_nurseA03",2;
+ next;
+ mes "[Nurse]";
+ mes "If I knew this was going to happen, I would've worn ER night-shift shoes instead of first-day shoes... *sniff*";
+ emotion e_sob;
+ next;
+ switch(select("Help.:Don't help.")) {
+ case 1:
+ mes "[Nurse]";
+ mes "*Sob*";
+ mes "I guess this world is still worth living in.";
+ mes "You are too kind.";
+ emotion e_sob;
+ next;
+ mes "[Nurse Las]";
+ mes "I'm 'Las', who's supposed to work in this hospital.";
+ mes "By the looks of it, though, I may become jobless...";
+ next;
+ mes "[Nurse Las]";
+ mes "Let's start by getting inside.";
+ next;
+ mes "[Nurse Las]";
+ mes "Before that....";
+ mes "Could you get something to wrap my feet? I can't put my shoes on because I've got blisters.";
+ emotion e_hlp;
+ cutin "malaya_nurseA04",2;
+ next;
+ mes "[Nurse Las]";
+ mes "2 Rotten Bandages should do to wrap both my feet. They may look dirty, but they have special liquid on them that have amazing effects.";
+ set malaya_bang,1;
+ setquest 11284;
+ close2;
+ cutin "",255;
+ end;
+ case 2:
+ mes "[Nurse]";
+ mes "Yes, you must be busy.";
+ mes "Oh, well.";
+ mes "I'll let you be on your way.";
+ mes "Don't mind me. *Sob*";
+ emotion e_sob;
+ cutin "malaya_nurseA03",2;
+ close2;
+ cutin "",255;
+ end;
+ }
+ } else if (malaya_bang == 1) {
+ if (countitem(930) > 1) {
+ mes "[Nurse Las]";
+ mes "Oh......";
+ mes "I know they're effective but... Not so tempting.";
+ cutin "malaya_nurseA01",2;
+ next;
+ mes "[Nurse Las]";
+ mes "Rotten Bandages... A fit name for something that seems to have been cut fresh from a mummy.";
+ next;
+ mes "[Nurse Las]";
+ mes "I'm having second thoughts looking at them, but as I am to be a professional nurse!!";
+ mes "Here goes nothing!!!";
+ mes "Ewwww!!";
+ next;
+ mes "[Nurse Las]";
+ mes "*Squish*";
+ mes "*Squelch*";
+ delitem 930,2; //Rotten_Bandage
+ set malaya_bang,2;
+ close2;
+ cutin "",255;
+ end;
+ } else {
+ mes "[Nurse Las]";
+ mes "Before that...";
+ mes "Could you get something to wrap my feet? I can't put my shoes on because I've got blisters.";
+ emotion e_hlp;
+ cutin "malaya_nurseA03",2;
+ next;
+ mes "[Nurse Las]";
+ mes "2 Rotten Bandages should do to wrap both my feet. They may look dirty, but they have special liquid on that have with amazing effects.";
+ close2;
+ cutin "",255;
+ end;
+ }
+ } else if (malaya_bang == 2) {
+ mes "[Nurse Las]";
+ mes "Ahhhhh...";
+ mes "My feet feel a lot better now, but it smells funny.";
+ cutin "malaya_nurseA01",2;
+ next;
+ mes "[Nurse Las]";
+ mes "Oh...... the smell......";
+ mes "My new shoes will be ruined...";
+ emotion e_swt2;
+ next;
+ mes "[Nurse Las]";
+ mes "Okay!!!!!!";
+ mes "I don't know if it's locked or stuck, let's try pushing it together!";
+ set malaya_bang,3;
+ changequest 11284,11285;
+ close2;
+ cutin "",255;
+ end;
+ } else if (malaya_bang == 3) {
+ mes "[Nurse Las]";
+ mes "Okay!!!!!!";
+ mes "I don't know if it's locked or stuck, let's try pushing it together!";
+ cutin "malaya_nurseA01",2;
+ close2;
+ cutin "",255;
+ end;
+ } else if (malaya_bang == 4) {
+ mes "["+strcharinfo(0)+"]";
+ mes "We pushed and pulled, but it won't budge.";
+ emotion e_swt2,1;
+ next;
+ mes "[Nurse Las]";
+ mes "Strange~";
+ mes "They wouldn't have sent me to a closed down hospital.";
+ cutin "malaya_nurseA03",2;
+ next;
+ mes "[Nurse Las]";
+ mes "Hmmm!";
+ mes "I can't stand it anymore!";
+ emotion e_an;
+ next;
+ mes "[Nurse Las]";
+ mes "Could you ask the townsfolk about the hospital while I contact HQ?";
+ cutin "malaya_nurseA01",2;
+ next;
+ mes "[Nurse Las]";
+ mes "Hey, why don't you start with that girl over there?";
+ mes "Perhaps she'll tell you something.";
+ set malaya_bang,5;
+ changequest 11286,11287;
+ close2;
+ cutin "",255;
+ end;
+ } else if (malaya_bang == 5) {
+ mes "[Nurse Las]";
+ mes "Could you ask the townsfolk about the hospital while I contact HQ?";
+ cutin "malaya_nurseA01",2;
+ next;
+ mes "[Nurse Las]";
+ mes "Hey, why don't you start with that girl over there?";
+ mes "Perhaps she'll tell you something.";
+ close2;
+ cutin "",255;
+ end;
+ } else if (malaya_bang == 6) {
+ mes "[Nurse Las]";
+ mes "What did she say?";
+ emotion e_what;
+ cutin "malaya_nurseA02",2;
+ next;
+ select("Tell her what she said.");
+ mes "[Nurse Las]";
+ mes "Strange.";
+ mes "HQ confirmed that I am assigned here.";
+ cutin "malaya_nurseA01",2;
+ next;
+ mes "[Nurse Las]";
+ mes "Maybe that girl doesn't know about this place?";
+ mes "HQ couldn't have sent me here and be lying about it. Could you ask someone else in town?";
+ next;
+ mes "[Nurse Las]";
+ mes "I'll contact HQ again for more info.";
+ mes "Hey, why not ask that man over there?";
+ mes "I'm sure he'll know something.";
+ set malaya_bang,7;
+ changequest 11288,11289;
+ close2;
+ cutin "",255;
+ end;
+ } else if (malaya_bang == 7) {
+ mes "[Nurse Las]";
+ mes "I'll contact HQ again for more info.";
+ mes "Hey, why not ask that man over there?";
+ mes "I'm sure he'll know something.";
+ cutin "malaya_nurseA01",2;
+ close2;
+ cutin "",255;
+ end;
+ } else if (malaya_bang == 8) {
+ mes "[Nurse Las]";
+ mes "An inn?";
+ mes "Good gracious!";
+ mes "If they'd have told me earlier I wouldn't have had to stand out here for so long!";
+ emotion e_pif;
+ cutin "malaya_nurseA01",2;
+ next;
+ mes "[Nurse Las]";
+ mes "Ummm......";
+ mes "......";
+ mes "......";
+ next;
+ mes "[Nurse Las]";
+ mes "Hey... you know what...";
+ next;
+ mes "[Nurse Las]";
+ mes "I don't think I can move anymore because of my feet. Could you go to the inn for me?";
+ emotion e_swt2;
+ cutin "malaya_nurseA03",2;
+ next;
+ mes "[Nurse Las]";
+ mes "I can't carry my bags around so I'll stay here and watch over them while I treat my feet.";
+ next;
+ mes "[Nurse Las]";
+ mes "I have to be back here again anyway.";
+ mes "Thank you.";
+ set malaya_bang,9;
+ changequest 11290,11291;
+ close2;
+ cutin "",255;
+ end;
+ } else if (malaya_bang == 9) {
+ mes "[Nurse Las]";
+ mes "I don't think I can move anymore because of my feet. Could you go to the inn for me?";
+ emotion e_swt2;
+ cutin "malaya_nurseA03",2;
+ next;
+ mes "[Nurse Las]";
+ mes "I can't carry my bags around so I'll stay here and watch over them while I treat my feet.";
+ next;
+ mes "[Nurse Las]";
+ mes "I have to be back here again anyway.";
+ mes "Thank you.";
+ close2;
+ cutin "",255;
+ end;
+ } else if (malaya_bang == 10) {
+ mes "[Nurse Las]";
+ mes "Hey~";
+ mes "How'd it go?";
+ cutin "malaya_nurseA02",2;
+ next;
+ select("Hand over the key and message.");
+ mes "[Nurse Las]";
+ mes "Keys?";
+ mes "Well this is one step closer to my goals!";
+ mes "Let's open the door right now!";
+ set malaya_bang,11;
+ close2;
+ cutin "",255;
+ end;
+ } else if (malaya_bang == 11) {
+ mes "[Nurse Las]";
+ mes "Keys?";
+ mes "Well this is one step closer to my goals!";
+ mes "Let's open the door right now!";
+ cutin "malaya_nurseA02",2;
+ close2;
+ cutin "",255;
+ end;
+ } else if (malaya_bang == 12) {
+ mes "[Nurse Las]";
+ mes "That's weird~!";
+ mes "The door's not locked?";
+ mes "How can this be?????";
+ mes "????";
+ emotion e_what;
+ emotion e_what,1;
+ cutin "malaya_nurseA04",2;
+ next;
+ mes "[Nurse Las]";
+ mes "Oh no!!!";
+ mes "Everything's falling apart.";
+ mes "Maybe we should wait for the doctor to come.....";
+ cutin "malaya_nurseA03",2;
+ next;
+ mes "[???]";
+ mes "...";
+ cutin "",255;
+ next;
+ mes "[???]";
+ mes "*Snigger*";
+ emotion e_what,1;
+ emotion e_what;
+ next;
+ mes "[???]";
+ mes "Hey "+((Sex)?"dude":"missy")+",";
+ mes "You're not getting in the hospital.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Who's there?!";
+ next;
+ mes "[???]";
+ mes "*Snigger*";
+ next;
+ mes "[???]";
+ mes "That's a secret~";
+ mes "My mom will kill me if she knew I was here!";
+ next;
+ switch(select("About entering the hospital.:About it's mom.:About ???:Quit.")) {
+ case 1:
+ mes "[???]";
+ mes "A few days ago, the old lady who lives near us went around the hospital sticking some kind of sticks into the ground.";
+ next;
+ mes "[???]";
+ mes "She was mumbling and looking around a lot.";
+ next;
+ mes "[???]";
+ mes "I was well hidden here because I wasn't supposed to be here.";
+ next;
+ break;
+ case 2:
+ mes "[???]";
+ mes "My mom once told me.";
+ mes "The old lady's daughter was hospitalized here.";
+ next;
+ mes "[???]";
+ mes "She never got out of it though...";
+ next;
+ mes "[???]";
+ mes "She wasn't the only one. There were many strange things going on at the hospital.";
+ next;
+ mes "[???]";
+ mes "That's why my mom doesn't want me coming around here.";
+ next;
+ break;
+ case 3:
+ mes "[???]";
+ mes "No way Jose!";
+ mes "I got a spanking last time I was caught around here!";
+ next;
+ mes "[???]";
+ mes "If I'm caught again, it won't end with a spanking....";
+ mes "So scary.";
+ next;
+ break;
+ case 4:
+ mes "[???]";
+ mes "Humph!!";
+ close;
+ }
+ mes "The voice seems to be coming from the bushes near the entrance of the hospital.";
+ specialeffect EF_STEAL,AREA,"Bushes#ma";
+ set malaya_bang,13;
+ changequest 11293,11294;
+ close;
+ } else if (malaya_bang == 13) {
+ mes "The voice seems to be coming from the bushes near the entrance of the hospital.";
+ mes "Let's check around.";
+ specialeffect EF_STEAL,AREA,"Bushes#ma";
+ close;
+ } else if (malaya_bang == 14) {
+ mes "[Nurse Las]";
+ mes "Hmmm... Let's look around the hospital.";
+ cutin "malaya_nurseA01",2;
+ close2;
+ cutin "",255;
+ end;
+ } else if (malaya_bang == 15) {
+ mes "[Nurse Las]";
+ mes "Hey... ummm...";
+ mes "You know...";
+ mes "Could you give that old lady a visit?";
+ cutin "malaya_nurseA04",2;
+ next;
+ mes "[Nurse Las]";
+ mes "Oh, me? I'll look be looking around here.";
+ next;
+ mes "[Nurse Las]";
+ mes "As you know, my feet hurt...";
+ mes "Yes?";
+ mes "Yes?";
+ next;
+ switch(select("Go.:Don't go.")) {
+ case 1:
+ mes "[Nurse Las]";
+ mes "Okay, off you go.";
+ mes "I think she lives on the west side of town.";
+ mes "Go on.";
+ next;
+ mes "[Nurse Las]";
+ mes "Hey you in the bushes, I'll tell on you if you don't go home now!";
+ set malaya_bang,16;
+ changequest 11296,11297;
+ close2;
+ cutin "",255;
+ end;
+ case 2:
+ mes "[Nurse Las]";
+ mes "Why!?";
+ mes "Staying here won't solve anything.";
+ close2;
+ cutin "",255;
+ end;
+ }
+ } else if (malaya_bang == 16 || malaya_bang == 17) {
+ mes "[Nurse Las]";
+ mes "Okay, off you go.";
+ mes "I think she lives on the west side of town.";
+ mes "Go on.";
+ cutin "malaya_nurseA04",2;
+ next;
+ mes "[Nurse Las]";
+ mes "Hey you in the bushes, I'll tell on you if you don't go home now!";
+ emotion e_omg,0,"Bushes#ma";
+ close2;
+ cutin "",255;
+ end;
+ } else if (malaya_bang == 18) {
+ mes "[Nurse Las]";
+ mes "How'd it go?";
+ mes "Did you meet the old lady?";
+ cutin "malaya_nurseA02",2;
+ next;
+ mes "[Nurse Las]";
+ mes "Oh by the way, when ["+strcharinfo(0)+"], you were gone, I tried the door.";
+ mes "It did open...";
+ next;
+ mes "[Nurse Las]";
+ mes "But the way to the 2nd floor was blocked.";
+ mes "I thought the door opening was a break through, but turns out it wasn't.";
+ cutin "malaya_nurseA03",2;
+ next;
+ mes "[Nurse Las]";
+ mes "Anyway, the first floor door is open, so let's go inside.";
+ mes "Everything would be meaningless if the second floor door is not opened.";
+ emotion e_sob;
+ set malaya_bang,19;
+ changequest 11299,11300;
+ close2;
+ cutin "",255;
+ warp "ma_dun01",33,110;
+ end;
+ } else if (malaya_bang == 19) {
+ mes "[Nurse Las]";
+ mes "Anyway, the first floor door is open, so let's go inside.";
+ mes "Everything would be meaningless if the second floor door is not opened.";
+ emotion e_sob;
+ cutin "malaya_nurseA01",2;
+ close2;
+ cutin "",255;
+ warp "ma_dun01",33,110;
+ end;
+ } else if (malaya_bang < 30) {
+ mes "[Nurse Las]";
+ mes "Could you check the 2nd floor door again in case I missed something?";
+ cutin "malaya_nurseA01",2;
+ close2;
+ cutin "",255;
+ warp "ma_dun01",33,110;
+ end;
+ } else {
+ callfunc "F_Malaya_Nurse",1;
+ end;
+ }
+ mes "There's a nurse outside the hospital holding a large bag.";
+ mes "I don't think I can help her.";
+ close;
+}
+
+ma_dun01,35,108,4 script Nurse#ma_n2 4_F_NURSE,{
+ if (malaya_bang < 19) {
+ // fall through
+ } else if (malaya_bang < 30) {
+ if (malaya_bang == 19) {
+ mes "The hospital is infested with monsters, like the old lady said.";
+ mes "How could she have gone back and forth to the 2nd floor with her feet like that....";
+ next;
+ set malaya_bang,20;
+ changequest 11300,11301;
+ }
+ mes "[Nurse Las]";
+ mes "Could you check the 2nd floor door again in case I missed something?";
+ cutin "malaya_nurseA01",2;
+ next;
+ switch(select("Go outside.:Quit.")) {
+ case 1:
+ close2;
+ cutin "",255;
+ warp "malaya",58,76;
+ end;
+ case 2:
+ mes "[Nurse Las]";
+ mes "Tsk...";
+ close2;
+ cutin "",255;
+ end;
+ }
+ } else {
+ callfunc "F_Malaya_Nurse",2;
+ end;
+ }
+ mes "[Nurse]";
+ mes "I want to be left alone.";
+ mes "Please leave.";
+ close2;
+ warp "malaya",58,76;
+ end;
+}
+
+ma_dun01,152,23,4 script Suspicious Wooden Stick::MalayaStick0 4_BULLETIN_BOARD2,{
+ if (malaya_bang == 20) {
+ mes "There's a talisman similar to the ones outside the hospital.";
+ mes "Let's look around for something else.";
+ set malaya_bang,30;
+ changequest 11301,11302;
+ close;
+ } else if (malaya_bang == 30) {
+ mes "There's a talisman similar to the ones outside the hospital.";
+ mes "Let's look around for something else.";
+ close;
+ } else if (malaya_bang == 35) {
+ mes "After sticking on the talisman over the other one, the dark feeling lifted away, just like Las said.";
+ next;
+ mes "[Nurse Las]";
+ mes "*Snigger*";
+ cutin "malaya_nurseA05",2;
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "?!";
+ cutin "",255;
+ next;
+ mes "[Nurse Las]";
+ mes "Yes, yes!";
+ cutin "malaya_nurseA05",2;
+ next;
+ mes "[Nurse Las]";
+ mes "The annoying talismans are gone!";
+ next;
+ mes "[Nurse Las]";
+ mes "*Giggle*";
+ next;
+ mes "[Nurse Las]";
+ mes "Human's are so dumb. You show them a pretty little helpless look and they fall for it.";
+ next;
+ mes "[Nurse Las]";
+ mes "*Snigger*";
+ next;
+ mes "[Nurse Las]";
+ mes "For your work, I shall take you to my room...";
+ mes "Darn...";
+ next;
+ mes "[Nurse Las]";
+ mes "......";
+ next;
+ mes "[Nurse Las]";
+ mes "No no no!";
+ mes "You still have those annoying talismans!!!";
+ next;
+ mes "[Nurse Las]";
+ mes "This is your lucky day!";
+ mes "*Snigger*";
+ set malaya_bang,36;
+ changequest 11307,11308;
+ close2;
+ cutin "",255;
+ warp "malaya",58,76;
+ end;
+ } else if (malaya_bang > 35) {
+ mes "Cannot feel anything evil about the talisman.";
+ mes "Only the bitter taste of being fooled around Las remains...";
+ close;
+ } else {
+ mes "No power can be felt.";
+ close;
+ }
+}
+
+malaya,48,76,4 script Hospital Door#ma_n1 CLEAR_NPC,{
+ if (malaya_bang == 3) {
+ mes "Pushed hard on the door, but it won't open.";
+ mes "It doesn't feel like it's locked or stuck, but encased by a layer of something.";
+ set malaya_bang,4;
+ changequest 11285,11286;
+ close;
+ } else if (malaya_bang == 4) {
+ mes "Pushed hard on the door, but it won't open.";
+ mes "It doesn't feel like it's locked or stuck, but encased by a layer of something.";
+ close;
+ } else if (malaya_bang == 11) {
+ mes "Put the key inside the lock of the hospital door...";
+ mes "But it's not locked as expected.";
+ next;
+ mes "Then why is the door not opening?";
+ set malaya_bang,12;
+ changequest 11292,11293;
+ close;
+ } else if (malaya_bang == 12) {
+ mes "Put the key inside the lock of the hospital door...";
+ mes "But it's not locked as expected.";
+ next;
+ mes "Then why is the door not opening?";
+ close;
+ } else if (malaya_bang > 18) {
+ if(select("Enter the hospital.:Quit.") == 1)
+ warp "ma_dun01",33,110;
+ end;
+ } else {
+ mes "The hospital door seems to be closed.";
+ close;
+ }
+}
+
+malaya,64,78,4 script Village Woman#mab 4_F_MALAYA,{
+ if (malaya_hi < 20) {
+ mes "[Village Woman]";
+ mes "......";
+ next;
+ mes "Seems very cautious about you.";
+ close;
+ }
+ if (malaya_bang == 5) {
+ mes "[Village Woman]";
+ mes "Oh~Are you an adventurer?";
+ mes "It seems like we have a lot of them in town lately.";
+ next;
+ mes "[Village Woman]";
+ mes "I was born here and never went far away from here, so I always feel like going on my adventures when I hear the stories they bring.";
+ next;
+ switch(select("Ask about the hospital.:End conversation.")) {
+ case 1:
+ mes "[Village Woman]";
+ mes "The hospital?";
+ mes "It's been closed for a very long time.";
+ mes "They don't talk about it around here.";
+ next;
+ mes "[Village Woman]";
+ mes "I never had to go to the hospital.";
+ mes "I've been there once when I had a stomach ache as a child. I remember the place being creepy.";
+ next;
+ mes "[Village Woman]";
+ mes "Children never like hospitals.";
+ next;
+ select("Ask about the nurse.");
+ mes "[Village Woman]";
+ mes "The new nurse?";
+ mes "I don't know.";
+ mes "I haven't given it a thought.";
+ mes "It is strange to have a new nurse coming to a closed hospital.";
+ set malaya_bang,6;
+ changequest 11287,11288;
+ close;
+ case 2:
+ mes "[Village Woman]";
+ mes "Have a nice day~";
+ close;
+ }
+ } else if (malaya_bang == 6) {
+ mes "[Village Woman]";
+ mes "The new nurse?";
+ mes "I don't know.";
+ mes "I haven't given it a thought.";
+ mes "It is strange to have a new nurse coming to a closed hospital.";
+ set malaya_bang,6;
+ changequest 11287,11288;
+ close;
+ } else {
+ mes "[Village Woman]";
+ mes "Oh~Are you an adventurer?";
+ mes "It seems like we have a lot of them in town lately.";
+ next;
+ mes "[Village Woman]";
+ mes "I was born here and never went far away from here, so I always feel like going on my adventures when I hear the stories they bring.";
+ close;
+ }
+}
+
+malaya,62,37,4 script Village Man#mab 4_M_MALAYA,{
+ if (malaya_hi < 20) {
+ mes "[Village Man]";
+ mes "Hmmm! Haven't seen you around?";
+ mes "What brings you to our town?";
+ next;
+ mes "Seems very cautious about you.";
+ close;
+ }
+ if (malaya_bang == 7) {
+ mes "[Village Man]";
+ mes "*Laughs*";
+ mes "An adventurer, are you?";
+ mes "When you have time, come and take a look around my pineapple farm.";
+ next;
+ mes "[Village Man]";
+ mes "Just a little bit~";
+ mes "far from the village, but I'll give you all the pineapple you want in exchange for a good story of yours!";
+ next;
+ switch(select("Ask about the hospital.:End conversation.")) {
+ case 1:
+ mes "[Village Man]";
+ mes "Ummm......";
+ mes "You mean that hospital?";
+ next;
+ mes "[Village Man]";
+ mes "It was closed down because of an accident.";
+ mes "But I wouldn't trouble an outsider with the details......";
+ mes "There's not much I can tell you.";
+ next;
+ select("Ask about the nurse.");
+ mes "[Village Man]";
+ mes "Oh!!!";
+ mes "Did you meet the nurse?!";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "She was standing in front of the hospital.";
+ mes "Oh!";
+ mes "She must have gone to contact HQ.";
+ next;
+ mes "[Village Man]";
+ mes "We requested 'the nurse', and she's already here! We're saved!";
+ next;
+ select("The nurse?");
+ mes "[Village Man]";
+ mes "She was invited here to save our hospital.";
+ next;
+ mes "[Village Man]";
+ mes "Now I have to spread the good news! Could you bring her to the inn at the center of town?";
+ next;
+ mes "[Village Man]";
+ mes "That's where the doctor is staying.";
+ mes "He's been there ever since the hospital was closed.";
+ set malaya_bang,8;
+ changequest 11289,11290;
+ close;
+ case 2:
+ mes "[Village Man]";
+ mes "Whoopeee!";
+ close;
+ }
+ } else if (malaya_bang == 8) {
+ mes "[Village Man]";
+ mes "Now I have to spread the good news! Could you bring her to the inn at the center of town?";
+ next;
+ mes "[Village Man]";
+ mes "That's where the doctor is staying.";
+ mes "He's been there ever since the hospital was closed.";
+ close;
+ } else {
+ mes "[Village Man]";
+ mes "Whoopeee!";
+ mes "An adventurer, are you?";
+ mes "When you have time, come and take a look around my pineapple farm.";
+ next;
+ mes "[Village Man]";
+ mes "Just a little bit~";
+ mes "far from the village, but I'll give you all the pineapple you want in exchange for a good story of yours!";
+ close;
+ }
+}
+
+malaya,210,200,5 script Dr. Boon#ma 4_LGTSCIENCE,{
+ if (malaya_hi < 20) {
+ mes "[Dr. Boon]";
+ mes "......";
+ next;
+ mes "Seems very cautious about you.";
+ close;
+ }
+ if (malaya_bang == 9) {
+ mes "[Dr. Boon]";
+ mes "So~ You're the new nurse?";
+ next;
+ switch(select("Yes.:No.")) {
+ case 1:
+ mes "[Dr. Boon]";
+ mes "Nothing's more important for a nurse than their white uniform.";
+ mes "Go get changed!";
+ close;
+ case 2:
+ mes "[Dr. Boon]";
+ mes "Oh! I'm sorry.";
+ mes "We're waiting for a new nurse.";
+ mes "My bad.";
+ next;
+ select("Explain the situation.");
+ mes "[Dr. Boon]";
+ mes "Aha~";
+ mes "So that's what happened.";
+ mes "Oh, dear. I guess there was a misunderstanding.";
+ next;
+ mes "[Dr. Boon]";
+ mes "You see, I've been treating patients at the inn after what happened to the hospital.";
+ next;
+ mes "[Dr. Boon]";
+ mes "Even so, I must apologize for making her stand there so long.";
+ next;
+ mes "[Dr. Boon]";
+ mes "I can't leave right now because I have patients to look after. Why don't you go over and hand over this key?";
+ next;
+ mes "[Dr. Boon]";
+ mes "And give her a message with the key saying, 'I'll leave it to your own discretion'.";
+ next;
+ mes "[Dr. Boon]";
+ mes "I'll be there as soon as I'm done here.";
+ mes "Good luck~";
+ set malaya_bang,10;
+ changequest 11291,11292;
+ close;
+ }
+ } else if (malaya_bang == 10) {
+ mes "[Dr. Boon]";
+ mes "I can't leave right now because I have patients to look after. Why don't you go over and hand over this key?";
+ next;
+ mes "[Dr. Boon]";
+ mes "And give her a message with the key saying, 'I'll leave it to your own discretion'.";
+ next;
+ mes "[Dr. Boon]";
+ mes "I'll be there as soon as I'm done here.";
+ mes "Good luck~";
+ close;
+ } else {
+ mes "[Dr. Boon]";
+ mes "*Sigh*";
+ mes "The work... It never ends...";
+ mes "How am I supposed to handle all these patients on my own?";
+ next;
+ mes "[Dr. Boon]";
+ mes "What? What's a doctor doing in an inn?";
+ mes "Well, why not?";
+ close;
+ }
+}
+
+malaya,53,68,4 script Bushes#ma CLEAR_NPC,{
+ if (malaya_bang < 13) {
+ mes "It's just a bush.";
+ mes "A sweet scent of wood rises when shaken.";
+ close;
+ }
+ if (malaya_bang == 13) {
+ mes "[???]";
+ mes "Don't come any closer!";
+ mes "Old "+((Sex)?"man":"lady")+"!";
+ mes "How'd you know I was here?";
+ emotion e_omg;
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "I'm not old.";
+ emotion e_an,1;
+ next;
+ switch(select("About entering the hospital.:About its mom.:About ???.:Ask about the old lady.:Ask about the hospital grounds.:Quit.")) {
+ case 1:
+ mes "[???]";
+ mes "A few days ago, the old lady who lives near us went around the hospital sticking some kind of sticks into the ground.";
+ next;
+ mes "[???]";
+ mes "She was mumbling and looking around a lot.";
+ next;
+ mes "[???]";
+ mes "I was well hidden here because I wasn't supposed to be here.";
+ next;
+ break;
+ case 2:
+ mes "[???]";
+ mes "My mom once told me.";
+ mes "The old lady's daughter was hospitalized here.";
+ next;
+ mes "[???]";
+ mes "She never got out of it though...";
+ next;
+ mes "[???]";
+ mes "She wasn't the only one. There were many strange things going on at the hospital.";
+ next;
+ mes "[???]";
+ mes "That's why my mom doesn't want me coming around here.";
+ next;
+ break;
+ case 3:
+ mes "[???]";
+ mes "No way Jose!";
+ mes "I got a spanking last time I was caught around here!";
+ next;
+ mes "[???]";
+ mes "If I'm caught again, it won't end with a spanking....";
+ mes "So scary.";
+ next;
+ break;
+ case 4:
+ mes "[???]";
+ mes "It's the lady who lives next door to us.";
+ next;
+ mes "[???]";
+ mes "I saw her a few days ago doing something around the hospital.";
+ next;
+ mes "[???]";
+ mes "I couldn't see what she was doing from here, but I found some sticks there after she'd left.";
+ set malaya_bang,14;
+ changequest 11294,11295;
+ close;
+ case 5:
+ mes "[???]";
+ mes "I dunno.";
+ mes "Nothing's different except for the sticks.";
+ next;
+ mes "[???]";
+ mes "The old lady comes back once in a while to check on the sticks.";
+ mes "My heart races when that happens!";
+ next;
+ break;
+ case 6:
+ mes "[???]";
+ mes "Humph!!";
+ emotion e_pif;
+ close;
+ }
+ mes "[???]";
+ mes "Promise me you won't tell anyone that you saw me!!!";
+ mes "Promise?!";
+ close;
+ } else if (malaya_bang == 14) {
+ mes "[???]";
+ mes "I couldn't see what she was doing from here, but I found some sticks there after she'd left.";
+ close;
+ } else if (malaya_bang == 15) {
+ mes "[???]";
+ mes "Don't come any closer!";
+ mes "Old "+((Sex)?"man":"lady")+"!";
+ mes "How'd you know I was here?";
+ emotion e_omg;
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "I'm not old.";
+ emotion e_an,1;
+ close;
+ } else {
+ mes "There's a trace of a young child.";
+ mes "Think the child's gone home now.";
+ close;
+ }
+}
+
+- script Suspicious Wooden Stick::MalayaStick -1,{
+ if (checkweight(1201,1) == 0) {
+ mes "- Wait !! -";
+ mes "- You have too many items. -";
+ mes "- Cannot receive item. -";
+ mes "- Please lighten your bag -";
+ mes "- and try again. -";
+ close;
+ }
+ if (MaxWeight - Weight < 1000) {
+ mes "- Wait !! -";
+ mes "- You are carrying too many items. -";
+ mes "- Cannot receive item. -";
+ mes "- Please lighten your bag -";
+ mes "- and try again. -";
+ close;
+ }
+ if (malaya_bang == 14) {
+ mes "A strange stick is planted on the ground.";
+ mes "A mysterious force can be felt.";
+ next;
+ switch(select("Pull it out.:Leave it.")) {
+ case 1:
+ if (rand(1,5) == 4) {
+ mes "Pulled out the deeply planted stick.";
+ mes "The hospital seems to have become more gloomy.";
+ if (rand(2)) {
+ set malaya_bang,15;
+ changequest 11295,11296;
+ getitem 6497,1; //Lesser_Agimat
+ donpcevent "Tent"+replacestr(strnpcinfo(3),"MalayaStick","")+"#ma::OnEnable";
+ next;
+ mes "Better show Las the talisman.";
+ close;
+ } else {
+ getitem 6497,1; //Lesser_Agimat
+ donpcevent "Tent"+replacestr(strnpcinfo(3),"MalayaStick","")+"#ma::OnEnable";
+ close;
+ }
+ } else {
+ mes "After pulling out the deeply planted stick, an uneasy feeling washes over.";
+ donpcevent "Tent"+replacestr(strnpcinfo(3),"MalayaStick","")+"#ma::OnEnable";
+ close;
+ }
+ case 2:
+ mes "It looks ominous. Better leave it alone.";
+ close;
+ }
+ } else {
+ mes "There's a strange looking stick.";
+ close;
+ }
+ end;
+OnEnable:
+ enablenpc strnpcinfo(3); // NPC name is too long for strnpcinfo(0).
+ end;
+OnDisable:
+ disablenpc strnpcinfo(3);
+ end;
+}
+malaya,40,52,4 duplicate(MalayaStick) Suspicious Wooden Stick::MalayaStick1 4_BULLETIN_BOARD2
+malaya,31,42,4 duplicate(MalayaStick) Suspicious Wooden Stick::MalayaStick2 4_BULLETIN_BOARD2
+malaya,34,36,4 duplicate(MalayaStick) Suspicious Wooden Stick::MalayaStick3 4_BULLETIN_BOARD2
+malaya,40,32,4 duplicate(MalayaStick) Suspicious Wooden Stick::MalayaStick4 4_BULLETIN_BOARD2
+malaya,50,85,4 duplicate(MalayaStick) Suspicious Wooden Stick::MalayaStick5 4_BULLETIN_BOARD2
+malaya,46,93,4 duplicate(MalayaStick) Suspicious Wooden Stick::MalayaStick6 4_BULLETIN_BOARD2
+malaya,36,98,4 duplicate(MalayaStick) Suspicious Wooden Stick::MalayaStick7 4_BULLETIN_BOARD2
+malaya,48,79,4 duplicate(MalayaStick) Suspicious Wooden Stick::MalayaStick8 4_BULLETIN_BOARD2
+malaya,50,46,4 duplicate(MalayaStick) Suspicious Wooden Stick::MalayaStick9 4_BULLETIN_BOARD2
+malaya,59,84,4 duplicate(MalayaStick) Suspicious Wooden Stick::MalayaStick10 4_BULLETIN_BOARD2
+
+- script Tent#ma -1,{ //557
+ end;
+OnInit:
+ disablenpc strnpcinfo(0);
+ end;
+OnEnable:
+ enablenpc strnpcinfo(0);
+ initnpctimer;
+ end;
+OnDisable:
+ stopnpctimer;
+ disablenpc strnpcinfo(0);
+ end;
+OnTimer1000:
+ donpcevent "MalayaStick"+replacestr(strnpcinfo(1),"Tent","")+"::OnDisable";
+ end;
+OnTimer30000:
+ donpcevent "MalayaStick"+replacestr(strnpcinfo(1),"Tent","")+"::OnEnable";
+ donpcevent strnpcinfo(0)+"::OnDisable";
+ end;
+}
+- duplicate(Tent#ma) Tent1#ma -1
+- duplicate(Tent#ma) Tent2#ma -1
+- duplicate(Tent#ma) Tent3#ma -1
+- duplicate(Tent#ma) Tent4#ma -1
+- duplicate(Tent#ma) Tent5#ma -1
+- duplicate(Tent#ma) Tent6#ma -1
+- duplicate(Tent#ma) Tent7#ma -1
+- duplicate(Tent#ma) Tent8#ma -1
+- duplicate(Tent#ma) Tent9#ma -1
+- duplicate(Tent#ma) Tent10#ma -1
+
+malaya,114,183,3 script Bent Old Lady#ma 4_F_BARYO_OLD,{
+ if (malaya_bang == 16) {
+ mes "[Bent Old Lady]";
+ mes "Ho ho ho ho~~";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Ma'am, excuse me, but can I ask you a question?";
+ next;
+ mes "[Bent Old Lady]";
+ mes "Ho ho ho ho~~";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Ma'am?";
+ next;
+ mes "[Bent Old Lady]";
+ mes "Ho ho ho ho~~";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Ma'am?";
+ next;
+ mes "[Bent Old Lady]";
+ mes "Ho ho ho ho~~";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Ma'am!!!!!!!!!";
+ next;
+ mes "[Bent Old Lady]";
+ mes "Who? What?";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Excuse me, but can I ask you something?";
+ next;
+ mes "[Bent Old Lady]";
+ mes "What? I can't hear you.";
+ mes "Speak up!";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "I! Have! Something! To! Ask! You!";
+ next;
+ mes "[Bent Old Lady]";
+ mes "Oh~Yes dear~";
+ mes "I'll tell you everything I know, dear~";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Do you know anything about the hospital?";
+ next;
+ mes "[Bent Old Lady]";
+ mes "Hospital?";
+ mes "........";
+ next;
+ mes "[Bent Old Lady]";
+ mes "Hospital?!?!?!?";
+ next;
+ mes "[Bent Old Lady]";
+ mes "That hospital is cursed!";
+ mes "Something wicked is living there!";
+ next;
+ mes "[Bent Old Lady]";
+ mes "The thing took away my poor little girl.";
+ next;
+ switch(select("Ask about the hospital.:Ask about her daughter.")) {
+ case 1:
+ mes "[Bent Old Lady]";
+ mes "Everybody was happy to hear about the hospital being built.";
+ next;
+ mes "[Bent Old Lady]";
+ mes "We no longer had to go to other towns for medical care.";
+ next;
+ mes "[Bent Old Lady]";
+ mes "But the one they built didn't work out so well.";
+ mes "It couldn't cure people.";
+ mes "I knew this would happen when they chopped down the old tree to build it.";
+ next;
+ mes "[Bent Old Lady]";
+ mes "But the administrator wouldn't listen.";
+ mes "Far from curing people, they started to die.";
+ mes "So did my daughter...";
+ set malaya_bang,17;
+ changequest 11297,11298;
+ close;
+ case 2:
+ mes "[Bent Old Lady]";
+ mes "She suffered from nothing life threatening.";
+ mes "It was...";
+ mes "Just a cold......";
+ next;
+ mes "[Bent Old Lady]";
+ mes "The wicked thing.... My daughter...";
+ mes "There's something in that hospital.";
+ close;
+ }
+ } else if (malaya_bang == 17) {
+ select("Show her the stick.");
+ mes "[Bent Old Lady]";
+ mes "What?";
+ mes "Arghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh";
+ emotion e_omg;
+ next;
+ mes "[Bent Old Lady]";
+ mes "Arghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh";
+ emotion e_omg;
+ next;
+ mes "[Bent Old Lady]";
+ mes "Arghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh";
+ emotion e_omg;
+ next;
+ mes "[Bent Old Lady]";
+ mes "Arghhhhhhhhhh!!!!!!!!!!!";
+ emotion e_omg;
+ next;
+ mes "[Bent Old Lady]";
+ mes "What have you done!";
+ mes "That... That was a talisman to stop the wicked thing!";
+ next;
+ mes "[Bent Old Lady]";
+ mes "If you pull them up, it will go after people again!";
+ next;
+ mes "[Bent Old Lady]";
+ mes "I saw it!";
+ mes "I saw it when they closed the hospital saying that everybody had died.";
+ next;
+ mes "[Bent Old Lady]";
+ mes "But they all knew.";
+ mes "The patients weren't all dead.";
+ next;
+ mes "[Bent Old Lady]";
+ mes "Taken alive...";
+ mes "By the thing that took my daughter...";
+ next;
+ mes "[Bent Old Lady]";
+ mes "Oh dear.";
+ next;
+ mes "Nurse Las may be in danger, standing alone in front of the hospital.";
+ mes "If I don't return quickly...";
+ set malaya_bang,18;
+ changequest 11298,11299;
+ close;
+ } else if (malaya_bang == 18) {
+ mes "Nurse Las may be in danger, standing alone in front of the hospital.";
+ mes "If I don't return quickly...";
+ close;
+ } else if (malaya_bang == 32) {
+ mes "[Bent Old Lady]";
+ mes "Yes? The talisman?";
+ mes "I asked the shaman up north of the village to make them,";
+ next;
+ mes "[Bent Old Lady]";
+ mes "Not famous, but a talented shaman.";
+ set malaya_bang,33;
+ changequest 11304,11305;
+ close;
+ } else {
+ mes "[Bent Old Lady]";
+ mes "Ho ho ho ho~~";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Ma'am, excuse me, but can I ask you a question?";
+ next;
+ mes "[Bent Old Lady]";
+ mes "Ho ho ho ho~~";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Ma'am?";
+ next;
+ mes "[Bent Old Lady]";
+ mes "Ho ho ho ho~~";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Ma'am?";
+ next;
+ mes "[Bent Old Lady]";
+ mes "Ho ho ho ho~~";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Ma'am!!!!!!!!!";
+ next;
+ mes "[Bent Old Lady]";
+ mes "Who? What?";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Excuse me, but can I ask you something?";
+ next;
+ mes "[Bent Old Lady]";
+ mes "What? I can't hear you.";
+ mes "Speak up!";
+ close;
+ }
+}
+
+malaya,276,367,4 script Bent Shaman#ma 4_F_UMOLDWOMAN,{
+ if (malaya_hi < 20) {
+ mes "[Bent Shaman]";
+ mes "Urgh Urgh Urghhhhhh";
+ next;
+ mes "Doesn't give even a glance...";
+ close;
+ }
+ mes "[Bent Shaman]";
+ mes "Hmmmm...";
+ mes "I feel, feel....";
+ next;
+ mes "[Bent Shaman]";
+ mes "I feel something bad from you...";
+ if (malaya_bang == 33) {
+ next;
+ mes "[Bent Shaman]";
+ mes "No no...";
+ mes "You need not say anything!";
+ mes "You'll be needing this.";
+ next;
+ mes "[Bent Shaman]";
+ mes "It's okay.";
+ mes "No need for money.";
+ mes "It's the karma this village must face...";
+ set malaya_bang,34;
+ changequest 11305,11306;
+ }
+ close;
+}
+
+// Pintados Festival :: malaya_pintados
+//============================================================
+/*
+Description
+-----------
+The Pintados Festival begins when players have accumulated 1000 Lesser Agimats,
+1000 Silver Crosses, and 300 dyestuffs, and lasts for 7 days. During that time,
+players are able to create a tattoo.
+
+Global Variables
+----------------
+$malaya_pintados_00 - Festival time limit, in 30-minute intervals. (range: 0~344)
+$malaya_pintados_01 - Number of Lesser Agimats collected. (range: 0~1000)
+$malaya_pintados_02 - Number of Silver Crosses collected. (range: 0~1000)
+$malaya_pintados_03 - Number of dyestuffs collected. (range: 0~300)
+$malaya_pintados_04$ - Last player to create a tattoo.
+*/
+
+ma_fild01,1,1,4 script Pintados Manager#pin 4_F_KHELLISIA,{
+ if (callfunc("F_GM_NPC",1854,0) == 1) {
+ mes "Bingo!";
+ next;
+ } else {
+ mes "Error occurred.";
+ close;
+ }
+ mes "Hi, I'm the Pintados Festival Manager. Please select an item.";
+ mes "Time Value: ("+$malaya_pintados_00+"/344)";
+ mes "Lesser Agimat Value: ("+$malaya_pintados_01+"/1,000)";
+ mes "Cross Value: ("+$malaya_pintados_02+"/1,000)";
+ mes "Dyestuffs Value: ("+$malaya_pintados_03+"/300)";
+ mes "Recent Tattoo Creator: "+$malaya_pintados_04$;
+ next;
+ switch(select("Eastern Medicine Button ? Start & End:Detail Button ? Adjust Value:Start Timer:End Timer")) {
+ case 1:
+ mes "This is the Eastern Medicine Control Button.";
+ mes "You can set the Start or End values for the festival.";
+ next;
+ switch(select("Start Pintados Festival:End Pintados Festival:NPC_ON:NPC_OFF")) {
+ case 1:
+ set $malaya_pintados_00,1;
+ donpcevent "Pintados Manager#pin::OnEnable";
+ mes "Start the Pintados Festival.";
+ close;
+ case 2:
+ donpcevent "Pintados Manager#pin::OnDisable";
+ mes "End the Pintados Festival.";
+ close;
+ case 3:
+ donpcevent "Pintados Manager#pin::OnEnableNPC";
+ mes "Add an NPC.";
+ close;
+ case 4:
+ donpcevent "Pintados Manager#pin::OnDisableNPC";
+ mes "Remove an NPC.";
+ close;
+ }
+ case 2:
+ mes "Adjust the global value. Please select the value to adjust.";
+ next;
+ while(1) {
+ switch(select("Complete Adjustment:Time ("+$malaya_pintados_00+"):Lesser Agimat ("+$malaya_pintados_01+"):Silver Cross ("+$malaya_pintados_02+"):Dyestuffs ("+$malaya_pintados_03+")")) {
+ case 1:
+ mes "Completed global adjustment.";
+ close;
+ case 2:
+ mes "Adjust Time [0~344]";
+ mes "Global Increase by 1/30 min.";
+ mes "1 - 49 -> Day 1";
+ mes "50 - 98 -> Day 2";
+ mes "99 - 147 -> Day 3";
+ mes "148 - 196 -> Day 4";
+ mes "197 - 245 -> Day 5";
+ mes "246 - 294 -> Day 6";
+ mes "295 - 343 -> Day 7";
+ mes "Global 1 = 1 hr.";
+ next;
+ input .@input;
+ if (.@input < 0 || .@input > 344)
+ close;
+ set $malaya_pintados_00, .@input;
+ break;
+ case 3:
+ mes "Adjust the accumulated value for the Lesser Agimat.";
+ mes "Values can be adjusted between 0 to 1000.";
+ next;
+ input .@input;
+ if (.@input < 0 || .@input > 1000)
+ close;
+ set $malaya_pintados_01, .@input;
+ break;
+ case 4:
+ mes "Adjust the accumulated value of the Silver Cross.";
+ mes "Values can be adjusted between 0 to 1000.";
+ next;
+ input .@input;
+ if (.@input < 0 || .@input > 1000)
+ close;
+ set $malaya_pintados_02, .@input;
+ break;
+ case 5:
+ mes "Adjust the accumulated value for the Dyestuff.";
+ mes "Values can be adjusted between 0 to 300.";
+ next;
+ input .@input;
+ if (.@input < 0 || .@input > 300)
+ close;
+ set $malaya_pintados_03, .@input;
+ break;
+ }
+ mes "Time Value: ("+$malaya_pintados_00+"/344)";
+ mes "Lesser Agimat Value: ("+$malaya_pintados_01+"/1,000)";
+ mes "Cross Value: ("+$malaya_pintados_02+"/1,000)";
+ mes "Dyestuffs Value: ("+$malaya_pintados_03+"/300)";
+ mes "This is the current value. Do you want to adjust it?";
+ next;
+ }
+ case 3:
+ initnpctimer;
+ break;
+ case 4:
+ stopnpctimer;
+ break;
+ }
+ end;
+
+// Moved to individual NPCs for smoother processing.
+//OnInit:
+// if ($malaya_pintados_00 > 0)
+// donpcevent "Pintados Manager#pin::OnEnableNPC";
+// end;
+
+OnTimer1800000:
+ set $malaya_pintados_00, $malaya_pintados_00;
+ if ($malaya_pintados_00 > 0 && $malaya_pintados_00 < 344) {
+ set $malaya_pintados_00,$malaya_pintados_00+1;
+ stopnpctimer;
+ initnpctimer;
+ } else {
+ set $malaya_pintados_00,0;
+ donpcevent "Pintados Manager#pin::OnDisable";
+ }
+ end;
+OnEnable:
+ initnpctimer;
+ donpcevent "Pintados Manager#pin::OnEnableNPC";
+ announce "The 'Pintados Festival' will be held for a week in Baryo Mahiwaga.",bc_all,"0xFB9D04",FW_NORMAL,12;
+ end;
+OnDisable:
+ stopnpctimer;
+ set $malaya_pintados_00,0;
+ set $malaya_pintados_01,0;
+ set $malaya_pintados_02,0;
+ set $malaya_pintados_03,0;
+ donpcevent "Pintados Manager#pin::OnDisableNPC";
+ announce "The 'Pintados Festival' ended with great success.",bc_all,"0xFB9D04",FW_NORMAL,12;
+ end;
+OnEnableNPC:
+ set .@str$, "::OnEnable";
+OnDisableNPC:
+ if (.@str$ == "")
+ set .@str$, "::OnDisable";
+ donpcevent "Tourist#pin01"+.@str$;
+ donpcevent "Tourist#pin02"+.@str$;
+ donpcevent "Tourist#pin03"+.@str$;
+ donpcevent "Young Tattooist#pin04"+.@str$;
+ donpcevent "Tourist#pin05"+.@str$;
+ donpcevent "Drumming Young Man#pin06"+.@str$;
+ donpcevent "Drumming Young Man#pin07"+.@str$;
+ donpcevent "Drumming Young Man#pin08"+.@str$;
+ donpcevent "Beat Catching Boy#pin09"+.@str$;
+ donpcevent "Beat Catching Boy#pin10"+.@str$;
+ donpcevent "Beat Catching Boy#pin11"+.@str$;
+ end;
+}
+
+ma_fild01,179,260,2 script Festival Helper Boy#pin 4_M_BARYO_BOY,{
+ if (checkweight(1201,1) == 0 || MaxWeight - Weight < 1000) {
+ mes "Cannot proceed because you have too many items in your possession.";
+ close;
+ }
+ if ($malaya_pintados_00 == 0) {
+ if ($malaya_pintados_01 > 999 && $malaya_pintados_02 > 999 && $malaya_pintados_03 > 299) {
+ set $malaya_pintados_00,1;
+ donpcevent "Pintados Manager#pin::OnEnable";
+ emotion e_lv;
+ mes "[Isco]";
+ mes "Many adventurers helped find festival items that I returned to the village.";
+ next;
+ emotion e_ho;
+ mes "[Isco]";
+ mes "He he... Now we can hold the '^7A96E0Pintados Festival^000000'.";
+ close;
+ }
+ // fall through
+ } else {
+ mes "[Isco]";
+ mes "He he... The fun '^7A96E0Pintados Festival^000000' is in full swing.";
+ next;
+ if ($malaya_pintados_00 > 0 && $malaya_pintados_00 < 50) {
+ emotion e_ho;
+ mes "[Isco]";
+ mes "Today's the first day of the '^7A96E0Pintados Festival^000000'. The festival is held for 7 days, so have fun.";
+ close;
+ } else if ($malaya_pintados_00 > 49 && $malaya_pintados_00 < 99) {
+ mes "[Isco]";
+ mes "Oh! Did you know?";
+ mes "Village tattooists draw tattoos only during the '^7A96E0Pintados Festival^000000'.";
+ close;
+ } else if ($malaya_pintados_00 > 98 && $malaya_pintados_00 < 148) {
+ mes "[Isco]";
+ mes "Today's the third day of the '^7A96E0Pintados Festival^000000'.";
+ next;
+ mes "[Isco]";
+ mes "Villagers say that an adventurer named "+$malaya_pintados_04$+" got a tattoo at the festival.";
+ close;
+ } else if ($malaya_pintados_00 > 147 && $malaya_pintados_00 < 197) {
+ mes "[Isco]";
+ mes "Villagers say that an adventurer named "+$malaya_pintados_04$+" got a tattoo at the festival.";
+ next;
+ mes "[Isco]";
+ mes "The Tattooist is scary and doesn't draw tattoos for just anyone so the adventurer must be special.";
+ close;
+ } else if ($malaya_pintados_00 > 196 && $malaya_pintados_00 < 246) {
+ mes "[Isco]";
+ mes "An adventurer named "+$malaya_pintados_04$+" is famous in the village.";
+ next;
+ mes "[Isco]";
+ mes "Have you every seen ^FF8440Bakonawa^000000, the monster known to swallow the moon? They say he is really ferocious.";
+ close;
+ } else if ($malaya_pintados_00 > 245 && $malaya_pintados_00 < 295) {
+ emotion e_sob;
+ mes "[Isco]";
+ mes "I'm so sad. Many adventurers helped to hold the '^7A96E0Pintados Festival^000000' and now only one day is left.";
+ close;
+ } else {
+ emotion e_sob;
+ mes "[Isco]";
+ mes "Oh gosh! It's already the last day of the '^7A96E0Pintados Festival^000000'. Can't believe there won't be more festivities.";
+ close;
+ }
+ }
+ emotion e_spin;
+ mes "[Isco]";
+ mes "Oh no. What will we do with the festival coming to an end.";
+ next;
+ switch(select("What is it?:How many did you collect?:Brought back a lost belonging.")) {
+ case 1:
+ mes "[Isco]";
+ mes "There is a traditional festival held since ancient times";
+ mes "in Baryo Mahiwaga called the '^7A96E0Pintados Festival^000000'.";
+ next;
+ emotion e_otl;
+ mes "[Isco]";
+ mes "I don't think I'll make it to the festival this time.";
+ next;
+ select("Why?");
+ mes "[Isco]";
+ mes "I was going back to the village delivering 1000 Lesser Agimats, 1000 Silver Crosses, and 300 Dyestuffs as an errand from Port Malaya.";
+ next;
+ mes "[Isco]";
+ mes "But '^FF8440Bongisungisu^000000' appeared out of nowhere and took the items away from me.";
+ next;
+ select("Are you hurt?");
+ emotion e_sigh;
+ mes "[Isco]";
+ mes "Fortunately not.";
+ next;
+ mes "[Isco]";
+ mes "But I'm in deep trouble. The '^7A96E0Pintados Festival^000000' can't be held without those items. What should I do.";
+ close;
+ case 2:
+ mes "[Isco]";
+ mes "Many adventurers are helping out but only collected...";
+ next;
+ mes "[Isco]";
+ mes "Lesser Agimat "+$malaya_pintados_01+", Silver Cross "+$malaya_pintados_02+", Dyestuff "+$malaya_pintados_03+" so far.";
+ next;
+ emotion e_sigh;
+ mes "[Isco]";
+ mes "Sigh... We are still short of materials to start the '^7A96E0Pintados Festival^000000'.";
+ close;
+ case 3:
+ set .@str$, (Sex)?"Bro":"Sis";
+ break;
+ }
+ emotion e_lv;
+ mes "[Isco]";
+ mes "Oh~ Really? Wow!";
+ mes "Thanks! "+strcharinfo(0)+" "+.@str$+"!!";
+ mes "He he. What did you bring?";
+ next;
+ set .@i, select(
+ "Lesser Agimat (^FF0000"+(($malaya_pintados_01 > 999)?"Collection complete":(1000 - $malaya_pintados_01)+" short")+"^000000):"+
+ "Silver Cross (^FF0000"+(($malaya_pintados_02 > 999)?"Collection complete":(1000 - $malaya_pintados_02)+" short")+"^000000):"+
+ "Dyestuff (^FF0000"+(($malaya_pintados_03 > 299)?"Collection complete":(300 - $malaya_pintados_03)+" short")+"^000000)"
+ );
+ switch(.@i) {
+ case 1:
+ set .@item,6497; //Lesser_Agimat
+ set .@name$,"Lesser Agimats";
+ set .@total,1000;
+ break;
+ case 2:
+ set .@item,6502; //Silver_Cross
+ set .@name$,"Silver Crosses";
+ set .@total,1000;
+ break;
+ case 3:
+ setarray .@items[0],975,976,978,979,980,981,982,983;
+ set .@name$,"Dyestuffs";
+ set .@total,300;
+ break;
+ }
+ mes "[Isco]";
+ mes "Wow! "+.@str$+" You've brought "+.@name$+"!";
+ next;
+ mes "[Isco]";
+ mes "Wait. One... two...";
+ if (getd("$malaya_pintados_0"+.@i) >= .@total) {
+ mes "Eh... oh? I already have all the "+.@name$+" I need. "+.@str$+"! But thank you for helping.";
+ close;
+ }
+ if (.@i < 3) {
+ mes "I am "+(.@total - getd("$malaya_pintados_0"+.@i))+" short of "+.@name$+". How many did you bring?";
+ next;
+ switch(select("One?!:Enter quantity.")) {
+ case 1:
+ set .@amount,1;
+ mes "[Isco]";
+ mes "He he... You've brought back one.";
+ next;
+ break;
+ case 2:
+ mes "[Isco]";
+ mes "He he... I'm slow with numbers. I get lost when it's over 50. How many will you give me?";
+ next;
+ input .@amount;
+ if (.@amount < 1 || .@amount > 50) {
+ mes "[Isco]";
+ mes "Sigh~ I'm lost! I can't count if the numbers are weird.";
+ close;
+ }
+ break;
+ }
+ if (countitem(.@item) < .@amount) {
+ mes "[Isco]";
+ mes "Sigh~ "+.@str$+"! Where is the "+getitemname(.@item)+"?";
+ close;
+ }
+ } else {
+ mes "I am "+(.@total - getd("$malaya_pintados_0"+.@i))+" short of Dyestuffs. What kind of Dyestuff did you bring?";
+ next;
+ for(set .@j,0; .@j<getarraysize(.@items); set .@j,.@j+1)
+ set .@menu$, .@menu$+getitemname(.@items[.@j])+" (^FF0000"+countitem(.@items[.@j])+"^000000):";
+ set .@item, .@items[select(.@menu$)-1];
+ if (countitem(.@item) == 0) {
+ mes "[Isco]";
+ mes "Sigh~ You don't have any "+getitemname(.@item)+".";
+ close;
+ }
+ mes "[Isco]";
+ mes .@str$+"! How many Scarlet Dyestuffs can you give me from the "+countitem(.@item)+" you have?";
+ next;
+ switch(select("Enter Quantity:All")) {
+ case 1:
+ mes "[Isco]";
+ mes "He he... I'm slow with numbers. I get lost when it's over 50. How many will you give me?";
+ next;
+ input .@amount;
+ if (.@amount < 1 || .@amount > 50) {
+ mes "[Isco]";
+ mes "Sigh~ I told you I'm not good with numbers.";
+ close;
+ }
+ break;
+ case 2:
+ set .@amount, countitem(.@item);
+ break;
+ }
+ if (countitem(.@item) < .@amount) {
+ mes "[Isco]";
+ mes "Sigh... I'm short of "+getitemname(.@item)+".";
+ close;
+ }
+ }
+ delitem .@item,.@amount;
+ setd "$malaya_pintados_0"+.@i, getd("$malaya_pintados_0"+.@i)+.@amount;
+ set .@amount_left, .@total - getd("$malaya_pintados_0"+.@i);
+ mes "[Isco]";
+ mes "He he... Thanks. "+.@str$+"!";
+ if (.@amount_left <= 0)
+ mes "Whoa! We've collected all the "+.@name$+" we need. Happy~!";
+ else
+ mes "I only need "+.@amount_left+" more "+.@name$+".";
+ close;
+}
+
+ma_fild01,172,223,6 script Tattooist#pin 4_M_BARYO_OLD,{
+ if (checkweight(1201,1) == 0 || MaxWeight - Weight < 1000) {
+ mes "Cannot proceed because you have too many items in your possession.";
+ close;
+ }
+ emotion e_what;
+ mes "[Tattooist]";
+ mes "Why do you want a Tattoo?";
+ next;
+ switch(select("What is a Tattoo?:I'm curious about the effect of Tattoos.:I need a Tattoo.")) {
+ case 1:
+ mes "[Tattooist]";
+ mes "A Tattoo of a powerful monster is said to increase the ability of the holder.";
+ next;
+ select("Awesome. How can I get one?");
+ mes "[Tattooist]";
+ mes "Drawing a Tattoo is a very holy task.";
+ next;
+ mes "[Tattooist]";
+ mes "10 Ancient Grudges to protect me while I draw Tattoos.";
+ next;
+ mes "[Tattooist]";
+ mes "1 Doll that looks like a powerful monster.";
+ next;
+ mes "[Tattooist]";
+ mes "And last but not least, 1 Spirit Piece to imbue the energy of a powerful monster into the Tattoo.";
+ next;
+ select("What kind of Tattoo will you draw?");
+ mes "[Tattooist]";
+ mes "I can draw 3 kinds of Tattoos.";
+ next;
+ mes "[Tattooist]";
+ mes "Bangungot Agimat Tattoo for a powerful monster that comes from an old gigantic tree in Port Malaya.";
+ next;
+ mes "[Tattooist]";
+ mes "Bakonawa Agimat Tattoo for a huge monster that can swallow the moon.";
+ next;
+ mes "[Tattooist]";
+ mes "Buwaya Agimat Tattoo for a giant alligator that kidnaps people.";
+ next;
+ select("Where can I get the Spirit Pieces and Doll?");
+ mes "[Tattooist]";
+ mes "You can get these powerful items from Buwaya, Bangungot, and Bakonawa themselves but it won't be an easy task.";
+ next;
+ mes "[Tattooist]";
+ mes "This holy task isn't done every day. Tattoos are drawn only during the '^7A96E0Pintados Festival^000000'.";
+ close;
+ case 2:
+ mes "[Tattooist]";
+ mes "Which Tattoo's effect are you curious about?";
+ next;
+ while(1) {
+ switch (select("Bangungot Agimat Tattoo:Buwaya Agimat Tattoo:Bakonawa Agimat Tattoo:I have no questions.")) {
+ case 1:
+ mes "[Tattooist]";
+ mes "Need 10 Ancient Grudges, 1 Piece of Bangungot's Spirit, and 1 Bangungot Doll to create";
+ next;
+ mes "[Tattooist]";
+ mes "The Bangungot Agimat Tattoo holds the energy of an old gigantic tree in Port Malaya.";
+ next;
+ mes "[Tattooist]";
+ mes "Increases the effect of healing others by 4% and healing from others by 7%.";
+ next;
+ break;
+ case 2:
+ mes "[Tattooist]";
+ mes "Need 10 Ancient Grudges, 1 Piece of Buwaya's Spirit, and 1 Buwaya Doll to create";
+ next;
+ mes "[Tattooist]";
+ mes "The Buwaya Agimat Tattoo contains the energy from a giant alligator.";
+ next;
+ mes "[Tattooist]";
+ mes "Increases MATK by +7% and decreases Fixed Casting by 7%.";
+ next;
+ break;
+ case 3:
+ mes "[Tattooist]";
+ mes "Need 10 Ancient Grudges, 1 Piece of Bakonawa's Spirit, and 1 Bakonawa Doll to create";
+ next;
+ mes "[Tattooist]";
+ mes "The Bakonawa Agimat Tattoo holds the energy from a gigantic monster that can swallow the moon.";
+ next;
+ mes "[Tattooist]";
+ mes "Increases ATK by +7% and ASPD by 10%.";
+ next;
+ break;
+ case 4:
+ mes "[Tattooist]";
+ mes "Looks like you've got all the answers. Hope you enjoy your journey.";
+ close;
+ }
+ mes "[Tattooist]";
+ mes "Do you have any questions about other Tattoo effects?";
+ next;
+ }
+ case 3:
+ break;
+ }
+ if ($malaya_pintados_00 == 0) {
+ mes "[Tattooist]";
+ mes "The holy task of drawing Tattoos is only done during the '^7A96E0Pintados Festival^000000'. Sorry but looks like the festival is not on.";
+ close;
+ }
+ mes "[Tattooist]";
+ mes "You've come right on time during the '^7A96E0Pintados Festival^000000'.";
+ next;
+ mes "[Tattooist]";
+ mes "There is no time like during the holy '^7A96E0Pintados Festival^000000' to draw Tattoos.";
+ next;
+ mes "[Tattooist]";
+ mes "The festival doesn't last long so I should start drawing. What Tattoo do you need?";
+ next;
+ switch(select("I will think it over.:Bangungot Agimat Tattoo:Buwaya Agimat Tattoo:Bakonawa Agimat Tattoo")) {
+ case 1:
+ mes "[Tattooist]";
+ mes "Hope you enjoy the '^7A96E0Pintados Festival^000000'.";
+ close;
+ case 2:
+ set .@tattoo,2911; //Bangungot_Tattoo
+ set .@doll,6517; //Bangungot_Doll
+ set .@spirit,6524; //Bangungot_Spirit_Piece
+ set .@name$,"Bangungot";
+ break;
+ case 3:
+ set .@tattoo,2907; //Buwaya_Tattoo
+ set .@doll,6518; //Buwaya_Doll
+ set .@spirit,6525; //Buwaya_Spirit_Piece
+ set .@name$,"Buwaya";
+ break;
+ case 4:
+ set .@tattoo,2910; //Bakonawa_Tattoo
+ set .@doll,6516; //Bakonawa_Doll
+ set .@spirit,6523; //Bakonawa_Spirit_Piece
+ set .@name$,"Bakonawa";
+ break;
+ }
+ if (countitem(6499) < 10 || countitem(.@spirit) == 0 || countitem(.@doll) == 0) {
+ mes "[Tattooist]";
+ mes "I think you are short on materials.";
+ mes "Need 10 Ancient Grudges, 1 Piece of "+.@name$+"'s Spirit, and 1 "+.@name$+" Doll to create a ^EE1D11"+.@name$+" Agimat Tattoo^000000.";
+ close;
+ }
+ emotion e_flash;
+ mes "[Tattooist]";
+ mes "The materials are full with holy energy. I'm sure we'll get a great Tattoo using these.";
+ next;
+ mes "[Tattooist]";
+ mes "Please don't interrupt while I'm working on drawing a holy Tattoo if you want it to come out right.";
+ next;
+ mes "The Tattooist placed the Ancient Grudges around the workplace.";
+ next;
+ specialeffect EF_FLAMELAUNCHER,AREA,"Ancient Grudge#01";
+ specialeffect EF_FLAMELAUNCHER,AREA,"Ancient Grudge#02";
+ specialeffect EF_FLAMELAUNCHER,AREA,"Ancient Grudge#03";
+ specialeffect EF_FLAMELAUNCHER,AREA,"Ancient Grudge#04";
+ specialeffect EF_FLAMELAUNCHER,AREA,"Ancient Grudge#05";
+ mes "The Ancient Grudge lit up and tools starts to glow. He smiled satisfyingly at the glowing tools and materials.";
+ next;
+ mes "And then "+.@name$+" stared intensely at the doll as if to remember every detail of it in his head.";
+ next;
+ if(select("Aren't you going to start?:... ... ..") == 1) {
+ emotion e_an;
+ delitem 6499,5; //Ancient_Grudge
+ mes "[Tattooist]";
+ mes "Oh no, now you ruined it.";
+ mes "I cannot draw a Tattoo for someone like you who doesn't understand art. You can take back the remaining materials.";
+ next;
+ mes "Received back 5 Ancient Grudges, "+.@name$+" Doll, and Piece of "+.@name$+"'s Spirit.";
+ close;
+ }
+ emotion e_bzz;
+ mes "Think he will melt the doll with his eyes?";
+ next;
+ specialeffect EF_SONICBLOWHIT;
+ mes "He closed and opened his eyes slowly as if to memorize the doll in his head and then held up a glowing tool to start drawing.";
+ next;
+ mes "The "+.@name$+" Tattoo was completed almost instantly.";
+ next;
+ emotion e_an;
+ mes "But he kept on looking at each corner of the drawing as if he didn't like some of its details.";
+ next;
+ if(select("Looks good to me.:... ... ..") == 1) {
+ emotion e_an;
+ emotion e_ag;
+ delitem 6499,5; //Ancient_Grudge
+ mes "[Tattooist]";
+ mes "Ergh! I told you not to interrupt!";
+ next;
+ mes "The Tattooist ripped up the drawing irritably.";
+ next;
+ mes "[Tattooist]";
+ mes "I can't continue like this. Maybe another time. You can take back the remaining materials.";
+ next;
+ mes "Received back 5 Ancient Grudges, "+.@name$+" Doll, and Piece of "+.@name$+"'s Spirit.";
+ close;
+ }
+ mes "He looked at the drawing intensely for a long time and then nodded with a satisfied smile.";
+ next;
+ mes "Looks like he is satisfied with the "+.@name$+" drawing.";
+ next;
+ emotion e_dum;
+ mes "But now he is staring at the sky without doing anything else. What is he waiting for?";
+ next;
+ if(select("When will it be done?:... ... ..") == 1) {
+ emotion e_an;
+ emotion e_ag;
+ delitem 6499,5; //Ancient_Grudge
+ mes "[Tattooist]";
+ mes "Ergh! I told you not to interrupt!";
+ next;
+ mes "The Tattooist ripped up the drawing irritably.";
+ next;
+ mes "[Tattooist]";
+ mes "I can't continue like this. Maybe another time. You can take back the remaining materials.";
+ next;
+ mes "Received back 5 Ancient Grudges, "+.@name$+" Doll, and Piece of "+.@name$+"'s Spirit.";
+ close;
+ }
+ emotion e_dots;
+ mes "[Tattooist]";
+ mes ".";
+ next;
+ mes "[Tattooist]";
+ mes ". .";
+ next;
+ mes "[Tattooist]";
+ mes ". . .";
+ next;
+ emotion e_dots;
+ mes "[Tattooist]";
+ mes ". . . .";
+ next;
+ mes "[Tattooist]";
+ mes ". . . . .";
+ next;
+ mes "[Tattooist]";
+ mes ". . . . . .";
+ next;
+ mes "[Tattooist]";
+ mes ". . . . . . .";
+ next;
+ emotion e_flash;
+ mes "The Tattooist's eyes started to shine after staring at the sky for awhile, then he broke the Piece of "+.@name$+"'s Spirit with both his hands.";
+ next;
+ specialeffect EF_DETOXICATION;
+ mes "The Piece of "+.@name$+"'s Spirit is shattered into powder. The Tattooist's hands are glowing.";
+ next;
+ if(select("Why did you break the pieces...:... ... ..") == 1) {
+ delitem 6499,5; //Ancient_Grudge
+ delitem .@spirit,1;
+ emotion e_an;
+ emotion e_ag;
+ mes "[Tattooist]";
+ mes "Ergh! I told you not to interrupt!";
+ next;
+ mes "The glowing light from his hands faded away. He starred at his hands for a while and then ripped up the drawing irritably.";
+ next;
+ mes "[Tattooist]";
+ mes "I was this close to completing a wonderful piece but you ruined it. Not in a good mood. You can take the remaining materials.";
+ next;
+ mes "Received back 5 Ancient Grudges and the doll.";
+ close;
+ }
+ mes "He held up the powder in both hands and then blew it onto the drawing.";
+ next;
+ specialeffect EF_FLAMELAUNCHER,AREA,"Ancient Grudge#01";
+ specialeffect EF_FLAMELAUNCHER,AREA,"Ancient Grudge#02";
+ specialeffect EF_FLAMELAUNCHER,AREA,"Ancient Grudge#03";
+ specialeffect EF_FLAMELAUNCHER,AREA,"Ancient Grudge#04";
+ specialeffect EF_FLAMELAUNCHER,AREA,"Ancient Grudge#05";
+ mes "All Ancient Grudges started to burn and then the glowing light from the "+.@name$+" drawing faded away.";
+ next;
+ specialeffect EF_LIGHTSPHERE;
+ mes "Blinking light on top of the drawing.";
+ next;
+ mes "Light faded away and the "+.@name$+" drawing is no longer the simple one it was before.";
+ next;
+ mes "The "+.@name$+" drawing looks as if it is... alive.";
+ next;
+ mes "The Tattooist is finally satisfied and is all smiles.";
+ next;
+ emotion e_heh;
+ mes "[Tattooist]";
+ mes "Ha ha. It came out great.";
+ next;
+ delitem 6499,10; //Ancient_Grudge
+ delitem .@spirit,1;
+ delitem .@doll,1;
+ getitem .@tattoo,1;
+ set $malaya_pintados_04$, strcharinfo(0);
+ mes "[Tattooist]";
+ mes "I'm sorry you had to wait for a long time. But it was worth it cause I haven't created a Tattoo of this quality in a long time.";
+ next;
+ mes "[Tattooist]";
+ mes "The ^EE1D11"+.@name$+" Agimat Tattoo^000000 you've waited for is now completed.";
+ next;
+ mes "[Tattooist]";
+ mes "Hope you enjoy the '^7A96E0Pintados Festival^000000'.";
+ close;
+}
+
+ma_fild01,171,224,0 script Ancient Grudge#01 HIDDEN_WARP_NPC,{ end; }
+ma_fild01,173,224,0 duplicate(Ancient Grudge#01) Ancient Grudge#02 HIDDEN_WARP_NPC
+ma_fild01,173,223,0 duplicate(Ancient Grudge#01) Ancient Grudge#03 HIDDEN_WARP_NPC
+ma_fild01,172,222,0 duplicate(Ancient Grudge#01) Ancient Grudge#04 HIDDEN_WARP_NPC
+ma_fild01,171,223,0 duplicate(Ancient Grudge#01) Ancient Grudge#05 HIDDEN_WARP_NPC
+
+ma_fild01,192,200,8 script Tourist#pin01 1_M_MERCHANT,{
+ mes "[Tourist]";
+ mes "I came from afar and dropped everything to come and enjoy the 'Pintados Festival'.";
+ next;
+ mes "[Tourist]";
+ mes "I don't regret visiting but...";
+ next;
+ mes "[Tourist]";
+ mes "I don't like the Tattoo I got after all I've gone through to get it.";
+ next;
+ mes "[Tourist]";
+ mes "I've looked at it in the light but I think the Tattooist made a mistake.";
+ next;
+ mes "[Tourist]";
+ mes "This ruined my whole visit.";
+ next;
+ mes "[Tourist]";
+ mes "Tsk!";
+ close;
+OnInit:
+ if (!$malaya_pintados_00)
+ disablenpc "Tourist#pin01";
+ end;
+OnEnable:
+ enablenpc "Tourist#pin01";
+ end;
+OnDisable:
+ disablenpc "Tourist#pin01";
+ end;
+}
+
+ma_fild01,211,200,6 script Tourist#pin02 4_M_TWMASKMAN,{
+ mes "[Tourist]";
+ mes "I heard of the 'Pintados Festival' and came all the way from Gonryun.";
+ next;
+ mes "[Tourist]";
+ mes "Just in case you might think otherwise, this is a mask on my face and not a tattoo.";
+ close;
+OnInit:
+ if (!$malaya_pintados_00)
+ disablenpc "Tourist#pin02";
+ end;
+OnEnable:
+ enablenpc "Tourist#pin02";
+ end;
+OnDisable:
+ disablenpc "Tourist#pin02";
+ end;
+}
+
+ma_fild01,251,205,2 script Tourist#pin03 4_M_CHNOLD,{
+ mes "[Tourist]";
+ mes "Hey, hear me. This isn't the Tattoo I wanted.";
+ next;
+ mes "[Tourist]";
+ mes "I asked for a Bakonawa Tattoo but the more I look at it, this is Bangungot.";
+ next;
+ mes "[Tattooist]";
+ mes "No... you said that you wanted that one. Don't be so difficult.";
+ next;
+ mes "[Tourist]";
+ mes "Don't you know that customer is king? Huh? Do you want a bad reputation?";
+ next;
+ mes "[Tattooist]";
+ mes "Ugh... Can't believe this.";
+ close;
+OnInit:
+ if (!$malaya_pintados_00)
+ disablenpc "Tourist#pin03";
+ end;
+OnEnable:
+ enablenpc "Tourist#pin03";
+ end;
+OnDisable:
+ disablenpc "Tourist#pin03";
+ end;
+}
+
+ma_fild01,249,206,6 script Young Tattooist#pin04 4_M_MALAYA,{
+ mes "[Tattooist]";
+ mes "Ah... I can't work with customers like this.";
+ next;
+ mes "[Tattooist]";
+ mes "How many times do I have to tell you, you said you wanted a Bangungot.";
+ next;
+ mes "[Tattooist]";
+ mes "Ouch, my throat... Shouting will get me nowhere.";
+ close;
+OnInit:
+ if (!$malaya_pintados_00)
+ disablenpc "Young Tattooist#pin04";
+ end;
+OnEnable:
+ enablenpc "Young Tattooist#pin04";
+ end;
+OnDisable:
+ disablenpc "Young Tattooist#pin04";
+ end;
+}
+
+ma_fild01,162,235,6 script Tourist#pin05 4_F_CHNDRESS1,{
+ mes "[Tourist]";
+ mes "They say the Pintados Festival will only be held for one week.";
+ next;
+ mes "[Tourist]";
+ mes "I came from Louyang without knowing about the festival. Must be my lucky day.";
+ close;
+OnInit:
+ if (!$malaya_pintados_00)
+ disablenpc "Tourist#pin05";
+ end;
+OnEnable:
+ enablenpc "Tourist#pin05";
+ end;
+OnDisable:
+ disablenpc "Tourist#pin05";
+ end;
+}
+
+ma_fild01,164,234,6 script Drumming Young Man#pin06 4_M_BARYO_MAN,{
+ mes "ba-dum-DUM- ba-dum-DUM";
+ next;
+ mes "[Drumming Young Man]";
+ mes "The Pintados Festival wouldn't be a festival without a drummer.";
+ next;
+ mes "[Drumming Young Man]";
+ mes "Why don't you join?";
+ close;
+OnInit:
+ if (!$malaya_pintados_00)
+ disablenpc "Drumming Young Man#pin06";
+ end;
+OnEnable:
+ enablenpc "Drumming Young Man#pin06";
+ end;
+OnDisable:
+ disablenpc "Drumming Young Man#pin06";
+ end;
+}
+
+ma_fild01,170,231,4 script Drumming Young Man#pin07 4_M_BARYO_MAN,{
+ mes "ba-dum-DUM- ba-dum-DUM";
+ next;
+ mes "[Drumming Young Man]";
+ mes "The Pintados from Pintados Festival means painted in our language.";
+ next;
+ mes "[Drumming Young Man]";
+ mes "So that is probably why we have people drawing special Tattoos during the festival.";
+ close;
+OnInit:
+ if (!$malaya_pintados_00)
+ disablenpc "Drumming Young Man#pin07";
+ end;
+OnEnable:
+ enablenpc "Drumming Young Man#pin07";
+ end;
+OnDisable:
+ disablenpc "Drumming Young Man#pin07";
+ end;
+}
+
+ma_fild01,164,228,6 script Drumming Young Man#pin08 4_M_BARYO_MAN,{
+ mes "ba-dum-DUM- ba-dum-DUM";
+ next;
+ mes "[Drumming Young Man]";
+ mes "I don't remember it accurately, but they say the Pintados Festival was to celebrate a rich harvest.";
+ close;
+OnInit:
+ if (!$malaya_pintados_00)
+ disablenpc "Drumming Young Man#pin08";
+ end;
+OnEnable:
+ enablenpc "Drumming Young Man#pin08";
+ end;
+OnDisable:
+ disablenpc "Drumming Young Man#pin08";
+ end;
+}
+
+ma_fild01,170,234,4 script Beat Catching Boy#pin09 4_M_BARYO_BOY,{
+ mes "ba-dum-TSH- ba-dum-TSH-";
+ next;
+ mes "[Beat Catching Boy]";
+ mes "I always get energetic when I hear drums and sticks in a rhythmic beat.";
+ next;
+ mes "[Beat Catching Boy]";
+ mes "ba-dum-TSH- ba-dum-TSH- So much fun!";
+ close;
+OnInit:
+ if (!$malaya_pintados_00)
+ disablenpc "Beat Catching Boy#pin09";
+ end;
+OnEnable:
+ enablenpc "Beat Catching Boy#pin09";
+ end;
+OnDisable:
+ disablenpc "Beat Catching Boy#pin09";
+ end;
+}
+
+ma_fild01,164,231,6 script Beat Catching Boy#pin10 4_M_BARYO_BOY,{
+ mes "ba-dum-TSH- ba-dum-TSH-";
+ next;
+ mes "[Beat Catching Boy]";
+ mes "I may be using sticks to catch the beat right now but you never know if I'll grow big enough to play the drums, right?";
+ close;
+OnInit:
+ if (!$malaya_pintados_00)
+ disablenpc strnpcinfo(0);
+ end;
+OnEnable:
+ enablenpc strnpcinfo(0);
+ end;
+OnDisable:
+ disablenpc strnpcinfo(0);
+ end;
+}
+ma_fild01,170,228,4 duplicate(Beat Catching Boy#pin10) Beat Catching Boy#pin11 4_M_BARYO_BOY
diff --git a/npc/re/quests/quests_mora.txt b/npc/re/quests/quests_mora.txt
index f1d8e5784..a8697058a 100644
--- a/npc/re/quests/quests_mora.txt
+++ b/npc/re/quests/quests_mora.txt
@@ -1,12 +1,13 @@
-//===== rAthena Script =======================================
+//===== Hercules Script ======================================
//= Mora Quest NPCs
//===== By: ==================================================
//= Euphy
//===== Current Version: =====================================
-//= 1.0
-//===== Compatible With: =====================================
-//= rAthena SVN
+//= 1.1
+//===== File Encoding ========================================
+//= CP-949 (EUC-KR compatible). Do NOT read/save it as UTF-8.
//===== Description: =========================================
+//= [Official Conversion]
//= Quest NPCs related to Mora:
//== Theore's Request, Chesire's New Day,
//== Helping Lope and Euridi, Mora Daily Quests,
@@ -14,11 +15,12 @@
//===== Additional Comments: =================================
//= 0.1 NPCs are currently placeholders. [Euphy]
//= 1.0 Implemented all official quests. [Euphy]
+//= 1.1 Added GM management function and NPCs. [Euphy]
//============================================================
-// Theore's Request :: bs
+// Theore's Request :: ep14_1_bs
//============================================================
-mid_camp,148,222,4 script Theore#ep14_1_bs 982,3,3,{
+mid_camp,148,222,4 script Theore#ep14_1_bs 4_F_SCIENCE,3,3,{
if (BaseLevel < 100) {
mes "- A person with a white gown -";
mes "- is pulling at his hair. -";
@@ -444,41 +446,41 @@ OnTimer5000:
end;
}
-spl_fild02,79,104,0 duplicate(#mora_bush) Bush#ep14_1_bs1 111
-spl_fild02,79,104,0 duplicate(#mora_pouch) #ep14_1_bs1 139,2,2
-spl_fild02,79,104,6 duplicate(#mora_fairy) Fairy#cmd11 440
-spl_fild02,79,104,6 duplicate(#mora_fairy) Fairy#cmd12 445
-spl_fild02,79,104,6 duplicate(#mora_fairy) Fairy#cmd13 439
+spl_fild02,79,104,0 duplicate(#mora_bush) Bush#ep14_1_bs1 HIDDEN_NPC
+spl_fild02,79,104,0 duplicate(#mora_pouch) #ep14_1_bs1 HIDDEN_WARP_NPC,2,2
+spl_fild02,79,104,6 duplicate(#mora_fairy) Fairy#cmd11 4_F_FAIRYKID5
+spl_fild02,79,104,6 duplicate(#mora_fairy) Fairy#cmd12 4_M_FAIRYKID4
+spl_fild02,79,104,6 duplicate(#mora_fairy) Fairy#cmd13 4_F_FAIRYKID4
-spl_fild02,103,344,0 duplicate(#mora_bush) Bush#ep14_1_bs2 111
-spl_fild02,103,344,0 duplicate(#mora_pouch) #ep14_1_bs2 139,2,2
-spl_fild02,103,344,6 duplicate(#mora_fairy) Fairy#cmd21 440
-spl_fild02,103,344,6 duplicate(#mora_fairy) Fairy#cmd22 445
-spl_fild02,103,344,6 duplicate(#mora_fairy) Fairy#cmd23 439
+spl_fild02,103,344,0 duplicate(#mora_bush) Bush#ep14_1_bs2 HIDDEN_NPC
+spl_fild02,103,344,0 duplicate(#mora_pouch) #ep14_1_bs2 HIDDEN_WARP_NPC,2,2
+spl_fild02,103,344,6 duplicate(#mora_fairy) Fairy#cmd21 4_F_FAIRYKID5
+spl_fild02,103,344,6 duplicate(#mora_fairy) Fairy#cmd22 4_M_FAIRYKID4
+spl_fild02,103,344,6 duplicate(#mora_fairy) Fairy#cmd23 4_F_FAIRYKID4
-spl_fild02,261,323,0 duplicate(#mora_bush) Bush#ep14_1_bs3 111
-spl_fild02,261,323,0 duplicate(#mora_pouch) #ep14_1_bs3 139,2,2
-spl_fild02,261,323,6 duplicate(#mora_fairy) Fairy#cmd31 440
-spl_fild02,261,323,6 duplicate(#mora_fairy) Fairy#cmd32 445
-spl_fild02,261,323,6 duplicate(#mora_fairy) Fairy#cmd33 439
+spl_fild02,261,323,0 duplicate(#mora_bush) Bush#ep14_1_bs3 HIDDEN_NPC
+spl_fild02,261,323,0 duplicate(#mora_pouch) #ep14_1_bs3 HIDDEN_WARP_NPC,2,2
+spl_fild02,261,323,6 duplicate(#mora_fairy) Fairy#cmd31 4_F_FAIRYKID5
+spl_fild02,261,323,6 duplicate(#mora_fairy) Fairy#cmd32 4_M_FAIRYKID4
+spl_fild02,261,323,6 duplicate(#mora_fairy) Fairy#cmd33 4_F_FAIRYKID4
-spl_fild02,137,305,0 duplicate(#mora_bush) Bush#ep14_1_bs4 111
-spl_fild02,137,305,0 duplicate(#mora_pouch) #ep14_1_bs4 139,2,2
-spl_fild02,137,305,6 duplicate(#mora_fairy) Fairy#cmd41 440
-spl_fild02,137,305,6 duplicate(#mora_fairy) Fairy#cmd42 445
-spl_fild02,137,305,6 duplicate(#mora_fairy) Fairy#cmd43 439
+spl_fild02,137,305,0 duplicate(#mora_bush) Bush#ep14_1_bs4 HIDDEN_NPC
+spl_fild02,137,305,0 duplicate(#mora_pouch) #ep14_1_bs4 HIDDEN_WARP_NPC,2,2
+spl_fild02,137,305,6 duplicate(#mora_fairy) Fairy#cmd41 4_F_FAIRYKID5
+spl_fild02,137,305,6 duplicate(#mora_fairy) Fairy#cmd42 4_M_FAIRYKID4
+spl_fild02,137,305,6 duplicate(#mora_fairy) Fairy#cmd43 4_F_FAIRYKID4
-spl_fild02,23,196,0 duplicate(#mora_bush) Bush#ep14_1_bs5 111
-spl_fild02,23,196,0 duplicate(#mora_pouch) #ep14_1_bs5 139,2,2
-spl_fild02,23,196,6 duplicate(#mora_fairy) Fairy#cmd51 440
-spl_fild02,23,196,6 duplicate(#mora_fairy) Fairy#cmd52 445
-spl_fild02,23,196,6 duplicate(#mora_fairy) Fairy#cmd53 439
+spl_fild02,23,196,0 duplicate(#mora_bush) Bush#ep14_1_bs5 HIDDEN_NPC
+spl_fild02,23,196,0 duplicate(#mora_pouch) #ep14_1_bs5 HIDDEN_WARP_NPC,2,2
+spl_fild02,23,196,6 duplicate(#mora_fairy) Fairy#cmd51 4_F_FAIRYKID5
+spl_fild02,23,196,6 duplicate(#mora_fairy) Fairy#cmd52 4_M_FAIRYKID4
+spl_fild02,23,196,6 duplicate(#mora_fairy) Fairy#cmd53 4_F_FAIRYKID4
-spl_fild02,186,260,0 duplicate(#mora_bush) Bush#ep14_1_bs6 111
-spl_fild02,186,260,0 duplicate(#mora_pouch) #ep14_1_bs6 139,2,2
-spl_fild02,186,260,6 duplicate(#mora_fairy) Fairy#cmd61 440
-spl_fild02,186,260,6 duplicate(#mora_fairy) Fairy#cmd62 445
-spl_fild02,186,260,6 duplicate(#mora_fairy) Fairy#cmd63 439
+spl_fild02,186,260,0 duplicate(#mora_bush) Bush#ep14_1_bs6 HIDDEN_NPC
+spl_fild02,186,260,0 duplicate(#mora_pouch) #ep14_1_bs6 HIDDEN_WARP_NPC,2,2
+spl_fild02,186,260,6 duplicate(#mora_fairy) Fairy#cmd61 4_F_FAIRYKID5
+spl_fild02,186,260,6 duplicate(#mora_fairy) Fairy#cmd62 4_M_FAIRYKID4
+spl_fild02,186,260,6 duplicate(#mora_fairy) Fairy#cmd63 4_F_FAIRYKID4
- script #mora_bush_timer -1,{
end;
@@ -501,21 +503,20 @@ OnTimer600000:
donpcevent strnpcinfo(0)+"::OnDisable";
end;
}
-spl_fild02,180,1,0 duplicate(#mora_bush_timer) Bush1Timer 440
-spl_fild02,181,1,0 duplicate(#mora_bush_timer) Bush2Timer 440
-spl_fild02,182,1,0 duplicate(#mora_bush_timer) Bush3Timer 440
-spl_fild02,183,1,0 duplicate(#mora_bush_timer) Bush4Timer 440
-spl_fild02,184,1,0 duplicate(#mora_bush_timer) Bush5Timer 440
-spl_fild02,186,1,0 duplicate(#mora_bush_timer) Bush6Timer 440
+spl_fild02,180,1,0 duplicate(#mora_bush_timer) Bush1Timer 4_F_FAIRYKID5
+spl_fild02,181,1,0 duplicate(#mora_bush_timer) Bush2Timer 4_F_FAIRYKID5
+spl_fild02,182,1,0 duplicate(#mora_bush_timer) Bush3Timer 4_F_FAIRYKID5
+spl_fild02,183,1,0 duplicate(#mora_bush_timer) Bush4Timer 4_F_FAIRYKID5
+spl_fild02,184,1,0 duplicate(#mora_bush_timer) Bush5Timer 4_F_FAIRYKID5
+spl_fild02,186,1,0 duplicate(#mora_bush_timer) Bush6Timer 4_F_FAIRYKID5
-/*
-spl_fild02,187,1,0 script Field Bush Switch 440,{
+spl_fild02,187,1,0 script Field Bush Switch 4_F_FAIRYKID5,{
+ callfunc "F_GM_NPC";
donpcevent "Bush#ep14_1_bs1::OnEnable";
end;
}
-*/
-splendide,183,117,4 script Tired-looking Fairy 438,{
+splendide,183,117,4 script Tired-looking Fairy 4_F_FAIRYKID3,{
if (!isequipped(2782)) {
mes "[Tired-looking Fairy]";
mes "VeOsaRiveh No ModAsh";
@@ -619,7 +620,7 @@ splendide,183,117,4 script Tired-looking Fairy 438,{
close;
}
-splendide,119,138,4 script Kusmi#ep14_1_bs 440,{
+splendide,119,138,4 script Kusmi#ep14_1_bs 4_F_FAIRYKID5,{
if (!isequipped(2782)) {
mes "[Kusmi]";
mes "DimFusTal Mu Lars";
@@ -814,7 +815,7 @@ splendide,119,138,4 script Kusmi#ep14_1_bs 440,{
close;
}
-splendide,304,295,4 script Theodore#ep14_1_bs 445,{
+splendide,304,295,4 script Theodore#ep14_1_bs 4_M_FAIRYKID4,{
if (!isequipped(2782)) {
mes "[Theodore]";
mes "DimFusTal Mu Lars";
@@ -996,7 +997,7 @@ splendide,304,295,4 script Theodore#ep14_1_bs 445,{
close;
}
-splendide,168,301,4 script Pauchon#ep14_1_bs 439,{
+splendide,168,301,4 script Pauchon#ep14_1_bs 4_F_FAIRYKID4,{
if (!isequipped(2782)) {
mes "[Pauchon]";
mes "DimFusTal Mu Lars";
@@ -1179,7 +1180,7 @@ splendide,168,301,4 script Pauchon#ep14_1_bs 439,{
close;
}
-splendide,262,376,4 script Laphine Soldier#ep14_1 447,{
+splendide,262,376,4 script Laphine Soldier#ep14_1 4_M_FAIRYSOLDIER,{
if (!isequipped(2782)) {
mes "[Laphine Soldier]";
mes "DielFarmar Di RiniIyazser Ha mahAgolAsh U U ";
@@ -1213,7 +1214,7 @@ splendide,262,376,4 script Laphine Soldier#ep14_1 447,{
close;
}
-mora,185,163,2 script Warehouse Manager#ep14_1 516,{
+mora,185,163,2 script Warehouse Manager#ep14_1 4_M_RAFLE_GR,{
if (ep14_1_bs < 15) {
mes "[Warehouse Manager]";
mes "No, sir!";
@@ -1257,7 +1258,7 @@ mora,185,163,2 script Warehouse Manager#ep14_1 516,{
end;
}
-mora,35,119,4 script Rondo#ep14_1_bs 513,{
+mora,35,119,4 script Rondo#ep14_1_bs 4_M_DOGTRAVELER,{
mes "[Rondo]";
mes "Mora is such a mysterious place.";
mes "You can understand any language.";
@@ -1275,7 +1276,7 @@ mora,35,119,4 script Rondo#ep14_1_bs 513,{
close;
}
-mora,98,66,4 script Lilitia#ep14_1_bs 518,{
+mora,98,66,4 script Lilitia#ep14_1_bs 4_F_RAFLE_PK,{
if (ep14_1_bs > 13 && ep14_1_bs2 == 11) {
mes "[Lilitia]";
mes "Boo!!!";
@@ -1302,7 +1303,7 @@ mora,98,66,4 script Lilitia#ep14_1_bs 518,{
close;
}
-mora,139,102,2 script Humming#ep14_1_bs 515,{
+mora,139,102,2 script Humming#ep14_1_bs 4_F_DOGTRAVELER,{
if (ep14_1_bs > 13 && ep14_1_bs2 == 12) {
mes "[Humming]";
mes "Oh!";
@@ -1330,7 +1331,7 @@ mora,139,102,2 script Humming#ep14_1_bs 515,{
close;
}
-mora,55,124,2 script Jones#ep14_1_bs 495,{
+mora,55,124,2 script Jones#ep14_1_bs 4_M_MERCAT1,{
if (ep14_1_bs < 15) {
mes "[Jones]";
mes "Oh.... Darn.......";
@@ -1397,7 +1398,7 @@ mora,55,124,2 script Jones#ep14_1_bs 495,{
end;
}
-splendide,121,260,4 script Daphrer#ep14_1_bs 435,{
+splendide,121,260,4 script Daphrer#ep14_1_bs 4_F_FAIRY,{
if (!isequipped(2782)) {
mes "[Daphrer]";
mes "DRHSfhsdfGSDH FGkkmvoifk DFG DFHshfeksmn fgg FDbbd fjnnvk n skncki dfgd F FHdfkdfjkmv";
@@ -1443,9 +1444,25 @@ splendide,121,260,4 script Daphrer#ep14_1_bs 435,{
close;
}
-// Chesire's New Day :: cheshir2
+sec_in02,35,175,0 script Theore Set Guid 4_F_FAIRYKID,{
+ callfunc "F_GM_NPC";
+ switch(select("Set0:Set33:Set2_0")) {
+ case 1:
+ set ep14_1_bs,0;
+ end;
+ case 2:
+ set ep4_1_bs,3;
+ setquest 11183;
+ end;
+ case 3:
+ set ep14_1_bs2,0;
+ end;
+ }
+}
+
+// Chesire's New Day :: ep14_1_cheshir2
//============================================================
-dic_in01,262,191,0 script #ep14_1_xq02 139,0,3,{
+dic_in01,262,191,0 script #ep14_1_xq02 HIDDEN_WARP_NPC,0,3,{
end;
OnTouch:
if (ep13_3_secret > 22 && checkquest(7206) == -1) {
@@ -1478,14 +1495,14 @@ OnTouch:
end;
}
-dic_in01,260,194,4 script Cheshire#ep14_1_xq01 498,{
+dic_in01,260,194,4 script Cheshire#ep14_1_xq01 4_M_CATMAN2,{
end;
OnInit:
disablenpc "Cheshire#ep14_1_xq01";
end;
}
-dic_dun01,274,114,0 script Stacked Boxes of Goods 844,{
+dic_dun01,274,114,0 script Stacked Boxes of Goods CLEAR_NPC,{
if (checkweight(1201,1) == 0 || MaxWeight - Weight < 1000) {
mes "- You have too many items to do this quest. -";
close;
@@ -1539,7 +1556,7 @@ dic_dun01,274,114,0 script Stacked Boxes of Goods 844,{
end;
}
-bif_fild01,335,168,3 script Cheshire#ep14_1_xq04 497,{
+bif_fild01,335,168,3 script Cheshire#ep14_1_xq04 4_M_CATMAN1,{
if (checkweight(1201,1) == 0 || MaxWeight - Weight < 1000) {
mes "- You have too many items to do this quest. -";
close;
@@ -1836,7 +1853,7 @@ L_CheckPlaytime:
return;
}
-dicastes02,125,192,0 script #call_cheshir_ep14 139,0,3,{
+dicastes02,125,192,0 script #call_cheshir_ep14 HIDDEN_WARP_NPC,0,3,{
end;
OnTouch:
if (ep13_3_secret > 22) {
@@ -1855,7 +1872,7 @@ OnTouch:
end;
}
-dicastes02,103,190,3 script Cheshire#ep14_extra 497,{
+dicastes02,103,190,3 script Cheshire#ep14_extra 4_M_CATMAN1,{
if (ep13_3_secret > 22) {
cutin "ep13_cheshire",1;
mes "[Cheshire]";
@@ -1935,9 +1952,9 @@ OnTimer600000:
end;
}
-// Helping Lope and Euridi :: rofe
+// Helping Lope and Euridi :: ep14_1_rofe
//============================================================
-mora,117,66,3 script Euridi#pa 521,{
+mora,117,66,3 script Euridi#pa 4_F_MORAFINE2,{
if (BaseLevel < 100) {
mes "[Euridi]";
mes "You are very delicate.";
@@ -2063,7 +2080,11 @@ mora,117,66,3 script Euridi#pa 521,{
mes "Euridi is standing staring blankly like someone who wasn't all there.";
mes "Let's go show the letter to Pitt.";
changequest 1112,1113;
- delitem 6383,30; //Clue_Of_Lope
+
+ //delitem 6383,30; //Clue_Of_Lope
+ set .@count, countitem(6383);
+ if (.@count) delitem 6383,((.@count > 30)?30:.@count); //Clue_Of_Lope
+
set ep14_1_rope,5;
close;
} else if (ep14_1_rope == 5) {
@@ -2106,7 +2127,10 @@ mora,117,66,3 script Euridi#pa 521,{
mes "She starts to sing in a strained voice, still crying.";
changequest 1116,1117;
set ep14_1_rope,10;
- delitem 6384,1; //Ring_Of_Lope
+
+ //delitem 6384,1; //Ring_Of_Lope
+ if (countitem(6384)) delitem 6384,1; //Ring_Of_Lope
+
close;
}
} else if (ep14_1_rope > 9) {
@@ -2116,7 +2140,7 @@ mora,117,66,3 script Euridi#pa 521,{
}
}
-mora,115,68,3 script Euridi's Friend#pa 520,{
+mora,115,68,3 script Euridi's Friend#pa 4_F_MORAFINE1,{
if (ep14_1_rope < 2) {
mes "[Euridi's Friend]";
mes "Please stop Euridi.";
@@ -2216,7 +2240,7 @@ mora,115,68,3 script Euridi's Friend#pa 520,{
}
}
-mora,65,145,3 script Pitt#pa 519,{
+mora,65,145,3 script Pitt#pa 4_M_LYINGDOG,{
if (ep14_1_rope == 0) {
mes "[Pitt]";
mes "So you're quite good,";
@@ -2364,7 +2388,7 @@ mora,65,145,3 script Pitt#pa 519,{
}
}
-bif_fild01,132,338,3 script Lope#pa 461,2,2,{
+bif_fild01,132,338,3 script Lope#pa 4_M_FAIRYSOLDIER2,2,2,{
if (ep14_1_rope < 8) {
mes "[Suspicious Man]";
mes "......";
@@ -2439,14 +2463,14 @@ bif_fild01,132,338,3 script Lope#pa 461,2,2,{
}
end;
OnEnable:
- setnpcdisplay "Lope#pa",999;
+ setnpcdisplay "Lope#pa", 4_M_MUT1;
end;
OnDisable:
disablenpc "Lope#pa";
initnpctimer;
end;
OnReset:
- setnpcdisplay "Lope#pa",461;
+ setnpcdisplay "Lope#pa", 4_M_FAIRYSOLDIER2;
enablenpc "Lope#pa";
end;
OnTimer2000:
@@ -2482,9 +2506,9 @@ OnTouch:
}
}
-// Find the Research Tools :: muk
+// Find the Research Tools :: ep14_1_muk
//============================================================
-mora,31,138,6 script Raffle Researcher#ep14 522,{
+mora,31,138,6 script Raffle Researcher#ep14 4_M_RAFLE_OR,{
if (checkweight(1201,1) == 0 || MaxWeight - Weight < 500) {
mes "^FF0000- Warning message -";
mes "- Hang on there!! -";
@@ -3360,26 +3384,26 @@ L_ShowReport:
mes "[Experimental Results]";
mes "*** Researcher - Inffle";
mes "*** Research Assistant - "+strcharinfo(0);
- mes "¡¡";
+ mes " ";
mes "<Research topic>";
mes "*** Bath of Mora Village";
- mes "¡¡";
+ mes " ";
mes "<Aim>";
mes "To investigate the mysterious power of the bath water";
mes "and to find out ways to better utilize";
mes "the water.";
- mes "¡¡";
+ mes " ";
mes "<Methods>";
mes "1. Obtained an unidentified DNA sample.";
mes "Obtained a sample of an unidentified DNA,";
mes "and collected more samples to look further into it.";
- mes "¡¡";
+ mes " ";
mes "2. A comparison analysis on the unidentified DNA";
mes "Concluded that the DNA belongs to";
mes "an unidentified creature living in the bath water.";
mes "combine and result in";
mes "from the swordfish DNA.";
- mes "¡¡";
+ mes " ";
mes "3. Research on the puddles around the village";
mes "From the four puddles around the village,";
mes "confirmed that the testing substances were";
@@ -3387,9 +3411,9 @@ L_ShowReport:
mes "It is thought that the four puddles";
mes "combine and result in";
mes "the mysterious power.";
- mes "¡¡";
+ mes " ";
mes "<Material analysis>";
- mes "*** Temperature ***** 33.5° ";
+ mes "*** Temperature ***** 33.5¡Æ";
mes "*** PH ************ 9.8";
mes "*** Solid residues *** 176";
mes "*** K+ ************ 0,23";
@@ -3422,7 +3446,7 @@ L_CheckWeight:
return;
}
-mora,114,79,0 script Black Shadow#ep14_muk 844,{
+mora,114,79,0 script Black Shadow#ep14_muk CLEAR_NPC,{
if (checkweight(1201,1) == 0 || MaxWeight - Weight < 500) {
mes "^FF0000- Warning message -";
mes "- Hang on there!! -";
@@ -4160,7 +4184,7 @@ OnTimer20000:
OnTimer30000:
OnTimer40000:
OnTimer50000:
- if (rand(2))
+ if (rand(2))
donpcevent strnpcinfo(0)+"::OnEnable";
end;
OnTimer60000:
@@ -4187,11 +4211,11 @@ OnTouch:
end;
}
}
-mora,108,86,0 duplicate(???#mora) ???#ep14_muk01 844,2,2
-mora,107,82,0 duplicate(???#mora) ???#ep14_muk02 844,2,2
-mora,113,84,0 duplicate(???#mora) ???#ep14_muk03 844,2,2
-mora,116,81,0 duplicate(???#mora) ???#ep14_muk04 844,2,2
-mora,118,86,0 duplicate(???#mora) ???#ep14_muk05 844,2,2
+mora,108,86,0 duplicate(???#mora) ???#ep14_muk01 CLEAR_NPC,2,2
+mora,107,82,0 duplicate(???#mora) ???#ep14_muk02 CLEAR_NPC,2,2
+mora,113,84,0 duplicate(???#mora) ???#ep14_muk03 CLEAR_NPC,2,2
+mora,116,81,0 duplicate(???#mora) ???#ep14_muk04 CLEAR_NPC,2,2
+mora,118,86,0 duplicate(???#mora) ???#ep14_muk05 CLEAR_NPC,2,2
- script #mora_puddle -1,{
set .@i, atoi(charat(strnpcinfo(2),9));
@@ -4327,14 +4351,14 @@ mora,118,86,0 duplicate(???#mora) ???#ep14_muk05 844,2,2
mes "You see a puddle with a calm surface.";
close;
}
-bif_fild02,315,285,0 duplicate(#mora_puddle) Puddle#ep14_muk01 844
-bif_fild02,65,109,0 duplicate(#mora_puddle) Puddle#ep14_muk02 844
-bif_fild02,223,71,0 duplicate(#mora_puddle) Puddle#ep14_muk03 844
-bif_fild02,113,340,0 duplicate(#mora_puddle) Puddle#ep14_muk04 844
+bif_fild02,315,285,0 duplicate(#mora_puddle) Puddle#ep14_muk01 CLEAR_NPC
+bif_fild02,65,109,0 duplicate(#mora_puddle) Puddle#ep14_muk02 CLEAR_NPC
+bif_fild02,223,71,0 duplicate(#mora_puddle) Puddle#ep14_muk03 CLEAR_NPC
+bif_fild02,113,340,0 duplicate(#mora_puddle) Puddle#ep14_muk04 CLEAR_NPC
-// Mora Daily Quests :: dealer
+// Mora Daily Quests :: ep14_1_dealer
//============================================================
-mora,133,80,6 script Elephantine#pa0829 509,{
+mora,133,80,6 script Elephantine#pa0829 4_ELEPHANT,{
if (checkweight(1201,1) == 0) {
mes "You have too many kinds of things with you to do that. Throw out some of them and try again.";
close;
@@ -4442,7 +4466,7 @@ mora,133,80,6 script Elephantine#pa0829 509,{
close;
}
-mora,115,98,8 script Hotcha#pa0829 509,{
+mora,115,98,8 script Hotcha#pa0829 4_ELEPHANT,{
if (checkweight(1201,1) == 0) {
mes "You have too many kinds of things with you to do that. Throw out some of them and try again.";
close;
@@ -4517,7 +4541,7 @@ mora,115,98,8 script Hotcha#pa0829 509,{
close;
}
-mora,119,103,4 script Bow-wow#pa0829 513,{
+mora,119,103,4 script Bow-wow#pa0829 4_M_DOGTRAVELER,{
if (checkweight(1201,1) == 0) {
mes "You have too many kinds of things with you to do that. Throw out some of them and try again.";
close;
@@ -4625,7 +4649,7 @@ mora,119,103,4 script Bow-wow#pa0829 513,{
close;
}
-mora,119,118,4 script General Good Dealer#pa0 516,{
+mora,119,118,4 script General Good Dealer#pa0 4_M_RAFLE_GR,{
if (checkweight(1201,1) == 0) {
mes "You have too many kinds of things with you to do that. Throw out some of them and try again.";
close;
@@ -4713,7 +4737,7 @@ L_CheckQuest:
return;
}
-mora,124,108,7 script Woof-grrr#pa0829 514,{
+mora,124,108,7 script Woof-grrr#pa0829 4_M_DOGTRAVELER2,{
if (checkweight(1201,1) == 0) {
mes "You have too many kinds of things with you to do that. Throw out some of them and try again.";
close;
@@ -4821,7 +4845,7 @@ mora,124,108,7 script Woof-grrr#pa0829 514,{
close;
}
-mora,127,112,4 script Commodities Dealer#pa08 518,{
+mora,127,112,4 script Commodities Dealer#pa08 4_F_RAFLE_PK,{
if (checkweight(1201,1) == 0) {
mes "You have too many kinds of things with you to do that. Throw out some of them and try again.";
close;
@@ -4909,7 +4933,7 @@ L_CheckQuest:
return;
}
-mora,170,101,4 script Soul Guide#pa0829 515,{
+mora,170,101,4 script Soul Guide#pa0829 4_F_DOGTRAVELER,{
if (checkweight(1201,1) == 0) {
mes "You have too many kinds of things with you to do that. Throw out some of them and try again.";
close;
@@ -5034,19 +5058,19 @@ mora,170,101,4 script Soul Guide#pa0829 515,{
close;
}
-mora,131,165,7 script Wandering Customer#pa082 520,{
+mora,131,165,7 script Wandering Customer#pa082 4_F_MORAFINE1,{
mes "[Wandering Customer]";
mes "I don't know whether to believe this art dealer... He made me stand here like this for days.... Ah... I feel dizzy.";
close;
}
-mora,125,174,2 script A Random Customer#pa0829 520,{
+mora,125,174,2 script A Random Customer#pa0829 4_F_MORAFINE1,{
mes "[Naive Customer]";
mes "I don't know when carving my pendant will be completed. Since he is a reliable art dealer, I suppose he won't break my pendant.";
close;
}
-mora,104,172,7 script Victim#pa0829 520,{
+mora,104,172,7 script Victim#pa0829 4_F_MORAFINE1,{
mes "[Victim]";
mes "You Bastard! I want my rugged outwear! That was passed on to me by my father *SOB*";
next;
@@ -5054,6 +5078,26 @@ mora,104,172,7 script Victim#pa0829 520,{
close;
}
+sec_in02,29,34,5 script Initializing Mora Sanjo 4_MAN_NITT,{
+ callfunc "F_GM_NPC";
+ mes "Enter your password";
+ if (callfunc("F_GM_NPC","1854",1) == 0) {
+ mes "Hehe";
+ close;
+ } else {
+ mes "[Initialization]";
+ mes "14.1 Initializing all quest window include related daily quest and map and so on";
+ freeloop(1);
+ for(set .@i,12225; .@i<=12353; set .@i,.@i+1) {
+ if (checkquest(.@i) > -1)
+ erasequest .@i;
+ }
+ freeloop(0);
+ set ep14_1_mistwoods,10;
+ close;
+ }
+}
+
// Mora Daily Quests - Souls :: md_cadaver_in
//============================================================
// callfunc "mora_remains",<quest ID>,<NPC name>,<Mora Coin amount>,<reward ID>,<max reward amount>;
@@ -5081,20 +5125,20 @@ function script mora_remains {
mes "You see traces of recent digging.";
close;
}
-1@mist,132,100,0 script Tazaar's Remains#33 844,{ callfunc "mora_remains",12243,"Tazaar",6,526,3; } //Royal_Jelly
-1@mist,102,242,0 script Naizar's Remains#33 844,{ callfunc "mora_remains",12244,"Naizar",5,942,17; } //Yoyo_Tail
-1@mist,145,245,0 script Meshir's Remains#33 844,{ callfunc "mora_remains",12245,"Meshir",5,943,4; } //Solid_Shell
-1@mist,196,276,0 script Noirit's Remains#33 844,{ callfunc "mora_remains",12246,"Noirit",6,549,3; } //Nice_Sweet_Potato
-1@mist,304,327,0 script Pajama God's Remains#33 844,{ callfunc "mora_remains",12247,"Pajama God",5,945,18; } //Raccoon_Leaf
-1@mist,334,287,0 script Mendel's Remains#33 844,{ callfunc "mora_remains",12248,"Mendel",7,946,31; } //Snail's_Shell
-1@mist,330,177,0 script Milebit's Remains#33 844,{ callfunc "mora_remains",12249,"Milebit",5,7008,17; } //Stiff_Horn
-1@mist,284,84,0 script Kunmun's Remains#33 844,{ callfunc "mora_remains",12250,"Kunmun",4,6380,20; } //Mora_Coin
-1@mist,170,54,0 script Tsaihokin's Remains#33 844,{ callfunc "mora_remains",12251,"Tsaihokin",2,929,5; } //Immortal_Heart
-1@mist,118,43,0 script Tuar's Remains#33 844,{ callfunc "mora_remains",12252,"Tuar",3,6380,20; } //Mora_Coin
+1@mist,132,100,0 script Tazaar's Remains#33 CLEAR_NPC,{ callfunc "mora_remains",12243,"Tazaar",6,526,3; } //Royal_Jelly
+1@mist,102,242,0 script Naizar's Remains#33 CLEAR_NPC,{ callfunc "mora_remains",12244,"Naizar",5,942,17; } //Yoyo_Tail
+1@mist,145,245,0 script Meshir's Remains#33 CLEAR_NPC,{ callfunc "mora_remains",12245,"Meshir",5,943,4; } //Solid_Shell
+1@mist,196,276,0 script Noirit's Remains#33 CLEAR_NPC,{ callfunc "mora_remains",12246,"Noirit",6,549,3; } //Nice_Sweet_Potato
+1@mist,304,327,0 script Pajama God's Remains#33 CLEAR_NPC,{ callfunc "mora_remains",12247,"Pajama God",5,945,18; } //Raccoon_Leaf
+1@mist,334,287,0 script Mendel's Remains#33 CLEAR_NPC,{ callfunc "mora_remains",12248,"Mendel",7,946,31; } //Snail's_Shell
+1@mist,330,177,0 script Milebit's Remains#33 CLEAR_NPC,{ callfunc "mora_remains",12249,"Milebit",5,7008,17; } //Stiff_Horn
+1@mist,284,84,0 script Kunmun's Remains#33 CLEAR_NPC,{ callfunc "mora_remains",12250,"Kunmun",4,6380,20; } //Mora_Coin
+1@mist,170,54,0 script Tsaihokin's Remains#33 CLEAR_NPC,{ callfunc "mora_remains",12251,"Tsaihokin",2,929,5; } //Immortal_Heart
+1@mist,118,43,0 script Tuar's Remains#33 CLEAR_NPC,{ callfunc "mora_remains",12252,"Tuar",3,6380,20; } //Mora_Coin
-// Knights of the Neighborhood :: mora_knight
+// Knights of the Neighborhood :: ep14_1_mora_knight
//============================================================
-mora,118,166,6 script Knights Chief#mo 525,{
+mora,118,166,6 script Knights Chief#mo 4_F_RAFLE_VI,{
mes "[Order of the Knights Chief]";
mes "We are the legendary order of the Neighborhood Knights, founded just five minutes ago!";
next;
@@ -5110,7 +5154,7 @@ mora,118,166,6 script Knights Chief#mo 525,{
close;
}
-mora,116,165,5 script Knights Boss#mo 524,{
+mora,116,165,5 script Knights Boss#mo 4_M_RAFLE_VI,{
set .@playtime, checkquest(1119,PLAYTIME);
if (.@playtime == 0 || .@playtime == 1) {
mes "[Order of the Knights Boss]";
@@ -5172,7 +5216,7 @@ mora,116,165,5 script Knights Boss#mo 524,{
}
}
-mora,114,163,5 script Knights Head#mo 522,{
+mora,114,163,5 script Knights Head#mo 4_M_RAFLE_OR,{
if (checkweight(6380,1) == 0) {
mes "[Order of the Knights Head]";
mes "You have a lot of things with you!";
@@ -5300,7 +5344,7 @@ mora,114,163,5 script Knights Head#mo 522,{
end;
}
-mora,112,161,5 script Knights Leader#mo 523,{
+mora,112,161,5 script Knights Leader#mo 4_F_RAFLE_YE,{
mes "[Order of the Knights Leader]";
mes "I'm the Leader of the Order -";
mes "you can tell me.";
diff --git a/npc/re/quests/quests_morocc.txt b/npc/re/quests/quests_morocc.txt
new file mode 100644
index 000000000..480618a70
--- /dev/null
+++ b/npc/re/quests/quests_morocc.txt
@@ -0,0 +1,246 @@
+//===== Hercules Script ======================================
+//= Morroc Quest NPCs
+//===== By: ==================================================
+//= Euphy
+//===== Current Version: =====================================
+//= 1.1
+//===== Description: =========================================
+//= [Official Conversion]
+//= Quest NPCs related to Morroc.
+//===== Additional Comments: =================================
+//= 1.0 First Version.
+//= 1.0a Gathered remaining dialogues. [Euphy]
+//= 1.1 Added new warpers for Satan Morroc maps. [Euphy]
+//============================================================
+
+// Resurrection of Satan Morroc
+// ============================================================
+- script Continental Guard#man -1,{
+ mes "[Continental Guard]";
+ mes "We've received orders from Headquarters to block access to this area since an unusual space-time phenomenon has been detected.";
+ next;
+ mes "[Continental Guard]";
+ mes "If you really want to go to the next area, you'll be responsible for your own safety.";
+ next;
+ switch(select("Nevermind.:Enter the Field.")) {
+ case 1:
+ mes "[Continental Guard]";
+ mes "Wise choice.";
+ mes "Have a safe journey.";
+ close;
+ case 2:
+ mes "[Continental Guard]";
+ mes "I see.";
+ mes "I'll send you to the field shortly.";
+ close2;
+ warp "moc_fild20",208,207;
+ end;
+ }
+}
+moc_fild07,380,202,1 duplicate(Continental Guard#man) Continental Guard#man1 4_M_EIN_SOLDIER
+moc_fild11,189,360,6 duplicate(Continental Guard#man) Continental Guard#man2 4_M_EIN_SOLDIER
+prt_fild10,263,23,1 duplicate(Continental Guard#man) Continental Guard#man3 4_M_EIN_SOLDIER
+prt_fild09,95,19,1 duplicate(Continental Guard#man) Continental Guard#man4 4_M_EIN_SOLDIER
+prt_fild09,246,17,1 duplicate(Continental Guard#man) Continental Guard#man5 4_M_EIN_SOLDIER
+moc_fild13,32,171,6 duplicate(Continental Guard#man) Continental Guard#man6 4_M_EIN_SOLDIER
+moc_fild16,124,381,4 duplicate(Continental Guard#man) Continental Guard#man7 4_M_EIN_SOLDIER
+moc_fild16,333,380,4 duplicate(Continental Guard#man) Continental Guard#man8 4_M_EIN_SOLDIER
+moc_fild01,84,19,1 duplicate(Continental Guard#man) Continental Guard#man9 4_M_EIN_SOLDIER
+
+// Pyramids Nightmare Mode
+//============================================================
+moc_prydb1,103,54,3 script Suspicious Cat#night 4_CAT_SAILOR4,{
+ mes "[Suspicious Cat]";
+ mes "I can't believe a mummy could do this to me. Oh man, it hurts. Nobody should find out about this....";
+ next;
+ if(select("Mummy? What happened?:Pretend not to know anything.") == 2)
+ close;
+ mes "[Suspicious Cat]";
+ mes "You caught me! Darn it...I didn't expect my reputation as a tomb raider would get damaged like this...";
+ next;
+ mes "[Suspicious Cat]";
+ mes "But come on, they're so strange! They're mummies! Just mummies, you know? They shouldn't be that strong!";
+ next;
+ if(select("Strong mummies? Where are they?:End the conversation.") == 2) {
+ mes "[Suspicious Cat]";
+ mes "Whaaat~ you don't want to hear my story? Fine! You'd better not mention my name anywhere else!";
+ close;
+ }
+ mes "[Suspicious Cat]";
+ mes "Haha, it's a secret.";
+ mes "I found out while I was stealing... No, I mean, just walking through the pyramid.";
+ next;
+ mes "[Suspicious Cat]";
+ mes "When I saw a mummy coming toward me, I was like 'whatever' and didn't care. But then he knocked me down with a slap in the face! How could he do that to a cute cat like me! You bandaged freak... you just wait and see!";
+ next;
+ if(select("I would like to go, too.:End the conversation.") == 2)
+ close;
+ mes "[Suspicious Cat]";
+ mes "No way! I spent so much time finding that path!!";
+ next;
+ mes "[Suspicious Cat]";
+ mes "Hmm... but if you insist, just give me 5000 Zeny. I'll lead you.";
+ mes "What~? Don't give me that look! Do you have any idea how hard it is for a cat to survive in Midgard!";
+ next;
+ mes "[Suspicious Cat]";
+ mes "^FF0000But come to think of it, a weakling like you won't survive there. Maybe for a second if you're lucky?^000000";
+ mes "Well, it's none of my business. But I warned you anyway!";
+ next;
+ switch(select("Pay 5,000 zeny and set out.:Forget it.")) {
+ case 1:
+ if (Zeny < 5000) {
+ mes "[Suspicious Cat]";
+ mes "Where do you think you're going! You're so broke!";
+ close;
+ }
+ Zeny -= 5000;
+ mes "[Suspicious Cat]";
+ mes "Bah, what's up with this old money... you don't have anything sparkly or shiny?!";
+ mes "Ahh, just follow me!";
+ close2;
+ warp "moc_prydn1",93,96;
+ end;
+ case 2:
+ mes "[Suspicious Cat]";
+ mes "Gosh, you don't even have 5000 Zeny, do you?";
+ close;
+ }
+}
+
+moc_prydn1,94,98,3 script Suspicious Cat#night2 4_CAT_SAILOR4,{
+ mes "[Suspicious Cat]";
+ mes "That stupid mummy slapped me again while you were looking away! Sniff sniff... Let's go back, meow!";
+ next;
+ switch(select("Go back to Thief Guild:Eliminate Verit:Eliminate Ancient Mummy:It's nothing")) {
+ case 1:
+ mes "[Suspicious Cat]";
+ mes "Right right... let's go back.";
+ close2;
+ warp "moc_prydb1",100,57;
+ end;
+ case 2:
+ set .@playtime, checkquest(2290,PLAYTIME);
+ if (.@playtime == 0 || .@playtime == 1) {
+ mes "[Suspicious Cat]";
+ mes "Look at that Verit, he's afraid of us! Kyaahaha! We're safe, at least for a while!";
+ close;
+ } else if (.@playtime == 2)
+ erasequest 2290;
+ set .@hunting, checkquest(2289,HUNTING);
+ if (.@hunting == -1) {
+ mes "[Suspicious Cat]";
+ mes "Did you know that cats and dogs don't get along?";
+ next;
+ mes "[Suspicious Cat]";
+ mes "Look at that ugly and hideous Verit. He's scowling, wagging his tail and trying to come closer.";
+ mes "Oh, you don't have a tail, right? He thinks I'm a thorn in his side, and he's trying to start a fight now!";
+ next;
+ mes "[Suspicious Cat]";
+ mes "Look at him, so greedy and drooly... I don't like the way he breathes, either. I can't stand how he's making those gobbling sounds...";
+ mes "It's so obvious that he's waiting to attack me from behind.";
+ next;
+ mes "[Suspicious Cat]";
+ mes "Gosh, I could have scratched his face so hard if it wasn't for my stomachache!";
+ mes "Hey, it's not because I'm afraid of Majoruros!";
+ next;
+ mes "[Suspicious Cat]";
+ mes "If you want to go home, you'd better beat up that ugly doggie! Otherwise, he'll bite you!";
+ next;
+ switch(select("Help him:Stay away")) {
+ case 1:
+ mes "[Suspicious Cat]";
+ mes "Good, the target number is 20! Good luck!";
+ setquest 2289;
+ close;
+ case 2:
+ mes "[Suspicious Cat]";
+ mes "Pah! You don't care about me? Fine, you traitor!";
+ close;
+ }
+ } else if (.@hunting == 0 || .@hunting == 1) {
+ mes "[Suspicious Cat]";
+ mes "Is Verit's training going well?";
+ next;
+ switch(select("Sure.:I want to stop.")) {
+ case 1:
+ mes "[Suspicious Cat]";
+ mes "Good. Keep up the good work!";
+ close;
+ case 2:
+ mes "[Suspicious Cat]";
+ mes "What? You're so irresponsible!";
+ erasequest 2289;
+ close;
+ }
+ } else if (.@hunting == 2) {
+ mes "[Suspicious Cat]";
+ mes "Hey, you're actually useful! Good job!";
+ mes "That Verit wouldn't dare come around here for a while, right? Muhahah!";
+ changequest 2289,2290;
+ getexp 300000,100000;
+ close;
+ }
+ case 3:
+ set .@playtime, checkquest(2291,PLAYTIME);
+ if (.@playtime == 0 || .@playtime == 1) {
+ mes "[Suspicious Cat]";
+ mes "Good, I'll make a good use of the time you gained! But I gotta do something about this stomachache first.....";
+ close;
+ } else if (.@playtime == 2)
+ erasequest 2291;
+ set .@hunting, checkquest(2292,HUNTING);
+ if (.@hunting == -1) {
+ mes "[Suspicious Cat]";
+ mes "Precious treasures are supposed to be hidden in the deep secret places here!";
+ mes "I'm sure the mummy's precious treasures are hidden in the second basement level.";
+ next;
+ mes "[Suspicious Cat]";
+ mes "But Ancient Mummies caught me off guard and hit my head before I knew it!";
+ next;
+ mes "[Suspicious Cat]";
+ mes "I'm sure they're trying to stop me from finding the treasures by decreasing my superior brain cells!!";
+ next;
+ mes "[Suspicious Cat]";
+ mes "They can't stop me! Let's go get rid of Ancient Mummies!!";
+ next;
+ mes "[Suspicious Cat]";
+ mes "Don't ask why! I'm sure you wouldn't want those beautiful treasures to be hidden in the dark either!";
+ next;
+ switch(select("Help him:Stay away")) {
+ case 1:
+ mes "[Suspicious Cat]";
+ mes "Alright, the target number is 20! Good luck!";
+ setquest 2292;
+ close;
+ case 2:
+ mes "[Suspicious Cat]";
+ mes "Bah, you're so cold-hearted.";
+ close;
+ }
+ } else if (.@hunting == 0 || .@hunting == 1) {
+ mes "[Suspicious Cat]";
+ mes "Is fighting Ancient Mummies going well?";
+ next;
+ switch(select("Sure.:I want to stop.")) {
+ case 1:
+ mes "[Suspicious Cat]";
+ mes "Good. Keep up the good work!";
+ close;
+ case 2:
+ mes "[Suspicious Cat]";
+ mes "What? You're so irresponsible!";
+ erasequest 2292;
+ close;
+ }
+ } else if (.@hunting == 2) {
+ mes "[Suspicious Cat]";
+ mes "Hey, you're actually useful! Good job!";
+ mes "That Ancient Mummy wouldn't dare come around here for a while, right? Muhahah!";
+ changequest 2292,2291;
+ getexp 600000,200000;
+ close;
+ }
+ case 4:
+ close;
+ }
+}
diff --git a/npc/re/quests/quests_nameless.txt b/npc/re/quests/quests_nameless.txt
new file mode 100644
index 000000000..04f138d2f
--- /dev/null
+++ b/npc/re/quests/quests_nameless.txt
@@ -0,0 +1,15 @@
+//===== Hercules Script ======================================
+//= Nameless Island Quests
+//===== By: ==================================================
+//= Euphy
+//===== Current Version: =====================================
+//= 1.0
+//===== Description: =========================================
+//= [Official Conversion]
+//= Contains:
+//= - Muff's Loan
+//===== Additional Comments: =================================
+//= 1.0 Moved Dorian to pre-re/re paths.
+//============================================================
+
+izlude_in,57,92,3 duplicate(Dorian_izlude) Dorian 4_M_OILMAN,2,2
diff --git a/npc/re/quests/quests_veins.txt b/npc/re/quests/quests_veins.txt
index 3478fe16b..707516b4e 100644
--- a/npc/re/quests/quests_veins.txt
+++ b/npc/re/quests/quests_veins.txt
@@ -1,15 +1,13 @@
//===== Hercules Script ======================================
//= Quest NPCs located in Veins
-//===== By: ==================================================
+//===== By: ==================================================
//= Euphy
-//===== Current Version: =====================================
+//===== Current Version: =====================================
//= 1.0
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Description: =========================================
//= Quests related to Veins.
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First version.
-//============================================================
+//============================================================
-ve_fild02,337,314,4 duplicate(WincingOldMan_veins) Wincing Old Man#ve 945 \ No newline at end of file
+ve_fild02,337,314,4 duplicate(WincingOldMan_veins) Wincing Old Man#ve 4_M_DST_GRAND
diff --git a/npc/re/quests/skills/sage_skills.txt b/npc/re/quests/skills/sage_skills.txt
deleted file mode 100644
index 64ebe20e3..000000000
--- a/npc/re/quests/skills/sage_skills.txt
+++ /dev/null
@@ -1,53 +0,0 @@
-//===== Hercules Script ======================================
-//= Sage Quest Skill's related NPCs
-//===== By: ==================================================
-//= Zopokx
-//===== Current Version: =====================================
-//= 1.0
-//===== Description: =========================================
-//= Morocc/Payon Solution duplicate NPCs for Sage Quest Skill
-//===== Additional Comments: =================================
-//= 1.0 First version
-//============================================================
-
-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;
-}
-
-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;
-}
diff --git a/npc/re/scripts.conf b/npc/re/scripts.conf
index c1e40dae6..1e5f28ed8 100644
--- a/npc/re/scripts.conf
+++ b/npc/re/scripts.conf
@@ -10,13 +10,16 @@ npc: npc/re/cities/alberta.txt
npc: npc/re/cities/brasilis.txt
npc: npc/re/cities/dewata.txt
npc: npc/re/cities/dicastes.txt
+npc: npc/re/cities/eclage.txt
npc: npc/re/cities/izlude.txt
npc: npc/re/cities/jawaii.txt
npc: npc/re/cities/malangdo.txt
npc: npc/re/cities/malaya.txt
npc: npc/re/cities/mora.txt
+npc: npc/re/cities/yuno.txt
// --------------------------- Guides ---------------------------
+npc: npc/re/guides/navigation.txt
npc: npc/re/guides/guides_alberta.txt
npc: npc/re/guides/guides_aldebaran.txt
npc: npc/re/guides/guides_amatsu.txt
@@ -25,6 +28,7 @@ npc: npc/re/guides/guides_brasilis.txt
npc: npc/re/guides/guides_comodo.txt
npc: npc/re/guides/guides_dewata.txt
npc: npc/re/guides/guides_dicastes.txt
+npc: npc/re/guides/guides_eclage.txt
npc: npc/re/guides/guides_einbroch.txt
npc: npc/re/guides/guides_geffen.txt
npc: npc/re/guides/guides_gonryun.txt
@@ -34,6 +38,7 @@ npc: npc/re/guides/guides_juno.txt
npc: npc/re/guides/guides_lighthalzen.txt
npc: npc/re/guides/guides_louyang.txt
npc: npc/re/guides/guides_lutie.txt
+npc: npc/re/guides/guides_malaya.txt
npc: npc/re/guides/guides_mora.txt
npc: npc/re/guides/guides_morroc.txt
npc: npc/re/guides/guides_moscovia.txt
@@ -44,24 +49,51 @@ npc: npc/re/guides/guides_rachel.txt
npc: npc/re/guides/guides_umbala.txt
npc: npc/re/guides/guides_veins.txt
+// ------------------------ Instances ---------------------------
+npc: npc/re/instances/BakonawaLake.txt
+npc: npc/re/instances/BangungotHospital.txt
+npc: npc/re/instances/BuwayaCave.txt
+npc: npc/re/instances/HazyForest.txt
+npc: npc/re/instances/MalangdoCulvert.txt
+npc: npc/re/instances/OctopusCave.txt
+npc: npc/re/instances/OldGlastHeim.txt
+npc: npc/re/instances/WolfchevLaboratory.txt
+
// ---------------- Kafras & Cool Event Corp. -------------------
npc: npc/re/kafras/kafras.txt
// -------------------------- Merchant --------------------------
npc: npc/re/merchants/3rd_trader.txt
+npc: npc/re/merchants/advanced_refiner.txt
+npc: npc/re/merchants/alchemist.txt
+npc: npc/re/merchants/ammo_boxes.txt
+npc: npc/re/merchants/ammo_dealer.txt
+//npc: npc/re/merchants/blessed_refiner.txt
+npc: npc/re/merchants/card_separation.txt
+npc: npc/re/merchants/catalog.txt
+npc: npc/re/merchants/coin_exchange.txt
npc: npc/re/merchants/diamond.txt
+npc: npc/re/merchants/enchan_mal.txt
+npc: npc/re/merchants/enchan_mora.txt
npc: npc/re/merchants/flute.txt
+npc: npc/re/merchants/hd_refiner.txt
npc: npc/re/merchants/inn.txt
npc: npc/re/merchants/quivers.txt
npc: npc/re/merchants/refine.txt
npc: npc/re/merchants/renters.txt
npc: npc/re/merchants/shops.txt
-npc: npc/re/merchants/enchan_mal.txt
-npc: npc/re/merchants/enchan_mora.txt
-npc: npc/re/merchants/coin_exchange.txt
+//npc: npc/re/merchants/ticket_refiner.txt
+//npc: npc/re/merchants/enchan_upg.txt
// --------------------------- Others ---------------------------
+npc: npc/re/other/bulletin_boards.txt
+//npc: npc/re/other/item_merge.txt
+npc: npc/re/other/mail.txt
npc: npc/re/other/mercenary_rent.txt
+npc: npc/re/other/pvp.txt
+npc: npc/re/other/resetskill.txt
+npc: npc/re/other/stone_change.txt
+npc: npc/re/other/turbo_track.txt
// --------------------------- Quests ---------------------------
// - Eden Group -------------------------------------------------
@@ -75,19 +107,28 @@ npc: npc/re/quests/eden/91-99.txt
npc: npc/re/quests/eden/eden_common.txt
npc: npc/re/quests/eden/eden_quests.txt
npc: npc/re/quests/eden/eden_service.txt
+npc: npc/re/quests/eden/eden_tutorial.txt
+// iRO custom additions.
+//npc: npc/re/quests/eden/eden_iro.txt
+// --------------------------------------------------------------
+// - Quests-Tutorials for basic classes (1st class quests) ------
+npc: npc/re/quests/first_class/tu_archer.txt
// --------------------------------------------------------------
//npc: npc/re/quests/cupet.txt
-npc: npc/re/quests/homu_s.txt
+npc: npc/re/quests/homun_s.txt
npc: npc/re/quests/magic_books.txt
+npc: npc/re/quests/monstertamers.txt
npc: npc/re/quests/mrsmile.txt
npc: npc/re/quests/pile_bunker.txt
+npc: npc/re/quests/quests_13_1.txt
npc: npc/re/quests/quests_brasilis.txt
npc: npc/re/quests/quests_dewata.txt
npc: npc/re/quests/quests_dicastes.txt
+npc: npc/re/quests/quests_eclage.txt
npc: npc/re/quests/quests_izlude.txt
-npc: npc/re/quests/quests_lighthalzen.txt
npc: npc/re/quests/quests_malangdo.txt
-npc: npc/re/quests/quests_veins.txt
+npc: npc/re/quests/quests_malaya.txt
npc: npc/re/quests/quests_mora.txt
-npc: npc/re/quests/monstertamers.txt
-npc: npc/re/quests/quests_13_1.txt
+npc: npc/re/quests/quests_morocc.txt
+npc: npc/re/quests/quests_nameless.txt
+npc: npc/re/quests/quests_veins.txt
diff --git a/npc/re/scripts_guild.conf b/npc/re/scripts_guild.conf
new file mode 100644
index 000000000..e5c01e436
--- /dev/null
+++ b/npc/re/scripts_guild.conf
@@ -0,0 +1,8 @@
+// --------------------------------------------------------------
+// - Renewal Guild Wars -
+// --------------------------------------------------------------
+
+// ----------------------- War of Emperium ----------------------
+// - Hall of Abyss
+npc: npc/re/guild/invest_main.txt
+npc: npc/re/guild/invest_npc.txt
diff --git a/npc/re/scripts_jobs.conf b/npc/re/scripts_jobs.conf
index 14e532bcf..1d6e9f8f9 100644
--- a/npc/re/scripts_jobs.conf
+++ b/npc/re/scripts_jobs.conf
@@ -28,3 +28,5 @@ npc: npc/re/jobs/3-2/wanderer.txt
// - Novice
npc: npc/re/jobs/novice/novice.txt
npc: npc/re/jobs/novice/supernovice_ex.txt
+// - Job Repairs
+npc: npc/re/jobs/repair.txt
diff --git a/npc/re/scripts_main.conf b/npc/re/scripts_main.conf
index fd393e5b7..28f514d19 100644
--- a/npc/re/scripts_main.conf
+++ b/npc/re/scripts_main.conf
@@ -1,10 +1,10 @@
// --------------------------------------------------------------
-// - Hercules Renewal Primary Scripts File -
+// - Hercules 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
+// 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.
//
@@ -35,10 +35,14 @@ import: npc/scripts_warps.conf
// ------------------- Renewal Script Files ---------------------
import: npc/re/scripts.conf
+import: npc/re/scripts_guild.conf
import: npc/re/scripts_jobs.conf
import: npc/re/scripts_monsters.conf
import: npc/re/scripts_warps.conf
+// ----------- Development / Testing Script Files ---------------
+import: npc/scripts_dev.conf
+
// ------------------- Custom Script Files ----------------------
// - Your NPCs go in this file!
import: npc/scripts_custom.conf
diff --git a/npc/re/scripts_monsters.conf b/npc/re/scripts_monsters.conf
index 46ab419d8..913fac0c0 100644
--- a/npc/re/scripts_monsters.conf
+++ b/npc/re/scripts_monsters.conf
@@ -2,6 +2,9 @@
// - Renewal Monster Scripts -
// --------------------------------------------------------------
+npc: npc/re/mobs/citycleaners.txt
+npc: npc/re/mobs/towns.txt
+
// -------------------------- Dungeons --------------------------
npc: npc/re/mobs/dungeons/abbey.txt
npc: npc/re/mobs/dungeons/abyss.txt
@@ -14,12 +17,13 @@ npc: npc/re/mobs/dungeons/bra_dun.txt
npc: npc/re/mobs/dungeons/c_tower.txt
npc: npc/re/mobs/dungeons/dew_dun.txt
npc: npc/re/mobs/dungeons/dic_dun.txt
+npc: npc/re/mobs/dungeons/ecl_tdun.txt
npc: npc/re/mobs/dungeons/ein_dun.txt
npc: npc/re/mobs/dungeons/gef_dun.txt
npc: npc/re/mobs/dungeons/gefenia.txt
npc: npc/re/mobs/dungeons/glastheim.txt
-npc: npc/re/mobs/dungeons/gld_re.txt
npc: npc/re/mobs/dungeons/gld_dunSE.txt
+npc: npc/re/mobs/dungeons/gld_re.txt
npc: npc/re/mobs/dungeons/gon_dun.txt
npc: npc/re/mobs/dungeons/ice_dun.txt
npc: npc/re/mobs/dungeons/in_sphinx.txt
@@ -56,11 +60,11 @@ npc: npc/re/mobs/fields/brasilis.txt
npc: npc/re/mobs/fields/comodo.txt
npc: npc/re/mobs/fields/dewata.txt
npc: npc/re/mobs/fields/dicastes.txt
+npc: npc/re/mobs/fields/eclage.txt
npc: npc/re/mobs/fields/einbroch.txt
npc: npc/re/mobs/fields/geffen.txt
npc: npc/re/mobs/fields/gonryun.txt
npc: npc/re/mobs/fields/hugel.txt
-npc: npc/re/mobs/fields/jawaii.txt
npc: npc/re/mobs/fields/lighthalzen.txt
npc: npc/re/mobs/fields/louyang.txt
npc: npc/re/mobs/fields/lutie.txt
@@ -77,6 +81,3 @@ npc: npc/re/mobs/fields/splendide.txt
npc: npc/re/mobs/fields/umbala.txt
npc: npc/re/mobs/fields/veins.txt
npc: npc/re/mobs/fields/yuno.txt
-
-// --------------------------- Towns ----------------------------
-npc: npc/re/mobs/towns/brasilis.txt
diff --git a/npc/re/scripts_warps.conf b/npc/re/scripts_warps.conf
index f0b95a462..801aac5b4 100644
--- a/npc/re/scripts_warps.conf
+++ b/npc/re/scripts_warps.conf
@@ -18,6 +18,7 @@ npc: npc/re/warps/dungeons/bra_dun.txt
npc: npc/re/warps/dungeons/dic_dun.txt
npc: npc/re/warps/dungeons/ecl_dun.txt
npc: npc/re/warps/dungeons/iz_dun.txt
+npc: npc/re/warps/dungeons/moc_pryd.txt
// --------------------------- Fields ---------------------------
npc: npc/re/warps/fields/bif_fild.txt
@@ -34,7 +35,9 @@ npc: npc/re/warps/fields/veins_fild.txt
npc: npc/re/warps/fields/yuno_fild.txt
// --------------------------- Others ---------------------------
+npc: npc/re/warps/other/arena.txt
npc: npc/re/warps/other/jobquests.txt
npc: npc/re/warps/other/paradise.txt
npc: npc/re/warps/other/s_workshop.txt
npc: npc/re/warps/other/sign.txt
+npc: npc/re/warps/guildcastles.txt
diff --git a/npc/re/warps/cities/brasilis.txt b/npc/re/warps/cities/brasilis.txt
index e5e8a5386..289ab235d 100644
--- a/npc/re/warps/cities/brasilis.txt
+++ b/npc/re/warps/cities/brasilis.txt
@@ -5,7 +5,7 @@
//===== Current Version: =====================================
//= 1.2
//===== Description: =========================================
-//= [Aegis Conversion]
+//= [Official Conversion]
//= Warp Points for Brasilis
//===== Additional Comments: =================================
//= 1.0 First version.
diff --git a/npc/re/warps/cities/dewata.txt b/npc/re/warps/cities/dewata.txt
index 4e7476ec8..c134df537 100644
--- a/npc/re/warps/cities/dewata.txt
+++ b/npc/re/warps/cities/dewata.txt
@@ -4,8 +4,6 @@
//= Chilly
//===== Current Version: =====================================
//= 1.2
-//===== Compatible With: =====================================
-//= Hercules
//===== Description: =========================================
//= Warp Points for Dewata
//===== Additional Comments: =================================
@@ -16,7 +14,7 @@
dewata,44,252,0 warp dewata0001 1,1,dew_fild01,373,212
dew_fild01,375,212,0 warp dewata0002 1,1,dewata,46,251
-//dew_fild01,57,273,0 warp dewata0003 1,1,dew_in01,15,33
-//dew_in01,16,31,0 warp dewata0004 1,1,dew_fild01,59,273
+dew_fild01,57,273,0 warp dewata0003 1,1,dew_in01,15,33
+dew_in01,16,31,0 warp dewata0004 1,1,dew_fild01,59,273
dew_fild01,48,65,0 warp dewata0005 1,1,dew_dun02,302,30
dew_dun02,305,30,0 warp dewata0006 1,1,dew_fild01,50,65
diff --git a/npc/re/warps/cities/dicastes.txt b/npc/re/warps/cities/dicastes.txt
index d2c84ad0a..9af35d123 100644
--- a/npc/re/warps/cities/dicastes.txt
+++ b/npc/re/warps/cities/dicastes.txt
@@ -4,14 +4,14 @@
//= Chilly, Muad_Dib
//===== Current Version: =====================================
//= 1.3
-//===== Compatible With: =====================================
-//= Hercules
+//===== File Encoding ========================================
+//= CP-949 (EUC-KR compatible). Do NOT read/save it as UTF-8.
//===== Description: =========================================
//= Warp Points for El Dicastes
//===== Additional Comments: =================================
//= 1.0 First Version.
//= 1.1 Added Elevators.
-//= 1.2 Removed a warp. [Joseph]
+//= 1.2 Removed a warp. [Joseph]
//= 1.3 Updated to match official script. [Joseph]
//============================================================
@@ -32,7 +32,7 @@ dicastes02,120,237,0 warp eldicastes0013 1,1,dic_in01,45,246
dic_in01,45,244,0 warp eldicastes0014 1,1,dicastes02,119,235
dic_in01,299,248,0 warp eldicastes0015 1,1,dic_in01,262,191
-dic_in01,242,182,0 script #eldicastes0016 844,{
+dic_in01,242,182,0 script #eldicastes0016 CLEAR_NPC,{
if (isequipped(2782)) select("Administrative Office");
else select("¡÷¡ú¡ð");
warp "dic_in01",138,221;
@@ -59,16 +59,16 @@ dic_in01,242,182,0 script #eldicastes0016 844,{
warp "dic_in01",.@xy[.@m*2],.@xy[.@m*2+1];
end;
}
-dic_in01,46,288,0 duplicate(Elevator#main) Elevator#1 844
-dic_in01,122,284,0 duplicate(Elevator#main) Elevator#2 844
-dic_in01,121,203,0 duplicate(Elevator#main) Elevator#3 844
-dic_in01,35,214,0 duplicate(Elevator#main) Elevator#4 844
-dic_in01,44,116,0 duplicate(Elevator#main) Elevator#5 844
-dic_in01,112,108,0 duplicate(Elevator#main) Elevator#6 844
-dic_in01,180,108,0 duplicate(Elevator#main) Elevator#7 844
-dic_in01,261,115,0 duplicate(Elevator#main) Elevator#8 844
-dic_in01,57,48,0 duplicate(Elevator#main) Elevator#9 844
-dic_in01,137,46,0 duplicate(Elevator#main) Elevator#10 844
-dic_in01,222,46,0 duplicate(Elevator#main) Elevator#11 844
-dic_in01,388,272,0 duplicate(Elevator#main) Elevator#12 844
-dic_in01,389,208,0 duplicate(Elevator#main) Elevator#13 844 \ No newline at end of file
+dic_in01,46,288,0 duplicate(Elevator#main) Elevator#1 CLEAR_NPC
+dic_in01,122,284,0 duplicate(Elevator#main) Elevator#2 CLEAR_NPC
+dic_in01,121,203,0 duplicate(Elevator#main) Elevator#3 CLEAR_NPC
+dic_in01,35,214,0 duplicate(Elevator#main) Elevator#4 CLEAR_NPC
+dic_in01,44,116,0 duplicate(Elevator#main) Elevator#5 CLEAR_NPC
+dic_in01,112,108,0 duplicate(Elevator#main) Elevator#6 CLEAR_NPC
+dic_in01,180,108,0 duplicate(Elevator#main) Elevator#7 CLEAR_NPC
+dic_in01,261,115,0 duplicate(Elevator#main) Elevator#8 CLEAR_NPC
+dic_in01,57,48,0 duplicate(Elevator#main) Elevator#9 CLEAR_NPC
+dic_in01,137,46,0 duplicate(Elevator#main) Elevator#10 CLEAR_NPC
+dic_in01,222,46,0 duplicate(Elevator#main) Elevator#11 CLEAR_NPC
+dic_in01,388,272,0 duplicate(Elevator#main) Elevator#12 CLEAR_NPC
+dic_in01,389,208,0 duplicate(Elevator#main) Elevator#13 CLEAR_NPC
diff --git a/npc/re/warps/cities/eclage.txt b/npc/re/warps/cities/eclage.txt
index 0400489f5..dd9e1d55e 100644
--- a/npc/re/warps/cities/eclage.txt
+++ b/npc/re/warps/cities/eclage.txt
@@ -3,19 +3,18 @@
//===== By: ==================================================
//= Chilly
//===== Current Version: =====================================
-//= 1.0
-//===== Compatible With: =====================================
-//= Hercules
+//= 1.0a
//===== Description: =========================================
//= Warp Points for Eclage
//===== Additional Comments: =================================
//= 1.0 First Version.
+//= 1.0a Disabled quest warp. [Euphy]
//============================================================
// Town Warps
bif_fild02,292,351,0 warp eclage_field0001 1,1,ecl_fild01,205,74
ecl_fild01,207,72,0 warp eclage_field0002 1,1,bif_fild02,294,349
-ecl_fild01,97,320,0 warp eclage_field0003 1,1,eclage,100,28
+//ecl_fild01,97,320,0 warp eclage_field0003 1,1,eclage,100,28
eclage,98,26,0 warp eclage_field0004 1,1,ecl_fild01,97,317
eclage,299,309,0 warp eclage_field0005 1,1,ecl_in01,47,11
ecl_in01,47,8,0 warp eclage_field0006 1,1,eclage,297,307
diff --git a/npc/re/warps/cities/izlude.txt b/npc/re/warps/cities/izlude.txt
index 4be33317e..8bf26e31d 100644
--- a/npc/re/warps/cities/izlude.txt
+++ b/npc/re/warps/cities/izlude.txt
@@ -3,39 +3,88 @@
//===== By: ==================================================
//= Athena (1.0), Nana (1.1)
//===== Current Version: =====================================
-//= 1.7
-//===== Compatible With: =====================================
-//= Any Athena & Hercules Version
+//= 1.8
//===== Description: =========================================
//= Warp Points for Izlude
//===== Additional Comments: =================================
//= 1.3 Added warps to Izlude Airship [Justin84]
//= 1.4 Minor correction on airport warps
//= 1.5 Updated to match the new Izlude Map. [Masao]
-//= 1.6 Added new warps [Streusel]
-//= 1.7 Removed indoor warps [Streusel]
+//= 1.6 Added new warps. [Streusel]
+//= 1.7 Updated to match the official scripts. [Euphy]
+//= 1.8 Added Izlude & Prontera Field 8 duplicates. [Euphy]
//============================================================
//= Izlude City ==============================================
-izlude,109,182,0 warp iz01 3,3,izlude_in,65,87
-izlude,216,162,0 warp iz03 3,2,izlude_in,151,127
-izlude,21,98,0 warp iz001 3,3,prt_fild08,367,212
+prt_fild08,371,212,0 warp prtf005 3,3,izlude,24,98
+izlude,20,98,0 warp iz001 3,3,prt_fild08,367,212
+izlude_in,116,46,0 warp iz02-1 3,2,izlude,128,98
+izlude,110,182,0 warp iz01 2,2,izlude_in,65,87
+izlude_in,65,84,0 warp iz01-1 2,2,izlude,112,179
izlude,52,172,0 warp iz04 2,2,izlude_in,74,161
-izlude,130,257,0 warp iz09#1 2,2,iz_ac01,99,29
-izlude,125,257,0 warp iz09#2 2,2,iz_ac01,99,29
-izlude,213,161,0 warp iz10 2,2,arena_room,100,30
-arena_room,99,24,0 warp iz_arena 2,2,izlude,209,161
+izlude_in,74,158,0 warp iz04-1 3,2,izlude,52,168
+izlude_in,43,169,0 warp w219 2,3,izlude_in,63,169
+izlude_in,87,169,0 warp iz05-1 2,3,izlude_in,111,169
izlude_in,108,169,0 warp iz05 2,3,izlude_in,84,169
-izlude_in,148,127,0 warp iz03-1 2,5,izlude,207,162
+izlude_in,148,127,0 warp iz03-1 2,5,izlude,210,161
+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,172,116,0 warp iz06-1 3,2,izlude_in,172,94
+izlude_in,171,97,0 warp iz06 3,2,izlude_in,172,119
-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,178
-izlude_in,74,158,0 warp iz04-1 3,2,izlude,52,166
-izlude_in,87,169,0 warp iz05-1 2,3,izlude_in,111,169
+//= Izlude & Prontera Field 8 Duplicates =====================
+prt_fild08a,371,212,0 warp prtf005_a 3,3,izlude_a,24,98
+prt_fild08b,371,212,0 warp prtf005_b 3,3,izlude_b,24,98
+prt_fild08c,371,212,0 warp prtf005_c 3,3,izlude_c,24,98
+prt_fild08d,371,212,0 warp prtf005_d 3,3,izlude_d,24,98
+izlude_a,20,98,0 warp iz001_a 3,3,prt_fild08a,367,212
+izlude_b,20,98,0 warp iz001_b 3,3,prt_fild08b,367,212
+izlude_c,20,98,0 warp iz001_c 3,3,prt_fild08c,367,212
+izlude_d,20,98,0 warp iz001_d 3,3,prt_fild08d,367,212
+izlude_a,110,182,0 warp iz01_a 2,2,izlude_in,65,87
+izlude_b,110,182,0 warp iz01_b 2,2,izlude_in,65,87
+izlude_c,110,182,0 warp iz01_c 2,2,izlude_in,65,87
+izlude_d,110,182,0 warp iz01_d 2,2,izlude_in,65,87
+izlude_a,52,172,0 warp iz04_a 2,2,izlude_in,74,161
+izlude_b,52,172,0 warp iz04_b 2,2,izlude_in,74,161
+izlude_c,52,172,0 warp iz04_c 2,2,izlude_in,74,161
+izlude_d,52,172,0 warp iz04_d 2,2,izlude_in,74,161
+
+//= Izlude Academy ===========================================
+izlude,125,257,0 warp #to_ac01 2,2,iz_ac01,99,29
+izlude,130,257,0 warp #to_ac02 2,2,iz_ac01,99,29
+iz_ac01,100,24,0 warp #to_ac01-1 2,2,izlude,127,253
+iz_ac01,78,25,0 warp #to_ac2f01 2,2,iz_ac02,104,27
+iz_ac01,122,25,0 warp #to_ac2f02 2,2,iz_ac02,104,27
+iz_ac02,94,27,0 warp #to_ac1f01 2,2,iz_ac01,78,28
+iz_ac02,113,27,0 warp #to_ac1f02 2,2,iz_ac01,122,28
-//Izlude Academy
-iz_ac01,100,24,0 warp iz_ac01 2,2,izlude,127,253
-iz_ac01,122,25,0 warp iz_ac02 2,2,iz_ac02,104,27
-iz_ac01,78,25,0 warp iz_ac03 2,2,iz_ac02,104,27
-iz_ac02,113,27,0 warp iz_ac04 2,2,iz_ac01,122,28
-iz_ac02,94,27,0 warp iz_ac05 2,2,iz_ac01,78,28 \ No newline at end of file
+//= Izlude Academy Duplicates ================================
+izlude_a,125,257,0 warp #to_ac01_a 2,2,iz_ac01_a,99,29
+izlude_b,125,257,0 warp #to_bc01_b 2,2,iz_ac01_b,99,29
+izlude_c,125,257,0 warp #to_cc01_c 2,2,iz_ac01_c,99,29
+izlude_d,125,257,0 warp #to_dc01_d 2,2,iz_ac01_d,99,29
+izlude_a,130,257,0 warp #to_ac02_a 2,2,iz_ac01_a,99,29
+izlude_b,130,257,0 warp #to_bc02_b 2,2,iz_ac01_b,99,29
+izlude_c,130,257,0 warp #to_cc02_c 2,2,iz_ac01_c,99,29
+izlude_d,130,257,0 warp #to_dc02_d 2,2,iz_ac01_d,99,29
+iz_ac01_a,100,24,0 warp #to_ac01-1_a 2,2,izlude_a,127,253
+iz_ac01_b,100,24,0 warp #to_bc01-1_b 2,2,izlude_b,127,253
+iz_ac01_c,100,24,0 warp #to_cc01-1_c 2,2,izlude_c,127,253
+iz_ac01_d,100,24,0 warp #to_dc01-1_d 2,2,izlude_d,127,253
+iz_ac01_a,78,25,0 warp #to_ac2f01_a 2,2,iz_ac02_a,104,27
+iz_ac01_b,78,25,0 warp #to_bc2f01_b 2,2,iz_ac02_b,104,27
+iz_ac01_c,78,25,0 warp #to_cc2f01_c 2,2,iz_ac02_c,104,27
+iz_ac01_d,78,25,0 warp #to_dc2f01_d 2,2,iz_ac02_d,104,27
+iz_ac01_a,122,25,0 warp #to_ac2f02_a 2,2,iz_ac02_a,104,27
+iz_ac01_b,122,25,0 warp #to_bc2f02_b 2,2,iz_ac02_b,104,27
+iz_ac01_c,122,25,0 warp #to_cc2f02_c 2,2,iz_ac02_c,104,27
+iz_ac01_d,122,25,0 warp #to_dc2f02_d 2,2,iz_ac02_d,104,27
+iz_ac02_a,94,27,0 warp #to_ac1f01_a 2,2,iz_ac01_a,78,28
+iz_ac02_b,94,27,0 warp #to_bc1f01_b 2,2,iz_ac01_b,78,28
+iz_ac02_c,94,27,0 warp #to_cc1f01_c 2,2,iz_ac01_c,78,28
+iz_ac02_d,94,27,0 warp #to_dc1f01_d 2,2,iz_ac01_d,78,28
+iz_ac02_a,113,27,0 warp #to_ac1f02_a 2,2,iz_ac01_a,122,28
+iz_ac02_b,113,27,0 warp #to_bc1f02_b 2,2,iz_ac01_b,122,28
+iz_ac02_c,113,27,0 warp #to_cc1f02_c 2,2,iz_ac01_c,122,28
+iz_ac02_d,113,27,0 warp #to_dc1f02_d 2,2,iz_ac01_d,122,28
diff --git a/npc/re/warps/cities/malangdo.txt b/npc/re/warps/cities/malangdo.txt
index f2bf50572..501c9e85b 100644
--- a/npc/re/warps/cities/malangdo.txt
+++ b/npc/re/warps/cities/malangdo.txt
@@ -4,8 +4,6 @@
//= Chilly
//===== Current Version: =====================================
//= 1.1
-//===== Compatible With: =====================================
-//= Hercules
//===== Description: =========================================
//= Warp Points for Malangdo Island
//===== Additional Comments: =================================
diff --git a/npc/re/warps/cities/malaya.txt b/npc/re/warps/cities/malaya.txt
index a792c4690..190f1831a 100644
--- a/npc/re/warps/cities/malaya.txt
+++ b/npc/re/warps/cities/malaya.txt
@@ -1,102 +1,146 @@
-//===== Hercules Script ======================================
-//= Mayala Port Town Warps
-//===== By: ==================================================
+//===== Hercules Script ======================================
+//= Port Malaya Warp Script
+//===== By: ==================================================
//= Chilly
-//===== Current Version: =====================================
-//= 1.0a
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
-//= Warps for Mayala Port Town.
-//===== Additional Comments: =================================
-//= 1.0 First Version [Chilly].
-//= 1.0a Updated the file with new / missing warps [Masao].
-//============================================================
+//===== Current Version: =====================================
+//= 1.2
+//===== Description: =========================================
+//= Warp Points for Port Malaya
+//===== Additional Comments: =================================
+//= 1.0 First Version.
+//= 1.1 Updated to match official scripts. [Masao]
+//= 1.2 Added official Jeepney warp scripts. [Euphy]
+//============================================================
-malaya,178,211,0 script malaya_inn 45,1,1,{
- end;
+// Town Warps
+//============================================================
+ma_in01,86,16,0 warp mal_in_ws 1,1,malaya,115,212
+ma_in01,24,77,0 warp mal_in_inn 1,1,malaya,178,208
+malaya,370,277,0 warp malaya_mal_fild01 1,1,ma_fild01,40,272
+ma_fild01,37,272,0 warp mal_fild01_malaya 1,1,malaya,367,277
+ma_in01,33,152,0 warp mal_in_house01 1,1,malaya,52,75
+malaya,309,70,0 warp malaya_ship_mal_in_ship 1,1,ma_in01,108,92
+ma_in01,105,92,0 warp mal_in_ship_malaya_ship 1,1,malaya,310,67
+ma_fild01,266,359,0 warp mafild01_to02 1,1,ma_fild02,248,36
+ma_fild02,248,33,0 warp mafild02_to01 1,1,ma_fild01,266,356
+ma_fild01,288,52,0 warp mafild01_tobknw 1,1,ma_scene01,142,78
+ma_scene01,140,80,0 warp bknw_tofild01 1,1,ma_fild01,288,55
+ma_in01,9,24,0 warp mal_in_ts 1,1,malaya,296,167
+ma_in01,126,17,0 warp mal_in_shop_malaya_shop 1,1,malaya,261,237
+ma_fild01,251,190,0 warp mf_minga_mf_in_minga 1,1,ma_in01,108,160
+ma_in01,105,160,0 warp mf_in_minga_mf_minga 1,1,ma_fild01,248,190
+// Locked Warps
+//============================================================
+malaya,178,211,0 script malaya_inn WARPNPC,1,1,{
+ end;
OnTouch:
if (malaya_hi < 10) {
- mes "Door is closed. It seems keeping its eyes on you.";
+ mes "Door is closed. It seems to be keeping its eyes on you.";
close;
- }
+ }
warp "ma_in01",24,80;
end;
}
-malaya,112,212,0 script malaya_ws 45,1,1,{
+malaya,112,212,0 script malaya_ws WARPNPC,1,1,{
end;
-
OnTouch:
if (malaya_hi < 20) {
- mes "Door is closed. It seems keeping its eyes on you.";
+ mes "Door is closed. It seems to be keeping its eyes on you.";
close;
}
warp "ma_in01",83,16;
end;
}
-malaya,299,167,0 script malaya_ts 45,1,1,{
+malaya,299,167,0 script malaya_ts WARPNPC,1,1,{
end;
-
OnTouch:
if (malaya_hi < 20) {
- mes "Door is closed. It seems keeping its eyes on you.";
+ mes "Door is closed. It seems to be keeping its eyes on you.";
close;
}
warp "ma_in01",12,24;
end;
}
-malaya,261,240,0 script malaya_shop 45,1,1,{
+malaya,261,240,0 script malaya_shop WARPNPC,1,1,{
end;
-
OnTouch:
if (malaya_hi < 20) {
- mes "Door is closed. It seems keeping its eyes on you.";
+ mes "Door is closed. It seems to be keeping its eyes on you.";
close;
}
warp "ma_in01",126,20;
end;
}
-malaya,300,211,0 script malaya_house01 45,1,1,{
+malaya,300,211,0 script malaya_house01 WARPNPC,1,1,{
end;
-
OnTouch:
if (malaya_hi < 10) {
- mes "Door is closed. It seems keeping its eyes on you.";
+ mes "Door is closed. It seems to be keeping its eyes on you.";
close;
- }
+ }
warp "ma_in01",36,152;
end;
}
-// Town Warps
-ma_in01,86,16,0 warp mal_in_ws 1,1,malaya,115,212
-ma_in01,24,77,0 warp mal_in_inn 1,1,malaya,178,208
-malaya,370,277,0 warp malaya_mal_fild01 1,1,ma_fild01,40,272
-ma_fild01,37,272,0 warp mal_fild01_malaya 1,1,malaya,367,277
-ma_in01,33,152,0 warp mal_in_house01 1,1,malaya,52,75
-malaya,309,70,0 warp malaya_ship_mal_in_ship 1,1,ma_in01,108,92
-ma_in01,105,92,0 warp mal_in_ship_malaya_ship 1,1,malaya,310,67
-ma_fild01,266,359,0 warp mafild01_to02 1,1,ma_fild02,248,36
-ma_fild02,248,33,0 warp mafild02_to01 1,1,ma_fild01,266,356
-ma_fild01,288,52,0 warp mafild01_tobknw 1,1,ma_scene01,142,78
-ma_scene01,140,80,0 warp bknw_tofild01 1,1,ma_fild01,288,55
-ma_in01,9,24,0 warp mal_in_ts 1,1,malaya,296,167
-ma_in01,126,17,0 warp mal_in_shop_malaya_shop 1,1,malaya,261,237
-ma_fild01,251,190,0 warp mf_minga_mf_in_minga 1,1,ma_in01,108,160
-ma_in01,105,160,0 warp mf_in_minga_mf_minga 1,1,ma_fild01,248,190
+// Jeepney Warps
+//============================================================
+function script F_Malaya_Warp {
+ mes "Where would you like to go?";
+ next;
+ set .@i$, getarg(select("Back outside",getarg(1)+" Jeepney",getarg(2)+" Jeepney") - 1);
+ close2;
+ switch(getarg(3)) {
+ case 1: // 12 passenger
+ if (.@i$ == "Center")
+ warp "malaya",241,238;
+ if (.@i$ == "Southwest")
+ warp "malaya",71,43;
+ else if (.@i$ == "Southeast")
+ warp "malaya",284,129;
+ break;
+ case 2: // 30 passenger
+ if (.@i$ == "Northwest")
+ warp "malaya",134,247;
+ else if (.@i$ == "Southeast")
+ warp "malaya",341,150;
+ else if (.@i$ == "Northeast")
+ warp "malaya",294,293;
+ break;
+ case 3: // 60 passenger
+ if (.@i$ == "Center")
+ warp "malaya",239,221;
+ else if (.@i$ == "Northwest")
+ warp "malaya",59,246;
+ else if (.@i$ == "Southeast")
+ warp "malaya",254,68;
+ break;
+ }
+ end;
+}
+
+ma_zif01,30,22,0 script Town Warp#zif01 WARPNPC,1,1,{ callfunc "F_Malaya_Warp","Center","Southwest","Southeast",1; }
+ma_zif02,30,22,0 script Town Warp#zif02 WARPNPC,1,1,{ callfunc "F_Malaya_Warp","Southwest","Center","Southeast",1; }
+ma_zif03,30,22,0 script Town Warp#zif03 WARPNPC,1,1,{ callfunc "F_Malaya_Warp","Southeast","Center","Southwest",1; }
+
+ma_zif04,30,22,0 script Town Warp#zif04 WARPNPC,1,1,{ callfunc "F_Malaya_Warp","Northwest","Southeast","Northeast",2; }
+ma_zif05,30,22,0 script Town Warp#zif05 WARPNPC,1,1,{ callfunc "F_Malaya_Warp","Southeast","Northwest","Northeast",2; }
+ma_zif06,30,22,0 script Town Warp#zif06 WARPNPC,1,1,{ callfunc "F_Malaya_Warp","Northeast","Northwest","Southeast",2; }
+
+ma_zif07,30,22,0 script Town Warp#zif07 WARPNPC,1,1,{ callfunc "F_Malaya_Warp","Center","Northwest","Southeast",3; }
+ma_zif08,30,22,0 script Town Warp#zif08 WARPNPC,1,1,{ callfunc "F_Malaya_Warp","Northwest","Center","Southeast",3; }
+ma_zif09,30,22,0 script Town Warp#zif09 WARPNPC,1,1,{ callfunc "F_Malaya_Warp","Southeast","Center","Northwest",3; }
-// Car Warps
-ma_zif01,30,22,0 warp malaya_car0001 1,1,malaya,241,238
-ma_zif02,30,22,0 warp malaya_car0002 1,1,malaya,71,43
-ma_zif03,30,22,0 warp malaya_car0003 1,1,malaya,284,129
-ma_zif04,30,22,0 warp malaya_car0004 1,1,malaya,134,247
-ma_zif05,30,22,0 warp malaya_car0005 1,1,malaya,341,150
-ma_zif06,30,22,0 warp malaya_car0006 1,1,malaya,294,293
-ma_zif07,30,22,0 warp malaya_car0007 1,1,malaya,239,221
-ma_zif08,30,22,0 warp malaya_car0008 1,1,malaya,59,246
-ma_zif09,30,22,0 warp malaya_car0009 1,1,malaya,254,68 \ No newline at end of file
+//ma_zif01,30,22,0 warp malaya_car0001 1,1,malaya,241,238
+//ma_zif02,30,22,0 warp malaya_car0002 1,1,malaya,71,43
+//ma_zif03,30,22,0 warp malaya_car0003 1,1,malaya,284,129
+//ma_zif04,30,22,0 warp malaya_car0004 1,1,malaya,134,247
+//ma_zif05,30,22,0 warp malaya_car0005 1,1,malaya,341,150
+//ma_zif06,30,22,0 warp malaya_car0006 1,1,malaya,294,293
+//ma_zif07,30,22,0 warp malaya_car0007 1,1,malaya,239,221
+//ma_zif08,30,22,0 warp malaya_car0008 1,1,malaya,59,246
+//ma_zif09,30,22,0 warp malaya_car0009 1,1,malaya,254,68
diff --git a/npc/re/warps/cities/rachel.txt b/npc/re/warps/cities/rachel.txt
index eb2b0722f..9ec33e229 100644
--- a/npc/re/warps/cities/rachel.txt
+++ b/npc/re/warps/cities/rachel.txt
@@ -4,19 +4,17 @@
//= erKURITA & RockmanEXE
//===== Current Version: =====================================
//= 1.5
-//===== Compatible With: =====================================
-//= Hercules
//===== Description: =========================================
//= Warp Points for Rachel City, shops & other locations
//===== Additional Comments: =================================
-//= 1.0 Added the official warps and commented out the
+//= 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]
+//= 1.4 Disabled rachel33, moved to quest_rachel.txt [L0ne_W0lf]
//= 1.5 Renewal warp adjustments.
//============================================================
diff --git a/npc/re/warps/cities/yggdrasil.txt b/npc/re/warps/cities/yggdrasil.txt
index 3076d22b1..72004882a 100644
--- a/npc/re/warps/cities/yggdrasil.txt
+++ b/npc/re/warps/cities/yggdrasil.txt
@@ -4,8 +4,6 @@
//= PKGINGO (1.0)
//===== Current Version: =====================================
//= 1.1
-//===== Compatible With: =====================================
-//= Hercules; RO Episode 6+
//===== Description: =========================================
//= Warp Points for Yggdrasil Tree
//===== Additional Comments: =================================
diff --git a/npc/re/warps/dungeons/bra_dun.txt b/npc/re/warps/dungeons/bra_dun.txt
index de7d1d94f..57210f108 100644
--- a/npc/re/warps/dungeons/bra_dun.txt
+++ b/npc/re/warps/dungeons/bra_dun.txt
@@ -5,7 +5,7 @@
//===== Current Version: =====================================
//= 1.0
//===== Description: =========================================
-//= [Aegis Conversion]
+//= [Official Conversion]
//= Brasilis Dungeon warp script
//===== Additional Comments: =================================
//= 1.0 First version.
diff --git a/npc/re/warps/dungeons/dic_dun.txt b/npc/re/warps/dungeons/dic_dun.txt
index 9016c3e0c..7dde16769 100644
--- a/npc/re/warps/dungeons/dic_dun.txt
+++ b/npc/re/warps/dungeons/dic_dun.txt
@@ -4,8 +4,6 @@
//= Chilly, Muad_Dib
//===== Current Version: =====================================
//= 1.1
-//===== Compatible With: =====================================
-//= Hercules
//===== Description: =========================================
//= Warp Points for Scaraba Hole
//===== Additional Comments: =================================
diff --git a/npc/re/warps/dungeons/ecl_dun.txt b/npc/re/warps/dungeons/ecl_dun.txt
index 5209c4f25..d3ce45cc7 100644
--- a/npc/re/warps/dungeons/ecl_dun.txt
+++ b/npc/re/warps/dungeons/ecl_dun.txt
@@ -4,8 +4,6 @@
//= Chilly
//===== Current Version: =====================================
//= 1.0
-//===== Compatible With: =====================================
-//= Hercules
//===== Description: =========================================
//= Warp Points for Eclage Dungeon
//===== Additional Comments: =================================
diff --git a/npc/re/warps/dungeons/iz_dun.txt b/npc/re/warps/dungeons/iz_dun.txt
index bbe68f8b8..95e20d84c 100644
--- a/npc/re/warps/dungeons/iz_dun.txt
+++ b/npc/re/warps/dungeons/iz_dun.txt
@@ -5,18 +5,16 @@
//= Nana (1.1)
//===== Current Version: =====================================
//= 1.3
-//===== Compatible With: =====================================
-//= Hercules
//===== Description: =========================================
//= Warp Points for Bibilyn Island & Undersea Cave
//===== Additional Comments: =================================
//= 1.2 Moved common warps to base path. [Euphy]
-//= 1.3 Added Undersea Tunnel 6th floor warper. [L0ne_W0lf]
+//= 1.3 Added Undersea Tunnel 6th floor warper.
//============================================================
// Undersea Tunnel Warper
//============================================================
-iz_dun04,130,234,5 script Gatekeeper#iz_dun 413,{
+iz_dun04,130,234,5 script Gatekeeper#iz_dun 4_M_CRU_SOLD,{
mes "[Gatekeeper]";
mes "Halt!";
mes "What brings you here, Adventurer?";
@@ -43,7 +41,7 @@ iz_dun04,130,234,5 script Gatekeeper#iz_dun 413,{
}
}
-iz_dun05,142,190,5 script Guard#iz_dun 413,{
+iz_dun05,142,190,5 script Guard#iz_dun 4_M_CRU_SOLD,{
mes "[Gatekeeper]";
mes "So I guess you want to go back to the fifth floor?";
next;
@@ -60,4 +58,4 @@ iz_dun05,142,190,5 script Guard#iz_dun 413,{
mes "You're braver than I thought.";
close;
}
-} \ No newline at end of file
+}
diff --git a/npc/re/warps/dungeons/moc_pryd.txt b/npc/re/warps/dungeons/moc_pryd.txt
new file mode 100644
index 000000000..097b5fc3d
--- /dev/null
+++ b/npc/re/warps/dungeons/moc_pryd.txt
@@ -0,0 +1,14 @@
+//===== Hercules Script ======================================
+//= Morroc Pyramid Nightmare Warp Script
+//===== By: ==================================================
+//= Euphy
+//===== Current Version: =====================================
+//= 1.0
+//===== Description: =========================================
+//= Warp Points for Morroc Pyramid Nightmare Mode
+//===== Additional Comments: =================================
+//= 1.0 First Version.
+//============================================================
+
+moc_prydn1,223,9,0 warp PyramidsN1-2 2,2,moc_prydn2,192,8
+moc_prydn2,195,8,0 warp PyramidsN2-1 2,3,moc_prydn1,220,9
diff --git a/npc/re/warps/fields/bif_fild.txt b/npc/re/warps/fields/bif_fild.txt
index ec9de1cf9..5fc888b3c 100644
--- a/npc/re/warps/fields/bif_fild.txt
+++ b/npc/re/warps/fields/bif_fild.txt
@@ -1,11 +1,9 @@
-//===== rAthena Script =======================================
+//===== Hercules Script ======================================
//= Bifrost Field Warp Script
//===== By: ==================================================
//= Chilly
//===== Current Version: =====================================
//= 1.2
-//===== Compatible With: =====================================
-//= rAthena SVN
//===== Description: =========================================
//= Warp Points for Bifrost Field
//===== Additional Comments: =================================
@@ -39,6 +37,6 @@ OnTouch:
specialeffect EF_LEVEL99_4;
end;
}
-bif_fild02,285,332,0 duplicate(bifrost_field0000) Small Hole#ep14_mora1 844
-bif_fild02,95,310,0 duplicate(bifrost_field0000) Small Hole#ep14_mora2 844
-bif_fild02,174,162,0 duplicate(bifrost_field0000) Small Hole#ep14_mora3 844
+bif_fild02,285,332,0 duplicate(bifrost_field0000) Small Hole#ep14_mora1 CLEAR_NPC
+bif_fild02,95,310,0 duplicate(bifrost_field0000) Small Hole#ep14_mora2 CLEAR_NPC
+bif_fild02,174,162,0 duplicate(bifrost_field0000) Small Hole#ep14_mora3 CLEAR_NPC
diff --git a/npc/re/warps/fields/bra_fild.txt b/npc/re/warps/fields/bra_fild.txt
index c2078cdd2..85edc6c10 100644
--- a/npc/re/warps/fields/bra_fild.txt
+++ b/npc/re/warps/fields/bra_fild.txt
@@ -5,10 +5,11 @@
//===== Current Version: =====================================
//= 1.0
//===== Description: =========================================
-//= [Aegis Conversion]
+//= [Official Conversion]
//= Warp Points for Brasilis
//===== Additional Comments: =================================
//= 1.0 First version.
//============================================================
+
bra_fild01,72,34,0 warp bra_fild01_brasilis 1,1,brasilis,309,334
brasilis,308,336,0 warp brasilis_bra_fild01 1,1,bra_fild01,74,34
diff --git a/npc/re/warps/fields/com_fild.txt b/npc/re/warps/fields/com_fild.txt
index c90257eb3..8e7759504 100644
--- a/npc/re/warps/fields/com_fild.txt
+++ b/npc/re/warps/fields/com_fild.txt
@@ -4,10 +4,8 @@
//= Nana
//===== Current Version: =====================================
//= 1.2
-//===== Compatible With: =====================================
-//= Hercules
//===== Description: =========================================
-//= [Aegis Conversion]
+//= [Official Conversion]
//= Warp Points for Comodo Fields
//===== Additional Comments: =================================
//= 1.1 Rescripted to Aegis 10.3 Standards. [L0ne_W0lf]
diff --git a/npc/re/warps/fields/dic_fild.txt b/npc/re/warps/fields/dic_fild.txt
index 41ac07aaf..73edb87fb 100644
--- a/npc/re/warps/fields/dic_fild.txt
+++ b/npc/re/warps/fields/dic_fild.txt
@@ -4,8 +4,6 @@
//= Chilly, Muad_Dib
//===== Current Version: =====================================
//= 1.1
-//===== Compatible With: =====================================
-//= Hercules
//===== Description: =========================================
//= Warp Points for El Dicastes Field
//===== Additional Comments: =================================
diff --git a/npc/re/warps/fields/geffen_fild.txt b/npc/re/warps/fields/geffen_fild.txt
index 289ad3a6c..fbe737906 100644
--- a/npc/re/warps/fields/geffen_fild.txt
+++ b/npc/re/warps/fields/geffen_fild.txt
@@ -4,8 +4,6 @@
//= Nana (1.0)
//===== Current Version: =====================================
//= 1.1
-//===== Compatible With: =====================================
-//= Hercules
//===== Description: =========================================
//= Warp Points for Geffen Field's
//===== Additional Comments: =================================
diff --git a/npc/re/warps/fields/hugel_fild.txt b/npc/re/warps/fields/hugel_fild.txt
index 309ba8cc1..11f03b489 100644
--- a/npc/re/warps/fields/hugel_fild.txt
+++ b/npc/re/warps/fields/hugel_fild.txt
@@ -4,8 +4,6 @@
//= Sara-chan (1.0)
//===== Current Version: =====================================
//= 1.3
-//===== Compatible With: =====================================
-//= Hercules; RO Episode 10+
//===== Description: =========================================
//= Warp Points for Hugel Field
//===== Additional Comments: =================================
diff --git a/npc/re/warps/fields/morroc_fild.txt b/npc/re/warps/fields/morroc_fild.txt
index b256e9413..3b40d2443 100644
--- a/npc/re/warps/fields/morroc_fild.txt
+++ b/npc/re/warps/fields/morroc_fild.txt
@@ -3,9 +3,7 @@
//===== By: ==================================================
//= Nana (1.0)
//===== Current Version: =====================================
-//= 1.4b
-//===== Compatible With: =====================================
-//= Hercules
+//= 1.5
//===== Description: =========================================
//= Warp Points for Morroc Fields
//===== Additional Comments: =================================
@@ -15,11 +13,12 @@
//= 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]
+//= 1.5 Commented moc_fild20 warps replaced with new NPCs. [Euphy]
//============================================================
//= 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,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
@@ -43,7 +42,7 @@ moc_fild03,70,341,0 warp mocf04-1 5,2,moc_fild02,332,23
//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,219,327,0 script mocf016 WARPNPC,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
@@ -64,7 +63,7 @@ moc_fild03,70,341,0 warp mocf04-1 5,2,moc_fild02,332,23
//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_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
@@ -79,7 +78,7 @@ moc_fild07,380,201,0 warp mocf13-1 2,16,moc_fild20,36,177
//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,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
@@ -89,22 +88,22 @@ 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,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,258,253,0 script mocf017 WARPNPC,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,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_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
diff --git a/npc/re/warps/fields/payon_fild.txt b/npc/re/warps/fields/payon_fild.txt
index 5bec271e8..292aa0785 100644
--- a/npc/re/warps/fields/payon_fild.txt
+++ b/npc/re/warps/fields/payon_fild.txt
@@ -1,18 +1,16 @@
//===== Hercules Script ======================================
//= Payon Field Warps
-//===== By: ==================================================
+//===== By: ==================================================
//= Nana (1.0)
-//===== Current Version: =====================================
+//===== Current Version: =====================================
//= 1.3
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Description: =========================================
//= Payon Field Warps
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.1 Refixed payon field08 -> payon warp
//= 1.2 Changed trigger area of pay_fild08 -> payon warp. [L0ne_W0lf]
//= 1.3 Renewal warp adjustments.
-//============================================================
+//============================================================
//= Payon Field's ============================================
pay_fild01,13,152,0 warp payf001 2,7,moc_fild03,299,170
diff --git a/npc/re/warps/fields/prontera_fild.txt b/npc/re/warps/fields/prontera_fild.txt
index 2267c298d..d033d4c53 100644
--- a/npc/re/warps/fields/prontera_fild.txt
+++ b/npc/re/warps/fields/prontera_fild.txt
@@ -3,15 +3,16 @@
//===== By: ==================================================
//= Nana (1.0)
//===== Current Version: =====================================
-//= 1.3
-//===== Compatible With: =====================================
-//= Hercules
+//= 1.5
//===== 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]
//= 1.3 Updated to match the new Izlude Map. [Masao]
+//= 1.3a Moved Izlude warp to other file. [Euphy]
+//= 1.4 Commented moc_fild20 warps replaced with new NPCs. [Euphy]
+//= 1.5 Added Prontera Field 8 duplicates. [Euphy]
//============================================================
//= Prontera Fields ==========================================
@@ -65,29 +66,50 @@ 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,26,98
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,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_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,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
+//= Prontera Field 8 Duplicates ==============================
+prt_fild08a,16,187,0 warp prtf15-1_a 3,17,prt_fild07,380,186
+prt_fild08b,16,187,0 warp prtf15-1_b 3,17,prt_fild07,380,186
+prt_fild08c,16,187,0 warp prtf15-1_c 3,17,prt_fild07,380,186
+prt_fild08d,16,187,0 warp prtf15-1_d 3,17,prt_fild07,380,186
+prt_fild08a,16,239,0 warp prtf14-1_a 3,15,prt_fild07,379,239
+prt_fild08b,16,239,0 warp prtf14-1_b 3,15,prt_fild07,379,239
+prt_fild08c,16,239,0 warp prtf14-1_c 3,15,prt_fild07,379,239
+prt_fild08d,16,239,0 warp prtf14-1_d 3,15,prt_fild07,379,239
+prt_fild08a,170,378,0 warp prtf004_a 3,2,prontera,156,26
+prt_fild08b,170,378,0 warp prtf004_b 3,2,prontera,156,26
+prt_fild08c,170,378,0 warp prtf004_c 3,2,prontera,156,26
+prt_fild08d,170,378,0 warp prtf004_d 3,2,prontera,156,26
+prt_fild08a,233,16,0 warp prtf023_a 12,1,moc_fild01,238,378
+prt_fild08b,233,16,0 warp prtf023_b 12,1,moc_fild01,238,378
+prt_fild08c,233,16,0 warp prtf023_c 12,1,moc_fild01,238,378
+prt_fild08d,233,16,0 warp prtf023_d 12,1,moc_fild01,238,378
+prt_fild08a,55,21,0 warp prtf024_a 4,2,moc_fild01,56,380
+prt_fild08b,55,21,0 warp prtf024_b 4,2,moc_fild01,56,380
+prt_fild08c,55,21,0 warp prtf024_c 4,2,moc_fild01,56,380
+prt_fild08d,55,21,0 warp prtf024_d 4,2,moc_fild01,56,380
+
//= 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
diff --git a/npc/re/warps/fields/rachel_fild.txt b/npc/re/warps/fields/rachel_fild.txt
index 87d4f16d7..621062377 100644
--- a/npc/re/warps/fields/rachel_fild.txt
+++ b/npc/re/warps/fields/rachel_fild.txt
@@ -4,8 +4,6 @@
//= Playtester
//===== Current Version: =====================================
//= 1.3
-//===== Compatible With: =====================================
-//= Hercules
//===== Description: =========================================
//= Warp Points for Rachel Field
//===== Additional Comments: =================================
diff --git a/npc/re/warps/fields/veins_fild.txt b/npc/re/warps/fields/veins_fild.txt
index c1a5cce5a..69c10edf3 100644
--- a/npc/re/warps/fields/veins_fild.txt
+++ b/npc/re/warps/fields/veins_fild.txt
@@ -4,8 +4,6 @@
//= $ephiroth
//===== Current Version: =====================================
//= 1.5
-//===== Compatible With: =====================================
-//= Hercules
//===== Description: =========================================
//= Warp Points for Veins Field
//===== Additional Comments: =================================
@@ -32,7 +30,7 @@ ve_fild04,115,50,0 warp ve_fild4-3 1,1,ve_fild06,80,183
//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,{
+ve_fild06,81,177,0 script ve_fild6-2 WARPNPC,1,1,{
if (rand(2))
warp "ve_fild04",115,55;
else
@@ -45,9 +43,9 @@ ve_fild07,147,371,0 warp ve_fild7-1 1,1,veins,146,28
// Renewal Addon
ve_fild06,81,177,0 warp VeF06S_VeF04S 1,1,ve_fild04,115,55
-//============================================================
+//============================================================
// Old changelog
-//============================================================
+//============================================================
//= 1.0 Initial version [$ephiroth]
//= 1.1 Updated more warps [$ephiroth]
//= 1.2 Removed some unofficial warps [Playtester]
diff --git a/npc/re/warps/fields/yuno_fild.txt b/npc/re/warps/fields/yuno_fild.txt
index b570fca9e..fe998c843 100644
--- a/npc/re/warps/fields/yuno_fild.txt
+++ b/npc/re/warps/fields/yuno_fild.txt
@@ -4,8 +4,6 @@
//= Nana (1.0), Sara
//===== Current Version: =====================================
//= 1.3
-//===== Compatible With: =====================================
-//= Hercules; RO Episode 5+
//===== Description: =========================================
//= Warp Points for Yuno Field
//===== Additional Comments: =================================
diff --git a/npc/re/warps/guildcastles.txt b/npc/re/warps/guildcastles.txt
index d8eab7cea..6e0b2adca 100644
--- a/npc/re/warps/guildcastles.txt
+++ b/npc/re/warps/guildcastles.txt
@@ -1,11 +1,9 @@
-//===== rAthena Script =======================================
+//===== Hercules Script ======================================
//= Guild Castles Warp Script
//===== By: ==================================================
//= Euphy
//===== Current Version: =====================================
//= 1.0
-//===== Compatible With: =====================================
-//= rAthena SVN
//===== Description: =========================================
//= Warp Points for Renewal Guild Castles
//===== Additional Comments: =================================
diff --git a/npc/re/warps/other/arena.txt b/npc/re/warps/other/arena.txt
new file mode 100644
index 000000000..81eac96ed
--- /dev/null
+++ b/npc/re/warps/other/arena.txt
@@ -0,0 +1,18 @@
+//===== Hercules Script ======================================
+//= Arena Warps
+//===== By: ==================================================
+//= Euphy
+//===== Current Version: =====================================
+//= 1.0
+//===== Description: =========================================
+//= Warp Points related to Izlude Arena.
+//===== Additional Comments: =================================
+//= 1.0 First version, Renewal warps.
+//============================================================
+
+izlude,213,161,0 warp welcome_arena 1,1,arena_room,100,30
+izlude_a,213,161,0 warp welcome_arena_a 1,1,arena_room,100,30
+izlude_b,213,161,0 warp welcome_arena_b 1,1,arena_room,100,30
+izlude_c,213,161,0 warp welcome_arena_c 1,1,arena_room,100,30
+izlude_d,213,161,0 warp welcome_arena_d 1,1,arena_room,100,30
+arena_room,99,24,0 warp bye_arena 2,2,izlude,209,161
diff --git a/npc/re/warps/other/jobquests.txt b/npc/re/warps/other/jobquests.txt
index 5b62a74a4..cefa5dd5f 100644
--- a/npc/re/warps/other/jobquests.txt
+++ b/npc/re/warps/other/jobquests.txt
@@ -3,17 +3,23 @@
//===== By: ==================================================
//= Athena (1.0)
//===== Current Version: =====================================
-//= 2.2
-//===== Compatible With: =====================================
-//= Hercules; RO Version Ep4+
+//= 2.3
//===== Description: =========================================
//= Warp Points for Job Quest Maps
//===== Additional Comments: =================================
//= 2.1 Added one Shadow Chaser job warp. [Euphy]
//= 2.2 Moved common warps to base path, added warps. [Euphy]
+//= 2.3 Added exit warps (job_exit) for 2nd class quests. [Euphy]
//============================================================
//==============================================================================
+//Exit Warps
+//==============================================================================
+job_knt,89,98,0 warp knt_out 1,1,prt_in,77,99
+job_wiz,49,154,0 warp wiz_out 1,1,gef_tower,108,29
+job_sage,55,154,0 warp sage_out 1,1,yuno_in03,169,171
+
+//==============================================================================
//Arch Bishop
//==============================================================================
job3_arch01,29,24,0 warp #archout 1,1,odin_tem02,282,263
@@ -41,4 +47,4 @@ job3_gen01,71,56,0 warp #from2to1gen 1,1,job3_gen01,11,60
//==============================================================================
//Shadow Chaser
//==============================================================================
-job3_sha01,71,19,0 warp shadowc1 1,1,tha_t01,149,224 \ No newline at end of file
+job3_sha01,71,19,0 warp shadowc1 1,1,tha_t01,149,224
diff --git a/npc/re/warps/other/paradise.txt b/npc/re/warps/other/paradise.txt
index 4d4b241a9..4a7d6c29f 100644
--- a/npc/re/warps/other/paradise.txt
+++ b/npc/re/warps/other/paradise.txt
@@ -4,8 +4,6 @@
//= Chilly
//===== Current Version: =====================================
//= 1.0
-//===== Compatible With: =====================================
-//= Hercules
//===== Description: =========================================
//= Warp Points for Paradise Group
//===== Additional Comments: =================================
diff --git a/npc/re/warps/other/s_workshop.txt b/npc/re/warps/other/s_workshop.txt
index bc04509b3..32895ee74 100644
--- a/npc/re/warps/other/s_workshop.txt
+++ b/npc/re/warps/other/s_workshop.txt
@@ -4,8 +4,6 @@
//= Chilly
//===== Current Version: =====================================
//= 1.1
-//===== Compatible With: =====================================
-//= Hercules
//===== Description: =========================================
//= Warp Points for Shadow Workshop
//===== Additional Comments: =================================
@@ -28,4 +26,4 @@ s_atelier,80,66,0 warp s_atelier0012 1,1,s_atelier,32,56
s_atelier,109,129,0 warp s_atelier0013 1,1,s_atelier,159,125
s_atelier,160,130,0 warp s_atelier0014 1,1,s_atelier,114,129
yuno,278,66,0 warp s_atelier0015 1,1,s_atelier,111,122
-s_atelier,107,122,0 warp s_atelier0016 1,1,yuno,274,66 \ No newline at end of file
+s_atelier,107,122,0 warp s_atelier0016 1,1,yuno,274,66
diff --git a/npc/re/warps/other/sign.txt b/npc/re/warps/other/sign.txt
index 84895c26b..8ecd3a777 100644
--- a/npc/re/warps/other/sign.txt
+++ b/npc/re/warps/other/sign.txt
@@ -4,8 +4,6 @@
//= MasterOfMuppets
//===== Current Version: =====================================
//= 1.4
-//===== Compatible With: =====================================
-//= Hercules; RO Episode 8+
//===== Description: =========================================
//= Warp Points related to the Sign Quest will be put here
//===== Additional Comments: =================================