020-2,34,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,37,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; }