From de5fefc33d6e19bbc5b2c2f194b47b288c5900e3 Mon Sep 17 00:00:00 2001 From: Jessica Tölke Date: Mon, 18 Apr 2011 11:36:00 +0200 Subject: adding towel day event npc, needs to be uncommented --- db/const.txt | 2 + npc/003-1_Beach/_import.txt | 1 + npc/003-1_Beach/stranger.txt | 314 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 317 insertions(+) create mode 100644 npc/003-1_Beach/stranger.txt diff --git a/db/const.txt b/db/const.txt index 53ad97bd..29b9e724 100644 --- a/db/const.txt +++ b/db/const.txt @@ -255,6 +255,8 @@ FLAG_HAS_BOWLER_BURNSDAY 1 // every year's poem at burns day, shannon gives you FLAG_OPENED_UNDERGROUND 2 // this flag is a replacement for variable Open_Underground_Palace_Barrier, which was used only as bool FLAG_GOT_NAEM_GLOVES 4 // this replaces Naem_Quest_Done, which was used as a bool variable FLAG_GOT_GRADUATIONCAP 8 // this is a bit which was to be found in Tut_var second bit +FLAG_TOWEL_HELPED 16 // gave the towel npc the stuff he wants +FLAG_TOWEL_COMPLETED 32 // got the towel from the towel npc DOCK_tulimshar 1 DOCK_hurnscald 2 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..abd1a2b7 --- /dev/null +++ b/npc/003-1_Beach/stranger.txt @@ -0,0 +1,314 @@ +//003-1.gat,35,25,0 script Stranger 192, { + + set @month, 5; + set @start_day, 18; + set @end_day, 25; + set @end_day, 18; + 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 < 4*7*86400) || (baselevel < 42 )) //player must be created at least 4 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; + if (("###" + @answer$ == getspellinvocation("towelanswer0" + @random + "d"))) + goto L_Right_Answer_Easy; +L_Easy_Skip4: + if (@easy_answers_amount[@random] < 3) + goto L_Easy_Skip3; + if (("###" + @answer$ == getspellinvocation("towelanswer0" + @random + "c"))) + goto L_Right_Answer_Easy; +L_Easy_Skip3: + if (("###" + @answer$ == getspellinvocation("towelanswer0" + @random + "a")) || ("###" + @answer$ == getspellinvocation("towelanswer0" + @random + "b"))) + 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; + if (("###" + @answer$ == getspellinvocation("towelanswer1" + @random + "d"))) + goto L_Right_Answer_Medium; +L_Medium_Skip4: + if (@medium_answers_amount[@random] < 3) + goto L_Medium_Skip3; + if (("###" + @answer$ == getspellinvocation("towelanswer1" + @random + "c"))) + goto L_Right_Answer_Medium; +L_Medium_Skip3: + if (("###" + @answer$ == getspellinvocation("towelanswer1" + @random + "a")) || ("###" + @answer$ == getspellinvocation("towelanswer1" + @random + "b"))) + 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; + if (("###" + @answer$ == getspellinvocation("towelanswer2" + @random + "d"))) + goto L_Right_Answer_Hard; +L_Hard_Skip4: + if (@hard_answers_amount[@random] < 3) + goto L_Hard_Skip3; + if (("###" + @answer$ == getspellinvocation("towelanswer2" + @random + "c"))) + goto L_Right_Answer_Hard; +L_Hard_Skip3: + if (("###" + @answer$ == getspellinvocation("towelanswer2" + @random + "a")) || ("###" + @answer$ == getspellinvocation("towelanswer2" + @random + "b"))) + 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 "WhiteWarpTowel", 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 dye, and I can prepare it for you. But it won't work with every color. And it's a bit complicated to accomplish, so a payment of " + @cost + " GP is reasonable.\""; + 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?\""; +// more colors should be added when more places are released + menu + "Red", L_Red, + "Yellow", L_Yellow, + "Light Blue", L_Light_Blue, + "I changed my mind.", L_Close; + close; + +L_Red: + if (countitem("WhiteWarpTowel") < 1) goto L_No_Towel; + getinventorylist; + if ((countitem("WhiteWarpTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv; + if (zeny < 500) goto L_No_Money; + if (countitem("RedDye") < 1) goto L_No_Dye; + delitem "RedDye", 1; + delitem "WhiteWarpTowel", 1; + set zeny, zeny - 500; + getitem "RedWarpTowel", 1; + mes "He takes your white towel and the dye, 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: + if (countitem("WhiteWarpTowel") < 1) goto L_No_Towel; + getinventorylist; + if ((countitem("WhiteWarpTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv; + if (zeny < 500) goto L_No_Money; + if (countitem("YellowDye") < 1) goto L_No_Dye; + delitem "YellowDye", 1; + delitem "WhiteWarpTowel", 1; + set zeny, zeny - 500; + getitem "YellowWarpTowel", 1; + mes "He takes your white towel and the dye, 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_Light_Blue: + if (countitem("WhiteWarpTowel") < 1) goto L_No_Towel; + getinventorylist; + if ((countitem("WhiteWarpTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv; + if (zeny < 500) goto L_No_Money; + if (countitem("LightBlueDye") < 1) goto L_No_Dye; + delitem "LightBlueDye", 1; + delitem "WhiteWarpTowel", 1; + set zeny, zeny - 500; + getitem "LightBlueWarpTowel", 1; + mes "He takes your white towel and the dye, 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_Money: + mes "[Stranger]"; + mes "\"I'm sorry, preparing this towel for travelling is really complicated. I can't explain you the details, but I'll need " + @cost + " GP.\""; + close; + +L_No_Dye: + mes "[Stranger]"; + mes "\"You need to bring me dye in that color.\""; + 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; +} -- cgit v1.2.3-70-g09d2