diff options
Diffstat (limited to 'npc')
-rw-r--r-- | npc/001-1_Tulimshar/rewards_master.txt | 8 | ||||
-rw-r--r-- | npc/003-1_Beach/_import.txt | 1 | ||||
-rw-r--r-- | npc/003-1_Beach/stranger.txt | 506 | ||||
-rw-r--r-- | npc/018-2_Woodland_mining_camp/miners.txt | 146 | ||||
-rw-r--r-- | npc/027-1_Graveyard/monsters.txt | 14 | ||||
-rw-r--r-- | npc/027-2_Caretakers_House/crying_child.txt | 44 | ||||
-rw-r--r-- | npc/027-2_Caretakers_House/husband.txt | 20 | ||||
-rw-r--r-- | npc/027-2_Caretakers_House/innkeeper.txt | 24 | ||||
-rw-r--r-- | npc/031-4_Cave/cindyCave.txt | 2 | ||||
-rw-r--r-- | npc/functions/banker.txt | 22 | ||||
-rw-r--r-- | npc/functions/magic.txt | 2 | ||||
-rw-r--r-- | npc/functions/strangerquiz.txt | 88 | ||||
-rw-r--r-- | npc/items/warpTowels.txt | 50 | ||||
-rw-r--r-- | npc/scripts.conf | 2 | ||||
-rwxr-xr-x | npc/xmas/2010/golbanez.txt | 6 | ||||
-rwxr-xr-x | npc/xmas/2010/santa.txt | 2 |
16 files changed, 871 insertions, 66 deletions
diff --git a/npc/001-1_Tulimshar/rewards_master.txt b/npc/001-1_Tulimshar/rewards_master.txt index bd55b0ae..028b24c1 100644 --- a/npc/001-1_Tulimshar/rewards_master.txt +++ b/npc/001-1_Tulimshar/rewards_master.txt @@ -12,7 +12,7 @@ next; set @i, 0; - setarray @Menu$, "", "", "", "", "", "", "", "", "", "", ""; + setarray @Menu$, "", "", "", "", "", "", "", "", "", "", "", ""; callsub SUB_prep_menu; menu @@ -32,7 +32,7 @@ // this is for the last entry "No thanks": if (@menu > @i) close; // this is for the "Give all" entry: - if (@menu == @i) goto L_Give_all; + if (@menu == 11) goto L_Give_all; set @req, @menu; set @rec, 0; @@ -79,8 +79,8 @@ L_Give_all_next: mes "[Ishi the Rewards Master]"; mes "\"You have brought lots of items now. You have still " + Mobpt + " monster points. Shall we continue?\""; menu - "yes", L_Give_all, - "no", L_Give_all_done; + "Yes", L_Give_all, + "No", L_Give_all_done; close; L_Give_all_done: diff --git a/npc/003-1_Beach/_import.txt b/npc/003-1_Beach/_import.txt index ebd66af7..661204a3 100644 --- a/npc/003-1_Beach/_import.txt +++ b/npc/003-1_Beach/_import.txt @@ -2,3 +2,4 @@ map: 003-1.gat npc: npc/003-1_Beach/_mobs.txt npc: npc/003-1_Beach/_warps.txt +npc: npc/003-1_Beach/stranger.txt diff --git a/npc/003-1_Beach/stranger.txt b/npc/003-1_Beach/stranger.txt new file mode 100644 index 00000000..b322eb5d --- /dev/null +++ b/npc/003-1_Beach/stranger.txt @@ -0,0 +1,506 @@ +//003-1.gat,35,25,0 script Stranger 192, { + + set @month, 5; + set @start_day, 18; +//TODO set @end_day, 25; + set @end_day, 22; + set @IRONINGOT, 5; + set @PINKANTENNA, 21; + set @cost, 500; + +//TODO: uncomment + 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 ((gettime(5) == @end_day) && (FLAGS & FLAG_TOWEL_HELPED)) goto L_Towel; + if (FLAGS & FLAG_TOWEL_HELPED) goto L_Towel; // TODO: remove + if (FLAGS & FLAG_TOWEL_HELPED) goto L_Come_Back; + + 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 Ingot]s and " + @PINKANTENNA + " [Pink Antenna]s.\""; + next; + mes "\"Do you have that for me?\""; + menu + "Yeah, sure.",L_Items, + "No.",L_Close; + close; + +L_Items: + if (countitem("IngotIron") < @IRONINGOT) goto L_No_Item; + if (countitem("PinkAntenna") < @PINKANTENNA) goto L_No_Item; + delitem "IngotIron", @IRONINGOT; + delitem "PinkAntenna", @PINKANTENNA; + set FLAGS, FLAGS | FLAG_TOWEL_HELPED; + + mes "[Stranger]"; + mes "\"Great! Thank you!\""; + next; + if (gettime(5) == @end_day) goto L_Towel; +L_Come_Back: + mes "\"Excuse me, I have a lot of work to do now. Maybe you want to come back soon to celebrate Towel Day with me.\""; + close; + +L_Towel: + getinventorylist; + if (@inventorylist_count == 100) goto L_Full_Inv; + mes "[Stranger]"; + mes "\"Today 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 from 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; + + set @random, rand(10); + mes "\"" + @easy_questions$[@random] + "\""; + input @answer$; + + if (@easy_answers_amount[@random] < 4) + goto L_Easy_Skip4; + set @quizparam$, "towelanswer0" + @random + "d"; + callfunc "StrangerQuiz"; + if (("###" + @answer$ == @quizanswer$)) + goto L_Right_Answer_Easy; +L_Easy_Skip4: + if (@easy_answers_amount[@random] < 3) + goto L_Easy_Skip3; + set @quizparam$, "towelanswer0" + @random + "c"; + callfunc "StrangerQuiz"; + if (("###" + @answer$ == @quizanswer$)) + goto L_Right_Answer_Easy; +L_Easy_Skip3: + set @quizparam$, "towelanswer0" + @random + "b"; + callfunc "StrangerQuiz"; + if (("###" + @answer$ == @quizanswer$)) + goto L_Right_Answer_Easy; + + set @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?s", + "Which country does the human protagonist come from?", + "What is the name of the computer on The Heart of Gold?", + "What color has 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; + + set @random, rand(12); + mes "\"" + @medium_questions$[@random] + "\""; + input @answer$; + + if (@medium_answers_amount[@random] < 4) + goto L_Medium_Skip4; + + set @quizparam$, "towelanswer1" + @random + "d"; + callfunc "StrangerQuiz"; + if (("###" + @answer$ == @quizanswer$)) + goto L_Right_Answer_Medium; +L_Medium_Skip4: + if (@medium_answers_amount[@random] < 3) + goto L_Medium_Skip3; + set @quizparam$, "towelanswer1" + @random + "c"; + callfunc "StrangerQuiz"; + if (("###" + @answer$ == @quizanswer$)) + goto L_Right_Answer_Medium; +L_Medium_Skip3: + set @quizparam$, "towelanswer1" + @random + "b"; + callfunc "StrangerQuiz"; + if (("###" + @answer$ == @quizanswer$)) + goto L_Right_Answer_Medium; + + set @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 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; + + set @random, rand(9); + mes "\"" + @hard_questions$[@random] + "\""; + input @answer$; + + if (@hard_answers_amount[@random] < 4) + goto L_Hard_Skip4; + set @quizparam$, "towelanswer2" + @random + "d"; + callfunc "StrangerQuiz"; + if (("###" + @answer$ == @quizanswer$)) + goto L_Right_Answer_Hard; +L_Hard_Skip4: + if (@hard_answers_amount[@random] < 3) + goto L_Hard_Skip3; + set @quizparam$, "towelanswer2" + @random + "c"; + callfunc "StrangerQuiz"; + if (("###" + @answer$ == @quizanswer$)) + goto L_Right_Answer_Hard; +L_Hard_Skip3: + set @quizparam$, "towelanswer2" + @random + "b"; + callfunc "StrangerQuiz"; + if (("###" + @answer$ == @quizanswer$)) + goto L_Right_Answer_Hard; + + set @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 "TODO: remove. again?"; + menu + "Yes.",L_Towel, + "Go on.",-, + "Close.",L_Close; + + 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 "GreyWarpTowel", 1; + set FLAGS, FLAGS | FLAG_TOWEL_COMPLETED; + next; + 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.\""; + 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.\""; + close; + +L_No_Item: + mes "[Stranger]"; + mes "\"Hu? It seems you haven't.\""; + close; + +L_Wrong_Answer: + mes "[Stranger]"; + mes "\"Nah, that's wrong. Come back if you want to try again.\""; + 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!",-, + "No, thanks.", L_Close; +L_Dye_Towel: + mes "[Stranger]"; + mes "\"Alright, which color do you want?\""; +// the other colors should be added when more places are released + menu + "Red",L_Red, + "Yellow",L_Yellow, + "White",L_White, +// "Blue",L_Blue, +// "Green",L_Green, +// "Purple",L_Purple, +// "Orange",L_Orange, +// "Pink",L_Pink, +// "Lime",L_Lime, +// "Teal",L_Teal, + "I changed my mind.", L_Close; + 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("GreyWarpTowel") < 1) goto L_No_Towel; + getinventorylist; + if ((countitem("GreyWarpTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv; + if (countitem("BottleOfWater") < 1) goto L_No_Water; + if (countitem("GemPowderRed") < 2) goto L_No_Powder; + delitem "GemPowderRed", 2; + delitem "GreyWarpTowel", 1; + delitem "BottleOfWater", 1; + getitem "RedWarpTowel", 1; + mes "He takes your enchanted towel, the water and the gem powder, then he turns away and does something you can't see. After some minutes, he turns to you again."; + next; + mes "[Stranger]"; + mes "\"Done! It'll use its color after being used, but just come back, I can dye it again for you.\""; + 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("GreyWarpTowel") < 1) goto L_No_Towel; + getinventorylist; + if ((countitem("GreyWarpTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv; + if (countitem("BottleOfWater") < 1) goto L_No_Water; + if (countitem("GemPowderYellow") < 2) goto L_No_Powder; + delitem "GemPowderYellow", 2; + delitem "GreyWarpTowel", 1; + delitem "BottleOfWater", 1; + getitem "YellowWarpTowel", 1; + mes "He takes your enchanted towel, the water and the gem powder, then he turns away and does something you can't see. After some minutes, he turns to you again."; + next; + mes "[Stranger]"; + mes "\"Done! It'll use its color after being used, but just come back, I can dye it again for you.\""; + 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("GreyWarpTowel") < 1) goto L_No_Towel; + getinventorylist; + if ((countitem("GreyWarpTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv; + if (countitem("BottleOfWater") < 1) goto L_No_Water; + if (countitem("GemPowderWhite") < 2) goto L_No_Powder; + delitem "GemPowderWhite", 2; + delitem "GreyWarpTowel", 1; + delitem "BottleOfWater", 1; + getitem "WhiteWarpTowel", 1; + mes "He takes your enchanted towel, the water and the gem powder, then he turns away and does something you can't see. After some minutes, he turns to you again."; + next; + mes "[Stranger]"; + mes "\"Done! It'll use its color after being used, but just come back, I can dye it again for you.\""; + 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("GreyWarpTowel") < 1) goto L_No_Towel; + getinventorylist; + if ((countitem("GreyWarpTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv; + if (countitem("BottleOfWater") < 1) goto L_No_Water; + if (countitem("GemPowderBlue") < 2) goto L_No_Powder; + delitem "GemPowderBlue", 2; + delitem "GreyWarpTowel", 1; + delitem "BottleOfWater", 1; + getitem "BlueWarpTowel", 1; + mes "He takes your enchanted towel, the water and the gem powder, then he turns away and does something you can't see. After some minutes, he turns to you again."; + next; + mes "[Stranger]"; + mes "\"Done! It'll use its color after being used, but just come back, I can dye it again for you.\""; + 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("GreyWarpTowel") < 1) goto L_No_Towel; + getinventorylist; + if ((countitem("GreyWarpTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv; + if (countitem("BottleOfWater") < 1) goto L_No_Water; + if (countitem("GemPowderGreen") < 2) goto L_No_Powder; + delitem "GemPowderGreen", 2; + delitem "GreyWarpTowel", 1; + delitem "BottleOfWater", 1; + getitem "GreenWarpTowel", 1; + mes "He takes your enchanted towel, the water and the gem powder, then he turns away and does something you can't see. After some minutes, he turns to you again."; + next; + mes "[Stranger]"; + mes "\"Done! It'll use its color after being used, but just come back, I can dye it again for you.\""; + 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("GreyWarpTowel") < 1) goto L_No_Towel; + getinventorylist; + if ((countitem("GreyWarpTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv; + if (countitem("BottleOfWater") < 1) goto L_No_Water; + if (countitem("GemPowderPurple") < 2) goto L_No_Powder; + delitem "GemPowderPurple", 2; + delitem "GreyWarpTowel", 1; + delitem "BottleOfWater", 1; + getitem "PurpleWarpTowel", 1; + mes "He takes your enchanted towel, the water and the gem powder, then he turns away and does something you can't see. After some minutes, he turns to you again."; + next; + mes "[Stranger]"; + mes "\"Done! It'll use its color after being used, but just come back, I can dye it again for you.\""; + 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("GreyWarpTowel") < 1) goto L_No_Towel; + getinventorylist; + if ((countitem("GreyWarpTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv; + if (countitem("BottleOfWater") < 1) goto L_No_Water; + if (countitem("GemPowderRed") < 1) goto L_No_Powder; + if (countitem("GemPowderYellow") < 1) goto L_No_Powder; + delitem "GemPowderRed", 1; + delitem "GemPowderYellow", 1; + delitem "GreyWarpTowel", 1; + delitem "BottleOfWater", 1; + getitem "OrangeWarpTowel", 1; + mes "He takes your enchanted towel, the water and the gem powder, then he turns away and does something you can't see. After some minutes, he turns to you again."; + next; + mes "[Stranger]"; + mes "\"Done! It'll use its color after being used, but just come back, I can dye it again for you.\""; + 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("GreyWarpTowel") < 1) goto L_No_Towel; + getinventorylist; + if ((countitem("GreyWarpTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv; + if (countitem("BottleOfWater") < 1) goto L_No_Water; + if (countitem("GemPowderRed") < 1) goto L_No_Powder; + if (countitem("GemPowderWhite") < 1) goto L_No_Powder; + delitem "GemPowderRed", 1; + delitem "GemPowderWhite", 1; + delitem "GreyWarpTowel", 1; + delitem "BottleOfWater", 1; + getitem "PinkWarpTowel", 1; + mes "He takes your enchanted towel, the water and the gem powder, then he turns away and does something you can't see. After some minutes, he turns to you again."; + next; + mes "[Stranger]"; + mes "\"Done! It'll use its color after being used, but just come back, I can dye it again for you.\""; + 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("GreyWarpTowel") < 1) goto L_No_Towel; + getinventorylist; + if ((countitem("GreyWarpTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv; + if (countitem("BottleOfWater") < 1) goto L_No_Water; + if (countitem("GemPowderGreen") < 1) goto L_No_Powder; + if (countitem("GemPowderYellow") < 1) goto L_No_Powder; + delitem "GemPowderGreen", 1; + delitem "GemPowderYellow", 1; + delitem "GreyWarpTowel", 1; + delitem "BottleOfWater", 1; + getitem "LimeWarpTowel", 1; + mes "He takes your enchanted towel, the water and the gem powder, then he turns away and does something you can't see. After some minutes, he turns to you again."; + next; + mes "[Stranger]"; + mes "\"Done! It'll use its color after being used, but just come back, I can dye it again for you.\""; + 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("GreyWarpTowel") < 1) goto L_No_Towel; + getinventorylist; + if ((countitem("GreyWarpTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv; + if (countitem("BottleOfWater") < 1) goto L_No_Water; + if (countitem("GemPowderGreen") < 1) goto L_No_Powder; + if (countitem("GemPowderBlue") < 1) goto L_No_Powder; + delitem "GemPowderGreen", 1; + delitem "GemPowderBlue", 1; + delitem "GreyWarpTowel", 1; + delitem "BottleOfWater", 1; + getitem "TealWarpTowel", 1; + mes "He takes your enchanted towel, the water and the gem powder, then he turns away and does something you can't see. After some minutes, he turns to you again."; + next; + mes "[Stranger]"; + mes "\"Done! It'll use its color after being used, but just come back, I can dye it again for you.\""; + close; + +L_No_Water: + mes "[Stranger]"; + mes "\"You don't have water.\""; + 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.\""; + close; + +L_No_Towel: + mes "[Stranger]"; + mes "\"Where's your towel? It is really useful, you should always keep it with you.\""; + 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.\""; + close; + +L_Close: + close; +} diff --git a/npc/018-2_Woodland_mining_camp/miners.txt b/npc/018-2_Woodland_mining_camp/miners.txt index caf8afcd..5763ae62 100644 --- a/npc/018-2_Woodland_mining_camp/miners.txt +++ b/npc/018-2_Woodland_mining_camp/miners.txt @@ -1,15 +1,149 @@ -// +// This NPC makes gem powders out of gemstones +// Authors: Ali-G, enchilado, Jenalya -018-2.gat,85,23,0 script Miner 109,{ +018-2.gat,85,23,0 script Malek 109,{ if (Inspector == 10) goto L_NohMask; - mes "[Miner]"; - mes "\"Hello.\""; - close; + mes "[Malek]"; + mes "\"Hi, can I help you at all?\""; + + if (FLAGS & FLAG_TOWEL_HELPED) + menu + "I'm looking for someone able to make gem powder.", L_GemPowder, + "I was just having a look, have a nice day.", L_abort; + menu + "I was just having a look, have a nice day.", L_abort; L_NohMask: + mes "[Malek]"; + mes "\"Hi, can I help you at all?\""; + + if (FLAGS & FLAG_TOWEL_HELPED) + menu + "I'm looking for someone able to make gem powder.", L_GemPowder, + "I was just having a look, have a nice day.", L_abort, + "The inspector sent me here to investigate.", L_Investigation; + menu + "I was just having a look, have a nice day.", L_abort, + "The inspector sent me here to investigate.", L_Investigation; + +L_Investigation: set Inspector, 11; - mes "[Miner]"; mes "\"Yeah, we did hear a commotion. We thought we heard someone go down to the basement, but we checked the whole place over and didn't see anything out of the ordinary.\""; close; + +L_GemPowder: + mes "[Malek]"; + mes "\"My father taught me how to make that sort of powder. Put the gem on a firm surface, hold your pickaxe tight and whack that gem hard. It'll be crushed into powder pretty soon if you keep at it.\""; + mes "\"Do you want me to make any for you?\""; + + menu + "Yes, I really need some.", L_GemPowderStart, + "Actually, I don't want anything. Have a nice day.", L_abort; + +L_GemPowderStart: + mes "[Malek]"; + mes "\"Well, I can do that. Bring me a gem and I'll make you some powder - hope you don't mind if I keep a little as payment!\""; + + menu + "I've got some gems.", L_Check_Gems, + "I'll be back with a gem soon.", L_abort, + "Actually, I prefer my gems whole. Thanks anyway.", L_abort; + +L_Check_Gems: + mes "[Malek]"; + mes "\"Which gem do you want me to powder for you?\""; + next; + setarray @menuitems$, "", "", "", "", "", "", ""; + set @c, 0; + +L_Check_Diamond: + if (countitem("GemRawWhite") < 1) goto L_Check_Ruby; + set @menuitems$[@c], "A diamond."; + set @menuid[@c], 0; + set @c, @c + 1; + +L_Check_Ruby: + if (countitem("GemRawRed") < 1) goto L_Check_Emerald; + set @menuitems$[@c], "A ruby."; + set @menuid[@c], 1; + set @c, @c + 1; + +L_Check_Emerald: + if (countitem("GemRawGreen") < 1) goto L_Check_Sapphire; + set @menuitems$[@c], "An emerald."; + set @menuid[@c], 2; + set @c, @c + 1; + +L_Check_Sapphire: + if (countitem("GemRawBlue") < 1) goto L_Check_Topaz; + set @menuitems$[@c], "A sapphire."; + set @menuid[@c], 3; + set @c, @c + 1; + +L_Check_Topaz: + if (countitem("GemRawYellow") < 1) goto L_Check_Amethyst; + set @menuitems$[@c], "A topaz."; + set @menuid[@c], 4; + set @c, @c + 1; + +L_Check_Amethyst: + if (countitem("GemRawPurple") < 1) goto L_Choose_Gem; + set @menuitems$[@c], "An amethyst."; + set @menuid[@c], 5; + set @c, @c + 1; + +L_Choose_Gem: + set @menuitems$[@c], "None right now, thanks."; + set @menuid[@c], 6; + set @c, @c + 1; + menu + @menuitems$[0], -, + @menuitems$[1], -, + @menuitems$[2], -, + @menuitems$[3], -, + @menuitems$[4], -, + @menuitems$[5], -, + @menuitems$[6], -; + set @menu, @menu - 1; + if (@menu >= @c) close; + if (@menuid[@menu] == 0) set @gem$, "GemRawWhite"; + if (@menuid[@menu] == 1) set @gem$, "GemRawRed"; + if (@menuid[@menu] == 2) set @gem$, "GemRawGreen"; + if (@menuid[@menu] == 3) set @gem$, "GemRawBlue"; + if (@menuid[@menu] == 4) set @gem$, "GemRawYellow"; + if (@menuid[@menu] == 5) set @gem$, "GemRawPurple"; + if (@menuid[@menu] == 6) goto L_abort; + + getinventorylist; + if (countitem(@gem$) < 1) goto L_no_gem; + if (@inventorylist_count == 100 && countitem(@gem$) > 1) goto L_TooMany; + delitem @gem$, 1; + if (@gem$ == "GemRawWhite") getitem "GemPowderWhite", 5; + if (@gem$ == "GemRawRed") getitem "GemPowderRed", 5; + if (@gem$ == "GemRawGreen") getitem "GemPowderGreen", 5; + if (@gem$ == "GemRawBlue") getitem "GemPowderBlue", 5; + if (@gem$ == "GemRawYellow") getitem "GemPowderYellow", 5; + if (@gem$ == "GemRawPurple") getitem "GemPowderPurple", 5; + + mes "[Malek]"; + mes "\"Here's your powder. Hope it's fine enough for you.\""; + mes "\"Do you need me to make any more?\""; + + menu + "Yes please.", L_Check_Gems, + "No thank you, this is enough.", L_abort; + +L_TooMany: + mes "[Malek]"; + mes "\"Doesn't look like you've got room for this powder. Come back when you do.\""; + close; + +L_no_gem: + mes "[Malek]"; + mes "\"You don't have that gem.\""; + close; + +L_abort: + close; } diff --git a/npc/027-1_Graveyard/monsters.txt b/npc/027-1_Graveyard/monsters.txt index 17cabce7..9ddb6ac5 100644 --- a/npc/027-1_Graveyard/monsters.txt +++ b/npc/027-1_Graveyard/monsters.txt @@ -27,12 +27,12 @@ _MOBCOUNT_ZOMBIES: set @state, ((QUEST_Graveyard_Inn & @Graveyard_Inn_MASK) >> @Graveyard_Inn_SHIFT); if (@state != 1) return; - set @bracelet, @bracelet + 1; + set @ring, @ring + 1; //TODO: remove debug -// if (@bracelet < 10) return; +// if (@ring < 10) return; // if (rand(8) != 0) return; - message strcharinfo(0), "Debug: got bracelet with one kill instead of many"; - message strcharinfo(0), "You found a strange bracelet hidden in the zombie's rotten rags. Maybe this is what Aldred was looking for..."; + message strcharinfo(0), "Debug: got Ring with one kill instead of many"; + message strcharinfo(0), "You found a ring hidden in the zombie's rotten rags. Maybe this is what Aldred was looking for..."; set @state, 2; callsub S_Update_Mask; return; @@ -45,10 +45,10 @@ _MOBCOUNT_FALLENS: set @state, ((QUEST_Graveyard_Inn & @Graveyard_Inn_MASK) >> @Graveyard_Inn_SHIFT); if (@state != 1) return; - set @bracelet, @bracelet + 1; - if (@bracelet < 10) return; + set @ring, @ring + 1; + if (@ring < 10) return; if (rand(8) != 0) return; - message strcharinfo(0), "You found a strange bracelet inside the fallen's broken helmet. Maybe this is what Aldred was looking for..."; + message strcharinfo(0), "You found a ring inside the fallen's broken helmet. Maybe this is what Aldred was looking for..."; set @state, 2; callsub S_Update_Mask; return; diff --git a/npc/027-2_Caretakers_House/crying_child.txt b/npc/027-2_Caretakers_House/crying_child.txt index 51476106..d7cbeac3 100644 --- a/npc/027-2_Caretakers_House/crying_child.txt +++ b/npc/027-2_Caretakers_House/crying_child.txt @@ -5,13 +5,13 @@ // Crying Child subquest // Variable states: -// 1 = You agree to help the child to find the bracelet outside -// 2 = You found the bracelet (see _mobs.txt) -// 3 = You gave the bracelet to the child -// 4 = You decided to help the child again, by investigating what the bracelet means to them. -// 5 = The father/husband told you what he thinks of the bracelet -// 6 = The mother/wife told you what he thinks of the bracelet -// 7 = The kid decided that the bracelet has no value to their parents, so you can have it. +// 1 = You agree to help the child to find the ring outside +// 2 = You found the ring (see 027-1.../monsters.txt) +// 3 = You gave the ring to the child +// 4 = You decided to help the child again, by investigating what the ring means to them. +// 5 = The father/husband told you what he thinks of the ring +// 6 = The mother/wife told you what he thinks of the ring +// 7 = The kid decided that the ring has no value to their parents, so you can have it. set @Graveyard_Inn_MASK, NIBBLE_2_MASK; set @Graveyard_Inn_SHIFT, NIBBLE_2_SHIFT; @@ -68,31 +68,31 @@ L_intro: menu "Here, here, don't cry... What did you do?",-; mes "[Aldred]"; - mes "\"Err.. I was looking at my parents stuff and I found this funny thing! It looks like a big blue beetle... I thought it would be fun to play with it for a while, so I took it with me. But I... *sniffle*... I lost it...\""; + mes "\"Err.. I was looking at my parents stuff and I found this funny thing! It looked like a normal ring, but with a round empty space... I thought it would be fun to take it with me and maybe look for a stone or a gem to fill the empty space. But I... *sniffle*... I lost it...\""; next; mes "\"I don't know what happened. I was in this room and... I heard some very loud noises, people screaming, cracking sounds... and a smell, a terrible smell, like something rotten. And then I can't remember anything else!\""; next; - mes "\"I think it was something very bad, because, after all that, I woke up the way I am now and the blue beetle was lost. Oh, and my parents are acting like they are not themselves. I don't know what happened, maybe it was my fault... I shouldn't have played with that... *sniffle*... \""; + mes "\"I think it was something very bad, because, after all that, I woke up the way I am now and I couldn't find the ring in my pocket. Oh, and my parents are acting like they are not themselves. I don't know what happened, maybe it was my fault... I shouldn't have played with that ring... *sniffle*... \""; next; menu "Don't worry, I will look around. Maybe I can find it for you...",-, "Hey, you messed up, now you deal with this.",L_close; mes "[Aldred]"; - mes "\"Thank you " +strcharinfo(0)+"! Find it for me, pleeeease! Ohh, and don't tell my parents I lost their beetle, okay?\""; + mes "\"Thank you " +strcharinfo(0)+"! Find it for me, pleeeease! Ohh, and don't tell my parents I lost their ring, okay?\""; set @state, 1; callsub S_Update_Mask; close; L_return: mes "[Aldred]"; - mes "\"Please, help me " +@madamsir$+ ". If you find the beetle I think things can be a little better between me and my parents.\""; + mes "\"Please, help me " +@madamsir$+ ". If you find that ring I think things can be a little better between me and my parents.\""; close; L_return1: menu - "Hi Aldred. I found the blue beetle!",-; + "Hi Aldred. I found the ring!",-; mes "[Aldred]"; mes "\"Great! You are the best! Where did you find it?\""; next; @@ -112,7 +112,7 @@ L_return1: L_return2: mes "[Aldred]"; - mes "\"Hi "+strcharinfo(0)+ "! I was thinking... you were sooo nice helping me find the beetle... I think I should give you a gift, but I'm just a dead kid, I have nothing to give you!\""; + mes "\"Hi "+strcharinfo(0)+ "! I was thinking... you were sooo nice helping me find the ring... I think I should give you a gift, but I'm just a dead kid, I have nothing to give you!\""; next; menu "Don't worry, you don't need to give me anything...",-; @@ -127,22 +127,22 @@ L_return2: mes "[Aldred]"; mes "\"Ok, great... But please, don't tell them about it. I don't want my parents to know I was playing with their stuff. My father is always carrying a lantern... I guess he is still afraid of the dark. My mother is the innkeeper. She is very beautiful and she is wearing a red dress.\""; next; - mes "\"Don't forget to come back with the beetle after you talk to my parents.\""; - message strcharinfo(0), "Aldred hands you the strange item and you keep it in a small pocket of your backpack"; + mes "\"Don't forget to come back with the ring after you talk to my parents.\""; + message strcharinfo(0), "Aldred hands you the ring and you keep it in a small pocket of your backpack"; close; L_return3: mes "[Aldred]"; - mes "\"I hope this thing doesn't mean a lot to my parents. This way you can keep it as a gift and I won't feel guilty about playing with it.\""; + mes "\"I hope this ring doesn't mean a lot to my parents. This way you can keep it as a gift and I won't feel guilty about taking it.\""; close; L_return4: menu "Hi, I talked to your parents.",-; mes "[Aldred]"; - mes "\"Really? What did my father say about that thing?\""; + mes "\"Really? What did my father say about it?\""; menu - "He said it is just a cheap bracelet. And it does not belong to him.",-; + "He said it is just a cheap ring. And it does not belong to him.",-; mes "[Aldred]"; mes "\"And what did my mother say?\""; menu @@ -151,13 +151,13 @@ L_return4: mes "\"Really? A gift? And why she doesn't want it?\""; next; menu - "She said it makes her sad",-; - mes "\"Ohh... really? I don't like when my mother gets sad... If this thing is making her feel bad, I should keep it away from her. \""; + "She said it makes her sad.",-; + mes "\"Ohh... really? I don't like when my mother gets sad... If this ring is making her feel bad, I should keep it away from her. \""; next; mes "\"Well, I guess you can keep it, but don't show it to my mother again, she is already very sad. But now I am really curious, who else would give a gift to my mother? There are so many strange things happening lately...\""; getinventorylist; if (@inventorylist_count == 100) goto L_full; - getitem "ScarabArmlet", 1; + getitem "RingSimple", 1; set @state, 7; callsub S_Update_Mask; mes "\"I will tell my parents how great and helpful you are. Maybe they can even let you stay here at the inn for free!\""; @@ -170,7 +170,7 @@ L_return5: L_full: mes "[Aldred]"; - mes "\"I dont think you can carry this bracelet... Your backpack is full! Throw something away and come back to get the bracelet.\""; + mes "\"I dont think you can carry this ring... Your backpack is full! Throw something away and come back to get it.\""; close; diff --git a/npc/027-2_Caretakers_House/husband.txt b/npc/027-2_Caretakers_House/husband.txt index 3c05a985..2ff39f60 100644 --- a/npc/027-2_Caretakers_House/husband.txt +++ b/npc/027-2_Caretakers_House/husband.txt @@ -1,9 +1,9 @@ // author: Jenalya // love triangle quest, involved npcs: Reid's Ghost, Hamond, Savaric, Aldred, Golbenez // state 0: if baselevel >= 85, he asks for something to cool the drinks (ice cubes) -// state 1: can be asked about the bracelet. needs @ICE_CUBE_AMOUNT ice cubes, then asks for bones and skulls. +// state 1: can be asked about the ring. needs @ICE_CUBE_AMOUNT ice cubes, then asks for bones and skulls. // state 2: wants @BONE_AMOUNT and @SKULL_AMOUNT bones and skulls -// state 3: can be asked about the bracelet. needs @woman > 5 to be asked about savaric, tells, if crying child quest is completed +// state 3: can be asked about the ring. needs @woman > 5 to be asked about savaric, tells, if crying child quest is completed // state 4: if @golbanez < 5, can be told about the memories, then asks the player to bring @RUBY_AMOUNT rubies to reid // state 5: waiting // state 6: is set in reid, gives as reward a special bowler hat @@ -84,12 +84,12 @@ L_Ice_Cube: if ((@kidstate == 4) && countitem("IceCube") > 0) menu "Maybe this never melting Ice Cube?", L_Check_Ice, - "I found this in the main hall. Do you know to whom it belongs?", L_Bracelet, + "I found this in the main hall. Do you know to whom it belongs?", L_Ring, "I'm still searching.", L_Close; if (@kidstate == 4) menu - "I found this in the main hall. Do you know to whom it belongs?", L_Bracelet, + "I found this in the main hall. Do you know to whom it belongs?", L_Ring, "I'm still searching.", L_Close; if (countitem("IceCube") > 0) @@ -158,12 +158,12 @@ L_Brought_Bones: if ((@kidstate == 4) && (@woman > 5)) menu "Would you tell me about this mage named Savaric?", L_Savaric, - "I found this in the main hall. Do you know to whom it belongs?", L_Bracelet, + "I found this in the main hall. Do you know to whom it belongs?", L_Ring, "You're welcome.", L_Close; if (@kidstate == 4) menu - "I found this in the main hall. Do you know to whom it belongs?", L_Bracelet, + "I found this in the main hall. Do you know to whom it belongs?", L_Ring, "You're welcome.", L_Close; if (@woman > 5) @@ -218,13 +218,13 @@ L_Woman: mes "\"And, to be honest, I'd only be able to talk about such a complicated matter if I am sure I am sharing my feelings with a good, wise and understanding person. No offense, it is just that I barely know you...\""; close; -L_Bracelet: +L_Ring: mes "[Hamond]"; - mes "\"Well.. this is just a cheap bracelet. It is very popular with the young kids these days, especially the magic students. They call it 'Scarab Armlet'. Fancy name, huh? But to me it is just a cheap bracelet.\""; + mes "\"Well.. this is just a cheap ring. It is very popular with the young kids, especially the magic students.\""; next; - mes "\"They also say it increases 'magic attack'. But, in fact, I think these kids are delusional. Magic, pah.\""; + mes "\"They say the ring increases 'magic attack' if you add a sapphire gem to it... But, in fact, I think these kids are delusional. Magic, pah.\""; next; - mes "\"Anyway, you can easily find one of these in a lot of small shops in this town. I am pretty sure that whoever lost it won't bother coming all the way back to get it.\""; + mes "\"Anyway, I remember you could easily find one of these in a lot of small shops in town. I am pretty sure that whoever lost it won't bother coming all the way back to get it.\""; set @kidstate, 5; callsub S_Update_Mask_Kid; close; diff --git a/npc/027-2_Caretakers_House/innkeeper.txt b/npc/027-2_Caretakers_House/innkeeper.txt index 9a8072cc..a8cd3778 100644 --- a/npc/027-2_Caretakers_House/innkeeper.txt +++ b/npc/027-2_Caretakers_House/innkeeper.txt @@ -2,9 +2,9 @@ // love triangle quest, involved npcs: Reid's Ghost, Hamond, Savaric, Aldred, Golbenez // state 0: first talk // state 1: if baselevel >= 85 player can ask about the inn and dead -// state 2: reid knows now she's dead, can be asked about the bracelet -// state 3: can be asked about bracelet, player offered help to find out what happened, she wants something to represent her sadness (frozen yeti tears) -// state 4: can be asked about bracelet, can be asked about her life +// state 2: reid knows now she's dead, can be asked about the ring +// state 3: can be asked about ring, player offered help to find out what happened, she wants something to represent her sadness (frozen yeti tears) +// state 4: can be asked about ring, can be asked about her life // state 5: if crying child quest is completed she tells about savaric, and her rooms on the first floor can be entered now to read her diary // state 6: tells the player to read her diary // state 7: set in diary, if player has seen all memories (@golbanez < 5), can tell her about it @@ -115,7 +115,7 @@ L_Offer_Help2: if (@kidstate == 5) menu "Shall I help you to find out what happened to you?", L_Offer_Help1, - "Hi. I found this in the main hall. Do you know to whom it belongs?", L_Bracelet, + "Hi. I found this in the main hall. Do you know to whom it belongs?", L_Ring, "I don't want to bother you.", L_Close; L_Skip1: menu @@ -139,12 +139,12 @@ L_Bring_Tears: if ((@kidstate == 5) && countitem("FrozenYetiTear") > 0) menu "I found this frozen tear to represent your sadness.", L_Check_Tears, - "Hi. I found this in the main hall. Do you know to whom it belongs?", L_Bracelet, + "Hi. I found this in the main hall. Do you know to whom it belongs?", L_Ring, "I'm still searching.", L_Close; if (@kidstate == 5) menu - "Hi. I found this in the main hall. Do you know to whom it belongs?", L_Bracelet, + "Hi. I found this in the main hall. Do you know to whom it belongs?", L_Ring, "I'm still searching.", L_Close; if (countitem("FrozenYetiTear") > 0) @@ -176,7 +176,7 @@ L_Ask_Life: if (@kidstate == 5) menu "Please tell me about your life. Maybe this will give us a clue about what happened.",L_Skip2, - "Hi. I found this in the main hall. Do you know to whom it belongs?", L_Bracelet, + "Hi. I found this in the main hall. Do you know to whom it belongs?", L_Ring, "I need to think about that.", L_Close; L_Skip2: menu @@ -222,12 +222,12 @@ L_Check_Kid: if (@kidstate == 5) menu - "Hi. I found this in the main hall. Do you know to whom it belongs?", L_Bracelet; + "Hi. I found this in the main hall. Do you know to whom it belongs?", L_Ring; if ((Sex == 1) && (@kidstate < 7)) goto L_Man; if ((Sex == 0) && (@kidstate < 7)) goto L_Woman; - mes "\"What I'm going to tell you is very personal, but your acts have shown me that you're a person I can trust. You kindly asked me about that bracelet you have found... and also, even my son, who is always so reserved with strangers, came to me and spent a long time telling me a lot of nice things about you. So I will tell you about my sad love.\""; + mes "\"What I'm going to tell you is very personal, but your acts have shown me that you're a person I can trust. You kindly asked me about that ring you have found... and also, even my son, who is always so reserved with strangers, came to me and spent a long time telling me a lot of nice things about you. So I will tell you about my sad love.\""; next; L_Lovestory: @@ -393,13 +393,13 @@ L_Woman: mes "\"But I'm not sure if I want to tell you. I know you helped me already and showed me you are a sensitive woman, but I barely know you. I am sorry, but I have to think a little bit more. Maybe later, when I know you better, I can tell you more about it. \""; close; -L_Bracelet: +L_Ring: mes "[Reid's Ghost]"; mes "\"Oh, this - I - it's mine. It was a present from a very precious person.\""; next; - mes "She reaches out to take the bracelet, but her fingers go just through it. She looks sad."; + mes "She reaches out to take the ring, but it just go through her fingers. She looks sad."; next; - mes "\"Ah, I forgot again. It pains me not being able to hold it. Please, take it with you, I don't want it anymore. It hurts too much.\""; + mes "\"Ah, I forgot again. It pains me not being able to wear it. Please, take it with you, I don't want it anymore. It hurts too much.\""; set @kidstate, 6; callsub S_Update_Mask_Kid; close; diff --git a/npc/031-4_Cave/cindyCave.txt b/npc/031-4_Cave/cindyCave.txt index e6b8702d..223aa80b 100644 --- a/npc/031-4_Cave/cindyCave.txt +++ b/npc/031-4_Cave/cindyCave.txt @@ -94,7 +94,7 @@ L_Reward: L_Wizard_Hat: // get a wizard hat in one of the ten colors - no white - setarray @wizardhats[0], 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209; + setarray @wizardhats, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209; getitem @wizardhats[@reward], 1; set @rescue_Cindy, 3; callsub S_Update_Mask; diff --git a/npc/functions/banker.txt b/npc/functions/banker.txt index 00f033c9..37024d96 100644 --- a/npc/functions/banker.txt +++ b/npc/functions/banker.txt @@ -1,6 +1,7 @@ // function script Banker { + if (BankAccount > 0) callsub S_MoveAccount; L_Start: @@ -13,13 +14,16 @@ L_Start: "Withdraw", L_With, "Check my balance", L_Balance, "Open my storage", L_Storage, + "Change Bank Options", L_Change, "Nevermind", L_Nev; close; // need to close window before opening storage. L_Storage: + if (#BankOptions & OPT_STORAGE_CLOSE) close2; openstorage; + if (#BankOptions & OPT_STORAGE_CLOSE) end; goto L_Start; L_Dep: @@ -187,6 +191,7 @@ L_Balance: mes "[" + @npcname$ + "]"; mes "\"Your current bank balance is:"; mes #BankAccount + " GP\""; + if (#BankOptions & OPT_BANK_CLOSE) close; goto L_Start; L_Nev: @@ -203,4 +208,21 @@ S_MoveAccount: set #BankAccount, #BankAccount + BankAccount; set BankAccount, 0; return; + +L_Change: + setarray @menuitems$, "Keep the current settings", "Close NPC dialog after selecting storage option", "Close NPC dialog after using bank"; + if (#BankOptions & OPT_STORAGE_CLOSE) set @menuitems$[1], "Return to main menu after leaving storage"; + if (#BankOptions & OPT_BANK_CLOSE) set @menuitems$[2], "Return to main menu after leaving bank"; + menu + @menuitems$[0], L_Start, + @menuitems$[1], L_Change_Storage, + @menuitems$[2], L_Change_Bank; + +L_Change_Storage: + set #BankOptions, (#BankOptions ^ OPT_STORAGE_CLOSE); + goto L_Start; + +L_Change_Bank: + set #BankOptions, (#BankOptions ^ OPT_BANK_CLOSE); + goto L_Start; } diff --git a/npc/functions/magic.txt b/npc/functions/magic.txt index 6e741312..c4abcab6 100644 --- a/npc/functions/magic.txt +++ b/npc/functions/magic.txt @@ -147,7 +147,7 @@ L_Q_post_astralsoul: set @menu, 0; set @c, @choice_idx[@menu]; - return @c; + return; } diff --git a/npc/functions/strangerquiz.txt b/npc/functions/strangerquiz.txt new file mode 100644 index 00000000..50f73ecc --- /dev/null +++ b/npc/functions/strangerquiz.txt @@ -0,0 +1,88 @@ + + + +function script StrangerQuiz { + // param @quizparam$$ + // return in @quizanswer$ + if ( @quizparam$ == "towelanswer00a" ) set @quizanswer$, "###towel 00a"; + if ( @quizparam$ == "towelanswer00b" ) set @quizanswer$, "###towel 00b"; + if ( @quizparam$ == "towelanswer01a" ) set @quizanswer$, "###towel 01a"; + if ( @quizparam$ == "towelanswer01b" ) set @quizanswer$, "###towel 01b"; + if ( @quizparam$ == "towelanswer02a" ) set @quizanswer$, "###towel 02a"; + if ( @quizparam$ == "towelanswer02b" ) set @quizanswer$, "###towel 02b"; + if ( @quizparam$ == "towelanswer03a" ) set @quizanswer$, "###towel 03a"; + if ( @quizparam$ == "towelanswer03b" ) set @quizanswer$, "###towel 03b"; + if ( @quizparam$ == "towelanswer04a" ) set @quizanswer$, "###towel 04a"; + if ( @quizparam$ == "towelanswer04b" ) set @quizanswer$, "###towel 04b"; + if ( @quizparam$ == "towelanswer05a" ) set @quizanswer$, "###towel 05a"; + if ( @quizparam$ == "towelanswer05b" ) set @quizanswer$, "###towel 05b"; + if ( @quizparam$ == "towelanswer05c" ) set @quizanswer$, "###towel 05c"; + if ( @quizparam$ == "towelanswer05d" ) set @quizanswer$, "###towel 05d"; + if ( @quizparam$ == "towelanswer06a" ) set @quizanswer$, "###towel 06a"; + if ( @quizparam$ == "towelanswer06b" ) set @quizanswer$, "###towel 06b"; + if ( @quizparam$ == "towelanswer06c" ) set @quizanswer$, "###towel 06c"; + if ( @quizparam$ == "towelanswer06d" ) set @quizanswer$, "###towel 06d"; + if ( @quizparam$ == "towelanswer07a" ) set @quizanswer$, "###towel 07a"; + if ( @quizparam$ == "towelanswer07b" ) set @quizanswer$, "###towel 07b"; + if ( @quizparam$ == "towelanswer08a" ) set @quizanswer$, "###towel 08a"; + if ( @quizparam$ == "towelanswer08b" ) set @quizanswer$, "###towel 08b"; + if ( @quizparam$ == "towelanswer08c" ) set @quizanswer$, "###towel 08c"; + if ( @quizparam$ == "towelanswer08d" ) set @quizanswer$, "###towel 08d"; + if ( @quizparam$ == "towelanswer09a" ) set @quizanswer$, "###towel 09a"; + if ( @quizparam$ == "towelanswer09b" ) set @quizanswer$, "###towel 09b"; + + if ( @quizparam$ == "towelanswer10a" ) set @quizanswer$, "###towel 10a"; + if ( @quizparam$ == "towelanswer10b" ) set @quizanswer$, "###towel 10b"; + if ( @quizparam$ == "towelanswer11a" ) set @quizanswer$, "###towel 11a"; + if ( @quizparam$ == "towelanswer11b" ) set @quizanswer$, "###towel 11b"; + if ( @quizparam$ == "towelanswer12a" ) set @quizanswer$, "###towel 12a"; + if ( @quizparam$ == "towelanswer12b" ) set @quizanswer$, "###towel 12b"; + if ( @quizparam$ == "towelanswer13a" ) set @quizanswer$, "###towel 13a"; + if ( @quizparam$ == "towelanswer13b" ) set @quizanswer$, "###towel 13b"; + if ( @quizparam$ == "towelanswer14a" ) set @quizanswer$, "###towel 14a"; + if ( @quizparam$ == "towelanswer14b" ) set @quizanswer$, "###towel 14b"; + if ( @quizparam$ == "towelanswer15a" ) set @quizanswer$, "###towel 15a"; + if ( @quizparam$ == "towelanswer15b" ) set @quizanswer$, "###towel 15b"; + if ( @quizparam$ == "towelanswer15c" ) set @quizanswer$, "###towel 15c"; + if ( @quizparam$ == "towelanswer16a" ) set @quizanswer$, "###towel 16a"; + if ( @quizparam$ == "towelanswer16b" ) set @quizanswer$, "###towel 16b"; + if ( @quizparam$ == "towelanswer17a" ) set @quizanswer$, "###towel 17a"; + if ( @quizparam$ == "towelanswer17b" ) set @quizanswer$, "###towel 17b"; + if ( @quizparam$ == "towelanswer18a" ) set @quizanswer$, "###towel 18a"; + if ( @quizparam$ == "towelanswer18b" ) set @quizanswer$, "###towel 18b"; + if ( @quizparam$ == "towelanswer18c" ) set @quizanswer$, "###towel 18c"; + if ( @quizparam$ == "towelanswer18d" ) set @quizanswer$, "###towel 18d"; + if ( @quizparam$ == "towelanswer19a" ) set @quizanswer$, "###towel 19a"; + if ( @quizparam$ == "towelanswer19b" ) set @quizanswer$, "###towel 19b"; + if ( @quizparam$ == "towelanswer19c" ) set @quizanswer$, "###towel 19c"; + if ( @quizparam$ == "towelanswer19d" ) set @quizanswer$, "###towel 19d"; + if ( @quizparam$ == "towelanswer110a" ) set @quizanswer$, "###towel 110a"; + if ( @quizparam$ == "towelanswer110b" ) set @quizanswer$, "###towel 110b"; + if ( @quizparam$ == "towelanswer111a" ) set @quizanswer$, "###towel 111a"; + if ( @quizparam$ == "towelanswer111b" ) set @quizanswer$, "###towel 111b"; + + if ( @quizparam$ == "towelanswer20a" ) set @quizanswer$, "###towel 20a"; + if ( @quizparam$ == "towelanswer20b" ) set @quizanswer$, "###towel 20b"; + if ( @quizparam$ == "towelanswer20c" ) set @quizanswer$, "###towel 20c"; + if ( @quizparam$ == "towelanswer20d" ) set @quizanswer$, "###towel 20d"; + if ( @quizparam$ == "towelanswer21a" ) set @quizanswer$, "###towel 21a"; + if ( @quizparam$ == "towelanswer21b" ) set @quizanswer$, "###towel 21b"; + if ( @quizparam$ == "towelanswer22a" ) set @quizanswer$, "###towel 22a"; + if ( @quizparam$ == "towelanswer22b" ) set @quizanswer$, "###towel 22b"; + if ( @quizparam$ == "towelanswer23a" ) set @quizanswer$, "###towel 23a"; + if ( @quizparam$ == "towelanswer23b" ) set @quizanswer$, "###towel 23b"; + if ( @quizparam$ == "towelanswer24a" ) set @quizanswer$, "###towel 24a"; + if ( @quizparam$ == "towelanswer24b" ) set @quizanswer$, "###towel 24b"; + if ( @quizparam$ == "towelanswer25a" ) set @quizanswer$, "###towel 25a"; + if ( @quizparam$ == "towelanswer25b" ) set @quizanswer$, "###towel 25b"; + if ( @quizparam$ == "towelanswer26a" ) set @quizanswer$, "###towel 26a"; + if ( @quizparam$ == "towelanswer26b" ) set @quizanswer$, "###towel 26b"; + if ( @quizparam$ == "towelanswer26c" ) set @quizanswer$, "###towel 26c"; + if ( @quizparam$ == "towelanswer26d" ) set @quizanswer$, "###towel 26d"; + if ( @quizparam$ == "towelanswer27a" ) set @quizanswer$, "###towel 27a"; + if ( @quizparam$ == "towelanswer27b" ) set @quizanswer$, "###towel 27b"; + if ( @quizparam$ == "towelanswer27c" ) set @quizanswer$, "###towel 27c"; + if ( @quizparam$ == "towelanswer27d" ) set @quizanswer$, "###towel 27d"; + if ( @quizparam$ == "towelanswer28a" ) set @quizanswer$, "###towel 28a"; + if ( @quizparam$ == "towelanswer28b" ) set @quizanswer$, "###towel 28b"; +} diff --git a/npc/items/warpTowels.txt b/npc/items/warpTowels.txt new file mode 100644 index 00000000..5ef5167b --- /dev/null +++ b/npc/items/warpTowels.txt @@ -0,0 +1,50 @@ +function script useWhiteWarpTowel { + warp "020-1.gat",66,91; // Nivalis + getitem "GreyWarpTowel", 1; + end; +} +function script useRedWarpTowel { + warp "009-1.gat",51,40; // Hurnscald + getitem "GreyWarpTowel", 1; + end; +} +function script useGreenWarpTowel { + warp "003-1.gat",35,25; + getitem "GreyWarpTowel", 1; + end; +} +function script useBlueWarpTowel { + warp "003-1.gat",35,25; + getitem "GreyWarpTowel", 1; + end; +} +function script useYellowWarpTowel { + warp "001-1.gat",40,71; // Tulimshar + getitem "GreyWarpTowel", 1; + end; +} +function script usePurpleWarpTowel { + warp "003-1.gat",35,25; + getitem "GreyWarpTowel", 1; + end; +} +function script useOrangeWarpTowel { + warp "003-1.gat",35,25; + getitem "GreyWarpTowel", 1; + end; +} +function script usePinkWarpTowel { + warp "003-1.gat",35,25; + getitem "GreyWarpTowel", 1; + end; +} +function script useTealWarpTowel { + warp "003-1.gat",35,25; + getitem "GreyWarpTowel", 1; + end; +} +function script useLimeWarpTowel { + warp "003-1.gat",35,25; + getitem "GreyWarpTowel", 1; + end; +} diff --git a/npc/scripts.conf b/npc/scripts.conf index 42622c1b..8d07ff18 100644 --- a/npc/scripts.conf +++ b/npc/scripts.conf @@ -13,6 +13,7 @@ npc: npc/functions/mob_points.txt npc: npc/functions/process_equip.txt npc: npc/functions/slot_machine.txt npc: npc/functions/soul_menhir.txt +npc: npc/functions/strangerquiz.txt npc: npc/functions/water_bottle.txt npc: npc/functions/evil_obelisk.txt @@ -22,6 +23,7 @@ npc: npc/items/scissors.txt npc: npc/items/shock_sweet.txt npc: npc/items/unreleased_item.txt npc: npc/items/restricted_item.txt +npc: npc/items/warpTowels.txt import: npc/_import.txt diff --git a/npc/xmas/2010/golbanez.txt b/npc/xmas/2010/golbanez.txt index 0b145ca9..f5a0e01b 100755 --- a/npc/xmas/2010/golbanez.txt +++ b/npc/xmas/2010/golbanez.txt @@ -133,8 +133,10 @@ L_Menu: "Nevermind.", Glb_nvm; // in this array the items should be filled in. Remember to change the ID when the boxes are added to item_db. - setarray @menuitem[2], "4021", "4022"; - setarray @menuvalue[2], 50000, 100000; + set @menuitem[2], 4021; + set @menuitem[3], 4022; + set @menuvalue[2], 50000; + set @menuvalue[3], 100000; mes "\"How many presents do you want to give?\""; diff --git a/npc/xmas/2010/santa.txt b/npc/xmas/2010/santa.txt index 3ef9257d..bd82a251 100755 --- a/npc/xmas/2010/santa.txt +++ b/npc/xmas/2010/santa.txt @@ -45,7 +45,7 @@ L_Skip_Dialogue: L_Calculate_Prizes: getinventorylist; if (@inventorylist_count == 100) goto L_full; - setarray @prizes[0], 1216, 629, 630, 634, 1214, 633, 628, 627, 621; + setarray @prizes, 1216, 629, 630, 634, 1214, 633, 628, 627, 621; mes "\"You are so generous! I believe I can give you one of the hats from this bag. I know you like these silly hats. Yes, Santa knows this kind of thing... Ho-Ho-Ho! Put your hand here and pick one hat... No, you cant look, it MUST be a surprise...\""; getitem @prizes[rand(8)], 1; set Xmas2010, 2; |