diff options
author | Jesusaves <cpntb1@ymail.com> | 2022-10-23 21:44:22 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2022-10-23 21:44:22 -0300 |
commit | a7c45a192268da2601cef47a4cdba987ae2327ca (patch) | |
tree | c5fb5b97db109fe7106496dd96498c475881046b /npc/012-7 | |
download | serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.gz serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.bz2 serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.xz serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.zip |
Initial commit (Moubootaur Legends fork)
Diffstat (limited to 'npc/012-7')
-rw-r--r-- | npc/012-7/_import.txt | 7 | ||||
-rw-r--r-- | npc/012-7/_warps.txt | 3 | ||||
-rw-r--r-- | npc/012-7/airlia.txt | 182 | ||||
-rw-r--r-- | npc/012-7/celestia.txt | 396 | ||||
-rw-r--r-- | npc/012-7/politics.txt | 58 | ||||
-rw-r--r-- | npc/012-7/slots.txt | 97 |
6 files changed, 743 insertions, 0 deletions
diff --git a/npc/012-7/_import.txt b/npc/012-7/_import.txt new file mode 100644 index 0000000..aaf345c --- /dev/null +++ b/npc/012-7/_import.txt @@ -0,0 +1,7 @@ +// Map 012-7: Town Hall +// This file is generated automatically. All manually added changes will be removed when running the Converter. +"npc/012-7/_warps.txt", +"npc/012-7/airlia.txt", +"npc/012-7/celestia.txt", +"npc/012-7/politics.txt", +"npc/012-7/slots.txt", diff --git a/npc/012-7/_warps.txt b/npc/012-7/_warps.txt new file mode 100644 index 0000000..7cc2e52 --- /dev/null +++ b/npc/012-7/_warps.txt @@ -0,0 +1,3 @@ +// This file is generated automatically. All manually added changes will be removed when running the Converter. +// Map 012-7: Town Hall warps +012-7,35,65,0 warp #012-7_35_65 0,0,012-1,102,70 diff --git a/npc/012-7/airlia.txt b/npc/012-7/airlia.txt new file mode 100644 index 0000000..9b0eaf5 --- /dev/null +++ b/npc/012-7/airlia.txt @@ -0,0 +1,182 @@ +// TMW2 Script +// Author: +// Jesusalva +// Personality Traits: +// Bitter-sweet, resentful, lovely, cute +// Description: +// Former Town's Mayor Daughter. +// Have a grudge against current mayor. +// Her father was banished from the town after the famine and the Monster Attack (Siege) +// TODO: Remember to use disablenpc() and enablenpc() to keep consistency with Hurns Liberation Day +// A new mayor was elected, which was her family political enemy. She misses her father, +// which she doesn't knows where he is because the banishment. Main storyline unlocks +// this side quest, but the main storyline keeps going forward regardless of that. +// NOTE: Here, 'main storyline' is character story, do not mistake with world main storyline. + +012-7,52,58,0 script Airlia NPC_ELF_F,{ + .@q1=getq(HurnscaldQuest_Farmers); + .@n = getq(General_Narrator); + if (strcharinfo(0) == $MOST_HEROIC$) npctalk3 l("Ah, if it isn't @@? You're the talk of the town!", $MOST_HEROIC$); + if (.@q1 == 4) goto L_Letter; + if (.@n >= 3 && .@n < 6) goto L_Mayor; + if (.@n == 9) goto L_Nivalis; + mesn; + mesq l("Oh, a visitor. Welcome to the city hall. Please, enjoy your stay."); + close; + +// Hurnscald Farmers Quest +L_Letter: + mesn; + mesq l("You're the savior of Hurnscald crops. Half from the world would die from famine, weren't for you."); + next; + mesn; + mesq l("We're currently the biggest exporter of food. We may be a small town, but Tulimshar and Halinarzo can barely hold themselves."); + next; + mesn; + mesq l("Here, take this @@. This is the proof that you've helped Hurnscald greatly. This shall open new opportunities to you.", getitemlink(CottonBoots)); + inventoryplace CottonBoots, 1; + setq HurnscaldQuest_Farmers, 5; + getitem CottonBoots, 1; + getexp 0, 1000; + close; + +// Main Storyline & Airlia Quest +L_Mayor: + .@q=getq2(General_Narrator); + + // 3 - Quest Not Assigned + if (.@n == 3) + goto L_In1; + + // 4 - Airlia doesn't wants to talk about </3 + if (.@n == 4) { + if (.@q == 2) goto L_In3; + if (.@q == 1) goto L_In2; + } + + // 5 - Access to Rakinorf was granted + if (.@n == 5) + goto L_In4; + + mesc l("Script Error"), 1; + close; + +L_In1: + mesn strcharinfo(0); + mesq l("Hello! Could I see the Mayor?"); + next; + mesn; + mesq l("Ah... The mayor. The current mayor. Why do you even want to talk to him, anyway?"); + next; + mesn; + mesq l("Anyway, he is not available at the moment. Try your luck again later."); + setq General_Narrator, 4, 1; + close; + +L_In2: + mesn strcharinfo(0); + mesq l("Hello! Could I see the Mayor?"); + next; + mesn; + mesq l("I already told you he is out! Why do you even want to talk to him?! Haven't I told you to... to... leave me alone!?"); + setq2 General_Narrator, 2; + close; + +L_In3: + mesn strcharinfo(0); + mesq l("Hello! Could I see the Mayor?"); + next; + mesn; + mes "..."; + next; + mes "... ..."; + next; + mes "... ... ..."; + next; + mesn; + mesq l("Fine."); + next; + mesn; + mesq l("The mayor, Rakinorf, is probably on the Inn upstairs, drinking himself to death."); + next; + mesn; + mesq l("Usually only sponsors are allowed up there, but I'll make an exception today. Go meet the mayor."); + setq General_Narrator, 5, 0; + close; + +L_In4: + if (.@q == 5) + goto L_In5; + mesn; + mesq l("The mayor, Rakinorf, is probably on the Inn upstairs, drinking himself to death."); + next; + mesn; + mesq l("Usually only sponsors are allowed up there, but I'll make an exception today. Go meet the mayor."); + close; + +L_In5: + mesn; + mesq l("Go away."); + next; + mesn strcharinfo(0); + mesq l("I can't. Rakinorf told me I should bring this matter to you instead."); + next; + mesn; + mesq l("That lazy mayor... He can't do anything on his own!! Sure, what do you need?"); + next; + mesn strcharinfo(0); + mesc l("You explain to Airlia about you wanting to travel to Halinarzo to find clues."); + next; + mesn; + mesq l("What, only that? Well, this is actually simpler than it looks."); + next; + mesn; + mesq l("Basically, there's no sea route to Halinarzo. You must head southeast of Tulimshar."); + next; + mesn; + mesq l("Halinarzo lies past the Canyon, but the @@ there are level @@.", getmonsterlink(Snake), strmobinfo(3, Snake)); + next; + mesn; + mesq l("So, you would die a few thousands of times before ever reaching Halinarzo."); + next; + mesn; + mesq l("But with a @@, when you are about to die, you can warp back to Soul Menhir and bypass death penalty.", getitemlink(ReturnPotion)); + next; + mesn; + mesq l("That's a super rare potion, and it expires after some time. Take care!"); + setq2 General_Narrator, 6; + close; + +L_Nivalis: + // Supposed to send player to talk with another NPC on Nivalis about World's Edge + mesn; + mesq l("Going to World Edge? Never heard of."); + next; + mesn; + mesq l("My father probably knew... Well, you better ask Blue Sage then."); + next; + mesn; + mesq l("The Blue Sage is Nivalis Mayor and very knowledgeable on stuff. Lemme write a letter of recommendation for you and sign it in Rakinorf's stead..."); + next; + mesc b(l(".:: Main Quest 4-1 ::.")), 3; + mesc l("* Meet the Blue Sage"), 9; + setq General_Narrator, 10, 0; + next; + mesn; + mesq l("There you go. I wish you good luck. @@", col(l("*grumpf*"), 9)); + close; + +OnInit: + .@npcId = getnpcid(.name$); + setunitdata(.@npcId, UDT_HEADTOP, Earmuffs); + setunitdata(.@npcId, UDT_HEADMIDDLE, RedknightArmor); + setunitdata(.@npcId, UDT_HEADBOTTOM, Boots); + setunitdata(.@npcId, UDT_WEAPON, CottonSkirt); + setunitdata(.@npcId, UDT_HAIRSTYLE, 20); + setunitdata(.@npcId, UDT_HAIRCOLOR, 5); + + .sex = G_FEMALE; + .distance = 5; + end; +} + diff --git a/npc/012-7/celestia.txt b/npc/012-7/celestia.txt new file mode 100644 index 0000000..b49b52a --- /dev/null +++ b/npc/012-7/celestia.txt @@ -0,0 +1,396 @@ +// TMW2 Scripts +// Author: +// gumi (TMW Org. Team) +// Jesusalva +// Description: +// Celestia Yeti King's quest. Designed so if you're with 4 players, all 4 can +// summon the Yeti King, helping you while doing the quest by themselves. + + +012-7,35,49,0 script Celestia NPC_ELF_F,{ + .@q1=getq(HurnscaldQuest_Celestia); + .@q2=getq(HurnscaldQuest_TeaParty); + mesn; + mesq lg("Hello, darling. I was thinking in doing a tea party."); + if (.@q1) + mesc l("You notice that even if she tries to calm down everyone and serve tea, she's pretty distressed with the Monster King herself."); + next; + mesn strcharinfo(0); + menu + l("Sorry, I'm more of a coffee person."), L_Coffee, + l("What an amazing crown you have! How do I get it?!"), L_Crown, + rif(getvaultid() && get_nibble(##01_TMWQUEST, 0) == 2, l("Actually, have you ever heard of Yeti's kidnapping little girls?")), L_VaultQuest, + rif(.@q2 == 0 && BaseLevel >= 35, l("Tea party! I want to participate.")), L_TeaQuest, + rif(.@q2 == 1, l("I have some sweeties for the Tea Party!")), L_TeaCheck, + rif(.@q2 >= 2, l("Tea party! I want to participate.")), L_TeaParty, + rif(.@q2 >= 2, l("Do you sell tea?")), L_TeaShop, + rif(.@q1 == 0, l("There are Monster Attacks every month, how do you have time for tea parties?!")), L_MainQuest, + rif(.@q1 && CINDY_PLAYER_STRUCK && getq(NivalisQuest_Well) < 2, l("I found switches which only a Yeti may flip...")), L_OtherQuest, + rif(.@q1 >= 6, l("I want to try convincing the Yeti King again.")), L_MainQuestCore; + +L_Coffee: + mes ""; + mesn; + mesq l("Hmpf! Coffee is an heresy!"); + // Except I love coffee ~ Jesusalva + close; + +L_Crown: + mes ""; + mesn; + mesq l("Ooh, this nice shiny thing? It was an event."); + next; + mesn; + mesq l("Saulc is rich, you know. He challenged a group of thirty NPCs to defeat him, whoever won would get this @@.", getitemlink(MurdererCrown)); + next; + mesn; + mesq l("Well, Andrei Sakar said it was a waste a time, and the other NPCs started fighting against themselves, so I won."); + next; + mesn; + if (BaseLevel < 100) + mesq l("...Besides, I have this nice @@ with me. I'm not low-level like you.", getitemlink(BansheeBow)); + else + mesq l("...Besides, I have this nice @@ with me. It's a reliable bow.", getitemlink(BansheeBow)); + close; + +L_MainQuest: + mes ""; + mesn; + mesc l("Celestia eyes sparkles."); + mesq l("Someone who have clear priorities appeared! I'm glad!"); + next; + mesn; + mesq l("You see, most people think that all monsters are controlled by the Monster King, but that's not quite right."); + next; + mesn; + mesq l("Some are just living their own lives. In special, I've spent part of my life studying the Yeti Society."); + next; + mesn; + mesq l("And guess what? They have a King of their own!"); + mesq l("If we could convince them to distract the Monster King, we could have chances to do a counter-attack!"); + next; + mesn; + mesq l("But that's not so easy... I already sent many people, and even come myself, but he refuses to help."); + next; + +L_MainQuestCore: + mesn; + mesq l("Maybe you could convince him. There's a summoning circle on Tulimshar Sewers."); + next; + mesn; + mesq l("Go very close to it and, speak the four four-letters magic words, pour some @@, and he'll appear to you.", getitemlink(EverburnPowder)); + next; + mesn; + mesq l("Don't go alone, though! He would not listen to me, it is not you alone he'll pay attention. You will lose reagents!"); + next; + mesc l("Accept quest?"); + if (askyesno() == ASK_YES) { + setq HurnscaldQuest_Celestia, 1; + @YetiKing_Challenger=0; + mes ""; + mesn; + mesq l("Good, good. The chant is ##B EMOC OTEM ITEY GNIK ##b. Good luck!"); + } + close; + +L_TeaQuest: + mes ""; + mesn; + mesq l("Well, the reason why I'm not doing it already is because, you see, I lack cookies."); + if (countitem(DeliciousCookie)) { + next; + mesn; + mesq l("And anyone like you probably already knows that, well... Cookies are life!"); + } + next; + mesn; + mesq l("But I can still make it without cookies, as long that you bring me some other sweeties."); + next; + mesn l("Item List"); + mes l("@@/50 @@", countitem(Acorn), getitemlink(Acorn)); + mes l("@@/20 @@", countitem(ChocolateMouboo), getitemlink(ChocolateMouboo)); + mes l("@@/40 @@", countitem(ChocolateBar), getitemlink(ChocolateBar)); + mes l("@@/15 @@", countitem(Candy), getitemlink(Candy)); + mes l("@@/15 @@", countitem(OrangeCupcake), getitemlink(OrangeCupcake)); + mes l("@@/10 @@", countitem(CherryCake), getitemlink(CherryCake)); + mes l("@@/5 @@", countitem(GingerBreadMan), getitemlink(GingerBreadMan)); + mes l("@@/2 @@", countitem(ChocolateBiscuit), getitemlink(ChocolateBiscuit)); + /* We can't ask for THAT many! + mes l("@@/20 @@", countitem(ApanaCake), getitemlink(ApanaCake)); + mes l("@@/20 @@", countitem(Mashmallow), getitemlink(Mashmallow)); + mes l("@@/20 @@", countitem(TonoriDelight), getitemlink(TonoriDelight)); + mes l("@@/20 @@", countitem(EasterEgg), getitemlink(EasterEgg)); + mes l("@@/20 @@", countitem(ChocolateBunny), getitemlink(ChocolateBunny)); + mes l("@@/20 @@", countitem(FrozenYetiTear), getitemlink(FrozenYetiTear)); + mes l("@@/20 @@", countitem(DeliciousCookie), getitemlink(DeliciousCookie)); + */ + setq HurnscaldQuest_TeaParty, 1; + close; + +L_TeaCheck: + mesn l("Item List"); + mes l("@@/50 @@", countitem(Acorn), getitemlink(Acorn)); + mes l("@@/20 @@", countitem(ChocolateMouboo), getitemlink(ChocolateMouboo)); + mes l("@@/40 @@", countitem(ChocolateBar), getitemlink(ChocolateBar)); + mes l("@@/15 @@", countitem(Candy), getitemlink(Candy)); + mes l("@@/15 @@", countitem(OrangeCupcake), getitemlink(OrangeCupcake)); + mes l("@@/10 @@", countitem(CherryCake), getitemlink(CherryCake)); + mes l("@@/5 @@", countitem(GingerBreadMan), getitemlink(GingerBreadMan)); + mes l("@@/2 @@", countitem(ChocolateBiscuit), getitemlink(ChocolateBiscuit)); + next; + select + l("I will be back shortly."), + l("I have all."); + mes ""; + + if (@menu == 1) { + closedialog; + goodbye; + close; + } + if (countitem(Acorn) < 50 || + countitem(ChocolateMouboo) < 20 || + countitem(ChocolateBar) < 40 || + countitem(Candy) < 15 || + countitem(OrangeCupcake) < 15 || + countitem(CherryCake) < 10 || + countitem(GingerBreadMan) < 5 || + countitem(ChocolateBiscuit) < 2) + goto L_Lying; + + inventoryplace CelestiaTea, 3; + + delitem Acorn, 50; + delitem ChocolateMouboo, 20; + delitem ChocolateBar, 40; + delitem Candy, 15; + delitem OrangeCupcake, 15; + delitem CherryCake, 10; + delitem GingerBreadMan, 5; + delitem ChocolateBiscuit, 2; + + getexp rand(13500, 14500), 0; // level exp cap: 15,775 + getitem CelestiaTea, 3; + setq HurnscaldQuest_TeaParty, 2, gettimetick(2); + + mes ""; + mesn; + mesq l("Many thanks! I'll arrange the table."); + close; + +L_Lying: + mesn; + mesq l("Wha- How dare you, to lie to me!"); + // She'll try to drain all your MP. If you're not MP Full, you'll die. And will have EXP penalty, of course. + if (Sp == MaxSp) + percentheal 0, -100; + else + die(); + close; + +// begin: Gumi Script +L_TeaParty: + .@q2=getq2(HurnscaldQuest_TeaParty); + mes ""; + mesn; + mesq l("Wonderful, I am happy to have you over. Lets get things started with some puerh tea."); + next; + mesc l("Celestia hands you a cup filled with some type of tea that is unlike anything you have seen before."); + mesc l("It has a very dark color and an unusual aroma reminiscent of a moist forest."); + next; + mesc l("For a moment you wonder if Celestia might have gotten confused and tossed in a handful of forest dirt into the teapot."); + mesc l("You ponder whether or not it would be wise to drink it."); + menu + l("Uh are you sure this is fit to drink?"), L_QuestionTea, + l("(Drink the tea, hoping for the best)"), L_DrinkTea; + +L_DrinkTea: + if (.@q2 < gettimetick(2)) { + percentheal 0, 100; + setq2 HurnscaldQuest_TeaParty, gettimetick(2)+180; + } + mesc l("To your pleasant surprise the tea is actually quite good."); + next; + mesc l("Despite its initial dubious fragrance, the tea comes off as very smooth and mellow with a bit of natural sweetness and a touch of an earthy forest like flavor, but in a very good way."); + next; + mesc l("Clearly an exotic tea, with a refined flavor fit for a refined woman such as Celestia."); + close; + +L_QuestionTea: + mesq l("Yes, did you really think I was some kind of monster that would try to poison you in my own house?"); + mes l("##a(it would be way too messy anyway)##0"); + next; + mesc l("Celestia then picks up the cup of tea and drinks it in front of you to demonstrate that it is not only harmless but also quite delectable."); + if (.@q2 < gettimetick(2)) { + getitem CelestiaTea, 1; + setq2 HurnscaldQuest_TeaParty, gettimetick(2)+(60*60*2); + } + close; +// end: Gumi Script + +L_TeaShop: + mesn; + mesq l("Well, my tea is just too good."); + next; + closeclientdialog; + npcshopattach(.name$); + shop .name$; + close; + +L_OtherQuest: + mesn strcharinfo(0); + mesq l("Basically, I need to find a friendly Yeti. Do they exist?"); + next; + mesn; + mesq l("Of course. The adviser of the Yeti King, for instance, is very friendly."); + next; + mesn; + mesq l("But he have lots of enemies... It would not surprise me to find him struck somewhere."); + next; + mesn; + mesq l("He usually guards a central position on the caves... He could help you, if he is there."); + next; + mesn; + mesq l("Otherwise, his enemies might have bested him, but I doubt any Yeti would dare to kill him."); + next; + mesn; + mesq l("Wasn't there something on the Holy Bible? About a young boy trapped by his brothers somewhere because envy?"); + mesc l("If you don't want to look at the Bible, you can try to solve the following riddle:"); + mesc l("\"When you're thirsty, you may look for me. I'm often in desert areas, but this time, the winter has come.\""), 3; + CINDY_PLAYER_STRUCK=false; + next; + clear; + mesn l("Quest Tip"); + mesc l("\"When you're thristy, you may look for me. I'm often in desert areas, but this time, the winter has come.\""), 3; + close; + +// Mirror Lake +L_VaultQuest: + if (##02_MLWORLD & MLP_TMW_CELESTIA) { + mesn; + mesq l("Yes, try to summon the Yeti King in Tulimshar Sewers. Make sure you have someone else with you to help."); + close; + } + mesn; + mesq l("While I don't think the Yeti King would ever do or endorse that, yes, I've heard this happens."); + next; + select + l("Wait, Yeti's have a king?"), + l("I thought they ate little girls."), + l("Haha, as if I believe you."); + mes ""; + if (@menu == 3) close; + if (@menu == 2) { + mesn; + mesq l("What? Don't be ridiculous. Not even the Monster King does that! I think."); + next; + mesn; + mesq l("In other words, I never heard of a Yeti eating a kid before. They prefer %s.", getitemlink(MoubooSteak)); + next; + } if (@menu == 1) { + // Player already know that ¬.¬ + if (getq(HurnscaldQuest_Celestia) != 0) { + mesn; + mesq l("Are you trying to provoke me?"); + close; + } + mesn; + mesq l("You see, most people think that all monsters are controlled by the Monster King, but that's not quite right."); + next; + mesn; + mesq l("Some are just living their own lives. In special, I've spent part of my life studying the Yeti Society."); + next; + mesn; + mesq l("And guess what? They have a King of their own!"); + next; + } + mesn; + mesq l("Anyway, why do you ask? Surely not to waste my time."); + next; + select + l("[Explain the situation]"), + l("[Make up a lie]"); + mes ""; + mesn; + mesq l("...Okay, I asked you to explain, and you ended up wasting my time instead. %%n"); + next; + mesn; + mesq l("Listen, I was trying to get the Yeti King to help me to fight the Monster King. If you want to go there and do it, be my guest; Maybe they'll even help you with whatever your problem is."); + if (countitem(MirrorLakeArmor)) + mesc l("PS. This char will be reset on logout."); + next; + select + l("Sure, I'll help."), + l("No way!"); + if (@menu == 2) close; + mes ""; + mesn; + mesq l("Alright. Listen, you'll need %s to summon it, and you cannot be alone. I only have so much of that to share, so be careful to don't use all.", getitemlink(EverburnPowder)); + next; + if (countitem(MirrorLakeArmor)) { + mesn; + mesq l("Your weird robes; They seem like they'll deny your damage, so you definitely want to summon multiple people to help. Try the #world tab."); + next; + } + mesn; + mesq l("There's a summoning circle on Tulimshar Sewers. You can reach either by boat, if you have the money - I'll lend you some; Or by the long way."); + next; + mesn; + mesq l("Go very close to it and, speak the four four-letters magic words, pour some @@, and he'll appear to you.", getitemlink(EverburnPowder)); + next; + mesn; + mesq l("Don't go alone, though! He would not listen to me, it is not you alone he'll pay attention. You will lose reagents!"); + next; + ##02_MLWORLD=##02_MLWORLD|MLP_TMW_CELESTIA; + Zeny+=410; + getitembound(EverburnPowder, 5, 4); + setq HurnscaldQuest_Celestia, 1; + @YetiKing_Challenger=0; + mesq l("The chant is ##B EMOC OTEM ITEY GNIK ##b. Good luck!"); + close; + +OnInit: + .@npcId = getnpcid(.name$); + setunitdata(.@npcId, UDT_HEADTOP, MurdererCrown); + setunitdata(.@npcId, UDT_HEADMIDDLE, ValentineDress); + setunitdata(.@npcId, UDT_HEADBOTTOM, NPCEyes); + setunitdata(.@npcId, UDT_WEAPON, DeepBlackBoots); // Boots + setunitdata(.@npcId, UDT_HAIRSTYLE, 19); + setunitdata(.@npcId, UDT_HAIRCOLOR, 10); + + npcsit; + + .sex = G_FEMALE; + .distance = 5; + + tradertype(NST_MARKET); + sellitem CelestiaTea, -1, 1; + sellitem YerbaMate, -1, 2; + sellitem JasmineTea, -1, 3; + sellitem OolongTea, -1, 4; + sellitem SpearmintTea, -1, 5; + sellitem ChamomileTea, -1, 10; + end; + +OnClock0002: + restoreshopitem CelestiaTea, 1; + restoreshopitem YerbaMate, 2; + restoreshopitem JasmineTea, 3; + restoreshopitem OolongTea, 4; + restoreshopitem SpearmintTea, 5; + restoreshopitem ChamomileTea, 10; + end; + + +// Pay your taxes! +OnBuyItem: + debugmes("Purchase confirmed"); + PurchaseTaxes(); + end; + +OnSellItem: + debugmes("Sale confirmed"); + SaleTaxes(); + end; + +} diff --git a/npc/012-7/politics.txt b/npc/012-7/politics.txt new file mode 100644 index 0000000..7d9a0bb --- /dev/null +++ b/npc/012-7/politics.txt @@ -0,0 +1,58 @@ +// TMW2 Scripts +// Author: +// Jesusalva +// Description: +// Town Administrator file, see npc/functions/politics.txt +// User variables: +// #POL_APPLYWEEK = Week of last application +// #POL_VOTEDAY = Day of last vote + +012-7,51,60,0 script Hurnscald Office NPC_POLITICS,{ +do +{ + mesc ".:: "+l("Hurnscald Townhall")+" ::.", 2; + mesc l("Current Town Administrator: ")+$HURNS_MAYOR$, 3; + POL_TownInfo("HURNS"); + mesc l("Application fee: @@ GP", .applytax); + next; + select + l("Information"), + rif(strcharinfo(0) == $HURNS_MAYOR$, l("Manage Town")), + rif(#POL_APPLYWEEK != gettimeparam(GETTIME_WEEKDAY), l("Apply for the office!")), + l("View Candidate List and cast a vote"), + l("[Quit]"); + + switch (@menu) { + case 1: + POL_Information(); + break; + case 2: + POL_Manage("HURNS"); + break; + case 3: + // array_push might be too sensible for getd/setd + if (Zeny < .applytax) + break; + Zeny-=.applytax; + $HURNS_MONEY+=.applytax; + #POL_APPLYWEEK=gettimeparam(GETTIME_WEEKDAY); + array_push($HURNS_CANDIDATE$, strcharinfo(0)); + array_push($HURNS_VOTES, 0); + mesc l("Application successful!"), 3; + next; + break; + case 4: + POL_Candidate("HURNS"); + break; + default: + close; + } +} while (true); +end; + +OnInit: + .applytax=100; + .distance=4; + end; +} + diff --git a/npc/012-7/slots.txt b/npc/012-7/slots.txt new file mode 100644 index 0000000..3a37c0a --- /dev/null +++ b/npc/012-7/slots.txt @@ -0,0 +1,97 @@ +// TMW2 Scripts +// Author: +// Jesusalva, Saulc +// Description: +// Slot Machine for bets in Hurnscald +// Rare Reward: Paper Bag + +012-7,53,31,0 script Slot Machine#012-7a NPC_SLOTMACHINE,{ + function symbol { + switch (getarg(0)) { + case 1: + mesn "%%A"; + break; + case 2: + mesn "%%B"; + break; + case 3: + mesn "%%C"; + break; + case 4: + mesn "%%D"; + break; + case 5: + mesn "%%E"; + break; + case 6: + mesn "%%F"; + break; + case 7: + mesn "7"; + break; + case 8: + mesn "%%8"; + break; + default: + mesn "%%@"; + break; + } + return; + } + +L_Menu: + mesn; + mesc l("Spin three symbols, and jackpot great rewards!"); + mesc l("Just one coin for spin."); + next; + menu + rif(countitem(CasinoCoins) >= 1, l("Spin!")), L_Spin, + l("Prizes"), L_Info, + l("Leave"), -; + close; + +L_Info: + mes ""; + mesc l("Prizes:"); + mes l("##9 777: @@.", getitemlink(PaperBag)); + mesc l("Three equal: @@.", "20 casino coins"); + mesc l("Two equal: 1 casino coin."); + next; + goto L_Menu; + + +L_Spin: + mesc l("Spinning..."); + next; + delitem CasinoCoins, 1; + .@a=rand2(1,8); + .@b=rand2(1,8); + .@c=rand2(1,8); + symbol(.@a); + symbol(.@b); + symbol(.@c); + next; + mesn; + if (.@a == .@b && .@a == .@c && .@a == 7) { + getitem PaperBag, 1; + mesc l("Jackpot! You got the Paper Bag!"), 3; + } else if (.@a == .@b && .@a == .@c) { + getitem CasinoCoins, 20; + mesc l("Congrats! A pity it was not 777..."), 3; + } else if (.@a == .@b || .@a == .@c || .@b == .@c) { + getitem CasinoCoins, 1; + mesc l("Lucky! You got the coin back!"), 3; + } else { + mesc l("It wasn't this time..."), 3; + } + next; + goto L_Menu; + +OnInit: + .sex = G_OTHER; + .distance = 4; + end; + + +} + |