From cf18ce071c79ae37e14ea38943e0b1d88da70a7b Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Fri, 9 Apr 2021 13:33:57 -0300 Subject: Override --- npc/020-2/furquest.txt | 646 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 646 insertions(+) create mode 100755 npc/020-2/furquest.txt (limited to 'npc/020-2/furquest.txt') diff --git a/npc/020-2/furquest.txt b/npc/020-2/furquest.txt new file mode 100755 index 00000000..23847336 --- /dev/null +++ b/npc/020-2/furquest.txt @@ -0,0 +1,646 @@ + +020-2,24,26,0 script Agostine Debug NPC137,{ + mes "[Agostine Debug]"; + mes "What do you want to do?"; + menu + "Show Quest State", L_ShowState, + "Set Quest State", L_SetState, + "Reset", L_Reset, + "Nothing.", L_close; + +L_ShowState: + @wg_state = ((QUEST_WG_state & BYTE_0_MASK) >> BYTE_0_SHIFT); + mes "Current State is " + @wg_state; + goto L_close; + +L_SetState: + mes "What state do you want?"; + input @wg_state; + callfunc "setWGState"; + mes "Set to " + @wg_state; + goto L_close; + +L_Reset: + @wg_state = 0; + callfunc "setWGState"; + mes "Reset!"; + goto L_close; + +L_close: + close; + +OnInit: + if (!debug) + disablenpc "Agostine Debug"; + end; +} +020-2,27,26,0 script Agostine NPC137,{ + @CUTFUR_EXP = 10; + @FINEDRESS_COTTON_CLOTHS = 20; + @FINEDRESS_GP = 20000; + @wg_state = ((QUEST_WG_state & BYTE_0_MASK) >> BYTE_0_SHIFT); + + + if (@wg_state == 1) goto L_State_0_3; + if (@wg_state == 2) goto L_State_1; + if (@wg_state == 3) goto L_State_2; + if (@wg_state == 4) goto L_State_4; + if (@wg_state == 5) goto L_State_4_success; + if (@wg_state == 6) goto L_State_6; + if (@wg_state == 7) goto L_State_11; + if (@wg_state == 8) goto L_State_12; + if (@wg_state >= 9 && @wg_state < 11) goto L_State_13; + if (@wg_state == 11) goto L_State_14; + if (@wg_state == 12) goto L_State_14_AA; + if (@wg_state == 13) goto L_State_15; + if (@wg_state > 13 && @wg_state < 16) goto L_State_15_Repeat; + if (@wg_state == 16) goto L_State_16; + if (@wg_state > 16 && @wg_state < 20) goto L_State_16_Repeat; + if (@wg_state == 20) goto L_State_17; + if (@wg_state == 21) goto L_State_17_AskItems; + if (@wg_state == 22) goto L_State_17_PBD; + if (@wg_state >= 23) goto L_State_18; + + mes "\"This goes up, this goes left...\""; + next; + mes "\"Mmmm...?\""; + next; + mes "[Agostine, The Legendary Tailor]"; + mes "\"Oh, a customer! Let me introduce myself! My name is Agostine!"; + mes "Some people say that I am the best tailor in the world,"; + mes "but I think I am the best one in the universe!"; + mes "So, What can I do for you, my friend?\""; + next; + menu + "I want something new for my wardrobe!", L_State_0_1, + "Oh, nothing, thanks!", L_close; + + +L_State_0_1: + mes "[Agostine, The Legendary Tailor]"; + mes "\"Well.. you know... working so hard makes me so tired!"; + mes "Can you bring me something tasty to drink, my friend?\""; + next; + menu + "Sure, what kind of drink you like?", L_State_0_2, + "I'm not your waiter!", L_close; + +L_State_0_2: + mes "[Agostine, The Legendary Tailor]"; + mes "\"Here we do not have a bar. Let me taste different beverages."; + mes "I want something new to drink.\""; + next; + menu + "I'll bring you different drinks to try!", L_State_Accept, + "Maybe a bar will open soon, wait for it.", L_close; + +L_State_Accept: + mes "[Agostine, The Legendary Tailor]"; + mes "\"Thanks so much.\""; + @wg_state = 1; + callfunc "setWGState"; + goto L_close; + +L_State_0_3: + mes "[Agostine, The Legendary Tailor]"; + mes "\"Well, what have you brought me?\""; + next; + menu + "A Cactus Drink.", L_State_0_4, + "A Cactus Potion.", L_State_0_5, + "Some milk.", L_State_0_6, + "A pint of beer.", L_State_0_7, + "An Iron potion.", L_State_0_9, + "A Concentration Potion.", L_State_0_8, + "Nothing, at the moment.", L_close; + +L_State_0_4: + mes "[Agostine, The Legendary Tailor]"; + mes "\"So, a Cactus Drink?\""; + if (countitem("CactusDrink") < 1) goto L_State_neg; + delitem "CactusDrink", 1; + goto L_State_bad; + +L_State_0_5: + mes "[Agostine, The Legendary Tailor]"; + mes "\"So, a Cactus Potion?\""; + if (countitem("CactusPotion") < 1) goto L_State_neg; + delitem "CactusPotion", 1; + goto L_State_bad; + +L_State_0_6: + mes "[Agostine, The Legendary Tailor]"; + mes "\"So, some milk for me?\""; + if (countitem("Milk") < 1) goto L_State_neg; + delitem "Milk", 1; + goto L_State_bad; + +L_State_0_7: + mes "[Agostine, The Legendary Tailor]"; + mes "\"So, a beer?\""; + if (countitem("Beer") < 1) goto L_State_neg; + delitem "Beer", 1; + goto L_State_bad; + +L_State_0_8: + mes "[Agostine, The Legendary Tailor]"; + mes "\"So, a Concentration Potion?\""; + if (countitem("ConcentrationPotion") < 1) goto L_State_neg; + delitem "ConcentrationPotion", 1; + goto L_State_bad; + +L_State_0_9: + mes "[Agostine, The Legendary Tailor]"; + mes "\"So, an Iron Potion?\""; + if (countitem("IronPotion") < 1) goto L_State_neg; + delitem "IronPotion", 1; + next; + mes "Agostine looks pleased as he drinks the potion."; + next; + mes "[Agostine, The Legendary Tailor]"; + mes "\"Oh! This is damn good! I feel a new man, my friend!\""; + next; + Zeny = Zeny + 500; + mes "[Agostine, The Legendary Tailor]"; + mes "\"This is a little reward for your help. Take 500 GP, my friend!\""; + @wg_state = 2; + callfunc "setWGState"; + goto L_close; + +L_State_neg: + next; + mes "\"Seems that you lied. You don't have the drink you told me.\""; + goto L_close; + +L_State_bad: + next; + mes "\"Well, I don't like it so much. Bring me something else.\""; + goto L_close; + + +L_State_1: + mes "[Agostine, The Legendary Tailor]"; + mes "\"Mmmm... Let me see... This year light colours are fashionable!"; + mes "Would you like a pair of snow-white Winter Gloves?\""; + next; + menu + "No, thanks. I love dark clothes...", L_close, + "You really can do this for me?", L_State_2; + +L_State_2: + mes "[Agostine, The Legendary Tailor]"; + mes "\"Well, Winter Gloves are so fashionable for their lovable fur!"; + mes "Only the best furs can be used for these gloves!"; + mes "But, as you see, I am a tailor, not a hunter! So, why don't you bring me the best fluffy's fur you can find?\""; + @wg_state = 3; + callfunc "setWGState"; + next; + menu + "You are crazy! I won't kill any animal for this!", L_close, + "Sure, I will be back soon!", L_State_3; + +L_State_3: + mes "[Agostine, The Legendary Tailor]"; + mes "\"Remember, I want the best of fur!\""; + @wg_state = 4; + callfunc "setWGState"; + goto L_close; + +L_State_4: + mes "[Agostine, The Legendary Tailor]"; + mes "\"Oh, my friend! Have you brought me some good furs?\""; + if (countitem("WhiteFur") < 1) goto L_close; + next; + menu + "Here, take a look!", L_State_4_try, + "Yes, but I need it for something else.", L_close; + +L_State_4_try: + mes "[Agostine, The Legendary Tailor]"; + mes "\"Let me see, my friend! It needs to be perfect for my gloves!\""; + mes "Agostine examines the patch of fur."; + next; + if (countitem("WhiteFur") < 1) goto L_No_Fur; + delitem "WhiteFur", 1; + @Temp1 = rand(30); + if (@Temp1 == 0) goto L_State_4_success; + mes "Agostine throws away the white fur."; + getexp @CUTFUR_EXP, 0; + next; + mes "[Agostine, The Legendary Tailor]"; + mes "\"It was awfully cut! You should pay more attention when you kill fluffies!\""; + if (countitem("WhiteFur") < 1) goto L_close; + next; + menu + "Here I have another one!", L_State_4_try, + "Sorry, I will be careful...", L_close; + +L_State_4_success: + mes "Agostine breaks into a smile"; + next; + mes "[Agostine, The Legendary Tailor]"; + mes "\"It's perfect! Perfect! Good job, my friend! I will prepare your gloves right now!\""; + next; + @wg_state = 5; + callfunc "setWGState"; + goto L_State_5; + +L_State_5: + mes "[Agostine, The Legendary Tailor]"; + mes "\"Ehm, my friend, my work is not free. I need 15,000 GP for the work.\""; + next; + menu + "You are not a tailor, you are a thief!!", L_close, + "I think it's a reasonable price...", L_State_5_pay; + +L_State_5_pay: + if (Zeny < 15000) goto L_State_5_nocash; + getinventorylist; + if (@inventorylist_count == 100) goto L_TooMany; + Zeny = Zeny - 15000; + getitem "WinterGloves", 1; + @wg_state = 6; + callfunc "setWGState"; + mes "[Agostine, The Legendary Tailor]"; + mes "\"Here they are. You will have the most fashionable hands in the world!\""; + goto L_close; + +L_State_5_nocash: + mes "[Agostine, The Legendary Tailor]"; + mes "\"Seems like you are out of cash. Come back when you have the money.\""; + goto L_close; + +L_State_6: + mes "[Agostine, The Legendary Tailor]"; + mes "\"Oh, I remember you! Your gloves are sooo fashionable, my friend!"; + mes "Well, I have a good news for you. In this issue of 'TMW Fashion'"; + mes "I saw a pretty accessory, a pair of Furry Boots, my friend."; + mes "I can make your own pair, if you want!\""; + next; + menu + "It's a great idea!", L_State_10, + "I'm glamourous enough, thanks", L_close; + +L_State_10: + mes "[Agostine, The Legendary Tailor]"; + mes "\"Perfect! For satisfying your request I need another perfect White Fur"; + mes "and a pair of Boots, like those you can find in the mines."; + mes "They will make you lovely, my friend!\""; + @wg_state = 7; + callfunc "setWGState"; + goto L_close; + +L_State_11: + mes "[Agostine, The Legendary Tailor]"; + mes "\"So, my friend, have you brought me the right Fur?\""; + if (countitem("WhiteFur") < 1) goto L_close; + next; + menu + "Sure, I'm a fluffy hunter!", L_State_11_try, + "Not yet, sorry.", L_close; + +L_State_11_try: + mes "[Agostine, The Legendary Tailor]"; + mes "\"I'd rather see the patch of fur, first.\""; + next; + mes "Agostine examines the patch of fur."; + next; + if (countitem("WhiteFur") < 1) goto L_No_Fur; + delitem "WhiteFur", 1; + @Temp2 = rand(30); + if (@Temp2 == 0) goto L_State_11_success; + mes "Agostine rips the white fur."; + getexp @CUTFUR_EXP, 0; + next; + mes "[Agostine, The Legendary Tailor]"; + mes "\"That fur was terrible. I won't work with it!\""; + if (countitem("WhiteFur") < 1) goto L_close; + next; + menu + "Well, maybe this is better!", L_State_11_try, + "I will hunt other fluffies...", L_close; + +L_State_11_success: + mes "Agostine breaks into a smile"; + next; + mes "[Agostine, The Legendary Tailor]"; + mes "\"This one is good enough, my friend. Good job.\""; + @wg_state = 8; + callfunc "setWGState"; + goto L_State_12; + +L_State_12: + mes "[Agostine, The Legendary Tailor]"; + mes "\"I need also a pair of Boots for the work."; + mes "And my payment, obviously. 15,000 GP is right.\""; + next; + menu + "Sure, here it all is.", L_State_12_pay, + "I missed something, I will be back soon!", L_close; + +L_State_12_pay: + if (Zeny < 15000) goto L_State_12_missing; + if (countitem("Boots") < 1) goto L_State_12_missing; + // No inventory check needed, as boots are removed, opening a slot + Zeny = Zeny - 15000; + delitem "Boots", 1; + getitem "FurBoots", 1; + @wg_state = 9; + callfunc "setWGState"; + mes "[Agostine, The Legendary Tailor]"; + mes "\"Enjoy your new boots, my friend!\""; + goto L_close; + +L_State_12_missing: + mes "[Agostine, The Legendary Tailor]"; + mes "\"Seems you have forgotten something. Check your inventory"; + mes "and your pockets!\""; + goto L_close; + +L_State_13: + mes "[Agostine, The Legendary Tailor]"; + mes "\"You are so glamourous, my dear friend!"; + mes "I have done a very good job on your clothes!\""; + goto L_close; + +L_TooMany: + mes "[Agostine, The Legendary Tailor]"; + mes "\"You don't have anywhere to put them. Come back when you do.\""; + goto L_close; + +L_No_Fur: + mes "[Agostine, The Legendary Tailor]"; + mes "\"You don't have any white fur! Stop talking nonsense.\""; + goto L_close; + +L_State_14: + if (BaseLevel < 60) + goto L_State_13; + mes "[Agostine, The Legendary Tailor]"; + mes "\"You are so glamourous, my dear friend!"; + mes "I have done a very good job on your clothes... But...\""; + next; + + menu + "But?", L_Next; + +L_Next: + mes "[Agostine, The Legendary Tailor]"; + mes "\"There is a new fashion I've been dying to try out!"; + mes "But I don't have all the knowledge in the world about seaming this wonderful fashion.\""; + next; + + menu + "Ah, that's too bad...", L_close, + "I know another tailor who might know!", L_Next1; + +L_Next1: + mes "[Agostine, The Legendary Tailor]"; + mes "\"What tailor may that be?"; + mes "I haven't been out of Nivalis for quite some time since I have been busy with clothes for the people of the town."; + mes "If you can tell me the name of this great tailor, maybe we can work something out, like a collaboration!\""; + next; + + menu + "Well... There is a tailor in Dimond's Cove who makes pretty good clothing. Her name is Lora Tay.", L_Next2; + +L_Next2: + mes "[Agostine, The Legendary Tailor]"; + mes "\"I had almost forgotten about Lora Tay."; + mes "She has tried to put me out of business a few times long ago."; + mes "But I am willing to collaborate with her to make this fine fashion come alive."; + mes "Will you go ask her if she is willing to help sew and seam this fashion I will create?\""; + + menu + "Sure thing! Be back soon.", L_State_14_Accept, + "It will never happen. I won't waste my time.", L_close; + +L_State_14_Accept: + @wg_state = 12; + callfunc "setWGState"; + goto L_close; + +L_State_14_AA: + mes "[Agostine, The Legendary Tailor]"; + mes "\"Please my friend, go talk to Lora Tay about our possible collaboration!\""; + goto L_close; + +L_State_15: + mes "[Agostine, The Legendary Tailor]"; + mes "\"Hi there fashionable friend, have you talked to Lora Tay about my request?\""; + next; + menu + "Yes, but she would like to know more information about it and I'm kind of curious myself.", L_Next3, + "I haven't yet, sorry.", L_close; + +L_Next3: + mes "[Agostine, The Legendary Tailor]"; + mes "\"Well I had a dream of a woman in a beautiful dress I would like to recreate from my dream..."; + mes "But the thing is I have never sewn a dress this fabulous in my life!"; + mes "This is why I wanted an experienced tailor to help me with it.\""; + next; + + menu + "You must be thinking of fashion a lot if it's in your dreams! I shall bring this information to Lora Tay.", L_Next4, + "You're obsessed, I cant help you.", L_close; + +L_Next4: + mes "[Agostine, The Legendary Tailor]"; + mes "\"Please take these materials with you to show Lora Tay the kind of vision I have!"; + mes "These are the finest materials in my whole house and have been saving them for something special such as this.\""; + next; + + message strcharinfo(0), "Agostine gives you bundles of luxurious cloth that you carefully put in your backpack."; + mes "Agostine gives you bundles of luxurious cloth that you carefully put in your backpack."; + next; + + mes "[Agostine, The Legendary Tailor]"; + mes "\"Hurry back my friend!\""; + + @wg_state = 14; + callfunc "setWGState"; + + goto L_close; + +L_State_15_Repeat: + mes "[Agostine, The Legendary Tailor]"; + mes "\"Please take these materials with you to show Lora Tay the kind of vision I have!"; + mes "Hurry back my friend!\""; + goto L_close; + +L_State_16: + mes "[Agostine, The Legendary Tailor]"; + mes "\"Hello there! Did you tell Lora Tay about the type of fashion I was hoping to create?\""; + next; + + menu + "Yes, she is also working on threading to sew the materials together.", L_Next5, + "Why would I do that for?", L_close; + +L_Next5: + mes "[Agostine, The Legendary Tailor]"; + mes "\"Wow she did not only accept but she is willing to sew these materials for me?"; + mes "This is amazing... I was quite worried I would ruin these fine cloths sewing them myself.\""; + next; + + mes "[Agostine, The Legendary Tailor]"; + mes "\"Is there anything I can do in the meanwhile?\""; + next; + menu + "Actually she wanted the design drawings to know what it should look like.", L_Next6; + +L_Next6: + mes "[Agostine, The Legendary Tailor]"; + mes "\"Of course! How could I forget, I drew the designs right after the dream I had."; + mes "Please take these to Lora Tay and ask her to try and make it as close as she can.\""; + next; + + menu + "Sure thing be back soon!", L_Next7, + "... I'll take a nap first.", L_close; + +L_Next7: + @wg_state = 17; + callfunc "setWGState"; + + message strcharinfo(0), "Agostine gives you a folio containing his designs, that you put in a hidden compartment in your backpack."; + mes "Agostine gives you a folio containing his designs, that you put in a hidden compartment in your backpack."; + + goto L_close; + +L_State_16_Repeat: + mes "[Agostine, The Legendary Tailor]"; + mes "\"Please my friend, bring my designs to Lora Tay.\""; + goto L_close; + +L_State_17: + mes "[Agostine, The Legendary Tailor]"; + mes "\"Wow is that the dress?"; + mes "It looks fabulous...\""; + next; + mes "[Agostine, The Legendary Tailor]"; + mes "\"But I do notice it is missing something from my design.\""; + next; + + menu + "Lora Tay mentioned the bottom has to be edged with cotton cloths but she cannot do the design you wanted.", L_Next8; + +L_Next8: + mes "[Agostine, The Legendary Tailor]"; + mes "\"That's fine. I will finish it with the cloth but it seems I don't have anymore around...\""; + next; + + goto L_State_17_AskItems; + +L_State_17_AskItems: + mes "[Agostine, The Legendary Tailor]"; + mes "\"I will need about " + @FINEDRESS_COTTON_CLOTHS + " cotton cloths to finish this master piece. Do you think you can get some for me?\""; + next; + + menu + "Sure thing, I will go get them!", L_Next9, + "Here you are!", L_State_17_GiveItems; + +L_Next9: + @wg_state = 21; + callfunc "setWGState"; + goto L_close; + +L_State_17_NoItems: + mes "[Agostine, The Legendary Tailor]"; + mes "\"My friend, sorry to disappoint you, but you are lacking some cloth."; + mes "I need exactly " + @FINEDRESS_COTTON_CLOTHS + " cotton cloths to finish this master piece.\""; + goto L_close; + +L_State_17_GiveItems: + if (countitem ("CottonCloth") < @FINEDRESS_COTTON_CLOTHS) + goto L_State_17_NoItems; + delitem "CottonCloth", @FINEDRESS_COTTON_CLOTHS; + @wg_state = 22; + callfunc "setWGState"; + + mes "[Agostine, The Legendary Tailor]"; + mes "\"Great now just a little cloth here........\""; + next; + mes "............................"; + next; + mes "..................."; + next; + mes ".............."; + next; + mes "[Agostine, The Legendary Tailor]"; + mes "\"It's finished!"; + mes "The finest dress in my design is finally finished!\""; + next; + mes "[Agostine, The Legendary Tailor]"; + mes "\"I don't know how I can repay you for all your hard work...\""; + next; + + mes "[Agostine, The Legendary Tailor]"; + mes "\"Hmmm I know something that will be good for you and for myself!\""; + next; + + menu + "What is it?", L_Next10; + +L_Next10: + mes "[Agostine, The Legendary Tailor]"; + mes "\"How about I let you buy the dress off me?"; + mes "This will allow you to have a fine dress and allow me to show the world what I'm capable of."; + mes "I would charge " + @FINEDRESS_GP +" GP, which I think is a magnificent price for something this fine.\""; + next; + + goto L_State_17_BuyDress; + +L_State_17_PBD: + mes "[Agostine, The Legendary Tailor]"; + mes "\"Did you consider buying the dress off me?"; + mes "I would charge " + @FINEDRESS_GP +" GP, which I think is a magnificent price for something this fine.\""; + next; + + goto L_State_17_BuyDress; + +L_State_17_BuyDress: + menu + "Wow that sounds great I'll take it!", L_Next11, + "I'll think about it...", L_close; + +L_Next11: + if (Zeny < @FINEDRESS_GP) + goto L_State_17_NoMoney; + getinventorylist; + if (@inventorylist_count == 100) + goto L_State_17_InvFull; + + Zeny = Zeny - @FINEDRESS_GP; + getitem "FineDress", 1; + @wg_state = 23; + callfunc "setWGState"; + goto L_close; + +L_State_17_NoMoney: + mes "[Agostine, The Legendary Tailor]"; + mes "\"Check your pockets my friend,"; + mes "and come back when you have the money.\""; + goto L_close; + +L_State_17_InvFull: + mes "[Agostine, The Legendary Tailor]"; + mes "\"My friend, you don't have room to carry my master piece. Come back when you do.\""; + goto L_close; + +L_State_18: + // Same dialog as on state 13, but we could add something about the dress + mes "[Agostine, The Legendary Tailor]"; + mes "\"You are so glamourous, my dear friend!"; + mes "I have done a very good job on your clothes!\""; + goto L_close; + +L_close: + @wg_state = 0; + close; +} +function script setWGState { + QUEST_WG_state = (QUEST_WG_state & ~(BYTE_0_MASK) | (@wg_state << BYTE_0_SHIFT)); + return; +} -- cgit v1.2.3-60-g2f50