summaryrefslogtreecommitdiff
path: root/npc
diff options
context:
space:
mode:
Diffstat (limited to 'npc')
-rw-r--r--npc/001-1_Tulimshar/rewards_master.txt8
-rw-r--r--npc/003-1_Beach/_import.txt1
-rw-r--r--npc/003-1_Beach/stranger.txt506
-rw-r--r--npc/018-2_Woodland_mining_camp/miners.txt146
-rw-r--r--npc/027-1_Graveyard/monsters.txt14
-rw-r--r--npc/027-2_Caretakers_House/crying_child.txt44
-rw-r--r--npc/027-2_Caretakers_House/husband.txt20
-rw-r--r--npc/027-2_Caretakers_House/innkeeper.txt24
-rw-r--r--npc/031-4_Cave/cindyCave.txt2
-rw-r--r--npc/functions/banker.txt22
-rw-r--r--npc/functions/magic.txt2
-rw-r--r--npc/functions/strangerquiz.txt88
-rw-r--r--npc/items/warpTowels.txt50
-rw-r--r--npc/scripts.conf2
-rwxr-xr-xnpc/xmas/2010/golbanez.txt6
-rwxr-xr-xnpc/xmas/2010/santa.txt2
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;