diff options
Diffstat (limited to 'npc')
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 bad1aacec..4963cf529 100644 --- a/npc/instances/NydhoggsNest.txt +++ b/npc/instances/NydhoggsNest.txt @@ -153,7 +153,7 @@ nyd_dun02,100,201,3 script Yggdrasil Gatekeeper HIDDEN_NPC,8,8,{ mes "If you are ready, I will allow you to enter."; close; case 2: - goto L_Enter; + callsub L_Enter; case 3: close; } @@ -163,7 +163,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 == 1) { if ('ins_nyd2 == 3 || 'ins_nyd2 == 4) { @@ -179,7 +179,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 0a80c25ae..d2df83768 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 1504f892f..f07f43ac7 100644 --- a/npc/re/instances/BangungotHospital.txt +++ b/npc/re/instances/BangungotHospital.txt @@ -50,7 +50,7 @@ ma_dun01,147,10,5 script Nurse#ma_dun01 4_F_NURSE,{ else if (malaya_bang == 31) callsub L_Closed,0; else - goto L_NoParty; + callsub L_NoParty; } if (questprogress(11309,HUNTING) != 2) { .@playtime = questprogress(9224,PLAYTIME); @@ -102,7 +102,7 @@ ma_dun01,147,10,5 script Nurse#ma_dun01 4_F_NURSE,{ cutin "",255; end; } else { - //if (!.@party_id) goto L_NoParty; //unneeded + //if (!.@party_id) callsub L_NoParty; //unneeded if (malaya_bang > 39) callsub L_Enter,(getcharid(CHAR_ID_CHAR) == getpartyleader(.@party_id,2))?1:0,1,1; else { @@ -124,7 +124,7 @@ ma_dun01,147,10,5 script Nurse#ma_dun01 4_F_NURSE,{ end; } } else if (.@quest == 1) { - if (!.@party_id) goto L_NoParty; + if (!.@party_id) callsub L_NoParty; if (malaya_bang > 39) { if (questprogress(9222,HUNTING) == 1) { .@playtime = questprogress(9224,PLAYTIME); @@ -134,7 +134,7 @@ ma_dun01,147,10,5 script Nurse#ma_dun01 4_F_NURSE,{ next; callsub L_Enter,0,0; } else if (.@playtime == 2) { - //if (!.@party_id) goto L_NoParty; //unneeded + //if (!.@party_id) callsub L_NoParty; //unneeded if (malaya_bang > 39) callsub L_Enter,(getcharid(CHAR_ID_CHAR) == getpartyleader(.@party_id,2))?1:0,1,1; else { @@ -213,7 +213,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,{ |