summaryrefslogtreecommitdiff
path: root/npc
diff options
context:
space:
mode:
Diffstat (limited to 'npc')
-rw-r--r--npc/cities/aldebaran.txt40
-rw-r--r--npc/events/MemorialDay_2008.txt17
-rw-r--r--npc/events/easter_2010.txt54
-rw-r--r--npc/events/nguild/nguild_ev_agit.txt8
-rw-r--r--npc/events/nguild/nguild_kafras.txt13
-rw-r--r--npc/events/nguild/nguild_managers.txt56
-rw-r--r--npc/events/xmas.txt30
-rw-r--r--npc/instances/EndlessTower.txt7
-rw-r--r--npc/instances/NydhoggsNest.txt13
-rw-r--r--npc/instances/OrcsMemory.txt3
-rw-r--r--npc/instances/SealedShrine.txt3
-rw-r--r--npc/jobs/2-1/wizard.txt1
-rw-r--r--npc/jobs/2-2/crusader.txt36
-rw-r--r--npc/jobs/2-2/sage.txt62
-rw-r--r--npc/mapflag/gvg.txt4
-rw-r--r--npc/mapflag/nobranch.txt27
-rw-r--r--npc/mapflag/noicewall.txt47
-rw-r--r--npc/mapflag/nomemo.txt33
-rw-r--r--npc/mapflag/nopvp.txt24
-rw-r--r--npc/mapflag/nosave.txt47
-rw-r--r--npc/mapflag/noteleport.txt56
-rw-r--r--npc/mapflag/nowarpto.txt21
-rw-r--r--npc/mapflag/partylock.txt51
-rw-r--r--npc/mapflag/zone.txt31
-rw-r--r--npc/merchants/clothes_dyer.txt6
-rw-r--r--npc/other/CashShop_Functions.txt12
-rw-r--r--npc/other/Global_Functions.txt10
-rw-r--r--npc/other/hugel_bingo.txt37
-rw-r--r--npc/other/marriage.txt34
-rw-r--r--npc/pre-re/mapflag/gvg.txt41
-rw-r--r--npc/pre-re/scripts_main.conf1
-rw-r--r--npc/pre-re/scripts_mapflags.conf30
-rw-r--r--npc/quests/bard_quest.txt84
-rw-r--r--npc/quests/bunnyband.txt62
-rw-r--r--npc/quests/cooking_quest.txt108
-rw-r--r--npc/quests/quests_airship.txt160
-rw-r--r--npc/quests/quests_lighthalzen.txt573
-rw-r--r--npc/quests/quests_rachel.txt124
-rw-r--r--npc/quests/thana_quest.txt42
-rw-r--r--npc/quests/the_sign_quest.txt12
-rw-r--r--npc/re/instances/BakonawaLake.txt2
-rw-r--r--npc/re/instances/BangungotHospital.txt12
-rw-r--r--npc/re/instances/BuwayaCave.txt2
-rw-r--r--npc/re/instances/HazyForest.txt2
-rw-r--r--npc/re/instances/MalangdoCulvert.txt3
-rw-r--r--npc/re/instances/OldGlastHeim.txt2
-rw-r--r--npc/re/instances/WolfchevLaboratory.txt2
-rw-r--r--npc/re/instances/ghost_palace.txt1
-rw-r--r--npc/re/instances/octopus_cave.txt2
-rw-r--r--npc/re/instances/saras_memory.txt1
-rw-r--r--npc/re/jobs/2e/kagerou_oboro.txt346
-rw-r--r--npc/re/jobs/3-1/guillotine_cross.txt313
-rw-r--r--npc/re/mapflag/gvg.txt41
-rw-r--r--npc/re/mapflag/zone.txt35
-rw-r--r--npc/re/merchants/shadow_refiner.txt2
-rw-r--r--npc/re/quests/eden/eden_tutorial.txt245
-rw-r--r--npc/re/quests/quests_malangdo.txt157
-rw-r--r--npc/re/quests/quests_malaya.txt91
-rw-r--r--npc/re/scripts_mapflags.conf1
-rw-r--r--npc/re/woe-fe/invest_main.txt512
-rw-r--r--npc/woe-se/agit_main_se.txt29
61 files changed, 1893 insertions, 1928 deletions
diff --git a/npc/cities/aldebaran.txt b/npc/cities/aldebaran.txt
index f2820b3b0..57d4205df 100644
--- a/npc/cities/aldebaran.txt
+++ b/npc/cities/aldebaran.txt
@@ -1209,13 +1209,8 @@ function script F_Lottery {
mes "[Kafra]";
mes "^FF0000Lets see.... This is...!!^000000";
next;
- if(@temp < 1) goto sL_Prize1;
- if(@temp < 2) goto sL_Prize2;
- if(@temp < 3) goto sL_Prize3;
- if(@temp <= 4) goto sL_Prize4;
- goto sL_Prize5;
-
- sL_Prize1:
+ switch (@temp) {
+ case 0:
mes "[Kafra]";
mes "WOW!!!!..... You win!!! 1st Prize~! Congratulations~~ You got the 1st prize~~";
if(@Lotto == 1) getitem Wooden_Mail,1;//Items: Wooden_Mail,
@@ -1227,7 +1222,7 @@ function script F_Lottery {
}
if(@Lotto == 5) getitem Yggdrasilberry,3;//Items: Yggdrasilberry,
return;
- sL_Prize2:
+ case 1:
mes "[Kafra]";
mes "Oh! WOW! You've won the 2nd prize! Congratulations!!";
if(@Lotto == 1) getitem Shoes,1;//Items: Shoes,
@@ -1239,7 +1234,7 @@ function script F_Lottery {
getitem Royal_Jelly,10;//Items: Royal_Jelly,
}
return;
- sL_Prize3:
+ case 2:
mes "[Kafra]";
mes "Congratulations! You've won the 3rd prize.";
if(@Lotto == 1) getitem Wing_Of_Butterfly,4;//Items: Butterfly_Wing,
@@ -1248,7 +1243,8 @@ function script F_Lottery {
if(@Lotto == 4) getitem White_Potion,15;//Items: White_Potion,
if(@Lotto == 5) getitem White_Potion,30;//Items: White_Potion,
return;
- sL_Prize4:
+ case 3:
+ case 4:
mes "[Kafra]";
mes "You've won the 4th prize.";
if(@Lotto == 1) getitem Sweet_Potato,100;//Items: Sweet_Potato,
@@ -1257,7 +1253,7 @@ function script F_Lottery {
if(@Lotto == 4) getitem Blue_Potion,5;//Items: Blue_Potion,
if(@Lotto == 5) getitem Blue_Potion,10;//Items: Blue_Potion,
return;
- sL_Prize5:
+ default:
mes "[Kafra]";
mes "You've won the 5th prize.";
if(@Lotto == 1) getitem Sweet_Potato,50;//Items: Sweet_Potato,
@@ -1266,18 +1262,20 @@ function script F_Lottery {
if(@Lotto == 4) getitem Red_Potion,250;//Items: Red_Potion,
if(@Lotto == 5) getitem Red_Potion,300;//Items: Red_Potion,
return;
+ }
sF_Spin:
- mes "[Lottery Machine]";
- mes "Number of spins remaining: "+@input;
- next;
- mes "[Lottery Machine]";
- mes "(rumble~rumble~rumble~)...";
- next;
- @temp = rand(10);
- --@input;
- if(@input <= 0) return;
- goto sF_Spin;
+ while (true) {
+ mes "[Lottery Machine]";
+ mes "Number of spins remaining: "+@input;
+ next;
+ mes "[Lottery Machine]";
+ mes "(rumble~rumble~rumble~)...";
+ next;
+ @temp = rand(10);
+ --@input;
+ if(@input <= 0) return;
+ }
}
//== Inside Clock Tower ====================================
diff --git a/npc/events/MemorialDay_2008.txt b/npc/events/MemorialDay_2008.txt
index 41ff5b610..b87bba5f2 100644
--- a/npc/events/MemorialDay_2008.txt
+++ b/npc/events/MemorialDay_2008.txt
@@ -211,12 +211,7 @@ prontera,153,286,4 script Memorial Plaque#Memorial 4_BOARD3,{
next;
Memorial08 = 9;
getexp 93750,43750;
- goto L_CleanPlaque;
- } else if (Memorial08 >= 9) {
- goto L_CleanPlaque;
}
-
-L_CleanPlaque:
mes "- You see a message from the cleaned plaque.-";
next;
mes "-Although no sculptured marble should rise to their memory,-";
@@ -285,9 +280,9 @@ prontera,150,270,4 script Grast#Memorial 4_M_HUMERCHANT,{
mes "I can provide you all the materials.";
next;
if (select("I'll gather the rest.", "Give me the materials.") == 2) {
- goto L_GiveUp;
+ callsub L_GiveUp;
}
- goto L_Continue;
+ callsub L_Continue;
} else {
mes "[Grast]";
mes "Oh, you've brought the materials I asked.";
@@ -313,9 +308,9 @@ prontera,150,270,4 script Grast#Memorial 4_M_HUMERCHANT,{
mes "If you feel too burdened to gather them all, I can provide you all the materials.";
next;
if (select("I'll gather the rest.", "Give me the materials.") == 2) {
- goto L_GiveUp;
+ callsub L_GiveUp;
}
- goto L_Continue;
+ callsub L_Continue;
} else {
mes "[Grast]";
mes "Oh, you've brought everything I asked.";
@@ -342,9 +337,9 @@ prontera,150,270,4 script Grast#Memorial 4_M_HUMERCHANT,{
mes "It's your call, " + strcharinfo(PC_NAME) + ".";
next;
if (select("I'll gather the rest.", "Give me the materials.") == 2) {
- goto L_GiveUp;
+ callsub L_GiveUp;
}
- goto L_Continue;
+ callsub L_Continue;
} else {
mes "[Grast]";
mes "Have you brought the materials I asked?";
diff --git a/npc/events/easter_2010.txt b/npc/events/easter_2010.txt
index 645e0cacf..0ccd987cf 100644
--- a/npc/events/easter_2010.txt
+++ b/npc/events/easter_2010.txt
@@ -119,31 +119,7 @@ prontera,202,297,3 script Rina#Easter 4_F_JOB_HUNTER,{
setquest 9117;
close;
} else if (.@quest1 == 1) {
- L_HuntingInfo:
- mes "[Rina]";
- mes "What you need to do is";
- mes "to choose one monster among";
- mes "^FF0000DEVIRUCHI,^000000 ^FF0000WRAITH DEAD,^000000";
- mes "^FF0000DULLAHAN,^000000 ^FF0000NIGHTMARE TERROR^000000";
- mes "and then kill ^0000FF50^000000 monsters";
- mes "and come back to me.";
- next;
- mes "[Rina]";
- mes "It must be a tough task,";
- mes "but you are the right person";
- mes "who did the oath-taking ceremony.";
- mes "I hope you succeed.";
- if (.@quest1 < 2) {
- completequest 9117;
- setquest 9118;
- setquest 9119;
- setquest 9120;
- setquest 9121;
- }
- close2;
- npcskill "AL_INCAGI",1,0,0;
- npcskill "AL_BLESSING",1,0,0;
- end;
+ callsub(L_HuntingInfo, .@quest1);
} else if (.@quest1 == 2) {
if (questprogress(9118) != 2 || questprogress(9119) != 2 || questprogress(9120) != 2 || questprogress(9121) != 2) {
if (questprogress(9118,HUNTING) == 2 || questprogress(9119,HUNTING) == 2 || questprogress(9120,HUNTING) == 2 || questprogress(9121,HUNTING) == 2) {
@@ -162,7 +138,7 @@ prontera,202,297,3 script Rina#Easter 4_F_JOB_HUNTER,{
completequest 9121;
setquest 9122;
} else
- goto L_HuntingInfo;
+ callsub(L_HuntingInfo, .@quest1);
end;
}
}
@@ -309,6 +285,32 @@ prontera,202,297,3 script Rina#Easter 4_F_JOB_HUNTER,{
npcskill "AL_INCAGI",1,0,0;
npcskill "AL_BLESSING",1,0,0;
end;
+
+L_HuntingInfo:
+ mes "[Rina]";
+ mes "What you need to do is";
+ mes "to choose one monster among";
+ mes "^FF0000DEVIRUCHI,^000000 ^FF0000WRAITH DEAD,^000000";
+ mes "^FF0000DULLAHAN,^000000 ^FF0000NIGHTMARE TERROR^000000";
+ mes "and then kill ^0000FF50^000000 monsters";
+ mes "and come back to me.";
+ next;
+ mes "[Rina]";
+ mes "It must be a tough task,";
+ mes "but you are the right person";
+ mes "who did the oath-taking ceremony.";
+ mes "I hope you succeed.";
+ if (getarg(0) < 2) {
+ completequest 9117;
+ setquest 9118;
+ setquest 9119;
+ setquest 9120;
+ setquest 9121;
+ }
+ close2;
+ npcskill "AL_INCAGI",1,0,0;
+ npcskill "AL_BLESSING",1,0,0;
+ end;
}
geffen,207,114,4 script #Hiddne01Easter CLEAR_NPC,{
diff --git a/npc/events/nguild/nguild_ev_agit.txt b/npc/events/nguild/nguild_ev_agit.txt
index 99545bfff..9bb76f728 100644
--- a/npc/events/nguild/nguild_ev_agit.txt
+++ b/npc/events/nguild/nguild_ev_agit.txt
@@ -125,7 +125,7 @@ OnAgitStart:
end;
OnAgitBreak:
callfunc "F_AgitBreak","nguild_alde","N01";
- goto OnAgitEliminate;
+ callsub OnAgitEliminate;
end;
OnGuildBreak:
callfunc "F_GuildBreak","nguild_alde","N01";
@@ -152,7 +152,7 @@ OnAgitStart:
end;
OnAgitBreak:
callfunc "F_AgitBreak","nguild_gef","N02";
- goto OnAgitEliminate;
+ callsub OnAgitEliminate;
end;
OnGuildBreak:
callfunc "F_GuildBreak","nguild_gef","N02";
@@ -179,7 +179,7 @@ OnAgitStart:
end;
OnAgitBreak:
callfunc "F_AgitBreak","nguild_pay","N03";
- goto OnAgitEliminate;
+ callsub OnAgitEliminate;
end;
OnGuildBreak:
callfunc "F_GuildBreak","nguild_pay","N03";
@@ -206,7 +206,7 @@ OnAgitStart:
end;
OnAgitBreak:
callfunc "F_AgitBreak","nguild_prt","N04";
- goto OnAgitEliminate;
+ callsub OnAgitEliminate;
end;
OnGuildBreak:
callfunc "F_GuildBreak","nguild_prt","N04";
diff --git a/npc/events/nguild/nguild_kafras.txt b/npc/events/nguild/nguild_kafras.txt
index 8b448bbe3..96371ec91 100644
--- a/npc/events/nguild/nguild_kafras.txt
+++ b/npc/events/nguild/nguild_kafras.txt
@@ -39,13 +39,12 @@
function script F_GKafra {
cutin "kafra_01",2;
@GID = getcastledata(getarg(0),1);
- if (getcharid(CHAR_ID_GUILD) == @GID && getgdskilllv(@GID,10001)) goto L_StartG;
-
- mes "[Kafra Service]";
- mes "I am contracted to provide service only for the ^ff0000" + getguildname(@GID) + "^000000 Guild. Please use another Kafra Corporation staff member around here. I am Sorry for your inconvenience.";
- cutin "",255;
- close;
-L_StartG:
+ if (getcharid(CHAR_ID_GUILD) != @GID || getgdskilllv(@GID,10001) < 1) {
+ mes "[Kafra Service]";
+ mes "I am contracted to provide service only for the ^ff0000" + getguildname(@GID) + "^000000 Guild. Please use another Kafra Corporation staff member around here. I am Sorry for your inconvenience.";
+ cutin "",255;
+ close;
+ }
@wrpP[0] = 200;
@wrpD$[0] = getarg(1);
setarray @wrpC$[0], @wrpD$[0]+" ^880000"+@wrpP[0]+"^000000 z", "Cancel", "", "", "","";
diff --git a/npc/events/nguild/nguild_managers.txt b/npc/events/nguild/nguild_managers.txt
index 1d9b56966..a24a0cb15 100644
--- a/npc/events/nguild/nguild_managers.txt
+++ b/npc/events/nguild/nguild_managers.txt
@@ -63,7 +63,34 @@ function script F_GldManager {
switch (select("Kafra Staff Employment / Dismissal","Enter Treasure Room","Cancel")) {
case 1: // Employment / Dismissal
mes "[ "+getarg(0)+" ]";
- if (getcastledata(getarg(1),9) == 1) goto L_Dismiss;
+ if (getcastledata(getarg(1),9) == 1) {
+ mes "Would you like to dismiss the current Kafra?";
+ next;
+ if (select("Dismissal","Cancel") != 1) {
+ mes "[ "+getarg(0)+" ]";
+ mes "Master, I think you should keep the current Kafra Staff because she is already trying her best to serve us";
+ return;
+ }
+ cutin "kafra_01",2;
+ mes "[ Kafra Staff ]";
+ mes "Have I done anything wrong? If I did, will you please forgive me?";
+ next;
+ if (select("Dismiss","Cancel") != 1) {
+ mes "[ Kafra Staff ]";
+ mes "Thank you master, I'll do my best! ^^.";
+ cutin "kafra_01",255;
+ return;
+ }
+ mes "[ Kafra Staff ]";
+ mes "It's unfortunate that I won't be able to serve your guild anymore....";
+ next;
+ disablenpc "Kafra Staff#"+getarg(4);
+ setcastledata getarg(1),9,0;
+ cutin "kafra_01",255;
+ mes "[ "+getarg(0)+" ]";
+ mes "The Kafra has been dismissed. But... we should really get a Kafra as soon as possible!";
+ return;
+ }
if (getgdskilllv(@GID,10001) == 0){
mes "Master, you don't have a contract with the Kafra Staff Company.";
mes "In order to hire a Kafra, you must first learn the Guild skill ^5533FFContract With Kafra^000000.";
@@ -97,33 +124,6 @@ function script F_GldManager {
//mes "Your employment contract lasts ^5533FF1 month^000000. After this term is over you will have to create a new contract.";
mes "I think the Kafra Staff will benefit our guild members.";
return;
- L_Dismiss:
- mes "Would you like to dismiss the current Kafra?";
- next;
- if (select("Dismissal","Cancel") != 1) {
- mes "[ "+getarg(0)+" ]";
- mes "Master, I think you should keep the current Kafra Staff because she is already trying her best to serve us";
- return;
- }
- cutin "kafra_01",2;
- mes "[ Kafra Staff ]";
- mes "Have I done anything wrong? If I did, will you please forgive me?";
- next;
- if (select("Dismiss","Cancel") != 1) {
- mes "[ Kafra Staff ]";
- mes "Thank you master, I'll do my best! ^^.";
- cutin "kafra_01",255;
- return;
- }
- mes "[ Kafra Staff ]";
- mes "It's unfortunate that I won't be able to serve your guild anymore....";
- next;
- disablenpc "Kafra Staff#"+getarg(4);
- setcastledata getarg(1),9,0;
- cutin "kafra_01",255;
- mes "[ "+getarg(0)+" ]";
- mes "The Kafra has been dismissed. But... we should really get a Kafra as soon as possible!";
- return;
case 2: // Enter Treasure Room
mes "[ "+getarg(0)+" ]";
mes "Would you to go to our Treasure Room? Only you, the Guild Master, are allowed to enter this room.";
diff --git a/npc/events/xmas.txt b/npc/events/xmas.txt
index a6308b867..7419bc4bc 100644
--- a/npc/events/xmas.txt
+++ b/npc/events/xmas.txt
@@ -44,15 +44,14 @@
xmas_in,100,96,4 script Santa Claus::Santa2 4_M_SANTA,{
mes "[Santa Claus]";
if(xmas_npc==0) xmas_npc = 1; // For Lutie & Bard quest
- if(#event_xmas > 0 && #event_xmas < 30 ) goto L_Start;
- mes "Merry Christmas!";
- if(Class==0 || #event_xmas>=30 ) close; //anti exploit protection
- mes "I have a gift for you! Ho Ho Ho!";
- getitem rand(664,667),1; //gives one of 4 gift boxes
- ++#event_xmas;
- close;
-
-L_Start:
+ if(#event_xmas <= 0 || #event_xmas >= 30 ) {
+ mes "Merry Christmas!";
+ if(Class==0 || #event_xmas>=30 ) close; //anti exploit protection
+ mes "I have a gift for you! Ho Ho Ho!";
+ getitem rand(664,667),1; //gives one of 4 gift boxes
+ ++#event_xmas;
+ close;
+ }
mes "I'm having a bit of a problem...";
mes "Do you care to listen?";
next;
@@ -98,7 +97,12 @@ L_Start:
close;
case 2: // Give proof
mes "[Santa Claus]";
- if(countitem(Red_Socks_With_Holes) < 3) goto L_NotEnuf;
+ if(countitem(Red_Socks_With_Holes) < 3) {
+ mes "You don't have enough socks as proof.";
+ mes "Go take down those evil Santas";
+ mes "and get more for me and I'll reward you.";
+ close;
+ }
delitem 7034,3;
mes "Seems you've been doing a";
mes "good job of taking down those";
@@ -111,12 +115,6 @@ L_Start:
mes "If you get 3 more, I'll give you another.";
mes "Hope you get a good item.";
close;
-
- L_NotEnuf:
- mes "You don't have enough socks as proof.";
- mes "Go take down those evil Santas";
- mes "and get more for me and I'll reward you.";
- close;
default: // Cancel
mes "[Santa Claus]";
mes "I see. Well, at the very least";
diff --git a/npc/instances/EndlessTower.txt b/npc/instances/EndlessTower.txt
index e6947d2a4..f94bc177a 100644
--- a/npc/instances/EndlessTower.txt
+++ b/npc/instances/EndlessTower.txt
@@ -36,13 +36,6 @@
//= 2.4
//=========================================================================
-1@tower mapflag src4instance
-2@tower mapflag src4instance
-3@tower mapflag src4instance
-4@tower mapflag src4instance
-5@tower mapflag src4instance
-6@tower mapflag src4instance
-
alberta,214,77,6 script Captain Janssen 4_M_SEAMAN,{
if (checkweight(Knife,1) == 0) {
mes "^008800Wait here!!";
diff --git a/npc/instances/NydhoggsNest.txt b/npc/instances/NydhoggsNest.txt
index 16df567e3..2a64e13be 100644
--- a/npc/instances/NydhoggsNest.txt
+++ b/npc/instances/NydhoggsNest.txt
@@ -33,9 +33,6 @@
//= 1.6
//=========================================================================
-1@nyd mapflag src4instance
-2@nyd mapflag src4instance
-
nyd_dun02,100,201,3 script Yggdrasil Gatekeeper HIDDEN_NPC,8,8,{
if (ins_nyd == 0) {
mes "A great stone gate stands before you. The sculpture of a terrible dragon spreads its powerful looking wings.";
@@ -153,7 +150,7 @@ nyd_dun02,100,201,3 script Yggdrasil Gatekeeper HIDDEN_NPC,8,8,{
mes "If you are ready, I will allow you to enter.";
close;
case 2:
- goto L_Enter;
+ callsub L_Enter;
case 3:
close;
}
@@ -163,8 +160,12 @@ nyd_dun02,100,201,3 script Yggdrasil Gatekeeper HIDDEN_NPC,8,8,{
next;
if(select("I want to go in.", "I want to leave.") == 2)
close;
- goto L_Enter;
+ callsub L_Enter;
} else {
+ .@instance = has_instance2("1@nyd");
+ if (.@instance >= 0) {
+ instance_attach(.@instance);
+ }
if (.@ins_nyd_check == 1) {
if ('ins_nyd2 == 3 || 'ins_nyd2 == 4) {
mes "[Yggdrasil Gatekeeper]";
@@ -179,7 +180,7 @@ nyd_dun02,100,201,3 script Yggdrasil Gatekeeper HIDDEN_NPC,8,8,{
next;
if(select("I want to go in.", "I want to leave.") == 2)
close;
- goto L_Enter;
+ callsub L_Enter;
} else if (.@ins_nyd_check == 2) {
if (.@ins_nyd_check2 == 1) {
mes "[Yggdrasil Gatekeeper]";
diff --git a/npc/instances/OrcsMemory.txt b/npc/instances/OrcsMemory.txt
index 48412a631..28cc9bbd5 100644
--- a/npc/instances/OrcsMemory.txt
+++ b/npc/instances/OrcsMemory.txt
@@ -33,9 +33,6 @@
//= 1.7
//=========================================================================
-1@orcs mapflag src4instance
-2@orcs mapflag src4instance
-
//== Entrance ==============================================
gef_fild10,242,202,0 script Dimensional Gorge Piece 2_MONEMUS,{
diff --git a/npc/instances/SealedShrine.txt b/npc/instances/SealedShrine.txt
index 90efe6f5c..de59b7599 100644
--- a/npc/instances/SealedShrine.txt
+++ b/npc/instances/SealedShrine.txt
@@ -35,9 +35,6 @@
//= 2.3
//=========================================================================
-1@cata mapflag src4instance
-2@cata mapflag src4instance
-
//== Sealed Catacomb Entrance ==============================
monk_test,309,146,3 script Friar Patrick#edq 4_M_OLDFRIAR,{
cutin "ins_cata_pri_n",2;
diff --git a/npc/jobs/2-1/wizard.txt b/npc/jobs/2-1/wizard.txt
index 40721b064..08f2177d4 100644
--- a/npc/jobs/2-1/wizard.txt
+++ b/npc/jobs/2-1/wizard.txt
@@ -1805,7 +1805,6 @@ gef_tower,107,36,4 script White Dog#wiz 4_DOG01,{
mes "It's better to just try it yourself than to listen to my descriptions.";
close2;
cutin "job_wizard_maria01",255;
- warp "gef_dun00",116,102;
end;
case 2:
mes "[Maria]";
diff --git a/npc/jobs/2-2/crusader.txt b/npc/jobs/2-2/crusader.txt
index 1857539a5..b806d12c3 100644
--- a/npc/jobs/2-2/crusader.txt
+++ b/npc/jobs/2-2/crusader.txt
@@ -78,20 +78,6 @@ prt_castle,45,169,5 script Senior Crusader 4_M_CRU_OLD,{
mes "As it happened one thousand years ago, evil forces will one day attack in droves in an attempt to take over the world once again.";
close;
}
- else if(CRUS_Q <= 3 && countitem(Patriotism_Marks) && countitem(Sacred_Marks)) {
- mes "Ah...";
- mes "I see that you have been called to become a Crusader. We are assured of your will, but now we must test your capabilities.";
- next;
- mes "[Michael Halig]";
- mes "Meet with Moorenak Miyol who is training in the underground dungeon of the Prontera Castle. Go, and speak with him first.";
- next;
- delitem 1004, 1;
- delitem 1009, 1;
- CRUS_Q = 4;
- mes "[Michael Halig]";
- mes "Moorenak and others like him will test the limits of your capabilities and help you find your path. Return to me after you have completed their tests...";
- close;
- }
else if(CRUS_Q == 0) {
mes "We are Crusaders, warriors preparing for the Holy War.";
mes "What brings you";
@@ -223,6 +209,28 @@ prt_castle,45,169,5 script Senior Crusader 4_M_CRU_OLD,{
else if(CRUS_Q >= 1 && CRUS_Q <= 3) {
mes "Have you proven your determination with the task I have given you, or do you possess the items proving that you have received your calling?";
next;
+ if (countitem(Patriotism_Marks) >= 1 && countitem(Sacred_Marks) >= 1) {
+ mes "[Michael Halig]";
+ mes "Ah...";
+ mes "I see that you have been called to become a Crusader. We are assured of your will, but now we must test your capabilities.";
+ next;
+ mes "[Michael Halig]";
+ mes "Meet with Moorenak Miyol who is training in the underground dungeon of the Prontera Castle. Go, and speak with him first.";
+ next;
+ delitem Patriotism_Marks, 1;
+ delitem Sacred_Marks, 1;
+ CRUS_Q = 4;
+ if (questprogress(3006)) {
+ changequest 3006,3009;
+ } else if (questprogress(3007)) {
+ changequest 3007,3009;
+ } else {
+ changequest 3008,3009;
+ }
+ mes "[Michael Halig]";
+ mes "Moorenak and others like him will test the limits of your capabilities and help you find your path. Return to me after you have completed their tests...";
+ close;
+ }
switch(CRUS_Q) {
case 1:
.@item1 = 957;
diff --git a/npc/jobs/2-2/sage.txt b/npc/jobs/2-2/sage.txt
index cb5492046..49245e1ed 100644
--- a/npc/jobs/2-2/sage.txt
+++ b/npc/jobs/2-2/sage.txt
@@ -705,22 +705,36 @@ yuno_in03,105,177,5 script Written Test Professor#s 4_M_SAGE_A,{
mes "Come again when you finish the application.";
close;
}
- else if (SAGE_Q == 4) {
- mes "Welcome to the Schweicherbil Magic Academy.";
- mes "You applied for this test already, didn't you?";
- next;
- mes "[Claytos Verdo]";
- mes "Let's see, your name is " + strcharinfo(PC_NAME) + "...";
- mes "Okay, let's get started!";
- next;
- mes "[Claytos Verdo]";
- mes "The test that I am going to give you will test your knowledge on all of the academic subjects in the world.";
- mes "I will give you 20 questions, with each question being worth 5 points. When you earn a grade of 80 points, you will pass the test.";
- next;
- mes "[Claytos Verdo]";
- mes "Okay, there's no need to wait. Let's start right away";
- mes "Oh, and if you don't answer immediately, the test will be cancelled.";
-L_AskQuestions:
+ else if (SAGE_Q == 4 || SAGE_Q == 5) {
+ if (SAGE_Q == 4) {
+ mes "Welcome to the Schweicherbil Magic Academy.";
+ mes "You applied for this test already, didn't you?";
+ next;
+ mes "[Claytos Verdo]";
+ mes "Let's see, your name is " + strcharinfo(PC_NAME) + "...";
+ mes "Okay, let's get started!";
+ next;
+ mes "[Claytos Verdo]";
+ mes "The test that I am going to give you will test your knowledge on all of the academic subjects in the world.";
+ mes "I will give you 20 questions, with each question being worth 5 points. When you earn a grade of 80 points, you will pass the test.";
+ next;
+ mes "[Claytos Verdo]";
+ mes "Okay, there's no need to wait. Let's start right away";
+ mes "Oh, and if you don't answer immediately, the test will be cancelled.";
+ } else if (SAGE_Q == 5) {
+ mes "Welcome back.";
+ mes "So, did you study harder this time?";
+ next;
+ mes "[Claytos Verdo]";
+ mes "You will take the written test under the same conditions as the test you took before. I'll give you 20 questions.";
+ mes "Each correct answer will give you 5 points. When your score reaches 80 points, you pass the test.";
+ next;
+ sage_m2 = rand(1,3);
+ mes "[Claytos Verdo]";
+ mes "Okay, there's no need to wait.";
+ mes "Answer immediately, or I'll fail you again.";
+ SAGE_Q = 5;
+ }
next;
switch(rand(1,3)) {
case 1:
@@ -1025,22 +1039,6 @@ L_AskQuestions:
}
close;
}
- else if (SAGE_Q == 5) {
- mes "Welcome back.";
- mes "So, did you study harder this time?";
- next;
- mes "[Claytos Verdo]";
- mes "You will take the written test under the same conditions as the test you took before. I'll give you 20 questions.";
- mes "Each correct answer will give you 5 points. When your score reaches 80 points, you pass the test.";
- next;
- sage_m2 = rand(1,3);
- mes "[Claytos Verdo]";
- mes "Okay, there's no need to wait.";
- mes "Answer immediately, or I'll fail you again.";
- SAGE_Q = 5;
- goto L_AskQuestions;
- end;
- }
else if (SAGE_Q == 6) {
mes "What else do you want?! Do you want to take this test again?";
mes "You've already passed!";
diff --git a/npc/mapflag/gvg.txt b/npc/mapflag/gvg.txt
index 18b644615..b30ff1340 100644
--- a/npc/mapflag/gvg.txt
+++ b/npc/mapflag/gvg.txt
@@ -120,9 +120,5 @@ nguild_prt mapflag gvg_castle
//nguild_prt mapflag monster_noteleport
// Guild Dungeons =========
-gld_dun01 mapflag gvg_dungeon
-gld_dun02 mapflag gvg_dungeon
-gld_dun03 mapflag gvg_dungeon
-gld_dun04 mapflag gvg_dungeon
arug_dun01 mapflag gvg_dungeon
schg_dun01 mapflag gvg_dungeon
diff --git a/npc/mapflag/nobranch.txt b/npc/mapflag/nobranch.txt
index 60db05cf5..4ad59ad67 100644
--- a/npc/mapflag/nobranch.txt
+++ b/npc/mapflag/nobranch.txt
@@ -306,15 +306,7 @@ que_qaru04 mapflag nobranch
que_qaru05 mapflag nobranch
// Episode 12 ===========
-1@cata mapflag nobranch
-2@cata mapflag nobranch
e_tower mapflag nobranch
-1@tower mapflag nobranch
-2@tower mapflag nobranch
-3@tower mapflag nobranch
-4@tower mapflag nobranch
-5@tower mapflag nobranch
-6@tower mapflag nobranch
// Episode 13.1 ===========
mid_camp mapflag nobranch
@@ -325,8 +317,6 @@ que_dan01 mapflag nobranch
que_dan02 mapflag nobranch
schg_que01 mapflag nobranch
arug_que01 mapflag nobranch
-1@orcs mapflag nobranch
-2@orcs mapflag nobranch
// Battle Grounds ==============
bat_c01 mapflag nobranch
@@ -339,8 +329,6 @@ bat_a01 mapflag nobranch
bat_a02 mapflag nobranch
// Episode 13.2 ===========
-1@nyd mapflag nobranch
-2@nyd mapflag nobranch
manuk mapflag nobranch
man_fild02 mapflag nobranch
man_in01 mapflag nobranch
@@ -377,7 +365,6 @@ s_atelier mapflag nobranch
// Episode 14.1 & Dewata ===========
mora mapflag nobranch
-1@mist mapflag nobranch
dewata mapflag nobranch
dew_in01 mapflag nobranch
@@ -385,16 +372,9 @@ dew_in01 mapflag nobranch
malangdo mapflag nobranch
mal_in01 mapflag nobranch
mal_in02 mapflag nobranch
-1@cash mapflag nobranch
-1@pump mapflag nobranch
-2@pump mapflag nobranch
-1@lhz mapflag nobranch
malaya mapflag nobranch
ma_scene01 mapflag nobranch
ma_in01 mapflag nobranch
-1@ma_h mapflag nobranch
-1@ma_c mapflag nobranch
-1@ma_b mapflag nobranch
// Episode 14.2 ===========
eclage mapflag nobranch
@@ -402,7 +382,6 @@ ecl_in01 mapflag nobranch
ecl_in02 mapflag nobranch
ecl_in03 mapflag nobranch
ecl_in04 mapflag nobranch
-1@ecl mapflag nobranch
ecl_hub01 mapflag nobranch
// Episode 14.3 ===========
@@ -411,12 +390,6 @@ c_tower3_ mapflag nobranch
gl_chyard_ mapflag nobranch
gl_cas02_ mapflag nobranch
-// Ghost Palace ===========
-1@spa mapflag nobranch
-
-// Sara's Memory Instance ===========
-1@sara mapflag nobranch
-
//evt_zombie mapflag nobranch
// Poring War ==================
diff --git a/npc/mapflag/noicewall.txt b/npc/mapflag/noicewall.txt
index 6c1af1b09..195bec2bb 100644
--- a/npc/mapflag/noicewall.txt
+++ b/npc/mapflag/noicewall.txt
@@ -159,53 +159,6 @@ nguild_gef mapflag noicewall
nguild_pay mapflag noicewall
nguild_prt mapflag noicewall
-//Endless Tower ==================
-1@tower mapflag noicewall
-2@tower mapflag noicewall
-3@tower mapflag noicewall
-4@tower mapflag noicewall
-5@tower mapflag noicewall
-6@tower mapflag noicewall
-
-// Orc's Memory ===================
-1@orcs mapflag noicewall
-2@orcs mapflag noicewall
-
-// Nidhoggr's Instance ===========
-1@nyd mapflag noicewall
-2@nyd mapflag noicewall
-
-// Misty Forest Labyrinth ===========
-1@mist mapflag noicewall
-
-// Octopus Cave ===========
-1@cash mapflag noicewall
-
-// Drain ===========
-1@pump mapflag noicewall
-2@pump mapflag noicewall
-
-// Somatology Laboratory ===========
-1@lhz mapflag noicewall
-
-// Bangungot Hospital F2 ===========
-1@ma_h mapflag noicewall
-
-// Buwaya Cave ===========
-1@ma_c mapflag noicewall
-
-// Bakonawa Hideout ===========
-1@ma_b mapflag noicewall
-
-// Inside Eclage ===========
-1@ecl mapflag noicewall
-
-// Ghost Palace ===========
-1@spa mapflag noicewall
-
-// Sara's Memory Instance ===========
-1@sara mapflag noicewall
-
// Poring War ====================
poring_w01 mapflag noicewall
poring_w02 mapflag noicewall
diff --git a/npc/mapflag/nomemo.txt b/npc/mapflag/nomemo.txt
index a0dd66e9d..662bf4c05 100644
--- a/npc/mapflag/nomemo.txt
+++ b/npc/mapflag/nomemo.txt
@@ -656,18 +656,8 @@ que_qaru03 mapflag nomemo
que_qaru04 mapflag nomemo
que_qaru05 mapflag nomemo
-//Sealed Shrine ==================
-1@cata mapflag nomemo
-2@cata mapflag nomemo
-
//Endless Tower ==================
e_tower mapflag nomemo
-1@tower mapflag nomemo
-2@tower mapflag nomemo
-3@tower mapflag nomemo
-4@tower mapflag nomemo
-5@tower mapflag nomemo
-6@tower mapflag nomemo
// Battle Grounds ================
bat_c01 mapflag nomemo
@@ -731,7 +721,6 @@ dic_dun02 mapflag nomemo
// Episode 14 ====================
bif_fild01 mapflag nomemo
bif_fild02 mapflag nomemo
-1@mist mapflag nomemo
mora mapflag nomemo
dew_dun01 mapflag nomemo
dew_dun02 mapflag nomemo
@@ -740,13 +729,9 @@ dic_dun03 mapflag nomemo
mal_in01 mapflag nomemo
mal_in02 mapflag nomemo
mal_dun01 mapflag nomemo
-1@cash mapflag nomemo
-1@pump mapflag nomemo
-2@pump mapflag nomemo
iz_dun05 mapflag nomemo
lhz_dun04 mapflag nomemo
que_lhz mapflag nomemo
-1@lhz mapflag nomemo
gld_dun01_2 mapflag nomemo
gld_dun02_2 mapflag nomemo
gld_dun03_2 mapflag nomemo
@@ -758,9 +743,6 @@ gld2_prt mapflag nomemo
ma_scene01 mapflag nomemo
ma_in01 mapflag nomemo
ma_dun01 mapflag nomemo
-1@ma_h mapflag nomemo
-1@ma_c mapflag nomemo
-1@ma_b mapflag nomemo
ma_zif01 mapflag nomemo
ma_zif02 mapflag nomemo
ma_zif03 mapflag nomemo
@@ -776,7 +758,6 @@ ecl_in01 mapflag nomemo
ecl_in02 mapflag nomemo
ecl_in03 mapflag nomemo
ecl_in04 mapflag nomemo
-1@ecl mapflag nomemo
ecl_tdun01 mapflag nomemo
ecl_tdun02 mapflag nomemo
ecl_tdun03 mapflag nomemo
@@ -791,20 +772,6 @@ c_tower3_ mapflag nomemo
gl_chyard_ mapflag nomemo
gl_cas02_ mapflag nomemo
-//Orc's Memory ===================
-1@orcs mapflag nomemo
-2@orcs mapflag nomemo
-
-// Nidhoggr's Instance ===========
-1@nyd mapflag nomemo
-2@nyd mapflag nomemo
-
-// Ghost Palace ===========
-1@spa mapflag nomemo
-
-// Sara's Memory Instance ===========
-1@sara mapflag nomemo
-
//evt_zombie mapflag nomemo
// Poring War ====================
diff --git a/npc/mapflag/nopvp.txt b/npc/mapflag/nopvp.txt
index 8a396bf69..41127332b 100644
--- a/npc/mapflag/nopvp.txt
+++ b/npc/mapflag/nopvp.txt
@@ -32,30 +32,6 @@
//= Prevents PvP mode on a map.
//=========================================================================
-1@cata mapflag pvp off
-2@cata mapflag pvp off
-1@nyd mapflag pvp off
-2@nyd mapflag pvp off
-1@orcs mapflag pvp off
-2@orcs mapflag pvp off
-1@tower mapflag pvp off
-2@tower mapflag pvp off
-3@tower mapflag pvp off
-4@tower mapflag pvp off
-5@tower mapflag pvp off
-6@tower mapflag pvp off
-1@mist mapflag pvp off
-1@cash mapflag pvp off
-1@pump mapflag pvp off
-2@pump mapflag pvp off
-1@lhz mapflag pvp off
-1@ma_h mapflag pvp off
-1@ma_c mapflag pvp off
-1@ma_b mapflag pvp off
-1@ecl mapflag pvp off
-1@spa mapflag pvp off
-1@sara mapflag pvp off
-
bat_a01 mapflag pvp off
bat_a02 mapflag pvp off
bat_b01 mapflag pvp off
diff --git a/npc/mapflag/nosave.txt b/npc/mapflag/nosave.txt
index 3465cc0c3..8137e500b 100644
--- a/npc/mapflag/nosave.txt
+++ b/npc/mapflag/nosave.txt
@@ -281,18 +281,8 @@ que_qaru03 mapflag nosave SavePoint
que_qaru04 mapflag nosave SavePoint
que_qaru05 mapflag nosave SavePoint
-// Sealed Shrine ==================
-1@cata mapflag nosave SavePoint
-2@cata mapflag nosave SavePoint
-
// Endless Tower ==================
e_tower mapflag nosave SavePoint
-1@tower mapflag nosave SavePoint
-2@tower mapflag nosave SavePoint
-3@tower mapflag nosave SavePoint
-4@tower mapflag nosave SavePoint
-5@tower mapflag nosave SavePoint
-6@tower mapflag nosave SavePoint
// Battle Grounds ==============
bat_c01 mapflag nosave SavePoint
@@ -312,45 +302,8 @@ schg_dun01 mapflag nosave SavePoint
arug_que01 mapflag nosave SavePoint
arug_dun01 mapflag nosave SavePoint
-// Orc's Memory ===================
-1@orcs mapflag nosave SavePoint
-2@orcs mapflag nosave SavePoint
-
-// Nidhoggr's Instance ===========
-1@nyd mapflag nosave SavePoint
-2@nyd mapflag nosave SavePoint
-
-// Misty Forest Labyrinth ===========
-1@mist mapflag nosave SavePoint
-
-// Octopus Cave ===========
-1@cash mapflag nosave SavePoint
-
-// Drain ===========
-1@pump mapflag nosave SavePoint
-2@pump mapflag nosave SavePoint
-
// Somatology Laboratory ===========
que_lhz mapflag nosave SavePoint
-1@lhz mapflag nosave SavePoint
-
-// Bangungot Hospital F2 ===========
-1@ma_h mapflag nosave SavePoint
-
-// Buwaya Cave ===========
-1@ma_c mapflag nosave SavePoint
-
-// Bakonawa Hideout ===========
-1@ma_b mapflag nosave SavePoint
-
-// Inside Eclage ===========
-1@ecl mapflag nosave SavePoint
-
-// Ghost Palace ===========
-1@spa mapflag nosave SavePoint
-
-// Sara's Memory Instance ===========
-1@sara mapflag nosave SavePoint
//evt_zombie mapflag nosave SavePoint
diff --git a/npc/mapflag/noteleport.txt b/npc/mapflag/noteleport.txt
index 8b1109ef1..700964da4 100644
--- a/npc/mapflag/noteleport.txt
+++ b/npc/mapflag/noteleport.txt
@@ -368,26 +368,8 @@ que_qaru04 mapflag monster_noteleport
que_qaru05 mapflag noteleport
que_qaru05 mapflag monster_noteleport
-//Sealed Shrine ==================
-1@cata mapflag noteleport
-1@cata mapflag monster_noteleport
-2@cata mapflag noteleport
-2@cata mapflag monster_noteleport
-
//Endless Tower ==================
e_tower mapflag noteleport
-1@tower mapflag noteleport
-1@tower mapflag monster_noteleport
-2@tower mapflag noteleport
-2@tower mapflag monster_noteleport
-3@tower mapflag noteleport
-3@tower mapflag monster_noteleport
-4@tower mapflag noteleport
-4@tower mapflag monster_noteleport
-5@tower mapflag noteleport
-5@tower mapflag monster_noteleport
-6@tower mapflag noteleport
-6@tower mapflag monster_noteleport
// Battle Grounds ==============
bat_c01 mapflag noteleport
@@ -413,29 +395,13 @@ bra_in01 mapflag noteleport
dic_in01 mapflag noteleport
// Episode 14 ====================
-1@mist mapflag noteleport
-1@mist mapflag monster_noteleport
dew_in01 mapflag noteleport
mal_in01 mapflag noteleport
mal_in02 mapflag noteleport
-1@cash mapflag noteleport
-1@cash mapflag monster_noteleport
-1@pump mapflag noteleport
-1@pump mapflag monster_noteleport
-2@pump mapflag noteleport
-2@pump mapflag monster_noteleport
que_lhz mapflag noteleport
que_lhz mapflag monster_noteleport
-1@lhz mapflag noteleport
-1@lhz mapflag monster_noteleport
ma_scene01 mapflag noteleport
ma_in01 mapflag noteleport
-1@ma_h mapflag noteleport
-1@ma_h mapflag monster_noteleport
-1@ma_c mapflag noteleport
-1@ma_c mapflag monster_noteleport
-1@ma_b mapflag noteleport
-1@ma_b mapflag monster_noteleport
ma_zif01 mapflag noteleport
ma_zif02 mapflag noteleport
ma_zif03 mapflag noteleport
@@ -449,35 +415,13 @@ ecl_in01 mapflag noteleport
ecl_in02 mapflag noteleport
ecl_in03 mapflag noteleport
ecl_in04 mapflag noteleport
-1@ecl mapflag noteleport
-1@ecl mapflag monster_noteleport
ecl_hub01 mapflag noteleport
dali mapflag noteleport
dali02 mapflag noteleport
-//Orc's Memory ===================
-1@orcs mapflag noteleport
-1@orcs mapflag monster_noteleport
-2@orcs mapflag noteleport
-2@orcs mapflag monster_noteleport
-
// Yggdrasil Dungeon =============
nyd_dun02 mapflag noteleport
-// Nidhoggr's Instance ===========
-1@nyd mapflag noteleport
-1@nyd mapflag monster_noteleport
-2@nyd mapflag noteleport
-2@nyd mapflag monster_noteleport
-
-// Ghost Palace ===========
-1@spa mapflag noteleport
-1@spa mapflag monster_noteleport
-
-// Sara's Memory Instance ===========
-1@sara mapflag noteleport
-1@sara mapflag monster_noteleport
-
//evt_zombie mapflag noteleport
// Poring War ====================
diff --git a/npc/mapflag/nowarpto.txt b/npc/mapflag/nowarpto.txt
index 34d093ae2..783dc8cc9 100644
--- a/npc/mapflag/nowarpto.txt
+++ b/npc/mapflag/nowarpto.txt
@@ -115,18 +115,8 @@ que_qaru03 mapflag nowarpto
que_qaru04 mapflag nowarpto
que_qaru05 mapflag nowarpto
-//Sealed Shrine ==================
-1@cata mapflag nowarpto
-2@cata mapflag nowarpto
-
//Endless Tower ==================
e_tower mapflag nowarpto
-1@tower mapflag nowarpto
-2@tower mapflag nowarpto
-3@tower mapflag nowarpto
-4@tower mapflag nowarpto
-5@tower mapflag nowarpto
-6@tower mapflag nowarpto
// Battle Grounds ==============
bat_c01 mapflag nowarpto
@@ -160,17 +150,6 @@ splendide mapflag nowarpto
spl_fild01 mapflag nowarpto
spl_in01 mapflag nowarpto
-//Orc's Memory ===================
-1@orcs mapflag nowarpto
-2@orcs mapflag nowarpto
-
-// Nidhoggr's Instance ===========
-1@nyd mapflag nowarpto
-2@nyd mapflag nowarpto
-
-// Ghost Palace ===========
-1@spa mapflag nowarpto
-
// Poring War ====================
poring_w01 mapflag nowarpto
poring_w02 mapflag nowarpto
diff --git a/npc/mapflag/partylock.txt b/npc/mapflag/partylock.txt
index 9e604fedc..1aa9d4991 100644
--- a/npc/mapflag/partylock.txt
+++ b/npc/mapflag/partylock.txt
@@ -33,54 +33,3 @@
//= Blocks all party modifications on a map:
//= /organize, /leave, /invite, @changeleader
//=========================================================================
-
-// Sealed Shrine ==================
-1@cata mapflag partylock
-2@cata mapflag partylock
-
-// Endless Tower ==================
-1@tower mapflag partylock
-2@tower mapflag partylock
-3@tower mapflag partylock
-4@tower mapflag partylock
-5@tower mapflag partylock
-6@tower mapflag partylock
-
-// Orc's Memory ===================
-1@orcs mapflag partylock
-2@orcs mapflag partylock
-
-// Nidhoggr's Instance ===========
-1@nyd mapflag partylock
-2@nyd mapflag partylock
-
-// Misty Forest Labyrinth ===========
-1@mist mapflag partylock
-
-// Octopus Cave ===========
-1@cash mapflag partylock
-
-// Drain ===========
-1@pump mapflag partylock
-2@pump mapflag partylock
-
-// Somatology Laboratory ===========
-1@lhz mapflag partylock
-
-// Bangungot Hospital F2 ===========
-1@ma_h mapflag partylock
-
-// Buwaya Cave ===========
-1@ma_c mapflag partylock
-
-// Bakonawa Hideout ===========
-1@ma_b mapflag partylock
-
-// Inside Eclage ===========
-1@ecl mapflag partylock
-
-// Ghost Palace ===========
-1@spa mapflag partylock
-
-// Sara's Memory Instance ===========
-1@sara mapflag partylock
diff --git a/npc/mapflag/zone.txt b/npc/mapflag/zone.txt
index cb73a32ec..b90116911 100644
--- a/npc/mapflag/zone.txt
+++ b/npc/mapflag/zone.txt
@@ -75,37 +75,6 @@ prt_are_in mapflag zone Izlude Battle Arena
1@nyd mapflag zone Memorial Dungeon
2@nyd mapflag zone Memorial Dungeon
-// Misty Forest Labyrinth ===========
-1@mist mapflag zone Memorial Dungeon
-
-// Octopus Cave ===========
-1@cash mapflag zone Memorial Dungeon
-
-// Drain ===========
-1@pump mapflag zone Memorial Dungeon
-2@pump mapflag zone Memorial Dungeon
-
-// Somatology Laboratory ===========
-1@lhz mapflag zone Memorial Dungeon
-
-// Bangungot Hospital F2 ===========
-1@ma_h mapflag zone Memorial Dungeon
-
-// Buwaya Cave ===========
-1@ma_c mapflag zone Memorial Dungeon
-
-// Bakonawa Hideout ===========
-1@ma_b mapflag zone Memorial Dungeon
-
-// Inside Eclage ===========
-1@ecl mapflag zone Memorial Dungeon
-
-// Ghost Palace ===========
-1@spa mapflag zone Memorial Dungeon
-
-// Sara's Memory Instance ===========
-1@sara mapflag zone Memorial Dungeon
-
//Towns
alberta mapflag zone Towns
aldebaran mapflag zone Towns
diff --git a/npc/merchants/clothes_dyer.txt b/npc/merchants/clothes_dyer.txt
index 431a51cab..4204f600f 100644
--- a/npc/merchants/clothes_dyer.txt
+++ b/npc/merchants/clothes_dyer.txt
@@ -141,7 +141,7 @@ function Dyes;
mes " - White: White Dyestuffs";
break;
case 4:
- goto L_End;
+ callsub L_End;
}
}
@@ -158,7 +158,7 @@ function Dyes {
.@menu$ += "- "+.@DyeName$[getarg(.@i)]+":";
.@menu$ += "- ^777777Cancel^000000";
.@s = select(.@menu$)-1;
- if (.@s == (getargcount()/2)+1) goto L_End;
+ if (.@s == (getargcount()/2)+1) callsub L_End;
mes .n$;
if (.@s == 0) {
mes "I can change your dye to";
@@ -172,7 +172,7 @@ function Dyes {
mes "Your clothes have been dyed "+.@DyeName$[0]+".";
close;
case 2:
- goto L_End;
+ callsub L_End;
}
}
if (!countitem(.@DyeItems[getarg((.@s-1)*2)])) {
diff --git a/npc/other/CashShop_Functions.txt b/npc/other/CashShop_Functions.txt
index 629e91b8a..92fe841e1 100644
--- a/npc/other/CashShop_Functions.txt
+++ b/npc/other/CashShop_Functions.txt
@@ -56,10 +56,14 @@ function script F_CashStore {
// - Summons Party members on party leader map to that location.
// - No arguments.
function script F_CashPartyCall {
- warp "Random",0,0;
- if (getpartyleader(getcharid(CHAR_ID_PARTY),2) == getcharid(CHAR_ID_CHAR)) {
- getmapxy(.@mapl$, .@xl, .@yl, UNITTYPE_PC);
- warpparty .@mapl$, .@xl, .@yl, getcharid(CHAR_ID_PARTY), .@mapl$;
+ warp "Random", 0, 0;
+ if (getpartyleader(getcharid(CHAR_ID_PARTY), 2) == getcharid(CHAR_ID_CHAR)) {
+ getmapxy(.@map$, .@x, .@y, UNITTYPE_PC);
+ do {
+ .@x2 = .@x + rand(-2, 2);
+ .@y2 = .@y + rand(-2, 2);
+ } while (checkcell(.@map$, .@x2, .@y2, cell_chknopass));
+ warpparty(.@map$, .@x2, .@y2, getcharid(CHAR_ID_PARTY), .@map$, false);
}
return;
}
diff --git a/npc/other/Global_Functions.txt b/npc/other/Global_Functions.txt
index f6068d598..544e3a672 100644
--- a/npc/other/Global_Functions.txt
+++ b/npc/other/Global_Functions.txt
@@ -156,16 +156,6 @@ function script F_Rand {
return getarg(rand(getargcount()));
}
-//== Function F_Sex ========================================
-// Returns 1st argument if female, 2nd argument otherwise
-// Example: mes callfunc("F_Sex","What a beautiful lady!","What a handsome man!");
-function script F_SexMes {
- if (Sex == SEX_MALE)
- return getarg(0);
- else
- return getarg(1);
-}
-
//== Function F_Hi =========================================
// Returns random HELLO message
function script F_Hi {
diff --git a/npc/other/hugel_bingo.txt b/npc/other/hugel_bingo.txt
index 965405807..9c7b87ee4 100644
--- a/npc/other/hugel_bingo.txt
+++ b/npc/other/hugel_bingo.txt
@@ -96,26 +96,25 @@ OnTouch:
@bingo_e4$ = 0;
@bingo_e5$ = 0;
@bingo_case = 1;
-L_Fill:
- @bingo_fill = callfunc("Func_Bingo",@bingo_case);
- if (!@bingo_fill) {
- mes "The numbers you have entered";
- mes "exceed the limit, or you have";
- mes "already entered these numbers.";
- mes "Please enter your numbers again.";
- next;
- } else if (@bingo_fill) {
- if(@bingoplate[25] < 10) @bingo_e5$ = "0"+@bingoplate[25]+""; else @bingo_e5$ = @bingoplate[25];
- donpcevent "start#bingo::OnEnter";
- mes "["+@bingo_a1$+"] ["+@bingo_a2$+"] ["+@bingo_a3$+"] ["+@bingo_a4$+"] ["+@bingo_a5$+"]";
- mes "["+@bingo_b1$+"] ["+@bingo_b2$+"] ["+@bingo_b3$+"] ["+@bingo_b4$+"] ["+@bingo_b5$+"]";
- mes "["+@bingo_c1$+"] ["+@bingo_c2$+"] ["+@bingo_c3$+"] ["+@bingo_c4$+"] ["+@bingo_c5$+"]";
- mes "["+@bingo_d1$+"] ["+@bingo_d2$+"] ["+@bingo_d3$+"] ["+@bingo_d4$+"] ["+@bingo_d5$+"]";
- mes "["+@bingo_e1$+"] ["+@bingo_e2$+"] ["+@bingo_e3$+"] ["+@bingo_e4$+"] ["+@bingo_e5$+"]";
- close;
-
+ while (true) {
+ @bingo_fill = callfunc("Func_Bingo",@bingo_case);
+ if (!@bingo_fill) {
+ mes "The numbers you have entered";
+ mes "exceed the limit, or you have";
+ mes "already entered these numbers.";
+ mes "Please enter your numbers again.";
+ next;
+ } else if (@bingo_fill) {
+ if(@bingoplate[25] < 10) @bingo_e5$ = "0"+@bingoplate[25]+""; else @bingo_e5$ = @bingoplate[25];
+ donpcevent "start#bingo::OnEnter";
+ mes "["+@bingo_a1$+"] ["+@bingo_a2$+"] ["+@bingo_a3$+"] ["+@bingo_a4$+"] ["+@bingo_a5$+"]";
+ mes "["+@bingo_b1$+"] ["+@bingo_b2$+"] ["+@bingo_b3$+"] ["+@bingo_b4$+"] ["+@bingo_b5$+"]";
+ mes "["+@bingo_c1$+"] ["+@bingo_c2$+"] ["+@bingo_c3$+"] ["+@bingo_c4$+"] ["+@bingo_c5$+"]";
+ mes "["+@bingo_d1$+"] ["+@bingo_d2$+"] ["+@bingo_d3$+"] ["+@bingo_d4$+"] ["+@bingo_d5$+"]";
+ mes "["+@bingo_e1$+"] ["+@bingo_e2$+"] ["+@bingo_e3$+"] ["+@bingo_e4$+"] ["+@bingo_e5$+"]";
+ close;
+ }
}
- goto L_Fill;
}
que_bingo,53,121,0 duplicate(plate1#bingo) plate2#bingo HIDDEN_WARP_NPC,1,1
diff --git a/npc/other/marriage.txt b/npc/other/marriage.txt
index bbd659420..0f640af2a 100644
--- a/npc/other/marriage.txt
+++ b/npc/other/marriage.txt
@@ -58,7 +58,7 @@ prt_church,97,100,4 script Wedding Staff#w 1_F_LIBRARYGIRL,{
mes "married. For now, why";
mes "don't you enjoy the simple";
mes "pleasures of childhood?";
- goto L_End;
+ callsub L_End;
}
mes "[Marry Happy]";
mes "Oh, of course you";
@@ -67,7 +67,7 @@ prt_church,97,100,4 script Wedding Staff#w 1_F_LIBRARYGIRL,{
mes "are too many laws against";
mes "that~ Aren't you the most";
mes "adorable little thing?";
- goto L_End;
+ callsub L_End;
}
mes "[Marry Happy]";
mes "Marriage is the beautiful";
@@ -166,7 +166,7 @@ prt_church,97,100,4 script Wedding Staff#w 1_F_LIBRARYGIRL,{
mes "If there was something";
mes "you didn't understand,";
mes "feel free to ask me again.";
- goto L_End;
+ callsub L_End;
}
mes "[Marry Happy]";
mes "The easiest way to write";
@@ -262,7 +262,7 @@ prt_church,97,100,4 script Wedding Staff#w 1_F_LIBRARYGIRL,{
mes "you can consider marriage.";
mes "After you grow stronger,";
mes "come and talk to me again.";
- goto L_End;
+ callsub L_End;
}
else if (countitem(Diamond_Ring) < 1) {
mes "[Marry Happy]";
@@ -272,7 +272,7 @@ prt_church,97,100,4 script Wedding Staff#w 1_F_LIBRARYGIRL,{
mes "during the wedding ceremony?";
mes "Look for it carefully and come";
mes "back after you find it, okay?";
- goto L_End;
+ callsub L_End;
} else if (Sex == SEX_MALE) {
if (Zeny < 1300000) {
mes "[Marry Happy]";
@@ -281,7 +281,7 @@ prt_church,97,100,4 script Wedding Staff#w 1_F_LIBRARYGIRL,{
mes "that all grooms must pay";
mes "for the wedding ceremony.";
mes "Did you misplace your money?";
- goto L_End;
+ callsub L_End;
}
else if (countitem(Tuxedo) < 1) {
mes "[Marry Happy]";
@@ -291,7 +291,7 @@ prt_church,97,100,4 script Wedding Staff#w 1_F_LIBRARYGIRL,{
mes "ceremony! Find it, bring it";
mes "to me, and then we can finally";
mes "begin the wedding, okay?";
- goto L_End;
+ callsub L_End;
}
} else if (Sex == SEX_FEMALE) {
if (Zeny < 1200000) {
@@ -302,7 +302,7 @@ prt_church,97,100,4 script Wedding Staff#w 1_F_LIBRARYGIRL,{
mes "wedding ceremony. Perhaps";
mes "you could ask your partner";
mes "to help you with the funds?";
- goto L_End;
+ callsub L_End;
}
else if (countitem(Wedding_Dress) < 1) {
mes "[Marry Happy]";
@@ -312,7 +312,7 @@ prt_church,97,100,4 script Wedding Staff#w 1_F_LIBRARYGIRL,{
mes "bring it to me-- you";
mes "absolutely need it";
mes "for the wedding!";
- goto L_End;
+ callsub L_End;
}
}
mes "[Marry Happy]";
@@ -379,7 +379,7 @@ prt_church,97,100,4 script Wedding Staff#w 1_F_LIBRARYGIRL,{
}
delitem Diamond_Ring,1;
wedding_sign = 1;
- goto L_End;
+ callsub L_End;
}
mes "[Marry Happy]";
mes "No...?";
@@ -626,7 +626,7 @@ prt_church,100,128,4 script Bishop#w 1_M_PASTOR,{
mes "It's old fashioned protocol,";
mes "but I'll admit that it does";
mes "keep things running smoothly.";
- goto L_End;
+ callsub L_End;
}
mes "[Vomars]";
mes "Before you can be";
@@ -635,7 +635,7 @@ prt_church,100,128,4 script Bishop#w 1_M_PASTOR,{
mes "two with your partner.";
mes "Then, we can proceed";
mes "with the ceremony.";
- goto L_End;
+ callsub L_End;
}
mes "[Vomars]";
mes "You must apply for";
@@ -644,7 +644,7 @@ prt_church,100,128,4 script Bishop#w 1_M_PASTOR,{
mes "Happy Marry will let you know";
mes "what else you'll need to do";
mes "to prepare for marriage.";
- goto L_End;
+ callsub L_End;
}
else if ($@wedding == 1) {
if (wedding_sign == 1) {
@@ -734,7 +734,7 @@ prt_church,100,128,4 script Bishop#w 1_M_PASTOR,{
mes "the ceremony has finished";
mes "Please try again once he's";
mes "returned.";
- goto L_End;
+ callsub L_End;
}
else {
cutin "wedding_bomars03",2;
@@ -769,7 +769,7 @@ prt_church,100,128,4 script Bishop#w 1_M_PASTOR,{
mes "application. Please speak";
mes "to her so that we can begin";
mes "the wedding ceremony.";
- goto L_End;
+ callsub L_End;
}
callsub S_Busy;
}
@@ -796,14 +796,14 @@ S_Busy:
mes "Mister "+ $@wed_groom$;
mes "is currently in progress.";
mes "Please keep your voice down.";
- goto L_End;
+ callsub L_End;
}
mes "[Vomars]";
mes "I'm conducting a wedding";
mes "for another couple now, so";
mes "please wait patiently for your";
mes "turn. Thanks for understanding... ";
- goto L_End;
+ callsub L_End;
OnStop:
stopnpctimer;
diff --git a/npc/pre-re/mapflag/gvg.txt b/npc/pre-re/mapflag/gvg.txt
new file mode 100644
index 000000000..39be0ee7b
--- /dev/null
+++ b/npc/pre-re/mapflag/gvg.txt
@@ -0,0 +1,41 @@
+//================= Hercules Script =======================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//================= License ===============================================
+//= This file is part of Hercules.
+//= http://herc.ws - http://github.com/HerculesWS/Hercules
+//=
+//= Copyright (C) 2017 Hercules Dev Team
+//=
+//= Hercules is free software: you can redistribute it and/or modify
+//= it under the terms of the GNU General Public License as published by
+//= the Free Software Foundation, either version 3 of the License, or
+//= (at your option) any later version.
+//=
+//= This program is distributed in the hope that it will be useful,
+//= but WITHOUT ANY WARRANTY; without even the implied warranty of
+//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//= GNU General Public License for more details.
+//=
+//= You should have received a copy of the GNU General Public License
+//= along with this program. If not, see <http://www.gnu.org/licenses/>.
+//=========================================================================
+//= Mapflag: Guild versus Guild mode.
+//================= Current Version =======================================
+//= 1.0
+//================= Description ===========================================
+//= Players can attack other guilds, and will have their guild
+//= icons shown. WoE damage reductions will also take place.
+//= gvg: Turns on GvG mode
+//= gvg_castle: Describes castle maps for WoE.
+//=========================================================================
+
+// Guild Dungeons =========
+gld_dun01 mapflag gvg_dungeon
+gld_dun02 mapflag gvg_dungeon
+gld_dun03 mapflag gvg_dungeon
+gld_dun04 mapflag gvg_dungeon
diff --git a/npc/pre-re/scripts_main.conf b/npc/pre-re/scripts_main.conf
index 9381497ec..dda475310 100644
--- a/npc/pre-re/scripts_main.conf
+++ b/npc/pre-re/scripts_main.conf
@@ -62,6 +62,7 @@ npc_global_list: (
//- Pre-Renewal Script Files -
@include "npc/pre-re/scripts.conf"
@include "npc/pre-re/scripts_jobs.conf"
+@include "npc/pre-re/scripts_mapflags.conf"
@include "npc/pre-re/scripts_monsters.conf"
@include "npc/pre-re/scripts_warps.conf"
diff --git a/npc/pre-re/scripts_mapflags.conf b/npc/pre-re/scripts_mapflags.conf
new file mode 100644
index 000000000..03c798aa6
--- /dev/null
+++ b/npc/pre-re/scripts_mapflags.conf
@@ -0,0 +1,30 @@
+//================= Hercules Configuration ================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//================= License ===============================================
+//= This file is part of Hercules.
+//= http://herc.ws - http://github.com/HerculesWS/Hercules
+//=
+//= Copyright (C) 2017 Hercules Dev Team
+//=
+//= Hercules is free software: you can redistribute it and/or modify
+//= it under the terms of the GNU General Public License as published by
+//= the Free Software Foundation, either version 3 of the License, or
+//= (at your option) any later version.
+//=
+//= This program is distributed in the hope that it will be useful,
+//= but WITHOUT ANY WARRANTY; without even the implied warranty of
+//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//= GNU General Public License for more details.
+//=
+//= You should have received a copy of the GNU General Public License
+//= along with this program. If not, see <http://www.gnu.org/licenses/>.
+//=========================================================================
+//= Map Flags
+//=========================================================================
+
+"npc/pre-re/mapflag/gvg.txt",
diff --git a/npc/quests/bard_quest.txt b/npc/quests/bard_quest.txt
index 0c46a9ab6..79eca7720 100644
--- a/npc/quests/bard_quest.txt
+++ b/npc/quests/bard_quest.txt
@@ -166,19 +166,19 @@ geffen,132,38,3 script Bard#2 1_M_BARD,{
next;
mes "[Errende]";
mes "I hope that you'll always remain honest and respectful towards other people, and that you continue to ignore greed for fortune or power.";
- goto L_End;
+ callsub L_End;
} else if (gef_bard_q > 11 && gef_bard_q < 14) {
cutin "bard_eland02",2;
mes "[Errende]";
mes "It seems you haven't found it yet. Well, take your time, I can wait as long as you want. It doesn't really bore me, since waiting seems to be a part of my profession.";
- goto L_End;
+ callsub L_End;
} else if (gef_bard_q == 11) {
cutin "bard_eland01",2;
mes "[Errende]";
mes "Mr. Skezti has a small book store on the book street at the right side of Mineta in Juno. If you show him the seal, he'll help you out.";
- goto L_End;
+ callsub L_End;
} else if (gef_bard_q == 10) {
cutin "bard_eland01",2;
@@ -208,7 +208,7 @@ geffen,132,38,3 script Bard#2 1_M_BARD,{
mes "show him the Seal of Friendship.";
mes "Good luck, now~";
gef_bard_q = 11;
- goto L_End;
+ callsub L_End;
} else if (gef_bard_q == 20) {
cutin "bard_eland03",2;
@@ -258,7 +258,7 @@ geffen,132,38,3 script Bard#2 1_M_BARD,{
mes "[Errende]";
mes "Waaah, wah~";
mes "You can't just ignore me like that! Where's your sense of merriment, your sense of romance?";
- goto L_End;
+ callsub L_End;
}
} else if (gef_bard_q == 27) {
@@ -304,7 +304,7 @@ geffen,132,38,3 script Bard#2 1_M_BARD,{
mes "I beseech you, if you meet him, please ask him of the 8th love and inform me of that lyric immediately~";
gef_bard_q = 22;
}
- goto L_End;
+ callsub L_End;
} else if (gef_bard_q == 26) {
cutin "bard_eland01",2;
@@ -358,17 +358,17 @@ geffen,132,38,3 script Bard#2 1_M_BARD,{
mes "in advance~";
gef_bard_q = 24;
}
- goto L_End;
+ callsub L_End;
} else if (.@inputstr$ == "Gunther") {
mes "[Errende]";
mes "Gunther? I don't think he would do this. He always puts lines in his songs like 'doubleharmony for you.' Plus, he's too silly for that.";
- goto L_End;
+ callsub L_End;
} else if (.@inputstr$ == "Gunther Doubleharmony") {
mes "[Errende]";
mes "Gunther? I don't think he would do this. He always puts lines in his songs like 'doubleharmony for you.' Plus, he's too silly for that.";
- goto L_End;
+ callsub L_End;
} else if (.@inputstr$ == "Errende") {
cutin "bard_eland04",2;
@@ -377,7 +377,7 @@ geffen,132,38,3 script Bard#2 1_M_BARD,{
mes "If I did, why would";
mes "I not know what";
mes "this song is about?";
- goto L_End;
+ callsub L_End;
} else {
mes "[Errende]";
@@ -390,7 +390,7 @@ geffen,132,38,3 script Bard#2 1_M_BARD,{
mes "How could I forget";
mes "the 8th love?";
gef_bard_q = 26;
- goto L_End;
+ callsub L_End;
}
} else if (gef_bard_q == 25) {
@@ -436,7 +436,7 @@ geffen,132,38,3 script Bard#2 1_M_BARD,{
mes "heart wrenching song.";
mes "But at what cost to your soul?^000000";
}
- goto L_End;
+ callsub L_End;
} else {
cutin "bard_eland01",2;
@@ -447,7 +447,7 @@ geffen,132,38,3 script Bard#2 1_M_BARD,{
mes "Noboooody looooves meee";
mes "Friends foooooor never...";
mes "Ooooooooh wah!^000000";
- goto L_End;
+ callsub L_End;
}
} else if (gef_bard_q == 24) {
@@ -473,7 +473,7 @@ geffen,132,38,3 script Bard#2 1_M_BARD,{
mes "Once again,";
mes "thank you so much";
mes "for your help.";
- goto L_End;
+ callsub L_End;
} else if (gef_bard_q == 22) {
mes "[Errende]";
@@ -489,7 +489,7 @@ geffen,132,38,3 script Bard#2 1_M_BARD,{
next;
mes "[Errende]";
mes "Please ask ^483D8BGunther^000000 about the ^483D8B8th love^000000 in ^483D8BAt One, I Fall in Love^000000. Thank you in advance.";
- goto L_End;
+ callsub L_End;
} else if (gef_bard_q == 23) {
cutin "bard_eland02",2;
@@ -579,19 +579,19 @@ geffen,132,38,3 script Bard#2 1_M_BARD,{
mes "in advance~";
gef_bard_q = 24;
}
- goto L_End;
+ callsub L_End;
} else if (.@inputstr$ == "Gunther") {
mes "[Errende]";
mes "Gunther? I don't think he would do this. He always puts lines in his songs like 'doubleharmony for you.' Plus, he's too silly for that.";
gef_bard_q = 26;
- goto L_End;
+ callsub L_End;
} else if (.@inputstr$ == "Gunther Doubleharmony") {
mes "[Errende]";
mes "Gunther? I don't think he would do this. He always puts lines in his songs like 'doubleharmony for you.' Plus, he's too silly for that.";
gef_bard_q = 26;
- goto L_End;
+ callsub L_End;
} else if (.@inputstr$ == "Errende") {
cutin "bard_eland04",2;
@@ -601,7 +601,7 @@ geffen,132,38,3 script Bard#2 1_M_BARD,{
mes "I not know what this";
mes "song is about?";
gef_bard_q = 26;
- goto L_End;
+ callsub L_End;
} else {
mes "[Errende]";
@@ -614,7 +614,7 @@ geffen,132,38,3 script Bard#2 1_M_BARD,{
mes "How could I forget";
mes "the 8th love?";
gef_bard_q = 26;
- goto L_End;
+ callsub L_End;
}
} else if (gef_bard_q == 21) {
@@ -664,7 +664,7 @@ geffen,132,38,3 script Bard#2 1_M_BARD,{
mes "I beseech you, if you meet him, please ask him of the 8th love and inform me of that lyric immediately~";
gef_bard_q = 2;
}
- goto L_End;
+ callsub L_End;
} else if (gef_bard_q == 6) {
cutin "bard_eland04",2;
@@ -708,23 +708,23 @@ geffen,132,38,3 script Bard#2 1_M_BARD,{
mes "I'll pay you back somehow! Thank you for your trouble in advance~";
gef_bard_q = 4;
}
- goto L_End;
+ callsub L_End;
} else if (.@inputstr$ == "Gunther") {
mes "[Errende]";
mes "Gunther? I don't think he would do this. He always puts lines in his songs like 'doubleharmony for you.' Plus, he's too silly for that.";
- goto L_End;
+ callsub L_End;
} else if (.@inputstr$ == "Gunther Doubleharmony") {
mes "[Errende]";
mes "Gunther? I don't think he would do this. He always puts lines in his songs like 'doubleharmony for you.' Plus, he's too silly for that.";
- goto L_End;
+ callsub L_End;
} else if (.@inputstr$ == "Errende") {
cutin "bard_eland04",2;
mes "[Errende]";
mes "Surely you jest! If I did, why would I not know what this song is about?";
- goto L_End;
+ callsub L_End;
} else {
mes "[Errende]";
@@ -736,7 +736,7 @@ geffen,132,38,3 script Bard#2 1_M_BARD,{
mes "How could I forget";
mes "the 8th love?";
gef_bard_q = 6;
- goto L_End;
+ callsub L_End;
}
} else if (gef_bard_q == 5) {
@@ -773,7 +773,7 @@ geffen,132,38,3 script Bard#2 1_M_BARD,{
mes "heart wrenching song.";
mes "But at what cost to your soul?^000000";
}
- goto L_End;
+ callsub L_End;
} else {
cutin "bard_eland01",2;
@@ -784,7 +784,7 @@ geffen,132,38,3 script Bard#2 1_M_BARD,{
mes "Noboooody looooves meee";
mes "Friends foooooor never...";
mes "Ooooooooooh wah!^000000";
- goto L_End;
+ callsub L_End;
}
} else if (gef_bard_q == 4) {
@@ -809,7 +809,7 @@ geffen,132,38,3 script Bard#2 1_M_BARD,{
mes "Once again,";
mes "thank you so much";
mes "for your help.";
- goto L_End;
+ callsub L_End;
} else if (gef_bard_q == 2) {
cutin "bard_eland04",2;
@@ -822,7 +822,7 @@ geffen,132,38,3 script Bard#2 1_M_BARD,{
next;
mes "[Errende]";
mes "Please ask ^483D8BGunther^000000 about the ^483D8B8th love^000000 in ^483D8BAt One, I Fall in Love^000000. Thank you in advance.";
- goto L_End;
+ callsub L_End;
} else if (gef_bard_q == 3) {
cutin "bard_eland02",2;
@@ -907,27 +907,27 @@ geffen,132,38,3 script Bard#2 1_M_BARD,{
mes "I'll pay you back somehow! Thank you for your trouble in advance~";
gef_bard_q = 4;
}
- goto L_End;
+ callsub L_End;
} else if (.@inputstr$ == "Gunther") {
mes "[Errende]";
mes "Gunther? I don't think he would do this. He always puts lines in his songs like 'doubleharmony for you.' Plus, he's too silly for that.";
gef_bard_q = 6;
- goto L_End;
+ callsub L_End;
}
else if (.@inputstr$ == "Gunther Doubleharmony") {
mes "[Errende]";
mes "Gunther? I don't think he would do this. He always puts lines in his songs like 'doubleharmony for you.' Plus, he's too silly for that.";
gef_bard_q = 6;
- goto L_End;
+ callsub L_End;
} else if (.@inputstr$ == "Errende") {
cutin "bard_eland04",2;
mes "[Errende]";
mes "Surely you jest! If I did, why would I not know what this song is about?";
gef_bard_q = 6;
- goto L_End;
+ callsub L_End;
} else {
mes "[Errende]";
@@ -939,7 +939,7 @@ geffen,132,38,3 script Bard#2 1_M_BARD,{
mes "How could I forget";
mes "the 8th love?";
gef_bard_q = 6;
- goto L_End;
+ callsub L_End;
}
} else if (gef_bard_q == 1) {
@@ -1122,7 +1122,7 @@ S_StorySong:
mes "[Errende]";
mes "Oh, how disappointing. But promise me that you will drop by later, so that we can share stories and merriment.";
}
- goto L_End;
+ callsub L_End;
case 2:
mes "[Errende]";
@@ -1156,7 +1156,7 @@ S_StorySong:
mes "My apologies,";
mes "But I cannot offer my services for free. Even a Bard needs zeny to live, wouldn't you agree?";
}
- goto L_End;
+ callsub L_End;
case 2:
cutin "bard_eland03",2;
@@ -1225,7 +1225,7 @@ S_StorySong:
mes "may never know";
mes "with certainty.";
}
- goto L_End;
+ callsub L_End;
} else if (.@random == 2) {
@@ -1328,7 +1328,7 @@ S_StorySong:
if(gef_bard_q==1) gef_bard_q = 7;
if(gef_bard_q==21) gef_bard_q = 27;
}
- goto L_End;
+ callsub L_End;
}
mes "^483D8BA good Bard sings";
@@ -1352,7 +1352,7 @@ S_StorySong:
mes "[Errende]";
mes "H-how can you say such a thing, "+ @name$ +"? Have you ever been a Bard before? It's difficult to come up with fresh, original melodies!";
}
- goto L_End;
+ callsub L_End;
case 3:
cutin "bard_eland01",2;
@@ -1362,7 +1362,7 @@ S_StorySong:
mes "enjoyed when you";
mes "are in the mood for it.";
mes "Please come again.";
- goto L_End;
+ callsub L_End;
}
@@ -1371,7 +1371,7 @@ S_StorySong:
mes "[Errende]";
mes "Hmm~?";
mes "Well, alright. Though, listening to a good story or cheerful song can really do you some good. Alright then, see you later.";
- goto L_End;
+ callsub L_End;
}
}
diff --git a/npc/quests/bunnyband.txt b/npc/quests/bunnyband.txt
index 957e3ab01..9b3537312 100644
--- a/npc/quests/bunnyband.txt
+++ b/npc/quests/bunnyband.txt
@@ -101,43 +101,43 @@ alberta,26,229,0 script Kafra Employee#bunny 4_M_01,{
mes "of the Kafra Services~";
close;
case 2:
- goto L_Info;
+ break;
case 3:
close;
}
- }
- mes "[Kafra Employee]";
- mes "Hi there~! Would you like";
- mes "to join our special ^529DFFBunny";
- mes "Band Event^000000 hosted by the Kafra";
- mes "Corporation and sponsored by";
- mes "the Alberta Merchant Guild?";
- next;
- switch(select("Join the Event", "Event Information", "Cancel")) {
- case 1:
- BUNYBND = 1;
+ } else {
mes "[Kafra Employee]";
- mes "Great! Thanks for";
- mes "participating! If you";
- mes "haven't already heard,";
- mes "you need to collect these";
- mes "items if you want me put a";
- mes "Bunny Band together for you...";
+ mes "Hi there~! Would you like";
+ mes "to join our special ^529DFFBunny";
+ mes "Band Event^000000 hosted by the Kafra";
+ mes "Corporation and sponsored by";
+ mes "the Alberta Merchant Guild?";
next;
- mes "[Kafra Employee]";
- mes "100 Feathers,";
- mes "1 Four-Leaf Clover,";
- mes "1 Kitty Band and";
- mes "1 Pearl. That's it!";
- mes "Good luck and I'll be";
- mes "waiting for you here~";
- close;
- case 2:
- break;
- case 3:
- close;
+ switch(select("Join the Event", "Event Information", "Cancel")) {
+ case 1:
+ BUNYBND = 1;
+ mes "[Kafra Employee]";
+ mes "Great! Thanks for";
+ mes "participating! If you";
+ mes "haven't already heard,";
+ mes "you need to collect these";
+ mes "items if you want me put a";
+ mes "Bunny Band together for you...";
+ next;
+ mes "[Kafra Employee]";
+ mes "100 Feathers,";
+ mes "1 Four-Leaf Clover,";
+ mes "1 Kitty Band and";
+ mes "1 Pearl. That's it!";
+ mes "Good luck and I'll be";
+ mes "waiting for you here~";
+ close;
+ case 2:
+ break;
+ case 3:
+ close;
+ }
}
-L_Info:
mes "[Kafra Employee]";
mes "To thank our valued";
mes "customers, Kafra Corporation";
diff --git a/npc/quests/cooking_quest.txt b/npc/quests/cooking_quest.txt
index 3b97f60ee..048201063 100644
--- a/npc/quests/cooking_quest.txt
+++ b/npc/quests/cooking_quest.txt
@@ -85,7 +85,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes "be careful and watch your";
mes "step when you climb up";
mes "the stairs for me, alright?";
- goto L_End;
+ callsub L_End;
}
else if (getequipid(1) != 5026) {
if (Sex == SEX_MALE) {
@@ -123,7 +123,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes "But I do find that you";
mes "adventurers do have";
mes "your strong points...";
- goto L_End;
+ callsub L_End;
}
cutin "orleans_1",0;
mes "[Charles Orleans]";
@@ -236,7 +236,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes "treats that only I can offer.";
mes "Until that day comes, I shall";
mes "reluctantly bid you adieu.";
- goto L_End;
+ callsub L_End;
}
else if (cooking_q == 0) {
cutin "orleans_5",0;
@@ -342,7 +342,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes "^4D4DFF1 Cooking Oil^000000, and";
mes "^4D4DFF1 Old Frying Pan^000000.";
mes "Then, we can begin.";
- goto L_End;
+ callsub L_End;
}
else if (.@cook_m1 == 2) {
cooking_q = 2;
@@ -359,7 +359,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes "^4D4DFF2 Red Potions^000000";
mes "so that we can";
mes "begin the lesson~";
- goto L_End;
+ callsub L_End;
}
else if (.@cook_m1 == 3) {
cooking_q = 3;
@@ -375,7 +375,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes "^4D4DFF1 Honey^000000,";
mes "^4D4DFF2 Grapes^000000, and";
mes "^4D4DFF1 Red Potion^000000.";
- goto L_End;
+ callsub L_End;
}
else if (.@cook_m1 == 4) {
cooking_q = 4;
@@ -393,7 +393,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes "^4D4DFF1 Bag of Grain^000000,";
mes "^4D4DFF10 Spawns^000000, and";
mes "^4D4DFF1 Squid Ink^000000.";
- goto L_End;
+ callsub L_End;
}
else if (.@cook_m1 == 5) {
cooking_q = 5;
@@ -410,7 +410,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes "^4D4DFF10 Green Herbs^000000,";
mes "^4D4DFF10 Nippers^000000, and";
mes "^4D4DFF1 Yellow Potion^000000.";
- goto L_End;
+ callsub L_End;
}
cooking_q = 6;
mes "[Charles Orleans]";
@@ -426,7 +426,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes "^4D4DFF1 Frying Pan^000000,";
mes "^4D4DFF5 Yoyo Tails^000000, and";
mes "^4D4DFF1 Cooking Oil^000000.";
- goto L_End;
+ callsub L_End;
}
else if (cooking_q == 1) {
if (countitem(Grasshoppers_Leg) > 4 && countitem(Old_Frying_Pan) > 0 && countitem(Cooking_Oil) > 0) {
@@ -467,7 +467,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
delitem Cooking_Oil,1;
cooking_q = 7;
getitem Str_Dish01,1;
- goto L_End;
+ callsub L_End;
}
cutin "orleans_6",0;
.@talk_j = rand(1,2);
@@ -479,14 +479,14 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes "If a restaurant patron had";
mes "ordered this, then you'd";
mes "already be making him wait!";
- goto L_End;
+ callsub L_End;
}
mes "[Charles Orleans]";
mes "Just go and ambush those";
mes "happy-go-lucky grasshoppers";
mes "just playing in the fields. Hurry and smash them, then rip their";
mes "legs off--but be humane about it! ";
- goto L_End;
+ callsub L_End;
}
else if (cooking_q == 2) {
if (countitem(Grape) > 2 && countitem(Red_Potion) > 1) {
@@ -524,7 +524,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
delitem Red_Potion,2;
cooking_q = 7;
getitem Int_Dish01,1;
- goto L_End;
+ callsub L_End;
}
cutin "orleans_6",0;
.@talk_j = rand(1,2);
@@ -535,7 +535,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes "ingredients for Grape Juice";
mes "Herbal Tea! At a real restaurant, you'd never be able to take your";
mes "time like this! Quickly, now!";
- goto L_End;
+ callsub L_End;
}
mes "[Charles Orleans]";
mes "Having trouble finding";
@@ -543,7 +543,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes "those cute little Poporings...";
mes "Of course, you should try to";
mes "be humane when you hunt them...";
- goto L_End;
+ callsub L_End;
}
else if (cooking_q == 3) {
if (countitem(Honey) > 0 && countitem(Grape) > 1 && countitem(Red_Potion) > 0) {
@@ -585,7 +585,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
delitem Red_Potion,1;
cooking_q = 7;
getitem Dex_Dish01,1;
- goto L_End;
+ callsub L_End;
}
cutin "orleans_6",0;
.@talk_j = rand(1,2);
@@ -596,7 +596,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes "brought me the ingredients";
mes "to make Honey Grape Juice";
mes "a while ago. Hurry it up!";
- goto L_End;
+ callsub L_End;
}
mes "[Charles Orleans]";
mes "You're having trouble";
@@ -605,7 +605,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes "Just go and hunt some bears,";
mes "they're always carrying some";
mes "of that Honey around.";
- goto L_End;
+ callsub L_End;
}
else if (cooking_q == 4) {
if (countitem(Grain) > 0 && countitem(Spawn) > 9 && countitem(Chinese_Ink) > 0) {
@@ -646,7 +646,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
delitem Chinese_Ink,1; //Chinese_ink
cooking_q = 7;
getitem Agi_Dish01,1;
- goto L_End;
+ callsub L_End;
}
cutin "orleans_6",0;
.@talk_j = rand(1,2);
@@ -657,7 +657,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes "preparing ingredients";
mes "for Frog Egg and Squid";
mes "Ink Soup right now!";
- goto L_End;
+ callsub L_End;
}
mes "[Charles Orleans]";
mes "You have to be careful";
@@ -665,7 +665,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes "Eggs. If you feed them raw to";
mes "somebody, well, their flavor is";
mes "decidely less than magnifique.";
- goto L_End;
+ callsub L_End;
}
else if (cooking_q == 5) {
if (countitem(Nipper) > 9 && countitem(Green_Herb) > 9 && countitem(Yellow_Potion) > 0) {
@@ -706,7 +706,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
delitem Yellow_Potion,1;
cooking_q = 7;
getitem Vit_Dish01,1;
- goto L_End;
+ callsub L_End;
}
cutin "orleans_6",0;
.@talk_j = rand(1,2);
@@ -718,7 +718,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes "Crab Nippers? You need";
mes "to work quickly for those";
mes "hungry restaurant patrons!";
- goto L_End;
+ callsub L_End;
}
mes "[Charles Orleans]";
mes "It shouldn't be too hard";
@@ -726,7 +726,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes "find some Vadons and crush";
mes "them, making sure to rip off";
mes "their Nippers. That sounds strange, I know, but just do it.";
- goto L_End;
+ callsub L_End;
}
else if (cooking_q == 6) {
if (countitem(Yoyo_Tail) > 4 && countitem(Old_Frying_Pan) > 0 && countitem(Cooking_Oil) > 0) {
@@ -767,7 +767,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
delitem Cooking_Oil,1;
cooking_q = 7;
getitem Luk_Dish01,1;
- goto L_End;
+ callsub L_End;
}
cutin "orleans_6",0;
.@talk_j = rand(1,2);
@@ -779,7 +779,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes "you can. In a real restaurant,";
mes "you'd never able to take your";
mes "time like this. Toute allure!";
- goto L_End;
+ callsub L_End;
}
mes "[Charles Orleans]";
mes "You need more tails?";
@@ -788,7 +788,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes "and then slice off their tails.";
mes "You're a beginner, but I won't";
mes "allow you to be inhumane!";
- goto L_End;
+ callsub L_End;
}
else if (cooking_q == 7) {
cutin "orleans_7",0;
@@ -808,7 +808,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes "teaching until one of you can";
mes "become a worthy successor.";
mes "It will take some time...";
- goto L_End;
+ callsub L_End;
}
else if (cooking_q == 8) {
cutin "orleans_5",0;
@@ -847,7 +847,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes ".....Who told you";
mes "to ask her name?";
mes "You don't even understand what she is saying.";
- goto L_End;
+ callsub L_End;
case 2:
cutin "nyuang_2",2;
emotion e_pif,0,"Child with Cat#cook";
@@ -863,7 +863,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes "the child won't talk to us...";
mes "Still, we need to get those";
mes "two out of the kitchen.";
- goto L_End;
+ callsub L_End;
case 3:
cutin "nyuang_3",2;
emotion e_heh,0,"Child with Cat#cook";
@@ -876,7 +876,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes "[Charles Orleans]";
mes "...Are you playing with that kid...?";
mes "...Then I don't need you to be here.";
- goto L_End;
+ callsub L_End;
case 4:
emotion e_dots,0,"Child with Cat#cook";
mes "[Child with Cat]";
@@ -897,7 +897,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes "You should have";
mes "been more careful";
mes "handling that cat...";
- goto L_End;
+ callsub L_End;
}
}
else if (cooking_q == 9) {
@@ -1029,7 +1029,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes "Ah...";
mes "There goes a true";
mes "lady... Madam Wickebine...";
- goto L_End;
+ callsub L_End;
}
else if (cooking_q == 10) {
cutin "orleans_5",0;
@@ -1071,7 +1071,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes "Praise the glories of the";
mes "Rune-Midgarts Kingdom!";
mes "Long live King Tristram III!";
- goto L_End;
+ callsub L_End;
}
else if (cooking_q == 11) {
cutin "orleans_5",0;
@@ -1112,7 +1112,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes "1 to 5. Those are the";
mes "only cookbooks that I will";
mes "lend out to my students.";
- goto L_End;
+ callsub L_End;
}
else if (.@new_book == 0) {
cutin "orleans_5",0;
@@ -1122,7 +1122,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes "study the recipes that you";
mes "have right now before trying";
mes "something new, I suppose.";
- goto L_End;
+ callsub L_End;
}
mes "[Charles Orleans]";
mes "So you wanted to borrow a";
@@ -1140,7 +1140,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes "levels 1 to 5. Hmm, well, ask";
mes "me again when you remember";
mes "which cookbook you have, okay?";
- goto L_End;
+ callsub L_End;
}
else if (.@old_book == 0) {
cutin "orleans_5",0;
@@ -1150,7 +1150,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes "study the recipes that you";
mes "have right now before trying";
mes "something new, I suppose.";
- goto L_End;
+ callsub L_End;
}
else if (.@old_book == .@new_book) {
cutin "orleans_4",0;
@@ -1161,7 +1161,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes "cookbook that you already";
mes "have? I guess you made";
mes "some sort of mistake?";
- goto L_End;
+ callsub L_End;
}
else {
if (countitem(7471+.@old_book) < 1) {
@@ -1172,7 +1172,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes "that you'd return to me?";
mes "Find it first, and then I can";
mes "lend another cookbook to you.";
- goto L_End;
+ callsub L_End;
}
cutin "orleans_2",0;
mes "[Charles Orleans]";
@@ -1264,10 +1264,10 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes "Oh, how I miss the";
mes "taste of Pumpkins!";
mes "Ahhh, how nostalgic~";
- goto L_End;
+ callsub L_End;
}
}
- else goto L_End;
+ else callsub L_End;
}
else if (.@new_book== 2) {
cutin "orleans_7",0;
@@ -1298,10 +1298,10 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes "soon... But the experience";
mes "isn't complete without any";
mes "Well-Baked Cookies to munch~";
- goto L_End;
+ callsub L_End;
}
}
- else goto L_End;
+ else callsub L_End;
}
else if (.@new_book== 3) {
cutin "orleans_7",0;
@@ -1330,10 +1330,10 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes "things I don't know";
mes "how to make extremely";
mes "well. Can you believe that?";
- goto L_End;
+ callsub L_End;
}
}
- else goto L_End;
+ else callsub L_End;
}
else if (.@new_book== 4) {
cutin "orleans_7",0;
@@ -1364,10 +1364,10 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes "of that delicious Bao.";
mes "I'd cook it myself, but";
mes "I don't know the secret!";
- goto L_End;
+ callsub L_End;
}
}
- else goto L_End;
+ else callsub L_End;
}
else if (.@new_book== 5) {
cutin "orleans_7",0;
@@ -1396,10 +1396,10 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes "cook with those Shoots";
mes "soon, so I'd appreciate it";
mes "if you'd do this little favor~";
- goto L_End;
+ callsub L_End;
}
}
- else goto L_End;
+ else callsub L_End;
}
if (.@old_book == 1) delitem Cookbook01,1;
@@ -1434,7 +1434,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes "good care of it--don't sell";
mes "it or lose it or anything like";
mes "that. Good luck cooking now~";
- goto L_End;
+ callsub L_End;
case 2:
cutin "orleans_3",0;
@@ -1462,7 +1462,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes "why my spirit to create";
mes "culinary masterpieces has";
mes "been reinvigorated lately...";
- goto L_End;
+ callsub L_End;
case 3:
cutin "orleans_5",0;
@@ -1470,7 +1470,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes "Please, do not worry";
mes "yourself about it. Just";
mes "let me rest for now~";
- goto L_End;
+ callsub L_End;
}
}
@@ -1479,7 +1479,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes "Mon dieu!";
mes "An error has";
mes "occurred!";
- goto L_End;
+ callsub L_End;
}
L_End:
diff --git a/npc/quests/quests_airship.txt b/npc/quests/quests_airship.txt
index c5c8f69b5..8c743d99a 100644
--- a/npc/quests/quests_airship.txt
+++ b/npc/quests/quests_airship.txt
@@ -2831,88 +2831,90 @@ airplane,33,69,4 script Kaci 1_F_MERCHANT_01,{
mes "do it himself. Reading that";
mes "letter really made my day~";
next;
-L_Ask:
- switch(select("Ask about Hallen", "Ask about Mawong", "Ask about the Airship")) {
- case 1:
- .@mesa = 1;
- mes "[Kaci]";
- mes "Hallen? Well, he and I are";
- mes "pretty close. Did you know";
- mes "that we're cousins? In fact,";
- mes "his dad, my uncle, brought";
- mes "me as a child after my father";
- mes "passed away 20 years ago.";
- next;
- mes "[Kaci]";
- mes "There was some kind of";
- mes "mine explosion accident in";
- mes "Einbech. I don't remember.";
- mes "Anyway, me and Hallen are";
- mes "like sister and brother, and";
- mes "we always stick together.";
- next;
- mes "[Kaci]";
- mes "When Captain Ferlock saw me";
- mes "host a Dice game by coincidence";
- mes "and then hired me to work on his Airship, Hallen insisted on coming";
- mes "along. He's stubborn like that,";
- mes "but he's also very sweet.";
- next;
- break;
- case 2:
- .@mesb = 1;
- mes "[Kaci]";
- mes "Mr. Mawong? Oh, don't get";
- mes "the wrong idea! He's my";
- mes "mentor, the one who taught";
- mes "me how to play all of these";
- mes "wonderful games. He's pretty";
- mes "famous around Juno, you know.";
- next;
- mes "[Kaci]";
- mes "I used to be so depressed,";
- mes "not caring about the world";
- mes "at all, after my father died.";
- mes "Then, I ran into Mr. Mawong,";
- mes "and he taught me how to find";
- mes "the joy in life once again.";
- next;
- mes "[Kaci]";
- mes "Because of him, I decided";
- mes "to learn his games and to";
- mes "help people forget their";
- mes "worries and just enjoy";
- mes "themselves, even if it's";
- mes "just for a little while.";
- next;
- break;
- case 3:
- .@mesc = 1;
- mes "[Kaci]";
- mes "The Airship? It's so";
- mes "huge and beautiful, and";
- mes "I'm always amazed that it";
- mes "can fly so gracefully through";
- mes "the air. I've always wanted to live someplace close to the sky...";
- next;
+ while (true) {
+ switch (select("Ask about Hallen", "Ask about Mawong", "Ask about the Airship")) {
+ case 1:
+ .@mesa = 1;
+ mes "[Kaci]";
+ mes "Hallen? Well, he and I are";
+ mes "pretty close. Did you know";
+ mes "that we're cousins? In fact,";
+ mes "his dad, my uncle, brought";
+ mes "me as a child after my father";
+ mes "passed away 20 years ago.";
+ next;
+ mes "[Kaci]";
+ mes "There was some kind of";
+ mes "mine explosion accident in";
+ mes "Einbech. I don't remember.";
+ mes "Anyway, me and Hallen are";
+ mes "like sister and brother, and";
+ mes "we always stick together.";
+ next;
+ mes "[Kaci]";
+ mes "When Captain Ferlock saw me";
+ mes "host a Dice game by coincidence";
+ mes "and then hired me to work on his Airship, Hallen insisted on coming";
+ mes "along. He's stubborn like that,";
+ mes "but he's also very sweet.";
+ next;
+ break;
+ case 2:
+ .@mesb = 1;
+ mes "[Kaci]";
+ mes "Mr. Mawong? Oh, don't get";
+ mes "the wrong idea! He's my";
+ mes "mentor, the one who taught";
+ mes "me how to play all of these";
+ mes "wonderful games. He's pretty";
+ mes "famous around Juno, you know.";
+ next;
+ mes "[Kaci]";
+ mes "I used to be so depressed,";
+ mes "not caring about the world";
+ mes "at all, after my father died.";
+ mes "Then, I ran into Mr. Mawong,";
+ mes "and he taught me how to find";
+ mes "the joy in life once again.";
+ next;
+ mes "[Kaci]";
+ mes "Because of him, I decided";
+ mes "to learn his games and to";
+ mes "help people forget their";
+ mes "worries and just enjoy";
+ mes "themselves, even if it's";
+ mes "just for a little while.";
+ next;
+ break;
+ case 3:
+ .@mesc = 1;
+ mes "[Kaci]";
+ mes "The Airship? It's so";
+ mes "huge and beautiful, and";
+ mes "I'm always amazed that it";
+ mes "can fly so gracefully through";
+ mes "the air. I've always wanted to live someplace close to the sky...";
+ next;
+ mes "[Kaci]";
+ mes "A place where I can see";
+ mes "the clouds and bask in the";
+ mes "sun. So, when Captain Ferlock";
+ mes "invited me to work here, it was";
+ mes "like a dream come true~";
+ next;
+ break;
+ }
mes "[Kaci]";
- mes "A place where I can see";
- mes "the clouds and bask in the";
- mes "sun. So, when Captain Ferlock";
- mes "invited me to work here, it was";
- mes "like a dream come true~";
+ mes "Please don't hesitate";
+ mes "to ask me anything if";
+ mes "you need a small favor,";
+ mes "or if you're just curious";
+ mes "about me in general~";
next;
- break;
+ if (.@mesa && .@mesb && .@mesc)
+ break;
}
mes "[Kaci]";
- mes "Please don't hesitate";
- mes "to ask me anything if";
- mes "you need a small favor,";
- mes "or if you're just curious";
- mes "about me in general~";
- next;
- if (!.@mesa || !.@mesb || !.@mesc) goto L_Ask;
- mes "[Kaci]";
mes "By the way, if Hallen";
mes "bothers you with another";
mes "request, please refuse to";
@@ -3077,7 +3079,6 @@ OnTouch:
}
while (1) {
while (1) {
-L_Retry:
next;
input @input;
if (@input < 100 || @input > 999) {
@@ -3218,7 +3219,6 @@ L_Retry:
case 3: mes "Initialing 4th attempt...^000000"; break;
case 4: mes "Initialing final attempt...^000000"; break;
}
- goto L_Retry;
}
}
end;
diff --git a/npc/quests/quests_lighthalzen.txt b/npc/quests/quests_lighthalzen.txt
index 66cfb0e73..26b7de092 100644
--- a/npc/quests/quests_lighthalzen.txt
+++ b/npc/quests/quests_lighthalzen.txt
@@ -7737,136 +7737,138 @@ yuno_pre,69,79,4 script Mr. President 4_M_PRESIDENT,{
mes "Now, I'm sure that you must";
mes "have some questions for me...";
next;
-L_Mission:
- switch( select( "Secret Wing's Background","Rekenber's Purpose","Secret Wing's Goal","Details about my mission","I'm ready for my mission." ) )
- {
- case 1:
- mes "[Karl]";
- mes "Rekenber has been";
- mes "unopposed for a very long";
- mes "time. Our nation is unhappy";
- mes "with their rule, but since our";
- mes "country lacks solidarity, the";
- mes "people can do nothing.";
- next;
- mes "[Karl]";
- mes "But one day, I was contacted";
- mes "by some people who claimed to";
- mes "share my sentiments against";
- mes "the Rekenber Corporation.";
- mes "Later, I learned that they were";
- mes "from the Kafra Corporation.";
- next;
- mes "[Karl]";
- mes "Apparently, they were";
- mes "facing some aggressive";
- mes "competition from Cool";
- mes "Event Corp, which is";
- mes "actually backed by the";
- mes "Rekenber Corporation.";
- next;
- mes "[Karl]";
- mes "We decided to pool our";
- mes "resources to deal with what";
- mes "we perceived as a common";
- mes "enemy. Before long, we gathered";
- mes "more devotees to our cause and";
- mes "formed the ''Secret Wing.''";
- next;
- mes "[Karl]";
- mes "It may be helpful for";
- mes "you to know that our";
- mes "direct contact to the";
- mes "Kafra Corporation is the";
- mes "^FF00003rd Security Team^000000. Oh, did";
- mes "you have any other questions?";
- next;
- goto L_Mission;
+ while (true) {
+ switch( select( "Secret Wing's Background","Rekenber's Purpose","Secret Wing's Goal","Details about my mission","I'm ready for my mission." ) )
+ {
+ case 1:
+ mes "[Karl]";
+ mes "Rekenber has been";
+ mes "unopposed for a very long";
+ mes "time. Our nation is unhappy";
+ mes "with their rule, but since our";
+ mes "country lacks solidarity, the";
+ mes "people can do nothing.";
+ next;
+ mes "[Karl]";
+ mes "But one day, I was contacted";
+ mes "by some people who claimed to";
+ mes "share my sentiments against";
+ mes "the Rekenber Corporation.";
+ mes "Later, I learned that they were";
+ mes "from the Kafra Corporation.";
+ next;
+ mes "[Karl]";
+ mes "Apparently, they were";
+ mes "facing some aggressive";
+ mes "competition from Cool";
+ mes "Event Corp, which is";
+ mes "actually backed by the";
+ mes "Rekenber Corporation.";
+ next;
+ mes "[Karl]";
+ mes "We decided to pool our";
+ mes "resources to deal with what";
+ mes "we perceived as a common";
+ mes "enemy. Before long, we gathered";
+ mes "more devotees to our cause and";
+ mes "formed the ''Secret Wing.''";
+ next;
+ mes "[Karl]";
+ mes "It may be helpful for";
+ mes "you to know that our";
+ mes "direct contact to the";
+ mes "Kafra Corporation is the";
+ mes "^FF00003rd Security Team^000000. Oh, did";
+ mes "you have any other questions?";
+ next;
+ break;
- case 2:
- mes "[Karl]";
- mes "It's true that companies";
- mes "exist to create money, but";
- mes "the Rekenber Corporation";
- mes "is much more nefarious.";
- mes "They actually want to dominate the entire Rune-Midgard continent.";
- next;
- mes "[Karl]";
- mes "In fact, the chairman of";
- mes "that company is shrouded";
- mes "in mystery. Although I'm";
- mes "the president, I go through";
- mes "many difficulties just to";
- mes "send a message to him.";
- next;
- mes "[Karl]";
- mes "It's disheartening,";
- mes "but we really have no";
- mes "idea what their true goals";
- mes "and plans might be. Now, did";
- mes "you have any other questions?";
- next;
- goto L_Mission;
+ case 2:
+ mes "[Karl]";
+ mes "It's true that companies";
+ mes "exist to create money, but";
+ mes "the Rekenber Corporation";
+ mes "is much more nefarious.";
+ mes "They actually want to dominate the entire Rune-Midgard continent.";
+ next;
+ mes "[Karl]";
+ mes "In fact, the chairman of";
+ mes "that company is shrouded";
+ mes "in mystery. Although I'm";
+ mes "the president, I go through";
+ mes "many difficulties just to";
+ mes "send a message to him.";
+ next;
+ mes "[Karl]";
+ mes "It's disheartening,";
+ mes "but we really have no";
+ mes "idea what their true goals";
+ mes "and plans might be. Now, did";
+ mes "you have any other questions?";
+ next;
+ break;
- case 3:
- mes "[Karl]";
- mes "''Secret Wing's'' only";
- mes "goal is to destroy the";
- mes "Rekenber Corporation in";
- mes "order to break the Schwaltzvalt Republic free from its oppression.";
- next;
- mes "[Karl]";
- mes "Of course, we realize";
- mes "that it will take time and";
- mes "a lot of sacrifice to make";
- mes "this a reality. Now, do you";
- mes "have anything else to ask?";
- next;
- goto L_Mission;
+ case 3:
+ mes "[Karl]";
+ mes "''Secret Wing's'' only";
+ mes "goal is to destroy the";
+ mes "Rekenber Corporation in";
+ mes "order to break the Schwaltzvalt Republic free from its oppression.";
+ next;
+ mes "[Karl]";
+ mes "Of course, we realize";
+ mes "that it will take time and";
+ mes "a lot of sacrifice to make";
+ mes "this a reality. Now, do you";
+ mes "have anything else to ask?";
+ next;
+ break;
- case 4:
- mes "[Karl]";
- mes "Ah, your next mission.";
- mes "I'm ready to give you";
- mes "some of the details if";
- mes "you no longer have any";
- mes "questions to ask. Let me";
- mes "know when you are ready.";
- next;
- goto L_Mission;
+ case 4:
+ mes "[Karl]";
+ mes "Ah, your next mission.";
+ mes "I'm ready to give you";
+ mes "some of the details if";
+ mes "you no longer have any";
+ mes "questions to ask. Let me";
+ mes "know when you are ready.";
+ next;
+ break;
- case 5:
- mes "[Karl]";
- mes "Very well, then.";
- mes "Your mission will not";
- mes "be too difficult, but it does";
- mes "have great urgency so you";
- mes "must accomplish it as soon";
- mes "as you can. Understood?";
- next;
- switch( select( "Wait, I have one more question!","Yes sir, Mr. President." ) )
- {
- case 1:
- mes "[Karl]";
- mes "Hm? I thought you";
- mes "didn't have any more";
- mes "questions. However, I still";
- mes "have the luxury to give you";
- mes "any answers that I can provide.";
- next;
- goto L_Mission;
+ case 5:
+ mes "[Karl]";
+ mes "Very well, then.";
+ mes "Your mission will not";
+ mes "be too difficult, but it does";
+ mes "have great urgency so you";
+ mes "must accomplish it as soon";
+ mes "as you can. Understood?";
+ next;
+ switch( select( "Wait, I have one more question!","Yes sir, Mr. President." ) )
+ {
+ case 1:
+ mes "[Karl]";
+ mes "Hm? I thought you";
+ mes "didn't have any more";
+ mes "questions. However, I still";
+ mes "have the luxury to give you";
+ mes "any answers that I can provide.";
+ next;
+ break;
- case 2:
- mes "[Karl]";
- mes "I'm glad to hear that.";
- mes "Alright, give me a second";
- mes "to search for this file before";
- mes "I explain the mission.";
- lhz_boss = 15;
- close2;
- cutin "",255;
- end;
- }
+ case 2:
+ mes "[Karl]";
+ mes "I'm glad to hear that.";
+ mes "Alright, give me a second";
+ mes "to search for this file before";
+ mes "I explain the mission.";
+ lhz_boss = 15;
+ close2;
+ cutin "",255;
+ end;
+ }
+ break;
+ }
}
}
else if(lhz_boss == 15)
@@ -9690,68 +9692,68 @@ OnTouch:
mes "You need to input the correct";
mes "password to open the door.^000000";
next;
-L_Enter:
- input @sneakpass;
- if(@sneakpass == 738495)
- {
- mes "^3355FF*Beep~*";
- mes "You hear a pleasant";
- mes "sounding electronic chirp,";
- mes "signaling that you have input";
- mes "the correct password. The door";
- mes "automatically slides open.";
+ while (true) {
+ input @sneakpass;
+ if(@sneakpass == 738495)
+ {
+ mes "^3355FF*Beep~*";
+ mes "You hear a pleasant";
+ mes "sounding electronic chirp,";
+ mes "signaling that you have input";
+ mes "the correct password. The door";
+ mes "automatically slides open.";
+ next;
+ switch( select( "Enter","Retreat" ) )
+ {
+ case 1:
+ mes "[Security System]";
+ mes "You have 3 minutes to";
+ mes "search the Information Archive.";
+ mes "When this time elapses, you";
+ mes "will be automatically sent";
+ mes "outside for security reasons.";
+ close2;
+ lhz_boss = 29;
+ donpcevent "Timer_Sneak::OnEnter";
+ warp "lhz_in01",177,35;
+ end;
+
+ case 2:
+ mes "^3355FFPerhaps now would";
+ mes "not be the best time to";
+ mes "enter the Secret Archive.";
+ mes "Or at least, that's what";
+ mes "you've decided for yourself.^000000";
+ close;
+ }
+ }
+ mes "^3355FF*Eeeeeee*";
+ mes "The door emits an";
+ mes "unnerving, high pitched";
+ mes "screech after you input";
+ mes "the password. You really";
+ mes "should try to input it again.^000000";
+ ++@sneakerror;
next;
- switch( select( "Enter","Retreat" ) )
+ if(@sneakerror > 2)
{
- case 1:
mes "[Security System]";
- mes "You have 3 minutes to";
- mes "search the Information Archive.";
- mes "When this time elapses, you";
- mes "will be automatically sent";
- mes "outside for security reasons.";
+ mes "*Gzzzzz*";
+ mes "You have entered the";
+ mes "password incorrectly";
+ mes "3 times. Please stand by";
+ mes "for managerial assistance.";
+ next;
+ mes "^3355FFUh oh!";
+ mes "You better get";
+ mes "out of here before";
+ mes "you get caught!^000000";
close2;
- lhz_boss = 29;
- donpcevent "Timer_Sneak::OnEnter";
- warp "lhz_in01",177,35;
+ warp "lhz_in01",191,49;
end;
-
- case 2:
- mes "^3355FFPerhaps now would";
- mes "not be the best time to";
- mes "enter the Secret Archive.";
- mes "Or at least, that's what";
- mes "you've decided for yourself.^000000";
- close;
}
- }
- mes "^3355FF*Eeeeeee*";
- mes "The door emits an";
- mes "unnerving, high pitched";
- mes "screech after you input";
- mes "the password. You really";
- mes "should try to input it again.^000000";
- ++@sneakerror;
- next;
- if(@sneakerror > 2)
- {
- mes "[Security System]";
- mes "*Gzzzzz*";
- mes "You have entered the";
- mes "password incorrectly";
- mes "3 times. Please stand by";
- mes "for managerial assistance.";
- next;
- mes "^3355FFUh oh!";
- mes "You better get";
- mes "out of here before";
- mes "you get caught!^000000";
- close2;
- warp "lhz_in01",191,49;
- end;
- }
- goto L_Enter;
+ }
case 2:
mes "^3355FFPerhaps now would";
@@ -9812,113 +9814,114 @@ lhz_in01,182,35,0 script File Search Engine HIDDEN_NPC,{
mes "keywords to in order to find";
mes "specific file locations.";
next;
-L_Search:
- switch( select( "Search Engine.","Cancel." ) )
- {
- case 1:
- mes "^663300- Search Engine Initiated -";
- mes "- Please enter a keyword -";
- mes " ";
- mes "*Search Engine";
- mes "is case sensitve.";
- mes "Please do not use";
- mes "capital letters.^000000";
- next;
- input @sneaksearch$;
- if((@sneaksearch$ == "kafra") || (@sneaksearch$ == "cool event"))
- {
- mes "^663300[Search Result]";
- mes "Documents regarding";
- mes "Kafra Corporation and";
- mes "Cool Event Corp are";
- mes "located in Arena 3-2.^000000";
- lhz_boss = 30;
- close;
- }
- else if(@sneaksearch$ == "shinokas")
- {
- mes "^663300[Search Result]";
- mes "Documents regarding";
- mes "Shinokas are located";
- mes "in Arena 1-5.^000000";
- lhz_boss = 31;
- close;
- }
- else if((@sneaksearch$ == "stein") || (@sneaksearch$ == "STEIN") || (@sneaksearch$ == "S.T.E.I.N"))
- {
- mes "^663300[Search Result]";
- mes "Documents regarding";
- mes "S.T.E.I.N are considered";
- mes "highly classified and";
- mes "cannot be accessed";
- mes "through this system.^000000";
- close;
- }
- else if(@sneaksearch$ == "ymir")
- {
- mes "^663300[Search Result]";
- mes "Documents regarding";
- mes "Ymir's Heart are ranked";
- mes "as highly classified and";
- mes "cannot be accessed";
- mes "through this system.^000000";
- close;
- }
- else if((@sneaksearch$ == "president") || (@sneaksearch$ == "karl") || (@sneaksearch$ == "weierstrass"))
- {
- mes "^663300[Search Result]";
- mes "2nd Class documents on";
- mes "President Karl Weierstrass";
- mes "are located in Area 1-7. For";
- mes "more highly classified files";
- mes "on Weierstrass, please use";
- mes "a higher security archive.^000000";
- lhz_boss = 32;
- close;
- }
- else if(@sneaksearch$ == "einbroch")
- {
- mes "^663300[Search Result]";
- mes "Documents regarding";
- mes "Einbroch are stored";
- mes "in Area 6-1.^000000";
- lhz_boss = 33;
- close;
- }
- else if(@sneaksearch$ == "lighthalzen")
- {
- mes "^663300[Search Result]" ;
- mes "Documents regarding";
- mes "Lighthalzen are stored";
- mes "in Area 3-3.^000000";
- lhz_boss = 34;
- close;
- }
- else if(@sneaksearch$ == "rekenber")
- {
- mes "^663300[Search Result]";
- mes "Documents regarding";
- mes "Rekenber are highly classified and cannot be accessed by this system.^000000";
+ while (true) {
+ switch( select( "Search Engine.","Cancel." ) )
+ {
+ case 1:
+ mes "^663300- Search Engine Initiated -";
+ mes "- Please enter a keyword -";
+ mes " ";
+ mes "*Search Engine";
+ mes "is case sensitve.";
+ mes "Please do not use";
+ mes "capital letters.^000000";
next;
- goto L_Search;
- }
- else
- {
- mes "^663300[Search Result]";
- mes "Keyword not found.";
- mes "Please search another";
- mes "archive or increase";
- mes "access permissions.^000000";
- close;
- }
+ input @sneaksearch$;
+ if((@sneaksearch$ == "kafra") || (@sneaksearch$ == "cool event"))
+ {
+ mes "^663300[Search Result]";
+ mes "Documents regarding";
+ mes "Kafra Corporation and";
+ mes "Cool Event Corp are";
+ mes "located in Arena 3-2.^000000";
+ lhz_boss = 30;
+ close;
+ }
+ else if(@sneaksearch$ == "shinokas")
+ {
+ mes "^663300[Search Result]";
+ mes "Documents regarding";
+ mes "Shinokas are located";
+ mes "in Arena 1-5.^000000";
+ lhz_boss = 31;
+ close;
+ }
+ else if((@sneaksearch$ == "stein") || (@sneaksearch$ == "STEIN") || (@sneaksearch$ == "S.T.E.I.N"))
+ {
+ mes "^663300[Search Result]";
+ mes "Documents regarding";
+ mes "S.T.E.I.N are considered";
+ mes "highly classified and";
+ mes "cannot be accessed";
+ mes "through this system.^000000";
+ close;
+ }
+ else if(@sneaksearch$ == "ymir")
+ {
+ mes "^663300[Search Result]";
+ mes "Documents regarding";
+ mes "Ymir's Heart are ranked";
+ mes "as highly classified and";
+ mes "cannot be accessed";
+ mes "through this system.^000000";
+ close;
+ }
+ else if((@sneaksearch$ == "president") || (@sneaksearch$ == "karl") || (@sneaksearch$ == "weierstrass"))
+ {
+ mes "^663300[Search Result]";
+ mes "2nd Class documents on";
+ mes "President Karl Weierstrass";
+ mes "are located in Area 1-7. For";
+ mes "more highly classified files";
+ mes "on Weierstrass, please use";
+ mes "a higher security archive.^000000";
+ lhz_boss = 32;
+ close;
+ }
+ else if(@sneaksearch$ == "einbroch")
+ {
+ mes "^663300[Search Result]";
+ mes "Documents regarding";
+ mes "Einbroch are stored";
+ mes "in Area 6-1.^000000";
+ lhz_boss = 33;
+ close;
+ }
+ else if(@sneaksearch$ == "lighthalzen")
+ {
+ mes "^663300[Search Result]" ;
+ mes "Documents regarding";
+ mes "Lighthalzen are stored";
+ mes "in Area 3-3.^000000";
+ lhz_boss = 34;
+ close;
+ }
+ else if(@sneaksearch$ == "rekenber")
+ {
+ mes "^663300[Search Result]";
+ mes "Documents regarding";
+ mes "Rekenber are highly classified and cannot be accessed by this system.^000000";
+ next;
+ break;
+ }
+ else
+ {
+ mes "^663300[Search Result]";
+ mes "Keyword not found.";
+ mes "Please search another";
+ mes "archive or increase";
+ mes "access permissions.^000000";
+ close;
+ }
- case 2:
- mes "^663300[Search Engine Close]";
- mes "File search has been";
- mes "canceled. Please be aware";
- mes "that sudden shutdown may";
- mes "cause system errors.^000000";
- close;
+ case 2:
+ mes "^663300[Search Engine Close]";
+ mes "File search has been";
+ mes "canceled. Please be aware";
+ mes "that sudden shutdown may";
+ mes "cause system errors.^000000";
+ close;
+ }
}
}
mes "^3355FFThis machine can be";
diff --git a/npc/quests/quests_rachel.txt b/npc/quests/quests_rachel.txt
index f2282106e..59baa6f04 100644
--- a/npc/quests/quests_rachel.txt
+++ b/npc/quests/quests_rachel.txt
@@ -3817,7 +3817,7 @@ ra_temple,116,174,3 script Nemma#ra_temple 4_F_TRAINEE,{
mes "wouldn't come here to pray...";
mes "Well, I hope you enjoy your";
mes "time here, adventurer.";
- goto L_End;
+ callsub L_End;
}
mes "[Priestess Nemma]";
mes "Oh! I'm glad to see that";
@@ -3870,7 +3870,7 @@ ra_temple,116,174,3 script Nemma#ra_temple 4_F_TRAINEE,{
mes "all your journeys. May the";
mes "grace of the goddess always";
mes "support us in all that we do~";
- goto L_End;
+ callsub L_End;
}
mes "[Priestess Nemma]";
mes "Great! How much would you";
@@ -3899,7 +3899,7 @@ ra_temple,116,174,3 script Nemma#ra_temple 4_F_TRAINEE,{
mes "protecting you, wherever you go~";
break;
}
- goto L_End;
+ callsub L_End;
}
else {
cutin "ra_nemma03",2;
@@ -3940,7 +3940,7 @@ ra_temple,116,174,3 script Nemma#ra_temple 4_F_TRAINEE,{
mes "protecting you, wherever you go~";
break;
}
- goto L_End;
+ callsub L_End;
case 2:
mes "[Priestess Nemma]";
mes "Oh! If you'd like some";
@@ -3969,7 +3969,7 @@ ra_temple,116,174,3 script Nemma#ra_temple 4_F_TRAINEE,{
mes "Oh, how sweet of you~";
break;
}
- goto L_End;
+ callsub L_End;
}
}
else {
@@ -3977,7 +3977,7 @@ ra_temple,116,174,3 script Nemma#ra_temple 4_F_TRAINEE,{
cutin "ra_nemma01",2;
mes "[Priestess Nemma]";
mes "Welcome to our temple!";
- goto L_End;
+ callsub L_End;
}
if (ra_tem_q < 1) {
mes "[Priestess Nemma]";
@@ -4010,7 +4010,7 @@ ra_temple,116,174,3 script Nemma#ra_temple 4_F_TRAINEE,{
mes "to go inside. ^333333*Sob*^000000 P-Panno!";
mes "Panno, I neeeed heeeeelp~!";
ra_tem_q = 1;
- goto L_End;
+ callsub L_End;
}
else if ((ra_tem_q >= 1) && (ra_tem_q < 10)) {
mes "[Priestess Nemma]";
@@ -4025,7 +4025,7 @@ ra_temple,116,174,3 script Nemma#ra_temple 4_F_TRAINEE,{
mes "Panno would know";
mes "what to do... I think.";
mes "Ooh, Panno, help me!";
- goto L_End;
+ callsub L_End;
}
else if (ra_tem_q == 10) {
cutin "ra_nemma04",2;
@@ -4051,7 +4051,7 @@ ra_temple,116,174,3 script Nemma#ra_temple 4_F_TRAINEE,{
mes "I'm outside. What if";
mes "the gate locks up again?";
mes "Oooh, what should I do?!";
- goto L_End;
+ callsub L_End;
}
else if (ra_tem_q == 11) {
emotion e_ho;
@@ -4063,7 +4063,7 @@ ra_temple,116,174,3 script Nemma#ra_temple 4_F_TRAINEE,{
mes "longer asking for donations,";
mes "but you can still redeem your";
mes "Lottery Tickets inside, okay?";
- goto L_End;
+ callsub L_End;
}
else if (ra_tem_q == 12) {
mes "[Priestess Nemma]";
@@ -4090,7 +4090,7 @@ ra_temple,116,174,3 script Nemma#ra_temple 4_F_TRAINEE,{
mes "like, ^FF000020 of them^000000! Thank";
mes "you thank you thank you!";
ra_tem_q = 13;
- goto L_End;
+ callsub L_End;
}
else if (ra_tem_q == 13) {
mes "[Priestess Nemma]";
@@ -4125,7 +4125,7 @@ ra_temple,116,174,3 script Nemma#ra_temple 4_F_TRAINEE,{
mes "to play! Hm, maybe";
mes "our pope would like";
mes "to see these too?";
- goto L_End;
+ callsub L_End;
}
cutin "ra_nemma02",2;
mes "[Priestess Nemma]";
@@ -4144,14 +4144,14 @@ ra_temple,116,174,3 script Nemma#ra_temple 4_F_TRAINEE,{
mes "have much to pay you";
mes "back with, anyway~";
}
- goto L_End;
+ callsub L_End;
}
else {
cutin "ra_nemma01",2;
mes "[Priestess Nemma]";
mes "Welcome to our temple!";
}
- goto L_End;
+ callsub L_End;
}
L_End:
@@ -6318,15 +6318,16 @@ ra_temin,170,46,3 script Panno#rachel 4_F_TRAINEE,{
mes "Have you come to";
mes "redeem Lottery Tickets?";
next;
- if (select("Yes", "No") == 1) goto L_Lottery;
- if (ra_tem_q == 12) {
- cutin "ra_fano01",2;
- mes "[Priestess Panno]";
- mes "I already told you";
- mes "everything I know.";
- mes "Remember to keep";
- mes "quiet about what I said.";
- goto L_End;
+ if (select("Yes", "No") == 2) {
+ if (ra_tem_q == 12) {
+ cutin "ra_fano01",2;
+ mes "[Priestess Panno]";
+ mes "I already told you";
+ mes "everything I know.";
+ mes "Remember to keep";
+ mes "quiet about what I said.";
+ callsub L_End;
+ }
}
}
else if (ra_tem_q < 2) {
@@ -6347,15 +6348,17 @@ ra_temin,170,46,3 script Panno#rachel 4_F_TRAINEE,{
mes "know, in case you were saving";
mes "them for some weird reason.";
next;
- if (select("Yes", "No") == 1) goto L_Lottery;
- cutin "ra_fano03",2;
- mes "[Priestess Panno]";
- mes "You can redeem your";
- mes "Lottery Tickets at any";
- mes "time, so please visit";
- mes "me at your leisure.";
- mes "Go with Freya.";
- goto L_End;
+ if (select("Yes", "No") == 2) {
+ cutin "ra_fano03",2;
+ mes "[Priestess Panno]";
+ mes "You can redeem your";
+ mes "Lottery Tickets at any";
+ mes "time, so please visit";
+ mes "me at your leisure.";
+ mes "Go with Freya.";
+ callsub L_End;
+ }
+ break;
case 2:
cutin "ra_fano01",2;
@@ -6394,14 +6397,14 @@ ra_temin,170,46,3 script Panno#rachel 4_F_TRAINEE,{
mes "side of the hallway. However,";
mes "you can only enter if you've";
mes "been permitted beforehand.";
- goto L_End;
+ callsub L_End;
case 3:
mes "[Priestess Panno]";
mes "......................";
mes "No chit-chat";
mes "inside the temple.";
- goto L_End;
+ callsub L_End;
}
}
else if (ra_tem_q == 10) {
@@ -6429,14 +6432,16 @@ ra_temin,170,46,3 script Panno#rachel 4_F_TRAINEE,{
mes "know, in case you were saving";
mes "them for some weird reason.";
next;
- if (select("Yes", "No") == 1) goto L_Lottery;
- mes "[Priestess Panno]";
- mes "You can redeem your";
- mes "Lottery Tickets at any";
- mes "time, so please visit";
- mes "me at your leisure.";
- mes "Go with Freya.";
- goto L_End;
+ if (select("Yes", "No") == 2) {
+ mes "[Priestess Panno]";
+ mes "You can redeem your";
+ mes "Lottery Tickets at any";
+ mes "time, so please visit";
+ mes "me at your leisure.";
+ mes "Go with Freya.";
+ callsub L_End;
+ }
+ break;
case 2:
cutin "ra_fano01",2;
@@ -6475,7 +6480,7 @@ ra_temin,170,46,3 script Panno#rachel 4_F_TRAINEE,{
mes "side of the hallway. However,";
mes "you can only enter if you've";
mes "been permitted beforehand.";
- goto L_End;
+ callsub L_End;
case 3:
cutin "ra_fano02",2;
@@ -6522,7 +6527,7 @@ ra_temin,170,46,3 script Panno#rachel 4_F_TRAINEE,{
mes "[Priestess Panno]";
mes ".........";
ra_tem_q = 11;
- goto L_End;
+ callsub L_End;
}
}
else if (ra_tem_q == 11) {
@@ -6657,17 +6662,17 @@ ra_temin,170,46,3 script Panno#rachel 4_F_TRAINEE,{
mes "Excuse me now, I need";
mes "to get back to work.";
ra_tem_q = 12;
- goto L_End;
+ callsub L_End;
+ }
+ else {
+ cutin "ra_fano02",2;
+ mes "[Priestess Panno]";
+ mes "This is a holy place";
+ mes "Behave yourself, and";
+ mes "respect those who have";
+ mes "come here just to worship.";
+ callsub L_End;
}
- cutin "ra_fano02",2;
- mes "[Priestess Panno]";
- mes "This is a holy place";
- mes "Behave yourself, and";
- mes "respect those who have";
- mes "come here just to worship.";
- goto L_End;
-
-L_Lottery:
if(checkweight(Yggdrasilberry,1) == 0){
cutin "ra_fano02",2;
mes "[Priestess Panno]";
@@ -6677,7 +6682,7 @@ L_Lottery:
mes "something large, unwieldy";
mes "and heavy? Put your junk";
mes "away in Storage first.";
- goto L_End;
+ callsub L_End;
}
mes "[Priestess Panno]";
mes "Here we go";
@@ -6713,7 +6718,7 @@ L_Lottery:
else if (.@bonus_donate > 5 && .@bonus_donate < 11) getitem Honey,1; //Honey 5%
else if (.@bonus_donate > 0 && .@bonus_donate < 6) getitem Royal_Jelly,1; //Royal Jelly 5%
else getitem White_Slim_Potion,1; //Condensed White Potion 39%
- goto L_End;
+ callsub L_End;
}
mes "[Priestess Panno]";
mes "You...";
@@ -6733,7 +6738,7 @@ L_Lottery:
cutin "ra_fano03",2;
mes "[Priestess Panno]";
mes "May Freya be with you.";
- goto L_End;
+ callsub L_End;
L_End:
close2;
@@ -7441,8 +7446,8 @@ OnTouch:
}
rachel,142,167,5 script Seeking Follower#rachel 4_F_MASK1,6,6,{
+OnTouch:
if ((lost_boy == 13) && (ra_tem_q == 20)) {
- L_Mes:
mes "[Arunafeltz Follower]";
mes "Excuse me, but";
mes "are you "+strcharinfo(PC_NAME)+"?";
@@ -7469,8 +7474,5 @@ rachel,142,167,5 script Seeking Follower#rachel 4_F_MASK1,6,6,{
mes "on your journeys...";
close;
}
-
-OnTouch:
- if ((lost_boy == 13) && (ra_tem_q == 20)) goto L_Mes;
end;
}
diff --git a/npc/quests/thana_quest.txt b/npc/quests/thana_quest.txt
index 4c42f6b39..53c7b331f 100644
--- a/npc/quests/thana_quest.txt
+++ b/npc/quests/thana_quest.txt
@@ -265,7 +265,7 @@ tha_t01,149,78,4 script Guide 4_F_01,{
mes "to access the higher levels";
mes "here in Thanatos Tower.";
next;
- goto L_Contract;
+ break;
case 3:
mes "[Ditze]";
mes "To develop the floors above";
@@ -276,6 +276,7 @@ tha_t01,149,78,4 script Guide 4_F_01,{
mes "for us under a temp contract?";
close;
}
+ break;
case 2:
mes "[Ditze]";
mes "You may have already heard";
@@ -291,7 +292,7 @@ tha_t01,149,78,4 script Guide 4_F_01,{
mes "to access the higher levels";
mes "here in Thanatos Tower.";
next;
- goto L_Contract;
+ break;
case 3:
mes "[Ditze]";
mes "Well, if you have any";
@@ -300,16 +301,15 @@ tha_t01,149,78,4 script Guide 4_F_01,{
mes "Ditze Lappa. Have a good day!";
close;
}
+ } else {
+ mes "[Ditze]";
+ mes "For more detailed information";
+ mes "about monster exterminations,";
+ mes "please ask the 2nd Floor Guide";
+ mes "and the Guide next to me. Well,";
+ mes "we hope you enjoy your experience working with Rekenber Corporation~";
+ close;
}
- mes "[Ditze]";
- mes "For more detailed information";
- mes "about monster exterminations,";
- mes "please ask the 2nd Floor Guide";
- mes "and the Guide next to me. Well,";
- mes "we hope you enjoy your experience working with Rekenber Corporation~";
- close;
-
-L_Contract:
switch(select("Maybe next time", "Sure, I'd like to work for you.")) {
case 1:
mes "[Ditze]";
@@ -930,7 +930,6 @@ tha_t03,67,70,0 script Rune Device#tt1 HIDDEN_NPC,4,4,{
mes "field fizzles out with a soft,";
mes "gentle ''pzzzzzh'' sound.^000000";
next;
- goto L_Key;
}
else if (getequipweaponlv(4) == 4) {
mes "^3355FFWith your "+getequipname(4)+" in";
@@ -939,7 +938,6 @@ tha_t03,67,70,0 script Rune Device#tt1 HIDDEN_NPC,4,4,{
mes "field fizzles out with a soft,";
mes "gentle ''pzzzzzh'' sound.^000000";
next;
- goto L_Key;
}
else {
mes "^3355FFYou smash the energy";
@@ -951,21 +949,16 @@ tha_t03,67,70,0 script Rune Device#tt1 HIDDEN_NPC,4,4,{
mes "powerful weapon...^000000";
close;
}
+ break;
case 2:
mes "^3355FFYou decide to leave";
mes "the machine alone.^000000";
close;
}
+ } else {
+ mes "You've acquired everything you need from this rune device.";
+ close;
}
- mes "You've acquired everything you need from this rune device.";
- close;
-
-OnTouch:
- if ((countitem(Key_Red) == 0) && (countitem(Magic_Gem_Red) == 0))
- specialeffect EF_LEVEL99_4;
- end;
-
-L_Key:
specialeffect EF_BRANDISH2;
mes "After breaking the device, the exterior shatters.";
mes "The energy field begins to disappear,";
@@ -1024,6 +1017,11 @@ L_Key:
specialeffect2 EF_COMBOATTACK1;
close;
}
+
+OnTouch:
+ if ((countitem(Key_Red) == 0) && (countitem(Magic_Gem_Red) == 0))
+ specialeffect EF_LEVEL99_4;
+ end;
}
tha_t04,195,195,0 script Rune Device#tt2 HIDDEN_NPC,3,3,{
diff --git a/npc/quests/the_sign_quest.txt b/npc/quests/the_sign_quest.txt
index dd3750543..cf593eaae 100644
--- a/npc/quests/the_sign_quest.txt
+++ b/npc/quests/the_sign_quest.txt
@@ -12249,11 +12249,12 @@ OnInit:
end;
OnTouch:
- geffenia_warp = rand(1,4);
- if (geffenia_warp == 1) warp "gefenia01",58,169;
- else if (geffenia_warp == 2) warp "gefenia02",116,115;
- else if (geffenia_warp == 3) warp "gefenia03",130,206;
- else if (geffenia_warp == 4) warp "gefenia04",133,88;
+ callfunc("F_UpdateSignVars");
+ .@geffenia_warp = rand(1,4);
+ if (.@geffenia_warp == 1) warp "gefenia01",58,169;
+ else if (.@geffenia_warp == 2) warp "gefenia02",116,115;
+ else if (.@geffenia_warp == 3) warp "gefenia03",130,206;
+ else if (.@geffenia_warp == 4) warp "gefenia04",133,88;
else warp "geffen",116,115;
end;
@@ -12644,6 +12645,7 @@ function script F_UpdateSignVars {
Sign_Branch2B = 0;
serinring = 0;
signmetzhour = 0;
+ geffenia_warp = 0;
}
return;
}
diff --git a/npc/re/instances/BakonawaLake.txt b/npc/re/instances/BakonawaLake.txt
index 5e2ae7f33..2868cc589 100644
--- a/npc/re/instances/BakonawaLake.txt
+++ b/npc/re/instances/BakonawaLake.txt
@@ -33,8 +33,6 @@
//= 1.1
//=========================================================================
-1@ma_b mapflag src4instance
-
ma_scene01,174,179,4 script Taho 4_M_DEWZATIMAN,{
disable_items;
if (checkweight(Knife,1) == 0) {
diff --git a/npc/re/instances/BangungotHospital.txt b/npc/re/instances/BangungotHospital.txt
index 1504f892f..424626ac9 100644
--- a/npc/re/instances/BangungotHospital.txt
+++ b/npc/re/instances/BangungotHospital.txt
@@ -33,8 +33,6 @@
//= 1.1
//=========================================================================
-1@ma_h mapflag src4instance
-
//== Instance Creation =====================================
ma_dun01,147,10,5 script Nurse#ma_dun01 4_F_NURSE,{
if (BaseLevel < 100) end;
@@ -50,7 +48,7 @@ ma_dun01,147,10,5 script Nurse#ma_dun01 4_F_NURSE,{
else if (malaya_bang == 31)
callsub L_Closed,0;
else
- goto L_NoParty;
+ callsub L_NoParty;
}
if (questprogress(11309,HUNTING) != 2) {
.@playtime = questprogress(9224,PLAYTIME);
@@ -102,7 +100,7 @@ ma_dun01,147,10,5 script Nurse#ma_dun01 4_F_NURSE,{
cutin "",255;
end;
} else {
- //if (!.@party_id) goto L_NoParty; //unneeded
+ //if (!.@party_id) callsub L_NoParty; //unneeded
if (malaya_bang > 39)
callsub L_Enter,(getcharid(CHAR_ID_CHAR) == getpartyleader(.@party_id,2))?1:0,1,1;
else {
@@ -124,7 +122,7 @@ ma_dun01,147,10,5 script Nurse#ma_dun01 4_F_NURSE,{
end;
}
} else if (.@quest == 1) {
- if (!.@party_id) goto L_NoParty;
+ if (!.@party_id) callsub L_NoParty;
if (malaya_bang > 39) {
if (questprogress(9222,HUNTING) == 1) {
.@playtime = questprogress(9224,PLAYTIME);
@@ -134,7 +132,7 @@ ma_dun01,147,10,5 script Nurse#ma_dun01 4_F_NURSE,{
next;
callsub L_Enter,0,0;
} else if (.@playtime == 2) {
- //if (!.@party_id) goto L_NoParty; //unneeded
+ //if (!.@party_id) callsub L_NoParty; //unneeded
if (malaya_bang > 39)
callsub L_Enter,(getcharid(CHAR_ID_CHAR) == getpartyleader(.@party_id,2))?1:0,1,1;
else {
@@ -213,7 +211,7 @@ ma_dun01,147,10,5 script Nurse#ma_dun01 4_F_NURSE,{
cutin "",255;
end;
} else {
- if (!.@party_id) goto L_NoParty;
+ if (!.@party_id) callsub L_NoParty;
if (malaya_bang > 39)
callsub L_Enter,(getcharid(CHAR_ID_CHAR) == getpartyleader(.@party_id,2))?1:0,1,1;
else {
diff --git a/npc/re/instances/BuwayaCave.txt b/npc/re/instances/BuwayaCave.txt
index 242d0a8e4..859d6bd85 100644
--- a/npc/re/instances/BuwayaCave.txt
+++ b/npc/re/instances/BuwayaCave.txt
@@ -33,8 +33,6 @@
//= 1.0
//=========================================================================
-1@ma_c mapflag src4instance
-
ma_fild02,312,317,5 script Guard#buwaya_cave 4_MAL_SOLDIER,{
if (BaseLevel < 130) {
mes "[Guard]";
diff --git a/npc/re/instances/HazyForest.txt b/npc/re/instances/HazyForest.txt
index 7f85fee50..c649171f8 100644
--- a/npc/re/instances/HazyForest.txt
+++ b/npc/re/instances/HazyForest.txt
@@ -33,8 +33,6 @@
//= 1.1
//=========================================================================
-1@mist mapflag src4instance
-
//== Instance Creation =====================================
bif_fild01,158,340,5 script Laphine Soldier#mist 4_M_FAIRYSOLDIER,{
diff --git a/npc/re/instances/MalangdoCulvert.txt b/npc/re/instances/MalangdoCulvert.txt
index 164caf548..1bd76aedb 100644
--- a/npc/re/instances/MalangdoCulvert.txt
+++ b/npc/re/instances/MalangdoCulvert.txt
@@ -35,9 +35,6 @@
//= 1.1
//=========================================================================
-1@pump mapflag src4instance
-2@pump mapflag src4instance
-
//== Quest NPCs ============================================
mal_in01,172,28,2 script Albo#mal 4_CAT_SAILOR5,{
if (checkweight(Knife,1) == 0) {
diff --git a/npc/re/instances/OldGlastHeim.txt b/npc/re/instances/OldGlastHeim.txt
index bf099cd2d..9f3f29fdf 100644
--- a/npc/re/instances/OldGlastHeim.txt
+++ b/npc/re/instances/OldGlastHeim.txt
@@ -36,8 +36,6 @@
//================= Current Version =======================================
//= 1.2
//=========================================================================
-1@gl_k mapflag src4instance
-2@gl_k mapflag src4instance
glast_01,204,273,6 script Hugin#ghinstance 4_M_SAGE_C,{
if (BaseLevel < 130) { // iRO text
diff --git a/npc/re/instances/WolfchevLaboratory.txt b/npc/re/instances/WolfchevLaboratory.txt
index e88ec4332..51e2f8a06 100644
--- a/npc/re/instances/WolfchevLaboratory.txt
+++ b/npc/re/instances/WolfchevLaboratory.txt
@@ -33,8 +33,6 @@
//= 1.0.2
//=========================================================================
-1@lhz mapflag src4instance
-
//== Giacomo Girolam =======================================
lighthalzen,303,303,6 script Giacomo Girolamo#kiup2 4_M_KHMAN,3,3,{
if ((MaxWeight - Weight) < 1000 || !checkweight(Knife, 1)) {
diff --git a/npc/re/instances/ghost_palace.txt b/npc/re/instances/ghost_palace.txt
index b1a8f3c10..6e77db2f8 100644
--- a/npc/re/instances/ghost_palace.txt
+++ b/npc/re/instances/ghost_palace.txt
@@ -30,7 +30,6 @@
//================= Current Version =======================================
//= 1.1
//=========================================================================
-1@spa mapflag src4instance
dali02,44,129,5 script Unpleasent Royal Guard 4_M_SAKRAYROYAL,{
if (BaseLevel < 120) {
diff --git a/npc/re/instances/octopus_cave.txt b/npc/re/instances/octopus_cave.txt
index b09d243ab..b134742c9 100644
--- a/npc/re/instances/octopus_cave.txt
+++ b/npc/re/instances/octopus_cave.txt
@@ -33,8 +33,6 @@
//= 1.1
//=========================================================================
-1@cash mapflag src4instance
-
//== Instance Creation =====================================
mal_dun01,151,235,5 script Starfish 4_ASTER,{
diff --git a/npc/re/instances/saras_memory.txt b/npc/re/instances/saras_memory.txt
index 2b3b4f2c0..38b598d5b 100644
--- a/npc/re/instances/saras_memory.txt
+++ b/npc/re/instances/saras_memory.txt
@@ -37,7 +37,6 @@
//================= Current Version =======================================
//= 1.1
//=========================================================================
-1@sara mapflag src4instance
dali,130,107,5 script Leon the Adventurer#Sara 4_M_DST_GRAND,{ // instance CD check only at the Dimensional Device
mes("[Leon the Adventurer]");
diff --git a/npc/re/jobs/2e/kagerou_oboro.txt b/npc/re/jobs/2e/kagerou_oboro.txt
index ae28e7b2d..08f8d6024 100644
--- a/npc/re/jobs/2e/kagerou_oboro.txt
+++ b/npc/re/jobs/2e/kagerou_oboro.txt
@@ -786,208 +786,204 @@ job_ko,81,124,4 script Cougar#ko 4_M_JOB_ASSASSIN,{
warp "amatsu",147,136;
end;
}
- if (job_kagero != 5) {
- goto L_Kick;
- }
- if (MaxWeight - Weight < 1000 || checkweight("Knife",1) == 0) {
- mes "[Cougar]";
- mes "This is a test of knowledge, so why did you bring so many things?";
- close;
- }
- set .@ko_test_01, questprogress(5136);
- set .@ko_test_01_1, questprogress(5139);
- if (.@ko_test_01 == 1 && .@ko_test_01_1 == 0) {
- mes "[Cougar]";
- mes "It's been a while.";
- next;
- select("Aren't you...");
- mes "[Cougar]";
- mes "I remember you from before looking for the way of the ninja.";
- next;
- mes "[Cougar]";
- mes "You've grown this strong already?";
- next;
- mes "[Cougar]";
- mes "Ha ha ha-";
- mes "A truly determined youth! I like that.";
- next;
- mes "[Cougar]";
- mes "Good! The test you are about to take is the ^339CCCTest of Knowledge^000000.";
- next;
- mes "[Cougar]";
- mes "I hope you haven't been lazy with your studies while focusing on getting stronger?";
- next;
- switch(select("Yes", "No")) {
- case 1:
- setquest 5139;
- mes "[Cougar]";
- mes "That's a relief. Let me know when you are ready to start the test.";
- close;
- case 2:
- setquest 5139;
+ if (job_kagero == 5) {
+ if (MaxWeight - Weight < 1000 || checkweight("Knife",1) == 0) {
mes "[Cougar]";
- mes "So you were all talk? Well, let me know when you are ready then.";
+ mes "This is a test of knowledge, so why did you bring so many things?";
close;
}
- } else if (.@ko_test_01 == 1 && .@ko_test_01_1 == 1) {
- mes "[Cougar]";
- mes "I'm ready at my end. Are you ready for the test?";
- next;
- if(select("Yes", "No") == 2) {
+ set .@ko_test_01, questprogress(5136);
+ set .@ko_test_01_1, questprogress(5139);
+ if (.@ko_test_01 == 1 && .@ko_test_01_1 == 0) {
mes "[Cougar]";
- mes "Well, what can I do but wait for you.";
- close;
- }
- mes "[Cougar]";
- mes "This isn't your first test, is it?";
- next;
- mes "[Cougar]";
- mes "You only need to choose the correct answer to my questions.";
- next;
- mes "[Cougar]";
- mes "Let's start.";
- next;
-
- set .@questions,10; // number of questions to ask
-
- // shuffle array an array of questions to be asked
- freeloop(1);
- setarray .@n[0],
- 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,
- 26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50;
- for (set .@i,getarraysize(.@n)-1; .@i>0; set .@i,.@i-1) {
- set .@rand, rand(.@i);
- set .@tmp, .@n[.@i];
- set .@n[.@i], .@n[.@rand];
- set .@n[.@rand], .@tmp;
- }
- deletearray .@n[10],getarraysize(.@n) - .@questions;
- freeloop(0);
-
- set @job_ko_cougar,0;
- for (set .@i,1; .@i<=.@questions; set .@i,.@i+1) {
+ mes "It's been a while.";
+ next;
+ select("Aren't you...");
mes "[Cougar]";
- mes (.@i < .@questions)?"Question number "+.@i+":":"Last question:";
- switch (.@n[.@i-1]) {
- case 1: callsub L_Question,"What is the DEX + LUK total for a Job Master?",2,"8:10:12:14"; break;
- case 2: callsub L_Question,"What is the highest job level for a ninja?",1,"70:50:99:100"; break;
- case 3: callsub L_Question,"How many skill points do you need to master the Throw Coins skill?",3,"25:30:35:37"; break;
- case 4: callsub L_Question,"Which of the following is the correct number of Evasion and effect duration for Mirror Image level 10?",4,"Up to 7 and 200 seconds:Up to 5 and 220 seconds:Up to 6 and 240 seconds:Up to 5 and 240 seconds"; break;
- case 5: callsub L_Question,"How many skill points do you need to master the Cicada Skin Shed?",1,"5:3:1:4"; break;
- case 6: callsub L_Question,"If Dagger Throwing Practice is at 7, how much ATK is added to Shuriken attacks?",2,"18:21:27:30"; break;
- case 7: callsub L_Question,"What is the basic attack range for Throw Shuriken?",3,"7 blocks:8 blocks:9 blocks:10 blocks"; break;
- case 8: callsub L_Question,"What is the maximum moving range of Shadow Leap?",4,"6 blocks:7 blocks:8 blocks:9 blocks"; break;
- case 9: callsub L_Question,"How much money is used for Throw Coins level 6?",4,"2000-8000:1000-6000:3000-8000:3000-6000"; break;
- case 10: callsub L_Question,"What is the most important aspect of increasing ATK for the Killing Strike skill?",2,"VIT:MAXHP:INT:MAXSP"; break;
- case 11: callsub L_Question,"What is not the effect you get after reaching the STR status?",3,"Close range attack increase:Weight limit increase:Magic attack increase:Weapon attack increase"; break;
- case 12: callsub L_Question,"What is not the effect you get after reaching the INT status?",4,"MAXSP increase:MATK increase:Magic damage increase:Staff attack increase"; break;
- case 13: callsub L_Question,"What is not the effect you get after reaching the DEX status?",2,"Casting time decrease:Evasion increase:Accuracy increase:Long range attack increase"; break;
- case 14: callsub L_Question,"What is not the effect you get after reaching the AGI status?",1,"Accuracy increase:Flee increase:Attack speed increase:Delay after attack decrease"; break;
- case 15: callsub L_Question,"What is not the effect you get after reaching the VIT status?",4,"Weapon defense increase:MAXHP increase:Magic defense increase:Attack increase"; break;
- case 16: callsub L_Question,"What is not the effect you get after reaching the LUK status?",3,"Accuracy increase:Complete evasion increase:Magic damage decrease:Critical rate increase"; break;
- case 17: callsub L_Question,"You need to equip a card to your shoes to enhance Killing Strike attack. Which of the following is the appropriate card to equip?",2,"Gold Acidus Card:Matyr Card:Odium of Thantos Card:Eddga Card"; break;
- case 18: callsub L_Question,"You need a catalyst to use ninja skills. Which of the following skills does not need a catalyst?",3,"Blaze Shield:Watery Evasion:Flaming Petals:Snow Flake Draft"; break;
- case 19: callsub L_Question,"How much does STR/INT go up when Ninja Aura level 5 is used?",2,"4:5:6:7"; break;
- case 20: callsub L_Question,"You are hunting the Orc Warrior. Which Kunai would you use? ",1,"Heat Wave Kunai:Icicle Kunai:Fell Poison Kunai:High Wind Kunai"; break;
- case 21: callsub L_Question,"Which village is the Ninja Guild located in?",2,"Lutie:Amatsu:Dewata:Comodo"; break;
- case 22: callsub L_Question,"How do Ninjas get promoted?",3,"By Val Kiwi:By Randgris:None:By Valkyrie"; break;
- case 23: callsub L_Question,"What was next to me when you first met me?",4,"A cushion:A folding screen:A flowerpot:A brazier"; break;
- case 24: callsub L_Question,"What is the level of Dagger Throwing Practice you have to reach to learn the Killing Strike skill?",1,"7:5:6:8"; break;
- case 25: callsub L_Question,"How many hits does a Throw Kunai give to a monster?",2,"2:3:4:5"; break;
- case 26: callsub L_Question,"When your First Wind is at level 4, what will go with the MATK and range?",3,"MATK400, 8 blocks:MATK500, 7 blocks:MATK500, 8 blocks:MATK400, 7 blocks"; break;
- case 27: callsub L_Question,"Which of the following skills can't you learn at Dagger Throwing Practice level 7?",4,"Throw Kunai:Throw Huuma Shuriken:Killing Strike:Throw Coins"; break;
- case 28: callsub L_Question,"What level do you have to be in Dagger Throwing Practice in order to learn the Throw Coins skill?",4,"4:6:8:10"; break;
- case 29: callsub L_Question,"What is the attack range for the Exploding Dragon?",3,"3*3:4*4:5*5:6*6"; break;
- case 30: callsub L_Question,"How long is the effect time for the Watery Evasion level 7 skill?",2,"40 seconds:45 seconds:50 seconds:55 seconds"; break;
- case 31: callsub L_Question,"What is the attack effect for Haze Slasher level 4?",1,"140%:150%:160%:170%"; break;
- case 32: callsub L_Question,"How much power is in the Huuma Blaze Shuriken weapon?",1,"Fireball 5 , DEX-2:Fireball 5 , DEX-3:Fireball 4 , DEX-2:Fireball 4 , DEX-3"; break;
- case 33: callsub L_Question,"How much power is in the Murasame weapon?",2,"Human attack 10%:Human critical +10:Demon attack 10%:Demon critical +10"; break;
- case 34: callsub L_Question,"What is the maximum hit number for Blaze Shield level 10?",3,"7:8:9:10"; break;
- case 35: callsub L_Question,"What is the property of the Lightning Jolt?",4,"Fire:Water:Ground:Wind"; break;
- case 36: callsub L_Question,"You are creating a weapon for small monsters. What is the best card to use?",4,"Hydra Card:Minorous Card:Skel Woker Card:Desert Wolf Card"; break;
- case 37: callsub L_Question,"You are creating a weapon for mid-sized monsters. What is the best card to use?",3,"Hydra Card:Minorous Card:Skel Woker Card:Desert Wolf Card"; break;
- case 38: callsub L_Question,"You are creating a weapon for huge monsters. What is the best card to use?",2,"Hydra Card:Minorous Card:Skel Woker Card:Desert Wolf Card"; break;
- case 39: callsub L_Question,"Which NPC promotes you?",1,"Valkyrie:Val Kiwi:Balp Hiri:Elephant"; break;
- case 40: callsub L_Question,"Which catalyst do you need to use the Blaze Shield skill?",2,"Ice Stone:Flame Stone:Wind Stone:Earth Stone"; break;
- case 41: callsub L_Question,"Which of the following is not an effect of the Watery Evasion skill?",4,"Movement speed decrease:Waterball availability:Holy Water craftability:VIT decrease"; break;
- case 42: callsub L_Question,"Which of the following matches are incorrect for skill and property?",3,"Flaming Petals-Fire:Snow Flake Draft-Water:Freezing Spear-Ground:Lightning Jolt-Wind"; break;
- case 43: callsub L_Question,"Which of the following is the best skill to use when attacking a ground property enemy?",2,"First Wind:Exploding Dragon:Snow Flake Draft:Wind Blade"; break;
- case 44: callsub L_Question,"Which Ninja Mastery skill level do you need to learn the Exploding Dragon skill?",1,"10:9:8:1"; break;
- case 45: callsub L_Question,"What is the attack range when you master Flip Tatami?",3,"5:7:3:1"; break;
- case 46: callsub L_Question,"What weapon cannot be made by the blacksmith Khaibara?",4,"Khukri:Murasame:Hakujin:Humma Wing Shuriken"; break;
- case 47: callsub L_Question,"Which of the following correctly matches material needed to make a Icicle Kunai?",2,"4 Nimbus Shuriken, 2 Ice Stone:8 Nimbus Shuriken, 2 Ice Stone:2 Nimbus Shuriken, 1 Ice Stone:1 Nimbus Shuriken, 2 Ice Stone"; break;
- case 48: callsub L_Question,"Which of the following Kunai will give the most damage to the ground property monster, Porcellio?",1,"Heat Wave Kunai:Icicle Kunai:Fell Poison Kunai:High Wind Kunai"; break;
- case 49: callsub L_Question,"Which of the following blacksmiths do not create ninja items?",2,"Khaibara:Aiku:Tetsu:Toshu"; break;
- case 50: callsub L_Question,"What is the name of the suspicious man you can meet during the Ninja job change quest?",3,"Red Leopard Jack:Black Leopard Jack:Red Leopard Joe:Black Leopard Joe"; break;
- default:
- mes "[Cougar]";
- mes "An unknown error has occurred.";
- mes "Please contact customer service.";
- close;
- }
- }
- mes "[Cougar]";
- mes "You're through all 10 questions. Wasn't so bad! The important part starts now.";
- next;
- mes "[Cougar]";
- mes "... ... ...";
- next;
- if (@job_ko_cougar < 90) {
+ mes "I remember you from before looking for the way of the ninja.";
+ next;
mes "[Cougar]";
- mes "You fool!!";
- mes "You couldn't even solve these?";
+ mes "You've grown this strong already?";
next;
mes "[Cougar]";
- mes "Can't believe someone who is taking a new path can be so pathetic.";
+ mes "Ha ha ha-";
+ mes "A truly determined youth! I like that.";
next;
mes "[Cougar]";
- mes "I'll give you another chance.";
- mes "You will take the test again with new questions. Better pass it this time.";
- } else {
+ mes "Good! The test you are about to take is the ^339CCCTest of Knowledge^000000.";
+ next;
mes "[Cougar]";
- mes "Hmm. " + (@job_ko_cougar) + "?";
+ mes "I hope you haven't been lazy with your studies while focusing on getting stronger?";
next;
+ switch(select("Yes", "No")) {
+ case 1:
+ setquest 5139;
+ mes "[Cougar]";
+ mes "That's a relief. Let me know when you are ready to start the test.";
+ close;
+ case 2:
+ setquest 5139;
+ mes "[Cougar]";
+ mes "So you were all talk? Well, let me know when you are ready then.";
+ close;
+ }
+ } else if (.@ko_test_01 == 1 && .@ko_test_01_1 == 1) {
mes "[Cougar]";
- mes "Well, looks like you weren't lazy with your studies.";
+ mes "I'm ready at my end. Are you ready for the test?";
next;
+ if(select("Yes", "No") == 2) {
+ mes "[Cougar]";
+ mes "Well, what can I do but wait for you.";
+ close;
+ }
mes "[Cougar]";
- mes "What? Proud of yourself for solving these questions?";
+ mes "This isn't your first test, is it?";
next;
mes "[Cougar]";
- mes "You still have a long way to go and this is only a small fraction of it.";
+ mes "You only need to choose the correct answer to my questions.";
next;
mes "[Cougar]";
- mes "Well... I'm curious how far your strong will can take you through other tests.";
+ mes "Let's start.";
next;
- completequest 5136;
- erasequest 5139;
+
+ set .@questions,10; // number of questions to ask
+
+ // shuffle array an array of questions to be asked
+ freeloop(1);
+ setarray .@n[0],
+ 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,
+ 26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50;
+ for (set .@i,getarraysize(.@n)-1; .@i>0; set .@i,.@i-1) {
+ set .@rand, rand(.@i);
+ set .@tmp, .@n[.@i];
+ set .@n[.@i], .@n[.@rand];
+ set .@n[.@rand], .@tmp;
+ }
+ deletearray .@n[10],getarraysize(.@n) - .@questions;
+ freeloop(0);
+
+ set @job_ko_cougar,0;
+ for (set .@i,1; .@i<=.@questions; set .@i,.@i+1) {
+ mes "[Cougar]";
+ mes (.@i < .@questions)?"Question number "+.@i+":":"Last question:";
+ switch (.@n[.@i-1]) {
+ case 1: callsub L_Question,"What is the DEX + LUK total for a Job Master?",2,"8:10:12:14"; break;
+ case 2: callsub L_Question,"What is the highest job level for a ninja?",1,"70:50:99:100"; break;
+ case 3: callsub L_Question,"How many skill points do you need to master the Throw Coins skill?",3,"25:30:35:37"; break;
+ case 4: callsub L_Question,"Which of the following is the correct number of Evasion and effect duration for Mirror Image level 10?",4,"Up to 7 and 200 seconds:Up to 5 and 220 seconds:Up to 6 and 240 seconds:Up to 5 and 240 seconds"; break;
+ case 5: callsub L_Question,"How many skill points do you need to master the Cicada Skin Shed?",1,"5:3:1:4"; break;
+ case 6: callsub L_Question,"If Dagger Throwing Practice is at 7, how much ATK is added to Shuriken attacks?",2,"18:21:27:30"; break;
+ case 7: callsub L_Question,"What is the basic attack range for Throw Shuriken?",3,"7 blocks:8 blocks:9 blocks:10 blocks"; break;
+ case 8: callsub L_Question,"What is the maximum moving range of Shadow Leap?",4,"6 blocks:7 blocks:8 blocks:9 blocks"; break;
+ case 9: callsub L_Question,"How much money is used for Throw Coins level 6?",4,"2000-8000:1000-6000:3000-8000:3000-6000"; break;
+ case 10: callsub L_Question,"What is the most important aspect of increasing ATK for the Killing Strike skill?",2,"VIT:MAXHP:INT:MAXSP"; break;
+ case 11: callsub L_Question,"What is not the effect you get after reaching the STR status?",3,"Close range attack increase:Weight limit increase:Magic attack increase:Weapon attack increase"; break;
+ case 12: callsub L_Question,"What is not the effect you get after reaching the INT status?",4,"MAXSP increase:MATK increase:Magic damage increase:Staff attack increase"; break;
+ case 13: callsub L_Question,"What is not the effect you get after reaching the DEX status?",2,"Casting time decrease:Evasion increase:Accuracy increase:Long range attack increase"; break;
+ case 14: callsub L_Question,"What is not the effect you get after reaching the AGI status?",1,"Accuracy increase:Flee increase:Attack speed increase:Delay after attack decrease"; break;
+ case 15: callsub L_Question,"What is not the effect you get after reaching the VIT status?",4,"Weapon defense increase:MAXHP increase:Magic defense increase:Attack increase"; break;
+ case 16: callsub L_Question,"What is not the effect you get after reaching the LUK status?",3,"Accuracy increase:Complete evasion increase:Magic damage decrease:Critical rate increase"; break;
+ case 17: callsub L_Question,"You need to equip a card to your shoes to enhance Killing Strike attack. Which of the following is the appropriate card to equip?",2,"Gold Acidus Card:Matyr Card:Odium of Thantos Card:Eddga Card"; break;
+ case 18: callsub L_Question,"You need a catalyst to use ninja skills. Which of the following skills does not need a catalyst?",3,"Blaze Shield:Watery Evasion:Flaming Petals:Snow Flake Draft"; break;
+ case 19: callsub L_Question,"How much does STR/INT go up when Ninja Aura level 5 is used?",2,"4:5:6:7"; break;
+ case 20: callsub L_Question,"You are hunting the Orc Warrior. Which Kunai would you use? ",1,"Heat Wave Kunai:Icicle Kunai:Fell Poison Kunai:High Wind Kunai"; break;
+ case 21: callsub L_Question,"Which village is the Ninja Guild located in?",2,"Lutie:Amatsu:Dewata:Comodo"; break;
+ case 22: callsub L_Question,"How do Ninjas get promoted?",3,"By Val Kiwi:By Randgris:None:By Valkyrie"; break;
+ case 23: callsub L_Question,"What was next to me when you first met me?",4,"A cushion:A folding screen:A flowerpot:A brazier"; break;
+ case 24: callsub L_Question,"What is the level of Dagger Throwing Practice you have to reach to learn the Killing Strike skill?",1,"7:5:6:8"; break;
+ case 25: callsub L_Question,"How many hits does a Throw Kunai give to a monster?",2,"2:3:4:5"; break;
+ case 26: callsub L_Question,"When your First Wind is at level 4, what will go with the MATK and range?",3,"MATK400, 8 blocks:MATK500, 7 blocks:MATK500, 8 blocks:MATK400, 7 blocks"; break;
+ case 27: callsub L_Question,"Which of the following skills can't you learn at Dagger Throwing Practice level 7?",4,"Throw Kunai:Throw Huuma Shuriken:Killing Strike:Throw Coins"; break;
+ case 28: callsub L_Question,"What level do you have to be in Dagger Throwing Practice in order to learn the Throw Coins skill?",4,"4:6:8:10"; break;
+ case 29: callsub L_Question,"What is the attack range for the Exploding Dragon?",3,"3*3:4*4:5*5:6*6"; break;
+ case 30: callsub L_Question,"How long is the effect time for the Watery Evasion level 7 skill?",2,"40 seconds:45 seconds:50 seconds:55 seconds"; break;
+ case 31: callsub L_Question,"What is the attack effect for Haze Slasher level 4?",1,"140%:150%:160%:170%"; break;
+ case 32: callsub L_Question,"How much power is in the Huuma Blaze Shuriken weapon?",1,"Fireball 5 , DEX-2:Fireball 5 , DEX-3:Fireball 4 , DEX-2:Fireball 4 , DEX-3"; break;
+ case 33: callsub L_Question,"How much power is in the Murasame weapon?",2,"Human attack 10%:Human critical +10:Demon attack 10%:Demon critical +10"; break;
+ case 34: callsub L_Question,"What is the maximum hit number for Blaze Shield level 10?",3,"7:8:9:10"; break;
+ case 35: callsub L_Question,"What is the property of the Lightning Jolt?",4,"Fire:Water:Ground:Wind"; break;
+ case 36: callsub L_Question,"You are creating a weapon for small monsters. What is the best card to use?",4,"Hydra Card:Minorous Card:Skel Woker Card:Desert Wolf Card"; break;
+ case 37: callsub L_Question,"You are creating a weapon for mid-sized monsters. What is the best card to use?",3,"Hydra Card:Minorous Card:Skel Woker Card:Desert Wolf Card"; break;
+ case 38: callsub L_Question,"You are creating a weapon for huge monsters. What is the best card to use?",2,"Hydra Card:Minorous Card:Skel Woker Card:Desert Wolf Card"; break;
+ case 39: callsub L_Question,"Which NPC promotes you?",1,"Valkyrie:Val Kiwi:Balp Hiri:Elephant"; break;
+ case 40: callsub L_Question,"Which catalyst do you need to use the Blaze Shield skill?",2,"Ice Stone:Flame Stone:Wind Stone:Earth Stone"; break;
+ case 41: callsub L_Question,"Which of the following is not an effect of the Watery Evasion skill?",4,"Movement speed decrease:Waterball availability:Holy Water craftability:VIT decrease"; break;
+ case 42: callsub L_Question,"Which of the following matches are incorrect for skill and property?",3,"Flaming Petals-Fire:Snow Flake Draft-Water:Freezing Spear-Ground:Lightning Jolt-Wind"; break;
+ case 43: callsub L_Question,"Which of the following is the best skill to use when attacking a ground property enemy?",2,"First Wind:Exploding Dragon:Snow Flake Draft:Wind Blade"; break;
+ case 44: callsub L_Question,"Which Ninja Mastery skill level do you need to learn the Exploding Dragon skill?",1,"10:9:8:1"; break;
+ case 45: callsub L_Question,"What is the attack range when you master Flip Tatami?",3,"5:7:3:1"; break;
+ case 46: callsub L_Question,"What weapon cannot be made by the blacksmith Khaibara?",4,"Khukri:Murasame:Hakujin:Humma Wing Shuriken"; break;
+ case 47: callsub L_Question,"Which of the following correctly matches material needed to make a Icicle Kunai?",2,"4 Nimbus Shuriken, 2 Ice Stone:8 Nimbus Shuriken, 2 Ice Stone:2 Nimbus Shuriken, 1 Ice Stone:1 Nimbus Shuriken, 2 Ice Stone"; break;
+ case 48: callsub L_Question,"Which of the following Kunai will give the most damage to the ground property monster, Porcellio?",1,"Heat Wave Kunai:Icicle Kunai:Fell Poison Kunai:High Wind Kunai"; break;
+ case 49: callsub L_Question,"Which of the following blacksmiths do not create ninja items?",2,"Khaibara:Aiku:Tetsu:Toshu"; break;
+ case 50: callsub L_Question,"What is the name of the suspicious man you can meet during the Ninja job change quest?",3,"Red Leopard Jack:Black Leopard Jack:Red Leopard Joe:Black Leopard Joe"; break;
+ default:
+ mes "[Cougar]";
+ mes "An unknown error has occurred.";
+ mes "Please contact customer service.";
+ close;
+ }
+ }
+ mes "[Cougar]";
+ mes "You're through all 10 questions. Wasn't so bad! The important part starts now.";
+ next;
+ mes "[Cougar]";
+ mes "... ... ...";
+ next;
+ if (@job_ko_cougar < 90) {
+ mes "[Cougar]";
+ mes "You fool!!";
+ mes "You couldn't even solve these?";
+ next;
+ mes "[Cougar]";
+ mes "Can't believe someone who is taking a new path can be so pathetic.";
+ next;
+ mes "[Cougar]";
+ mes "I'll give you another chance.";
+ mes "You will take the test again with new questions. Better pass it this time.";
+ } else {
+ mes "[Cougar]";
+ mes "Hmm. " + (@job_ko_cougar) + "?";
+ next;
+ mes "[Cougar]";
+ mes "Well, looks like you weren't lazy with your studies.";
+ next;
+ mes "[Cougar]";
+ mes "What? Proud of yourself for solving these questions?";
+ next;
+ mes "[Cougar]";
+ mes "You still have a long way to go and this is only a small fraction of it.";
+ next;
+ mes "[Cougar]";
+ mes "Well... I'm curious how far your strong will can take you through other tests.";
+ next;
+ completequest 5136;
+ erasequest 5139;
+ mes "[Cougar]";
+ mes "I'll let you go now so go report back to Guide Gion with your results.";
+ close2;
+ warp "job_ko",16,113;
+ end;
+ }
+ set @job_ko_cougar,0;
+ close;
+ } else if (.@ko_test_01 == 2 && .@ko_test_01_1 == 0) {
mes "[Cougar]";
mes "I'll let you go now so go report back to Guide Gion with your results.";
close2;
warp "job_ko",16,113;
end;
}
- set @job_ko_cougar,0;
- close;
- } else if (.@ko_test_01 == 2 && .@ko_test_01_1 == 0) {
- mes "[Cougar]";
- mes "I'll let you go now so go report back to Guide Gion with your results.";
- close2;
- warp "job_ko",16,113;
- end;
- } else {
- L_Kick:
- mes "[Cougar]";
- mes "How did you get here?";
- next;
- mes "[Cougar]";
- mes "It's my duty to get rid of you.";
- mes "^000099(He's a short, silent man.)^000000";
- mes "This will push you back!";
- close2;
- warp "amatsu",147,136;
- end;
}
+ mes "[Cougar]";
+ mes "How did you get here?";
+ next;
+ mes "[Cougar]";
+ mes "It's my duty to get rid of you.";
+ mes "^000099(He's a short, silent man.)^000000";
+ mes "This will push you back!";
+ close2;
+ warp "amatsu",147,136;
end;
//callsub L_Question,"<Question>",<correct answer choice>,"<Choice 1>:<Choice 2>:<Choice 3>:<Choice 4>";
diff --git a/npc/re/jobs/3-1/guillotine_cross.txt b/npc/re/jobs/3-1/guillotine_cross.txt
index d56aff87d..f70ee321c 100644
--- a/npc/re/jobs/3-1/guillotine_cross.txt
+++ b/npc/re/jobs/3-1/guillotine_cross.txt
@@ -35,103 +35,110 @@
//=========================================================================
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) {
- L_Mission:
- mes "[Ahcart]";
- mes "Finally, it's time...";
- mes "Hey, what's your name?";
- next;
- switch(select(strcharinfo(PC_NAME),".....")) {
- case 1:
+ if (job_3rd_gc == 0 || job_3rd_gc == 1) {
+ if (job_3rd_gc == 0) {
+ if (Class == Job_Assassin || Class == Job_Assassin_Cross || Class == Job_Baby_Assassin) {
+ if (BaseLevel < 99) {
mes "[Ahcart]";
- mes strcharinfo(PC_NAME)+"?";
- mes "Got it. I'll remember your name.";
- mes "A master told me that you are a person with ability.";
- break;
- case 2:
- mes "[Ahcart]";
- mes "What? You are a distrustful person.";
- mes "Hmm, whatever.";
- mes "I heard that you are a person with ability.";
- break;
- }
- next;
- mes "[Ahcart]";
- mes "My duty is delivering a guild message to a capable assassin.";
- mes "I think that you are suitable to perform the guild's duty.";
- next;
- mes "[Ahcart]";
- mes "So, would you perform this duty for us?";
- mes "Of course, I'm going to offer a reward for completing your task.";
- next;
- select("What is the request?");
- mes "[Ahcart]";
- mes "It's unclear.";
- mes "I told you. It's a special task.";
- mes "The only thing I know is the condition to bring a person with the master's ability.";
- next;
- mes "[Ahcart]";
- mes "First, one who has patience.";
- mes "Second, one who is quiet.";
- mes "Third, one who is focused.";
- next;
- mes "[Ahcart]";
- mes "What do you think about what I told you?";
- mes "This task means that it needs a person who can perform a task irrespective of their own will.";
- next;
- mes "[Ahcart]";
- mes "It's necessary to keep this request secret.";
- mes "But it's also your duty not to tell anyone.";
- next;
- mes "[Ahcart]";
- mes "This is all your choice.";
- mes "Will you help us with this request?";
- next;
- switch(select("I'll do it.", "Give me time to think.")) {
- case 1:
- mes "[Ahcart]";
- mes "Ok, to Veins.";
- mes "I'll contact them.";
- mes "It's your first duty to go to Veins.";
+ mes "Hmm, you are my peer.";
+ mes "I'm Ahcart. I'm from Veins.";
+ mes "Hmm...";
next;
mes "[Ahcart]";
- mes "You should be able to find it easily.";
- mes "Go now.";
- job_3rd_gc = 3;
- setquest 7101;
- close;
- case 2:
- mes "[Ahcart]";
- mes "Got it.";
- mes "But don't think about it for too long.";
- job_3rd_gc = 2;
+ mes "Of course, a chapter of the assassin guild is not only in Morroc. If you have a chance to go there, visit there.";
+ mes "I think you might go there.";
+ job_3rd_gc = 1;
close;
}
+ } else {
+ mes "[A man of a sharp impression]";
+ mes "....";
+ mes "What the...?";
+ mes "You are not an assassin.";
+ close;
}
+ } else if (job_3rd_gc == 1) {
+ if (BaseLevel < 99) {
+ mes "[Ahcart]";
+ mes "If you become stronger and more skillful, then the assassin's guild will give you a special task.";
+ mes "Go for it.";
+ close;
+ }
+ }
+ mes "[Ahcart]";
+ mes "Finally, it's time...";
+ mes "Hey, what's your name?";
+ next;
+ switch(select(strcharinfo(PC_NAME),".....")) {
+ case 1:
mes "[Ahcart]";
- mes "Hmm, you are my peer.";
- mes "I'm Ahcart. I'm from Veins.";
- mes "Hmm...";
+ mes strcharinfo(PC_NAME)+"?";
+ mes "Got it. I'll remember your name.";
+ mes "A master told me that you are a person with ability.";
+ break;
+ case 2:
+ mes "[Ahcart]";
+ mes "What? You are a distrustful person.";
+ mes "Hmm, whatever.";
+ mes "I heard that you are a person with ability.";
+ break;
+ }
+ next;
+ mes "[Ahcart]";
+ mes "My duty is delivering a guild message to a capable assassin.";
+ mes "I think that you are suitable to perform the guild's duty.";
+ next;
+ mes "[Ahcart]";
+ mes "So, would you perform this duty for us?";
+ mes "Of course, I'm going to offer a reward for completing your task.";
+ next;
+ select("What is the request?");
+ mes "[Ahcart]";
+ mes "It's unclear.";
+ mes "I told you. It's a special task.";
+ mes "The only thing I know is the condition to bring a person with the master's ability.";
+ next;
+ mes "[Ahcart]";
+ mes "First, one who has patience.";
+ mes "Second, one who is quiet.";
+ mes "Third, one who is focused.";
+ next;
+ mes "[Ahcart]";
+ mes "What do you think about what I told you?";
+ mes "This task means that it needs a person who can perform a task irrespective of their own will.";
+ next;
+ mes "[Ahcart]";
+ mes "It's necessary to keep this request secret.";
+ mes "But it's also your duty not to tell anyone.";
+ next;
+ mes "[Ahcart]";
+ mes "This is all your choice.";
+ mes "Will you help us with this request?";
+ next;
+ switch(select("I'll do it.", "Give me time to think.")) {
+ case 1:
+ mes "[Ahcart]";
+ mes "Ok, to Veins.";
+ mes "I'll contact them.";
+ mes "It's your first duty to go to Veins.";
next;
mes "[Ahcart]";
- mes "Of course, a chapter of the assassin guild is not only in Morroc. If you have a chance to go there, visit there.";
- mes "I think you might go there.";
- job_3rd_gc = 1;
+ mes "You should be able to find it easily.";
+ mes "Go now.";
+ job_3rd_gc = 3;
+ setquest 7101;
+ close;
+ case 2:
+ mes "[Ahcart]";
+ mes "Got it.";
+ mes "But don't think about it for too long.";
+ job_3rd_gc = 2;
close;
}
- mes "[A man of a sharp impression]";
- mes "....";
- mes "What the...?";
- mes "You are not an assassin.";
- close;
- } else if (job_3rd_gc == 1) {
- if (BaseLevel >= 99) goto L_Mission;
- mes "[Ahcart]";
- mes "If you become stronger and more skillful, then the assassin's guild will give you a special task.";
- mes "Go for it.";
- close;
+
+
+
+
} else if (job_3rd_gc == 2) {
mes "[Ahcart]";
mes "Have you thought about it more?";
@@ -3649,85 +3656,87 @@ job3_guil01,148,53,3 script Bercasell#3rdgc16 4_M_GUILLOTINE,{
next;
switch(select("Yes, change my job.", "I need to think about it.")) {
case 1:
- L_JobChange:
- mes "[Bercasell]";
- mes "You don't regret it?";
- callsub L_Info;
- mes "[Bercasell]";
- mes "You can become a living offensive weapon.";
- mes "Do you really want to become a Guillotine Cross?";
- next;
- switch(select("Yes, change my job.", "I need to rethink it.")) {
- case 1:
- mes "[Bercasell]";
- if (hascashmount()) {
- mes "I cannot perform the job change.";
- mes "Please remove your mount and try again.";
- close;
- } else if (SkillPoint != 0) {
- mes "You still have unspent skill points.";
- mes "Please use all your skill points and try again.";
- close;
- }
- mes "Is your decision final?";
- mes "Good.";
- next;
- mes "[Bercasell]";
- mes "Now, you are an assassin, yet you are not an assassin anymore.";
- mes "You are in the shadows, but it's different from the other shadows.";
- next;
- mes "[Bercasell]";
- mes "Your enemy is everything you can see.";
- mes "Don't forget yourself.";
- mes "A weight of the blood on your weapons.";
- next;
- mes "[Bercasell]";
- mes "Ok, change your clothes to your new uniform.";
- mes "You are now a Guillotine Cross.";
- next;
- mes "[Bercasell]";
- mes "A sword of the shadow...";
- setlook 7,0;
- jobchange roclass(eaclass()|EAJL_THIRD);
- if (questprogress(7096) == 1) {
- job_3rd_gc = 25;
- erasequest 7096;
- } else if (questprogress(7097) == 1) {
- job_3rd_gc = 26;
- erasequest 7097;
- } else if (questprogress(7098) == 1) {
- job_3rd_gc = 27;
- erasequest 7098;
- } else if (questprogress(7099) == 1) {
- job_3rd_gc = 28;
- erasequest 7099;
- }
- getitem Green_Apple_Ring,1;
- getitem Silent_Executer,1;
- next;
- mes "[Bercasell]";
- mes "And... these are presents to celebrate your becoming a Guillotine Cross.";
- close;
- case 2:
- mes "[Bercasell]";
- mes "You are prudent. That's a good thing.";
- mes "I'll wait for the day that you decide to join us as a Guillotine Cross.";
- close;
- }
+ break;
case 2:
mes "[Bercasell]";
mes "You are prudent. That's a good thing.";
mes "I'll wait for the day that you decide to join us as a Guillotine Cross.";
close;
}
+ break;
}
+ break;
case 2:
- goto L_JobChange;
+ break;
case 3:
mes "[Bercasell]";
mes "Don't bother me.";
close;
}
+ mes "[Bercasell]";
+ mes "You don't regret it?";
+ callsub L_Info;
+ mes "[Bercasell]";
+ mes "You can become a living offensive weapon.";
+ mes "Do you really want to become a Guillotine Cross?";
+ next;
+ switch(select("Yes, change my job.", "I need to rethink it.")) {
+ case 1:
+ mes "[Bercasell]";
+ if (hascashmount()) {
+ mes "I cannot perform the job change.";
+ mes "Please remove your mount and try again.";
+ close;
+ } else if (SkillPoint != 0) {
+ mes "You still have unspent skill points.";
+ mes "Please use all your skill points and try again.";
+ close;
+ }
+ mes "Is your decision final?";
+ mes "Good.";
+ next;
+ mes "[Bercasell]";
+ mes "Now, you are an assassin, yet you are not an assassin anymore.";
+ mes "You are in the shadows, but it's different from the other shadows.";
+ next;
+ mes "[Bercasell]";
+ mes "Your enemy is everything you can see.";
+ mes "Don't forget yourself.";
+ mes "A weight of the blood on your weapons.";
+ next;
+ mes "[Bercasell]";
+ mes "Ok, change your clothes to your new uniform.";
+ mes "You are now a Guillotine Cross.";
+ next;
+ mes "[Bercasell]";
+ mes "A sword of the shadow...";
+ setlook 7,0;
+ jobchange roclass(eaclass()|EAJL_THIRD);
+ if (questprogress(7096) == 1) {
+ job_3rd_gc = 25;
+ erasequest 7096;
+ } else if (questprogress(7097) == 1) {
+ job_3rd_gc = 26;
+ erasequest 7097;
+ } else if (questprogress(7098) == 1) {
+ job_3rd_gc = 27;
+ erasequest 7098;
+ } else if (questprogress(7099) == 1) {
+ job_3rd_gc = 28;
+ erasequest 7099;
+ }
+ getitem Green_Apple_Ring,1;
+ getitem Silent_Executer,1;
+ next;
+ mes "[Bercasell]";
+ mes "And... these are presents to celebrate your becoming a Guillotine Cross.";
+ close;
+ case 2:
+ mes "[Bercasell]";
+ mes "You are prudent. That's a good thing.";
+ mes "I'll wait for the day that you decide to join us as a Guillotine Cross.";
+ close;
+ }
}
mes "......";
mes "What can I do for you?";
diff --git a/npc/re/mapflag/gvg.txt b/npc/re/mapflag/gvg.txt
new file mode 100644
index 000000000..2e0e85f32
--- /dev/null
+++ b/npc/re/mapflag/gvg.txt
@@ -0,0 +1,41 @@
+//================= Hercules Script =======================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//================= License ===============================================
+//= This file is part of Hercules.
+//= http://herc.ws - http://github.com/HerculesWS/Hercules
+//=
+//= Copyright (C) 2017 Hercules Dev Team
+//=
+//= Hercules is free software: you can redistribute it and/or modify
+//= it under the terms of the GNU General Public License as published by
+//= the Free Software Foundation, either version 3 of the License, or
+//= (at your option) any later version.
+//=
+//= This program is distributed in the hope that it will be useful,
+//= but WITHOUT ANY WARRANTY; without even the implied warranty of
+//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//= GNU General Public License for more details.
+//=
+//= You should have received a copy of the GNU General Public License
+//= along with this program. If not, see <http://www.gnu.org/licenses/>.
+//=========================================================================
+//= Mapflag: Guild versus Guild mode.
+//================= Current Version =======================================
+//= 1.0
+//================= Description ===========================================
+//= Players can attack other guilds, and will have their guild
+//= icons shown. WoE damage reductions will also take place.
+//= gvg: Turns on GvG mode
+//= gvg_castle: Describes castle maps for WoE.
+//=========================================================================
+
+// Hall of the Abyss ======
+gld2_ald mapflag gvg_dungeon
+gld2_gef mapflag gvg_dungeon
+gld2_pay mapflag gvg_dungeon
+gld2_prt mapflag gvg_dungeon
diff --git a/npc/re/mapflag/zone.txt b/npc/re/mapflag/zone.txt
index a6cfd95f1..24ffce665 100644
--- a/npc/re/mapflag/zone.txt
+++ b/npc/re/mapflag/zone.txt
@@ -32,6 +32,41 @@
//= Flags maps as part of zones defined in map_zone_db.txt
//=========================================================================
+// Misty Forest Labyrinth ===========
+1@mist mapflag zone Memorial Dungeon
+
+// Octopus Cave ===========
+1@cash mapflag zone Memorial Dungeon
+
+// Drain ===========
+1@pump mapflag zone Memorial Dungeon
+2@pump mapflag zone Memorial Dungeon
+
+// Somatology Laboratory ===========
+1@lhz mapflag zone Memorial Dungeon
+
+// Bangungot Hospital F2 ===========
+1@ma_h mapflag zone Memorial Dungeon
+
+// Buwaya Cave ===========
+1@ma_c mapflag zone Memorial Dungeon
+
+// Bakonawa Hideout ===========
+1@ma_b mapflag zone Memorial Dungeon
+
+// Inside Eclage ===========
+1@ecl mapflag zone Memorial Dungeon
+
+// Old Glast Heim ===========
+1@gl_k mapflag zone Memorial Dungeon
+2@gl_k mapflag zone Memorial Dungeon
+
+// Ghost Palace ===========
+1@spa mapflag zone Memorial Dungeon
+
+// Sara's Memory Instance ===========
+1@sara mapflag zone Memorial Dungeon
+
// WoE:TE
te_prt_gld mapflag zone WoE TE
te_prtcas01 mapflag zone WoE TE
diff --git a/npc/re/merchants/shadow_refiner.txt b/npc/re/merchants/shadow_refiner.txt
index 4e5049e5f..2f8984498 100644
--- a/npc/re/merchants/shadow_refiner.txt
+++ b/npc/re/merchants/shadow_refiner.txt
@@ -158,7 +158,7 @@ itemmall,31,76,3 script Shadow Blacksmith#nomal 4_F_JOB_BLACKSMITH,{
}
delitem .@choose,1;
Zeny -= 20000;
- if (getequippercentrefinery(.@SelectedPart) > rand(100) || getequippercentrefinery(.@SelectedPart) > rand(100)) {
+ if (getequippercentrefinery(.@SelectedPart) > rand(100) || ( .@option == 1 && getequippercentrefinery(.@SelectedPart) > rand(100))) {
successrefitem .@SelectedPart;
mes "[Shadow Blacksmith]";
mes "Refine was successful.";
diff --git a/npc/re/quests/eden/eden_tutorial.txt b/npc/re/quests/eden/eden_tutorial.txt
index e9fac253b..45d7c6f1e 100644
--- a/npc/re/quests/eden/eden_tutorial.txt
+++ b/npc/re/quests/eden/eden_tutorial.txt
@@ -35,8 +35,129 @@
moc_para01,34,178,3 script Tutorial Instructor 4_M_KHMAN,{
if (Class == Job_Novice) {
// Fall through
- } else if (!questprogress(9167)) {
- OnStartQuest:
+ } else if (!questprogress(9167) || questprogress(9173) == 1) {
+ if (questprogress(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 (questprogress(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:
+ @tutorial_restart = 1;
+ break;
+ case 2:
+ mes "[Tutorial Instructor]";
+ mes "Okay. But if you change your mind and want to receive a quest, come find me.";
+ close;
+ }
+ break;
+ 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;
+ }
+ }
if (@tutorial_restart) {
.@tutorial_restart = 1;
@tutorial_restart = 0;
@@ -459,126 +580,6 @@ moc_para01,34,178,3 script Tutorial Instructor 4_M_KHMAN,{
mes "then bring them back to me.";
close;
}
- } else if (questprogress(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 (questprogress(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:
- @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";
diff --git a/npc/re/quests/quests_malangdo.txt b/npc/re/quests/quests_malangdo.txt
index 1351ab80a..9a67c4af8 100644
--- a/npc/re/quests/quests_malangdo.txt
+++ b/npc/re/quests/quests_malangdo.txt
@@ -1174,10 +1174,49 @@ mal_in02,140,94,0 script Bob#mal 4_CAT_DOWN,{
} else if (ma_tomas == 14) {
// Dialogue in repeatable quest is identical.
// Uses a variable to determine the quest mode.
- @mal_bob_q = 1;
- L_Quest1:
- .@i = @mal_bob_q;
- @mal_bob_q = 0;
+ .@i = 1;
+ } else if (ma_tomas == 15) {
+ .@i = 3;
+ } else if (ma_tomas == 16) {
+ mes "[Bob]";
+ mes "Khhh~~~~~~~~~~~~~~~~~~~~~~";
+ mes "That was perfect!";
+ emotion e_no1;
+ next;
+ mes "[Bob]";
+ mes "The adhesive filled in just right!!";
+ mes "The perfect stapler job!!";
+ mes "The speechless and marvelous finishing skill!!";
+ next;
+ mes "[Bob]";
+ mes "Impressed!";
+ mes "Mysterious!";
+ mes "Shocked!";
+ emotion e_omg;
+ next;
+ mes "[Bob]";
+ mes "You did a great job indeed!!!";
+ mes "I will tell Dr. Mali!";
+ if (countitem(Fix_Kit) > 0)
+ delitem Fix_Kit,1;
+ ma_tomas = 17;
+ changequest 11223,11224;
+ close;
+ } else if (ma_tomas > 99) {
+ if (questprogress(11240))
+ .@i = 2;
+ else if (questprogress(11241))
+ .@i = 3;
+ } else {
+ mes "[Bob]";
+ mes "You bow-wow! bow! wow! I mew! mew! mew!";
+ mes "I'm into juice from delicious fish, mew~";
+ emotion e_ho;
+ close;
+ }
+ switch (.@i) {
+ case 1:
+ case 2:
mes "[Bob]";
mes "You bow-wow! bow! wow! I mew! mew! mew!";
mes "I'm into juice from delicious fish, mew~";
@@ -1251,8 +1290,7 @@ mal_in02,140,94,0 script Bob#mal 4_CAT_DOWN,{
emotion e_otl;
close;
}
- } else if (ma_tomas == 15) {
- L_Quest2:
+ case 3:
if (checkweight(Knife,1) == 0) {
mes " - Notice !! -";
mes " - Since you have too many items - ";
@@ -1283,43 +1321,7 @@ mal_in02,140,94,0 script Bob#mal 4_CAT_DOWN,{
mes "Ah, right...";
mes "^0000ffYou may fall into the gap of the crack, unfortunately, so please watch out.^000000";
close;
- } else if (ma_tomas == 16) {
- mes "[Bob]";
- mes "Khhh~~~~~~~~~~~~~~~~~~~~~~";
- mes "That was perfect!";
- emotion e_no1;
- next;
- mes "[Bob]";
- mes "The adhesive filled in just right!!";
- mes "The perfect stapler job!!";
- mes "The speechless and marvelous finishing skill!!";
- next;
- mes "[Bob]";
- mes "Impressed!";
- mes "Mysterious!";
- mes "Shocked!";
- emotion e_omg;
- next;
- mes "[Bob]";
- mes "You did a great job indeed!!!";
- mes "I will tell Dr. Mali!";
- if (countitem(Fix_Kit) > 0)
- delitem Fix_Kit,1;
- ma_tomas = 17;
- changequest 11223,11224;
- close;
- } else if (ma_tomas > 99) {
- if (questprogress(11240)) {
- @mal_bob_q = 2;
- goto L_Quest1;
- } else if (questprogress(11241))
- goto L_Quest2;
- }
- mes "[Bob]";
- mes "You bow-wow! bow! wow! I mew! mew! mew!";
- mes "I'm into juice from delicious fish, mew~";
- emotion e_ho;
- close;
+ }
}
- script Crack#mal0 FAKE_NPC,{
@@ -2221,38 +2223,7 @@ mal_dun01,136,122,3 script Biscuit#mal 4_ASTER,{
} else if (ma_tomas == 26) {
// Dialogue in repeatable quest is identical.
// Uses a variable to determine the quest mode.
- @mal_bob_q = 1;
- L_Quest:
- .@i = @mal_bob_q;
- @mal_bob_q = 0;
- if (countitem(Delicious_Jelly) < 30) {
- mes "[Biscuit]";
- mes "It's not enough at all~";
- mes "I need at least 30 Delicious Jelly.";
- close;
- }
- mes "[Biscuit]";
- mes "You got them well.";
- mes "There won't be any problem to prepare her meal.";
- delitem Delicious_Jelly,30;
- if (.@i == 1) {
- ma_tomas = 27;
- changequest 11231,11232;
- } else {
- erasequest 11244;
- setquest 11245;
- getitem Egrade_Coin,5;
- }
- next;
- mes "[Biscuit]";
- mes "Though the jelly looks strange, it tastes good...";
- mes "Star Candy seems to like it a lot as well.";
- next;
- mes "[Biscuit]";
- mes "Have your meal, Star Candy~";
- mes "Uhhh, why don't you eat it?";
- mes "You have no appetite?";
- close;
+ .@i = 1;
} else if (ma_tomas == 27) {
mes "[Biscuit]";
mes "Hooo.. it's natural that you have no appetite...";
@@ -2403,8 +2374,7 @@ mal_dun01,136,122,3 script Biscuit#mal 4_ASTER,{
close;
} else if (ma_tomas > 99) {
if (questprogress(11244)) {
- @mal_bob_q = 2;
- goto L_Quest;
+ .@i = 2;
} else if (questprogress(11245,PLAYTIME) == 1) {
mes "[Biscuit]";
mes "I'll call you when I need you, so don't worry!";
@@ -2430,10 +2400,39 @@ mal_dun01,136,122,3 script Biscuit#mal 4_ASTER,{
close;
}
}
+ } else {
+ mes "[Biscuit]";
+ mes "Star Candy is really good.";
+ mes "She never loses her smile, even though it's so hard to stand...";
+ close;
+ }
+ if (countitem(Delicious_Jelly) < 30) {
+ mes "[Biscuit]";
+ mes "It's not enough at all~";
+ mes "I need at least 30 Delicious Jelly.";
+ close;
}
mes "[Biscuit]";
- mes "Star Candy is really good.";
- mes "She never loses her smile, even though it's so hard to stand...";
+ mes "You got them well.";
+ mes "There won't be any problem to prepare her meal.";
+ delitem Delicious_Jelly,30;
+ if (.@i == 1) {
+ ma_tomas = 27;
+ changequest 11231,11232;
+ } else {
+ erasequest 11244;
+ setquest 11245;
+ getitem Egrade_Coin,5;
+ }
+ next;
+ mes "[Biscuit]";
+ mes "Though the jelly looks strange, it tastes good...";
+ mes "Star Candy seems to like it a lot as well.";
+ next;
+ mes "[Biscuit]";
+ mes "Have your meal, Star Candy~";
+ mes "Uhhh, why don't you eat it?";
+ mes "You have no appetite?";
close;
}
diff --git a/npc/re/quests/quests_malaya.txt b/npc/re/quests/quests_malaya.txt
index 410ee71a7..8c47fb2ed 100644
--- a/npc/re/quests/quests_malaya.txt
+++ b/npc/re/quests/quests_malaya.txt
@@ -2426,67 +2426,64 @@ malaya,326,68,2 script Pedro the Sailor 4W_SAILOR,{
end;
} else if (.@playtime == 2) {
erasequest 7401;
- goto L_SetQuest;
} else {
if (!questprogress(7403)) {
- if (!questprogress(7402)) {
- goto L_SetQuest;
+ if (questprogress(7402)) {
+ 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;
}
+ } else {
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.";
+ 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 "Give the Bouquet to Miss Diwata to cheer her up.";
- mes "....Thank you.";
+ 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 Lesser_Agimat, 2; // Lesser_Agimat
+// else
+// getitem Lesser_Agimat, 1; // Lesser_Agimat
+ getexp 200000,200000;
+ if (!rand(3))
+ $malayaNames$[0] = strcharinfo(PC_NAME);
close;
}
+ }
+ 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 "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 Lesser_Agimat, 2; // Lesser_Agimat
-// else
-// getitem Lesser_Agimat, 1; // Lesser_Agimat
- getexp 200000,200000;
- if (!rand(3))
- $malayaNames$[0] = strcharinfo(PC_NAME);
+ 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;
}
}
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,{
diff --git a/npc/re/scripts_mapflags.conf b/npc/re/scripts_mapflags.conf
index 8727d9b44..570294c47 100644
--- a/npc/re/scripts_mapflags.conf
+++ b/npc/re/scripts_mapflags.conf
@@ -28,4 +28,5 @@
//= Map Flags
//=========================================================================
+"npc/re/mapflag/gvg.txt",
"npc/re/mapflag/zone.txt",
diff --git a/npc/re/woe-fe/invest_main.txt b/npc/re/woe-fe/invest_main.txt
index c912444cc..d743225df 100644
--- a/npc/re/woe-fe/invest_main.txt
+++ b/npc/re/woe-fe/invest_main.txt
@@ -107,16 +107,16 @@ function script F_Invest_Status {
return 0;
// Open for investments.
- if (.@day >= 3 && (.@day < 5 || (.@day == 5 && .@hour <= 12)))
+ if (.@day >= WEDNESDAY && (.@day < FRIDAY || (.@day == FRIDAY && .@hour <= 12)))
return 1;
// Investments closed, calculating results.
- if (.@day == 5 && .@hour == 12 && .@minute < 35)
+ if (.@day == FRIDAY && .@hour == 12 && .@minute < 35)
return 2;
// Calculations complete, dungeons open.
- if ((.@day == 5 && (.@hour > 12 || (.@hour == 12 && .@minute >= 35))) || .@day > 5 ||
- .@day < 2 || (.@day == 2 && .@hour < 20))
+ if ((.@day == FRIDAY && (.@hour > 12 || (.@hour == 12 && .@minute >= 35))) || .@day > FRIDAY ||
+ .@day < TUESDAY || (.@day == TUESDAY && .@hour < 20))
return 3;
// Dungeons closed.
@@ -273,14 +273,14 @@ OnCalculate:
else
setd "$"+.@cas$[.@i]+"_invest_result",1;
}
- // No further actions if 20,000,000z isn't reached.
- if (!.@total_2000)
- end;
// No further actions if any realm hits 70,000,000z.
if (.@total_7000) {
$2011_agit_invest = 4;
end;
}
+ // No further actions if 20,000,000z isn't reached.
+ if (!.@total_2000)
+ end;
// Otherwise, highest investment above 20,000,000z opens Hall of Abyss.
.@max = .@funds[0];
for(.@i = 1; .@i<4; ++.@i) {
@@ -882,7 +882,7 @@ OnAgitInvest:
close;
}
case 3:
- if (checkweight(Knife,1) == 0 || MaxWeight - Weight < 1000) {
+ if (checkweight(Knife,1) == 0 || MaxWeight - Weight < 2000) {
mes "- Currently you're carrying -";
mes "- too many items with you. -";
mes "- Please try again after you -";
@@ -1126,7 +1126,7 @@ OnAgitInvest:
next;
switch(select("Invest for gate connection", "Deepest Layer Dungeon Access", "Abyss Gate Access", "Cancel")) {
case 1:
- if (checkweight(Knife,1) == 0 || MaxWeight - Weight < 1000) {
+ if (checkweight(Knife,1) == 0 || MaxWeight - Weight < 2000) {
mes "[Gate Manager]";
mes "You have too many items to receive the Thank You Ticket as a small gift for your investment.";
mes "Please come back after making room in your inventory.";
@@ -1401,27 +1401,48 @@ malangdo,218,123,1 script Namis#invest 4_CAT_SAILOR2,4,4,{
"Piece of Thanatos' armor","I hear Dragon Scales are tough 02","The identity of the creepy eye","If only I could see!";
.@i = select(implode(.@event1$[0],":"))-1;
switch(.@i+1) {
- case 1: callsub L_Check,"2 Pieces of Queen's Wing",6326,2,"Wings of the Insect Queen? What a pitiful name. I would've given some cool names!",.@event1$[.@i];
- case 2: callsub L_Check,"2 Broken Crowns",7754,2,"For crying out loud! Those cats working on these events must be playing around. Can't they think of a better name?",.@event1$[.@i];
- case 3: callsub L_Check,"2 Fire Dragon Scales",7451,2,"Dragon scales? Well... I guess they are tough. But what are they going to use them for?",.@event1$[.@i];
- case 4: callsub L_Check,"3 Mother's Nightmares",7020,3,"Even though I don't have the authority to find out, I wonder what they're doing with the collected items?",.@event1$[.@i];
- case 5: callsub L_Check,"5 Gemstones",7300,5,"Something useful for a change. The ore will end up as nice pieces of jewelry.",.@event1$[.@i];
- case 6: callsub L_Check,"5 Heroic Emblems",968,5,"Good, good. This is the kind of name I wanted!",.@event1$[.@i];
- case 7: callsub L_Check,"3 Taeguk Plates",7169,3,"Taking in something like this, maybe they're up to something dangerous.",.@event1$[.@i];
- case 8: callsub L_Check,"3 Broken Pharaoh Symbols and 3 Tutankhamen's Masks",7113,3,"I hear the pyramids are in Morroc, but I've never been there. Some humans call it Morco.",.@event1$[.@i],7114,3;
- case 9: callsub L_Check,"2 Pocket Watches",7513,2,"Those lazy merchants, why do they need pocket watches they don't even use?",.@event1$[.@i];
- case 10: callsub L_Check,"3 Young Twigs",7018,3,"Mellow Island has a climate like with where we cats used to live. But the trees die out sometimes due to it being an island.",.@event1$[.@i];
- case 11: callsub L_Check,"5 Rossata Pieces",7211,5,"I guess they collect these because humans have them, but what's the use of researching ancient languages?",.@event1$[.@i];
- case 12: callsub L_Check,"5 Fangs of Garm",7036,5,"Weak humans need sharp weapons, but cats already have nice and sharp claws, so why are we collecting these!!",.@event1$[.@i];
- case 13: callsub L_Check,"3 Baphomet Dolls",750,3,"Baphomet dolls are great for playing around with.",.@event1$[.@i];
- case 14: callsub L_Check,"1 Tiger's Footskin and 5 Tiger Skins",1030,1,"Did you know that tigers are cats too? Therefore, cats are better than tigers.",.@event1$[.@i],1029,5;
- case 15: callsub L_Check,"3 Broken Shield Pieces and 3 Shining Spear Blades",7108,3,"I don't know what they want with these.",.@event1$[.@i],7109,3;
- case 16: callsub L_Check,"3 Osiris Dolls",751,3,"Shame~ I never got to play with an Osiris doll.",.@event1$[.@i];
- case 17: callsub L_Check,"1 Ice Scale",7562,1,"Mellow Island is a fabulous place to live. But the ships are too hot.",.@event1$[.@i];
- case 18: callsub L_Check,"1 Skeletal Armor Piece",7450,1,"Ewww... Why would they collect something so creepy?",.@event1$[.@i];
- case 19: callsub L_Check,"1 Darkred Scale Piece",6091,1,"Dragon scales? Well... I guess they are tough. But what are they going to use them for?",.@event1$[.@i];
- case 20: callsub L_Check,"2 Wills of Red Darkness",7566,2,"Interesting! Does it scream or something when I poke it in the eye?",.@event1$[.@i];
- case 21: callsub L_Check,"2 Foolishness of the Blind",7021,2,"This blind man is foolish in not knowing that gathering 300 cats cures blindness...",.@event1$[.@i];
+ case 1:
+ callsub(L_Check, "2 Pieces of Queen's Wing", Queen_Wing_Piece, 2, "Wings of the Insect Queen? What a pitiful name. I would've given some cool names!", .@event1$[.@i]);
+ case 2:
+ callsub(L_Check, "2 Broken Crowns", Broken_Crown, 2, "For crying out loud! Those cats working on these events must be playing around. Can't they think of a better name?", .@event1$[.@i]);
+ case 3:
+ callsub(L_Check, "2 Fire Dragon Scales", Scale_Of_Red_Dragon, 2, "Dragon scales? Well... I guess they are tough. But what are they going to use them for?", .@event1$[.@i]);
+ case 4:
+ callsub(L_Check, "3 Mother's Nightmares", Mothers_Nightmare, 3, "Even though I don't have the authority to find out, I wonder what they're doing with the collected items?", .@event1$[.@i]);
+ case 5:
+ callsub(L_Check, "5 Gemstones", Gemstone, 5, "Something useful for a change. The ore will end up as nice pieces of jewelry.", .@event1$[.@i]);
+ case 6:
+ callsub(L_Check, "5 Heroic Emblems", Voucher_Of_Orcish_Hero, 5, "Good, good. This is the kind of name I wanted!", .@event1$[.@i]);
+ case 7:
+ callsub(L_Check, "3 Taeguk Plates", Taegeuk_Plate, 3, "Taking in something like this, maybe they're up to something dangerous.", .@event1$[.@i]);
+ case 8:
+ callsub(L_Check, "3 Broken Pharaoh Symbols and 3 Tutankhamen's Masks", Broken_Pharaoh_Symbol, 3, "I hear the pyramids are in Morroc, but I've never been there. Some humans call it Morco.", .@event1$[.@i], Tutankhamens_Mask, 3);
+ case 9:
+ callsub(L_Check, "2 Pocket Watches", Pocket_Watch, 2, "Those lazy merchants, why do they need pocket watches they don't even use?", .@event1$[.@i]);
+ case 10:
+ callsub(L_Check, "3 Young Twigs", Young_Twig, 3, "Mellow Island has a climate like with where we cats used to live. But the trees die out sometimes due to it being an island.", .@event1$[.@i]);
+ case 11:
+ callsub(L_Check, "5 Rossata Pieces", Rojerta_Piece, 5, "I guess they collect these because humans have them, but what's the use of researching ancient languages?", .@event1$[.@i]);
+ case 12:
+ callsub(L_Check, "5 Fangs of Garm", Fang_Of_Garm, 5, "Weak humans need sharp weapons, but cats already have nice and sharp claws, so why are we collecting these!!", .@event1$[.@i]);
+ case 13:
+ callsub(L_Check, "3 Baphomet Dolls", Baphomet_Doll, 3, "Baphomet dolls are great for playing around with.", .@event1$[.@i]);
+ case 14:
+ callsub(L_Check, "1 Tiger's Footskin and 5 Tiger Skins", Tiger_Footskin, 1, "Did you know that tigers are cats too? Therefore, cats are better than tigers.", .@event1$[.@i], Tigers_Skin, 5);
+ case 15:
+ callsub(L_Check, "3 Broken Shield Pieces and 3 Shining Spear Blades", Boroken_Shiled_Piece, 3, "I don't know what they want with these.", .@event1$[.@i], Shine_Spear_Blade, 3);
+ case 16:
+ callsub(L_Check, "3 Osiris Dolls", Osiris_Doll, 3, "Shame~ I never got to play with an Osiris doll.", .@event1$[.@i]);
+ case 17:
+ callsub(L_Check, "1 Ice Scale", Ice_Scale, 1, "Mellow Island is a fabulous place to live. But the ships are too hot.", .@event1$[.@i]);
+ case 18:
+ callsub(L_Check, "1 Skeletal Armor Piece", Piece_Of_Bone_Armor, 1, "Ewww... Why would they collect something so creepy?", .@event1$[.@i]);
+ case 19:
+ callsub(L_Check, "1 Darkred Scale Piece", Dark_Red_Scale, 1, "Dragon scales? Well... I guess they are tough. But what are they going to use them for?", .@event1$[.@i]);
+ case 20:
+ callsub(L_Check, "2 Wills of Red Darkness", Will_Of_Darkness_, 2, "Interesting! Does it scream or something when I poke it in the eye?", .@event1$[.@i]);
+ case 21:
+ callsub(L_Check, "2 Foolishness of the Blind", Foolishness_Of_Blind, 2, "This blind man is foolish in not knowing that gathering 300 cats cures blindness...", .@event1$[.@i]);
}
case 3:
mes "[Namis]";
@@ -1496,21 +1517,36 @@ malangdo,215,119,4 script Thanks Ticket Machine 2_VENDING_MACHINE1,{
mes "The Vending Machine is selling items in the following list.";
next;
switch(select("Finish", "1 Siege Arrow Quiver A (2 Tickets)", "1 Siege Arrow Quiver S (2 Tickets)", "30 White Potion (12 Tickets)", "30 White Slim Potion (14 Tickets)", "10 Dark Water (20 Tickets)", "20 Siege_Violet_Potion (30 Tickets)", "10 Coldproof Potion (30 Tickets)", "10 Thunderproof Potion (30 Tickets)", "10 Earthproof Potion (30 Tickets)", "10 Fireproof Potion (30 Tickets)", "10 Elemental Converter[Fire] (30 Tickets)")) {
- case 1: close;
- case 2: callsub L_Purchase,2,12678,1; //Siege_Arrow_Quiver_A
- case 3: callsub L_Purchase,2,12677,1; //Siege_Arrow_Quiver_S
- case 4: callsub L_Purchase,12,504,30; //White_Potion
- case 5: callsub L_Purchase,14,547,30; //White_Slim_Potion
- case 6: callsub L_Purchase,20,12020,10; //Water_Of_Darkness
- case 7: callsub L_Purchase,30,11547,20; //Woe_Violet_Potion
- case 8: callsub L_Purchase,30,12119,10; //Resist_Water
- case 9: callsub L_Purchase,30,12121,10; //Resist_Wind
- case 10: callsub L_Purchase,30,12120,10; //Resist_Earth
- case 11: callsub L_Purchase,30,12118,10; //Resist_Fire
- case 12: callsub L_Purchase,30,12114,10,"Elemental Converter[Fire]"; //Elemental_Fire
- case 13: callsub L_Purchase,30,12115,10,"Elemental Converter[Water]"; //Elemental_Water
- case 14: callsub L_Purchase,30,12117,10,"Elemental Converter[Wind]"; //Elemental_Wind
- case 15: callsub L_Purchase,30,12116,10,"Elemental Converter[Earth]"; //Elemental_Earth
+ case 1:
+ close;
+ case 2:
+ callsub(L_Purchase, 2, Siege_Arrow_Quiver_A, 1);
+ case 3:
+ callsub(L_Purchase, 2, Siege_Arrow_Quiver_S, 1);
+ case 4:
+ callsub(L_Purchase, 12, White_Potion, 30);
+ case 5:
+ callsub(L_Purchase, 14, White_Slim_Potion, 30);
+ case 6:
+ callsub(L_Purchase, 20, Water_Of_Darkness, 10);
+ case 7:
+ callsub(L_Purchase, 30, Woe_Violet_Potion, 20);
+ case 8:
+ callsub(L_Purchase, 30, Resist_Water, 10);
+ case 9:
+ callsub(L_Purchase, 30, Resist_Wind, 10);
+ case 10:
+ callsub(L_Purchase, 30, Resist_Earth, 10);
+ case 11:
+ callsub(L_Purchase, 30, Resist_Fire, 10);
+ case 12:
+ callsub(L_Purchase, 30, Elemental_Fire, 10, "Elemental Converter[Fire]");
+ case 13:
+ callsub(L_Purchase, 30, Elemental_Water, 10, "Elemental Converter[Water]");
+ case 14:
+ callsub(L_Purchase, 30, Elemental_Wind, 10, "Elemental Converter[Wind]");
+ case 15:
+ callsub(L_Purchase, 30, Elemental_Earth, 10, "Elemental Converter[Earth]");
}
end;
case 3:
@@ -1520,67 +1556,126 @@ malangdo,215,119,4 script Thanks Ticket Machine 2_VENDING_MACHINE1,{
mes "You don't have enough ^FF0000Invest Thanks Ticket^000000 to proceed.";
close;
}
- delitem Thanks_Invest_Ticket,5;
- .@i = rand(1,10000);
- if (.@i <= 100) callsub L_Bag,12531,1; //White_Potion_Box
- else if (.@i <= 200) callsub L_Bag,12549,1; //White_Slim_Pot_Box2
- else if (.@i <= 250) callsub L_Bag,11549,10; //Woe_Blue_Potion
- else if (.@i <= 660) callsub L_Bag,617,1; //Old_Violet_Box
- else if (.@i <= 710) callsub L_Bag,12532,1; //Royal_Jelly_Box2
- else if (.@i <= 760) callsub L_Bag,12533,1; //Blue_Herb_Box2
- else if (.@i <= 810) callsub L_Bag,505,5; //Blue_Potion
- else if (.@i <= 1110) callsub L_Bag,644,1; //Gift_Box
- else if (.@i <= 1120) callsub L_Bag,607,1; //Yggdrasilberry
- else if (.@i <= 1130) callsub L_Bag,608,2; //Seed_Of_Yggdrasil
- else if (.@i <= 1140) callsub L_Bag,12292,5; //Unripe_Fruit
- else if (.@i <= 1150) callsub L_Bag,12293,5; //Dried_Yggdrasilberry
- else if (.@i <= 1250) callsub L_Bag,12679,1; //Sg_White_Potion_Box
- else if (.@i <= 1471) callsub L_Bag,603,1; //Old_Blue_Box
- else if (.@i <= 1571) callsub L_Bag,12550,1,"Poison Bottle Box(30)"; //Poison_Bottle_Box2
- else if (.@i <= 1671) callsub L_Bag,12020,10; //Water_Of_Darkness
- else if (.@i <= 1871) callsub L_Bag,12030,5; //Box_Of_Grudge
- else if (.@i <= 2071) callsub L_Bag,12031,5; //Sleepy_Box
- else if (.@i <= 2371) callsub L_Bag,12033,2; //Box_Of_Sunlight
- else if (.@i <= 2571) callsub L_Bag,12114,5,"Elemental Converter[Fire]"; //Elemental_Fire
- else if (.@i <= 2771) callsub L_Bag,12115,5,"Elemental Converter[Water]"; //Elemental_Water
- else if (.@i <= 2971) callsub L_Bag,12117,5,"Elemental Converter[Wind]"; //Elemental_Wind
- else if (.@i <= 3171) callsub L_Bag,12116,5,"Elemental Converter[Earth]"; //Elemental_Earth
- else if (.@i <= 3271) callsub L_Bag,12680,1; //Sg_Blue_Potion_Box
- else if (.@i <= 3471) callsub L_Bag,12118,5; //Resist_Fire
- else if (.@i <= 3671) callsub L_Bag,12119,5; //Resist_Water
- else if (.@i <= 3871) callsub L_Bag,12121,5; //Resist_Wind
- else if (.@i <= 4071) callsub L_Bag,12120,5; //Resist_Earth
- else if (.@i <= 4271) callsub L_Bag,929,20; //Immortal_Heart
- else if (.@i <= 4471) callsub L_Bag,1059,20; //Transparent_Cloth
- else if (.@i <= 4671) callsub L_Bag,905,20; //Stem
- else if (.@i <= 4871) callsub L_Bag,606,10; //Aloebera
- else if (.@i <= 5071) callsub L_Bag,609,10; //Amulet
- else if (.@i <= 5271) callsub L_Bag,710,2; //Illusion_Flower
- else if (.@i <= 5471) callsub L_Bag,576,20; //Prickly_Fruit
- else if (.@i <= 5671) callsub L_Bag,621,10; //Bitter_Herb
- else if (.@i <= 5871) callsub L_Bag,709,10; //Izidor
- else if (.@i <= 6071) callsub L_Bag,605,10; //Anodyne
- else if (.@i <= 6171) callsub L_Bag,11548,10; //Woe_White_Potion
- else if (.@i <= 6371) callsub L_Bag,706,10; //Four_Leaf_Clover
- else if (.@i <= 6571) callsub L_Bag,521,10; //Leaflet_Of_Aloe
- else if (.@i <= 6771) callsub L_Bag,707,10; //Singing_Plant
- else if (.@i <= 6971) callsub L_Bag,610,10; //Leaf_Of_Yggdrasil
- else if (.@i <= 7021) callsub L_Bag,12676,1; //Sg_Violet_Potion_Box
- else if (.@i <= 7171) callsub L_Bag,6249,10; //Savage_Meat
- else if (.@i <= 7321) callsub L_Bag,6252,10; //Wolf_Blood
- else if (.@i <= 7471) callsub L_Bag,6254,10; //Beef_Head_Meat
- else if (.@i <= 7621) callsub L_Bag,6253,10; //Cold_Ice
- else if (.@i <= 7771) callsub L_Bag,6256,10; //Ice_Fragment
- else if (.@i <= 7921) callsub L_Bag,6257,10; //Ice_Crystal
- else if (.@i <= 8071) callsub L_Bag,6260,10; //Petti_Tail
- else if (.@i <= 8309) callsub L_Bag,7932,20; //Poison_Herb_Nerium
- else if (.@i <= 8547) callsub L_Bag,7933,20; //Poison_Herb_Rantana
- else if (.@i <= 8785) callsub L_Bag,7934,20; //Poison_Herb_Makulata
- else if (.@i <= 9023) callsub L_Bag,7935,20; //Poison_Herb_Seratum
- else if (.@i <= 9261) callsub L_Bag,7936,20; //Poison_Herb_Scopolia
- else if (.@i <= 9499) callsub L_Bag,7937,20; //Poison_Herb_Amoena
- else if (.@i <= 9699) callsub L_Bag,6217,20; //Mandragora_Flowerpot
- else callsub L_Bag,12016,10; //Speed_Up_Potion
+ delitem(Thanks_Invest_Ticket, 5);
+ .@i = rand(1, 10000);
+ if (.@i <= 100)
+ callsub(L_Bag, White_Potion_Box, 1);
+ else if (.@i <= 200)
+ callsub(L_Bag, White_Slim_Pot_Box2, 1);
+ else if (.@i <= 250)
+ callsub(L_Bag, Woe_Blue_Potion, 10);
+ else if (.@i <= 660)
+ callsub(L_Bag, Old_Violet_Box, 1);
+ else if (.@i <= 710)
+ callsub(L_Bag, Royal_Jelly_Box2, 1);
+ else if (.@i <= 760)
+ callsub(L_Bag, Blue_Herb_Box2, 1);
+ else if (.@i <= 810)
+ callsub(L_Bag, Blue_Potion, 5);
+ else if (.@i <= 1110)
+ callsub(L_Bag, Gift_Box, 1);
+ else if (.@i <= 1120)
+ callsub(L_Bag, Yggdrasilberry, 1);
+ else if (.@i <= 1130)
+ callsub(L_Bag, Seed_Of_Yggdrasil, 2);
+ else if (.@i <= 1140)
+ callsub(L_Bag, Unripe_Fruit, 5);
+ else if (.@i <= 1150)
+ callsub(L_Bag, Dried_Yggdrasilberry, 5);
+ else if (.@i <= 1250)
+ callsub(L_Bag, Sg_White_Potion_Box, 1);
+ else if (.@i <= 1471)
+ callsub(L_Bag, Old_Blue_Box, 1);
+ else if (.@i <= 1571)
+ callsub(L_Bag, Poison_Bottle_Box2, 1, "Poison Bottle Box(30);");
+ else if (.@i <= 1671)
+ callsub(L_Bag, Water_Of_Darkness, 10);
+ else if (.@i <= 1871)
+ callsub(L_Bag, Box_Of_Grudge, 5);
+ else if (.@i <= 2071)
+ callsub(L_Bag, Sleepy_Box, 5);
+ else if (.@i <= 2371)
+ callsub(L_Bag, Box_Of_Sunlight, 2);
+ else if (.@i <= 2571)
+ callsub(L_Bag, Elemental_Fire, 5, "Elemental Converter[Fire]");
+ else if (.@i <= 2771)
+ callsub(L_Bag, Elemental_Water, 5, "Elemental Converter[Water]");
+ else if (.@i <= 2971)
+ callsub(L_Bag, Elemental_Earth, 5, "Elemental Converter[Wind]");
+ else if (.@i <= 3171)
+ callsub(L_Bag, Elemental_Wind, 5, "Elemental Converter[Earth]");
+ else if (.@i <= 3271)
+ callsub(L_Bag, Sg_Blue_Potion_Box, 1);
+ else if (.@i <= 3471)
+ callsub(L_Bag, Resist_Fire, 5);
+ else if (.@i <= 3671)
+ callsub(L_Bag, Resist_Water, 5);
+ else if (.@i <= 3871)
+ callsub(L_Bag, Resist_Wind, 5);
+ else if (.@i <= 4071)
+ callsub(L_Bag, Resist_Earth, 5);
+ else if (.@i <= 4271)
+ callsub(L_Bag, Immortal_Heart, 20);
+ else if (.@i <= 4471)
+ callsub(L_Bag, Transparent_Cloth, 20);
+ else if (.@i <= 4671)
+ callsub(L_Bag, Stem, 20);
+ else if (.@i <= 4871)
+ callsub(L_Bag, Aloebera, 10);
+ else if (.@i <= 5071)
+ callsub(L_Bag, Amulet, 10);
+ else if (.@i <= 5271)
+ callsub(L_Bag, Illusion_Flower, 2);
+ else if (.@i <= 5471)
+ callsub(L_Bag, Prickly_Fruit, 20);
+ else if (.@i <= 5671)
+ callsub(L_Bag, Bitter_Herb, 10);
+ else if (.@i <= 5871)
+ callsub(L_Bag, Izidor, 10);
+ else if (.@i <= 6071)
+ callsub(L_Bag, Anodyne, 10);
+ else if (.@i <= 6171)
+ callsub(L_Bag, Woe_White_Potion, 10);
+ else if (.@i <= 6371)
+ callsub(L_Bag, Four_Leaf_Clover, 10);
+ else if (.@i <= 6571)
+ callsub(L_Bag, Leaflet_Of_Aloe, 10);
+ else if (.@i <= 6771)
+ callsub(L_Bag, Singing_Plant, 10);
+ else if (.@i <= 6971)
+ callsub(L_Bag, Leaf_Of_Yggdrasil, 10);
+ else if (.@i <= 7021)
+ callsub(L_Bag, Sg_Violet_Potion_Box, 1);
+ else if (.@i <= 7171)
+ callsub(L_Bag, Savage_Meat, 10);
+ else if (.@i <= 7321)
+ callsub(L_Bag, Wolf_Blood, 10);
+ else if (.@i <= 7471)
+ callsub(L_Bag, Beef_Head_Meat, 10);
+ else if (.@i <= 7621)
+ callsub(L_Bag, Cold_Ice, 10);
+ else if (.@i <= 7771)
+ callsub(L_Bag, Ice_Fragment, 10);
+ else if (.@i <= 7921)
+ callsub(L_Bag, Ice_Crystal, 10);
+ else if (.@i <= 8071)
+ callsub(L_Bag, Petti_Tail, 10);
+ else if (.@i <= 8309)
+ callsub(L_Bag, Poison_Herb_Nerium, 20);
+ else if (.@i <= 8547)
+ callsub(L_Bag, Poison_Herb_Rantana, 20);
+ else if (.@i <= 8785)
+ callsub(L_Bag, Poison_Herb_Makulata, 20);
+ else if (.@i <= 9023)
+ callsub(L_Bag, Poison_Herb_Seratum, 20);
+ else if (.@i <= 9261)
+ callsub(L_Bag, Poison_Herb_Scopolia, 20);
+ else if (.@i <= 9499)
+ callsub(L_Bag, Poison_Herb_Amoena, 20);
+ else if (.@i <= 9699)
+ callsub(L_Bag, Mandragora_Flowerpot, 20);
+ else
+ callsub(L_Bag, Speed_Up_Potion, 10);
end;
case 4:
mes "Black Paw Jelly Bag Button chosen. Need to insert 50 ^FF0000Invest Thanks Ticket^000000 and a random item will appear.";
@@ -1589,75 +1684,142 @@ malangdo,215,119,4 script Thanks Ticket Machine 2_VENDING_MACHINE1,{
mes "You don't have enough ^FF0000Invest Thanks Ticket^000000 to proceed.";
close;
}
- delitem Thanks_Invest_Ticket,50;
- .@i = rand(1,10000);
- if (.@i <= 100) callsub L_Bag,12531,1; //White_Potion_Box
- else if (.@i <= 200) callsub L_Bag,12549,1; //White_Slim_Pot_Box2
- else if (.@i <= 250) callsub L_Bag,11549,20; //Woe_Blue_Potion
- else if (.@i <= 450) callsub L_Bag,617,1; //Old_Violet_Box
- else if (.@i <= 500) callsub L_Bag,12532,1; //Royal_Jelly_Box2
- else if (.@i <= 550) callsub L_Bag,12533,1; //Blue_Herb_Box2
- else if (.@i <= 600) callsub L_Bag,505,10; //Blue_Potion
- else if (.@i <= 800) callsub L_Bag,644,1; //Gift_Box
- else if (.@i <= 810) callsub L_Bag,607,2; //Yggdrasilberry
- else if (.@i <= 820) callsub L_Bag,608,3; //Seed_Of_Yggdrasil
- else if (.@i <= 830) callsub L_Bag,12292,10; //Unripe_Fruit
- else if (.@i <= 840) callsub L_Bag,12293,10; //Dried_Yggdrasilberry
- else if (.@i <= 940) callsub L_Bag,12679,1; //Sg_White_Potion_Box
- else if (.@i <= 1140) callsub L_Bag,603,1; //Old_Blue_Box
- else if (.@i <= 1240) callsub L_Bag,12550,1,"Poison Bottle Box(30)"; //Poison_Bottle_Box2
- else if (.@i <= 1340) callsub L_Bag,12020,20; //Water_Of_Darkness
- else if (.@i <= 1440) callsub L_Bag,12030,10; //Box_Of_Grudge
- else if (.@i <= 1540) callsub L_Bag,12031,10; //Sleepy_Box
- else if (.@i <= 1690) callsub L_Bag,12033,4; //Box_Of_Sunlight
- else if (.@i <= 1790) callsub L_Bag,12114,10,"Elemental Converter[Fire]"; //Elemental_Fire
- else if (.@i <= 1890) callsub L_Bag,12115,10,"Elemental Converter[Water]"; //Elemental_Water
- else if (.@i <= 1990) callsub L_Bag,12117,10,"Elemental Converter[Wind]"; //Elemental_Wind
- else if (.@i <= 2090) callsub L_Bag,12116,10,"Elemental Converter[Earth]"; //Elemental_Earth
- else if (.@i <= 2190) callsub L_Bag,12680,1; //Sg_Blue_Potion_Box
- else if (.@i <= 2290) callsub L_Bag,12118,10; //Resist_Fire
- else if (.@i <= 2390) callsub L_Bag,12119,10; //Resist_Water
- else if (.@i <= 2490) callsub L_Bag,12121,10; //Resist_Wind
- else if (.@i <= 2590) callsub L_Bag,12120,10; //Resist_Earth
- else if (.@i <= 2690) callsub L_Bag,929,40; //Immortal_Heart
- else if (.@i <= 2790) callsub L_Bag,1059,40; //Transparent_Cloth
- else if (.@i <= 2890) callsub L_Bag,905,40; //Stem
- else if (.@i <= 2990) callsub L_Bag,606,20; //Aloebera
- else if (.@i <= 3090) callsub L_Bag,609,20; //Amulet
- else if (.@i <= 3190) callsub L_Bag,710,4; //Illusion_Flower
- else if (.@i <= 3290) callsub L_Bag,576,40; //Prickly_Fruit
- else if (.@i <= 3390) callsub L_Bag,621,20; //Bitter_Herb
- else if (.@i <= 3490) callsub L_Bag,709,20; //Izidor
- else if (.@i <= 3590) callsub L_Bag,605,20; //Anodyne
- else if (.@i <= 3690) callsub L_Bag,11548,20; //Woe_White_Potion
- else if (.@i <= 3790) callsub L_Bag,706,20; //Four_Leaf_Clover
- else if (.@i <= 3890) callsub L_Bag,521,20; //Leaflet_Of_Aloe
- else if (.@i <= 3990) callsub L_Bag,707,20; //Singing_Plant
- else if (.@i <= 4090) callsub L_Bag,610,20; //Leaf_Of_Yggdrasil
- else if (.@i <= 4140) callsub L_Bag,12676,1; //Sg_Violet_Potion_Box
- else if (.@i <= 4240) callsub L_Bag,6249,20; //Savage_Meat
- else if (.@i <= 4340) callsub L_Bag,6252,20; //Wolf_Blood
- else if (.@i <= 4440) callsub L_Bag,6254,20; //Beef_Head_Meat
- else if (.@i <= 4540) callsub L_Bag,6253,20; //Cold_Ice
- else if (.@i <= 4640) callsub L_Bag,6256,20; //Ice_Fragment
- else if (.@i <= 4740) callsub L_Bag,6257,20; //Ice_Crystal
- else if (.@i <= 4840) callsub L_Bag,6260,20; //Petti_Tail
- else if (.@i <= 4940) callsub L_Bag,7932,40; //Poison_Herb_Nerium
- else if (.@i <= 5040) callsub L_Bag,7933,40; //Poison_Herb_Rantana
- else if (.@i <= 5140) callsub L_Bag,7934,40; //Poison_Herb_Makulata
- else if (.@i <= 5240) callsub L_Bag,7935,40; //Poison_Herb_Seratum
- else if (.@i <= 5340) callsub L_Bag,7936,40; //Poison_Herb_Scopolia
- else if (.@i <= 5440) callsub L_Bag,7937,40; //Poison_Herb_Amoena
- else if (.@i <= 5540) callsub L_Bag,6217,40; //Mandragora_Flowerpot
- else if (.@i <= 6000) callsub L_Bag,12016,20; //Speed_Up_Potion
- else if (.@i <= 6500) callsub L_Bag,2483,1; //Siege_Greave
- else if (.@i <= 7000) callsub L_Bag,2484,1; //Siege_Boots
- else if (.@i <= 7500) callsub L_Bag,2485,1; //Siege_Shoes
- else if (.@i <= 8000) callsub L_Bag,2586,1; //Siege_Manteau
- else if (.@i <= 8500) callsub L_Bag,2587,1; //Siege_Muffler
- else if (.@i <= 9000) callsub L_Bag,15046,1; //Siege_Plate
- else if (.@i <= 9500) callsub L_Bag,15047,1; //Siege_Suits
- else callsub L_Bag,15048,1; //Siege_Robe
+ delitem(Thanks_Invest_Ticket, 50);
+ .@i = rand(1, 10000);
+ if (.@i <= 100)
+ callsub(L_Bag, White_Potion_Box, 1);
+ else if (.@i <= 200)
+ callsub(L_Bag, White_Slim_Pot_Box2, 1);
+ else if (.@i <= 250)
+ callsub(L_Bag, Woe_Blue_Potion, 20);
+ else if (.@i <= 450)
+ callsub(L_Bag, Old_Violet_Box, 1);
+ else if (.@i <= 500)
+ callsub(L_Bag, Royal_Jelly_Box2, 1);
+ else if (.@i <= 550)
+ callsub(L_Bag, Blue_Herb_Box2, 1);
+ else if (.@i <= 600)
+ callsub(L_Bag, Blue_Potion, 10);
+ else if (.@i <= 800)
+ callsub(L_Bag, Gift_Box, 1);
+ else if (.@i <= 810)
+ callsub(L_Bag, Yggdrasilberry, 2);
+ else if (.@i <= 820)
+ callsub(L_Bag, Seed_Of_Yggdrasil, 3);
+ else if (.@i <= 830)
+ callsub(L_Bag, Unripe_Fruit, 10);
+ else if (.@i <= 840)
+ callsub(L_Bag, Dried_Yggdrasilberry, 10);
+ else if (.@i <= 940)
+ callsub(L_Bag, Sg_White_Potion_Box, 1);
+ else if (.@i <= 1140)
+ callsub(L_Bag, Old_Blue_Box, 1);
+ else if (.@i <= 1240)
+ callsub(L_Bag, Poison_Bottle_Box2, 1, "Poison Bottle Box(30)");
+ else if (.@i <= 1340)
+ callsub(L_Bag, Water_Of_Darkness, 20);
+ else if (.@i <= 1440)
+ callsub(L_Bag, Box_Of_Grudge, 10);
+ else if (.@i <= 1540)
+ callsub(L_Bag, Sleepy_Box, 10);
+ else if (.@i <= 1690)
+ callsub(L_Bag, Box_Of_Sunlight, 4);
+ else if (.@i <= 1790)
+ callsub(L_Bag, Elemental_Fire, 10, "Elemental Converter[Fire]");
+ else if (.@i <= 1890)
+ callsub(L_Bag, Elemental_Water, 10, "Elemental Converter[Water]");
+ else if (.@i <= 1990)
+ callsub(L_Bag, Elemental_Wind, 10, "Elemental Converter[Wind]");
+ else if (.@i <= 2090)
+ callsub(L_Bag, Elemental_Earth, 10, "Elemental Converter[Earth]");
+ else if (.@i <= 2190)
+ callsub(L_Bag, Sg_Blue_Potion_Box, 1);
+ else if (.@i <= 2290)
+ callsub(L_Bag, Resist_Fire, 10);
+ else if (.@i <= 2390)
+ callsub(L_Bag, Resist_Water, 10);
+ else if (.@i <= 2490)
+ callsub(L_Bag, Resist_Wind, 10);
+ else if (.@i <= 2590)
+ callsub(L_Bag, Resist_Earth, 10);
+ else if (.@i <= 2690)
+ callsub(L_Bag, Immortal_Heart, 40);
+ else if (.@i <= 2790)
+ callsub(L_Bag, Transparent_Cloth, 40);
+ else if (.@i <= 2890)
+ callsub(L_Bag, Stem, 40);
+ else if (.@i <= 2990)
+ callsub(L_Bag, Aloebera, 20);
+ else if (.@i <= 3090)
+ callsub(L_Bag, Amulet, 20);
+ else if (.@i <= 3190)
+ callsub(L_Bag, Illusion_Flower, 4);
+ else if (.@i <= 3290)
+ callsub(L_Bag, Prickly_Fruit, 40);
+ else if (.@i <= 3390)
+ callsub(L_Bag, Bitter_Herb, 20);
+ else if (.@i <= 3490)
+ callsub(L_Bag, Izidor, 20);
+ else if (.@i <= 3590)
+ callsub(L_Bag, Anodyne, 20);
+ else if (.@i <= 3690)
+ callsub(L_Bag, Woe_White_Potion, 20);
+ else if (.@i <= 3790)
+ callsub(L_Bag, Four_Leaf_Clover, 20);
+ else if (.@i <= 3890)
+ callsub(L_Bag, Leaflet_Of_Aloe, 20);
+ else if (.@i <= 3990)
+ callsub(L_Bag, Singing_Plant, 20);
+ else if (.@i <= 4090)
+ callsub(L_Bag, Leaf_Of_Yggdrasil, 20);
+ else if (.@i <= 4140)
+ callsub(L_Bag, Sg_Violet_Potion_Box, 1);
+ else if (.@i <= 4240)
+ callsub(L_Bag, Savage_Meat, 20);
+ else if (.@i <= 4340)
+ callsub(L_Bag, Wolf_Blood, 20);
+ else if (.@i <= 4440)
+ callsub(L_Bag, Beef_Head_Meat, 20);
+ else if (.@i <= 4540)
+ callsub(L_Bag, Cold_Ice, 20);
+ else if (.@i <= 4640)
+ callsub(L_Bag, Ice_Fragment, 20);
+ else if (.@i <= 4740)
+ callsub(L_Bag, Ice_Crystal, 20);
+ else if (.@i <= 4840)
+ callsub(L_Bag, Petti_Tail, 20);
+ else if (.@i <= 4940)
+ callsub(L_Bag, Poison_Herb_Nerium, 40);
+ else if (.@i <= 5040)
+ callsub(L_Bag, Poison_Herb_Rantana, 40);
+ else if (.@i <= 5140)
+ callsub(L_Bag, Poison_Herb_Makulata, 40);
+ else if (.@i <= 5240)
+ callsub(L_Bag, Poison_Herb_Seratum, 40);
+ else if (.@i <= 5340)
+ callsub(L_Bag, Poison_Herb_Scopolia, 40);
+ else if (.@i <= 5440)
+ callsub(L_Bag, Poison_Herb_Amoena, 40);
+ else if (.@i <= 5540)
+ callsub(L_Bag, Mandragora_Flowerpot, 40);
+ else if (.@i <= 6000)
+ callsub(L_Bag, Speed_Up_Potion, 20);
+ else if (.@i <= 6500)
+ callsub(L_Bag, Siege_Greave, 1);
+ else if (.@i <= 7000)
+ callsub(L_Bag, Siege_Boots, 1);
+ else if (.@i <= 7500)
+ callsub(L_Bag, Siege_Shoes, 1);
+ else if (.@i <= 8000)
+ callsub(L_Bag, Siege_Manteau, 1);
+ else if (.@i <= 8500)
+ callsub(L_Bag, Siege_Muffler, 1);
+ else if (.@i <= 9000)
+ callsub(L_Bag, Siege_Plate, 1);
+ else if (.@i <= 9500)
+ callsub(L_Bag, Siege_Suits, 1);
+ else
+ callsub(L_Bag, Siege_Robe, 1);
end;
}
end;
diff --git a/npc/woe-se/agit_main_se.txt b/npc/woe-se/agit_main_se.txt
index c9b34f610..5f291e658 100644
--- a/npc/woe-se/agit_main_se.txt
+++ b/npc/woe-se/agit_main_se.txt
@@ -1681,6 +1681,10 @@ OnEnable:
if (.@num == 3) set getd(".MyMobCount_"+.@num+strnpcinfo(NPC_NAME_HIDDEN)),4;
else if (.@num) set getd(".MyMobCount_"+.@num+strnpcinfo(NPC_NAME_HIDDEN)),6;
setwall strnpcinfo(NPC_NAME_HIDDEN),.@wall[0],.@wall[1],.@wall[2],.@wall[3],.@wall[4],substr(strnpcinfo(NPC_NAME_HIDDEN),0,1)+substr(strnpcinfo(NPC_NAME_HIDDEN),8,9)+"_"+strnpcinfo(NPC_NAME_VISIBLE);
+ if (.@num == 0)
+ setcell(strnpcinfo(NPC_NAME_HIDDEN), .@x[0], .@y[0], .@x[getarraysize(.@x)-1], .@y[getarraysize(.@y)-1], cell_basilica, true);
+ if (.@num == 1 && (strnpcinfo(NPC_NAME_HIDDEN) == "schg_cas01" || strnpcinfo(NPC_NAME_HIDDEN) == "schg_cas04" || strnpcinfo(NPC_NAME_HIDDEN) == "schg_cas05"))
+ setcell(strnpcinfo(NPC_NAME_HIDDEN), .@x[0], .@y[0], .@x[5], .@y[5], cell_basilica, true);
.@j = (getd(".MyMobCount_"+.@num+strnpcinfo(NPC_NAME_HIDDEN)))?getd(".MyMobCount_"+.@num+strnpcinfo(NPC_NAME_HIDDEN)):getarraysize(.@x);
for (.@i = 0; .@i<.@j; ++.@i)
guardian strnpcinfo(NPC_NAME_HIDDEN),.@x[.@i],.@y[.@i]," ",1905,strnpcinfo(NPC_NAME)+"::OnBarrierDestroyed";
@@ -1700,6 +1704,31 @@ OnBarrierDestroyed:
end;
OnDisable:
+ if (compare(strnpcinfo(NPC_NAME_HIDDEN),"arug")) {
+ if (strnpcinfo(NPC_NAME_HIDDEN) == "arug_cas01") {
+ setarray(.@x[0], 239, 245);
+ setarray(.@y[0], 73, 73);
+ } else if (strnpcinfo(NPC_NAME_HIDDEN) == "arug_cas02") {
+ setarray(.@x[0], 137, 143);
+ setarray(.@y[0], 137, 137);
+ } else { // Castles 3, 4, 5 are identical.
+ setarray(.@x[0], 139, 145);
+ setarray(.@y[0], 111, 111);
+ }
+ } else {
+ if (strnpcinfo(NPC_NAME_HIDDEN) == "schg_cas02") {
+ setarray(.@x[0], 289, 289);
+ setarray(.@y[0], 98, 104);
+ } else if (strnpcinfo(NPC_NAME_HIDDEN) == "schg_cas03") {
+ setarray(.@x[0], 326, 330);
+ setarray(.@y[0], 300, 300);
+ } else { // Castles 1, 4, 5 are identical.
+ setarray(.@x[0], 115, 125);
+ setarray(.@y[0], 49, 49);
+ setcell(strnpcinfo(NPC_NAME_HIDDEN), 115, 50, 125, 50, cell_basilica, false);
+ }
+ }
+ setcell(strnpcinfo(NPC_NAME_HIDDEN), .@x[0], .@y[0], .@x[1], .@y[1], cell_basilica, false);
delwall substr(strnpcinfo(NPC_NAME_HIDDEN),0,1)+substr(strnpcinfo(NPC_NAME_HIDDEN),8,9)+"_"+strnpcinfo(NPC_NAME_VISIBLE);
killmonster strnpcinfo(NPC_NAME_HIDDEN),strnpcinfo(NPC_NAME)+"::OnBarrierDestroyed";
end;