diff options
author | Haru <haru@dotalux.com> | 2014-10-19 00:47:39 +0200 |
---|---|---|
committer | Haru <haru@dotalux.com> | 2014-10-27 01:06:10 +0100 |
commit | bf9e067bf1e5c6bc15d313e0a197fd8f4b2ec131 (patch) | |
tree | 6a24e8f20a33f08dbbf6bba185e6842d650fcd50 /npc | |
parent | 8bb00782225e2f04f61863832a6c27d512b551b5 (diff) | |
download | hercules-bf9e067bf1e5c6bc15d313e0a197fd8f4b2ec131.tar.gz hercules-bf9e067bf1e5c6bc15d313e0a197fd8f4b2ec131.tar.bz2 hercules-bf9e067bf1e5c6bc15d313e0a197fd8f4b2ec131.tar.xz hercules-bf9e067bf1e5c6bc15d313e0a197fd8f4b2ec131.zip |
Removed use of 'menu' from official (non-custom) scripts
- Some scripts were partly refactored/rewritten to use a more modern
coding style (and to fix some issues)
- Note: the 'menu' command will be deprecated soon in favor of 'select'
and 'prompt'.
Signed-off-by: Haru <haru@dotalux.com>
Diffstat (limited to 'npc')
-rw-r--r-- | npc/cities/aldebaran.txt | 296 | ||||
-rw-r--r-- | npc/events/christmas_2005.txt | 2 | ||||
-rw-r--r-- | npc/events/dumplingfestival.txt | 72 | ||||
-rw-r--r-- | npc/events/event_skill_reset.txt | 93 | ||||
-rw-r--r-- | npc/events/halloween_2008.txt | 338 | ||||
-rw-r--r-- | npc/events/nguild/nguild_managers.txt | 121 | ||||
-rw-r--r-- | npc/events/twintowers.txt | 79 | ||||
-rw-r--r-- | npc/events/whiteday.txt | 181 | ||||
-rw-r--r-- | npc/events/xmas.txt | 10 | ||||
-rw-r--r-- | npc/quests/ninja_quests.txt | 371 |
10 files changed, 720 insertions, 843 deletions
diff --git a/npc/cities/aldebaran.txt b/npc/cities/aldebaran.txt index 33acb60c2..f4b3662fc 100644 --- a/npc/cities/aldebaran.txt +++ b/npc/cities/aldebaran.txt @@ -1058,180 +1058,77 @@ aldeba_in,79,161,6 script Kafra#04 4_F_KAFRA3,{ next; mes "[Kafra]"; mes "The amount of special reserve points that you have is: ^FF0000"+RESRVPTS+"^000000 pts. Please make a choice based on your point total."; -M_Menu: - next; - menu "100- Potato 7 ea",M_1a, "200- Potato 15 ea",M_1b, "300- Potato 25 ea",M_1c, "400- Potato 35 ea",M_1d, - "500- Potato 50 ea",M_1e, "600- Potato 60 ea",M_1f, "700- Potato 75 ea",M_1g, "800- Potato 85 ea",M_1h, - "900- Potato 100 ea",M_1i, "1000- 1st Lottery Chance!",M_1j, "Next items",M_2, "Cancel",M_End; - - M_1a: - if(RESRVPTS < 100) goto sL_LowPts1; - mes "[Kafra]"; - mes "Here you are."; - getitem 516, 7; - set RESRVPTS, RESRVPTS - 100; - close; - M_1b: - if(RESRVPTS < 200) goto sL_LowPts1; - mes "[Kafra]"; - mes "Here you are."; - getitem 516, 15; - set RESRVPTS, RESRVPTS - 200; - close; - M_1c: - if(RESRVPTS < 300) goto sL_LowPts1; - mes "[Kafra]"; - mes "Here you are."; - getitem 516, 25; - set RESRVPTS, RESRVPTS - 300; - close; - M_1d: - if(RESRVPTS < 400) goto sL_LowPts1; - mes "[Kafra]"; - mes "Here you are."; - getitem 516, 35; - set RESRVPTS, RESRVPTS - 400; - close; - M_1e: - if(RESRVPTS < 500) goto sL_LowPts1; - mes "[Kafra]"; - mes "Here you are."; - getitem 516, 50; - set RESRVPTS, RESRVPTS - 500; - close; - M_1f: - if(RESRVPTS < 600) goto sL_LowPts1; - mes "[Kafra]"; - mes "Here you are."; - getitem 516, 60; - set RESRVPTS, RESRVPTS - 600; - close; - M_1g: - if(RESRVPTS < 700) goto sL_LowPts1; - mes "[Kafra]"; - mes "Here you are."; - getitem 516, 75; - set RESRVPTS, RESRVPTS - 700; - close; - M_1h: - if(RESRVPTS < 800) goto sL_LowPts1; - mes "[Kafra]"; - mes "Here you are."; - getitem 516, 85; - set RESRVPTS, RESRVPTS - 800; - close; - M_1i: - if(RESRVPTS < 900) goto sL_LowPts1; - mes "[Kafra]"; - mes "Here you are."; - getitem 516, 100; - set RESRVPTS, RESRVPTS - 900; - close; - M_1j: - if(RESRVPTS < 1000) goto sL_LowPts1; - set RESRVPTS, RESRVPTS - 1000; - mes "[Kafra]"; - mes "^0000FF1st Lottery Opportunity!!^000000"; - set @Lotto, 1; + .@page = 1; + while (true) { + if (.@page == 1) { + // Points, Item ID, amount + setarray .@choices, 100, Sweet_Potato, 7, + 200, Sweet_Potato, 15, + 300, Sweet_Potato, 25, + 400, Sweet_Potato, 35, + 500, Sweet_Potato, 50, + 600, Sweet_Potato, 60, + 700, Sweet_Potato, 75, + 800, Sweet_Potato, 85, + 900, Sweet_Potato, 100, + 1000, null, 0; + .@ordinal$ = "1st"; + .@changepage$ = "Next items"; + } else { // .@page == 2 + setarray .@choices, 1100, Sweet_Potato, 7, + 1300, Sweet_Potato, 15, + 1500, Sweet_Potato, 25, + 1700, Sweet_Potato, 35, + 1900, Sweet_Potato, 50, + 2100, Sweet_Potato, 60, + 2300, Sweet_Potato, 75, + 2500, Sweet_Potato, 85, + 2800, Sweet_Potato, 100, + 3000, null, 0; + .@ordinal$ = "2nd"; + .@changepage$ = "Previous List"; + } + .@list$ = ""; + .@numitemchoices = 0; + for (.@i = 0; .@i < getarraysize(.@choices) - 3; .@i += 3) { // Skip the last entry as it's handled separately + .@list$ += .@choices[i] + "- " + getitemname(.@choices[.@i+1]) + " " + .@choices[.@i+2] + " ea:"; + ++.@numitemchoices; + } + .@list$ += .@choices[.@i] + "- " + .@ordinal$ + " Lottery Chance!:" + .@changepage$ +":Cancel"; next; - callfunc "F_Lottery"; - goto M_End; - - sL_LowPts1: - mes "[Kafra]"; - mes "I'm sorry but you do not have enough reserve points for that selection."; - goto M_Menu; - - M_2: - menu "1100- Red Potion 7 ea",M_2a, "1300- Red Potion 15 ea",M_2b, "1500- Red Potion 25 ea",M_2c, - "1700- Red Potion 35 ea",M_2d, "1900- Red Potion 50 ea",M_2e, "2100- Red Potion 60 ea",M_2f, - "2300- Red Potion 75 ea",M_2g, "2500- Red Potion 85 ea",M_2h, "2800- Red Potion 100 ea",M_2i, - "3000- 2nd Lotery Chance!",M_2j, "Previous List",M_Menu, "Cancel",M_End; - - M_2a: - if(RESRVPTS < 1100) goto sL_LowPts2; - mes "[Kafra]"; - mes "Here you are."; - getitem 501, 7; - set RESRVPTS, RESRVPTS - 1100; - close; - M_2b: - if(RESRVPTS < 1300) goto sL_LowPts2; - mes "[Kafra]"; - mes "Here you are."; - getitem 501, 15; - set RESRVPTS, RESRVPTS - 1300; - close; - M_2c: - if(RESRVPTS < 1500) goto sL_LowPts2; - mes "[Kafra]"; - mes "Here you are."; - getitem 501, 25; - set RESRVPTS, RESRVPTS - 1500; - close; - M_2d: - if(RESRVPTS < 1700) goto sL_LowPts2; - mes "[Kafra]"; - mes "Here you are."; - getitem 501, 35; - set RESRVPTS, RESRVPTS - 1700; - close; - M_2e: - if(RESRVPTS < 1900) goto sL_LowPts2; - mes "[Kafra]"; - mes "Here you are."; - getitem 501, 50; - set RESRVPTS, RESRVPTS - 1900; - close; - M_2f: - if(RESRVPTS < 2100) goto sL_LowPts2; - mes "[Kafra]"; - mes "Here you are."; - getitem 501, 60; - set RESRVPTS, RESRVPTS - 2100; - close; - M_2g: - if(RESRVPTS < 2300) goto sL_LowPts2; - mes "[Kafra]"; - mes "Here you are."; - getitem 501, 75; - set RESRVPTS, RESRVPTS - 2300; - close; - M_2h: - if(RESRVPTS < 2500) goto sL_LowPts2; - mes "[Kafra]"; - mes "Here you are."; - getitem 501, 85; - set RESRVPTS, RESRVPTS - 2500; - close; - M_2i: - if(RESRVPTS < 2800) goto sL_LowPts2; - mes "[Kafra]"; - mes "Here you are."; - getitem 501, 100; - set RESRVPTS, RESRVPTS - 2800; - close; - M_2j: - if(RESRVPTS < 3000) goto sL_LowPts2; - set RESRVPTS, RESRVPTS - 3000; - mes "[Kafra]"; - mes "^0000FF2nd Lottery Opportunity!!^000000"; - set @Lotto, 2; + .@chosen = select(.@list$) - 1; + if (.@chosen <= .@numitemchoices) { + if (RESRVPTS < .@choices[.@chosen*3]) { + mes "[Kafra]"; + mes "I'm sorry but you do not have enough reserve points for that selection."; + continue; + } + RESRVPTS -= .@choices[.@chosen * 3]; + if (.@chosen < .@numitemchances) { + // Item + mes "[Kafra]"; + mes "Here you are."; + getitem .@choices[.@chosen*3 + 1], .@choices[.@chosen*3 + 2]; + close; + } + // Lottery chance + mes "^0000FF"+ .@ordinal$ + " Lottery Opportunity!!^000000"; + @Lotto = .@page; next; callfunc "F_Lottery"; - goto M_End; - - sL_LowPts2: - mes "[Kafra]"; - mes "I'm sorry but you do not have enough reserve points for that selection."; - next; - goto M_2; + break; + } else if (.@chosen == .@numitemchoices + 1) { // next/previous items + .@page = (.@page == 1 ? 2 : 1); + continue; + } else { // Cancel + break; + } + } - M_End: - mes "[Kafra]"; - mes "Please come back anytime when you have more reserve points."; - cutin "",255; - close; + mes "[Kafra]"; + mes "Please come back anytime when you have more reserve points."; + cutin "",255; + close; } // Special Reserve 2 ---------------------------------------------- @@ -1244,44 +1141,45 @@ aldeba_in,88,161,3 script Kafra#05 4_F_KAFRA3,{ mes "[Kafra]"; mes "Would you like to use your points?"; next; - menu "Yes I would.",-, "Maybe next time.",M_End; - + if (select("Yes I would.","Maybe next time.") == 1) { mes "[Kafra]"; mes "You have the following amount of special reserve points: ^5544FF"+RESRVPTS+"^000000."; mes "Make a choice and test your luck!"; next; - menu "5000pts = 1st Lottery Chance!",sM_1st, "7000pts = 2nd Lottery Chance!",sM_2nd, "10000pts = 3rd Lottery Chance!",sM_3rd, "Cancel",M_End; - - sM_1st: - if(RESRVPTS < 5000) goto sL_NotEnuf; - set RESRVPTS, RESRVPTS - 5000; - set @Lotto, 3; - callfunc "F_Lottery"; - goto M_End; - sM_2nd: - if(RESRVPTS < 7000) goto sL_NotEnuf; - set RESRVPTS, RESRVPTS - 7000; - set @Lotto, 4; - callfunc "F_Lottery"; - goto M_End; - sM_3rd: - if(RESRVPTS < 10000) goto sL_NotEnuf; - set RESRVPTS, RESRVPTS - 10000; - set @Lotto, 5; - callfunc "F_Lottery"; - goto M_End; + switch (select("5000pts = 1st Lottery Chance!","7000pts = 2nd Lottery Chance!","10000pts = 3rd Lottery Chance!","Cancel")) { + case 1: // 5000 + .@points = 5000; + @Lotto = 3; + break; + case 2: // 7000 + .@points = 7000; + @Lotto = 4; + break; + case 3: // 10000 + .@points = 10000; + @Lotto = 5; + break; + case 4: // Cancel + .@points = 0; + break; + } - sL_NotEnuf: + if (.@points) { + if (RESRVPTS < .@points) { mes "[Kafra]"; mes "I'm sorry dear but you do not have enough points for this selection."; cutin "",255; close; - M_End: - mes "[Kafra]"; - mes "No problem. Collect more and more special reserve points by using the Kafra Services found throughout Rune Midgard."; - mes "Thank you for using Kafra Corp. services."; - cutin "",255; - close; + } + RESRVPTS -= .@points; + callfunc "F_Lottery"; + } + } + mes "[Kafra]"; + mes "No problem. Collect more and more special reserve points by using the Kafra Services found throughout Rune Midgard."; + mes "Thank you for using Kafra Corp. services."; + cutin "",255; + close; } // Function F_Lottery ------------------------------------------------------------------------------------------ diff --git a/npc/events/christmas_2005.txt b/npc/events/christmas_2005.txt index 5236e5a54..eb80e6be1 100644 --- a/npc/events/christmas_2005.txt +++ b/npc/events/christmas_2005.txt @@ -1026,7 +1026,7 @@ prontera,156,242,0 script Oholy#pron::OholyDup 1_F_PRIEST,{ mes "I feel so sad for disappointed"; mes "kids who didn't hear the carols."; next; - menu "...can I help you?",-; + select("...can I help you?"); mes "[Oholy]"; mes "Good gracious! Are you for real?"; mes "Oh? Shee... Can you hear it?"; diff --git a/npc/events/dumplingfestival.txt b/npc/events/dumplingfestival.txt index 6c5a3b6b5..23a085eb8 100644 --- a/npc/events/dumplingfestival.txt +++ b/npc/events/dumplingfestival.txt @@ -21,60 +21,48 @@ payon,93,81,4 script Exorcist Master Fahae 4_M_BUDDHIST,{ mes "I feel it is time I let another warrior try to complete"; mes "my quest. I have some items to assist you in my quest."; next; - menu "I wish to buy",-, "No thanks",M_FIN; - + if (select("I wish to buy","No thanks") != 1) { + mes "[Exorcist Master Fahae]"; + mes "The path of fully venquishing evil is far, help me in the way of God."; + close; + } mes "[Exorcist Master Fahae]"; mes "I have 2 items which might become useful to you."; next; - menu "Realgar Wine",-, "Exorcize Herb",M_HERB; - + switch (select("Realgar Wine","Exorcize Herb")) { + case 1: + .@itemid = Realgar_Wine; // 682 + .@price = 20000; + break; + case 2: + .@itemid = Exorcize_Herb; // 683 + .@price = 10000; + break; + } mes "[Exorcist Master Fahae]"; mes "How many do you require?"; mes "You may only buy 5 at one time."; - mes "Each costs 20000z."; + mes "Each costs "+ .@price +"z."; mes "(Type in 0 to cancel)"; next; input @input; - if(@input==0) close; - if(@input>5) goto L_SORRY; - if(Zeny< @input*20000) goto L_NoZeny; - Zeny -= 20000*@input; - getitem 682,@input; + if (@input == 0) + close; + if (@input > 5) { + mes "[Exorcist Master Fahae]"; + mes "You must not be stingy, it is the path of God to be honest."; + close; + } + if (Zeny < @input * .@price) { + mes "[Exorcist Master Fahae]"; + mes "Money doesn't bring joy to everyone, but we need it to support the temple and myself. Please, try to kill some monsters and take their drops."; + close; + } + Zeny -= @input * .@price; + getitem .@itemid, @input; mes "[Exorcist Master Fahae]"; mes "Here you go, I hope you may succeed in my quest."; close; - -L_SORRY: - mes "[Exorcist Master Fahae]"; - mes "You must not be stingy, it is the path of God to be honest."; - close; - -M_FIN: - mes "[Exorcist Master Fahae]"; - mes "The path of fully venquishing evil is far, help me in the way of God."; - close; - -M_HERB: - mes "[Exorcist Master Fahae]"; - mes "How many do you require?"; - mes "You may only buy 5 at one time."; - mes "Each costs 10000z."; - mes "(Type in 0 to cancel)"; - next; - input @input; - if(@input==0) close; - if(@input>5) goto L_SORRY; - if(Zeny< @input*10000) goto L_NoZeny; - Zeny -= 10000*@input; - getitem 683,@input; - mes "[Exorcist Master Fahae]"; - mes "Here you go, I hope you may succeed in my quest."; - close; - -L_NoZeny: - mes "[Exorcist Master Fahae]"; - mes "Money doesn't bring joy to everyone, but we need it to support the temple and myself. Please, try to kill some monsters and take their drops."; - close; } // Monsters diff --git a/npc/events/event_skill_reset.txt b/npc/events/event_skill_reset.txt index 718fe2e0e..15d781bff 100644 --- a/npc/events/event_skill_reset.txt +++ b/npc/events/event_skill_reset.txt @@ -54,54 +54,53 @@ yuno,138,187,4 script Hypnotist Teacher 4_F_TELEPORTER,{ mes "Your name is ^0080FF"+strcharinfo(0)+"^000000."; mes "How can I help you?"; next; - menu "^009500Information about Reset skills.^000000",L_Info,"^00B6FFReset skills.^000000",L_Reset,"^000088Nevermind^000000",-; - - mes @npcname$; - mes "You know where to find me,"; - mes "if you ever want a reset!!"; - close; - -L_Info: - mes @npcname$; - mes "This skill reset is not FREE OF CHARGE!!"; - mes "Expense for the reset of skill is ^D5A50020000 Zeny x BaseLv^000000."; - mes "Yeah ...each One BaseLv costs 20000 Zeny to reset skill."; - next; - mes @npcname$; - mes "Oh yeah, one more thing!"; - mes "Any carts, falcons or pecos you have equiped"; - mes "will be removed if you reset your skills."; - next; - mes @npcname$; - mes "Just one time does again to shake the skill point"; - mes "Careful with your skills from here on."; - close; - -L_Reset: - mes @npcname$; - mes "Before skill reset in starting."; - mes "You shall have to first tell me your Base Level."; - next; - mes "^D5A500[" + strcharinfo(0) + "]^000000"; - mes "My Base level is ^AA00AALevel " + BaseLevel + "BaseLv.^000000"; - next; - set @zeny,BaseLevel*20000; - mes @npcname$; - mes "Total zeny to the reset of skill amount ^529DFF" + @zeny + "Zeny^000000 for the skill reset service."; - next; - if(Zeny < @zeny) { + switch (select("^009500Information about Reset skills.^000000","^00B6FFReset skills.^000000","^000088Nevermind^000000")) { + case 1: // Information mes @npcname$; - mes "It seems that you don't have enough money."; - mes "In addition we wait for the opportunity."; - emotion e_hmm; + mes "This skill reset is not FREE OF CHARGE!!"; + mes "Expense for the reset of skill is ^D5A50020000 Zeny x BaseLv^000000."; + mes "Yeah ...each One BaseLv costs 20000 Zeny to reset skill."; + next; + mes @npcname$; + mes "Oh yeah, one more thing!"; + mes "Any carts, falcons or pecos you have equiped"; + mes "will be removed if you reset your skills."; + next; + mes @npcname$; + mes "Just one time does again to shake the skill point"; + mes "Careful with your skills from here on."; + close; + case 2: // Reset + mes @npcname$; + mes "Before skill reset in starting."; + mes "You shall have to first tell me your Base Level."; + next; + mes "^D5A500[" + strcharinfo(0) + "]^000000"; + mes "My Base level is ^AA00AALevel " + BaseLevel + "BaseLv.^000000"; + next; + @zeny = BaseLevel*20000; + mes @npcname$; + mes "Total zeny to the reset of skill amount ^529DFF" + @zeny + "Zeny^000000 for the skill reset service."; + next; + if (Zeny < @zeny) { + mes @npcname$; + mes "It seems that you don't have enough money."; + mes "In addition we wait for the opportunity."; + emotion e_hmm; + close; + } + Zeny -= @zeny; + MISC_QUEST |= 1024; + resetskill; + mes @npcname$; + mes "Thank you."; + emotion e_thx; + logmes "SKILL RESET EVENT"; + close; + case 3: // Nevermind + mes @npcname$; + mes "You know where to find me,"; + mes "if you ever want a reset!!"; close; } - Zeny -= @zeny; - set MISC_QUEST,MISC_QUEST | 1024; - resetskill; - mes @npcname$; - mes "Thank you."; - emotion e_thx; - logmes "SKILL RESET EVENT"; - close; } diff --git a/npc/events/halloween_2008.txt b/npc/events/halloween_2008.txt index 6aad72358..aa2780716 100644 --- a/npc/events/halloween_2008.txt +++ b/npc/events/halloween_2008.txt @@ -27,7 +27,8 @@ payon,162,176,4 script Halloween Magician#iRO08 4_M_BIBI,{ mes "If you collect enough tickets you can get good prizes!"; mes "So what do you say?"; next; - goto MainMenu; + callsub(S_MainMenu); + end; } if (Hallow08Kill == 1) { mes "[Halloween Magician]"; @@ -35,11 +36,13 @@ payon,162,176,4 script Halloween Magician#iRO08 4_M_BIBI,{ mes "You know you want to try again..."; mes "Do you know the rules?"; next; - set Hallow08Kill,0; + Hallow08Kill = 0; if(select("Yes, I know.:No, I don't know.") == 2) { - goto Rules; + callsub(S_Rules); + callsub(S_MainMenu); + end; } - goto Participate; + callsub(S_Participate); } if (Hallow08Kill == 2) { mes "[Halloween Magician]"; @@ -49,8 +52,8 @@ payon,162,176,4 script Halloween Magician#iRO08 4_M_BIBI,{ mes "Ha!"; mes "Kkkkkkk."; next; - getitem 7941,1; - set Hallow08Kill,0; + getitem Halloween_Ticket, 1; + Hallow08Kill = 0; mes "[Halloween Magician]"; mes "As I promised"; mes "You can get Halloween tickets for cool items."; @@ -60,182 +63,183 @@ payon,162,176,4 script Halloween Magician#iRO08 4_M_BIBI,{ mes "[Halloween Magician]"; mes "Well, do you want to hear the rules again or, just get back to it..."; next; - goto MainMenu2; - } - - Rules: - mes "[Halloween Magician]"; - mes "This village is like a virtual Payon."; - mes "There are zombies and ghouls roaming around and three southern exits, but only one works."; - mes "That's up to you to find out."; - next; - mes "[Halloween Magician]"; - mes "You can't use any skills to kill the ghouls or zombies."; - mes "And one more thing..."; - mes "you shouldn't forget..."; - next; - mes "[Halloween Magician]"; - mes "All participants should be wearing nothing."; - mes "Put all belongings in your storage and come back here when your weight is '0'."; - next; - mes "[Halloween Magician]"; - mes "Oh and one more thing!"; - mes "You can't be riding a PecoPeco or have a Cart."; - mes "If you are, then I will remove them before you enter."; - mes "Got it?"; - next; - mes "[Halloween Magician]"; - mes "Remember, there are three exits but only one works randomly, the zombies and ghouls roaming around there can't be killed and you can't be wearing anything."; - next; - if (Hallow08 > 0) { - mes "[Halloween Magician]"; - mes "Hey..."; - mes "Come back once you're ready."; - close; - } else { - goto MainMenu; - } - - Participate: - mes "[Halloween Magician]"; - mes "Ok, you are ready."; - mes "Let me check your weight."; - next; - if (Weight > 0) { - mes "[Halloween Magician]"; - mes "Gosh!"; - mes "There's always a black sheep anywhere."; - next; - mes "[Halloween Magician]"; - mes "You think I wouldn't notice that your weight is above '0'?"; - mes "You're overweight..."; - close; - } else { - mes "[Halloween Magician]"; - mes "You seem good to go, and your weight is just right."; - next; - mes "[Halloween Magician]"; - mes "I was quite swamped with my work, so I'm exhausted."; - next; - mes "[Halloween Magician]"; - mes "I sometimes forget to send you there..."; - next; - mes "[Halloween Magician]"; - mes "I hope you come back well."; - close2; - if (Hallow08 < 1) { - set Hallow08,1; - } - set Hallow08Kill,1; - set @Hallow08Warp, rand(1,3); - percentheal -98,0; - setriding 0; - setcart 0; - warp "evt_zombie",155,246; + while (true) { + switch (select("Get me back there now!","Please, tell me the rules","I want to exchange tickets for prizes.","I'll come back next time.")) { + case 1: // Participate + callsub(S_Participate); + case 2: // Rules + callsub(S_Rules); + continue; + case 3: // TicketExchange + callsub(S_TicketExchange); + continue; + default: // NextTime + callsub(S_NextTime); end; } + } + } - TicketExchange: - mes "[Halloween Magician]"; - mes "You want to exchange tickets for prizes?"; - mes "Good job! Kkkkkk!"; - next; - mes "[Halloween Magician]"; - mes "Lemme tell you what items you can exchange for."; - next; - mes "[Halloween Magician]"; - mes "5 tickets for Pumpkin Pie."; - mes "20 tickets for Pumpkin-Head."; - mes "50 tickets for Old Blue Box."; - mes "70 tickets for Old Purple Box."; - mes "200 tickets for Old Card Album."; - next; - mes "[Halloween Magician]"; - mes "What would you like to exchange for?"; - next; - switch(select("Pumpkin Pie:Pumpkin-Head:Old Blue Box:Old Purple Box:Old Card Album")) { - case 1: - if (countitem(7941) < 5) { - goto NotEnough; - } else { - delitem 7941,5; - getitem 12192,1; - goto Enough; - } - break; - case 2: - if (countitem(7941) < 20) { - goto NotEnough; - } else { - delitem 7941,20; - getitem 5134,1; - goto Enough; - } - break; - case 3: - if (countitem(7941) < 50) { - goto NotEnough; - } else { - delitem 7941,50; - getitem 603,1; - goto Enough; - } - break; - case 4: - if (countitem(7941) < 70) { - goto NotEnough; - } else { - delitem 7941,70; - getitem 617,1; - goto Enough; - } - break; - case 5: - if (countitem(7941) < 200) { - goto NotEnough; - } else { - delitem 7941,200; - getitem 616,1; - goto Enough; - } - } + callsub(S_Rules); + callsub(S_MainMenu); + end; - NextTime: - mes "[Halloween Magician]"; - mes "Ok, see you then."; - mes "Kkkkkkkk."; - close; +S_MainMenu: + while (true) { + switch (select("Explain it to me.","I want to participate.","I want to exchange tickets for prizes.","I'll come back next time.")) { + case 1: // Rules + callsub(S_Rules); + continue; + case 2: // Participate + callsub(S_Participate); + case 3: // TicketExchange + callsub(S_TicketExchange); + continue; + default: // NextTime + callsub(S_NextTime); + end; + } + } - MainMenu: - menu "Explain it to me.",Rules,"I want to participate.",Participate,"I want to exchange tickets for prizes.",TicketExchange,"I'll come back next time.",NextTime; +S_Participate: + mes "[Halloween Magician]"; + mes "Ok, you are ready."; + mes "Let me check your weight."; + next; + if (Weight > 0) { + mes "[Halloween Magician]"; + mes "Gosh!"; + mes "There's always a black sheep anywhere."; + next; + mes "[Halloween Magician]"; + mes "You think I wouldn't notice that your weight is above '0'?"; + mes "You're overweight..."; + close; + } + mes "[Halloween Magician]"; + mes "You seem good to go, and your weight is just right."; + next; + mes "[Halloween Magician]"; + mes "I was quite swamped with my work, so I'm exhausted."; + next; + mes "[Halloween Magician]"; + mes "I sometimes forget to send you there..."; + next; + mes "[Halloween Magician]"; + mes "I hope you come back well."; + close2; + if (Hallow08 < 1) { + Hallow08 = 1; + } + Hallow08Kill = 1; + @Hallow08Warp = rand(1,3); + percentheal -98,0; + setriding 0; + setcart 0; + warp "evt_zombie",155,246; + end; + +S_Rules: + mes "[Halloween Magician]"; + mes "This village is like a virtual Payon."; + mes "There are zombies and ghouls roaming around and three southern exits, but only one works."; + mes "That's up to you to find out."; + next; + mes "[Halloween Magician]"; + mes "You can't use any skills to kill the ghouls or zombies."; + mes "And one more thing..."; + mes "you shouldn't forget..."; + next; + mes "[Halloween Magician]"; + mes "All participants should be wearing nothing."; + mes "Put all belongings in your storage and come back here when your weight is '0'."; + next; + mes "[Halloween Magician]"; + mes "Oh and one more thing!"; + mes "You can't be riding a PecoPeco or have a Cart."; + mes "If you are, then I will remove them before you enter."; + mes "Got it?"; + next; + mes "[Halloween Magician]"; + mes "Remember, there are three exits but only one works randomly, the zombies and ghouls roaming around there can't be killed and you can't be wearing anything."; + next; + if (Hallow08 > 0) { + mes "[Halloween Magician]"; + mes "Hey..."; + mes "Come back once you're ready."; + close; + } + return; - MainMenu2: - menu "Get me back there now!",Participate,"Please, tell me the rules",Rules,"I want to exchange tickets for prizes.",TicketExchange,"I'll come back next time.",NextTime; +S_NextTime: + mes "[Halloween Magician]"; + mes "Ok, see you then."; + mes "Kkkkkkkk."; + close; - NotEnough: +S_TicketExchange: + mes "[Halloween Magician]"; + mes "You want to exchange tickets for prizes?"; + mes "Good job! Kkkkkk!"; + next; + mes "[Halloween Magician]"; + mes "Lemme tell you what items you can exchange for."; + next; + mes "[Halloween Magician]"; + mes "5 tickets for Pumpkin Pie."; + mes "20 tickets for Pumpkin-Head."; + mes "50 tickets for Old Blue Box."; + mes "70 tickets for Old Purple Box."; + mes "200 tickets for Old Card Album."; + next; + mes "[Halloween Magician]"; + mes "What would you like to exchange for?"; + next; + .@item_id = null; + .@amount = 0; + switch(select("Pumpkin Pie:Pumpkin-Head:Old Blue Box:Old Purple Box:Old Card Album")) { + case 1: + .@amount = 5; + .@item_id = Pumpkin_Pie; + break; + case 2: + .@amount = 20; + .@item_id = Pumpkin_Hat; + break; + case 3: + .@amount = 50; + .@item_id = Old_Blue_Box; + break; + case 4: + .@amount = 70; + .@item_id = Old_Violet_Box; + break; + case 5: + .@amount = 200; + .@amount = Old_Card_Album; + break; + } + if (countitem(Halloween_Ticket) < .@amount) { mes "[Halloween Magician]"; mes "You don't have enough tickets!"; mes "Can't you even count?"; mes "Please come here with the right number of tickets."; close; - - Enough: - mes "[Halloween Magician]"; - mes "Here it is."; - mes "Do you need..."; - mes "anything else?"; - next; - if (Hallow08 == 1) { - goto MainMenu2; - } else { - goto MainMenu; - } + } + delitem Halloween_Ticket, .@amount; + getitem .@item_id, 1; + mes "[Halloween Magician]"; + mes "Here it is."; + mes "Do you need..."; + mes "anything else?"; + next; + return; } evt_zombie,16,142,1 script zombiewarp001 WARPNPC,2,2,{ OnTouch: if (@Hallow08Warp == 1) { - set Hallow08Kill,2; + Hallow08Kill = 2; specialeffect EF_BASH; warp "payon",28,142; } @@ -245,7 +249,7 @@ OnTouch: evt_zombie,122,27,1 script zombiewarp002 WARPNPC,2,2,{ OnTouch: if (@Hallow08Warp == 2) { - set Hallow08Kill,2; + Hallow08Kill = 2; specialeffect EF_BASH; warp "payon",121,40; } @@ -255,7 +259,7 @@ OnTouch: evt_zombie,267,89,1 script zombiewarp003 WARPNPC,2,2,{ OnTouch: if (@Hallow08Warp == 3) { - set Hallow08Kill,2; + Hallow08Kill = 2; specialeffect EF_BASH; warp "payon",253,95; } diff --git a/npc/events/nguild/nguild_managers.txt b/npc/events/nguild/nguild_managers.txt index d6ecfbf2f..039ba9ee1 100644 --- a/npc/events/nguild/nguild_managers.txt +++ b/npc/events/nguild/nguild_managers.txt @@ -42,11 +42,8 @@ function script F_GldManager { mes "Welcome Master ^5533FF" + getguildmaster(@GID) + "^000000 ! I will assist you in any way I can!"; next; - menu "Kafra Staff Employment / Dismissal",M_Kaf, "Enter Treasure Room",M_Treas, "Cancel",M_End; - - //=========================== - M_Kaf: - //====== + 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 (getgdskilllv(@GID,10001) == 0){ @@ -58,90 +55,78 @@ function script F_GldManager { L_Hire: mes "Would you like to employ the services of a Kafra? You will need ^5533FF10,000 Zeny^000000 to do so... "; next; - menu "Employ Kafra.",-,"Cancel",sM_KafEnd; - - mes "[ "+getarg(0)+" ]"; - if (Zeny < 10000){ - mes "Master, you do not have enough money to employ a Kafra. Employment has been cancelled."; - return; - } - Zeny -= 10000; - enablenpc "Kafra Staff#"+getarg(4); - setcastledata getarg(1),9,1; - mes "You have created a contract with the Kafra Staff Company."; - next; - cutin "kafra_01",2; - mes "[ Kafra Staff ]"; - mes "How do you do? I'm here to provide you with helpful service! I'll do the best I can to serve you."; - next; - cutin "kafra_01",255; - mes "[ "+getarg(0)+" ]"; - //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; - - sM_KafEnd: + if (select("Employ Kafra.","Cancel") != 1) { mes "[ "+getarg(0)+" ]"; mes "As you wish Master. But I suggest we get a Kafra as soon as possible!"; return; - + } + mes "[ "+getarg(0)+" ]"; + if (Zeny < 10000) { + mes "Master, you do not have enough money to employ a Kafra. Employment has been cancelled."; + return; + } + Zeny -= 10000; + enablenpc "Kafra Staff#"+getarg(4); + setcastledata getarg(1),9,1; + mes "You have created a contract with the Kafra Staff Company."; + next; + cutin "kafra_01",2; + mes "[ Kafra Staff ]"; + mes "How do you do? I'm here to provide you with helpful service! I'll do the best I can to serve you."; + next; + cutin "kafra_01",255; + mes "[ "+getarg(0)+" ]"; + //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; - menu "Dismissal",-,"Cancel",sM_KafEnd2; - - cutin "kafra_01",2; - mes "[ Kafra Staff ]"; - mes "Have I done anything wrong? If I did, will you please forgive me?"; - next; - menu "Dismiss",-,"Cancel",ssM_KafEnd2; - - 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; - ssM_KafEnd2: - mes "[ Kafra Staff ]"; - mes "Thank you master, I'll do my best! ^^."; - cutin "kafra_01",255; - return; - sM_KafEnd2: + 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; - - //========================= - M_Treas: - //======== + } + 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."; next; - menu "Enter Treasure room.",-,"Cancel",sM_TresEnd; - + if (select("Enter Treasure room.","Cancel") == 1) { mes "[ "+getarg(0)+" ]"; mes "Please follow me through the secret passage way."; mes "You must pull down on the secret switch in order to get out."; next; warp getarg(1),getarg(2),getarg(3); return; - sM_TresEnd: - mes "[ "+getarg(0)+" ]"; - mes "The goods are produced everyday."; - mes "You should get them whenever you can because they might dissapear if you take them at the wrong time."; - return; - - - //========================== - M_End: - //======= + } + mes "[ "+getarg(0)+" ]"; + mes "The goods are produced everyday."; + mes "You should get them whenever you can because they might dissapear if you take them at the wrong time."; + return; + default: // Cancel mes "[ "+getarg(0)+" ]"; mes "As you wish, master."; return; + } } // Castle 1 ================================================================================== diff --git a/npc/events/twintowers.txt b/npc/events/twintowers.txt index 524351661..8013b85b7 100644 --- a/npc/events/twintowers.txt +++ b/npc/events/twintowers.txt @@ -29,24 +29,22 @@ prontera,146,92,4 script Twin Towers#tt1::Twin-Towers TW_TOWER,{ mes "For this reason, we are here at your service with our special magic."; mes "Kindly let us know."; next; - menu "I shall accept your offer.",YES,"I'll ask for your service next time.",NO; - - NO: - mes "[Twin Towers]"; - mes "Er, what a pity. Traveling by yourself is still the best evidence of adventure."; - mes "Isn't this proving that you are still young?"; - mes "We respect brave hearts like this"; - next; - mes "[Twin Towers]"; - mes "There are good and bad times in life, moreover, adventure isn't an easy task in the first place."; - mes "Isn't this true?"; - mes "Feel free to come to us when you have time, we will always be there to serve you."; - next; - mes "[Twin Towers]"; - mes "Forget all your troubles, and create a splendid legend in this wonderful world."; - mes "This is such a wonderful world, and you'll always be a great adventurer!"; - close; - YES: + if (select("I shall accept your offer.","I'll ask for your service next time.") != 1) { + mes "[Twin Towers]"; + mes "Er, what a pity. Traveling by yourself is still the best evidence of adventure."; + mes "Isn't this proving that you are still young?"; + mes "We respect brave hearts like this"; + next; + mes "[Twin Towers]"; + mes "There are good and bad times in life, moreover, adventure isn't an easy task in the first place."; + mes "Isn't this true?"; + mes "Feel free to come to us when you have time, we will always be there to serve you."; + next; + mes "[Twin Towers]"; + mes "Forget all your troubles, and create a splendid legend in this wonderful world."; + mes "This is such a wonderful world, and you'll always be a great adventurer!"; + close; + } mes "[Twin Towers]"; mes "The flaming passion of an adventurer,"; mes "The desire to explore the unknown realms,"; @@ -60,28 +58,29 @@ prontera,146,92,4 script Twin Towers#tt1::Twin-Towers TW_TOWER,{ mes "[Twin Towers]"; mes "Come on! Where do you wish to go?"; mes "Just let us know you desired destination and we will send your there!"; - menu "Hidden Temple", HiddenTemple,"Orc Dungeon",OrcDungeon,"Ant Hell",AntHell,"Mjolnir Waste Pit",MjolnirWastePit,"Sphinx",Sphinx,"Glast Heim",GlastHeim,"Comodo",Comodo; - HiddenTemple: - warp "prt_fild01",136,368; - close; - OrcDungeon: - warp "gef_fild10",67,334; - close; - AntHell: - warp "moc_fild04",210,329; - close; - MjolnirWastePit: - warp "mjolnir_02",79,361; - close; - Sphinx: - warp "moc_fild19",105,99; - close; - GlastHeim: - warp "gef_fild06",45,304; - close; - Comodo: - warp "cmd_fild01",30,317; - close; + switch (select("Hidden Temple","Orc Dungeon","Ant Hell","Mjolnir Waste Pit","Sphinx","Glast Heim","Comodo")) { + case 1: // HiddenTemple + warp "prt_fild01",136,368; + close; + case 2: // OrcDungeon + warp "gef_fild10",67,334; + close; + case 3: // AntHell + warp "moc_fild04",210,329; + close; + case 4: // MjolnirWastePit + warp "mjolnir_02",79,361; + close; + case 5: // Sphinx + warp "moc_fild19",105,99; + close; + case 6: // GlastHeim + warp "gef_fild06",45,304; + close; + case 7: // Comodo + warp "cmd_fild01",30,317; + close; + } } morocc,160,97,4 duplicate(Twin-Towers) Twin Towers#tt2 TW_TOWER diff --git a/npc/events/whiteday.txt b/npc/events/whiteday.txt index ac76c52a5..d90f7c491 100644 --- a/npc/events/whiteday.txt +++ b/npc/events/whiteday.txt @@ -12,10 +12,6 @@ //============================================================ alberta,188,64,4 script Sugar 4_F_02,{ - set @maplenum,0; - set @mapleItemID,0; - set @maplePrice,0; - set @maplePriceT,0; mes "[Sugar]"; mes "Welcome!"; mes "How delicious are sweets?"; @@ -29,51 +25,102 @@ alberta,188,64,4 script Sugar 4_F_02,{ mes "heartfelt like"; mes "the sweetness of the present some how."; next; - menu "Please give me!",-,"I don't need it.",M_End,"The teacher.",M_L1; - - mes "[Sugar]"; - mes "Yes!"; - mes "Select from menu here."; - mes "Since there is a limitation in numbers"; - mes "Not more than ^ff0000 5 pieces^000000."; - mes "are allowed to carry out?"; - next; - menu "Candy",-,"Candy Cane",L0_2,"Well baked cookie",L0_3; - - set @maplePrice,3000; - set @mapleItemID,529; - mes "[Sugar]"; - mes "It is a candy, and the price is"; - mes "3000 Zeny each."; - mes "How many do you like to purchase?"; - next; - goto L_INPUT; -L0_2: - set @maplePrice,4000; - set @mapleItemID,530; - mes "[Sugar]"; - mes "It is a candy cane, and the price is"; - mes "4000 Zeny each."; - mes "How many do you like to purchase?"; - next; - goto L_INPUT; -L0_3: - set @maplePrice,2000; - set @mapleItemID,538; + switch (select("Please give me!","I don't need it.","The teacher.")) { + case 1: // Please give me + mes "[Sugar]"; + mes "Yes!"; + mes "Select from menu here."; + mes "Since there is a limitation in numbers"; + mes "Not more than ^ff0000 5 pieces^000000."; + mes "are allowed to carry out?"; + next; + switch (select("Candy","Candy Cane","Well baked cookie")) { + case 1: // Candy + mes "[Sugar]"; + mes "It is a candy, and the price is"; + mes "3000 Zeny each."; + mes "How many do you like to purchase?"; + next; + callsub(S_Purchase, 3000, Candy); + break; + case 2: // Candy Cane + mes "[Sugar]"; + mes "It is a candy cane, and the price is"; + mes "4000 Zeny each."; + mes "How many do you like to purchase?"; + next; + callsub(S_Purchase, 4000, Candy_Striper); + break; + case 3: // Well baked cookie + mes "[Sugar]"; + mes "It is a well baked cookie, and the price is"; + mes "2000 Zeny each."; + mes "How many do you like to purchase?"; + next; + callsub(S_Purchase, 2000, Well_Baked_Cookie); + break; + } + break; + case 3: // The teacher + mes "[Sugar]"; + mes "Yes"; + mes "The teacher of mine"; + mes "is Mr. Kuberu, a sweets craftsman."; + mes "Making sweets under two persons."; + mes "which is allowed to self-train."; + next; + mes "[Sugar]"; + mes "Although selling is seemingly to carried out ...."; + mes "Where he is now?"; + mes "Which I don't know."; + close; + case 2: // I don't need it + break; + } mes "[Sugar]"; - mes "It is a well baked cookie, and the price is"; - mes "2000 Zeny each."; - mes "How many do you like to purchase?"; - next; + mes "Really .... You might regret it.."; + mes "If you change your mind."; + mes "I am just here ok."; + mes "Have a nice day!"; + close; -L_INPUT: - input @maplenum; - if (@maplenum > 5) goto L_ERROR; - if (@maplenum == 0) goto M_End; - set @maplePriceT,@maplePrice*@maplenum; - if (Zeny < @maplePriceT) goto L_ERROR2; - Zeny -= @maplePriceT; - getitem @mapleItemID,@maplenum; +/** + * Attempts to purchase an item, after asking the desired quantity. + * + * Arguments: + * 0 : price + * 1 : item ID + * + * Returns on user cancel. Closes on successful purchase or error. + */ +S_Purchase: + .@price = getarg(0); + .@item_id = getarg(1); + while (true) { + input .@amount; + if (.@amount <= 5) + break; + mes "[Sugar]"; + mes "???"; + mes "You seem to have a failure on hearing."; + mes "I will tell you once again?"; + mes "You can only purchase"; + mes "^ff0000 5 pieces^000000 at once."; + next; + } + if (.@amount == 0) // Cancel + return; + .@totalPrice = .@price * .@amount; + if (Zeny < .@totalPrice) { + mes "[Sugar]"; + mes "???"; + mes "Hmmm it seems you don't have enough money"; + mes "to make that purchase."; + mes "I will ask you to check your money first."; + close; + } + Zeny -= .@totalPrice; + getitem .@item_id, .@amount; mes "[Sugar]"; mes "Thank you!!!"; mes "These sweets are really delicious."; @@ -82,44 +129,4 @@ L_INPUT: mes "don't eat so much or you'll grow fat."; mes "Please take care!!!"; close; - -M_L1: - mes "[Sugar]"; - mes "Yes"; - mes "The teacher of mine"; - mes "is Mr. Kuberu, a sweets craftsman."; - mes "Making sweets under two persons."; - mes "which is allowed to self-train."; - next; - mes "[Sugar]"; - mes "Although selling is seemingly to carried out ...."; - mes "Where he is now?"; - mes "Which I don't know."; - close; - -L_ERROR: - mes "[Sugar]"; - mes "???"; - mes "You seem to have a failure on hearing."; - mes "I will tell you once again?"; - mes "You can only purchase"; - mes "^ff0000 5 pieces^000000 at once."; - next; - goto L_INPUT; - -L_ERROR2: - mes "[Sugar]"; - mes "???"; - mes "Hmmm it seems you don't have enough money"; - mes "to make that purchase."; - mes "I will ask you to check your money first."; - close; - -M_End: - mes "[Sugar]"; - mes "Really .... You might regret it.."; - mes "If you change your mind."; - mes "I am just here ok."; - mes "Have a nice day!"; - close; } diff --git a/npc/events/xmas.txt b/npc/events/xmas.txt index d8423dda7..72048985d 100644 --- a/npc/events/xmas.txt +++ b/npc/events/xmas.txt @@ -35,9 +35,8 @@ L_Start: mes "I'm having a bit of a problem..."; mes "Do you care to listen?"; next; - menu "Listen to Santa Claus.",M_0, "Give Santa Claus proof.",M_1, "Cancel.",M_End; - - M_0: + switch (select("Listen to Santa Claus.","Give Santa Claus proof.","Cancel.")) { + case 1: // Listen mes "[Santa Claus]"; mes "My problem is this."; mes "There seems to be a man out there"; @@ -76,7 +75,7 @@ L_Start: mes "lab. It spits out random presents"; mes "and saves me a ton of work."; close; - M_1: + case 2: // Give proof mes "[Santa Claus]"; if(countitem(7034) < 3) goto L_NotEnuf; delitem 7034,3; @@ -97,11 +96,12 @@ L_Start: mes "Go take down those evil Santas"; mes "and get more for me and I'll reward you."; close; - M_End: + default: // Cancel mes "[Santa Claus]"; mes "I see. Well, at the very least"; mes "we shall meet again on Christmas morning."; close; + } OnInit: disablenpc "Santa Claus"; diff --git a/npc/quests/ninja_quests.txt b/npc/quests/ninja_quests.txt index dfcc7d172..6e7531e0e 100644 --- a/npc/quests/ninja_quests.txt +++ b/npc/quests/ninja_quests.txt @@ -1148,217 +1148,214 @@ que_ng,22,62,3 script Tetsu 4_M_SEAMAN,{ mes "I may not look it, but if it's about any items related to Fuuma, there's none who come close to my craftsmenship."; mes "Well, look around, look around."; next; - menu "Fuuma Shuriken Beneki",M_BENEKI,"Fuuma Shuriken Daisharin",M_DAIS, - "Fuuma Shuriken Daisharin[4]",M_DAIS4,"Fuuma Shuriken Rekka",M_REKKA,"Cancel",M_CANCEL; - -//=====================BENEKI======================== -M_BENEKI: - mes "[Tetsu]"; - mes "Hmm~ You've chose the ^ff0000Fuuma Beneki^000000."; - mes "In order to make the Fuuma Beneki, I need"; - mes "50 Steel, 20 Harpy Feather"; - mes "5 Oridecon, and 90,000 Zeny."; - mes "Do you want me to create this item for you?"; - next; - menu "Well .. erm .. it's kind of pricey.",M_NOPE,"Yes! Make it for me!",-; - - if(countitem(999)<50 || countitem(7115)<20 || countitem(984)<5){ + switch (select("Fuuma Shuriken Beneki","Fuuma Shuriken Daisharin","Fuuma Shuriken Daisharin[4]","Fuuma Shuriken Rekka","Cancel")) { + case 1: // Beneki mes "[Tetsu]"; - mes "It looks like you haven't brought me enough materials to make you a Fuuma Shuriken Beneki."; + mes "Hmm~ You've chose the ^ff0000Fuuma Beneki^000000."; + mes "In order to make the Fuuma Beneki, I need"; + mes "50 Steel, 20 Harpy Feather"; + mes "5 Oridecon, and 90,000 Zeny."; + mes "Do you want me to create this item for you?"; next; + if (select("Well .. erm .. it's kind of pricey.","Yes! Make it for me!") != 2) { + break; + } + + if(countitem(999)<50 || countitem(7115)<20 || countitem(984)<5){ + mes "[Tetsu]"; + mes "It looks like you haven't brought me enough materials to make you a Fuuma Shuriken Beneki."; + next; + mes "[Tetsu]"; + mes "In order to create a Fuuma shuriken Beneki, I require..."; + mes "^ff000050 Steel,^000000"; + mes "^ff000020 Harpy Feathers^000000,"; + mes "^ff00005 Oridecons^000000,"; + mes "and ^ff000090,000 Zeny^000000."; + mes "Remember these needed materials, and come back after you're positive you have them all."; + close; + } + if(Zeny < 90000){ + mes "[Tetsu]"; + mes "Hmm.. You brought plenty of materials, but you're short on zeny."; + next; + mes "[Tetsu]"; + mes "In order to create a Fuuma Shuriken Beneki, I require..."; + mes "^ff000050 Steel,^000000"; + mes "^ff000020 Harpy Feathers^000000,"; + mes "^ff00005 Oridecons^000000,"; + mes "and ^ff000090,000 Zeny^000000."; + mes "Remember these needed materials, and come back after you're positive you have them all."; + close; + } + delitem 999,50; + delitem 7115,20; + delitem 984,5; + Zeny -= 90000; + getitem 13300,1; mes "[Tetsu]"; - mes "In order to create a Fuuma shuriken Beneki, I require..."; - mes "^ff000050 Steel,^000000"; - mes "^ff000020 Harpy Feathers^000000,"; - mes "^ff00005 Oridecons^000000,"; - mes "and ^ff000090,000 Zeny^000000."; - mes "Remember these needed materials, and come back after you're positive you have them all."; + mes "Hmm, very well."; + mes "Looks like you've brought me the correct amount of materials and Zeny"; + mes "Here is your completed Fuuma Shuriken Beneki"; close; - } - if(Zeny < 90000){ + case 2: // Daisharin mes "[Tetsu]"; - mes "Hmm.. You brought plenty of materials, but you're short on zeny."; + mes "Hmm~ I see you've chose the ^ff0000Fuuma Shuriken Daisharin^000000."; + mes "In order to create Fuuma Shuriken Daisharin, I require..."; + mes "30 Steel, 100 Tassels"; + mes "2 Oridecons, and 40,000 Zeny."; + mes "Do you want me to create this item for you?"; next; - mes "[Tetsu]"; - mes "In order to create a Fuuma Shuriken Beneki, I require..."; - mes "^ff000050 Steel,^000000"; - mes "^ff000020 Harpy Feathers^000000,"; - mes "^ff00005 Oridecons^000000,"; - mes "and ^ff000090,000 Zeny^000000."; - mes "Remember these needed materials, and come back after you're positive you have them all."; - close; - } - delitem 999,50; - delitem 7115,20; - delitem 984,5; - Zeny -= 90000; - getitem 13300,1; - mes "[Tetsu]"; - mes "Hmm, very well."; - mes "Looks like you've brought me the correct amount of materials and Zeny"; - mes "Here is your completed Fuuma Shuriken Beneki"; - close; - -//=====================DAISHARIN======================== -M_DAIS: - mes "[Tetsu]"; - mes "Hmm~ I see you've chose the ^ff0000Fuuma Shuriken Daisharin^000000."; - mes "Fuuma Shuriken Daisharin In order to create Fuuma Shuriken Daisharin, I require..."; - mes "30 Steel, 100 Tassels"; - mes "2 Oridecons, and 40,000 Zeny."; - mes "Do you want me to create this item for you?"; - next; - menu "Well .. erm .. it's kind of pricey.",M_NOPE,"Yes! Make it for me!",-; + if (select("Well .. erm .. it's kind of pricey.","Yes! Make it for me!") != 2) { + break; + } - if(countitem(999)<30 || countitem(7301)<100 || countitem(984)<2){ - mes "[Tetsu]"; - mes "It looks like you haven't brought me enough materials to make you a Fuuma Shuriken Daisharin."; - next; + if(countitem(999)<30 || countitem(7301)<100 || countitem(984)<2){ + mes "[Tetsu]"; + mes "It looks like you haven't brought me enough materials to make you a Fuuma Shuriken Daisharin."; + next; + mes "[Tetsu]"; + mes "Fuuma Shuriken Daisharin, I require..."; + mes "^ff000030 Steel^000000, "; + mes "^ff0000100 Tassels^000000,"; + mes "^ff00002 Oridecons^000000,"; + mes "and ^ff000040,000 Zeny^000000."; + mes "Remember these needed materials, and come back after you're positive you have them all."; + close; + } + if(Zeny < 40000){ + mes "[Tetsu]"; + mes "Hmm.. You brought plenty of materials, but you're short on zeny."; + next; + mes "[Tetsu]"; + mes "Fuuma Shuriken Daisharin, I require..."; + mes "^ff000030 Steel^000000, "; + mes "^ff0000100 Tassels^000000,"; + mes "^ff00002 Oridecons^000000,"; + mes "and ^ff000040,000 Zeny^000000."; + mes "Remember these needed materials, and come back after you're positive you have them all."; + close; + } + delitem 999,30; + delitem 7301,100; + delitem 984,2; + Zeny -= 40000; + getitem 13301,1; mes "[Tetsu]"; - mes "Fuuma Shuriken Daisharin, I require..."; - mes "^ff000030 Steel^000000, "; - mes "^ff0000100 Tassels^000000,"; - mes "^ff00002 Oridecons^000000,"; - mes "and ^ff000040,000 Zeny^000000."; - mes "Remember these needed materials, and come back after you're positive you have them all."; + mes "Hmm, very well."; + mes "Looks like you've brought me the correct amount of materials and Zeny"; + mes "Here is your completed Fuuma Shuriken Daisharin"; close; - } - if(Zeny < 40000){ + case 3: // Daisharin[4] mes "[Tetsu]"; - mes "Hmm.. You brought plenty of materials, but you're short on zeny."; + mes "Hmm~ I see you've chose the ^ff0000Fuuma Shuriken Daisharin[4]^000000."; + mes "In order to create Fuuma Shuriken Daisharin[4], I require..."; + mes "20 Cracked Diamonds, 1 Fuuma Shuriken Daisharin"; + mes "3 Oridecons, and 40,000 Zeny."; + mes "Do you want me to create this item for you?"; next; mes "[Tetsu]"; - mes "Fuuma Shuriken Daisharin, I require..."; - mes "^ff000030 Steel^000000, "; - mes "^ff0000100 Tassels^000000,"; - mes "^ff00002 Oridecons^000000,"; - mes "and ^ff000040,000 Zeny^000000."; - mes "Remember these needed materials, and come back after you're positive you have them all."; - close; - } - delitem 999,30; - delitem 7301,100; - delitem 984,2; - Zeny -= 40000; - getitem 13301,1; - mes "[Tetsu]"; - mes "Hmm, very well."; - mes "Looks like you've brought me the correct amount of materials and Zeny"; - mes "Here is your completed Fuuma Shuriken Daisharin"; - close; - -//=====================DAISHARIN4======================== -M_DAIS4: - mes "[Tetsu]"; - mes "Hmm~ I see you've chose the ^ff0000Fuuma Shuriken Daisharin[4]^000000."; - mes "In order to create Fuuma Shuriken Daisharin[4], I require..."; - mes "20 Cracked Diamonds, 1 Fuuma Shuriken Daisharin"; - mes "3 Oridecons, and 40,000 Zeny."; - mes "Do you want me to create this item for you?"; - next; - mes "[Tetsu]"; - mes "And in case you don't know..."; - mes "In the process of slotting a weapon, your weapon will lose any refine points and slotted cards, if any."; - mes "Think this over with caution, and then decide if you really want to do this or not."; - next; - menu "No thanks.. It's a little pricey..",M_NOPE,"Yes! Make it for me!",-; - - if(countitem(733)<20 || countitem(13301)<1 || countitem(984)<3){ - mes "[Tetsu]"; - mes "It looks like you haven't brought me enough materials to make you a Fuuma Shuriken Daisharin[4]."; + mes "And in case you don't know..."; + mes "In the process of slotting a weapon, your weapon will lose any refine points and slotted cards, if any."; + mes "Think this over with caution, and then decide if you really want to do this or not."; next; + if (select("No thanks.. It's a little pricey..","Yes! Make it for me!") != 2) { + break; + } + + if(countitem(733)<20 || countitem(13301)<1 || countitem(984)<3){ + mes "[Tetsu]"; + mes "It looks like you haven't brought me enough materials to make you a Fuuma Shuriken Daisharin[4]."; + next; + mes "[Tetsu]"; + mes "In order to create a Fuuma Shuriken Daisharin[4], I require..."; + mes "^ff000020 Cracked Diamonds^000000,"; + mes "^ff00003 Oridecons^000000,"; + mes "1 Fuuma Shuriken Daisharin, and"; + mes "^ff000040,000 Zeny^000000."; + mes "Remember these needed materials, and come back after you're positive you have them all."; + close; + } + if(Zeny < 40000){ + mes "[Tetsu]"; + mes "Hmm.. You brought plenty of materials, but you're short on zeny."; + next; + mes "[Tetsu]"; + mes "In order to create a Fuuma Shuriken Daisharin[4], I require..."; + mes "^ff000020 Cracked Diamonds^000000,"; + mes "^ff00003 Oridecons^000000,"; + mes "1 Fuuma Shuriken Daisharin, and"; + mes "^ff000040,000 Zeny^000000."; + mes "Remember these needed materials, and come back after you're positive you have them all."; + close; + } + delitem 733,20; + delitem 984,3; + Zeny -= 40000; + delitem 13301,1; + getitem 13302,1; mes "[Tetsu]"; - mes "In order to create a Fuuma Shuriken Daisharin[4], I require..."; - mes "^ff000020 Cracked Diamonds^000000,"; - mes "^ff00003 Oridecons^000000,"; - mes "1 Fuuma Shuriken Daisharin, and"; - mes "^ff000040,000 Zeny^000000."; - mes "Remember these needed materials, and come back after you're positive you have them all."; + mes "Hmm, very well."; + mes "Looks like you've brought me the correct amount of materials and Zeny"; + mes "Here is your completed Fuuma Shuriken Daisharin[4]."; close; - } - if(Zeny < 40000){ - mes "[Tetsu]"; - mes "Hmm.. You brought plenty of materials, but you're short on zeny."; - next; + case 4: // Rekka mes "[Tetsu]"; - mes "In order to create a Fuuma Shuriken Daisharin[4], I require..."; - mes "^ff000020 Cracked Diamonds^000000,"; - mes "^ff00003 Oridecons^000000,"; - mes "1 Fuuma Shuriken Daisharin, and"; - mes "^ff000040,000 Zeny^000000."; - mes "Remember these needed materials, and come back after you're positive you have them all."; - close; - } - delitem 733,20; - delitem 984,3; - Zeny -= 40000; - delitem 13301,1; - getitem 13302,1; - mes "[Tetsu]"; - mes "Hmm, very well."; - mes "Looks like you've brought me the correct amount of materials and Zeny"; - mes "Here is your completed Fuuma Shuriken Daisharin[4]."; - close; - -//=====================REKKA======================== -M_REKKA: - mes "[Tetsu]"; - mes "Hmm~ I see you've chose the ^ff0000Fuuma Shuriken Rekka^000000."; - mes "In order to create a Fuuma Shuriken Rekka, I require"; - mes "50 Steel, 100 Live Coal"; - mes "100 Burning Hearts, 50 Burning Stones"; - mes "and 78,000 Zeny."; - mes "Do you want me to create this item for you?"; - next; - menu "Well .. erm .. it's kind of pricey",M_NOPE,"Yes! Make it for me!",-; + mes "Hmm~ I see you've chose the ^ff0000Fuuma Shuriken Rekka^000000."; + mes "In order to create a Fuuma Shuriken Rekka, I require"; + mes "50 Steel, 100 Live Coal"; + mes "100 Burning Hearts, 50 Burning Stones"; + mes "and 78,000 Zeny."; + mes "Do you want me to create this item for you?"; + next; + if (select("Well .. erm .. it's kind of pricey","Yes! Make it for me!") != 2) { + break; + } - if(countitem(999)<50 || countitem(7098)<100 || countitem(7097)<100 || countitem(7521)<50){ - mes "[Tetsu]"; - mes "It looks like you haven't brought me enough materials to make you a Fuuma Shuriken Rekka."; - next; + if(countitem(999)<50 || countitem(7098)<100 || countitem(7097)<100 || countitem(7521)<50){ + mes "[Tetsu]"; + mes "It looks like you haven't brought me enough materials to make you a Fuuma Shuriken Rekka."; + next; + mes "[Tetsu]"; + mes "In order to create a Fuuma Shuriken Rekka, I require..."; + mes "^ff000050 Steel^000000,^ff000050 Burning Stones^000000,"; + mes "^ff0000100 Burning Hearts^000000,^ff0000100 Live Coal^000000,"; + mes "and ^ff000078,000 Zeny^000000"; + mes "Remember these needed materials, and come back after you're positive you have them all."; + close; + } + if(Zeny < 78000){ + mes "[Tetsu]"; + mes "Hmm.. You brought plenty of materials, but you're short on zeny."; + next; + mes "[Tetsu]"; + mes "In order to create a Fuuma Shuriken Rekka, I require..."; + mes "^ff000050 Steel^000000,^ff000050 Burning Stones^000000,"; + mes "^ff0000100 Burning Hearts^000000,^ff0000100 Live Coal^000000,"; + mes "and ^ff000078,000 Zeny^000000"; + mes "Remember these needed materials, and come back after you're positive you have them all."; + close; + } + delitem 999,50; + delitem 7098,100; + delitem 7097,100; + delitem 7521,50; + Zeny -= 78000; + getitem 13303,1; mes "[Tetsu]"; - mes "In order to create a Fuuma Shuriken Rekka, I require..."; - mes "^ff000050 Steel^000000,^ff000050 Burning Stones^000000,"; - mes "^ff0000100 Burning Hearts^000000,^ff0000100 Live Coal^000000,"; - mes "and ^ff000078,000 Zeny^000000"; - mes "Remember these needed materials, and come back after you're positive you have them all."; + mes "Hmm, very well."; + mes "Looks like you've brought me the correct amount of materials and Zeny"; + mes "Here is your completed Fuuma Shuriken Rekka."; close; - } - if(Zeny < 78000){ + default: // Cancel mes "[Tetsu]"; - mes "Hmm.. You brought plenty of materials, but you're short on zeny."; - next; - mes "[Tetsu]"; - mes "In order to create a Fuuma Shuriken Rekka, I require..."; - mes "^ff000050 Steel^000000,^ff000050 Burning Stones^000000,"; - mes "^ff0000100 Burning Hearts^000000,^ff0000100 Live Coal^000000,"; - mes "and ^ff000078,000 Zeny^000000"; - mes "Remember these needed materials, and come back after you're positive you have them all."; + mes "What a shame."; + mes "I wanted to show you the weapons I put my heart and soul into making them."; + mes "If you ever have second thoughts, it's never too late to come back and ask."; close; } - delitem 999,50; - delitem 7098,100; - delitem 7097,100; - delitem 7521,50; - Zeny -= 78000; - getitem 13303,1; - mes "[Tetsu]"; - mes "Hmm, very well."; - mes "Looks like you've brought me the correct amount of materials and Zeny"; - mes "Here is your completed Fuuma Shuriken Rekka."; - close; - -//=====================I'M SORRY======================== -M_NOPE: + // It's kind of pricey mes "[Tetsu]"; mes "Hmm. The cost to create this item is kind of expensive..."; mes "All right. If you do gather all the required materials one day, come back and see me."; close; - -M_CANCEL: - mes "[Tetsu]"; - mes "What a shame."; - mes "I wanted to show you the weapons I put my heart and soul into making them."; - mes "If you ever have second thoughts, it's never too late to come back and ask."; - close; } |