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/events | |
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/events')
-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 |
8 files changed, 439 insertions, 457 deletions
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"; |