diff options
author | Jesusaves <cpntb1@ymail.com> | 2021-04-09 11:00:49 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2021-04-09 11:00:49 -0300 |
commit | 8a4bf716002a017de77fe7df301ef8e4aaf00a2e (patch) | |
tree | 4947d0b015baad639fa07133369e9a09c8a468bc /npc/020-2-34/donutello.txt | |
download | serverdata-8a4bf716002a017de77fe7df301ef8e4aaf00a2e.tar.gz serverdata-8a4bf716002a017de77fe7df301ef8e4aaf00a2e.tar.bz2 serverdata-8a4bf716002a017de77fe7df301ef8e4aaf00a2e.tar.xz serverdata-8a4bf716002a017de77fe7df301ef8e4aaf00a2e.zip |
Initial commit
Diffstat (limited to 'npc/020-2-34/donutello.txt')
-rw-r--r-- | npc/020-2-34/donutello.txt | 166 |
1 files changed, 166 insertions, 0 deletions
diff --git a/npc/020-2-34/donutello.txt b/npc/020-2-34/donutello.txt new file mode 100644 index 00000000..8ff494d8 --- /dev/null +++ b/npc/020-2-34/donutello.txt @@ -0,0 +1,166 @@ +// The Mana World scripts. +// Author: +// Jesusalva +// Description: +// Donutello is the Donut Apprentice + +020-2-34,33,48,0 script Donutello NPC_CHEF_LEGACY,{ + function foodQuestline; + + // Instance behavior + if (instance_id() > 0) { + npctalk3 l("Time remaining: %s" , FuzzyTime(@tinner)); + end; + } + + mesn; + mesq l("Why are you here? Only staff and VIP are supposed to go down here."); + + .@q=getq(General_Cooking); + if (.@q > 11) + foodQuestline(); + + close; + +function foodQuestline { + .@q=getq(General_Cooking); + .@q2=getq2(General_Cooking); + mes ""; + select + rif(.@q == 12, l("Can you teach me how to cook sweets?")), + rif(.@q == 13, l("Rattos killed. So, my recipe...")), + l("What is the area, anyway?"), + l("Erm, wrong door, sorry."); + mes ""; + switch (@menu) { + case 1: + mesn; + mesq l("What? But the recipes are the pride of Tulimshar Inn, and-- Oohhhh.... Maybe..."); + next; + mesn; + mesq l("Hey, I can teach the %s recipe. However...", getitemlink(Donut)); + next; + select + l("Oh no - I'm not your personal delivery guy! Bye bye!"), + l("Here we go again..."); + mes ""; + if (@menu == 1) + break; + mesn; + mesq l("I am scared of the rattos! And Riskim says that we cannot have rattos here, so he also wants me to kill them!! %%i"); + next; + mesn strcharinfo(0); + select + l("Sounds cliché, but okay, I'll help."), + l("They're just rattos?"); + mes ""; + mesn; + mesq l("Oh, but they aren't only fast - they're more vicious than common rattos, from all the sugar they eat. And if you take too long killing them, Riskim will hear and - things will turn out badly!"); + next; + mesc l("Accept quest?"), 1; + mesc l("Time limit: %s", l("2 minutes")); + .@mapn$="Tinn@"+getcharid(0); + if (askyesno() == ASK_NO) + break; + + if (instanceowner(@tinnst) != getcharid(3)) { + @tinnst = instance_create("T.INN "+getcharid(0), getcharid(3), IOT_CHAR); + instance_attachmap("020-2-34", @tinnst, false, .@mapn$); + instance_set_timeout(120, 120, @tinnst); + instance_init(@tinnst); + } else { + instance_set_timeout(120, 120, @tinnst); + } + @tinner = gettimetick(2) + 120; + killmonsterall(.@mapn$); + for (.@i = 0; .@i < 4; .@i++) { + .@mob=areamonster(.@mapn$, 32, 50, 52, 57, strmobinfo(1, Ratto), Ratto, 1, "Donutello::OnRattoKill"); + // Make them vicious + .@bhp= getunitdata(.@mob, UDT_MAXHP); + .@bat1=getunitdata(.@mob, UDT_ATKMIN); + .@bat2=getunitdata(.@mob, UDT_ATKMAX); + .@bhit=getunitdata(.@mob, UDT_HIT); + setunitdata(.@mob, UDT_MAXHP, .@bhp*22/10); + setunitdata(.@mob, UDT_HP, .@bhp*22/10); + setunitdata(.@mob, UDT_ATKMIN, .@bat1*27/10); + setunitdata(.@mob, UDT_ATKMAX, .@bat2*27/10); + setunitdata(.@mob, UDT_HIT, .@bhit*20); + } + warp .@mapn$, 37, 50; + dispbottom l("Time remaining: %s", FuzzyTime(@tinner)); + closeclientdialog; + close; + break; + case 2: + mesn; + mesq l("Phew, thanks %s. These rattos were going to be the ruin of me!", strcharinfo(0)); + next; + mesn; + mesq l("However, you must bring me %d %s, %d %s and %d %s. Because the ingredients are you!", + 6, getitemlink(AcornFlour), + 2, getitemlink(MoubooMilk), + 2, getitemlink(ChocolateBar)); + next; + mesn; + mesq l("Erm, Acorn Flour is made of mashed up acorns. %d Acorns make one flour. So, I'll accept the acorns instead of the flour as you helped me a lot.", 3); + next; + mesc l("Deliver the ingredients?"), 1; + mesf("- %d %s", 18, getitemlink(Acorn)); + mesf("- %d %s", 2, getitemlink(MoubooMilk)); + mesf("- %d %s", 2, getitemlink(ChocolateBar)); + mes ""; + if (askyesno() == ASK_NO) + break; + if (countitem(ChocolateBar) < 2 || + countitem(MoubooMilk) < 2 || + countitem(Acorn) < 18) + break; + inventoryplace Donut, 1; + delitem Acorn, 18; + delitem MoubooMilk, 2; + delitem ChocolateBar, 2; + setq1 General_Cooking, 14; + RECIPES[CraftDonut]=true; + getitem Donut, 1; + mesn; + mesq l("Great, thanks! If you need more flour you can ask Riskim. He also buys flour for a good price."); + next; + mesn; + mesq l("First divide the ingredients on two halves. Take the first half, mix them, bring the oven, and blablablablah...."); + next; + mesn; + mesq l("And after a while, you have %s! I made two with the ingredients you gave me, one for you and one for me. This is my thankyou for helping me out on the storeroom. Enjoy!", getitemlink(Donut)); + break; + case 3: + mesn; + mesq l("Up there is the Casino. Erm, it is totally legal, I swear."); + next; + mesn; + mesq l("Here is the storeroom, and... Hey! I don't need to answer you questions!!"); + break; + } + return; + +OnRattoKill: + if (!playerattached()) end; + // FIXME - Make sure this is an instanced map + //if (instance_id() < 1) end; + + if (mobcount(getmap(), "Donutello::OnRattoKill") <= 0) { + dispbottom l("I'm done with this."); + getmapxy(.@m$, .@x, .@y, 0); + setq1 General_Cooking, 13; + sleep2(1000); // Give you some time to loot + warp "020-2-34", .@x, .@y; + sleep2(500); // Give M+ some time to re-render everything + npctalk3 l("Thanks %s... I feel much safer now!", strcharinfo(0)); + } else { + dispbottom l("Rattos remaining: %d", mobcount(getmap(), "Donutello::OnRattoKill")); + } + end; +} + +OnInit: + .distance = 4; + end; +} |