diff options
Diffstat (limited to 'npc')
26 files changed, 5513 insertions, 0 deletions
diff --git a/npc/00000SAVE/003-1_stranger.c b/npc/00000SAVE/003-1_stranger.c new file mode 100644 index 000000000..8323756f9 --- /dev/null +++ b/npc/00000SAVE/003-1_stranger.c @@ -0,0 +1,533 @@ +003-1,35,25,0 script Stranger NPC192,{ + @month = 5; + @start_day = 18; + @end_day = 25; + @iRONINGOT = 5; + @PINKANTENNA = 21; + @Exp = 20000; + + if (FLAGS & FLAG_TOWEL_COMPLETED) goto L_Event_Done; + if (gettime(6) != @month) goto L_No_Event; + if (gettime(5) < @start_day) goto L_No_Event; + if (gettime(5) > @end_day) goto L_No_Event; + if ((gettimetick(2)-TUT_var < 6*7*86400) || (BaseLevel < 42 )) //player must be created at least 6 weeks ago and at least level 42 + goto L_No_Event; + if (FLAGS & FLAG_TOWEL_HelpED) goto L_Towel; + + mes "[Stranger]"; + mes "\"Hello, hello! It's great to see you. Maybe you can help me with a little problem I have.\""; + next; + mes "\"I need some materials to repair my spacesh- ahm, it's not important why I need it.\""; + next; + mes "\"Anyway, I'd be really happy if you can give me " + @iRONINGOT + " Iron Ingots and " + @PINKANTENNA + " Pink Antennas.\""; + next; + mes "\"Do you have that for me?\""; + menu + "Yeah, sure.",L_Items, + "No.",L_close; + +L_Items: + if (countitem("IronIngot") < @iRONINGOT) goto L_No_Item; + if (countitem("PinkAntenna") < @PINKANTENNA) goto L_No_Item; + delitem "IronIngot", @iRONINGOT; + delitem "PinkAntenna", @PINKANTENNA; + getexp @Exp, 0; + FLAGS = FLAGS | FLAG_TOWEL_HelpED; + + mes "[Stranger]"; + mes "\"Great! Thank you!\""; + next; + mes "\"I have a lot of work to do now. But before you leave...\""; + next; + goto L_Towel; + +L_Towel: + getinventorylist; + if (@inventorylist_count == 100) goto L_Full_Inv; + mes "[Stranger]"; + mes "\"On May 25th it is a very special day - Towel Day.\""; + next; + mes "\"To celebrate this I'll ask you some questions about my favourite book, The Hitchhiker's Guide to the Galaxy. If you can answer them, I'll give you something very useful.\""; + next; + mes ""; + mes "[Server]"; + mes "The answers might need to have whitespaces."; + mes "If you're using a client which confirms your answer when pressing space, change this setting before continuing."; + mes ""; + next; + mes "[Stranger]"; + mes "\"The first one is easy.\""; + next; + + setarray @easy_questions$, + "What two words are written in big friendly letters on the back cover?", + "What's the name of the paranoid robot?", + "What is the answer to life, the universe and everything?", + "What is the first name of the author of the hitchhikers guide?", + "What is the last name of the author of the hitchhikers guide?", + "Who is the male human protagonist?", + "Who is the female human protagonist?", + "According to the Guide, space is ____?", + "What is the name of the spaceship which was stolen by the president of the universe?", + "How many heads does Zaphod Beeblebrox have?"; + + setarray @easy_answers_amount,2,2,2,2,2,4,4,2,4,2; + + @random = rand(10); + mes "\"" + @easy_questions$[@random] + "\""; + input @answer$; + + if (@easy_answers_amount[@random] < 4) + goto L_Easy_Skip4; + @quizparam$ = "towelanswer0" + @random + "d"; + callfunc "StrangerQuiz"; + if (("###" + @answer$ == @quizanswer$)) + goto L_Right_Answer_Easy; + goto L_Easy_Skip4; + +L_Easy_Skip4: + if (@easy_answers_amount[@random] < 3) + goto L_Easy_Skip3; + @quizparam$ = "towelanswer0" + @random + "c"; + callfunc "StrangerQuiz"; + if (("###" + @answer$ == @quizanswer$)) + goto L_Right_Answer_Easy; + goto L_Easy_Skip3; + +L_Easy_Skip3: + @quizparam$ = "towelanswer0" + @random + "b"; + callfunc "StrangerQuiz"; + if (("###" + @answer$ == @quizanswer$)) + goto L_Right_Answer_Easy; + + @quizparam$ = "towelanswer0" + @random + "a"; + callfunc "StrangerQuiz"; + if (("###" + @answer$ == @quizanswer$)) + goto L_Right_Answer_Easy; + + goto L_Wrong_Answer; + +L_Right_Answer_Easy: + mes "[Stranger]"; + mes "\"You're absolutely right. The next one will be more tricky.\""; + next; + + setarray @medium_questions$, + "What is the name of the rock group claiming to be the loudest band in the universe?", + "What star is near Ford's home planet?", + "Which country does the human protagonist come from?", + "What is the name of the computer on The Heart of Gold?", + "What color is a Babel Fish?", + "What did the bowl of petunias think?", + "What body orifice should a babel fish be inserted in to work properly?", + "What is the name of the super computer?", + "What were the second most intelligent creatures on Earth?", + "What race creates the worst poetry in universe?", + "What is the name of the Vogon home planet?", + "What is the name of the Restaurant at the End of the Universe?"; + + setarray @medium_answers_amount,2,2,2,2,2,3,2,2,4,4,2,2; + + @random = rand(12); + mes "\"" + @medium_questions$[@random] + "\""; + input @answer$; + + if (@medium_answers_amount[@random] < 4) + goto L_Medium_Skip4; + + @quizparam$ = "towelanswer1" + @random + "d"; + callfunc "StrangerQuiz"; + if (("###" + @answer$ == @quizanswer$)) + goto L_Right_Answer_Medium; + goto L_Medium_Skip4; + +L_Medium_Skip4: + if (@medium_answers_amount[@random] < 3) + goto L_Medium_Skip3; + @quizparam$ = "towelanswer1" + @random + "c"; + callfunc "StrangerQuiz"; + if (("###" + @answer$ == @quizanswer$)) + goto L_Right_Answer_Medium; + goto L_Medium_Skip3; + +L_Medium_Skip3: + @quizparam$ = "towelanswer1" + @random + "b"; + callfunc "StrangerQuiz"; + if (("###" + @answer$ == @quizanswer$)) + goto L_Right_Answer_Medium; + + @quizparam$ = "towelanswer1" + @random + "a"; + callfunc "StrangerQuiz"; + if (("###" + @answer$ == @quizanswer$)) + goto L_Right_Answer_Medium; + + goto L_Wrong_Answer; + +L_Right_Answer_Medium: + mes "[Stranger]"; + mes "\"Not bad, not bad. Let's see if you can answer an even more difficult one.\""; + next; + + setarray @hard_questions$, + "Drinking what drink is like having your brain smashed out by a slice of lemon wrapped round a large gold brick?", + "How many pints of beers should you drink before hitchhiking?", + "What initials are carved into Zaphod Beeblebrox's brain?", + "What is Ford Prefect's nickname?", + "Who is responsible for the fjords of Norway?", + "What game is played on earth as a relict of memories to an ancient war?", + "What is the name of the triple-breasted whore from Eroticon VI?", + "Who will insult every living being in the universe, because he is immortal and getting bored?", + "What is the name of the piteous creature that is continually reincarnated and subsequently killed, each time unknowingly, by Arthur Dent?"; + + setarray @hard_answers_amount,4,2,2,2,2,2,2,4,2; + + @random = rand(9); + mes "\"" + @hard_questions$[@random] + "\""; + input @answer$; + + if (@hard_answers_amount[@random] < 4) + goto L_Hard_Skip4; + @quizparam$ = "towelanswer2" + @random + "d"; + callfunc "StrangerQuiz"; + if (("###" + @answer$ == @quizanswer$)) + goto L_Right_Answer_Hard; + goto L_Hard_Skip4; + +L_Hard_Skip4: + if (@hard_answers_amount[@random] < 3) + goto L_Hard_Skip3; + @quizparam$ = "towelanswer2" + @random + "c"; + callfunc "StrangerQuiz"; + if (("###" + @answer$ == @quizanswer$)) + goto L_Right_Answer_Hard; + goto L_Hard_Skip3; + +L_Hard_Skip3: + @quizparam$ = "towelanswer2" + @random + "b"; + callfunc "StrangerQuiz"; + if (("###" + @answer$ == @quizanswer$)) + goto L_Right_Answer_Hard; + + @quizparam$ = "towelanswer2" + @random + "a"; + callfunc "StrangerQuiz"; + if (("###" + @answer$ == @quizanswer$)) + goto L_Right_Answer_Hard; + + goto L_Wrong_Answer; + +L_Right_Answer_Hard: + mes "[Stranger]"; + mes "\"Unbelievable! You're really a wise person.\""; + next; + mes "\"One last question, but this shouldn't be a problem for you.\""; + next; + mes "\"What is the most important item for every hitchhiker to have?\""; + input @answer$; + if (@answer$ != "Towel" && @answer$ != "towel") + goto L_Wrong_Answer; + + mes "[Stranger]"; + mes "\"There you are! A towel is really the most important item for a hitchhiker to have.\""; + next; + mes "\"Please take this.\""; // no full inventory check, this is done before the game + getitem "HitchhikersTowel", 1; + FLAGS = FLAGS | FLAG_TOWEL_COMPLETED; + next; + goto L_Explain; + +L_Explain: + mes "[Stranger]"; + mes "\"This towel is even more useful than usual towels are. If you change its color, it uses a special techno-, ahm, let's say, it can help you to get to other places.\""; + next; + mes "\"Bring me some powder made from gemstones and a bottle of water, and I can prepare it for you.\""; + next; + mes "\"Depending on the color it will bring you to different places. It might wear out after a while and it'll loose its color, but I can prepare it for you again.\""; + next; + mes "\"Since I'm not familar with this plane-, ahm, with this area, I can't tell which places you will end up in.\""; + goto L_close; + +L_No_Event: + mes "[Stranger]"; + mes "\"Hello. Isn't this a beautiful place?\""; + next; + mes "\"And it really comes in handy that I have my towel with me. A towel is about the most massively useful thing an inte- ahm, a person can have.\""; + next; + mes "\"You can read more about that in my favourite book, 'The Hitchhiker's Guide to the Galaxy'.\""; + if (countitem("HitchhikersTowel") > 0) + menu + "Thanks for the advice.",L_close, + "I have my towel with me too.",L_Dye; + goto L_close; + +L_Dye: + mes "[Stranger]"; + mes "\"Wonderful! Let me have a look.\""; + mes "He's taking a very interested look at your towel."; + next; + mes "[Stranger]"; + mes "\"I'm impressed. This is not an usual towel.\""; + next; + menu + "Oh? Can you explain about it?",L_Explain, + "I know. Could you dye it for me?",L_Dye_Towel, + "It's great, isn't it? I have to go now.",L_close; + +L_No_Item: + mes "[Stranger]"; + mes "\"Hu? It seems you haven't.\""; + goto L_close; + +L_Wrong_Answer: + mes "[Stranger]"; + mes "\"Nah, that's wrong. Come back if you want to try again.\""; + goto L_close; + +L_Event_Done: + mes "[Stranger]"; + mes "\"Ah, welcome back. Thanks again for your help.\""; + next; + mes "\"Shall I dye your towel?\""; + menu + "That would be great!",L_Dye_Towel, + "No, thanks.", L_close; + +L_Dye_Towel: + mes "[Stranger]"; + mes "\"Alright, which color do you want?\""; + menu + "Red",L_Red, + "Yellow",L_Yellow, + "White",L_White, + "Orange",L_Orange, + "Pink",L_Pink, + "I changed my mind.", L_close; + +L_Red: + mes "[Stranger]"; + mes "\"Ok, I'll need two bags of Ruby Powder and a bottle of water for that.\""; + next; + if (countitem("HitchhikersTowel") < 1) goto L_No_Towel; + getinventorylist; + if ((countitem("HitchhikersTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv; + if (countitem("BottleOfWater") < 1) goto L_No_Water; + if (countitem("RubyPowder") < 2) goto L_No_Powder; + delitem "RubyPowder", 2; + delitem "HitchhikersTowel", 1; + delitem "BottleOfWater", 1; + getitem "RedHitchhikersTowel", 1; + mes "He takes your towel, the water and the gem powder, then he turns away and does something you can't see. After a few minutes, he turns to you again."; + next; + mes "[Stranger]"; + mes "\"Done! It'll use its color after being used, but just come back and I can dye it again for you.\""; + goto L_close; + +L_Yellow: + mes "[Stranger]"; + mes "\"Ok, I'll need two bags of Topaz Powder and a bottle of water for that.\""; + next; + if (countitem("HitchhikersTowel") < 1) goto L_No_Towel; + getinventorylist; + if ((countitem("HitchhikersTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv; + if (countitem("BottleOfWater") < 1) goto L_No_Water; + if (countitem("TopazPowder") < 2) goto L_No_Powder; + delitem "TopazPowder", 2; + delitem "HitchhikersTowel", 1; + delitem "BottleOfWater", 1; + getitem "YellowHitchhikersTowel", 1; + mes "He takes your towel, the water and the gem powder, then he turns away and does something you can't see. After a few minutes, he turns to you again."; + next; + mes "[Stranger]"; + mes "\"Done! It'll use its color after being used, but just come back and I can dye it again for you.\""; + goto L_close; + +L_White: + mes "[Stranger]"; + mes "\"Ok, I'll need two bags of Diamond Powder and a bottle of water for that.\""; + next; + if (countitem("HitchhikersTowel") < 1) goto L_No_Towel; + getinventorylist; + if ((countitem("HitchhikersTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv; + if (countitem("BottleOfWater") < 1) goto L_No_Water; + if (countitem("DiamondPowder") < 2) goto L_No_Powder; + delitem "DiamondPowder", 2; + delitem "HitchhikersTowel", 1; + delitem "BottleOfWater", 1; + getitem "WhiteHitchhikersTowel", 1; + mes "He takes your towel, the water and the gem powder, then he turns away and does something you can't see. After a few minutes, he turns to you again."; + next; + mes "[Stranger]"; + mes "\"Done! It'll use its color after being used, but just come back and I can dye it again for you.\""; + goto L_close; + +L_Blue: + mes "[Stranger]"; + mes "\"Ok, I'll need two bags of Sapphire Powder and a bottle of water for that.\""; + next; + if (countitem("HitchhikersTowel") < 1) goto L_No_Towel; + getinventorylist; + if ((countitem("HitchhikersTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv; + if (countitem("BottleOfWater") < 1) goto L_No_Water; + if (countitem("SapphirePowder") < 2) goto L_No_Powder; + delitem "SapphirePowder", 2; + delitem "HitchhikersTowel", 1; + delitem "BottleOfWater", 1; + getitem "BlueHitchhikersTowel", 1; + mes "He takes your towel, the water and the gem powder, then he turns away and does something you can't see. After a few minutes, he turns to you again."; + next; + mes "[Stranger]"; + mes "\"Done! It'll use its color after being used, but just come back and I can dye it again for you.\""; + goto L_close; + +L_Green: + mes "[Stranger]"; + mes "\"Ok, I'll need two bags of Emerald Powder and a bottle of water for that.\""; + next; + if (countitem("HitchhikersTowel") < 1) goto L_No_Towel; + getinventorylist; + if ((countitem("HitchhikersTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv; + if (countitem("BottleOfWater") < 1) goto L_No_Water; + if (countitem("EmeraldPowder") < 2) goto L_No_Powder; + delitem "EmeraldPowder", 2; + delitem "HitchhikersTowel", 1; + delitem "BottleOfWater", 1; + getitem "GreenHitchhikersTowel", 1; + mes "He takes your towel, the water and the gem powder, then he turns away and does something you can't see. After a few minutes, he turns to you again."; + next; + mes "[Stranger]"; + mes "\"Done! It'll use its color after being used, but just come back and I can dye it again for you.\""; + goto L_close; + +L_Purple: + mes "[Stranger]"; + mes "\"Ok, I'll need two bags of Amethyst Powder and a bottle of water for that.\""; + next; + if (countitem("HitchhikersTowel") < 1) goto L_No_Towel; + getinventorylist; + if ((countitem("HitchhikersTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv; + if (countitem("BottleOfWater") < 1) goto L_No_Water; + if (countitem("AmethystPowder") < 2) goto L_No_Powder; + delitem "AmethystPowder", 2; + delitem "HitchhikersTowel", 1; + delitem "BottleOfWater", 1; + getitem "PurpleHitchhikersTowel", 1; + mes "He takes your towel, the water and the gem powder, then he turns away and does something you can't see. After a few minutes, he turns to you again."; + next; + mes "[Stranger]"; + mes "\"Done! It'll use its color after being used, but just come back and I can dye it again for you.\""; + goto L_close; + +L_Orange: + mes "[Stranger]"; + mes "\"Ok, I'll need one bag of Ruby Powder, one bag of Topaz Powder and a bottle of water for that.\""; + next; + if (countitem("HitchhikersTowel") < 1) goto L_No_Towel; + getinventorylist; + if ((countitem("HitchhikersTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv; + if (countitem("BottleOfWater") < 1) goto L_No_Water; + if (countitem("RubyPowder") < 1) goto L_No_Powder; + if (countitem("TopazPowder") < 1) goto L_No_Powder; + delitem "RubyPowder", 1; + delitem "TopazPowder", 1; + delitem "HitchhikersTowel", 1; + delitem "BottleOfWater", 1; + getitem "OrangeHitchhikersTowel", 1; + mes "He takes your towel, the water and the gem powder, then he turns away and does something you can't see. After a few minutes, he turns to you again."; + next; + mes "[Stranger]"; + mes "\"Done! It'll use its color after being used, but just come back and I can dye it again for you.\""; + goto L_close; + +L_Pink: + mes "[Stranger]"; + mes "\"Ok, I'll need one bag of Ruby Powder, one bag of Diamond Powder and a bottle of water for that.\""; + next; + if (countitem("HitchhikersTowel") < 1) goto L_No_Towel; + getinventorylist; + if ((countitem("HitchhikersTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv; + if (countitem("BottleOfWater") < 1) goto L_No_Water; + if (countitem("RubyPowder") < 1) goto L_No_Powder; + if (countitem("DiamondPowder") < 1) goto L_No_Powder; + delitem "RubyPowder", 1; + delitem "DiamondPowder", 1; + delitem "HitchhikersTowel", 1; + delitem "BottleOfWater", 1; + getitem "PinkHitchhikersTowel", 1; + mes "He takes your towel, the water and the gem powder, then he turns away and does something you can't see. After a few minutes, he turns to you again."; + next; + mes "[Stranger]"; + mes "\"Done! It'll use its color after being used, but just come back and I can dye it again for you.\""; + goto L_close; + +L_Lime: + mes "[Stranger]"; + mes "\"Ok, I'll need one bag of Emerald Powder, one bag of Topaz Powder and a bottle of water for that.\""; + next; + if (countitem("HitchhikersTowel") < 1) goto L_No_Towel; + getinventorylist; + if ((countitem("HitchhikersTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv; + if (countitem("BottleOfWater") < 1) goto L_No_Water; + if (countitem("EmeraldPowder") < 1) goto L_No_Powder; + if (countitem("TopazPowder") < 1) goto L_No_Powder; + delitem "EmeraldPowder", 1; + delitem "TopazPowder", 1; + delitem "HitchhikersTowel", 1; + delitem "BottleOfWater", 1; + getitem "LimeHitchhikersTowel", 1; + mes "He takes your towel, the water and the gem powder, then he turns away and does something you can't see. After a few minutes, he turns to you again."; + next; + mes "[Stranger]"; + mes "\"Done! It'll use its color after being used, but just come back and I can dye it again for you.\""; + goto L_close; + +L_Teal: + mes "[Stranger]"; + mes "\"Ok, I'll need one bag of Emerald Powder, one bag of Sapphire Powder and a bottle of water for that.\""; + next; + if (countitem("HitchhikersTowel") < 1) goto L_No_Towel; + getinventorylist; + if ((countitem("HitchhikersTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv; + if (countitem("BottleOfWater") < 1) goto L_No_Water; + if (countitem("EmeraldPowder") < 1) goto L_No_Powder; + if (countitem("SapphirePowder") < 1) goto L_No_Powder; + delitem "EmeraldPowder", 1; + delitem "SapphirePowder", 1; + delitem "HitchhikersTowel", 1; + delitem "BottleOfWater", 1; + getitem "TealHitchhikersTowel", 1; + mes "He takes your towel, the water and the gem powder, then he turns away and does something you can't see. After a few minutes, he turns to you again."; + next; + mes "[Stranger]"; + mes "\"Done! It'll use its color after being used, but just come back and I can dye it again for you.\""; + goto L_close; + +L_No_Water: + mes "[Stranger]"; + mes "\"You don't have water.\""; + goto L_close; + +L_No_Powder: + mes "[Stranger]"; + mes "\"You need to bring me enough gem powder in that color. Maybe someone used to mining can help you with that.\""; + goto L_close; + +L_No_Towel: + mes "[Stranger]"; + mes "\"Where's your towel? It is really useful, you should always keep it with you.\""; + goto L_close; + +L_Full_Inv: + mes "[Stranger]"; + mes "\"You carry a lot of stuff with you, don't you? Maybe you should get rid of something.\""; + goto L_close; + +L_close: + @month = 0; + @start_day = 0; + @end_day = 0; + @iRONINGOT = 0; + @PINKANTENNA = 0; + @Exp = 0; + @random = 0; + @quizparam$ = ""; + close; +} diff --git a/npc/00000SAVE/005-4_bossfight.c b/npc/00000SAVE/005-4_bossfight.c new file mode 100644 index 000000000..334c2830f --- /dev/null +++ b/npc/00000SAVE/005-4_bossfight.c @@ -0,0 +1,204 @@ + +005-4,36,19,0 script Switch#elecave NPC400,{ + if ($@ELE_CAVE_STATUS != 0) goto L_Enjoy; + + mes "*You see a switch, it is flipped off*"; + menu "No, I am NOT flipping the switch... thats final.", L_Exit, + "Ha! What's the worst that could happen?", L_Flip; + +L_Flip: + mes "*As you flip the switch, the cave starts to rumble*"; + + if ($@ELE_CAVE_STATUS != 0) goto L_Enjoy; // Prevent from starting level 1 from two different players + + $@ELE_CAVE_STATUS = 1; + $@ELE_CAVE_PLAYER_COUNT = getmapusers("005-4"); + + startnpctimer; + +L_Start_Level_1: + $@ELE_CAVE_LEVEL = 1; + + mapannounce "005-4", "Level 1 starting", 0; + + // Random colors for everyone! + areatimer "005-4", 19, 19, 54, 37, 10, "Switch#elecave::OnChaos"; + + // Two red, two blue. + areamonster "005-4", 19, 19, 54, 37, "", 1080, 2, "Switch#elecave::OnBlueDeath"; + areamonster "005-4", 19, 19, 54, 37, "", 1081, 2, "Switch#elecave::OnRedDeath"; + goto L_Exit; // This one is triggered on talking to the switch. + +L_Enjoy: + mes "*As you get ready to touch the switch, a spark of the opposite color flys to you. But oddly it doesn't hurt at all.*"; + + if (@ELE_CAVE_COLOR == 1) goto L_Set_Blue; + if (@ELE_CAVE_COLOR == 2) goto L_Set_Red; + +L_Set_Red: + @ELE_CAVE_COLOR = 1; + goto L_Exit; +L_Set_Blue: + @ELE_CAVE_COLOR = 2; + goto L_Exit; + + +L_Exit: + close; + end; + + +OnTimer3000: + setnpctimer 0; + + // We stop if no live players are around + if ($@ELE_CAVE_PLAYER_COUNT == 0) goto L_CleanUp; + set $@ELE_CAVE_PLAYER_COUNT, 0; // The onTick refills this with a live count + + // We punish them for having a different count (Aka need kill them at the same time) + $@ELE_CAVE_RED_COUNT = mobcount("005-4","Switch#elecave::OnRedDeath") + 1; + $@ELE_CAVE_BLUE_COUNT = mobcount("005-4","Switch#elecave::OnBlueDeath") + 1; + + $@ELE_CAVE_DIFF = 0; + if ($@ELE_CAVE_RED_COUNT > $@ELE_CAVE_BLUE_COUNT) goto L_More_Red; + if ($@ELE_CAVE_RED_COUNT < $@ELE_CAVE_BLUE_COUNT) goto L_More_Blue; + + if ($@ELE_CAVE_LAST_MESSAGE != 0) mapannounce "005-4", "The ions are once again balanced. Try to kill a red and blue at the same time.", 0; + $@ELE_CAVE_LAST_MESSAGE = 0; + + goto L_Next_Step; + +L_More_Red: + $@ELE_CAVE_DIFF = $@ELE_CAVE_RED_COUNT - $@ELE_CAVE_BLUE_COUNT; + if ($@ELE_CAVE_LAST_MESSAGE != 1) mapannounce "005-4", "There are too many red ions in the air! Kill more red sparks!", 0; + $@ELE_CAVE_LAST_MESSAGE = 1; + goto L_Next_Step; + +L_More_Blue: + $@ELE_CAVE_DIFF = $@ELE_CAVE_BLUE_COUNT - $@ELE_CAVE_RED_COUNT; + if ($@ELE_CAVE_LAST_MESSAGE != 2) mapannounce "005-4", "There are too many blue ions in the air! Kill more blue sparks!", 0; + $@ELE_CAVE_LAST_MESSAGE = 2; + goto L_Next_Step; + +L_Next_Step: + // Basic per player logic + areatimer "005-4", 19, 19, 54, 37, 10, "Switch#elecave::OnTick"; + + if ($@ELE_CAVE_RED_COUNT == 0 && $@ELE_CAVE_BLUE_COUNT == 0) goto L_Next_Level; + + end; + +L_Next_Level: + if ($@ELE_CAVE_LEVEL == 1) goto L_Start_Level_2; + if ($@ELE_CAVE_LEVEL == 2) goto L_Start_Level_3; + if ($@ELE_CAVE_LEVEL == 3) goto L_CleanUp; + end; + +L_Start_Level_2: + $@ELE_CAVE_LEVEL = 2; + + mapannounce "005-4", "Level 2 starting", 0; + + // Random colors for everyone! + areatimer "005-4", 19, 19, 54, 37, 10, "Switch#elecave::OnChaos"; + + // four red, four blue. + areamonster "005-4", 19, 19, 54, 37, "", 1080, 4, "Switch#elecave::OnBlueDeath"; + areamonster "005-4", 19, 19, 54, 37, "", 1081, 4, "Switch#elecave::OnRedDeath"; + end; + +L_Start_Level_3: + $@ELE_CAVE_LEVEL = 3; + + mapannounce "005-4", "Level 3 starting", 0; + + // Random colors for everyone! + areatimer "005-4", 19, 19, 54, 37, 10, "Switch#elecave::OnChaos"; + + // eight red, eight blue. + areamonster "005-4", 19, 19, 54, 37, "", 1080, 8, "Switch#elecave::OnBlueDeath"; + areamonster "005-4", 19, 19, 54, 37, "", 1081, 8, "Switch#elecave::OnRedDeath"; + end; + + +OnChaos: + if (ispcdead()) end; +L_Set_Color: + message strcharinfo(0), "You feel funny. You think your color has changed."; + @ELE_CAVE_COLOR = rand(1, 2); + end; + +OnTick: + if (ispcdead()) end; + + // Count this player as alive + $@ELE_CAVE_PLAYER_COUNT = $@ELE_CAVE_PLAYER_COUNT + 1; + + @drainamount = MaxHp / -20; + + if ($@ELE_CAVE_DIFF != 0) heal @drainamount * $@ELE_CAVE_DIFF, 0; + + // Make sure they have a color + if (@ELE_CAVE_COLOR == 0) goto L_Set_Color; + + if (@ELE_CAVE_COLOR == 1) goto L_Do_Red; + if (@ELE_CAVE_COLOR == 2) goto L_Do_Blue; + + end; + +L_Do_Red: + specialeffect2 114; // Red effects + + if (isin("005-4", 42, 19, 54, 32)) goto L_Heal; + if (isin("005-4", 32, 19, 54, 37)) end; + message strcharinfo(0), "Sparks are flying between you and a piller. Maybe you should stand near a piller with the same color as you."; + heal MaxHp / -6, 0; + + end; + +L_Do_Blue: + specialeffect2 115; // Blue effects + + if (isin("005-4", 19, 19, 31, 32)) goto L_Heal; + if (isin("005-4", 19, 19, 41, 37)) end; + message strcharinfo(0), "Sparks are flying between you and a piller. Maybe you should stand near a piller with the same color as you"; + heal MaxHp / -6, 0; + + end; + +L_Heal: + heal MaxHp / 20, 0; + end; + +OnBlueDeath: + // Blue players have to kill blue sparks + if (@ELE_CAVE_COLOR == 2) end; + message strcharinfo(0), "The dying spark reacts explosively with you. You should only kill sparks with the same color as you."; + heal MaxHp / -2, 0; + end; + +OnRedDeath: + // Red players have to kill red sparks + if (@ELE_CAVE_COLOR == 1) end; + message strcharinfo(0), "The dying spark reacts explosively with you. You should only kill sparks with the same color as you."; + heal MaxHp / -2, 0; + end; + +OnInit: + if (debug >= 2) end; + initnpctimer; + stopnpctimer; +L_CleanUp: + $@ELE_CAVE_LAST_MESSAGE = 0; + $@ELE_CAVE_STATUS = 0; + $@ELE_CAVE_PLAYER_COUNT = 0; + $@ELE_CAVE_LEVEL = 0; + $@ELE_CAVE_ROUND_TIMER = 0; + + killmonster "005-4", "Switch#elecave::OnBlueDeath"; + killmonster "005-4", "Switch#elecave::OnRedDeath"; + + stopnpctimer; + setnpctimer 0; + end; +} diff --git a/npc/00000SAVE/008-1_george.txt b/npc/00000SAVE/008-1_george.txt new file mode 100644 index 000000000..62afeb7a0 --- /dev/null +++ b/npc/00000SAVE/008-1_george.txt @@ -0,0 +1,150 @@ + +008-1,136,62,0 script George NPC138,{ + if (getequipid(equip_head) == 617) goto L_Pirate; + if (getequipid(equip_head) == 622) goto L_Bandana; + if (getequipid(equip_head) == 621) goto L_EyePatch; + + mes "[George the Pirate]"; + mes "\"Yar! Do you need something, matey?\""; + goto L_Main; + +L_Main: + if (GEORGE_Quest == 1) goto L_Main2; + if (GEORGE_Quest == 2) goto L_Main3; + if (GEORGE_Quest == 3) goto L_Main5; + if (GEORGE_Quest == 4) goto L_Main4; + menu + "Can you explain the Ferry?", L_Explain, + "Nothing I guess", L_close; + +L_Main2: + menu + "Can you explain the Ferry?", L_Explain, + "Actually, I heard from Roger that you may need some help.", L_RequestOne, + "Nothing I guess", L_close; + +L_Main3: + menu + "Can you explain the Ferry?", L_Explain, + "About the items you asked me to collect...", L_ProgressOne, + "Nothing I guess", L_close; + +L_Main4: + menu + "Can you explain the Ferry?", L_Explain, + "About the items you asked me to collect...", L_ProgressTwo, + "Nothing I guess", L_close; + +L_Main5: + menu + "Can you explain the Ferry?", L_Explain, + "Dow you need any more help?", L_RequestTwo, + "Nothing I guess", L_close; + +L_Pirate: + mes "[George the Pirate]"; + mes "\"Arrrrh! Ye be wearing a pirate's hat!\""; + goto L_Main; + +L_Bandana: + mes "[George the Pirate]"; + mes "\"Arrrrh! Ye remind me of my old first mate!\""; + goto L_Main; + +L_EyePatch: + mes "[George the Pirate]"; + mes "\"Arrrrh! Looks like ye lost an eye there!\""; + goto L_Main; + +L_Explain: + mes "[George the Pirate]"; + mes "\"Arrr matey! I helped pioneer the trade routes between Hurnscald and the rest of the World, so now merchants and adventurers can travel to and fro without any hassle of dodging wolvern, yarr.\""; + next; + mes "\"To use the ferry, just step up on the dock and select your destination. Each destination has an associated price that you need to pay. You don't have to go anywhere. Choosing the current port will result in nothing.\""; + goto L_close; + + +L_RequestOne: + mes "[George the Pirate]"; + mes "\"Roger, eh? Aye, I do need help. If you bring me 30 beers, 50 bottles, and 30 casino coins, maybe I can give you a reward."; + GEORGE_Quest = 2; + goto L_close; + +L_RequestTwo: + mes "[George the Pirate]"; + mes "\"Arrr matey! My captain asked me to have you get him some items. Please bring us 50 zombie nachos and 50 lady fingers, my captain likes to snack on those during our long voyages. Oh, and something to read too!\""; + GEORGE_Quest = 4; + goto L_close; + +L_ProgressOne: + if (countitem("Beer") < 30) + goto L_NotEnough; + if (countitem("BottleOfWater") < 50) + goto L_NotEnough; + if (countitem("CasinoCoins") < 30) + goto L_NotEnough; + mes "[George the Pirate]"; + mes "\"Yar matey! You have the items I asked for! You have the honor and trust we pirates bestow each other!\""; + getinventorylist; + if (@inventorylist_count == 100) + goto L_TooMuch; + delitem "Beer", 30; + delitem "BottleOfWater", 50; + delitem "CasinoCoins", 30; + mes ""; + mes "\"Here is a reward for your effort! Now you can be a true buccaneer!\""; + getitem "SailorHat", 1; + getexp 5000, 0; + GEORGE_Quest = 3; + goto L_close; + +L_ProgressTwo: + if (countitem("ZombieNachos") < 50) + goto L_NotEnough; + if (countitem("LadyFingers") < 50) + goto L_NotEnough; + if (countitem("ScrollOfPaper") < 1) + goto L_NotEnough; + mes "[George the Pirate]"; + mes "\"Arrr! Good job matey! You brought us everything we asked for, even the Maritime Almanac Scroll!\""; + getinventorylist; + if (@inventorylist_count == 100) + goto L_TooMuch; + delitem "ZombieNachos", 50; + delitem "LadyFingers", 50; + delitem "ScrollOfPaper", 1; + mes "\"My captain wanted me to give this to you as a special reward for your efforts.\""; + getitem "CaptainsHat", 1; + getexp 15000, 0; + GEORGE_Quest = 5; + goto L_close; + +L_NotEnough: + mes "[George the Pirate]"; + mes "\"Arrr! You did not bring me everything I asked for!\""; + if (GEORGE_Quest == 2) + goto L_NotEnoughOne; + if (GEORGE_Quest == 4) + goto L_NotEnoughTwo; + // This shouldn't be necessary as it should *never* be reached, but + // tmwAthena complains of "implicit fallthrough" and refuses to run + // without it here. Perhaps I'm doing something wrong? More likely + // we need to slap some TMW devs. + goto L_close; + +L_NotEnoughOne: + mes "\"Remember, I need 30 beers, 50 bottles, and 30 casino coins.\""; + goto L_close; + +L_NotEnoughTwo: + mes "\"Remember, I need 50 zombie nachos, 50 lady fingers, and something to read.\""; + goto L_close; + +L_TooMuch: + mes "[George the Pirate]"; + mes "\"Err... you do not appear to have enough room for your reward. Please come back once you lighten your load, matey!\""; + goto L_close; + +L_close: + close; +} diff --git a/npc/00000SAVE/009-2_nowhere_man.txt b/npc/00000SAVE/009-2_nowhere_man.txt new file mode 100644 index 000000000..5bdf6d35d --- /dev/null +++ b/npc/00000SAVE/009-2_nowhere_man.txt @@ -0,0 +1,130 @@ + +009-2,33,94,0 script Nowhere Man NPC153,{ + @ironprice = 1000; + @Sulphurprice = 1200; + @Yellowpowderprice = 6500; + + mes "[Nowhere Man]"; + mes "\"Welcome! I am a transmuter and I will Transmute some items into other items, but at a cost.\""; + goto L_Trademenu; + +L_Trademenu: + menu + "Can you make Iron Powder?", L_Iron, // Non unique, TBR + "How about Sulphur Powder?", L_Sulphur, // Non unique, TBR + "I need Yellow Powder.", L_Healpots, + "Do you have gloves?", L_Gloves, + "I think I have everything I need, thanks.", L_close; + +L_Iron: + mes "[Nowhere Man]"; + mes "\"I do have a few of those. I will give you 4 Iron Powders for 1 Iron Ore and " + @ironprice + "gp.\""; + menu + "Sure.", L_Ipowder, + "What a ripoff! No way!", L_close; + +L_Sulphur: + mes "[Nowhere Man]"; + mes "\"I can trade you 5 Sulphur Powders for 1 Pile of Ash and " + @Sulphurprice + "gp.\""; + menu + "Here you go.", L_Spowder, + "Are you nuts?! Forget it!", L_close; + +L_Healpots: + mes "[Nowhere Man]"; + mes "\"Yellow powder can be used for spells, but isn't cheap to transmute. Are you sure? It'll cost you " + @Yellowpowderprice + "gp and 3 hard spikes for 1.\""; + menu + "Sure.", L_Pots, + "You're right, that's way too much.", L_close; + +L_Ipowder: + if (countitem("IronOre") < 1) goto L_Missing; + if (Zeny < @ironprice) goto L_NotEnoughMoney; + getinventorylist; + if (@inventorylist_count == 100 && countitem("IronOre") > 1 && countitem("IronPowder") < 1) goto L_Full; + delitem "IronOre", 1; + Zeny = Zeny - @ironprice; + getitem "IronPowder", 4; + mes "[Nowhere Man]"; + mes "\"There you go. Would you like to trade anything else?\""; + menu + "Yes.", L_Trademenu, + "No.", L_No; + goto L_close; + +L_Spowder: + if (countitem("PileOfAsh") < 1) goto L_Missing; + if (Zeny < @Sulphurprice) goto L_NotEnoughMoney; + getinventorylist; + if (@inventorylist_count == 100 && countitem("PileOfAsh") > 1 && countitem("SulphurPowder") < 1) goto L_Full; + delitem "PileOfAsh", 1; + Zeny = Zeny - @Sulphurprice; + getitem "SulphurPowder", 5; + mes "[Nowhere Man]"; + mes "\"There you go. Would you like to trade anything else?\""; + menu + "Yes.", L_Trademenu, + "No.", L_No; + goto L_close; + +L_Pots: + if (countitem("HardSpike") < 3) goto L_Missing; + if (Zeny < @Yellowpowderprice) goto L_NotEnoughMoney; + getinventorylist; + if (@inventorylist_count == 100 && countitem("HardSpike") > 3 && countitem("YellowPowder") < 1) goto L_Full; + delitem "HardSpike", 3; + Zeny = Zeny - @Yellowpowderprice; + getitem "YellowPowder", 1; + mes "[Nowhere Man]"; + mes "\"There you go. Would you like me to transmute anything else?\""; + menu + "Yes.", L_Trademenu, + "No.", L_No; + goto L_close; + +L_Gloves: + if (Zeny < 3000) + goto L_close; + getinventorylist; + if (@inventorylist_count == 100 && countitem("LeatherGloves") == 0) + goto L_Full; + mes "[Nowhere Man]"; + mes "\"Gloves? Sure, I sell fine leather gloves for only 3000 GP.\""; + menu + "Ok, that's a good deal", L_PurchaseGloves, + "No gloves, lets see what else you have", L_Trademenu, + "No thank you, maybe I will buy some later.", L_close; + +L_PurchaseGloves: + Zeny = Zeny - 3000; + getitem "LeatherGloves", 1; + mes "[Nowhere Man]"; + mes "Thank you. I am sure you will get use from them."; + close; + +L_Full: + mes "[Nowhere Man]"; + mes "\"You must have been making a lot of trades...your bag is completely full! Come back after you've made some room.\""; + goto L_close; + +L_Missing: + mes "[Nowhere Man]"; + mes "\"It looks like you're missing some items. Please come back when you have enough to trade.\""; + goto L_close; + +L_NotEnoughMoney: + mes "[Nowhere Man]"; + mes "\"You don't have enough money.\""; + goto L_close; + +L_No: + mes "[Nowhere Man]"; + mes "\"Have a great day!\""; + goto L_close; + +L_close: + @ironprice = 0; + @Sulphurprice = 0; + @Potionprice = 0; + close; +} diff --git a/npc/00000SAVE/010-2_Dimond/chef.txt b/npc/00000SAVE/010-2_Dimond/chef.txt new file mode 100644 index 000000000..be2e7a123 --- /dev/null +++ b/npc/00000SAVE/010-2_Dimond/chef.txt @@ -0,0 +1,346 @@ +010-2,33,25,0 script Chef#dimond NPC148,{ + + + + goto L_Begin; + +L_Begin: + mes "[Chef]"; + mes ""; + mes "\"I'm too busy right now to talk.\""; + + callfunc "KadiyaSubquestConsts"; + if ((@Q_kadiya_status == @Q_STATUS_WANTS_CHOCOCAKE) && (countitem ("MopoxCurePotion") > 0)) + goto L_lace_chococake; + if ((@Q_kadiya_status == @Q_STATUS_WANTS_ORANGECUPCAKE) && (countitem ("MopoxCurePotion") > 0)) + goto L_lace_cupcake; + close; + +L_lace_chococake: + next; + menu + "Sorry.", L_close, + "I need your help with a sick young girl!", L_Next; + +L_Next: + mes "[Chef]"; + mes ""; + mes "You explain Kadiya's situation to him."; + mes "\"Hmrmf. I can't help you; I'm a chef, not a baker!\""; + close; + +L_lace_cupcake: + next; + menu + "Sorry.", L_close, + "I need your help with a sick young girl!", L_Next1; + +L_Next1: + mes "[Chef]"; + mes ""; + mes "You explain Kadiya's situation to him."; + mes "\"Hmrmf. I was about to make another batch of orange cupcakes. Do you have that potion with you?\""; + next; + menu + "No, sorry.", L_bringit, + "Yes, here you are.", L_Next2; + +L_Next2: + if (countitem ("MopoxCurePotion") < 1) + goto L_bringit; + mes "[Chef]"; + mes ""; + mes "He shudders as he smells the bottle."; + mes "\"That is disgusting! How do you expect me to mask this?\""; + mes "He ponders his own question for a moment."; + next; + mes "[Chef]"; + mes ""; + mes "\"Ah yes. We need to bind the smell in gingerbread. Bring me three pieces of gingerbread, one orange, and 500 GP for the other ingredients, and I will make you your cupcake.\""; + next; + menu + "I'll go and get it.", L_close, + "Here you are!", L_Next3, + "Not now.", L_close; + +L_Next3: + if (countitem ("GingerBreadMan") < 3) + goto L_No_gingerbread; + if (countitem ("Orange") < 1) + goto L_No_orange; + if (countitem ("MopoxCurePotion") < 1) + goto L_No_Potion; + if (Zeny < 500) + goto L_No_Zeny; + + Zeny = Zeny - 500; + delitem "GingerBreadMan", 3; + delitem "Orange", 1; + delitem "MopoxCurePotion", 1; + + getitem "LacedOrangeCupcake", 1; + + mes "[Chef]"; + mes ""; + mes "\"Good, good. This should work.\""; + mes "He crumbles the gingerbread, mixes it with the potion and some spices, and finally adds some cupcake batter and the orange pieces."; + next; + mes "[Chef]"; + mes ""; + mes "\"Take a seat.\""; + mes "He fills the mixture into a cupcake form and puts it into the oven. You watch the cupcake grow for a while."; + mes "Finally, he removes the form and carefully extracts the cupcake."; + next; + mes "[Chef]"; + mes ""; + mes "\"Here you are. It's a bit bigger than a regular cupcake and will taste a bit like ginger, I think, but otherwise it should be fine.\""; + close; + +L_No_gingerbread: + mes "[Chef]"; + mes ""; + mes "\"I will need three pieces of gingerbread.\""; + close; + +L_No_orange: + mes "[Chef]"; + mes ""; + mes "\"Please bring me an orange for these cupcakes.\""; + close; + +L_No_Zeny: + mes "[Chef]"; + mes ""; + mes "\"No. I need extra ingredients worth 500 GP, and I expect you to pay for those.\""; + close; + +L_No_Potion: + mes "[Chef]"; + mes ""; + mes "\"Where did your Mopox potion go?\""; + close; + +L_bringit: + mes "[Chef]"; + mes ""; + mes "\"Bring it here when you do.\""; + next; + +L_close: + close; + +L_JellyBean: + mes "[Chef]"; + mes ""; + mes "\"I can't talk right now... I'm too busy.\""; + next; + mes "\"Oh, wait. I see you are the adventurer who was speaking with the Easter Bunny. He has a really bad memory, you know? Every year he forgets who he needs to ask to get Jelly Beans, and every year an adventurer comes to my kitchen asking if I can help the Easter Bunny get some.\""; + next; + mes "\"Even though I am really busy this time of year, I will help you make some Jelly Beans to put in the basket if you wish. Just to keep the tradition alive...\""; + menu + "I would really appreciate that!", L_SetJellyBean, + "Nah, I decided not to do that stupid quest.", L_close; + +L_SetJellyBean: + QUEST_Easter11 = 8; + goto L_MakeJellyBean; + +L_MakeJellyBean: + mes "[Chef]"; + mes ""; + mes "\"I will need you to bring me some candies.\""; + mes "\"I think 15 should be enough.\""; + mes "\"Sea slimes seem to have those, so try them.\""; + mes "\"And because it's the holidays, I'll add in the other ingredient for free.\""; + menu + "I have some candies!", L_CandyCheck, + "Ok, I will be back soon.", L_close, + "I changed my mind, forget about it.", L_close; + +L_CandyCheck: + if(countitem("Candy") < 15) + goto L_EasterNotEnough; + if(countitem("Candy") >= 15) + goto L_EasterEnough; + close; + +L_EasterNotEnough: + mes "[Chef]"; + mes ""; + mes "\"You do not have enough candies for me to work with yet.\""; + mes "\"Please go get more.\""; + close; + +L_EasterEnough: + getinventorylist; + if (@inventorylist_count == 100 && countitem("Candy") > 15) + goto L_EasterTooMany; + if(countitem("Candy") < 15) + goto L_EasterNotEnough; + delitem "Candy", 15; + getitem "JellyBeans", 1; + QUEST_Easter11 = 9; + mes "[Chef]"; + mes ""; + mes "\"You have gathered enough candies for me to make the Jelly Beans.\""; + mes "He puts the candies into a pot and starts melting them."; + mes "He adds in some gooey stuff, then lets the solution cool for a moment before forming the Jelly Beans."; + mes "\"Here are your Jelly Beans.\""; + close; + +L_EasterTooMany: + mes "[Chef]"; + mes ""; + mes "\"You don't have enough room for the Jelly Beans. Come back later.\""; + close; + +L_SeeBunny: + mes "[Chef]"; + mes ""; + mes "\"Oh yeah, you need to return to the Easter Bunny now.\""; + next; + goto L_Begin; + close; + + +L_Easter2012_Begin: + mes "[Chef]"; + mes "\"Ahh, " + strcharinfo(0) + "! I really need to talk to you. Did the Easter Bunny give you a very thick and heavy pan?\""; + menu + "Yes, he did. Why?", L_Easter2012_Continue; + +L_Easter2012_Continue: + mes "[Chef]"; + mes "\"Good to know! I am asking because now you are my only hope. I have invented the ultimate culinary wonder, a recipe for the most incredibly tasty food you can imagine!\""; + next; + mes "\"But here is the problem, to complete this recipe I need a very resistant pan, because in the process I need to use a very strong acid solution based on yeti saliva!\""; + next; + mes "\"Can you believe I ruined ALL of my pans and 17 infantry helmets while trying to cook it? That is why I am asking for this favor. Could you lend me your pan? I promise I will give you a jar of the final product.\""; + next; + mes "\"Oh, and I will need to keep it with me for a while, as the ingredients need to rest in the acid solution for a long time, but you can always come here to see how it is going.\""; + menu + "Ok, but I want my pan back when it is done!", L_Accept_Cooking, + "No way, I won't let you fill my hat with corrosive yeti saliva!", L_NoWay; + +L_NoWay: + mes "[Chef]"; + mes "\"Ahh, don't say that! Please, think about it and come back if you change your mind.\""; + close; + +L_Accept_Cooking: + mes "[Chef]"; + mes "\"Great! But I can't promise anything regarding your hat. What I can promise is: IF it works, you will eat the most spectacular food of all time! I won't say what it is, but it is going to be great! What do you say, are you sure?\""; + menu + "Ahh, just take the pan and do your thing.", L_CarryOn, + "No way!", L_close; + +L_CarryOn: + if (countitem("PanHat") < 1) + goto L_No_PanHat; + delitem "PanHat", 1; + QUEST_Easter12 = 7; + mes "\"Very good! Now I just need to put the basic ingredients inside a metal pan filled with water, yeti saliva, a little bit of salt and finally... The secret ingredient!\""; + next; + mes "The chef turns his back to you so he can hide what he is using. But you can clearly distinguish a smell of coal..."; + mes "\"Hahahah! And now we wait!\""; + close; + +L_Easter2012_Wait: + if ((gettime(6) == 4 && gettime(5) >= $@easter2012_reward_start_day)) + goto L_Easter2012_Result; + mes "[Chef]"; + mes "\"Be patient... The basic ingredients are not ready yet.\""; + close; + +L_Easter2012_Result: + @temp = rand(99); + mes "[Chef]"; + mes "\"Hey! I have some good news and some bad news... Which one do you want to hear first?\""; + menu + "The good one.", L_SelectNews, + "The bad one.", L_SelectNews, + "Oh no, I don't even want to hear!", L_close; + +L_SelectNews: + if (@temp < 15) goto L_Easter2012_Lucky; + if (@temp >= 15) goto L_Easter2012_Unlucky; + close; + +L_Easter2012_Lucky: + mes "[Chef]"; + mes "\"Wait! Did I mention bad news? I must be crazy... There is no bad news my friend! The ultimate pickled beets is now ready AND your pan is intact!\""; + next; + mes "\"Here! Take your pan back and a jar of the best pickled beets of the mana world!\""; + QUEST_Easter12 = 10; + getitem "PickledBeets", 1; + getitem "PanHat", 1; + close; + +L_Easter2012_Unlucky: + mes "[Chef]"; + mes "\"Ahh, actually, it doesn't matter! The important thing is that the recipe was a success! I just can't believe how something can be so tasty!\""; + next; + menu + "Nice! Now, what about my hat?", L_HatNext; + +L_HatNext: + mes "\"Oh, that... Ehh, unfortunately, the pan is not anymore. It was completely destroyed by the time the pickled beets were ready! But don't worry, I will keep my promise and give you a jar of this culinary masterpiece!\""; + next; + menu + "Wait, wait... Are you saying I lost my hat?", L_HatNext2; + +L_HatNext2: + mes "[Chef]"; + mes "\"Hmm, yes. But I must say I really appreciate your effort to help me! You sacrificed your cool hat in the name of the culinary arts, only a great person would do that!\""; + next; + menu + "But... I... My hat...", L_HatNext3; + +L_HatNext3: + mes "[Chef]"; + mes "\"Here, take your pickled beets!\""; + getitem "PickledBeets", 1; + QUEST_Easter12 = 8; + close; + +OnEaster2012Out: + if (QUEST_Easter12 == 8) + QUEST_Easter12 = 9; + mes "[Chef]"; + mes "\"Hey, I couldn't help but notice your sadness... You really like these silly hats, don't you? Well, since your hat is completely destroyed, just like all my pans, I can give you one of these nice cooking hats. But only if you give my jar of pickled beets back. What do you say?\""; + menu + "A chef hat for a jar of pickled beets? Of course I want!", L_GetChefhat, + "Ahh, keep you silly hat! The pickled beets are way better!", L_KeepBeets; + close; + +L_GetChefhat: + if (countitem("PickledBeets") < 1) + goto L_No_Pickledbeets; + mes "[Chef]"; + mes "\"Really? Well, if you are sure about that... Here is your hat!\""; + delitem "PickledBeets", 1; + getitem "ChefHat", 1; + QUEST_Easter12 = 10; + close; + +L_KeepBeets: + mes "[Chef]"; + mes "\"Hmm, I see that at least you are a wise person. See you later!\""; + QUEST_Easter12 = 10; + close; + +L_No_PanHat: + mes "[Chef]"; + mes "\"So? You said you have the pan, where is it?\""; + close; + +L_No_Pickledbeets: + mes "[Chef]"; + mes "\"Hey, no pickled beets means no chef hat.\""; + close; + +L_Easter2012Foolplayers: + mes "The chef can't hear you. He keeps looking and feeling the scent of his new recipe."; + close; +} + diff --git a/npc/00000SAVE/010-2_Dimond/dimonds.txt b/npc/00000SAVE/010-2_Dimond/dimonds.txt new file mode 100644 index 000000000..b5614309a --- /dev/null +++ b/npc/00000SAVE/010-2_Dimond/dimonds.txt @@ -0,0 +1,576 @@ + +010-2,34,38,0 script Dimond NPC165,{ + mes "[Dimond]"; + mes "\"Welcome to Dimond's Cove!\""; + mes ""; + mes "\"Talk to the waitress to get some Food.\""; + mes ""; + mes "\"We also have shops on the 2nd Floor,"; + mes "and an inn on the 3rd Floor.\""; + close; +} + +010-2,40,35,0 script Phil NPC626,{ + mes "[Phil]"; + mes "\"We've finally solved the problem with our instruments!\""; + next; + mes "[Phil]"; + mes "\"Now we can play any songs!\""; + close; +} + +010-2,40,37,0 script Jerry NPC627,{ + mes "[Jerry]"; + mes "\"I finally figured out what was wrong.\""; + next; + mes "[Jerry]"; + mes "\"I can't believe it took so long to fix....\""; + close; +} + +010-2,42,36,0 script Robert NPC628,{ + mes "[Robert]"; + mes "\"We held to our hope and Jerry figured it out.\""; + next; + mes "[Robert]"; + mes "\"Now we are no longer useless — we can play music again!\""; + close; +} + +010-2,35,35,0 script Shannon NPC193,{ + @month = 1; + @start_day = 24; + @end_day = 26; + if (gettime(6) != @month) goto L_No_Event; + if (gettime(5) < @start_day) goto L_No_Event; + if (gettime(5) > @end_day) goto L_No_Event; + if (gettimetick(2)-TUT_var < 2*7*86400 ) //player must be created at least 2 weeks ago + goto L_No_Event; + if (FLAGS & FLAG_HAS_BOWLER_BURNSDAY && FLAGS & FLAG_HAS_STEAMPUNK_BURNSDAY) goto L_Event_Done; + getinventorylist; + if (@inventorylist_count == 100) goto L_Full_Inv; + + mes "[Shannon]"; + mes "\"Welcome to Dimond's Cove. We are celebrating Robert Burns with supper and poems. You provide the supper and I'll provide a poem by Robert Burns. He was otherwise known as 'The Bard' and wrote many poems. The music of language is what I love most. The language of poetry. While his accent is thick, his poems tell stories that stir the soul. I'll read a poem by him and you can tell me what you think.\""; + next; + mes "\"Before I start, it is traditional to eat, drink and be merry, so help from you will be great and keep me reading.\""; + next; + mes "\"O thou! whatever title suit thee,--\""; + mes "\"Auld Hornie, Satan, Nick, or Clootie!\""; + mes "\"Wha in yon cavern, grim an' sootie,\""; + mes "\"Clos'd under hatches,\""; + mes "\"Spairges about the brunstane cootie\""; + mes "\"To scaud poor wretches!\""; + callsub S_food_menu; + mes "\"Hear me, Auld Hangie, for a wee,\""; + mes "\"An' let poor damned bodies be;\""; + mes "\"I'm sure sma' pleasure it can gie,\""; + mes "\"E'en to a deil,\""; + mes "\"To skelp an' scaud poor dogs like me,\""; + mes "\"An' hear us squeel!\""; + callsub S_food_menu; + mes "\"Great is thy pow'r, an' great thy fame;\""; + mes "\"Far ken'd an' noted is thy name;\""; + mes "\"An' tho' yon lowin heugh's thy hame,\""; + mes "\"Thou travels far;\""; + mes "\"An' faith! thou's neither lag nor lame,\""; + mes "\"Nor blate nor scaur.\""; + callsub S_food_menu; + mes "\"Whyles, ranging like a roarin lion,\""; + mes "\"For prey a' holes an' corners tryin;\""; + mes "\"Whyles, on the strong-wing'd tempest flyin,\""; + mes "\"Tirlin' the kirks;\""; + mes "\"Whyles, in the human bosom pryin,\""; + mes "\"Unseen thou lurks.\""; + callsub S_food_menu; + mes "\"I've heard my rev'rend graunie say,\""; + mes "\"In lanely glens ye like to stray;\""; + mes "\"Or whare auld ruin'd castles gray\""; + mes "\"Nod to the moon,\""; + mes "\"Ye fright the nightly wand'rer's way\""; + mes "\"Wi' eldritch croon.\""; + callsub S_food_menu; + mes "\"When twilight did my graunie summon\""; + mes "\"To say her pray'rs, douce honest woman!\""; + mes "\"Aft yont the dike she's heard you bummin,\""; + mes "\"Wi' eerie drone;\""; + mes "\"Or, rustlin thro' the boortrees comin,\""; + mes "\"Wi' heavy groan.\""; + callsub S_food_menu; + mes "\"Ae dreary, windy, winter night,\""; + mes "\"The stars shot down wi' sklentin light,\""; + mes "\"Wi' you mysel I gat a fright,\""; + mes "\"Ayont the lough;\""; + mes "\"Ye like a rash-buss stood in sight,\""; + mes "\"Wi' waving sugh.\""; + callsub S_food_menu; + mes "\"The cudgel in my nieve did shake,\""; + mes "\"Each bristl'd hair stood like a stake,\""; + mes "\"When wi' an eldritch, stoor 'Quaick, quaick,'\""; + mes "\"Amang the springs,\""; + mes "\"Awa ye squatter'd like a drake,\""; + mes "\"On whistling wings.\""; + callsub S_food_menu; + mes "\"Let warlocks grim an' wither'd hags\""; + mes "\"Tell how wi' you on ragweed nags\""; + mes "\"They skim the muirs an' dizzy crags\""; + mes "\"Wi' wicked speed;\""; + mes "\"And in kirk-yards renew their leagues,\""; + mes "\"Owre howket dead.\""; + callsub S_food_menu; + mes "\"Thence, countra wives wi' toil an' pain\""; + mes "\"May plunge an' plunge the kirn in vain;\""; + mes "\"For oh! the yellow treasure's taen\""; + mes "\"By witchin skill;\""; + mes "\"An' dawtet, twal-pint hawkie's gaen\""; + mes "\"As yell's the bill.\""; + callsub S_food_menu; + mes "\"Thence, mystic knots mak great abuse,\""; + mes "\"On young guidmen, fond, keen, an' croose;\""; + mes "\"When the best wark-lume i' the house,\""; + mes "\"By cantraip wit,\""; + mes "\"Is instant made no worth a louse,\""; + mes "\"Just at the bit.\""; + callsub S_food_menu; + mes "\"When thowes dissolve the snawy hoord,\""; + mes "\"An' float the jinglin icy-boord,\""; + mes "\"Then water-kelpies haunt the foord\""; + mes "\"By your direction,\""; + mes "\"An' nighted trav'lers are allur'd\""; + mes "\"To their destruction.\""; + callsub S_food_menu; + mes "\"And aft your moss-traversing spunkies\""; + mes "\"Decoy the wight that late an drunk is:\""; + mes "\"The bleezin, curst, mischievous monkeys\""; + mes "\"Delude his eyes,\""; + mes "\"Till in some miry slough he sunk is,\""; + mes "\"Ne'er mair to rise.\""; + callsub S_food_menu; + mes "\"When Masons' mystic word an grip\""; + mes "\"In storms an' tempests raise you up,\""; + mes "\"Some cock or cat your rage maun stop,\""; + mes "\"Or, strange to tell!\""; + mes "\"The youngest brither ye wad whip\""; + mes "\"Aff straught to hell!\""; + callsub S_food_menu; + mes "\"Lang syne, in Eden'd bonie yard,\""; + mes "\"When youthfu' lovers first were pair'd,\""; + mes "\"An all the soul of love they shar'd,\""; + mes "\"The raptur'd hour,\""; + mes "\"Sweet on the fragrant flow'ry swaird,\""; + mes "\"In shady bow'r;\""; + callsub S_food_menu; + mes "\"Then you, ye auld snick-drawin dog!\""; + mes "\"Ye cam to Paradise incog,\""; + mes "\"And play'd on man a cursed brogue,\""; + mes "\"(Black be your fa'!)\""; + mes "\"An gied the infant warld a shog,\""; + mes "\"Maist ruin'd a'.\""; + callsub S_food_menu; + mes "\"D'ye mind that day, when in a bizz,\""; + mes "\"Wi' reeket duds an reestet gizz,\""; + mes "\"Ye did present your smoutie phiz\""; + mes "\"Mang better folk,\""; + mes "\"An' sklented on the man of Uz\""; + mes "\"Your spitefu' joke?\""; + callsub S_food_menu; + mes "\"An' how ye gat him i' your thrall,\""; + mes "\"An' brak him out o' house and hal',\""; + mes "\"While scabs and blotches did him gall,\""; + mes "\"Wi' bitter claw,\""; + mes "\"An' lows'd his ill-tongued, wicked scaul,\""; + mes "\"Was warst ava?\""; + callsub S_food_menu; + mes "\"But a' your doings to rehearse,\""; + mes "\"Your wily snares an' fechtin fierce,\""; + mes "\"Sin' that day Michael did you pierce,\""; + mes "\"Down to this time,\""; + mes "\"Wad ding a Lallan tongue, or Erse,\""; + mes "\"In prose or rhyme.\""; + callsub S_food_menu; + mes "\"An' now, Auld Cloots, I ken ye're thinkin,\""; + mes "\"A certain Bardie's rantin, drinkin,\""; + mes "\"Some luckless hour will send him linkin,\""; + mes "\"To your black pit;\""; + mes "\"But faith! he'll turn a corner jinkin,\""; + mes "\"An' cheat you yet.\""; + callsub S_food_menu; + mes "\"But fare you weel, Auld Nickie-ben!\""; + mes "\"O wad ye tak a thought an' men'!\""; + mes "\"Ye aiblins might--I dinna ken--\""; + mes "\"Still hae a stake:\""; + mes "\"I'm wae to think upo' yon den,\""; + mes "\"Ev'n for your sake!\""; + next; + mes "\"Well, that was the poem. What do you think of it?\""; + menu + "It was a bit long and kind of hard to understand, but thanks for reading.", L_Next; + +L_Next: + mes "[Shannon]"; + mes "\"Well, thanks for coming to the supper. Also, thanks for helping me make it through the poem. Here, take this hat. When you wear it, wear it with the class you showed me today. Happy Burns' Supper!\""; + getinventorylist; + if (@inventorylist_count == 100) + goto L_Full_Inv; + if (FLAGS & FLAG_HAS_BOWLER_BURNSDAY) goto L_Get_SteamTopHat; + + getitem "BowlerHat", 1; + FLAGS = FLAGS | FLAG_HAS_BOWLER_BURNSDAY; + close; + +L_Get_SteamTopHat: + getitem "SteamTopHat", 1; + FLAGS = FLAGS | FLAG_HAS_STEAMPUNK_BURNSDAY; + close; + +L_No_Event: + mes "[Shannon]"; + mes "\"I'm a traveling poet and admirer of Robert Burns.\""; + close; + +L_Event_Done: + mes "[Shannon]"; + mes "\"Ah, my dear friend. Good to see you again in this remarkable time of the year.\""; + next; + mes "\"Welcome to Dimond's Cove. We are celebrating Robert Burns with supper and poems. You provide the supper and I'll provide a poem by Robert Burns. He was otherwise known as 'The Bard' and wrote many poems. The music of language is I love most. The language of poetry. While his accent is thick, his poems tell stories that stir the soul. I'll read a poem by him and you can tell me what you think.\""; + next; + mes "\"O thou! whatever title suit thee,--\""; + mes "\"Auld Hornie, Satan, Nick, or Clootie!\""; + mes "\"Wha in yon cavern, grim an' sootie,\""; + mes "\"Clos'd under hatches,\""; + mes "\"Spairges about the brunstane cootie\""; + mes "\"To scaud poor wretches!\""; + next; + mes "\"Hear me, Auld Hangie, for a wee,\""; + mes "\"An' let poor damned bodies be;\""; + mes "\"I'm sure sma' pleasure it can gie,\""; + mes "\"E'en to a deil,\""; + mes "\"To skelp an' scaud poor dogs like me,\""; + mes "\"An' hear us squeel!\""; + next; + mes "\"Great is thy pow'r, an' great thy fame;\""; + mes "\"Far ken'd an' noted is thy name;\""; + mes "\"An' tho' yon lowin heugh's thy hame,\""; + mes "\"Thou travels far;\""; + mes "\"An' faith! thou's neither lag nor lame,\""; + mes "\"Nor blate nor scaur.\""; + next; + mes "\"Whyles, ranging like a roarin lion,\""; + mes "\"For prey a' holes an' corners tryin;\""; + mes "\"Whyles, on the strong-wing'd tempest flyin,\""; + mes "\"Tirlin' the kirks;\""; + mes "\"Whyles, in the human bosom pryin,\""; + mes "\"Unseen thou lurks.\""; + next; + mes "\"I've heard my rev'rend graunie say,\""; + mes "\"In lanely glens ye like to stray;\""; + mes "\"Or whare auld ruin'd castles gray\""; + mes "\"Nod to the moon,\""; + mes "\"Ye fright the nightly wand'rer's way\""; + mes "\"Wi' eldritch croon.\""; + next; + mes "\"When twilight did my graunie summon\""; + mes "\"To say her pray'rs, douce honest woman!\""; + mes "\"Aft yont the dike she's heard you bummin,\""; + mes "\"Wi' eerie drone;\""; + mes "\"Or, rustlin thro' the boortrees comin,\""; + mes "\"Wi' heavy groan.\""; + next; + mes "\"Ae dreary, windy, winter night,\""; + mes "\"The stars shot down wi' sklentin light,\""; + mes "\"Wi' you mysel I gat a fright,\""; + mes "\"Ayont the lough;\""; + mes "\"Ye like a rash-buss stood in sight,\""; + mes "\"Wi' waving sugh.\""; + next; + mes "\"The cudgel in my nieve did shake,\""; + mes "\"Each bristl'd hair stood like a stake,\""; + mes "\"When wi' an eldritch, stoor 'Quaick, quaick,'\""; + mes "\"Amang the springs,\""; + mes "\"Awa ye squatter'd like a drake,\""; + mes "\"On whistling wings.\""; + next; + mes "\"Let warlocks grim an' wither'd hags\""; + mes "\"Tell how wi' you on ragweed nags\""; + mes "\"They skim the muirs an' dizzy crags\""; + mes "\"Wi' wicked speed;\""; + mes "\"And in kirk-yards renew their leagues,\""; + mes "\"Owre howket dead.\""; + next; + mes "\"Thence, countra wives wi' toil an' pain\""; + mes "\"May plunge an' plunge the kirn in vain;\""; + mes "\"For oh! the yellow treasure's taen\""; + mes "\"By witchin skill;\""; + mes "\"An' dawtet, twal-pint hawkie's gaen\""; + mes "\"As yell's the bill.\""; + next; + mes "\"Thence, mystic knots mak great abuse,\""; + mes "\"On young guidmen, fond, keen, an' croose;\""; + mes "\"When the best wark-lume i' the house,\""; + mes "\"By cantraip wit,\""; + mes "\"Is instant made no worth a louse,\""; + mes "\"Just at the bit.\""; + next; + mes "\"When thowes dissolve the snawy hoord,\""; + mes "\"An' float the jinglin icy-boord,\""; + mes "\"Then water-kelpies haunt the foord\""; + mes "\"By your direction,\""; + mes "\"An' nighted trav'lers are allur'd\""; + mes "\"To their destruction.\""; + next; + mes "\"And aft your moss-traversing spunkies\""; + mes "\"Decoy the wight that late an drunk is:\""; + mes "\"The bleezin, curst, mischievous monkeys\""; + mes "\"Delude his eyes,\""; + mes "\"Till in some miry slough he sunk is,\""; + mes "\"Ne'er mair to rise.\""; + next; + mes "\"When Masons' mystic word an grip\""; + mes "\"In storms an' tempests raise you up,\""; + mes "\"Some cock or cat your rage maun stop,\""; + mes "\"Or, strange to tell!\""; + mes "\"The youngest brither ye wad whip\""; + mes "\"Aff straught to hell!\""; + next; + mes "\"Lang syne, in Eden'd bonie yard,\""; + mes "\"When youthfu' lovers first were pair'd,\""; + mes "\"An all the soul of love they shar'd,\""; + mes "\"The raptur'd hour,\""; + mes "\"Sweet on the fragrant flow'ry swaird,\""; + mes "\"In shady bow'r;\""; + next; + mes "\"Then you, ye auld snick-drawin dog!\""; + mes "\"Ye cam to Paradise incog,\""; + mes "\"And play'd on man a cursed brogue,\""; + mes "\"(Black be your fa'!)\""; + mes "\"An gied the infant warld a shog,\""; + mes "\"Maist ruin'd a'.\""; + next; + mes "\"D'ye mind that day, when in a bizz,\""; + mes "\"Wi' reeket duds an reestet gizz,\""; + mes "\"Ye did present your smoutie phiz\""; + mes "\"Mang better folk,\""; + mes "\"An' sklented on the man of Uz\""; + mes "\"Your spitefu' joke?\""; + next; + mes "\"An' how ye gat him i' your thrall,\""; + mes "\"An' brak him out o' house and hal',\""; + mes "\"While scabs and blotches did him gall,\""; + mes "\"Wi' bitter claw,\""; + mes "\"An' lows'd his ill-tongued, wicked scaul,\""; + mes "\"Was warst ava?\""; + next; + mes "\"But a' your doings to rehearse,\""; + mes "\"Your wily snares an' fechtin fierce,\""; + mes "\"Sin' that day Michael did you pierce,\""; + mes "\"Down to this time,\""; + mes "\"Wad ding a Lallan tongue, or Erse,\""; + mes "\"In prose or rhyme.\""; + next; + mes "\"An' now, Auld Cloots, I ken ye're thinkin,\""; + mes "\"A certain Bardie's rantin, drinkin,\""; + mes "\"Some luckless hour will send him linkin,\""; + mes "\"To your black pit;\""; + mes "\"But faith! he'll turn a corner jinkin,\""; + mes "\"An' cheat you yet.\""; + next; + mes "\"But fare you weel, Auld Nickie-ben!\""; + mes "\"O wad ye tak a thought an' men'!\""; + mes "\"Ye aiblins might--I dinna ken--\""; + mes "\"Still hae a stake:\""; + mes "\"I'm wae to think upo' yon den,\""; + mes "\"Ev'n for your sake!\""; + next; + mes "\"Well, that was the poem. What do you think of it?\""; + menu + "It was a bit long and kind of hard to understand, but thanks for reading.", L_close; + +L_Full_Inv: + mes "[Shannon]"; + mes "\"On second thought, your possessions seems to be a burden to you.\""; + next; + mes "\"Maybe you should turn away from the mundane world and get rid of this burden to change your view to the beauty of poetry.\""; + close; + +S_food_menu: + setarray @choice_idx, 0,0,0,0,0,0; + setarray @choice$, "","","","","",""; + + @C_steak = 676; + @C_chickenleg = 562; + @C_redapple = 535; + @C_greenapple = 719; + @C_beer = 539; + + // counter of available answers + @choices_nr = 0; + + if (countitem("Steak") == 0) + goto L_Nosteaks; + @choice_idx[@choices_nr] = @C_steak; + @choice$[@choices_nr] = "Offer him a steak."; + @choices_nr = @choices_nr + 1; + goto L_Nosteaks; + +L_Nosteaks: + if (countitem("ChickenLeg") == 0) + goto L_Nochickenleg; + @choice_idx[@choices_nr] = @C_chickenleg; + @choice$[@choices_nr] = "Offer him a chicken leg."; + @choices_nr = @choices_nr + 1; + goto L_Nochickenleg; + +L_Nochickenleg: + if (countitem("RedApple") == 0) + goto L_Noredapple; + @choice_idx[@choices_nr] = @C_redapple; + @choice$[@choices_nr] = "Offer him a red apple."; + @choices_nr = @choices_nr + 1; + goto L_Noredapple; + +L_Noredapple: + if (countitem("GreenApple") == 0) + goto L_Nogreenapple; + @choice_idx[@choices_nr] = @C_greenapple; + @choice$[@choices_nr] = "Offer him a green apple."; + @choices_nr = @choices_nr + 1; + goto L_Nogreenapple; + +L_Nogreenapple: + if (countitem("Beer") == 0) + goto L_NoBeer; + @choice_idx[@choices_nr] = @C_beer; + @choice$[@choices_nr] = "Offer him a beer."; + @choices_nr = @choices_nr + 1; + goto L_NoBeer; + +L_NoBeer: + @choice_idx[@choices_nr] = @C_nevermind; + @choice$[@choices_nr] = "Leave"; + + menu + @choice$[0],L_MenuItems, + @choice$[1],L_MenuItems, + @choice$[2],L_MenuItems, + @choice$[3],L_MenuItems, + @choice$[4],L_MenuItems, + @choice$[5],L_MenuItems, + @choice$[6],L_MenuItems, + @choice$[7],L_MenuItems, + @choice$[8],L_MenuItems, + @choice$[9],L_MenuItems, + @choice$[10],L_MenuItems; + +L_MenuItems: + @choose = @menu - 1; + if (@choice_idx[@choose] == 0) + goto L_close; + if ((countitem("Steak") != 0) && (@choice_idx[@choose] == @C_steak)) + goto L_RmItem; + if ((countitem("ChickenLeg") != 0) && (@choice_idx[@choose] == @C_chickenleg)) + goto L_RmItem; + if ((countitem("RedApple") != 0) && (@choice_idx[@choose] == @C_redapple)) + goto L_RmItem; + if ((countitem("GreenApple") != 0) && (@choice_idx[@choose] == @C_greenapple)) + goto L_RmItem; + if ((countitem("Beer") != 0) && (@choice_idx[@choose] == @C_beer)) + goto L_RmItem; + + // fallthrough only when player remove the items while in menu, trying to cheat + // the quest will need to be started again + mes "\"What you are offering, you do not have. Do not try to betray me. Come back when you have better morals.\""; + close; + +L_RmItem: + delitem @choice_idx[@choose], 1; + return; + +L_close: + close; +} + +010-2,27,30,0 script Bar Rules NPC400,{ + mes "Dimonds Cove Bar Rules"; + next; + mes "No excessive drinking!"; + mes "If your sprite starts to stagger we will ask you to leave."; + next; + mes "No offensive chat."; + mes "This is a nice establishment."; + mes "Crude and offensive behavior will be reported to TMW GM's."; + next; + mes "Please be respectful of others."; + mes "Not everyone has the same experience and should all be treated"; + mes "with equal respect."; + next; + mes "Thank You,"; + mes "Dimonds Cove Management"; + close; +} + +010-2,71,38,0 script Store Policy#1 NPC400,{ + mes "All sales are final."; + mes "Returns are subject to a 50% re-stocking fee."; + close; +} + +010-2,77,38,0 script Store Policy#2 NPC400,{ + mes "All sales are final."; + mes "Returns are subject to a 50% re-stocking fee."; + close; +} + +010-2,36,30,0 script Directions NPC400,{ + mes "This way to the Dimonds Cove Inn."; + mes "Five star accommodation for the weary traveler!"; + close; +} + +010-2,80,32,0 script Dimonds Cove 1 NPC400,{ + mes "The Story of Dimonds Cove"; + next; + mes "One day Dimond D. Stone dreamed of her own restaurant."; + mes "Dimond sold her food alone in this spot for some time,"; + mes "longing for the day she would have a building."; + mes "She met an adventurer named Merlin outside of the"; + mes "desert mines one day."; + next; + mes "They became friends and Dimond told Merlin about her idea."; + mes "Merlin was a accomplished carpenter and wanted to make a new"; + mes "place in the world. He told Dimond that he would make her"; + mes "restaurant for her. He gathered the tools and after much"; + mes "hard work, Dimonds Cove was built."; + next; + mes "(See Dimonds Cove 2)"; + close; +} + +010-2,85,32,0 script Dimonds Cove 2 NPC400,{ + mes "List of Events at Dimonds Cove"; + mes "January 2008 - Construction of Dimonds Cove."; + close; +} + + +010-2,71,30,0 script Inn NPC400,{ + mes "Welcome to the Dimonds Cove Inn"; + mes "Rooms are 200 gp a night."; + mes "Plese check in with Basil."; + close; +} + + +010-2,24,27,0 shop Bartender NPC112,539:87,567:250,568:250 + +010-2,32,34,0 shop Waitress NPC139,519:50,533:55,534:45,562:125,676:100 + +010-2,85,41,0 shop Blacksmith NPC146,545:5000,529:2,603:1000 + +010-2,65,41,0 shop General Store#dimond NPC137,586:500,524:800,544:2000,632:500,528:500,735:500 + +010-2,75,68,0 script Basil NPC107,{ + @npcname$ = "Basil the Inn Keeper"; + @Cost = 200; + callfunc "Inn"; + end; +} diff --git a/npc/00000SAVE/010-2_Dimond/doug.txt b/npc/00000SAVE/010-2_Dimond/doug.txt new file mode 100644 index 000000000..e16a29972 --- /dev/null +++ b/npc/00000SAVE/010-2_Dimond/doug.txt @@ -0,0 +1,21 @@ + +010-2,68,87,0 script Doug NPC113,{ + mes "[Doug]"; + mes "\"This room is too dark. I want to brighten it up.\""; + next; + + @dq_level = 15; + @dq_cost = 10; + @dq_count = 5; + @dq_name$ = "CaveSnakeLamp"; + @dq_friendly_name$ = "Cave Snake Lamps"; + @dq_money = 1000; + @dq_exp = 1500; + + callfunc "DailyQuest"; + + next; + mes "[Doug]"; + mes "\"Too bad these lamps wear off after a while...\""; + close; +} diff --git a/npc/00000SAVE/010-2_Dimond/loratay.txt b/npc/00000SAVE/010-2_Dimond/loratay.txt new file mode 100644 index 000000000..677bd18a7 --- /dev/null +++ b/npc/00000SAVE/010-2_Dimond/loratay.txt @@ -0,0 +1,1155 @@ +010-2,85,85,0 script Lora Tay NPC151,{ + set @ROBE_COCOONS_NR, 150; // must be multiple of ten + @ROBE_ZENY = 10000; + set @ROBE_SHEETS_NR, 6; // number of silk sheets required for the silk robe. Must be less than 10. + set @ROBE_SHEETS_ZENY, 6000; // price of the silk robe when bringing silk sheets. + set @Robe_with_sheets, 0; // will be set to 1 if silk robe is made with sheets + @FINEDRESS_COCOONS = 180; + @SORCERER_ROBE_SEW_ZENY = 25000; + @SORCERER_ROBE_NUM_COTTON_CLOTH = 2; + setarray @item_colors$, "red", "green", "dark blue", "yellow", "light blue", "pink", "black", "orange", "purple", "dark green", "white"; + + if (@loratay_asking_robe == 1) goto L_ExamineSorcererRobe; + if (QUEST_WG_state == 10) goto L_agostine_menu; + if (QUEST_WG_state == 11 || QUEST_WG_state == 12) goto L_regular_intro; + if (QUEST_WG_state == 13) goto L_proposal_intro; + if (QUEST_WG_state == 14) goto L_proposal_show_materials; + if (QUEST_WG_state == 15) goto L_proposal_search_items; + if (QUEST_WG_state == 16) goto L_proposal_retrieve_design; + if (QUEST_WG_state == 17) goto L_proposal_bringing_design; + if (QUEST_WG_state == 18) goto L_proposal_wait_dress_finished; + if (QUEST_WG_state == 19) goto L_proposal_dress_finished; + if (QUEST_WG_state >= 20 && QUEST_WG_state < 23) goto L_proposal_deliver_dress; + if (QUEST_WG_state >= 23) goto L_regular_intro; + + @t = rand(3); + if (@t == 0) goto L_Intro_0; + if (@t == 1) goto L_Intro_1; + + mes "You see a middle-aged woman furiously sewing away at what appears to be a very expensive dress. Her fingers are moving so nimbly that you find it near-impossible to follow the needle."; + goto L_Intro_over; + +L_Intro_0: + mes "You notice a middle-aged woman carefully drawing lines on a large sheet of cotton."; + goto L_Intro_over; + +L_Intro_1: + mes "You see a middle-aged woman cautiously but surprisingly swiftly cutting out shapes from a huge cotton sheet. The scissors glide along the cloth as if it were butter, never leaving the premarked lines."; + goto L_Intro_over; + +L_Intro_over: + next; + mes "She suddenly stops and looks up."; + next; + mes "\"Now who are you, and what are you doing here?\""; + mes "She squints, pushes her thick spectacles up the bridge of her nose and eyes you suspiciously."; + next; + + @agostine_msg0$ = ""; + @agostine_msg1$ = ""; + + if (QUEST_WG_state >= 1) + @agostine_msg0$ = "Do you know Agostine?"; + if ((QUEST_WG_state >= 9) && (countitem("FurBoots"))) + @agostine_msg1$ = "Can you make fur boots, like Agostine?"; + + menu + "Hello! My name is " + strcharinfo(0) + ".", L_hello_0, + "Hello; are you a tailor?", L_hello_1, + "Can you make something for me?", L_hello_2, + @agostine_msg0$, L_agostine_0, + @agostine_msg1$, L_agostine_1; + +L_hello_0: + mes "She raises an eyebrow."; + mes "\"That,\", she notes dryly, \"is hardly my fault. And now I would greatly appreciate it if you were to get out of here and leave me to my work!\""; + close; + +L_hello_1: + mes "She frowns."; + mes "\"No, I am an accupuncturist, I just happen to practice on cloth! Get out of here with your silly questions!\""; + close; + +L_hello_2: + mes "She glares at you indignantly."; + mes "\"Do you even know whom you are talking to? I am Lora Tay, greatest of the seven seamstresses of the South!\""; + next; + mes "[Lora Tay the Seamstress]"; + mes "\"I do not work for petty peasants or arrogant adventurers. Get out of my sight!\""; + mes "She waves you away and returns to her work."; + close; + +L_agostine_0: + if (QUEST_WG_state < 1) + close; + mes "She shoots an incensed glare at you."; + mes "\"Ah, Agostine! The 'legendary tailor'! Now who has not heard of him, been inspired by him! Such charisma! Such popularity! Such unprecedented lack of talent!\""; + mes "You notice that she prononuces the 't's as if she were trying to slap someone."; + next; + mes "\"Please spare me your tales of this fool. He couldn't mend a sock without getting himself trapped inside!\""; + mes "She frowns and turns back to her work, clearly not interested in discussing the matter further."; + close; + +L_agostine_1: + if ((QUEST_WG_state < 9) || (countitem (655) == 0)) + close; + mes "[Lora Tay the Seamstress]"; + mes "She glares at your boots, her lips forming barely more than a thin line. Deep furrows form above her brows."; + mes "\"I can't believe it! He copied Illana's design but used fluffy fur in place of ice wolvern fur-- Fluffy fur! Of all things! Who would wear such an atrocity of fashion! Everyone knows that you need ice-white, not pale-white, to go with such leather!\""; + next; + mes "[Lora Tay the Seamstress]"; + mes "She looks at them more closely."; + mes "\"This insolent upstart! Even worse, he copied my very own double-backward cross-stitch pattern... I can't believe it!\""; + next; + mes "[Lora Tay the Seamstress]"; + mes "Angry red spots begin to form on her cheeks."; + mes "\"Get those... things out of my sight before I forget myself!\""; + if (QUEST_WG_state == 9) + QUEST_WG_state = 10; + close; + +L_agostine_menu: + mes "[Lora Tay the Seamstress]"; + mes "The seamstress looks up at you from her work."; + mes "\"I do hope that you have not had any more dealings with this... this lumberjack of a tailor?\""; + next; + if (countitem("WinterGloves") > 0) + menu + "You mean Agostine?", L_agostine_3, + "Actually, he also made me gloves...", L_agostine_2, + "Why don't you like him?", L_agostine_4, + "No, none, really.", L_agostine_5; + menu + "You mean Agostine?", L_agostine_3, + "Why don't you like him?", L_agostine_4, + "No, none, really.", L_agostine_5; + +L_agostine_2: + if ((QUEST_WG_state < 9) || (countitem("WinterGloves") == 0)) + close; + mes "[Lora Tay the Seamstress]"; + mes "Lora inspects your gloves, shock apparent on her face."; + mes "\"Winter gloves? And he managed the join stitches without adding a single crease... no, that can't be the Agostine we were talking about...\""; + mes "Without asking, she takes your gloves and inspects them further."; + next; + mes "[Lora Tay the Seamstress]"; + mes "\"Triple inverted crossbar... he stole another of my stitching patterns! Except... no, that couldn't hold... what kind of yarn...\""; + mes "Torn between excitement, worry, and latent disgust, she frantically turns the gloves from side to side, looking for obvious flaws, her face reddening."; + next; + mes "[Lora Tay the Seamstress]"; + mes "\"No, it's perfect... Inconceivable! How could that little upstart... I don't believe it!\""; + mes "Breathing heavily with something that might be anger or confusion, she turns them inside out."; + next; + mes "[Lora Tay the Seamstress]"; + mes "She slides her fingers over the now-exposed inside whilst the color of her face approaches that of an over-ripe tomato."; + mes "\"Almost perfectly smooth...\", she whispers."; + next; + mes "[Lora Tay the Seamstress]"; + mes "She jumps up in a fit of sudden rage."; + mes "\"That's impossible! Where did he learn to sew like that! How did he cut the shapes so perfectly! When did he..."; + mes "Suddenly, she breaks into a cough."; + next; + mes "[Lora Tay the Seamstress]"; + mes "\"*cough* ... can't possibly... *cough*...\""; + mes "Lora sinks back on her chair, trying to control her cough."; + next; + if (countitem("BottleOfWater")) + menu + "(sneak out of the room)", L_End, + "Are you alright?", L_Next, + "Here, have a bottle of water...", L_Give_water, + "Can I help you?", L_Next; + + menu + "(sneak out of the room)", L_End, + "Are you alright?", L_Next, + "Can I help you?", L_Next; + +L_Next: + mes "[Lora Tay the Seamstress]"; + mes "She holds out your gloves for you to pick up, then waves you out of the room. Fortunately, her cough seems to be slowly subsiding."; + close; + +L_agostine_3: + mes "[Lora Tay the Seamstress]"; + mes "She frowns at you."; + mes "\"What other self-absorbed tailor-pretends with the sewing skill of a mouboo are there around? Stop wasting my time.\""; + close; + +L_agostine_4: + mes "[Lora Tay the Seamstress]"; + mes "\"Is it not obvious? We are talking about someone so self-absorbed that he chose to ignore the advice of myself, greatest of the seven southern seamstresses! I cannot stand such arrogance.\""; + close; + +L_agostine_5: + mes "[Lora Tay the Seamstress]"; + mes "\"Good for you. That arrogant good-for-nothing couldn't tell a piece of cotton from chain mail if he wiped his nose with it!\""; + close; + +L_No_Water: + mes "Checking more closely, you realize that you are out of water."; + mes "You apologise to Lora, though it fortunately seems that her cough is subsiding."; + mes "She waves you out of the room."; + close; + +L_regular_intro: + mes "[Lora Tay the Seamstress]"; + mes "\"Ah, you again. Is there anything in particular you need?\""; + next; + if (QUEST_WG_state == 12) + goto L_Main_menu2; + goto L_Main_menu; + +L_Give_water: + if (countitem("BottleOfWater") == 0) + goto L_No_Water; + delitem "BottleOfWater", 1; + QUEST_WG_state = 11; + + @xpval = 50000; + + getexp @xpval, 0; + mes "[Lora Tay the Seamstress]"; + mes "Lora grabs your water bottle and take a deep sip. Slowly, her head regains a more natural color. As she puts the bottle down, her cough seems to have subsided."; + mes "\"Thank you, dear; that was just the right thing at the right time.\""; + mes "[You gain " + @xpval + " experience points]"; + next; + mes "[Lora Tay the Seamstress]"; + mes "She hands you the winter gloves again."; + mes "\"Now what happened I don't know, but this wasn't made by the Agostine I remember. But I shan't be made a fool out of by one such as him.\""; + next; + mes "[Lora Tay the Seamstress]"; + mes "\"If HE can sew petty every-day items for ordinary peasants, then so can I. Very well, is there anything in particular that you need made? I shall show you how a proper seamstress operates!\""; + next; + + if (QUEST_WG_state == 12) + goto L_Main_menu2; + goto L_Main_menu; + +L_Main_menu: + menu + "Can you trim something for me?", L_trim, + "Can you lengthen something for me?", L_lengthen, + "Can you make me a shirt?", L_Shirt, + "Can you make me a tank top?", L_tanktop, + "Can you make me a cape?", L_cape, + "Can you make fur boots for me?", L_Fur, + "Can you make winter gloves me?", L_Fur, + "Can you sew a robe for me?", L_robe, + "Can you make a desert hat for me?", L_desert_hat, + "Can you enhance a sorcerer robe with another line color?", L_sorcerer_robe_linecolor, + "Goodbye for now.", L_End; + +L_Fur: + mes "[Lora Tay the Seamstress]"; + mes "\"From what? Fluffy fur? I won't work with such lowly materials.\""; + next; + goto L_Main_menu; + +L_Main_menu2: + menu + "Can you trim something for me?", L_trim, + "Can you lengthen something for me?", L_lengthen, + "Can you make me a shirt?", L_Shirt, + "Can you make me a tank top?", L_tanktop, + "Can you make me a cape?", L_cape, + "Can you make fur boots for me?", L_Fur1, + "Can you make winter gloves me?", L_Fur1, + "Can you sew a robe for me?", L_robe, + "Can you make a desert hat for me?", L_desert_hat, + "Actually...I have a proposal for you...", L_agostine_proposal, + "Goodbye for now.", L_End; + +L_Fur1: + mes "[Lora Tay the Seamstress]"; + mes "\"From what? Fluffy fur? I won't work with such lowly materials.\""; + next; + goto L_Main_menu2; + +L_agostine_proposal: + mes "[Lora Tay the Seamstress]"; + mes "\"What kind of proposal are you asking of me?\""; + next; + + menu + "I have talked to Agostine and he needs your help.", L_Next1, + "I forgot...", L_Main_menu2; + +L_Next1: + mes "[Lora Tay the Seamstress]"; + mes "\"That cheat! What could he possibly want from me?"; + mes "We don't even have the same style in seaming. Is this a joke?\""; + next; + + menu + "It's no joke. He needs your help in creating a new fashion!", L_Next2, + "Yeah you're right, he was probably joking.", L_End; + +L_Next2: + mes "[Lora Tay the Seamstress]"; + mes "\"Well it depends what he wants from me."; + mes "Go see Agostine, ask him what he's planning and I will think about it.\""; + + QUEST_WG_state = 13; + + close; + +L_proposal_intro: + mes "Lora Tay seems lost in her thoughts... "; + menu + "Sorry to disturb you, but...", L_Main_menu, + "I better go talk to Agostine.", L_End; + +L_proposal_show_materials: + mes "[Lora Tay the Seamstress]"; + mes "\"Did you talk to Agostine about his idea?\""; + next; + menu + "Yes, he explained he saw a dress in a dream and gave me these materials.", L_Next3, + "No, that guy is a total wacko.", L_End; + +L_Next3: + mes "[Lora Tay the Seamstress]"; + mes "\"Wow these are such fine materials!"; + mes "These are certainly not for just any ordinary clothes..."; + mes "He must be thinking of something magnificent.\""; + next; + + menu + "He said this garment would be his first dress creation and that he wanted it to be fabulous!", L_Next4; + +L_Next4: + mes "[Lora Tay the Seamstress]"; + mes "\"Fine I will accept his offer..."; + mes "But the materials he has given you need some sewing on the edges.\""; + next; + mes "[Lora Tay the Seamstress]"; + mes "\"I will fix them, but I cannot use normal threading to fix these materials."; + mes "I will need a soft thin thread so I won't spoil the textures.\""; + next; + goto L_proposal_search_items; + +L_proposal_search_items: + mes "[Lora Tay the Seamstress]"; + mes "\"Please bring me " + @FINEDRESS_COCOONS + " silk cocoons."; + mes "This should cover the materials needed, and will leave extra for sewing the pieces together later on.\""; + next; + + menu + "I will go get them right away!", L_Next5, + "Here you are.", L_proposal_give_items, + @FINEDRESS_COCOONS+" silk cocoons for a dress? Find somebody else.", L_End; + +L_Next5: + QUEST_WG_state = 15; + close; + +L_proposal_not_enough_items: + mes "[Lora Tay the Seamstress]"; + mes "\"This is not funny. I need " + @FINEDRESS_COCOONS + " silk cocoons. No less."; + close; + +L_proposal_give_items: + if (countitem ("SilkCocoon") < @FINEDRESS_COCOONS) + goto L_proposal_not_enough_items; + delitem "SilkCocoon", @FINEDRESS_COCOONS; + QUEST_WG_state = 16; + + mes "[Lora Tay the Seamstress]"; + mes "\"Great, now I can spin the silk threading and fix this mess made of these fine materials."; + mes "While I do this, you will need to go get the design drawings from Agostine..."; + mes "Every tailor puts their designs on paper before they forget about it.\""; + next; + goto L_proposal_retrieve_design; + +L_proposal_retrieve_design: + mes "[Lora Tay the Seamstress]"; + mes "\"May you go retrieve the design from Agostine?\""; + next; + menu + "Certainly I'll be back soon!", L_End, + "Actually I want something else...", L_Main_menu; + +L_proposal_bringing_design: + mes "[Lora Tay the Seamstress]"; + mes "\"Welcome back, did you get the drawings I requested?\""; + next; + menu + "Here they are!", L_Next6; + +L_Next6: + mes "[Lora Tay the Seamstress]"; + mes "\"Wonderful, this dress design is magnificent!"; + mes "I am done with the threading but I will now need to sew these materials together into the design.\""; + next; + QUEST_WG_state = 18; + goto L_proposal_wait_dress_finished; + +L_proposal_wait_dress_finished: + // Sets @time_start to the current time + // if not set yet, or if the player logged off. + if (@time_start == 0) set @time_start, gettimetick(2); + if (gettimetick(2) - @time_start > 30) + goto L_proposal_dress_finished; + mes "[Lora Tay the Seamstress]"; + mes "\"It will take some time to have the dress finished."; + mes "Meanwhile, why don't you go take some air outside?\""; + close; + +L_proposal_dress_finished: + QUEST_WG_state = 19; + mes "[Lora Tay the Seamstress]"; + mes "\"Well it was difficult seaming with such fragile materials."; + mes "But I have done it. The design is finished except for one part of it.\""; + next; + + menu + "Wow it looks great, but what's missing?", L_Next7; + +L_Next7: + mes "[Lora Tay the Seamstress]"; + mes "\"Well there are white flare designs on the bottom of the dress."; + mes "I'm not great with fine cloth design so this might be something Agostine must do on his own."; + next; + + mes "[Lora Tay the Seamstress]"; + mes "\"Please take the unfinished dress to him so he may finish the edges with the cloth.\""; + next; + + menu + "Okay, can't wait to see the finished product! Thanks for your help!", L_Next8; + +L_Next8: + QUEST_WG_state = 20; + close; + +L_proposal_deliver_dress: + mes "[Lora Tay the Seamstress]"; + mes "\"Please take the unfinished dress to him so he may finish the edges with the cloth.\""; + menu + "I'm on my way.", L_End, + "I have a request...", L_Main_menu; + +L_desert_hat: + mes "[Lora Tay the Seamstress]"; + mes "The seamstress sighs."; + mes "\"One of these days it would be nice to have an actual challenge... yes, of course I can make a desert hat. A Cotton Headband, three pieces of cotton cloth. Hmm. And let's add 300 GP to that.\""; + next; + @default_choice$ = "Never mind."; + setarray @items, 724, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149; + setarray @item_names$, "Here is a Cotton Headband.", "Here is a Red Cotton Headband.", "Here is a Green Cotton Headband.", "Here is a Dark Blue Cotton Headband.", "Here is a Yellow Cotton Headband.", "Here is a Light Blue Cotton Headband.", "Here is a Pink Cotton Headband.", "Here is a Black Cotton Headband.", "Here is an Orange Cotton Headband.", "Here is a Puple Cotton Headband.", "Here is a Dark Green Cotton Headband."; + @items_nr = 11; + + callsub S_pick_one_of_many_items; + if (@item == 0) + goto L_Main_menu; + if (@item == 724) + @genitem = 723; + if (@item != 724) + @genitem = @item - 10; + if (countitem(@item) < 1) + goto L_desert_hat_noheadband; + if (countitem("CottonCloth") < 3) + goto L_desert_hat_nocotton; + if (Zeny < 300) + goto L_desert_hat_nogp; + delitem @item, 1; + delitem "CottonCloth", 3; + Zeny = Zeny - 300; + getitem @genitem, 1; + mes "[Lora Tay the Seamstress]"; + mes "\"Now then, this should only take a minute.\""; + mes "The seamstress folds your cotton cloth in a complicated fashion, wraps the resulting bundle into and out of the headband, and finally sews together several loose ends."; + next; + mes "[Lora Tay the Seamstress]"; + mes "The result resembles a huge knot."; + mes "Lora picks two ends and pulls, hard-- to your amazement, the knot unfolds, yielding a Desert Hat."; + mes "\"Here you are.\""; + next; + goto L_Main_menu; + +L_desert_hat_nocotton: + mes "[Lora Tay the Seamstress]"; + mes "\"You're asking me to make a desert hat without enough cloth? Here, have your headband back-- see, that's how much I can do without cloth! And since I'm generous today, you can even keep your GP...\""; + next; + goto L_Main_menu; + +L_desert_hat_nogp: + mes "[Lora Tay the Seamstress]"; + mes "\"No, no, no. 300 GP. That's not that much, I've been told. I can't just work for free, now can I?\""; + next; + goto L_Main_menu; + +L_desert_hat_noheadband: + mes "[Lora Tay the Seamstress]"; + mes "\"Now that is odd. Where did your headband vanish to? Well, I'm not going to make you something as silly as a headband, so get one from elsewhere.\""; + next; + goto L_Main_menu; + +L_trim: + mes "[Lora Tay the Seamstress]"; + mes "\"Trimming... you mean that you can't do that yourself? Well, alright... I suppose I should charge 100 GP and do it.\""; + mes "\"Alright. What is it that you want trimmed?\""; + next; + + @default_choice$ = "Never mind."; + setarray @items, 1202, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 688, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 632, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 648, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189; + setarray @item_names$, "Cotton Shirt", "Red Cotton Shirt", "Green Cotton Shirt", "Dark Blue Cotton Shirt", "Yellow Cotton Shirt", "Light Blue Cotton Shirt", "Pink Cotton Shirt", "Black Cotton Shirt", "Orange Cotton Shirt", "Purple Cotton Shirt", "Dark Green Cotton Shirt", "Tank Top", "Red Tank Top", "Green Tank Top", "Dark Blue Tank Top", "Yellow Tank Top", "Light Blue Tank Top", "Pink Tank Top", "Black Tank Top", "Orange Tank Top", "Purple Tank Top", "Dark Green Tank Top", "Cotton Skirt", "Red Cotton Skirt", "Green Cotton Skirt", "Dark Blue Cotton Skirt", "Yellow Cotton Skirt", "Light Blue Cotton Skirt", "Pink Cotton Skirt", "Black Cotton Skirt", "Orange Cotton Skirt", "Purple Cotton Skirt", "Dark Green Cotton Skirt", "Cotton Trousers", "Red Cotton Trousers", "Green Cotton Trousers", "Dark Blue Cotton Trousers", "Yellow Cotton Trousers", "Light Blue Cotton Trousers", "Pink Cotton Trousers", "Black Cotton Trousers", "Orange Cotton Trousers", "Purple Cotton Trousers", "Dark Green Cotton Trousers"; + @items_nr = 44; + callsub S_pick_one_of_many_items; + if (@item == 0) + goto L_Main_menu; + @delitem = @item; + @genitem = 0; + if (@item == 1202) + @genitem = 688; + if (@item == 688) + @genitem = 689; + if (@item == 632) + @genitem = 771; + if (@item == 648) + @genitem = 586; + if (@item >= 2090 && @item <= 2099) + @genitem = @item + 30; + if (@item >= 2050 && @item <= 2059) + @genitem = @item + 40; + if (@item >= 2100 && @item <= 2109) + @genitem = @item + 70; + if (@item >= 2180 && @item <= 2189) + @genitem = @item - 70; + if (@genitem == 0) + goto L_trim_impossible; + if (Zeny < 100) + goto L_trim_noZeny; + if (countitem(@delitem) < 1) + goto L_Main_menu; + + delitem @delitem, 1; + getitem @genitem, 1; + Zeny = Zeny - 100; + mes "[Lora Tay the Seamstress]"; + mes ""; + mes "\"There you are, dear.\""; + next; + goto L_Main_menu; + +L_trim_impossible: + mes "[Lora Tay the Seamstress]"; // INTERNAL ERROR + mes "\"I don't really want to shorten this any more.\""; + next; + goto L_Main_menu; + +L_trim_noZeny: + mes "[Lora Tay the Seamstress]"; + mes "\"Not enough GP? Well, just do it yourself-- trimming really is trivial.\""; + next; + goto L_Main_menu; + +L_lengthen: + mes "[Lora Tay the Seamstress]"; + mes "\"Naturally, I will need a piece of Cotton Cloth to sew onto it; I must also charge you some... hmm... does 500 GP sound reasonable? Yes, I think I shall charge that.\""; + mes "\"Now, let me see. What is it that you want lengthened?\""; + next; + + @default_choice$ = "Never mind."; + setarray @items, 688, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 689, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 771, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 586, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119; + setarray @item_names$, "Tank Top", "Red Tank Top", "Green Tank Top", "Dark Blue Tank Top", "Yellow Tank Top", "Light Blue Tank Top", "Pink Tank Top", "Black Tank Top", "Orange Tank Top", "Purple Tank Top", "Dark Green Tank Top", "Short Tank Top", "Red Short Tank Top", "Green Short Tank Top", "Dark Blue Short Tank Top", "Yellow Short Tank Top", "Light Blue Short Tank Top", "Pink Short Tank Top", "Black Short Tank Top", "Orange Short Tank Top", "Purple Short Tank Top", "Dark Green Short Tank Top", "Miniskirt", "Red Miniskirt", "Green Miniskirt", "Dark Blue Miniskirt", "Yellow Miniskirt", "Light Blue Miniskirt", "Pink Miniskirt", "Black Miniskirt", "Orange Miniskirt", "Purple Miniskirt", "Dark Green Miniskirt", "Cotton Shorts", "Red Cotton Shorts", "Green Cotton Shorts", "Dark Blue Cotton Shorts", "Yellow Cotton Shorts", "Light Blue Cotton Shorts", "Pink Cotton Shorts", "Black Cotton Shorts", "Orange Cotton Shorts", "Purple Cotton Shorts", "Dark Green Cotton Shorts"; + + @items_nr = 44; + callsub S_pick_one_of_many_items; + if (@item == 0) + goto L_Main_menu; + + @delitem = @item; + @genitem = 0; + if (@item == 688) + @genitem = 1202; + if (@item == 689) + @genitem = 688; + if (@item == 771) + @genitem = 632; + if (@item == 586) + @genitem = 648; + if (@item >= 2120 && @item <= 2129) + @genitem = @item - 30; + if (@item >= 2090 && @item <= 2099) + @genitem = @item - 40; + if (@item >= 2170 && @item <= 2179) + @genitem = @item - 70; + if (@item >= 2110 && @item <= 2119) + @genitem = @item + 70; + if (@genitem == 0) + goto L_lengthen_impossible; + if (Zeny < 500) + goto L_lengthen_noZeny; + if (countitem ("CottonCloth") < 1) + goto L_lengthen_nocotton; + if (countitem(@delitem) < 1) + goto L_Main_menu; + + delitem @delitem, 1; + delitem "CottonCloth", 1; + getitem @genitem, 1; + Zeny = Zeny - 500; + mes "[Lora Tay the Seamstress]"; + mes "The seamstress cuts your piece of cotton cloth into stripes and sews them on. Using some odd liquid, she flattens the seams and borders."; + if (@delitem > 2000) // dyed + mes "She then applies another liquid-- smelling strangely of fermented apples-- to the result, wraps it up, and wrings it tightly. As she unwraps it, you observe to your amazement that the dye has spread to the newly attached area."; + mes "\"There you are, dear.\""; + next; + goto L_Main_menu; + +L_lengthen_nocotton: + mes "[Lora Tay the Seamstress]"; + mes "\"Who do you think I am? The cotton fairy? Get yourself some cloth before you ask me to sew it on.\""; + next; + goto L_Main_menu; + +L_lengthen_noZeny: + mes "[Lora Tay the Seamstress]"; + mes "\"No gold, no sewing.\""; + next; + goto L_Main_menu; + +L_lengthen_impossible: + mes "[Lora Tay the Seamstress]"; // INTERNAL ERROR + mes "\"I really can't lengthen that any more.\""; + next; + goto L_Main_menu; + +L_Shirt: + mes "[Lora Tay the Seamstress]"; + mes "\"Oh, how silly. You can buy those everywhere. Please don't bore me with such trifles, dear.\""; + next; + goto L_Main_menu; + +L_tanktop: + mes "[Lora Tay the Seamstress]"; + mes "\"A tank top? Well, hardly a challenge, but I suppose I could do that. Please get me some cloth-- plain cotton will do-- and, let's see, how does 100,000 GP for my efforts sound?\""; + mes "\"Wait, I keep forgetting, you are just an adventurer... let's make that 1000 GP, then.\""; + next; + goto L_tanktop_menu; + +L_tanktop_menu: + menu + "I think I would like something else.", L_Main_menu, + "A tank top, please (6 Cotton Cloth)", L_tanktop_long, + "A short tank top, please (5 Cotton Cloth)", L_tanktop_short, + "Goodbye for now.", L_End; + +L_tanktop_short: + if (countitem ("CottonCloth") < 5) + goto L_tanktop_ic; + if (Zeny < 1000) + goto L_tanktop_ins_Z; + getinventorylist; + if (@inventorylist_count == 100 && countitem("CottonCloth") > 5) + goto L_TooMany; + Zeny = Zeny - 1000; + delitem "CottonCloth", 5; + getitem "ShortTankTop", 1; + mes "[Lora Tay the Seamstress]"; + mes "You watch as Lora sews the pieces of cloth together, then flattens the seams and ends with some odd liquid."; + mes "Amazingly, the result looks like a single piece of cloth."; + mes "After little more than a few elegant cuts and folds, your tank top is ready."; + mes "\"Oh dear, it seems that I am done already. Do you need anything else?\""; + next; + goto L_tanktop_menu; + +L_tanktop_long: + if (countitem ("CottonCloth") < 6) + goto L_tanktop_ic; + if (Zeny < 1000) + goto L_tanktop_ins_Z; + getinventorylist; + if (@inventorylist_count == 100 && countitem("CottonCloth") > 6) + goto L_TooMany; + Zeny = Zeny - 1000; + delitem "CottonCloth", 6; + getitem "TankTop", 1; + mes "[Lora Tay the Seamstress]"; + mes "After combining your pieces of cloth into one-- miraculously making the seams and stitches vanish-- the seamstress cuts out all that doesn't belong into a tank top, then folds and stabilises the edges with additional seam lines."; + mes "\"There you are. Don't worry, I have trimmed it to match your size perfectly.\""; + next; + goto L_tanktop_menu; + +L_tanktop_ic: + mes "[Lora Tay the Seamstress]"; + mes "\"No, no, no, count again-- how much Cotton Cloth did I say I needed? That's not enough.\""; + next; + goto L_tanktop_menu; + +L_tanktop_ins_Z: + mes "[Lora Tay the Seamstress]"; + mes "As you note that you don't have enough GP on you, Lora rolls her eyes."; + mes "\"I don't work for free, you know. I already gave you a discounted peasant price.\""; + next; + goto L_Main_menu; + +L_cape: + if (countitem("GoldenWarlordPlate") > 0) goto L_cape2; + mes "[Lora Tay the Seamstress]"; + mes "She shakes her head."; + mes "\"No capes. You're an adventurer, right? Do you want to get caught by a closing portcullis? Or strangled when your cape gets tangled in a tree? Or brought down by a mushroom stomping on your cape while you're trying to run away? No capes.\""; + next; + goto L_Main_menu; + +L_cape2: + mes "[Lora Tay the Seamstress]"; + mes "\"Well, it looks like you have some pretty golden armor, I can add a cape if you wish....\""; + next; + goto L_capemenu; + +L_capemenu: + mes "[Lora Tay the Seamstress]"; + mes "\"That will be 20 cotton cloth, 5 iron ingots, and 240,000gp.\""; + menu + "That sounds awesome! Yes!", L_capeyes, + "What a ripoff!?", L_End; + +L_capeyes: + if (countitem("CottonCloth") < 20) goto L_Missing; + if (countitem("IronIngot") < 5) goto L_Missing; + if (countitem("GoldenWarlordPlate") < 1) goto L_Missing; + if (Zeny < 240000) goto L_NotEnoughMoney; + getinventorylist; + if (@inventorylist_count == 100 && countitem("Cottoncloth") > 5 && countitem("Ironingot") < 5) goto L_TooMany; + delitem "CottonCloth", 20; + delitem "IronIngot", 5; + delitem "GoldenWarlordPlate", 1; + Zeny = Zeny - 240000; + getitem "WhiteSaviorArmor", 1; + mes "[Lora Tay]"; + mes "\"There you go!\""; + next; + goto L_End; + +L_NotEnoughMoney: + mes "[Lora Tay]"; + mes "\"I'm not doing this work for charity! Find your money or stop bothering me.\""; + next; + goto L_Main_menu; + +L_Missing: + mes "[Lora Tay]"; + mes "\"You seem to be missing some things.\""; + next; + goto L_Main_menu; + +L_robe: + mes "[Lora Tay the Seamstress]"; + mes "\"A robe? Well, as long as you're not asking me to make it out of cotton...\""; + next; + if (countitem("SilkCocoon")== 0 && countitem("SilkSheet")== 0) + goto L_robe_nosilk; + goto L_robe_menu; + +L_robe_menu: + menu + "Here, I have some silk cocoons!", L_Next9, + "Here, I have some silk sheets!", L_robe_sheets, + "Where can I find silk?", L_where_silk, + "How much silk do you need?", L_how_much_silk, + "Oh, never mind.", L_Main_menu; + +L_Next9: + mes "[Lora Tay the Seamstress]"; + mes "The seamstress stares at you as if you had gone out of your mind."; + mes "\"And what precisely do you expect me to do with Silk Cocoons? String them together in some baubly chain? Somehow remove the thread and spin and weave it so that some random person can have their robe?\""; + next; + menu + "Will you trade cocoons for sheets?", L_Next10, + "Never mind.", L_Main_menu; + +L_Next10: + mes "[Lora Tay the Seamstress]"; + mes "Lora frowns."; + mes "\"It's not all that easy to get properly processed silk around here. Easier for me than for you, I admit...\""; + next; + mes "[Lora Tay the Seamstress]"; + mes "She sighs."; + mes "\"All right, very well then. I have enough spare silk sheets right now, but you pay the silk processing for your cocoons.\""; + next; + mes "[Lora Tay the Seamstress]"; + mes "\"Let's see... " + @ROBE_COCOONS_NR + " silk cocoons and " + @ROBE_ZENY + " GP should just about cover that.\""; + next; + menu + "I'm not interested.", L_Main_menu, + "Very well then, here you are.", L_Next11; + +L_Next11: + if (countitem("SilkCocoon") < @ROBE_COCOONS_NR) + goto L_robe_missing_cocoons; + if (Zeny < @ROBE_ZENY) + goto L_robe_missing_Zeny; + getinventorylist; + if (@inventorylist_count == 100 && countitem("SilkCocoon") > @ROBE_COCOONS_NR) + goto L_TooMany; + Zeny = Zeny - @ROBE_ZENY; + delitem "SilkCocoon", @ROBE_COCOONS_NR; + mes "[Lora Tay the Seamstress]"; + mes "The seamstress puts your cocoons and GP away, takes your measurements and pulls out several silk sheets. She asks you to stretch out your arms, then pins the silk sheets in place all over your body."; + next; + goto L_Get_robe; + +L_robe_sheets: + @Robe_with_sheets = 1; + mes "[Lora Tay the Seamstress]"; + mes "\"Let's see... " + @ROBE_SHEETS_NR + " silk sheets and " + @ROBE_SHEETS_ZENY + " GP should just about cover that.\""; + next; + menu + "I'm not interested.", L_Main_menu, + "Very well then, here you are.", L_Next12; + +L_Next12: + if (countitem("SilkSheet") < @ROBE_SHEETS_NR) + goto L_robe_missing_sheets; + if (Zeny < @ROBE_SHEETS_ZENY) + goto L_robe_sheet_missing_Zeny; + getinventorylist; + if (@inventorylist_count == 100 && countitem("SilkSheet") > @ROBE_SHEETS_NR) + goto L_TooMany; + Zeny = Zeny - @ROBE_SHEETS_ZENY; + delitem "SilkSheet", @ROBE_SHEETS_NR; + mes "[Lora Tay the Seamstress]"; + mes "The seamstress puts your GP away, takes your measurements and puts the silk sheets on the table. She asks you to stretch out your arms, then pins the silk sheets in place all over your body."; + next; + goto L_Get_robe; + +L_Get_robe: + mes "[Lora Tay the Seamstress]"; + mes "She proceeds to make a number of mysterious marks on the sheets with a charcoal pen. Meanwhile, your arms are getting tired, but you're afraid to lower them-- she used a lot of pins to put everything into place, and you lost track of where they went..."; + next; + mes "[Lora Tay the Seamstress]"; + mes "\"Splendid.\""; + mes "After removing the sheets (and pins!), she picks up a pair of scissors and plows through the cloth at her usual amazing pace, only stopping briefly to sew together parts here and there."; + next; + mes "[Lora Tay the Seamstress]"; + mes "She then treats the seams with some odorless liquid, making them vanish completely. Finally she hands you the finished robe."; + getitem "SilkRobe", 1; + if (@Robe_with_sheets == 1) + goto L_robe_sheet_end; + mes "\"Here you are now, this will fit. And don't you dare tell anyone that I did this! I'm not about to start a silk cocoon collection!\""; + next; + goto L_Main_menu; + +L_robe_sheet_end: + mes "\"Here you are now, this will fit. Thank you for bringing the sheets. People are so lazy nowadays! \""; + next; + goto L_Main_menu; + +L_robe_missing_cocoons: + mes "[Lora Tay the Seamstress]"; + mes "\"" + @ROBE_COCOONS_NR + " cocoons is what I said, not " + countitem("SilkCocoon") + "."; + mes @ROBE_COCOONS_NR + " is " + (@ROBE_COCOONS_NR / 10) + " as many times as you have fingers, in case that helps.\""; + next; + goto L_Main_menu; + +L_robe_missing_Zeny: + mes "[Lora Tay the Seamstress]"; + mes "\"No, no no. The way this works is that you give me the GP first and I give you the robe afterwards. You're " + (@ROBE_ZENY - Zeny) + " GP short, so come back when you can afford the robe!\""; + next; + goto L_Main_menu; + +L_robe_missing_sheets: + mes "[Lora Tay the Seamstress]"; + mes "\"" + @ROBE_SHEETS_NR + " silk sheets is what I said, not " + countitem("SilkSheet") + "."; + mes @ROBE_SHEETS_NR + " is " + (10-@ROBE_SHEETS_NR) + " less than you have fingers, in case that helps.\""; + next; + goto L_Main_menu; + +L_robe_sheet_missing_Zeny: + mes "[Lora Tay the Seamstress]"; + mes "\"No, no no. The way this works is that you give me the GP first and I give you the robe afterwards. You're " + (@ROBE_SHEETS_ZENY - Zeny) + " GP short, so come back when you can afford the robe!\""; + next; + goto L_Main_menu; + +L_where_silk: + mes "[Lora Tay the Seamstress]"; + mes "\"Oh, Hetchel on the Tulimshar Marketplace can weave them for you.\""; + next; + mes "[Lora Tay the Seamstress]"; + mes "She hesitates."; + mes "\"I didn't see her there the last time I visited, though. She may be visiting family. Tough luck.\""; + next; + goto L_robe_menu; + +L_how_much_silk: + mes "[Lora Tay the Seamstress]"; + mes "\"Six sheets should do fine, if they're the usual double-elbow squares.\""; + next; + goto L_robe_menu; + +L_robe_nosilk: + mes "[Lora Tay the Seamstress]"; + mes "\"What is that? You don't have any silk? Well, you're out of luck, I would say. I shan't make one out of those cotton rags; you might as well be wearing an apple sack.\""; + next; + goto L_Main_menu; + +L_End: + @ROBE_COCOONS_NR = 0; + @ROBE_ZENY = 0; + @ROBE_SHEETS_NR = 0; + @ROBE_SHEETS_ZENY = 0; + @Robe_with_sheets = 0; + close; + +S_pick_one_of_many_items: + @c = 0; + @i = 0; + + setarray @choice_n$, "", "", "", "", "", "", "", "", + "", "", "", "", "", "", "", "", + "", "", "", "", "", "", "", "", + "", "", "", "", "", "", "", ""; + goto L_SUB_pick_choice_loop; + +L_SUB_pick_choice_loop: + if (@i >= @items_nr) + goto L_SUB_choice_init_done; + @current = @items[@i]; + @current_name$ = @item_names$[@i]; + @i = @i + 1; + + if (countitem(@current) == 0) + goto L_SUB_pick_choice_loop; + @choice_v[@c] = @current; + @choice_n$[@c] = @current_name$; + @c = @c + 1; + goto L_SUB_pick_choice_loop; + +L_SUB_choice_init_done: + @choice_v[@c] = 0; + @choice_n$[@c] = @default_choice$; + @c = @c + 1; + + if (@c < 10) + menu + @choice_n$[0], L_SUB_choice_join, + @choice_n$[1], L_SUB_choice_join, + @choice_n$[2], L_SUB_choice_join, + @choice_n$[3], L_SUB_choice_join, + @choice_n$[4], L_SUB_choice_join, + @choice_n$[5], L_SUB_choice_join, + @choice_n$[6], L_SUB_choice_join, + @choice_n$[7], L_SUB_choice_join, + @choice_n$[8], L_SUB_choice_join, + @choice_n$[9], L_SUB_choice_join; + + if (@c < 20) + menu + @choice_n$[0], L_SUB_choice_join, + @choice_n$[1], L_SUB_choice_join, + @choice_n$[2], L_SUB_choice_join, + @choice_n$[3], L_SUB_choice_join, + @choice_n$[4], L_SUB_choice_join, + @choice_n$[5], L_SUB_choice_join, + @choice_n$[6], L_SUB_choice_join, + @choice_n$[7], L_SUB_choice_join, + @choice_n$[8], L_SUB_choice_join, + @choice_n$[9], L_SUB_choice_join, + @choice_n$[10], L_SUB_choice_join, + @choice_n$[11], L_SUB_choice_join, + @choice_n$[12], L_SUB_choice_join, + @choice_n$[13], L_SUB_choice_join, + @choice_n$[14], L_SUB_choice_join, + @choice_n$[15], L_SUB_choice_join, + @choice_n$[16], L_SUB_choice_join, + @choice_n$[17], L_SUB_choice_join, + @choice_n$[18], L_SUB_choice_join, + @choice_n$[19], L_SUB_choice_join; + + menu + @choice_n$[0], L_SUB_choice_join, + @choice_n$[1], L_SUB_choice_join, + @choice_n$[2], L_SUB_choice_join, + @choice_n$[3], L_SUB_choice_join, + @choice_n$[4], L_SUB_choice_join, + @choice_n$[5], L_SUB_choice_join, + @choice_n$[6], L_SUB_choice_join, + @choice_n$[7], L_SUB_choice_join, + @choice_n$[8], L_SUB_choice_join, + @choice_n$[9], L_SUB_choice_join, + @choice_n$[10], L_SUB_choice_join, + @choice_n$[11], L_SUB_choice_join, + @choice_n$[12], L_SUB_choice_join, + @choice_n$[13], L_SUB_choice_join, + @choice_n$[14], L_SUB_choice_join, + @choice_n$[15], L_SUB_choice_join, + @choice_n$[16], L_SUB_choice_join, + @choice_n$[17], L_SUB_choice_join, + @choice_n$[18], L_SUB_choice_join, + @choice_n$[19], L_SUB_choice_join, + @choice_n$[20], L_SUB_choice_join, + @choice_n$[21], L_SUB_choice_join, + @choice_n$[22], L_SUB_choice_join, + @choice_n$[23], L_SUB_choice_join, + @choice_n$[24], L_SUB_choice_join, + @choice_n$[25], L_SUB_choice_join, + @choice_n$[26], L_SUB_choice_join, + @choice_n$[27], L_SUB_choice_join, + @choice_n$[28], L_SUB_choice_join, + @choice_n$[29], L_SUB_choice_join, + @choice_n$[30], L_SUB_choice_join, + @choice_n$[31], L_SUB_choice_join; + +L_SUB_choice_join: + @menu = @menu - 1; + @item = @choice_v[@menu]; + if (@menu >= @c) + @item = 0; + return; + +L_TooMany: + mes "[Lora Tay the Seamstress]"; + mes "\"You don't have anywhere to put this. Come back when you have more room.\""; + close; + +L_sorcerer_robe_linecolor: + mes "[Lora Tay the Seamstress]"; + mes "\"Hmm, this has a line sewed on it already. I don't see another way than remove it and sew a new one."; + mes "That is quite a difficult work... for a casual tailor of course. I'll do that in a heart beat.\""; + next; + mes "\"However, you can expect this will cost you a large fee. Let's say " + @SORCERER_ROBE_SEW_ZENY + " GP."; + mes "Also, I will need " + @SORCERER_ROBE_NUM_COTTON_CLOTH + " sheets of Cotton Cloth of the color you want.\""; + next; + mes "\"Ok. Now please wear the robe you want me to change.\""; + @loratay_asking_robe = 1; + close; + +L_ExamineSorcererRobe: + @loratay_asking_robe = 0; + mes "[Lora Tay the Seamstress]"; + mes "\"Let's see...\""; + next; + @chest_equip_id = getequipid(equip_torso); + callsub S_Get_SorcererRobeColors; + mes "Lora Tay takes a closer look at what you are wearing."; + next; + mes "[Lora Tay the Seamstress]"; + mes "\"Hmm. This " + @item_colors$[@current_linecolor] + " lined " + @item_colors$[@current_maincolor] + " sorcerer robe. I see. Is that ok?\""; + if (@current_maincolor == -1 || @current_linecolor == -1) + goto L_NotSorcererRobe; + menu + "Yes, that's fine. Take this one.", L_ChooseSorcererLineColor, + "No, I changed my mind.", L_CleanSorcererRobe; + +L_NotSorcererRobe: + mes "\"This isn't a Sorcerer Robe dear. Stop taking me for a fool.\""; + goto L_CleanSorcererRobe; + +L_ChooseSorcererLineColor: + // Unequip the robe, just to simulate Lora Tay really took it + unequipbyid(equip_torso); + mes "[Lora Tay the Seamstress]"; + mes "\"And which Cotton Cloth color will you give me?\""; + menu + "A " + @item_colors$[0] + " one.", L_ItemMenus2, + "A " + @item_colors$[1] + " one.", L_ItemMenus2, + "A " + @item_colors$[2] + " one.", L_ItemMenus2, + "A " + @item_colors$[3] + " one.", L_ItemMenus2, + "A " + @item_colors$[4] + " one.", L_ItemMenus2, + "A " + @item_colors$[5] + " one.", L_ItemMenus2, + "A " + @item_colors$[6] + " one.", L_ItemMenus2, + "A " + @item_colors$[7] + " one.", L_ItemMenus2, + "A " + @item_colors$[8] + " one.", L_ItemMenus2, + "A " + @item_colors$[9] + " one.", L_ItemMenus2, + "A " + @item_colors$[10] + " one.", L_ItemMenus2, + "Hum. I changed my mind. Later maybe.", L_End; + +L_ItemMenus2: + @chosen_color = @menu - 1; + @cotton_cloth_id = 2250 + @chosen_color; + // The White Cotton Cloth is in fact the undyed one. + if (@cotton_cloth_id == 2260) + @cotton_cloth_id = 660; + if (countitem(@cotton_cloth_id) < 2) + goto L_NoColoredCottonCloth; + if (@current_linecolor == @chosen_color) + goto L_SorcererRobe_SameColor; + callsub S_Get_NewSorcererRobeId; + // Should not happen since it has been checked the player submitted a sorcerer robe + if (@new_sorcerer_robe_id == 0) + goto L_End; + + if (Zeny < @SORCERER_ROBE_SEW_ZENY) + goto L_SorcererRobe_NoZeny; + if (countitem(@chest_equip_id) == 0) + goto L_SorcererRobe_Vanished; + delitem @cotton_cloth_id, @SORCERER_ROBE_NUM_COTTON_CLOTH; + // Since we delete an unstackable item, we don't need to check + // for an available inventory slot. + delitem @chest_equip_id, 1; + Zeny = Zeny - @SORCERER_ROBE_SEW_ZENY; + getitem @new_sorcerer_robe_id, 1; + mes "Lora Tay adjusts her glasses and removes carefully the " + @item_colors$[@current_linecolor] + " string of the robe."; + mes "Then she grabs the " + @item_colors$[@chosen_color] + " cotton cloth, unfolds it and pins her needle in it."; + next; + mes "She begins to sew the new string onto the sorcerer robe."; + next; + mes "She regularly flips and flips again the robe, which starts to show her new color."; + next; + mes "After a few minutes you barely noticed, the robe seems to be ready."; + next; + mes "[Lora Tay the Seamstress]"; + mes "\"There you are dear. I have to say I made a perfect job... As always."; + mes "I hope you'll enjoy your new robe.\""; + goto L_CleanSorcererRobe; + +L_SorcererRobe_SameColor: + mes "[Lora Tay the Seamstress]"; + mes "\"Are you blind? Your robe is already of this color dear!\""; + goto L_CleanSorcererRobe; + +L_SorcererRobe_Vanished: + mes "Lora Tay adjusts her glasses and looks around, as if something was missing."; + next; + mes "[Lora Tay the Seamstress]"; + mes "\"Uh? Where is your sorcerer robe?\""; + goto L_CleanSorcererRobe; + +S_Get_NewSorcererRobeId: + if (@chosen_color == 0 && @current_maincolor == 10) + @new_sorcerer_robe_id = 798; + if (@chosen_color == 0 && @current_maincolor < 10) + @new_sorcerer_robe_id = 2220 + @current_maincolor; + if (@chosen_color > 0) + @new_sorcerer_robe_id = 5000 + @current_maincolor + (@chosen_color-1)*11; + return; + +L_NoColoredCottonCloth: + mes "[Lora Tay the Seamstress]"; + mes "\"You don't seem to own enough Cotton Cloth of this color. I need " + @SORCERER_ROBE_NUM_COTTON_CLOTH + " of them. Too bad.\""; + goto L_CleanSorcererRobe; + +L_SorcererRobe_NoZeny: + mes "[Lora Tay the Seamstress]"; + mes "\"You don't seem to be able to afford my services, dear.\""; + goto L_CleanSorcererRobe; + +S_Get_SorcererRobeColors: + @current_maincolor = -1; + @current_linecolor = -1; + // Line color + if (@chest_equip_id == 798 || (@chest_equip_id >= 2220 && @chest_equip_id <= 2229)) + @current_linecolor = 0; + if (@chest_equip_id >= 5000 && @chest_equip_id <= 5109) + @current_linecolor = 1 + (@chest_equip_id-5000)/11; + // Main color + if (@chest_equip_id == 798) + @current_maincolor = 10; + if (@chest_equip_id >= 2220 && @chest_equip_id <= 2229) + @current_maincolor = @chest_equip_id - (@chest_equip_id/10)*10; + if (@chest_equip_id >= 5000 && @chest_equip_id <= 5109) + @current_maincolor = @chest_equip_id - 5000 - (@current_linecolor-1)*11; + return; + +L_CleanSorcererRobe: + @current_maincolor = 0; + @current_linecolor = 0; + @chest_equip_id = 0; + @new_sorcerer_robe_id = 0; + @chosen_color = 0; + @cotton_cloth_id = 0; + close; +} diff --git a/npc/00000SAVE/010-2_Dimond/workers.txt b/npc/00000SAVE/010-2_Dimond/workers.txt new file mode 100644 index 000000000..d14a172fa --- /dev/null +++ b/npc/00000SAVE/010-2_Dimond/workers.txt @@ -0,0 +1,22 @@ + +010-2,23,70,0 script Josh NPC155,{ + mes "[Josh]"; + mes "\"We're working on getting the cellar pass open.\""; + close; +} + +010-2,39,75,0 script Zack NPC155,{ + @hw2011_npc_id = $@hw2011_npc_zack; + if (gettime(7) == $@hw2011_year && gettime(6) == 10 && gettime(5) >= $@hw2011_start_day) + goto L_TrickOrTreat; + goto L_Begin; + +L_Begin: + mes "[Zack]"; + mes "\"My brother and I are fixing the cellar pass.\""; + close; + +L_TrickOrTreat: + callfunc "TrickOrTreat2011"; + goto L_Begin; +} diff --git a/npc/00000SAVE/016-1_paxel.txt b/npc/00000SAVE/016-1_paxel.txt new file mode 100644 index 000000000..e3675fc09 --- /dev/null +++ b/npc/00000SAVE/016-1_paxel.txt @@ -0,0 +1,73 @@ +// TODO IMPORTANT: We don't use raw coal, so this NPC need to change a bit + +016-1,40,39,0 script Paxel NPC141,{ + @Cost_With_Logs = 2000; + @Cost_Without_Logs = 3000; + @Logs_Needed = 5; + @Coal_Per = 5; + + mes "[Paxel]"; + mes "\"Hello traveler! I've been studying how to refine raw coal with pressure and heat from a wood firepit."; + mes "\"For " + @Cost_With_Logs + " gold, I can refine " + @Coal_Per + " Coal from a lump of Raw Coal and " + @Logs_Needed + " Raw Logs."; + mes "If you don't have any logs to spare, I can use my logs; but that will cost you " + @Cost_Without_Logs + " gold.\""; + + menu + "I'd like you to use my logs.", L_Logs_Provided, + "Use your logs, please.", L_No_Logs_Provided, + "I don't want to refine any coal today.", L_close; + +L_Logs_Provided: + @Log_Mult = @Logs_Needed; + @Cost_Mult = @Cost_With_Logs; + goto L_Check_Items; + +L_No_Logs_Provided: + @Log_Mult = 0; + @Cost_Mult = @Cost_Without_Logs; + goto L_Check_Items; + +L_Check_Items: + mes "[Paxel]"; + mes "\"How many lumps of Raw Coal do you want refined?\""; + + input @refine_count; + + if (@refine_count == 0) goto L_Bye; + if (@refine_count > countitem("RawCoal") || @refine_count * @Log_Mult > countitem("RawLog")) goto L_MissingItems; + if (@refine_count * @Cost_Mult > Zeny) goto L_NoMoney; + getinventorylist; + if (@inventorylist_count == 100 && countitem("Coal") == 0) goto L_NoSpace; + + delitem "RawCoal", @refine_count; + delitem "RawLog", @refine_count * @Log_Mult; + Zeny = Zeny - (@refine_count * @Cost_Mult); + + getitem "Coal", @refine_count * @Coal_Per; + goto L_Bye; + + +L_MissingItems: + mes "[Paxel]"; + mes "\"You are missing some of the raw materials.\""; + goto L_close; + +L_NoMoney: + mes "[Paxel]"; + mes "\"You can't afford that much work! Do some odd jobs and come back.\""; + goto L_close; + + +L_NoSpace: + mes "[Paxel]"; + mes "\"You won't have enough space for the refined Coal. Better come back later.\""; + goto L_close; + + +L_Bye: + mes "[Paxel]"; + mes "\"Have a good day and come again soon!\""; + goto L_close; + +L_close: + close; +} diff --git a/npc/00000SAVE/018-1_paperboy__see.george.txt b/npc/00000SAVE/018-1_paperboy__see.george.txt new file mode 100644 index 000000000..4ebda8ee9 --- /dev/null +++ b/npc/00000SAVE/018-1_paperboy__see.george.txt @@ -0,0 +1,152 @@ + +018-1,76,85,0 script Roger NPC130,{ + mes "[Roger]"; + mes "\"Paper! Paper! Get your copy of The Land of Fire Gazette here!\""; + mes "\"Read about the travels of other adventures and the NPCs that helped them.\""; + next; + mes "Hello " + strcharinfo(0) + ", may I interest you in a copy of the Gazette?\""; + menu + "Yes, please", L_GetRead, + "No, Thank You, kid.", L_TooBad, + "Do you have anything else to read?", L_ExtraRead; + +L_GetRead: + mes "[Roger]"; + mes "\"Let me see.....\""; + next; + if (GEORGE_Quest == 5) + goto L_LOF_NEWS; + mes "\"Oh yes, here you go, that will be 1 GP.\""; + if (Zeny < 1) + goto L_Poor; + Zeny = (Zeny-1); + mes "\"[You are handed the Land of Fire Gazette, You look at the headline...]\""; + mes "\"[but it is written in Mananese, a language you know nothing about.]\""; + next; + mes "\"[You toss the paper in the trash.]\""; + goto L_close; + +L_TooBad: + mes "[Roger]"; + mes "\"Too bad, There is some really good news this week. Things like how to go to Candor for only 200GP.\""; + mes "\"And a special coupon section to get rare items for little or no money!\""; + menu + "I changed my mind, I think I would like a copy!", L_GetRead, + "That's ok, kid...I can't read anyways", L_TooBadTwo; + +L_TooBadTwo: + mes "[Roger]"; + mes "\"Too bad, you're really missing out!\""; + goto L_close; + +L_ExtraRead: + mes "[Roger]"; + mes "\"Now that you ask....\""; + next; + if (PB_Quest == 1) + goto L_MadMag; + mes "\"I might be able to get you a rare copy of the Maritime Almanac Scroll. A yearly publication for seafaring men.\""; + mes "\"It is very hard to come by, however, my father has a copy he might sell to you for the right price.\""; + menu + "I will trade you this Dagger and Sailor's Hat for it.", L_BadOffer1, + "I will pay you 5,000 GP in pure gold for it!", L_BadOffer2, + "I can give you a rare...(cough, cough).. Mouboo Figurine for it.", L_Success, + "I have no interest in things such as that.", L_close; + +L_Success: + if (PB_Quest == 1) + goto L_HaveScroll; + if (countitem("MoubooFigurine") < 1) + goto L_NoMouboo; + if (countitem("SailorHat") == 0) + goto L_StatNone; + mes "[Roger]"; + mes "\"This is great! My collection of rare figurines is now complete.\""; + mes "\"I asked my father and he agreed to trade it to you, so here is the last copy of the Maritime Almanac Scroll.\""; + getinventorylist; + if (@inventorylist_count == 100) + goto L_TooMany; + delitem "MoubooFigurine", 1; + getitem "ScrollOfPaper", 1; + PB_Quest = 1; + goto L_close; + +L_BadOffer1: + mes "[Roger]"; + mes "\"Wow a Dagger and a Sailor's Hat!\""; + next; + mes "Although I really want the Sailor's Hat, but daggers are dangerous for kids to play with.\""; + mes "Besides that, do I look like a warrior to you? Why would you give a kid a sharp dagger?\""; + goto L_close; + +L_BadOffer2: + mes "[Roger]"; + mes "\"5000 GP? That sure is a lot of gold...\""; + mes "\"but I was hoping for something more valuable. No Thanks.\""; + goto L_close; + +L_NoMouboo: + mes "[Roger]"; + mes "\"You said you would trade a real Mouboo Figurine, but now I see you don't have one. Come back when you do.\""; + goto L_close; + +L_StatNone: + mes "\"You might have the Mouboo Figurine, but I don't trust everyone.\""; + if(GEORGE_Quest >= 3) + goto L_ShowHat; + mes "\"My friend George is much older than I am, go see him and if he trusts you, so will I.\""; + if (GEORGE_Quest < 2) + GEORGE_Quest = 1; + goto L_close; + +L_ShowHat: + mes "\"I see you have met my good friend George, and you gave him some items that he needed...\""; + mes ""; + mes "\"Didn't he give you anything?\""; + next; + mes "\"If you could show me what he gave you, I might trust you.\""; + goto L_close; + +L_MadMag: + mes "[Roger]"; + mes "\"I have my favorite book of all times, Moby Dick.\""; + mes "Let me read some of it to you....\""; + next; + mes "[Roger begins to read]"; + mes "\"Towards thee I roll, thou all-destroying but unconquering whale; to the last I grapple with thee; from hell’s heart I stab at thee; for hate’s sake I spit my last breath at thee. Sink all coffins and all hearses to one common pool! And since neither can be mine, let me then tow to pieces, while still chasing thee, though tied to thee, thou damned whale! Thus, I give up the spear!\""; + next; + mes "[Roger]"; + mes "\"I don't really understand it either, but it's not for sale. Maybe you could come back later so I can read more of it to you.\""; + mes "\"Have a nice day.\""; + goto L_close; + +L_TooMany: + mes "[Roger]"; + mes "\"Your backpack is full. I'll wait until you have some room.\""; + goto L_close; + +L_Poor: + mes "[Roger]"; + mes "\"You don't seem to have enough gold, not even 1 GP...you should go kill some red slimes in the mine.\""; + goto L_close; + +L_LOF_NEWS: + mes "[Roger]"; + mes "\"Well I see that you have completed the George Quest.\""; + mes "\"I am actually surprised you clicked me again. Well then, here's the Land of Fire News...\""; + next; + mes "\"As you may know, LOF is currently running a modified version of The Mana World game. The admins and developers are working on a new game to offer a new experience for players.\""; + mes "\"Currently there are new maps being developed and new NPCs. The project is involving only a small group of members, but would welcome anyone who knows how to assist in development.\""; + next; + mes "\"Graphical development sure could use some help. We have Map devs, but could use more. Someone with skill to make new NPC or Monster graphics would be a great help. The graphics use XML files, so those would have to be developed along with the images.\""; + mes "\"If you believe that you may able to help, please contact an admin or developer, or post on the forum. Suggestions are welcomed as well, so speak up.\""; + goto L_close; + +L_HaveScroll: + mes "[Roger]"; + mes "\"Looks like I already gave you the Maritime Almanac Scroll. You need to go see George again. I am unable to get another copy for you.\""; + goto L_close; + +L_close: + close; +} diff --git a/npc/00000SAVE/018-2_petsales.txt b/npc/00000SAVE/018-2_petsales.txt new file mode 100644 index 000000000..71b8f536a --- /dev/null +++ b/npc/00000SAVE/018-2_petsales.txt @@ -0,0 +1,280 @@ + +018-2,122,23,0 script Pet Detective NPC160,{ + + + mes "[Ace Ventura]"; + mes "\"Hello, I heard you were wanting a pet to help you in your adventures.\""; + mes "\"I know that because I am a pet detective and other adventurers said you may want to adopt a pet.\""; + next; + mes "\"We have the very best and healthiest animals.\""; + mes "\"Are you interested in adopting one or more of these fine pets?\""; + next; + if(HWQUEST9 == 1) goto L_MagCat; + goto L_Adoptmenu; + +L_Adoptmenu: + mes "[Ace Ventura]"; + mes "\"Tell me which one of the pets you want to adopt.\""; + next; + + menu + "I would like to have a dog!", L_Dog, + "Got any cats?", L_Cat, + "Hmmm... I'd like a rat...", L_Rat, + "On second thought, I don't really want that responsibility right now.", L_close; + +L_Dog: + mes "[Ace Ventura]"; + mes "\"A dog? OK... for one of our fine dogs you will need to bring me\""; + mes "\"20 animal bones, 15 steaks, 10 raw logs, and 100,000 GP.\""; + next; + mes "\"A well trained dog, will help you improve your strength too.\""; + + menu + "Sure, I believe a trained dog will make me stronger.", L_dog2, + "What a ripoff! No way! They would probably bite me anyways!", L_close; + +L_Cat: + mes "[Ace Ventura]"; + mes "\"Why yes, We do have cats. Fast and frisky ones too!\""; + mes "\"You will be amazed at the speed of these fine animals.\""; + next; + mes "\"I guarantee they will make you feel faster and more agile in battle.\""; + mes "\"A great deal for only 10 animal bones, 10 steaks, 15 cartons of milk and 100,000 GP.\""; + + menu + "Yes, I could use more agility.", L_cat2, + "No thanks, I like being slow.", L_close; + +L_Rat: + mes "[Ace Ventura]"; + mes "\"Rats are so cool!\""; + mes "\"The ones I have here will really help your Dexterity.\""; + next; + mes "\"They cost 15 animal bones, 10 steaks, 20 bottles of water, and 100,000 GP.\""; + mes "\"Now that you know how valuable they are, would you like to have one?\""; + + menu + "Sure, The rat is just what I need.", L_rat2, + "Whoa, that's way too much for a rat.", L_close; + +L_dog2: + if (countitem("AnimalBones") < 20) goto L_Missing; + if (countitem("Steak") < 15) goto L_Missing; + if (countitem("RawLog") < 10) goto L_Missing; + if (Zeny < 100000) goto L_NotEnoughMoney; + getinventorylist; + if (@inventorylist_count == 100 && countitem("AnimalBones") > 20 && countitem("Steak") > 15) goto L_Full; + delitem "AnimalBones", 20; + delitem "Steak", 15; + delitem "RawLog", 10; + Zeny = Zeny - 100000; + getitem "Hound", 1; + mes "[Ace Ventura]"; + mes "\"Enjoy your dog! Do you want to adopt another pet?\""; + + menu + "Yes, I would.", L_Adoptmenu, + "Nope, not today. I want to have time to train my new dog.", L_close; + +L_cat2: + if (countitem("AnimalBones") < 10) goto L_Missing; + if (countitem("Steak") < 10) goto L_Missing; + if (countitem("Milk") < 15) goto L_Missing; + if (Zeny < 100000) goto L_NotEnoughMoney; + getinventorylist; + if (@inventorylist_count == 100 && countitem("AnimalBones") > 10 && countitem("Steak") > 10) goto L_Full; + delitem "AnimalBones", 10; + delitem "Steak", 10; + delitem "Milk", 15; + Zeny = Zeny - 100000; + getitem "Cat", 1; + mes "[Ace Ventura]"; + mes "\"Now here is a frisky white cat! Do you want to adopt another pet?\""; + + menu + "Yes, I do.", L_Adoptmenu, + "No thank you, I think the cat is all I need for now", L_No; + +L_rat2: + if (countitem("AnimalBones") < 15) goto L_Missing; + if (countitem("Steak") < 10) goto L_Missing; + if (countitem("BottleOfWater") < 20) goto L_Missing; + if (Zeny < 100000) goto L_NotEnoughMoney; + getinventorylist; + if (@inventorylist_count == 100 && countitem("AnimalBones") > 15 && countitem("Steak") > 10) goto L_Full; + delitem "AnimalBones", 15; + delitem "Steak", 10; + delitem "BottleOfWater", 20; + Zeny = Zeny - 100000; + getitem "Rat", 1; + mes "[Ace Ventura]"; + mes "\"Here is your fine pet! Do you want to purchase any other pet?\""; + + menu + "Yes, I do.", L_Adoptmenu, + "No, Thanks. I really want to see this rat attack!", L_No; + goto L_close; + +L_MagCat: + mes "[Ace Ventura]"; + mes "\"Just a moment... Aren't you a Halloween Quest Adventurer? This is your lucky day!\""; + mes "\"I just received a shipment of rare magical pets.\""; + mes "\"They are so new, I haven't even had time to open the crates\""; + next; + mes "\"I can tell you that these pets are very rare and will not last very long.\""; + mes "\"Are you interested in getting one of them?\""; + + menu + "Yes, Let me have one!.", L_YesBcat, + "Not Really.", L_EndSoon, + "I would really like a different pet.", L_Adoptmenu; + goto L_close; + +L_YesBcat: + if (HW_Bcat == 1) goto L_OnlyOne; + if (HW_Bcat == 2) goto L_NoMoreForYou; + mes "[Ace Ventura]"; + mes "\"These RARE pets normally sell for 750,000 GP and are limited to one per customer, however during this Halloween Season...\""; + next; + mes "\".. If you bring me the following items and 60,000 GP, I will let you have one of them.\""; + mes "\"50 Marshmallows, 50 Candy Pumpkins, 20 Lifestones, 4 Jack-O-Lanterns, 3 Jars of Blood, 2 Rubber Bats and one rare Black Pearl.\""; + + menu + "I have what you need", L_GetBcat, + "I don't have everything you need. I will come back.", L_EndSoon, + "I changed my mind, I don't really want one.", L_EndSoon, + "I think I want a different pet?", L_Adoptmenu; + goto L_close; + +L_GetBcat: + if (countitem("Marshmallow") < 50) goto L_Missing; + if (countitem("CandyPumpkin") < 50) goto L_Missing; + if (countitem("Lifestone") < 20) goto L_Missing; + if (countitem("JackOLantern") < 4) goto L_Missing; + if (countitem("RubberBat") < 2) goto L_Missing; + if (countitem("JarofBlood") < 3) goto L_Missing; + if (countitem("BlackPearl") < 1) goto L_MissingPearl; + if (Zeny < 60000) goto L_NotEnoughMoney; + getinventorylist; + if (@inventorylist_count == 100 && countitem("Marshmallow") > 50 && countitem("CandyPumpkin") > 50 && countitem("Lifestone") > 20 && countitem("JackOLantern") > 4 && countitem("JarofBlood") > 3 && countitem("RubberBat") > 2 && countitem("BlackPearl") > 1) goto L_Full; + delitem "Marshmallow", 50; + delitem "CandyPumpkin", 50; + delitem "Lifestone", 20; + delitem "JackOLantern", 4; + delitem "JarofBlood", 3; + delitem "RubberBat", 2; + delitem "BlackPearl", 1; + Zeny = Zeny - 60000; + getitem "BlackCat", 1; + HW_Bcat = 1; + mes "[Ace Ventura]"; + mes "\"Wonderful! Here is your very own RARE and Magical...\""; + next; + mes "\"Black Cat!\""; + goto L_close; + +L_EndSoon: + mes "[Ace Ventura]"; + mes "\"OK, Fine, but don't come crying to me when they are all gone.\""; + mes "\"These Rare Pets were ordered especially for the Halloween Event.\""; + mes "\"so when it is over, There may be no more to adopt.\""; + goto L_close; + +L_Full: + mes "[Ace Ventura]"; + mes "\"Looks like you can't carry anything else in the your inventory, come back when you've made some room.\""; + goto L_close; + +L_Missing: + mes "[Ace Ventura]"; + mes "\"It looks like you're missing some items. Please come back when you have what is needed!\""; + goto L_close; + +L_MissingPearl: + mes "[Ace Ventura]"; + mes "\"It looks like you're missing the rare Black Pearl. You might win one from one of\""; + mes "\"the Halloween NPCs.(The Creepy Surgeon)..Hmm...I think...\""; + next; + mes "\"someone told me that they bought one from the Indian named Exotic Trader.\""; + mes "\"I know he is over at Oscar's farm, today.\""; + next; + mes "\"The adventure did not say how much they cost,\""; + mes "\"however I suspect the Black Pearl is an expensive rare item.\""; + next; + mes "\"Please come back when you have the Black Pearl.\""; + goto L_close; + +L_NotEnoughMoney: + mes "[Ace Ventura]"; + mes "\"You don't have enough money, come back later!\""; + goto L_close; + +L_No: + mes "[Ace Ventura]"; + mes "\"Have a great day, and enjoy you new pet!\""; + goto L_close; + +L_OnlyOne: + mes "[Ace Ventura]"; + mes "\" I am afraid you can not have another Rare Pet, They are all gone...\""; + next; + mes "\"However, I might be able to special order you one.\""; + + menu + "Yes, I would like to order one.", L_BuyBcat, + "No, Thanks.", L_close; + +L_BuyBcat: + mes "[Ace Ventura]"; + mes "\"The RARE pets sells for 750,000 GP.\""; + next; + mes "\"Bring me the following items and 750,000 GP and then I will let you have one.\""; + mes "\"50 Marshmallows, 50 Candy Pumpkins, 20 Lifestones, 4 Jack-O-Lanterns, 3 Jars of Blood, 2 Rubber Bats and 1 rare Black Pearl.\""; + + menu + "OK I have what you need.", L_SpecialBuy, + "No, I have changed my mind.", L_close; + goto L_close; + +L_SpecialBuy: + if (countitem("Marshmallow") < 50) goto L_Missing; + if (countitem("CandyPumpkin") < 50) goto L_Missing; + if (countitem("Lifestone") < 20) goto L_Missing; + if (countitem("JackOLantern") < 4) goto L_Missing; + if (countitem("RubberBat") < 2) goto L_Missing; + if (countitem("JarofBlood") < 3) goto L_Missing; + if (countitem("BlackPearl") < 1) goto L_MissingPearl; + if (Zeny < 750000) goto L_NotEnoughMoney; + getinventorylist; + if (@inventorylist_count == 100 && countitem("Marshmallow") > 50 && countitem("CandyPumpkin") > 50 && countitem("Lifestone") > 20 && countitem("JackOLantern") > 4 && countitem("JarofBlood") > 3 && countitem("RubberBat") > 2 && countitem("BlackPearl") > 1) goto L_Full; + delitem "Marshmallow", 50; + delitem "CandyPumpkin", 50; + delitem "Lifestone", 20; + delitem "JackOLantern", 4; + delitem "JarofBlood", 3; + delitem "RubberBat", 2; + delitem "BlackPearl", 1; + Zeny = Zeny - 750000; + getitem "BlackCat", 1; + HW_Bcat = 2; + mes "[Ace Ventura]"; + mes "\"Wonderful! Here is your very own RARE and Magical...\""; + next; + mes "\"Black Cat!\""; + goto L_close; + +L_NoMoreForYou: + mes "[Ace Ventura]"; + mes "\"Nice to see you again. You're the Adventurer who special ordered a Rare Pet from me..\""; + mes "\"Unfortunately all of the Rare Pets have been adopted.\""; + next; + mes "\"I hope you and you pet are doing well.\""; + mes "\"Those pets are so rare, I doubt if we will ever see them again.\""; + goto L_close; + +L_close: + mes "[Ace Ventura]"; + mes "\"Goodbye Adventurer!\""; + close; +} diff --git a/npc/00000SAVE/020-1_well.txt b/npc/00000SAVE/020-1_well.txt new file mode 100644 index 000000000..1a138d35f --- /dev/null +++ b/npc/00000SAVE/020-1_well.txt @@ -0,0 +1,80 @@ +// Better to skip this quest. It is too poor and would require more work, +// eg. rope and something to make the player take part on it... Probably? + +020-1,99,83,0 script #Well NPC400,{ + if(QL_WELL == 2) goto L_Finished; + + mes "..."; + menu + "Throw something in the well.", L_Throw, + "Leave it alone.", L_close; + +L_Throw: + mes "What do you want to throw?"; + + setarray @response_list$, "Yuck! Who threw that on me?", "Ouch! Who's hurting me?", "White powder!? What's going on up there?", "It's raining in Nivalis?!"; + setarray @item_list$, "MaggotSlime", "RawLog", "PileOfAsh", "BottleOfWater"; + menu + "Maggot slime", L_CheckItem, + "A raw log", L_CheckItem, + "Pile of ash", L_CheckItem, + "Bottle of water", L_CheckItem, + "Leave it alone", L_close; + +L_CheckItem: + @index = @menu - 1; + @response$ = @response_list$[@index]; + @item$ = @item_list$[@index]; + + mes @item$; + + if(countitem(@item$) == 0) + goto L_MissingItem; + delitem @item$, 1; + + if(@item$ == "BottleOfWater") + getitem "EmptyBottle", 1; + + mes "[Mysterious voice inside the well]"; + mes "\"" + @response$ + "\""; + next; + menu + "Who are you?", L_Who, + "How did you get down there?", L_How, + "Do you need help?", L_Help; + +L_Who: + @response$ = "I'll talk about who I am after leaving the well. "; + goto L_GetHelp; + +L_How: + @response$ = "Well, someone pushed me into the well, I'm not sure who. "; + goto L_GetHelp; + +L_Help: + @response$ = "I certainly can't get out on my own. "; + goto L_GetHelp; + +L_GetHelp: + mes "[Mysterious voice inside the well]"; + mes "\"" + @response$ + "So if you can get some help for me... please do so!\""; + QL_WELL = 1; + + cleararray @response_list$, "", 4; + cleararray @item_list$, "", 4; + @index = 0; + @response$ = ""; + + goto L_close; + +L_MissingItem: + mes "You can't throw an item you don't have."; + goto L_close; + +L_Finished: + mes "This is a well."; + goto L_close; + +L_close: + close; +} diff --git a/npc/00000SAVE/EPISODE/009-2_drwho.txt b/npc/00000SAVE/EPISODE/009-2_drwho.txt new file mode 100644 index 000000000..71bf31be2 --- /dev/null +++ b/npc/00000SAVE/EPISODE/009-2_drwho.txt @@ -0,0 +1,129 @@ + +009-2.gat,110,44,0 script The Doctor NPC184,{ + if (BaseLevel < 25) goto L_Lvl_too_low; + + if (QUEST_Episode == 1) goto L_Check; + if (QUEST_Episode == 2 && BaseLevel >= 40) goto L_Miler; + if (QUEST_Episode >= 2) goto L_Redo_tea; + + mes "[The Doctor]"; + mes "\"Quite interesting, quite interesting indeed.\""; + menu + "Um, might I ask, what is so interesting?", L_Intro; + +L_Intro: + mes "[The Doctor]"; + mes "\"Well, you are. You're quite interesting. I've been watching you for some time now, as you've been helping so many people: you're quite a master at what you do, you know.\""; + menu + "Well, thanks.", L_IntroContinue; + +L_IntroContinue: + mes "[The Doctor]"; + mes "\"I don't suppose you have some herbs and a few bottles of water with you, do you?\""; + menu + "'Some herbs and water'? Could you be more specific?", L_IntroSpecify; + +L_IntroSpecify: + mes "[The Doctor]"; + mes "\"Ah, sorry, of course. I need 50 mauve herbs, 50 cobalt herbs, 50 gamboge herbs, 50 alizarin herbs and 10 bottles of water as well.\""; + menu + "That shouldn't been too hard, but do I get something in return?", L_IntroReward; + +L_IntroReward: + mes "[The Doctor]"; + mes "\"I suppose, what would you like?"; + mes "Er, nevermind, I've thought of something to give you. You can go off now and get what I need.\""; + QUEST_Episode = 1; + goto L_close; + +L_Lvl_too_low: + mes "[The Doctor]"; + mes "\"Hmm, it's very interesting, very ... (mumbling).\""; + goto L_close; + +L_Miler: + mes "[The Doctor]"; + mes "\"Thank you for helping me make my tea. I hope the potions have been helpful..."; + mes "That reminds me. I have a friend in Nivalis named Miler who gave me some hints on the recipe. Would you take him a sample of what I gave you?"; + mes "If you've used all the ones I've given, you can always bring me more ingredients.\""; + QUEST_Episode = 3; + menu + "I'll go right away.", L_close, + "Ah, I suppose I need to gather more ingredients first...", L_close, + "Oh, I have some more ingredients right here!", L_Check3; + +S_Tea_Check: + if (countitem("MauveHerb") < 50 || countitem("CobaltHerb") < 50 || + countitem("GambogeHerb") < 50 || countitem("AlizarinHerb") < 50 || + countitem("BottleOfWater") < 10) set @failed, 1; + if (@failed != 1) goto S_Take_Items; + return; + +S_Take_Items: + delitem "MauveHerb", 50; + delitem "CobaltHerb", 50; + delitem "GambogeHerb", 50; + delitem "AlizarinHerb", 50; + delitem "BottleOfWater", 10; + return; + +L_Check: + callsub S_Tea_Check; + if (@failed == 1) goto L_NotEnough; + + mes "[The Doctor]"; + mes "\"Mmm, it's been so long since I have had herbal tea. You have my gratitude.\""; + menu + "Seriously? What sort of reward is that?", L_Get_Reward; + +L_Check2: + callsub S_Tea_Check; + if (@failed == 1) goto L_NotEnough; + + getitem "DarkConcentrationPotion", 5; + mes "[The Doctor]"; + mes "\"Thanks, enjoy!\""; + goto L_close; + +L_Check3: + callsub S_Tea_Check; + if (@failed == 1) goto L_NotEnough; + + mes "[The Doctor]"; + mes "\"Remember to save one for Miler!\""; + getitem "DarkConcentrationPotion", 5; + goto L_close; + +L_Get_Reward: + mes "[The Doctor]"; + mes "\"Well, I suppose you can have what's left of my tea.\""; + getitem "DarkConcentrationPotion", 5; + QUEST_Episode = 2; + menu + "Oh, thank you!", L_close; + +L_Redo_tea: + mes "[The Doctor]"; + mes "\"If you want, you can bring me some more of those herbs and water.\""; + menu + "Alright, I have them here!", L_Check2, + "Can you remind me what I need to get again?", L_Remind, + "No thanks, see ya!", L_close; + +L_Remind: + mes "[The Doctor]"; + mes "\"Ah, sorry, of course, I need 50 mauve herbs, 50 cobalt herbs, 50 gamboge herbs, 50 alizarin herbs and 10 bottles of water.\""; + goto L_close; + +L_NotEnough: + @failed = 0; + + mes "[The Doctor]"; + mes "\"Sorry, you do not have enough ingredients. You'd better search thoroughly.\""; + menu + "Can you remind me what I need to get?", L_Remind, + "Ok, I'll go find what you need.", L_close; + +L_close: + close; +} diff --git a/npc/00000SAVE/EPISODE/020-2_miler.txt b/npc/00000SAVE/EPISODE/020-2_miler.txt new file mode 100644 index 000000000..e1bb52ab7 --- /dev/null +++ b/npc/00000SAVE/EPISODE/020-2_miler.txt @@ -0,0 +1,56 @@ +// IMPORTANT: This NPC was never finished :o We must finish it, please follow +// directives stated on http://forums.landoffire.org/viewtopic.php?f=7&t=1320&sid=80d2c735b55ccb06a39955a8fbca3913 +020-2.gat,100,28,0 script Miler NPC100,{ + if (QUEST_Episode >= 18) goto L_Episode_Thank; + if (QUEST_Episode >= 4) goto L_Episode_AskBoxes; + if (QL_WELL == 2 && QUEST_Episode == 3) goto L_Episode_Start; + + mes "[Miler]"; + mes "\"Hello!\""; + + if (QL_WELL == 1) goto L_Well_Menu; + + goto L_close; + +L_Well_Menu: + menu + "Hello.", L_close, + "Hello, Can you help me?", L_Well_Help; + +L_Well_Help: + mes "[Miler]"; + mes "\"What's the problem?\""; + menu "Someone fell into the well.", L_Well_Finish; + +L_Well_Finish: + mes "[Miler]"; + mes "\"Ho! I'll help him!\""; + getexp (BaseLevel * 111), 0; + QL_WELL = 2; + goto L_close; + +L_Episode_Start: + mes "[Miler]"; + mes "\"Oh dear, oh dear, where could I have possibly left it?!\""; + menu + "What are you looking for?", L_Episode_Looking, + "Uh, bye.", L_close; + +L_Episode_Looking: + mes "[Miler]"; + mes "\"My ring! My one precious golden ring, oh where, oh where could it be...."; + next; + mes "How could I lose it, how could I lose it, how could I lose it...\""; + if (countitem("DarkConcentrationPotion") == 0) goto L_close; + +L_Episode_AskBoxes: + mes "[Miler]"; + +L_Episode_Thank: + mes "[Miler]"; + mes "\"Thank you so much for finding my precious ring!\""; + goto L_close; + +L_close: + close; +} diff --git a/npc/00000SAVE/events/028-1_Easter2010_Portal.txt b/npc/00000SAVE/events/028-1_Easter2010_Portal.txt new file mode 100644 index 000000000..e33f1429d --- /dev/null +++ b/npc/00000SAVE/events/028-1_Easter2010_Portal.txt @@ -0,0 +1,134 @@ +028-1,69,71,0 script Portal#_M NPC400,{ + if (isin("028-1",65,67,73,73)) goto L_Main; + mes "There is something there, but you aren't quite close enough to see exactly what it is."; + close; + +L_Main: + mes "[Portal]"; + mes ""; + mes "A strange field hovers about waist high above the ground."; + next; + mes "[Portal]"; + mes ""; + mes "You sense a feeling of familiarity radiating out from it."; + mes ""; + mes "It looks just wide enough to jump through."; + next; + mes "[Portal]"; + mes ""; + mes "You're not quite sure if there will be a way to return once you enter, though."; + next; + mes "[Portal]"; + mes ""; + mes "What do you do?"; + menu + "Jump through, without looking back.", L_No_Hesitation, + "Take one more look around.", L_Look, + "Leave it alone.", L_close; + +L_No_Hesitation: + mes "There has been quite enough of this harsh place. You jump through without hesitation..."; + next; + mes "...and fall, and fall..."; + next; + mes "Dizzying colors whirl around you. You collapse."; + savepoint "009-1", 52, 39; + heal -hp -1, 0, 1; + close; + +L_Look: + mes "[Portal]"; + mes ""; + mes "There was a lot here. You don't know where it came from, or quite how you ended up here."; + if ((Easter_2010_QuestState >> E10_STATE_ROSE_SHIFT) & E10_STATE_ROSE_MASK == E10_STATE_ROSE_ROSE_COMPLETE) + goto L_Full_Helped; + if ((Easter_2010_QuestState >> E10_HELPED_DOCTOR_SHIFT) & E10_HELPED_DOCTOR_MASK) + goto L_Somewhat_Helped; + if ((Easter_2010_QuestState >> E10_FLAG_KNOWS_DOCTOR_SHIFT) & E10_FLAG_KNOWS_DOCTOR) + goto L_Met; + if ((Easter_2010_QuestState >> E10_FLAG_RETURN_READY_SHIFT) & E10_FLAG_RETURN_READY_MASK) + goto L_Unknown_Defeat; + + mes "Come to think of it, there is still quite a lot you're not sure about. There was talk about something big, but you must have missed it... whatever it was, it seems gone now."; + goto L_Post_Look; + + +L_Full_Helped: + if ((Easter_2010_QuestState >> E10_FLAG_RETURN_READY_SHIFT) & E10_FLAG_RETURN_READY_MASK) + goto L_Full_Helped_Defeat; + mes "Your assistance was helpful, you know that much. If only you could have faced the darkness that plagued this world more directly..."; + goto L_Post_Look; + +L_Full_Helped_Defeat: + mes "You know you have done everything that you could have. Your determination will have surely meant the world will be restored, once more."; + goto L_Post_Look; + +L_Somewhat_Helped: + if ((Easter_2010_QuestState >> E10_FLAG_RETURN_READY_SHIFT) & E10_FLAG_RETURN_READY_MASK) + goto L_Somewhat_Helped_Defeat; + mes "You feel your help was not for nothing, though you can't quite shake the feeling there was still something more to do."; + goto L_Post_Look; + +L_Somewhat_Helped_Defeat: + mes "Your help was not for nothing. Your destruction of evil would surely help heal this world!"; + goto L_Post_Look; + +L_Met: + if ((Easter_2010_QuestState >> E10_FLAG_RETURN_READY_SHIFT) & E10_FLAG_RETURN_READY_MASK) + goto L_Met_Defeat; + mes "While you only met the Doctor briefly, he seemed to think there was something wrong. If only there was a way you could have helped, somehow."; + goto L_Post_Look; + +L_Met_Defeat: + mes "Striking down that evil, dark, figure would surely make a difference. While you only met the Doctor briefly, he seemed to think there was something wrong... with any luck, this defeat would be, at the very least, a significant setback."; + goto L_Post_Look; + +L_Unknown_Defeat: + mes "Striking down that evil, dark, figure would surely make a difference. You just wish you knew what that was about... if only there had been someone that could have explained it all."; + goto L_Post_Look; + +L_Post_Look: + next; + mes "What do you do?"; + menu + "Jump through", L_Jump, + "Leave it alone", L_close; + +L_Jump: + mes "[Portal]"; + mes ""; + mes "A tingling sensation surrounds you as you enter."; + next; + mes "[Portal]"; + mes ""; + mes "Inside, your senses seem heightened, sharpened..."; + next; + mes "[Portal]"; + mes ""; + mes "You can detect many entities all around you, yet you are not quite sure how."; + next; + mes "[Portal]"; + mes ""; + mes "Colors swirl around you. There is a sensation of great speed, of great power, of energy..."; + next; + mes "[Portal]"; + mes ""; + mes "A tearing motion. The blobs of color skew, and stretch into long thin lines... and somehow, a taste of peanuts."; + next; + mes "[Portal]"; + mes ""; + mes "A mass of green and yellow, moving at high speed... or perhaps it is you who is moving?"; + next; + mes "[Portal]"; + mes ""; + mes "Whichever it is, one of you slows just as you begin to recognise some details..."; + warp "009-1", 52, 39; + savepoint "009-1", 52, 39; + mes "[Home]"; + mes ""; + mes "You land softly. It is good to be home..."; + close; + +L_close: + close; +} diff --git a/npc/00000SAVE/events/030-2_XMAS_glitter_helper.txt b/npc/00000SAVE/events/030-2_XMAS_glitter_helper.txt new file mode 100644 index 000000000..a36ad93e1 --- /dev/null +++ b/npc/00000SAVE/events/030-2_XMAS_glitter_helper.txt @@ -0,0 +1,94 @@ + +030-2,31,81,0 script Veneri NPC328,{ + callfunc "XmasStates"; + + if($@xmas_time) + goto L_XmasMain; + goto L_OffSeason; + +L_OffSeason: + mes "[Veneri]"; + mes "\"I should take this time off to go see the doctor in Hurnscald about whether or not I have glitter lung.\""; + goto L_close; + +L_XmasMain: + if (XMASTIME & $@xmas_helper_bit_glitter_ends) goto L_Done; + if (XMASTIME & $@xmas_helper_bit_glitter_starts) goto L_Powder; + if (@xmas_helper_bit) goto L_Helping; + + mes "[Veneri]"; + mes "\"Mh? Excuse me, I'm very busy right now.\""; + goto L_close; + +L_Helping: + mes "[Veneri]"; + mes "\"Hello. We have some problems here. Something went wrong with the shipment of the ingredients for our decoration glitter."; + mes "Would you be so kind and get me " + $@xmas_red_amount + " Ruby Powders and " + $@xmas_yellow_amount + " Topaz Powders?\""; + next; + mes "[Veneri]"; + mes "\"This material has proven to have the quality we need to make our christmas magic last until it can sparkle under every christmas tree. Sadly we made some bad experience in the past. Please make sure you only bring class A powders.\""; + XMASTIME = XMASTIME | $@xmas_helper_bit_glitter_starts; + goto L_close; + +L_Powder: + mes "[Veneri]"; + mes "\"Welcome back. Do you have the " + $@xmas_red_amount + " Ruby Powders and " + $@xmas_yellow_amount + " Topaz Powders needed for the decoration glitter?\""; + if ((countitem("RubyPowder") >= $@xmas_red_amount) && (countitem("TopazPowder") >= $@xmas_yellow_amount) && (countitem("RedPowder") >= $@xmas_red_amount) && (countitem("YellowPowder") >= $@xmas_yellow_amount)) + menu + "Yeah, here it is. (Give the gem powders.)",L_GemPowders, + "Sure, here you go. (Give the fake powders.)",L_FakePowders, + "No, I am still working on that.",L_close; + if ((countitem("RubyPowder") >= $@xmas_red_amount) && (countitem("TopazPowder") >= $@xmas_yellow_amount)) + menu + "Yeah, here it is. (Give the gem powders.)",L_GemPowders, + "No, I am still working on that.",L_close; + if ((countitem("RedPowder") >= $@xmas_red_amount) && (countitem("YellowPowder") >= $@xmas_yellow_amount)) + menu + "Sure, here it is. (Give the fake powders.)",L_FakePowders, + "No, I am still working on that.",L_close; + goto L_close; + +L_GemPowders: + if ((countitem("RubyPowder") < $@xmas_red_amount) || (countitem("TopazPowder") < $@xmas_yellow_amount)) + goto L_NoItems; + delitem "RubyPowder", $@xmas_red_amount; + delitem "TopazPowder", $@xmas_yellow_amount; + XMASTIME = XMASTIME | $@xmas_helper_bit_glitter_ends; + @karma_bonus = $@xmas_karma_bonus; + callfunc "XmasNice"; + callfunc "XmasXpReward"; + mes "[Veneri]"; + mes "\"Excellent! Thank you very much.\""; + goto L_close; + +L_FakePowders: + if ((countitem("RedPowder") < $@xmas_red_amount) || (countitem("YellowPowder") < $@xmas_yellow_amount)) + goto L_NoItems; + delitem "RedPowder", $@xmas_red_amount; + delitem "YellowPowder", $@xmas_yellow_amount; + XMASTIME = XMASTIME | $@xmas_helper_bit_glitter_ends; + XMASTIME = XMASTIME &~ $@xmas_helper_bit_glitter_starts; + @karma_bonus = $@xmas_karma_bonus; + callfunc "XmasNaughty"; + callfunc "XmasXpReward"; + mes "It seems like he didn't notice that the powder you gave him is bogus."; + mes "[Veneri]"; + mes "\"Excellent! Thank you very much.\""; + goto L_close; + +L_Done: + mes "[Veneri]"; + if (!(@xmas_helper_glitter)) + mes "\"Even after your help, the powder still isn't working right. Maybe it got wet.\""; + if (@xmas_helper_glitter) + mes "\"Thanks for bringing the powders.\""; + goto L_close; + +L_NoItems: + mes "[Veneri]"; + mes "\"Eh? Are you kidding?\""; + goto L_close; + +L_close: + close; +} diff --git a/npc/00000SAVE/events/031-1_frozenbeard.txt b/npc/00000SAVE/events/031-1_frozenbeard.txt new file mode 100644 index 000000000..b39519109 --- /dev/null +++ b/npc/00000SAVE/events/031-1_frozenbeard.txt @@ -0,0 +1,58 @@ + +031-1,96,113,0 script Frozenbeard NPC138,{ + + mes "[Frozenbeard]"; + mes "\"Arrr mate! I'm glad there's a dock here, so I don't have to row boat from my ship anymore! I pioneered the trade routes between Nivalis and the rest of the World, so now merchants and adventurers can travel to and fro without any hassle other than the harsh weather up here, yarr.\""; + close; + + +L_Frozenbeard_Easter2012: + mes "[Frozenbeard]"; + mes "\"Arrrrh mate! Ye be right! I know every single pirate in this world. But not all of them are to be trusted, I must say.\""; + next; + menu + "I need information about the Easter Bunny. I heard some pirates kidnapped him.", L_EasterBunny; + +L_EasterBunny: + mes "[Frozenbeard]"; + mes "\"Arrrrh! Ye shouldn't do this to me. Those pirates are dangerous, I can't put myself in such a situation!\""; + next; + if (countitem("BlackPearl") < 1) goto L_Frozenbeard_Fear; + mes "You take a black pearl from your backpack and start to play with it."; + next; + menu + "Hmm, too bad, because I was willing to pay well for information, you know?", L_OfferPearl; + +L_OfferPearl: + mes "[Frozenbeard]"; + mes "\"Arrh eh... Did I say dangerous? These pirates are criminals and a shame to our kind. So, if ye give me this pearl I can tell ye all I know about them. It is not much, but maybe it can help.\""; + menu + "Ok, keep going.", L_GiveInfo; + +L_GiveInfo: + mes "[Frozenbeard]"; + mes "\"Well I heard they took him to a small house around this area, where they have their base. But then they brought him to another place. It might be hot there, judging the way they dressed up. The bunny seemed to show no resistance at all when they kidnapped him. It looked as if he did not know what was happening.\""; + next; + mes "\"But the most important thing is, the leader of the kidnappers is an old friend of George, the treasure hunter. George is very clever, I am sure he knows how the kidnapper thinks and all, maybe he can give ye a more specific information about this.\""; + next; + menu + "Well, that was useful, take your pearl.", L_PayPearl; + +L_PayPearl: + if (countitem("BlackPearl") < 1) + goto L_Frozenbeard_Nopearl; + delitem "BlackPearl", 1; + QUEST_Easter12 = 3; + mes "[Frozenbeard]"; + mes "\"Arrrrh! Such a beautiful item! Always glad to help.\""; + close; + +L_Frozenbeard_Fear: + mes "Frozenbeard ends the conversation. You can see he is afraid of the kidnappers."; + close; + +L_Frozenbeard_Nopearl: + mes "[Frozenbeard]"; + mes "\"Arrrrh! I see no pearl!\""; + close; +} diff --git a/npc/00000SAVE/fairy/009-2_fairyquest2.txt b/npc/00000SAVE/fairy/009-2_fairyquest2.txt new file mode 100644 index 000000000..fac3d9153 --- /dev/null +++ b/npc/00000SAVE/fairy/009-2_fairyquest2.txt @@ -0,0 +1,75 @@ + +009-2,63,26,0 script Royal Fairy NPC108,{ + if(FAIRY_Quest == 1) goto L_tellagain; + if(FAIRY_Quest == 3) goto L_thanks; + if(FAIRY_Quest == 4) goto L_thanks2; + + mes "[Fairy Princess]"; + mes "\"Hi, I'm too busy to talk right now, please go away. Very pressing matters at hand.\""; + goto L_close; + +L_tellagain: + mes "[Fairy Princess]"; + mes "\"Hello, I noticed my dear friend, Susanne, asked you to help us save my sisters; do not forget to ask Susanne where the Fafi Dragon was last seen.\""; + goto L_close; + +L_thanks: + mes "[Fairy Princess]"; + mes "\"Thank you so much for saving my sisters!\""; + next; + mes "\"As a reward to a Noble Warrior as yourself, I want you to have one. They will serve you during your travels, please choose one.\""; + mes "\"Or If you don't want one you can keep the Monster Skull Mask that Susanne gave you.\""; + if (countitem("MonsterSkullHelmet") == 0) goto L_Nomask; + goto L_fairymenu; + +L_fairymenu: + menu + "I'd like to take the Blue Fairy with me!", L_blue, + "I love the Red Fairy, she'd be a good friend", L_Red, + "Can I take the Green Fairy with me?", L_Green, + "Right now I don't really feel like having someone with me..", L_No; + +L_blue: + delitem "MonsterSkullHelmet", 1; + getexp 100000, 0; + getitem "BlueFairy", 1; + FAIRY_Quest = 4; + goto L_close; + +L_Red: + delitem "MonsterSkullHelmet", 1; + getexp 100000, 0; + getitem "RedFairy", 1; + FAIRY_Quest = 4; + goto L_close; + +L_Green: + delitem "MonsterSkullHelmet", 1; + getexp 100000, 0; + getitem "GreenFairy", 1; + FAIRY_Quest = 4; + goto L_close; + +L_No: + mes "[Fairy Princess]"; + mes "\"Ok...if you ever feel like having one of my sisters there with you, come back!\""; + goto L_close; + +L_thanks2: + mes "[Fairy Princess]"; + mes "\"Thank you so much for saving my sisters!\""; + next; + mes "\"They can now enjoy life and see their younger friend.\""; + goto L_close; + +L_Nomask: + mes "[Fairy Princess]"; + mes "\"Seems like you don't have the Monster Skull Helmet with you.\""; + mes "\"For a Fairy to obey your every command, the Helmet must be used as part of the spell.\""; + mes "\"Please come back when you have it with you.\""; + goto L_close; + + +L_close: + close; +} diff --git a/npc/00000SAVE/fairy/018-3_fairyquest1.txt b/npc/00000SAVE/fairy/018-3_fairyquest1.txt new file mode 100644 index 000000000..01c504463 --- /dev/null +++ b/npc/00000SAVE/fairy/018-3_fairyquest1.txt @@ -0,0 +1,110 @@ + +018-3,60,21,0 script Susanne NPC114,{ + + if(BaseLevel < 50) goto L_Noob; + if(@FafiFight == 1) goto L_coward; + if(FAIRY_Quest == 1) goto L_tellagain; + if(FAIRY_Quest == 2) goto L_thanks; + if(FAIRY_Quest >= 3) goto L_thanks_again; + + + mes "[Susanne]"; + mes "\"Do you like fairies? I love them! I play with them all the time, they are so nice to me...\""; + next; + + mes "\"(The girl now looks away sadly, thinking about what to say next)\""; + next; + + + mes "[Susanne]"; + mes "\"But a Dragon came and ran away with them, you look big and strong, do you want to help me and save my friends?\""; + goto L_firstmenu; + +L_firstmenu: + menu + "Sure, I'd love to help! What can I do?", L_Yes1, + "Nah, I've got more serious matters to attend to...", L_No; + +L_Yes1: + + mes "[Susanne]"; + mes "\"Thank you so much! I can't wait to see my friends again!\""; + next; + mes "\"The Dragon is a really really bad guy, He lives in the caves of the Dark world.\""; + mes "\"and it looks like he found a way to come into our world, some kind of portal or... that doesn't matter now.\""; + next; + mes "\"All that matters right now is getting him to let my friends go!\""; + next; + mes "\"So if you can help, go kill him to free my friends! Please let me know when he is dead.\""; + next; + mes "\"Thank You....\""; + next; + mes "(Susanne Screams) \"WATCH OUT!!! I think I hear him in this very cave!!!\""; + FAIRY_Quest = 1; + @FafiFight = 1; + monster "018-3",28,25,"FafiDragon",1120,1, "Susanne::OnFafiDragonDead"; + close; + +OnFafiDragonDead: + if (FAIRY_Quest == 1) set FAIRY_Quest, 2; + @FafiFight = 0; + message strcharinfo(0), " You killed the Fafi Dragon."; + mapannounce "018-3", "" +strcharinfo(0)+ " has killed the Fafi Dragon!", 0; + mapannounce "009-1", "" +strcharinfo(0)+ " has killed the Fafi Dragon!", 0; + mapannounce "001-1", "" +strcharinfo(0)+ " has killed the Fafi Dragon!", 0; + mapannounce "020-1", "" +strcharinfo(0)+ " has killed the Fafi Dragon!", 0; + mapannounce "027-1", "" +strcharinfo(0)+ " has killed the Fafi Dragon!", 0; + message strcharinfo(0), " Cheers are being heard throughout the land!"; + end; + +L_tellagain: + mes "[Susanne]"; + mes "\"Hello \"" + strcharinfo(0) + ","; + mes "\"Don't forget, the Fafi Dragon roams throughout many worlds... Please save my friends, they are in so much danger...\""; + @FafiFight = 1; + monster "018-3",28,25,"FafiDragon",1120,1, "Susanne::OnFafiDragonDead"; + mes "\"Thank you...\""; + next; + mes "\"(Susanne Screams) WATCH OUT!!! I think I hear him in this very cave!!!\""; + close; + +L_thanks: + mes "[Susanne]"; + + getinventorylist; + if (@inventorylist_count == 100) goto L_Full_inv; + @inventorylist_count = 0; + + mes "\"I'm so glad I get to see my friends again, thank you so much for saving them! You are so big and strong... You should talk to the Fairy Princess on the second floor of the Hurnscald Inn.\""; + mes "\"By the way, I found this Helmet after you killed the Fafi Dragon, Maybe you can use it some day.\""; + if (FAIRY_Quest==2) set FAIRY_Quest, 3; + getitem "MonsterSkullHelmet", 1; + close; + +L_Full_inv: + mes "\"Thank you for saving my friends! I have something to give you, but you have nowhere to put it! Please come back when you have some room.\""; + @inventorylist_count = 0; + close; + +L_thanks_again: + mes "[Susanne]"; + mes "\"I'm so glad I get to see my friends again, thank you so much for saving them!\""; + close; + +L_No: + mes "[Susanne]"; + mes "\"Ok...please come back when you aren't busy...\""; + next; + mes "\"(The girl turns around and you hear her sniffing, she is probably crying...\""; + close; + +L_Noob: + mes "[Susanne]"; + mes "\" I need some help with something, but I don't think you're strong enough. Come back later please when you're stronger.\""; + close; + +L_coward: + mes "[Susanne]"; + mes "\"What are you doing talking to me? Go fight, you coward!\""; + close; +} diff --git a/npc/00000SAVE/lockpicking.txt b/npc/00000SAVE/lockpicking.txt new file mode 100644 index 000000000..da2da5dd6 --- /dev/null +++ b/npc/00000SAVE/lockpicking.txt @@ -0,0 +1,87 @@ + +function script LockPicking { + @lock_picking_success = 0; + setarray @pins, rand(1,3), rand(1,3), rand(1,3); + goto L_StartLockPicking; + +L_NeedLockPickSet: + menu + "Unfortunately, I don't have these tools... Let's look around.", L_Return; + +L_StartLockPicking: + mes "You inspect the lock and notice it isn't sophisticated."; + mes "With regular stuff, you should be able to lock pick it."; + next; + if (countitem ("LockPicks") < 1) + goto L_NeedLockPickSet; + menu + "I can try with these lock picks I just found.", L_Next, + "Maybe later.", L_Return; + +L_Next: + delitem "LockPicks", 1; + mes "You insert the hook pick inside the lock, and, without applying any tension, you discover there are only 3 pins to set."; + next; + mes "You will need to set the 3 pins to align them and turn the lock's cylinder."; + mes "A wrong move will make you start over. Remember how you had set the pins!"; + next; + @pin = 0; + goto L_HandlePin; + +L_NextPinOrEnd: + if (@pin >= 2) + goto L_OpenDoor; + @pin = @pin + 1; + mes "Click! This pin is set!"; + next; + goto L_HandlePin; + +L_HandlePin: + if (@pin == 0) + mes "What to do with the first pin?"; + if (@pin == 1) + mes "What to do with the second pin?"; + if (@pin == 2) + mes "What to do with the last pin?"; + menu + "Apply a soft pressure.", L_PinSoft, + "Apply a normal pressure.", L_PinNormal, + "Apply a strong pressure.", L_PinHard, + "Give up. I'm in a rush!", L_GiveUp; + +L_GiveUp: + @lock_picking_success = 0; + @pin = 0; + cleararray @pins, 0, 3; + @pin_pressure = 0; + return; + +L_PinSoft: + @pin_pressure = 1; + goto L_TestPin; + +L_PinNormal: + @pin_pressure = 2; + goto L_TestPin; + +L_PinHard: + @pin_pressure = 3; + goto L_TestPin; + +L_TestPin: + if (@pin_pressure == @pins[@pin]) + goto L_NextPinOrEnd; + mes "Nope, that did not work. And the pins are unset now..."; + next; + @pin = 0; + goto L_HandlePin; + +L_Return: + return; + +L_OpenDoor: + @lock_picking_success = 1; + mes "The two sets of pins separate. You can now turn the cylinder to open the door!"; + return; + +} diff --git a/npc/00000SAVE/misc/doctor.txt b/npc/00000SAVE/misc/doctor.txt new file mode 100644 index 000000000..241347909 --- /dev/null +++ b/npc/00000SAVE/misc/doctor.txt @@ -0,0 +1,88 @@ + +009-2,148,25,0 script Doctor NPC107,{ + callfunc "ClearVariables"; + + @inspector = ((QUEST_Hurnscald & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT); + + if (getequipid(equip_head) == 616) goto L_Axe; + if (getequipid(equip_head) == 621) goto L_EyePatch; + + mes "[Doctor]"; + mes "\"Hello, can I help you?\""; + next; + + if (@inspector == 1) + menu + "I think I am sick!", L_Cure, + "No, I feel fine.", L_Next, + "Have you seen anything strange in town? Anything that might have to do with the robberies?", L_NohMask; + menu + "I think I am sick!", L_Cure, + "No, I feel fine.", L_Next; + +L_Next: + mes "[Doctor]"; + mes "\"Then please stop wasting my precious time.\""; + goto L_close; + +L_Cure: + mes "[Doctor]"; + if (sc_check(SC_POISON)) + goto L_CurePoison; + mes "The doctor examines you briefly."; + mes "\"Nonsense! You look fine and dandy to me. All you need is a bit more exercise and fresh fruit in your diet!\""; + goto L_close; + +L_CurePoison: + mes "\"Well, well, well! Look at all those green bubbles coming out of your head; that looks like poisoning to me! Did you eat something rotten?\""; + next; + mes "[Doctor]"; + mes "The doctor pulls out a syringe and fills it with a white liquid from a jar on his desk."; + mes "\"Now hold still, this won't hurt a bit...\""; + next; + mes "[Doctor]"; + sc_end(SC_POISON); + sc_end(SC_SLOWPOISON); + mes "*Ouch!*"; + mes "\"Next time, be more careful! Make sure to cook any meats before you eat them, and don't eat fish once it starts to smell.\""; + goto L_close; + +L_Axe: + mes "[Doctor]"; + mes "\"Oh my, what happened to you?\""; + next; + mes "[Doctor]"; + mes "\"Wait. Thats just a fake. Shame on you!\""; + goto L_close; + +L_EyePatch: + mes "[Doctor]"; + mes "\"Would you like a glass eye to replace that eye patch you have? We just got a whole load of them in today. I'll even let you keep the patch as a souvenir.\""; + next; + menu + "Yes, please.", L_EyePatch_GlassEye, + "No thank you", L_Next1; + +L_Next1: + mes "[Doctor]"; + mes "\"If you change your mind, please come back and see me.\""; + goto L_close; + +L_EyePatch_GlassEye: + mes "[Doctor]"; + mes "\"Now, where did I put that box of eyes...\""; + mes "He goes off to look for them and comes back empty handed."; + next; + mes "[Doctor]"; + mes "\"I can't seem to find where I put that box. You should come back later, I may have found them by then.\""; + goto L_close; + +L_NohMask: + mes "[Doctor]"; + mes "\"No, I haven't seen anything.\""; + goto L_close; + +L_close: + @inspector = 0; + close; +} diff --git a/npc/00000SAVE/misc/injured-mouboo.txt b/npc/00000SAVE/misc/injured-mouboo.txt new file mode 100644 index 000000000..0737f79c4 --- /dev/null +++ b/npc/00000SAVE/misc/injured-mouboo.txt @@ -0,0 +1,224 @@ + +function script QuestMoubooHeal { + @Q_MASK = NIBBLE_2_MASK; + @Q_SHIFT = NIBBLE_2_SHIFT; + + @Q_status = (QUEST_MAGIC & @Q_MASK) >> @Q_SHIFT; + @Q_status_upper = @Q_status & 12; + @Q_status = @Q_status & 3; + + @STATE_INITIAL = 0; + @STATE_HEALED_MOUBOO = 3; + + if (@Q_status != @STATE_INITIAL) + goto L_Nothing; + + @Q_status = @STATE_HEALED_MOUBOO; + callsub S_Update_Var; + mes "[Injured Mouboo]"; + mes "A soft white glow surrounds the mouboo's leg, which slowly shifts back into place."; + mes "As the glow subsides, the mouboo gets up, carefully, and takes a few steps. It seems to be fully healed!"; + mes "[5000 experience points]"; + getexp 5000, 0; + next; + mes "[Injured Mouboo]"; + mes "Visibly happy, the mouboo lies down on the ground and snuggles with a black piece of cloth it had been lying on."; + mes "The healing process must have been exhausting, for it is asleep in an instant."; + next; + @value = 15; + callfunc "QuestSagathaHappy"; + close; + +L_Nothing: + mes "Your spell has no effect."; + close; + +S_Update_Var: + @Q_wr_status = @Q_status | @Q_status_upper; + set QUEST_MAGIC, + (QUEST_MAGIC & ~(@Q_MASK) + | (@Q_wr_status << @Q_SHIFT)); + return; +} + +012-1,57,153,0 script Mouboo NPC171,{ + @Q_MASK = NIBBLE_2_MASK; + @Q_SHIFT = NIBBLE_2_SHIFT; + + @Q_status = (QUEST_MAGIC & @Q_MASK) >> @Q_SHIFT; + @Q_status_upper = @Q_status & 12; + @Q_status = @Q_status & 3; + + @STATE_INITIAL = 0; + @STATE_KILLED_MOUBOO = 1; + @STATE_TOOK_KILL_REWARD = 2; + @STATE_HEALED_MOUBOO = 3; + + if (@Q_status == @STATE_KILLED_MOUBOO) + goto L_Dead; + if (@Q_status == @STATE_TOOK_KILL_REWARD) + goto L_took_reward; + if (@Q_status == @STATE_HEALED_MOUBOO) + goto L_healed; + + mes "[Injured Mouboo]"; + mes "You notice a mouboo lying on the ground, groaning, as if in pain."; + next; + goto L_Menu; + +L_Menu: + menu + "Examine the mouboo", L_examine, + "Give the mouboo something", L_Give, + "Kill the mouboo", L_Kill, + "Leave", L_close; + +L_examine: + mes "[Injured Mouboo]"; + mes "Looking closer, you notice that the mouboo's left hind leg is bent at a very unnatural angle-- that seems to be the cause for its pain."; + next; + mes "[Injured Mouboo]"; + mes "You also notice that the mouboo is lying on top of what appears to be a black turtleneck sweater."; + mes "Do you want to pick up the sweater?"; + next; + menu + "Yes.", L_pickup_alive, + "No.", L_Menu; + +L_pickup_alive: + mes "[Injured Mouboo]"; + mes "The Mouboo groans and pushes your hand away. It seems to be rather fond of the sweater."; + next; + goto L_Menu; + +L_Give: + @items_nr = 12; + setarray @items$, "CactusDrink", "CactusPotion", "ChocolateBar", "Milk", "OrangeCupcake", "RedApple", "Beer", "BottleOfWater", "TinyHealingPotion", "SmallHealingPotion", "MediumHealingPotion", "LargeHealingPotion"; + setarray @itemnames$, "Cactus Drink", "Cactus Potion", "Chocolate Bar", "Milk", "Orange Cupcake", "Red Apple", "Beer", "Bottle of Water", "Tiny Healing Potion", "Small Healing Potion", "Medium Healing Potion", "Large Healing Potion"; + setarray @itemeat, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0; + + setarray @menuitems$, "", "", "", "", "", "", "", "", "", "", "", "", ""; + @choices_nr = 0; + setarray @menuNames$, "", "", "", "", "", "", "", "", "", "", "", "", ""; + setarray @choice_eat, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0; + + @n = 0; + @ct = 0; + goto L_nloop; + +L_nloop: + @k$ = @items$[@n]; + if (countitem(@k$) == 0) + goto L_nloop_skip; + + @menuitems$[@ct] = @itemnames$[@n]; + @menuNames$[@ct] = @k$; + @choice_eat[@ct] = @itemeat[@n]; + @ct = @ct + 1; + goto L_nloop_skip; + +L_nloop_skip: + @n = @n+1; + if (@n < @items_nr) + goto L_nloop; + + @menuitems$[@ct] = "Nevermind"; + + menu + @menuitems$[0], L_MenuItems, + @menuitems$[1], L_MenuItems, + @menuitems$[2], L_MenuItems, + @menuitems$[3], L_MenuItems, + @menuitems$[4], L_MenuItems, + @menuitems$[5], L_MenuItems, + @menuitems$[6], L_MenuItems, + @menuitems$[7], L_MenuItems, + @menuitems$[8], L_MenuItems, + @menuitems$[9], L_MenuItems, + @menuitems$[10], L_MenuItems, + @menuitems$[11], L_MenuItems, + @menuitems$[12], L_MenuItems; + +L_MenuItems: + @menu = @menu - 1; + if (@menu == @ct) + goto L_Menu; + @choice$ = @menuNames$[@menu]; + @verb$ = "drinks"; + if (@choice_eat[@menu]) + @verb$ = "eats"; + if (@choice$ != "" && countitem(@choice$)) + goto L_consume; + goto L_Menu; + +L_consume: + mes "[Injured Mouboo]"; + mes "The mouboo " + @verb$ + " your " + getitemlink(@choice$) + "."; + delitem @choice$, 1; + next; + if (@choice$ == "LargeHealingPotion") + goto L_do_heal; + mes "[Injured Mouboo]"; + mes "Unfortunately, it seems to have had no effect."; + next; + goto L_Menu; + +L_do_heal: + callfunc "QuestMoubooHeal"; + goto L_Kill; + +L_Kill: + mes "[Injured Mouboo]"; + if (BaseLevel > 44) + goto L_Kill_success; + mes "The mouboo deflects your attack and counterattacks!"; + mes "It misses you only barely."; + mes "Injured though it may be, this mouboo is still more than a match for you!"; + next; + goto L_Menu; + +L_Kill_success: + mes "After some wrestling, the mouboo succumbs to your attacks."; + mes "[100 experience points]"; + getexp 100, 0; + @Q_status = @STATE_KILLED_MOUBOO; + callsub S_Update_Var; + next; + goto L_Dead; + +L_Dead: + mes "[Dead Mouboo]"; + mes "The dead mouboo is lying on top of a black T-neck sweater."; + getinventorylist; + if (@inventorylist_count == 100) + goto L_Nopickup; + getitem "BlackTurtleneckSweater", 1; + mes "You pull out the sweater and stuff it into your backpack."; + @Q_status = @STATE_TOOK_KILL_REWARD; + callsub S_Update_Var; + close; + +L_took_reward: + mes "[Dead Mouboo]"; + mes "You see a dead mouboo."; + close; + +L_Nopickup: + mes "Unfortunately, you can't carry any more."; + close; + +L_healed: + mes "[Mouboo]"; + mes "The mouboo is sleeping soundly, smiling in its dreams."; + close; + +L_close: + close; + +S_Update_Var: + @Q_wr_status = @Q_status | @Q_status_upper; + set QUEST_MAGIC, + (QUEST_MAGIC & ~(@Q_MASK) + | (@Q_wr_status << @Q_SHIFT)); + return; +} diff --git a/npc/00000SAVE/misc/pachua.txt b/npc/00000SAVE/misc/pachua.txt new file mode 100644 index 000000000..9c8d3ba2c --- /dev/null +++ b/npc/00000SAVE/misc/pachua.txt @@ -0,0 +1,464 @@ +006-1,23,100,0 script Pachua NPC143,{ + @LEATHER_PATCH_PRICE = 300; + @wants_leather_patch = QUEST_Forestbow_state & NIBBLE_4_MASK; + + if ((gettime(5) >= $@xmas2011_start_day) && (gettime(5) < $@xmas2011_reward_start_day) && (gettime(6) == 12) && (gettime(7) == $@xmas2011_year)) + @wants_leather_patch = @wants_leather_patch | (xmas11 & $@xmas11_talkedToChief); + + $@xmas2011_start_day = 10; + $@xmas2011_reward_start_day = 25; + + + if (QUEST_MIRIAM_cheat != 0) goto L_Warp2_cheat; + if (QUEST_MIRIAM_start != 0) goto L_smoke; + + + @hw2011_npc_id = $@hw2011_npc_pachua; + if (gettime(7) == $@hw2011_year && gettime(6) == 10 && gettime(5) >= $@hw2011_start_day) + goto L_TrickOrTreat; + + goto L_Begin; + +L_Begin: + mes "[Chief Pachua]"; + mes "\"How!\""; + next; + + if (getequipid(equip_head) == 643 || getequipid(equip_head) == 644) goto L_WearingCowboy; + if (getequipid(equip_legs) == 642) goto L_WearingChaps; + + mes "[Chief Pachua]"; + mes "\"For generations my tribe has been crafting special clothes out of different items.\""; + next; + goto L_Check_Mamba; + +L_Check_Mamba: + if (countitem("BlackMambaSkin") == 0 || QUEST_Mamba > 5 || BaseLevel < 50) goto L_Check_Shops; + if (QUEST_Mamba > 1) goto L_Check_Mamba_Again; + + mes "[Chief Pachua]"; + mes "\"Ah! Do I see a Black Mamba Skin sticking out of your bag?\""; + menu + "Yes, can you do something with it?", L_Branch_Mamba, + "Yes, but that's not why I'm here to see you.", L_Check_Shops; + +L_Check_Mamba_Again: + mes "[Chief Pachua]"; + mes "\"I see you have a Black Mamba Skin with you, are you ready for me to craft something with it?\""; + menu + "Yes, take a look.", L_Branch_Mamba, + "No, that's not why I'm here to see you.", L_Check_Shops; + +L_Branch_Mamba: + if (QUEST_Mamba == 5) goto L_Mamba_Helm; + if (QUEST_Mamba == 4) goto L_Mamba_Chest; + if (QUEST_Mamba == 3) goto L_Mamba_Legs; + if (QUEST_Mamba == 2) goto L_Mamba_Boots; + if (QUEST_Mamba == 1) goto L_Mamba_Gloves; + + mes "[Chief Pachua]"; + mes "\"The skin of the Black Mamba can be used to craft a leather armor that is lighter than any metal armor and stronger than any other leather."; + mes "\"Because it is leather, it can be used to make every type of armor."; + mes "\"Although I know of no-one with the expertise to craft a shield, I can make the other pieces for you."; + mes "\"I'll start with the gloves, but I'll need two Black Mamba Skins, one Black Mamba Tongue for thread, two Black Mamba Eggs to soften the leather, a Ruby, and 5,000 gold.\""; + + QUEST_Mamba = 1; + + menu + "I actually have all of that already!", L_Mamba_Gloves_Check, + "Maybe later....", L_close; + +L_Mamba_Gloves: + mes "[Chief Pachua]"; + mes "\"For a pair of Black Mamba Gloves I'll need two Black Mamba Skins, one Black Mamba Tongue for thread, two Black Mamba Eggs to soften the leather, a Ruby, and 5,000 gold.\""; + menu + "Here you are.", L_Mamba_Gloves_Check, + "I'll think about it.", L_close; + +L_Mamba_Gloves_Check: + getinventorylist; + if (@inventorylist_count == 100) goto L_TooMany; + if (countitem("BlackMambaSkin") < 2 || countitem("BlackMambaTongue") < 1 || + countitem("BlackMambaEgg") < 2 || countitem("Ruby") < 1) goto L_MissingItems; + if (Zeny < 5000) goto L_NoMoney; + + delitem "BlackMambaSkin", 2; + delitem "BlackMambaTongue", 1; + delitem "BlackMambaEgg", 2; + delitem "Ruby", 1; + Zeny = Zeny - 5000; + + getitem "BlackMambaGloves", 1; + QUEST_Mamba = 2; + goto L_DealDone; + +L_Mamba_Boots: + mes "[Chief Pachua]"; + mes "\"For a pair of Black Mamba Boots I'll need four Black Mamba Skins, two Black Mamba Tongues for thread, two Rubies, and 10,000 gold.\""; + menu + "I'll take them.", L_Mamba_Boots_Check, + "That's way too much!", L_close; + +L_Mamba_Boots_Check: + getinventorylist; + if (@inventorylist_count == 100) goto L_TooMany; + if (countitem("BlackMambaSkin") < 4 || countitem("BlackMambaTongue") < 2 || + countitem("Ruby") < 2) goto L_MissingItems; + if (Zeny < 10000) goto L_NoMoney; + + delitem "BlackMambaSkin", 4; + delitem "BlackMambaTongue", 2; + delitem "Ruby", 2; + Zeny = Zeny - 10000; + + getitem "BlackMambaBoots", 1; + QUEST_Mamba = 3; + goto L_DealDone; + +L_Mamba_Legs: + mes "[Chief Pachua]"; + mes "\"For a pair of Black Mamba Pants I'll need six Black Mamba Skins, three Black Mamba Tongues for thread, six Black Mamba Eggs to soften the leather, three Rubies, and 20,000 gold.\""; + menu + "Here you go!", L_Mamba_Legs_Check, + "Um, no thanks.", L_close; + +L_Mamba_Legs_Check: + getinventorylist; + if (@inventorylist_count == 100) goto L_TooMany; + if (countitem("BlackMambaSkin") < 6 || countitem("BlackMambaTongue") < 3 || + countitem("BlackMambaEgg") < 6 || countitem("Ruby") < 3) goto L_MissingItems; + if (Zeny < 20000) goto L_NoMoney; + + delitem "BlackMambaSkin", 6; + delitem "BlackMambaTongue", 3; + delitem "BlackMambaEgg", 6; + delitem "Ruby", 3; + Zeny = Zeny - 20000; + + getitem "BlackMambaPants", 1; + QUEST_Mamba = 4; + goto L_DealDone; + +L_Mamba_Chest: + mes "[Chief Pachua]"; + mes "\"For a Black Mamba Armor I'll need ten Black Mamba Skins, ten Black Mamba Tongues for stitching, two Iron Ingots for strength, ten Rubies, and 250,000 gold.\""; + menu + "I'll take it.", L_Mamba_Chest_Check, + "That's outrageous!", L_close; + +L_Mamba_Chest_Check: + getinventorylist; + if (@inventorylist_count == 100) goto L_TooMany; + if (countitem("BlackMambaSkin") < 10 || countitem("BlackMambaTongue") < 10 || + countitem("IronIngot") < 2 || countitem("Ruby") < 10) goto L_MissingItems; + if (Zeny < 250000) goto L_NoMoney; + + delitem "BlackMambaSkin", 10; + delitem "BlackMambaTongue", 10; + delitem "IronIngot", 2; + delitem "Ruby", 10; + Zeny = Zeny - 250000; + + getitem "BlackMambaArmor", 1; + QUEST_Mamba = 5; + goto L_DealDone; + +L_Mamba_Helm: + mes "[Chief Pachua]"; + mes "\"For a Black Mamba Helm I'll need eight Black Mamba Skins, eight Black Mamba Tongues for stitching, eight Black Mamba Eggs to soften the interior, twenty Rubies to absorb blows, and 100,000 gold.\""; + menu + "Can I get that boxed?", L_Mamba_Helm_Check, + "Not worth it to me right now.", L_close; + +L_Mamba_Helm_Check: + if (countitem("BlackMambaSkin") < 8 || countitem("BlackMambaTongue") < 8 || + countitem("BlackMambaEgg") < 8 || countitem("Ruby") < 20) goto L_MissingItems; + if (Zeny < 100000) goto L_NoMoney; + + delitem "BlackMambaSkin", 8; + delitem "BlackMambaTongue", 8; + delitem "BlackMambaEgg", 8; + delitem "Ruby", 20; + Zeny = Zeny - 100000; + + getitem "BlackMambaHelm", 1; + QUEST_Mamba = 6; + goto L_DealDone; + +L_Check_Shops: + if ((countitem("JeansShorts") >= 1 && countitem("SnakeSkin") >= 10) && (countitem("FancyHat") >= 1 && countitem("SnakeSkin") >= 2)) goto L_Super_store; + if (countitem("JeansShorts") >= 1 && countitem("SnakeSkin") >= 10) goto L_Chaps_store; + if (countitem("FancyHat") >= 1 && countitem("SnakeSkin") >= 2) goto L_Cowboy_store; + + mes "[Chief Pachua]"; + mes "\"Maybe if you bring me the right materials I can make something for you.\""; + next; + if (@wants_leather_patch) + menu + "Wait, can you make a leather patch for me?", L_leather_patch, + "OK, bye.", L_close; + goto L_Super_store; + +S_CheckStuff: + mes "[Chief Pachua]"; + mes "\"Let me see what you have there.\""; + next; + return; + +L_Super_store: + callsub S_CheckStuff; + mes "[Chief Pachua]"; + mes "\"Ahh you have lots of good items to work with.\""; + mes "\"With them I can make you either a Cowboy hat or Snake Skin Chaps\""; + next; + if (@wants_leather_patch) + menu + "Cowboy hat, please.", L_BuyCowboy, + "Snake Skin Chaps sound good.", L_BuyChaps, + "Can you make a leather patch?", L_leather_patch, + "Not now, maybe later.", L_NoDeal; + menu + "Cowboy hat, please.", L_BuyCowboy, + "Snake Skin Chaps sound good.", L_BuyChaps, + "Not now, maybe later.", L_NoDeal; + +L_Cowboy_store: + callsub S_CheckStuff; + mes "[Chief Pachua]"; + mes "\"To make you a Cowboy hat I will need:"; + mes "1 Fancy hat"; + mes "2 Snake skins"; + mes "5.000 GP\""; + mes ""; + mes "\"Do we have a deal?\""; + next; + if (@wants_leather_patch) + menu + "Yes, that's fine.", L_BuyCowboy, + "Can you make a leather patch?", L_leather_patch, + "On second thought, maybe later.", L_NoDeal; + menu + "Yes, that's fine.", L_BuyCowboy, + "On second thought, maybe later.", L_NoDeal; + +L_Chaps_store: + callsub S_CheckStuff; + mes "[Chief Pachua]"; + mes "\"To make you a pair of Snake Skin Chaps I will need:"; + mes "1 Jeans Shorts"; + mes "10 Snake skins"; + mes "10.000 GP\""; + mes ""; + mes "\"Do we have a deal?\""; + if (!@wants_leather_patch) + menu + "Yes, that's fine.", L_BuyChaps, + "On second thought, maybe later.", L_NoDeal; + if (@wants_leather_patch) + menu + "Yes, that's fine.", L_BuyChaps, + "Can you make a leather patch?", L_leather_patch, + "On second thought, maybe later.", L_NoDeal; + +L_BuyChaps: + getinventorylist; + if (@inventorylist_count == 100) goto L_TooMany; + if (Zeny < 10000) goto L_NoMoney; + if (countitem("JeansShorts") < 1) goto L_NoJeans; + if (countitem("SnakeSkin") < 10) goto L_NoSkins; + Zeny = Zeny - 10000; + delitem "SnakeSkin", 10; + delitem "JeansShorts", 1; + getitem "JeansChaps", 1; + goto L_DealDone; + +L_BuyCowboy: + getinventorylist; + if (@inventorylist_count == 100) goto L_TooMany; + if (Zeny < 5000) goto L_NoMoney; + if (countitem("FancyHat") < 1) goto L_NoFancy; + if (countitem("SnakeSkin") < 2) goto L_NoSkins; + Zeny = Zeny - 5000; + delitem "SnakeSkin", 2; + delitem "FancyHat", 1; + @temp = rand(2); + if(@temp == 0) goto L_Cowboy_white; + goto L_Cowboy_black; + +L_Cowboy_white: + getitem "WhiteCowboyHat", 1; + goto L_DealDone; + +L_Cowboy_black: + getitem "BlackCowboyHat", 1; + goto L_DealDone; + +L_leather_patch: + mes "[Chief Pachua]"; + mes "\"If you just want a piece of leather, then yes, I can make that. Bring me a snake skin and " + @LEATHER_PATCH_PRICE + " GP.\""; + next; + menu + "Here you are.", L_CheckPatchItems, + "OK, I'll be back later.", L_close, + "That's too expensive!.", L_NoDeal; + +L_CheckPatchItems: + if (countitem("SnakeSkin") < 1) goto L_NoSkins; + if (Zeny < @LEATHER_PATCH_PRICE) goto L_NoMoney; + getinventorylist; + if (@inventorylist_count == 100 && countitem("SnakeSkin") > 1) goto L_TooMany; + + Zeny = Zeny - @LEATHER_PATCH_PRICE; + delitem "SnakeSkin", 1; + getitem "LeatherPatch", 1; + goto L_DealDone; + +L_DealDone: + mes "[Chief Pachua]"; + mes "\"Here you are!"; + mes "Come back any time.\""; + goto L_close; + +L_NoDeal: + mes "[Chief Pachua]"; + mes "\"Alright, but you won't get a better deal anywhere else!\""; + goto L_close; + +L_MissingItems: + mes "[Chief Pachua]"; + mes "\"You don't seem to have all the items I need to craft that. Come back when you do.\""; + goto L_close; + +L_NoMoney: + mes "[Chief Pachua]"; + mes "\"Oh dear, it seems you don't have enough money.\""; + goto L_close; + +L_NoJeans: + mes "[Chief Pachua]"; + mes "\"Oh dear, it seems you don't have enough jean shorts.\""; + goto L_close; + +L_NoFancy: + mes "[Chief Pachua]"; + mes "\"Oh dear, it seems you don't have enough fancy hats.\""; + goto L_close; + +L_NoSkins: + mes "[Chief Pachua]"; + mes "\"Oh dear, it seems you don't have enough snake skins.\""; + goto L_close; + +L_WearingCowboy: + mes "[Chief Pachua]"; + mes "\"Ah, I see that you are wearing a hat made with the ancient methods of my tribe.\""; + next; + goto L_Check_Shops; + +L_WearingChaps: + mes "[Chief Pachua]"; + mes "\"Ah, I see that you are wearing pants made by my tribe.\""; + next; + goto L_Check_Shops; + +L_close: + @LEATHER_PATCH_PRICE = 0; + @wants_leather_patch = 0; + @month = 0; + @start_day = 0; + @end_day = 0; + @temp = 0; + close; + +L_TooMany: + mes "[Chief Pachua]"; + mes "\"You don't have room for another item. Come back later.\""; + goto L_close; + +L_smoke: + message strcharinfo(0), "Pachua quickly inhales from his pipe and releases a ring of smoke towards the sky!"; + QUEST_MIRIAM_run = gettimetick(2) - QUEST_MIRIAM_start; + QUEST_MIRIAM_start = 0; + close; + +L_Warp2_cheat: + if (@warp_cheat == 1) goto L_Begin; + message strcharinfo(0), "Pachua releases a ring of smoke towards the sky! But, by the look on his face, you can tell he is suspicious about your methods..."; + @warp_cheat = 1; + end; + +L_Basket: + mes "[Chief Pachua]"; + mes "\"For generations my tribe has been crafting special clothes out of different items.\""; + mes "\"Maybe if you bring me the right materials I can make something for you.\""; + next; + menu + "Do you work only with clothes? Because I was looking for a basket.", L_AskBasket; + +L_AskBasket: + mes "\"A basket? In our tribe, we craft baskets of all kinds using only reeds. This basket, you need it to carry your items?\""; + menu + "No. It is for the Easter Bunny. I offered to get him one.", L_EasterBunny; + +L_EasterBunny: + mes "\"I appreciate your attitude. Maybe I can help you with that.\""; + menu + "I would be really grateful if you could do that!", L_SetStatus, + "Nah, I decided not to do that stupid quest.", L_close, + "I would prefer to talk to you about other stuff.", L_Begin; //should go to pachuas's regular chat + +L_SetStatus: + QUEST_Easter11 = 2; + +L_MakeBasket: + mes "[Chief Pachua]"; + mes "\"I will need you to gather reeds for me.\""; + mes "\"5 bundles should do it.\""; + mes "\"You should be able to get those from mouboos as they graze.\""; + menu + "I have the Reeds!", L_CheckBasketItems, + "Ok, I will be back soon", L_close, + "I changed my mind, forget about it", L_close, + "Can I talk to you about another stuff?", L_Begin; //should go to pachuas's regular chat + +L_CheckBasketItems: + if(countitem("ReedBundle") < 5) goto L_EasterNotEnough; + if(countitem("ReedBundle") >= 5) goto L_EasterEnough; + goto L_close; + +L_EasterNotEnough: + mes "[Chief Pachua]"; + mes "\"You do not have enough Reed Bundles for me to work with.\""; + mes "\"Go gather more.\""; + goto L_close; + +L_EasterEnough: + getinventorylist; + if (@inventorylist_count == 100 && countitem("ReedBundle") > 5) goto L_EasterTooMany; + if(countitem("ReedBundle") < 5) goto L_EasterNotEnough; + delitem "ReedBundle", 5; + getitem "EasterBasket", 1; + QUEST_Easter11 = 3; + mes "[Chief Pachua]"; + mes "\"You have gathered enough reeds for me to make the basket.\""; + mes "He skillfully soaks the reeds you brought him,"; + mes "then swiftly weaves them into a basket shape."; + mes "Next, he places the damp basket in the sun to dry for a minute before handing it over to you."; + mes "\"Here is your Easter Basket.\""; + goto L_close; + +L_EasterTooMany: + mes "[Chief Pachua]"; + mes "\"You don't have room for the Easter Basket. Come back later.\""; + goto L_close; + +L_SeeBunny: + mes "[Chief Pachua]"; + mes "\"You need to return to the Easter Bunny now.\""; + next; + goto L_Begin; + +L_TrickOrTreat: + callfunc "TrickOrTreat2011"; + goto L_Begin; +} diff --git a/npc/00000SAVE/smiths/009-1_silversmith.txt b/npc/00000SAVE/smiths/009-1_silversmith.txt new file mode 100644 index 000000000..9be3acc8b --- /dev/null +++ b/npc/00000SAVE/smiths/009-1_silversmith.txt @@ -0,0 +1,125 @@ + +009-1,43,32,0 script Silversmith NPC135,{ + + mes "[Smith Silvers]"; + mes "\"Hello, I am your local silversmith, here for all of your smithing needs!\""; + goto L_Smithmenu; + +L_Smithmenu: + menu + "Can you smith my Short Sword?", L_Sword, + "How about a Crusade Helmet?", L_Helm, + "Can you silver my Forest Bow?", L_Bow, + "I'd like my Clover Silvered.", L_Clover, + "I think I have everything I need, thanks.", L_close; + +L_Sword: + mes "[Smith Silvers]"; + mes "\"I can, it will cost you 9 Silver Ore, 5 Raw Coal, and 40,000 gp.\""; + menu + "Sure.", L_sword2, + "What a ripoff! No way!", L_close; + +L_Helm: + mes "[Smith Silvers]"; + mes "\"I can silver that helmet for 6 Silver Ore, 9 Raw coal, and 50,000 gp.\""; + menu + "Here you go.", L_helm2, + "Are you nuts?! Forget it!", L_close; + +L_Bow: + mes "[Smith Silvers]"; + mes "\"I can silver that bow for 18 Silver Ore, 18 Raw Coal, and 200,000 gp.\""; + menu + "Sure.", L_bow2, + "Whoa, that's way too much.", L_close; + +L_Clover: + mes "[Smith Silvers]"; + mes "\"I can silver your clover for 4 Silver Ore, 5 Raw Coal, and 50,000 gp.\""; + menu + "I have them right here.", L_Clover2, + "Whoa, that's way too much.", L_close; + +L_sword2: + if (countitem("SilverOre") < 9) goto L_Missing; + if (countitem("RawCoal") < 5) goto L_Missing; + if (countitem("ShortSword") < 1) goto L_Missing; + if (Zeny < 40000) goto L_NotEnoughMoney; + delitem "SilverOre", 9; + delitem "RawCoal", 5; + delitem "ShortSword", 1; + Zeny = Zeny - 40000; + getitem "SilverSword", 1; + mes "[Smith Silvers]"; + mes "\"There you go! Want me to silver anything else?\""; + menu + "Yes.", L_Smithmenu, + "Nope.", L_No; + +L_helm2: + if (countitem("SilverOre") < 6) goto L_Missing; + if (countitem("RawCoal") < 9) goto L_Missing; + if (countitem("UnsilveredCrusadeHelmet") < 1) goto L_Missing; + if (Zeny < 50000) goto L_NotEnoughMoney; + delitem "RawCoal", 9; + delitem "SilverOre", 6; + delitem "UnsilveredCrusadeHelmet", 1; + Zeny = Zeny - 50000; + getitem "CrusadeHelmet", 1; + mes "[Smith Silvers]"; + mes "\"There you go. Would you like anything else silvered?\""; + menu + "Yes.", L_Smithmenu, + "No.", L_No; + +L_bow2: + if (countitem("SilverOre") < 18) goto L_Missing; + if (countitem("RawCoal") < 18) goto L_Missing; + if (countitem("ForestBow") < 1) goto L_Missing; + if (Zeny < 200000) goto L_NotEnoughMoney; + delitem "RawCoal", 18; + delitem "SilverOre", 18; + delitem "ForestBow", 1; + Zeny = Zeny - 200000; + getitem "SilverBow", 1; + mes "[Smith Silvers]"; + mes "\"There you go. Would you like anything else silvered?\""; + menu + "Yes.", L_Smithmenu, + "No.", L_No; + +L_Clover2: + if (countitem("SilverOre") < 4) goto L_Missing; + if (countitem("RawCoal") < 5) goto L_Missing; + if (countitem("FourLeafClover") < 1) goto L_Missing; + if (Zeny < 50000) goto L_NotEnoughMoney; + delitem "RawCoal", 5; + delitem "SilverOre", 4; + delitem "FourLeafClover", 1; + Zeny = Zeny - 50000; + getitem "SilverFourLeafAmulet", 1; + mes "[Smith Silvers]"; + mes "\"There you go. Would you like anything else silvered?\""; + menu + "Yes.", L_Smithmenu, + "No.", L_No; + +L_Missing: + mes "[Smith Silvers]"; + mes "\"It looks like you're missing some items. Please come back when you have what I need!\""; + goto L_close; + +L_NotEnoughMoney: + mes "[Smith Silvers]"; + mes "\"You don't have enough money, come back later!\""; + goto L_close; + +L_No: + mes "[Smith Silvers]"; + mes "\"Have a great day!\""; + goto L_close; + +L_close: + close; +} diff --git a/npc/00000SAVE/smiths/009-2_nahrec.txt b/npc/00000SAVE/smiths/009-2_nahrec.txt new file mode 100644 index 000000000..46817eab3 --- /dev/null +++ b/npc/00000SAVE/smiths/009-2_nahrec.txt @@ -0,0 +1,147 @@ + +009-2,181,56,0 script Nahrec NPC311,{ + mes "[Nahrec]"; + mes "\"Ah, hello! It is good to see another traveler in this town!\""; + next; + menu + "Really? Where are you from?", L_Story, + "It's good to see you too, do you happen to be able to make stuff?", L_Makestuff, + "Alright.", L_close; + +L_Story: + mes "[Nahrec]"; + mes "\"I came from Thermin, a town in the Kazei area.\""; + next; + mes "\"I'm an experienced weapon master helping this smithy here, but I am new in this town. I am best at smithing armor.\""; + next; + menu + "'Best'? So you can make other things?", L_Makestuff, + "Good to know.", L_close; + +L_Makestuff: + mes "[Nahrec]"; + mes "\"Yes, I can craft many things. In addition to plating and improving armor, I can craft smaller items made of gold and other metals.\""; + menu + "Can you make a monocle for me? I want that...classy look...", L_Monocle, + "Can you improve my Warlord Plate for me?", L_Goldenwplate, + "Can you improve my Light Platemail for me?", L_Goldenlplate, + "Can you craft Savior Pants?", L_Saviorpants, + "Do you know something about 'Mylarin Dust'?", L_Mylarin, + "Nevermind, bye!", L_close; + +L_Mylarin: + if (countitem("MylarinDust") == 0) goto L_No_Mylarin; + mes "[Nahrec]"; + mes "\"Mylarin dust?! Where did you get that? That's amazing!\""; + next; + mes "\"I can craft you an amazingly strong armor with that - uhm, well, I first need to set up my smithy here.\""; + next; + mes "\"Please come back, when I'm ready with that. Mylarin dust... amazing.\""; + goto L_close; + +L_No_Mylarin: + mes "[Nahrec]"; + mes "\"Mylarin dust!? I do indeed, but I don't suppose you have any.\""; + next; + mes "Nahrec sighs."; + mes "\"Ah well, I'm not prepared to work with Mylarin right now anyways. I suppose I should get back to setting up my forge.\""; + goto L_close; + +L_Goldenwplate: + mes "[Nahrec]"; + mes "\"I can plate that armor in gold if you so wish, I will need 30 gold ore and 450,000gp.\""; + if (countitem("Gold") < 30) goto L_Missing; + if (countitem("WarlordPlate") < 1) goto L_Missing; + if (Zeny < 450000) goto L_NotEnoughMoney; + getinventorylist; + if (@inventorylist_count == 100 && countitem("Gold") > 30) goto L_Full; + delitem "Gold", 30; + delitem "WarlordPlate", 1; + Zeny = Zeny - 450000; + getitem "GoldenWarlordPlate", 1; + mes "[Nahrec]"; + mes "\"There you go!\""; + goto L_close; + +L_Goldenlplate: + mes "[Nahrec]"; + mes "\"I can plate that armor in gold if you so wish, I will need 20 gold ore and 250,000gp.\""; + if (countitem("Gold") < 20) goto L_Missing; + if (countitem("LightPlatemail") < 1) goto L_Missing; + if (Zeny < 250000) goto L_NotEnoughMoney; + getinventorylist; + if (@inventorylist_count == 100 && countitem("gold") > 20) goto L_Full; + delitem "Gold", 20; + delitem "LightPlatemail", 1; + Zeny = Zeny - 250000; + getitem "GoldenPlatemail", 1; + mes "[Nahrec]"; + mes "\"There you go!\""; + goto L_close; + +L_Monocle: + mes "[Nahrec]"; + mes "\"Yes, I can craft a monocle. For this, I would need you to bring me a Standard Headband, 5 gold ore, and 50,000gp\""; + menu + "I have the items you need.", L_Monocle2, + "I can have those soon...", L_Beback, + "That's lame.", L_close; + +L_Monocle2: + if (countitem("Gold") < 5) goto L_Missing; + if (countitem("StandardHeadband") < 1) goto L_Missing; + if (Zeny < 50000) goto L_NotEnoughMoney; + getinventorylist; + if (@inventorylist_count == 100 && countitem("Gold") > 5) goto L_Full; + delitem "Gold", 5; + delitem "StandardHeadband", 1; + Zeny = Zeny - 50000; + getitem "Monocle", 1; + mes "[Nahrec]"; + mes "\"There you go!\""; + goto L_close; + +L_Saviorpants: + mes "[Nahrec]"; + mes "\"I can craft Savior Pants. I'll need 30 gold ore, 1 pair of cotton trousers, and 200,000gp.\""; + menu + "I have what you need.", L_Saviorpants2, + "I'll be back with those items..", L_Beback, + "That's crazy!", L_close; + +L_Saviorpants2: + if (countitem("Gold") < 30 || countitem("CottonTrousers") < 1) goto L_Missing; + if (Zeny < 200000) goto L_NotEnoughMoney; + getinventorylist; + if (@inventorylist_count == 100 && countitem("Gold") > 30) goto L_Full; + delitem "Gold", 30; + delitem "CottonTrousers", 1; + Zeny = Zeny - 200000; + getitem "SaviorPants", 1; + mes "[Nahrec]"; + mes "\"There you go!\""; + goto L_close; + +L_Full: + mes "[Nahrec]"; + mes "\"It looks like you don't have room for this item. Come back when you have more room!\""; + goto L_close; + +L_Beback: + mes "[Nahrec]"; + mes "\"Be back soon with the items I need!\""; + goto L_close; + +L_Missing: + mes "[Nahrec]"; + mes "\"It looks like you're missing some items. Please come back when you have what I need!\""; + goto L_close; + +L_NotEnoughMoney: + mes "[Nahrec]"; + mes "\"You don't have enough money, come back later!\""; + goto L_close; + +L_close: + close; +} |