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/NydhoggsNest.txt6
-rw-r--r--npc/jobs/2-2/sage.txt62
-rw-r--r--npc/merchants/clothes_dyer.txt6
-rw-r--r--npc/other/hugel_bingo.txt37
-rw-r--r--npc/other/marriage.txt34
-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/re/instances/BangungotHospital.txt10
-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/quests/eden/eden_tutorial.txt245
-rw-r--r--npc/re/quests/quests_malangdo.txt157
-rw-r--r--npc/re/quests/quests_malaya.txt91
25 files changed, 1336 insertions, 1342 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/NydhoggsNest.txt b/npc/instances/NydhoggsNest.txt
index 2c583d441..2a64e13be 100644
--- a/npc/instances/NydhoggsNest.txt
+++ b/npc/instances/NydhoggsNest.txt
@@ -150,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;
}
@@ -160,7 +160,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 {
.@instance = has_instance2("1@nyd");
if (.@instance >= 0) {
@@ -180,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/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/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/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/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/re/instances/BangungotHospital.txt b/npc/re/instances/BangungotHospital.txt
index 3962ee4fa..424626ac9 100644
--- a/npc/re/instances/BangungotHospital.txt
+++ b/npc/re/instances/BangungotHospital.txt
@@ -48,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);
@@ -100,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 {
@@ -122,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);
@@ -132,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 {
@@ -211,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/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/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,{