From 78b00d2d199428e1341236c5a54d0ee9517daa0f Mon Sep 17 00:00:00 2001 From: Enchilado Date: Fri, 19 Nov 2010 20:18:34 +1000 Subject: Hallowe'en 2010 Phase 1 Server Data Some new items, a new monster, temporary spawns for that monster, the event NPC, scripts.conf to make him appear, and a new news entry. --- npc/halloween/2010/gak.txt | 426 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 426 insertions(+) create mode 100644 npc/halloween/2010/gak.txt (limited to 'npc/halloween') diff --git a/npc/halloween/2010/gak.txt b/npc/halloween/2010/gak.txt new file mode 100644 index 00000000..e15ae464 --- /dev/null +++ b/npc/halloween/2010/gak.txt @@ -0,0 +1,426 @@ +010-1.gat,29,48,0 script Gak 187, { + + if (hween10 == 1) goto L_Knows_Gak; + if (hween10 == 2) goto L_Gak_Has_Tongue; + if (hween10 == 3) goto L_Bones_Check; + if (hween10 == 4) goto L_Request_Sweets; + if (hween10 == 5) goto L_Collecting_Sweets; + + mes "[Broken Skeleton]"; + set hween10, 1; + mes ""; + mes "\"Gak... gak, gak! Gak gak gak gak!\""; + close; + +L_Knows_Gak: + if (countitem("Tongue") > 0) goto L_Has_Tongue; + mes "[Gak]"; + mes ""; + mes "\"Gak gak! Gak gak, gak gak gak!\""; + close; + +L_Has_Tongue: + mes "[Gak]"; + mes ""; + mes "The skeleton notices a slimy, dead tongue you have with you, and eyes it eagerly."; + next; + mes "[Gak]"; + mes ""; + mes "At least, you assume he is eager. \"Gak gak gak! Gak gak gak gak GAK GAK!\""; + next; + menu + "Give the tongue to him", L_Give_Tongue, + "Taunt him by showing him the tongue, but not giving it", L_Give_Tongue_Die, + "Walk away", -; + close; + +L_Give_Tongue: + if (countitem("Tongue") < 1) goto L_Tongue_Gone_Die; + delitem "Tongue", 1; + set hween10, 2; + mes "[Gak]"; + mes ""; + mes "The skeleton grabs the tongue from you and shoves it into his mouth. After stretching his jaw for some moments, he grins at you unpleasantly."; + next; + mes "[Gak]"; + mes ""; + mes "\"Ssso! What bringsss you here, mortal?\""; + next; + menu + "I just chanced upon you here, and figured you could use a tongue.", L_Thanks, + "The Hallowe'en event is FINALLY here, of course I'm going to play it.", L_Whut, + "Nothing.", -; + close; + +L_Tongue_Gone_Die: + mes "[Gak]"; + mes ""; + mes "He reaches out for the tongue, but then realises you don't have it. With an angry a look on his face as a skeleton can have, he slashes at you with his remaining arm."; + goto L_Die; + +L_Give_Tongue_Die: + mes "[Gak]"; + mes ""; + mes "Angrily, the skeleton reaches out and claws you with his remaining arm."; + if (countitem("Tongue") < 1) goto L_Die; + next; + delitem "Tongue", 1; + mes "[Gak]"; + mes ""; + mes "As you fall, he takes the tongue from you anyway."; + set hween10, 2; + goto L_Die; + +L_Die: + close2; + itemheal -Hp -1, 0; + end; + +L_Thanks: + mes "[Gak]"; + mes ""; + mes "\"Well, that wasss mighty thoughtful of you, friend... I wonder if perhapsss you could do me another favour?\""; + next; + menu + "Sure! Anything you want.", L_Sure, + "I'll be right, thanks.", -; + close; + +L_Whut: + mes "[Gak]"; + mes ""; + mes "\"What?\""; + close; + +L_Gak_Has_Tongue: + mes "[Gak]"; + mes ""; + mes "\"Hello again, little friend. Could you posssibly do me another favour?\""; + next; + menu + "I sure can, what is it?", L_Sure, + "Uh, no thanks.", -; + close; + +L_Sure: + mes "[Gak]"; + mes ""; + mes "\"It wasss nice if you to bring me thisss tongue, but asss you can sssee I still have a few things missing.\""; + next; + mes "[Gak]"; + mes ""; + mes "\"Maybe you could bring me a few bonesss so I could patch myssself up?\""; + next; + menu + "I'm on it!", L_Bones, + "Nah, that sounds a bit boring.", -; + close; + +L_Bones: + set hween10, 3; + mes "[Gak]"; + mes ""; + mes "\"Wonderful! I can't wait until I can properly walk around attacking thingsss again.\""; + close; + +L_Bones_Check: + mes "[Gak]"; + mes ""; + mes "\"Hallo again. Have you brought me any bonesss?\""; + next; + setarray @menuitems$, "", "", "", "", ""; + set @c, 0; + + if (countitem("Bone") < 5) goto L_bones_four; + set @menuitems$[@c], "Take five bones."; + set @menuid[@c], 0; + set @c, @c + 1; + +L_bones_four: + if (countitem("Bone") < 4) goto L_bones_three; + set @menuitems$[@c], "Take four bones."; + set @menuid[@c], 1; + set @c, @c + 1; + +L_bones_three: + if (countitem("Bone") < 3) goto L_bones_two; + set @menuitems$[@c], "Take three bones."; + set @menuid[@c], 2; + set @c, @c + 1; + +L_bones_two: + if (countitem("Bone") < 2) goto L_bones_one; + set @menuitems$[@c], "Take two bones."; + set @menuid[@c], 3; + set @c, @c + 1; + +L_bones_one: + if (countitem("Bone") < 1) goto L_bones_menu; + set @menuitems$[@c], "Take one bone."; + set @menuid[@c], 4; + set @c, @c + 1; + +L_bones_menu: + set @menuitems$[@c], "I don't have any bones."; + set @menuid[@c], 5; + 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] == 5) goto L_offer_no_items; + mes "[Gak]"; + mes ""; + mes "Ssso many? Jussst what I needed. Let me sssee if they are sssuitable..."; + next; + + if (@menuid[@menu] == 0) set @bonecount, 5; + if (@menuid[@menu] == 1) set @bonecount, 4; + if (@menuid[@menu] == 2) set @bonecount, 3; + if (@menuid[@menu] == 3) set @bonecount, 2; + if (@menuid[@menu] == 4) set @bonecount, 1; + if (countitem("Bone") < @bonecount) goto L_Not_Enough_Bones; + + delitem "Bone", @bonecount; + set @bonecount, @bonecount + 1; + set @hween10_givebones, 0; + +// in a rush, raising and then lowering is the best thing I can think of to make the loop work properly. + +L_Bone_Loop: + set @bonecount, @bonecount - 1; + if @bonecount < 1 goto L_Bones_Feedback; + set @temp1, rand(@bonecount + 5); + if @temp1 > @bonecount goto L_Bone_Loop; + set @hween10_givebones, @hween10_givebones + 1; + goto L_Bone_Loop; + +L_Not_Enough_Bones: + mes "[Gak]"; + mes ""; + mes "\"Hey... you don't have that many bonesss!\""; + close; + +L_offer_no_items: + mes "[Gak]"; + mes ""; + mes "\"Sssucch a pity...\""; + close; + +L_Bones_Feedback: + if (@hween10_givebones == 0) goto L_Bones_Feedback_None; + mes "[Gak]"; + mes ""; + mes "\"Hmm... I think I can ussse " + @hween10_givebones + " of thessse bonesss.\""; + next; + set hween10_bonecount, hween10_bonecount + @hween10_givebones; + if (hween10_bonecount > 7) goto L_Enough_Bones; + mes "[Gak]"; + mes ""; + mes "\"But I ssstill need more! Pleassse bring them to me.\""; + close; + +L_Bones_Feedback_None: + mes "[Gak]"; + mes ""; + mes "\"I can't ussse any of theesse boness. I need more!\""; + close; + +L_Enough_Bones: + set hween10, 4; + mes "[Gak]"; + mes ""; + mes "\"And that should be enough for my dark purposssesss.\""; + next; + mes "[Gak]"; + mes ""; + mes "\"Now... I wonder...\" He flicks his tongue around his dry and ancient teeth. \"I wonder if you could get me sssomething to eat?\""; + next; + mes "[Gak]"; + mes ""; + mes "\"All thisss hard work gathering bonesss hasss made me...\""; + next; + mes "[Gak]"; + mes ""; + mes "\"HUNGRY!\""; + next; + menu + "Uh, what would you like to eat?", L_Request_Sweets, + "This is a burial site, I'm sure there are plenty of worms around.", L_Worms, + "Me too, actually. I gotta eat. Bye!", -; + close; + +L_Worms: + mes "[Gak]"; + mes ""; + mes "\"True... but they are sssmall, and not asss sssweet asss what I'd like!\""; + next; + +L_Request_Sweets: + mes "[Gak]"; + mes ""; + mes "\"Asss I'm sssure you know, it wasss Hallowe'en recently. I'll bet you had great time collecting sssweetsss with your friendsss, hm?\""; + next; + menu + "The guy organising that was too lazy - it never happened.", L_Time_Management, + "Well, what's it to you?", L_Leftover_Sweets, + "You're creeping me out.", -; + close; + +L_Time_Management: + mes "[Gak]"; + mes ""; + mes "\"That'sss jussst too bad. People with poor time management shouldn't be put in charge of important thingsss like that.\""; + next; + mes "[Gak]"; + mes ""; + mes "\"But never mind. Even if you didn't get to go trick-or-treating, there will ssstill be plenty of dropped sssweets lying around.\""; + next; + mes "[Gak]"; + mes ""; + mes "\"People are ssso carelesss! To my benefit, of courssse. Ssso what do you sssay? Can you bring me asss many sssweetsss as you can find?\""; + menu + "I guess so.", L_Confirm_Sweethunting, + "No, I'd rather eat 'em myself.", -; + close; + +L_Leftover_Sweets: + mes "[Gak]"; + mes ""; + mes "\"Each year at Hallowe'en, all you little girlsss and boysss run about begging for candy. And each year, ssso much of it is dropped, and wasssted!\""; + next; + mes "[Gak]"; + mes ""; + mes "\"But I don't mind eating sssweetsss just becaussse they're a couple of weeksss old! Bring me lotsss, and you shall have a reward.\""; + next; + menu + "Well, okay then.", L_Confirm_Sweethunting, + "Wait, free sweets!? Why did no one tell me?", -; + close; + +L_Confirm_Sweethunting: + set hween10, 5; + mes "[Gak]"; + mes ""; + mes "\"My ssstomach groansss with anticipa - uh, well, my bonesss creak with anticipation. Tell all your little friendsss to bring my any sssweetsss they find, too: I really am VERY hungry!\""; + next; + mes "[Gak]"; + mes ""; + mes "\"Remember, though, and thisss isss important: the more sssweetsss YOU PERSSSONALLY bring me, the better YOUR reward will be!\""; + close; + +L_Collecting_Sweets: + mes "[Gak]"; + mes ""; + mes "\"Ssso, do you have any sssweetsss for me?\""; + next; + setarray @menuitems$, "", "", "", "", ""; + set @c, 0; + + if (countitem("tondel") < 1) goto L_Sweets_Marshmallow; + set @menuitems$[@c], "Tonori Delight."; + set @menuid[@c], 0; + set @c, @c + 1; + +L_Sweets_Marshmallow: + if (countitem("Marshmallow") < 1) goto L_Sweets_JellySkull; + set @menuitems$[@c], "Marshmallow."; + set @menuid[@c], 1; + set @c, @c + 1; + +L_Sweets_JellySkull: + if (countitem("JellySkull") < 1) goto L_Sweets_CandyPumpkin; + set @menuitems$[@c], "Jelly Skull."; + set @menuid[@c], 2; + set @c, @c + 1; + +L_Sweets_CandyPumpkin: + if (countitem("CandyPumpkin") < 1) goto L_Sweets_Menu; + set @menuitems$[@c], "Candy Pumpkin."; + set @menuid[@c], 3; + set @c, @c + 1; + +L_Sweets_Menu: + set @menuitems$[@c], "I don't have any sweets."; + set @menuid[@c], 4; + set @c, @c + 1; + menu + @menuitems$[0], -, + @menuitems$[1], -, + @menuitems$[2], -, + @menuitems$[3], -, + @menuitems$[4], -, + @menuitems$[5], -; + set @menu, @menu -1; + if (@menu >= @c) close; + + if (@menuid[@menu] == 0) set @giveitem$, "TonoriDelight"; + if (@menuid[@menu] == 1) set @giveitem$, "Marshmallow"; + if (@menuid[@menu] == 2) set @giveitem$, "JellySkull"; + if (@menuid[@menu] == 3) set @giveitem$, "CandyPumpkin"; + // We need something to handle what happens when we select that the character does not have any sweets + if (@menuid[@menu] == 4) goto L_offer_no_items; + + mes "[Gak]"; + mes ""; + mes "\"How many of those do you have for me?\""; + next; + menu + "Take all of them.", -, + "One hundred of them.", -, + "Fifty of them.", -, + "Ten of them.", -, + "Five of them.", -, + "One of them.", -, + "This many...", -; + set @menu, @menu - 1; + + if (@menu == 0) set @givecounter, countitem(@giveitem$); + if (@menu == 1) set @givecounter, 100; + if (@menu == 2) set @givecounter, 50; + if (@menu == 3) set @givecounter, 10; + if (@menu == 4) set @givecounter, 5; + if (@menu == 5) set @givecounter, 1; + if (@menu == 6) input @givecounter; + if (@menu > 6) close; + if (countitem(@giveitem$) < @givecounter) goto L_Not_Enough_Sweeties; + + delitem @giveitem$, @givecounter; + + if (@giveitem$ == "TonoriDelight") set $hween10_tondel, $hween10_tondel + @givecounter; + if (@giveitem$ == "Marshmallow") set $hween10_mmallow, $hween10_mmallow + @givecounter; + if (@giveitem$ == "JellySkull") set $hween10_jelskul, $hween10_jelskul + @givecounter; + if (@giveitem$ == "CandyPumpkin") set $hween10_canpump, $hween10_canpump + @givecounter; + if (@giveitem$ == "TonoriDelight") set hween10_collect_tondel, hween10_collect_tondel + @givecounter; + if (@giveitem$ == "Marshmallow") set hween10_collect_mmallow, hween10_collect_mmallow + @givecounter; + if (@giveitem$ == "JellySkull") set hween10_collect_jelskul, hween10_collect_jelskul + @givecounter; + if (@giveitem$ == "CandyPumpkin") set hween10_collect_canpump, hween10_collect_canpump + @givecounter; + + set hween10_collect, hween10_collect + @givecounter; + + mes "[Gak]"; + mes ""; + mes "\"Thank you for your generousss donation to my caussse. Ssso far, you and your friendsss have brought me " + $hween10_tondel + " Tonori Delightsss, " + $hween10_mmallow + " Marshmallowsss, " + $hween10_jelskul + " Jelly Ssskullsss, and " + $hween10_canpump + " Candy Pumpkinsss.\""; + next; + mes "[Gak]"; + mes ""; + mes "\"You persssonally have brought me " + hween10_collect + " sssweetsss.\""; + next; + mes "[Gak]"; + mes ""; + mes "\"But I ssstill need more! I'm ssstill HUNGRY!\""; + close; + +L_Not_Enough_Sweeties: + mes "[Gak]"; + mes ""; + mes "\"Hey! Don't teassse me; you know very well that you don't have that many sssweetsss.\""; + close; + +} -- cgit v1.2.3-70-g09d2