diff options
Diffstat (limited to 'world/map/npc/annuals/halloween')
-rw-r--r-- | world/map/npc/annuals/halloween/config.txt | 361 | ||||
-rw-r--r-- | world/map/npc/annuals/halloween/debug.txt | 147 | ||||
-rw-r--r-- | world/map/npc/annuals/halloween/doomsday.txt | 743 | ||||
-rw-r--r-- | world/map/npc/annuals/halloween/munro.txt | 50 | ||||
-rw-r--r-- | world/map/npc/annuals/halloween/trick_or_treat.txt | 332 |
5 files changed, 0 insertions, 1633 deletions
diff --git a/world/map/npc/annuals/halloween/config.txt b/world/map/npc/annuals/halloween/config.txt deleted file mode 100644 index ffe9dfbe..00000000 --- a/world/map/npc/annuals/halloween/config.txt +++ /dev/null @@ -1,361 +0,0 @@ -// Halloween Annual -// Authors: alastrim, enchilado, o11c, wushin -// This file initializes global constants, which includes dialog. - -// Event Configuration: -// Generic stuff -// $@halloween_start_day = the first day in October the quest can be done -// $@halloween_year = the year this quest is activated, for event necromancers -// $@halloween_memory_count = Number of masks each NPC remembers -// $@halloween_min_level = Minimum level to go trick-or-treating - -// Global stuff -// $@halloween_big_reward = The main reward randomly given, usually after the counter has reached 7-10 -// $@halloween_sweets = Array with all the sweets to be given as treats -// $@halloween_sweets_num = Size of that array -// $@halloween_mask_IDs = Array with the IDs of all the masks that cover your face + The Scary Axehat -// $@halloween_scare_factors = Array with the basic scare factor of each mask -// 678 Noh Mask 2 -// 679 Demon Mask 4 -// 1221 Skull Mask 4 -// 634 Face Mask 4 -// 615 Pumpkin Helmet 2 -// 639 Crusade Helmet 3 -// 769 Guy Fawkes Mask 2 -// 801 Pinkie Helmet 2 -// 1218 Paper Bag 1 -// 1276 Opera Mask 3 -// 1277 Jester Mask 2 -// 1279 Goblin Mask 4 -// 4027 Yeti Mask 4 - -// Per-NPC stuff -// $@halloween_npc_<name> = constants for @halloween_npc_id, the index into the array -// $@halloween_npc_names$ = Array with all NPC names inside brackets, to be used in the function -// $@halloween_greetings$ = Array with all the NPC initial greetings when you "trick or treat" them -// $@halloween_trick_notscary$ = Array with the less scary menu options -// $@halloween_react_notscary$ = Array with all the reactions to the less scary menu options -// $@halloween_trick_scary$ = Array with scary menu options -// $@halloween_react_scary$ = Array with all the reactions to the scary menu options -// $@halloween_trick_veryscary$ = Array with the most scary menu options -// $@halloween_react_veryscary$ = Array with all the reactions to the very scary menu options - -// In the appropriate NPCs, do something like: -//+ if ($@halloween_time) -//+ goto L_Halloween; -//+ goto L_Main; -//+ -//+L_Halloween: -//+ set @halloween_npc_id, $@halloween_npc_eurni; -//+ callfunc "TrickOrTreat"; -//+ goto L_Main; -//+ -//+L_Main: - -// Variables: -// $@halloween_maskmemory = Sliced Array containing the record of the last masks used to trick or treat each NPC. -// @halloween_npc_id = NPC id, this variable is set when calling this function by an NPC -// HALLOWEENTIME = Permanent variable used to control your progress in the quest. -// The high bits are used to keep track of the NPCs you already tricked while showing your face. -// The low bits are used to keep track of how many times you've gotten treats. -// Currently, the vague plan is 16 for each, but we may need to use this variable for the second part of the quest. -// HALLOWEENYEAR = Keys the player to the year so the annual can be redone. - -// !!! IMPORTANT NOTE: a maximum of 14 NPCs can be used for this quest !!! -// HALLOWEENTIME -// Byte 0 + 1: Karma (65535) -// BIT 16: Big Reward -// BIT 17: Charm Reward -// BIT 18: NPC #13 -// BIT 19: NPC #12 -// BIT 20: NPC #11 -// BIT 21: NPC #10 -// BIT 22: NPC #9 -// BIT 23: NPC #8 -// BIT 24: NPC #7 -// BIT 25: NPC #6 -// BIT 26: NPC #5 -// BIT 27: NPC #4 -// BIT 28: NPC #3 -// BIT 29: NPC #2 -// BIT 30: NPC #1 -// BIT 31: NPC #0 - --|script|#HalloweenConfig|32767 -{ - end; - -OnCommandRestartQuest: - goto L_Main; - -OnInit: - goto L_Main; - -L_Main: - // Halloween Key Identifier Set through Botcheck Debug - if(!($HALLOWEEN_TIME_KEY) || (getarraysize($HALLOWEEN_TIME_KEY) != 6)) - setarray $HALLOWEEN_TIME_KEY, 10,10,11,24,2,gettime(7); - if(($HALLOWEEN_TIME_KEY[0] == 0) || ($HALLOWEEN_TIME_KEY[0] > 12)) - goto L_HalloweenError; - if(($HALLOWEEN_TIME_KEY[1] == 0) || ($HALLOWEEN_TIME_KEY[1] > 12)) - goto L_HalloweenError; - if(($HALLOWEEN_TIME_KEY[2] == 0) || ($HALLOWEEN_TIME_KEY[2] > 12)) - goto L_HalloweenError; - if(($HALLOWEEN_TIME_KEY[3] == 0) || ($HALLOWEEN_TIME_KEY[3] > 31)) - goto L_HalloweenError; - if(($HALLOWEEN_TIME_KEY[4] == 0) || ($HALLOWEEN_TIME_KEY[4] > 31)) - goto L_HalloweenError; - if($HALLOWEEN_TIME_KEY[5] == 0) - goto L_HalloweenError; - - // Event Runs until Reward Period. - // Month Start/End - set $@halloween_start_month, $HALLOWEEN_TIME_KEY[0]; - set $@halloween_reward_start_month, $HALLOWEEN_TIME_KEY[1]; - set $@halloween_end_month, $HALLOWEEN_TIME_KEY[2]; - - // Reward Day Start/End - set $@halloween_reward_start_day, $HALLOWEEN_TIME_KEY[3]; - set $@halloween_reward_end_day, $HALLOWEEN_TIME_KEY[4]; - - // Time Settings - set $@halloween_no_event_time, 0; - set $@halloween_event_time, 1; - set $@halloween_reward_time, 2; - - // How many, maximum is 8 - set $@halloween_memory_count, 8; - // Level to go trick-or-treating - set $@halloween_min_level, 10; - - // Number of trick and treats completed to get charm. - set $@halloween_charm_count, 10; - set $@halloween_got_charm_reward, (1 << 17); - setarray $@halloween_big_reward, 905, 1175; - set $@halloween_got_big_reward, (1 << 16); - setarray $@halloween_sweets, - 534, // OrangeCupcake - 737, // ChocolateCake - 510, // Candy - 513, // Cake - 509, // ChocolateBar - 519, // CherryCake - 736, // WhiteCake - 738, // OrangeCake - 739, // AppleCake - 3006, // TonoriDelight - 3007, // Marshmallow - 3009, // JellySkull - 3010, // CandyPumpkin - 838, // CranberryLollipop - 839, // GrapeLollipop - 840; // OrangeLollipop - set $@halloween_sweets_num, getarraysize($@halloween_sweets); - - setarray $@halloween_mask_IDs, 678, 679, 1221, 634, 615, 639, 769, 801, 1218, 1276, 1277, 1279, 4027; - setarray $@halloween_scare_factors, 2, 4, 4, 4, 2, 3, 2, 2, 1, 3, 2, 4, 4; - - if (getarraysize($@halloween_mask_IDs) != getarraysize($@halloween_scare_factors)) - goto L_HalloweenError; - // temporary counter - set $@n, 0; - - set $@halloween_npc_caretaker, $@n; - set $@halloween_npc_names$[$@n], "[Caretaker]"; - set $@halloween_greetings$[$@n], "\"Alright, come on then. Show me your trick.\""; - set $@halloween_trick_notscary$[$@n], "Trick? You must have misheard me. I've come because the Government needs to build a road through your house."; - set $@halloween_react_notscary$[$@n], "\"And?\""; - set $@halloween_trick_scary$[$@n], "You look pretty deceased to me, old man. Undead must die! Yaah!"; - set $@halloween_react_scary$[$@n], "\"Now listen here, I'm as alive as you - oh. Say, that was a good trick!\""; - set $@halloween_trick_veryscary$[$@n], "Your wife... she's - she's - she's DEAD!"; - set $@halloween_react_veryscary$[$@n], "\"But... I live here! My wife l... is dead here. You can't - oh. I DIDN'T mishear you. You really had me fooled!\""; - - set $@n, $@n + 1; - - set $@halloween_npc_eurni, $@n; - set $@halloween_npc_names$[$@n], "[Eurni the Surgeon]"; - set $@halloween_greetings$[$@n], "\"Oh, right.\""; - set $@halloween_trick_notscary$[$@n], "I paid good money for your services, and when I get home I find that now I'm not a man OR a woman..."; - set $@halloween_react_notscary$[$@n], "\"Heheh, sucks, buddy. But there's always a risk.\""; - set $@halloween_trick_scary$[$@n], "Look out! A scorpion!"; - set $@halloween_react_scary$[$@n], "\"Where? Darn things, I think they're what keep scaring away my customers.\""; - set $@halloween_trick_veryscary$[$@n], "I know about your hobby of performing numerous sex changes on yourself."; - set $@halloween_react_veryscary$[$@n], "\"Shut up! Look, will you hold your tongue if I give you more treats...?\""; - - set $@n, $@n + 1; - - set $@halloween_npc_george, $@n; - set $@halloween_npc_names$[$@n], "[George the Pirate]"; - set $@halloween_greetings$[$@n], "\"Shiver me timbers! What do ye mean?\""; - set $@halloween_trick_notscary$[$@n], "Well... I do a trick, and then... you give me a treat..."; - set $@halloween_react_notscary$[$@n], "\"Arrrrh, I knew what ye meant, to be sure! I were just kidding with ye, pretending to be a crazy old pirate! Arrrrh!\""; - set $@halloween_trick_scary$[$@n], "Your eyepatch is on the wrong eye!"; - set $@halloween_react_scary$[$@n], "\"Arrrrh, so it is! Ta for pointing it out, mate - wait, no it isn't! Harhar, what a good trick!\""; - set $@halloween_trick_veryscary$[$@n], "By the powers, ye're a daft landlubber to be sure, ye barnacle-ridden swab!"; - set $@halloween_react_veryscary$[$@n], "\"Arrrrh, ye scurvy dog! I'm sure my first mate will return with the ship eventually.\""; - - set $@n, $@n + 1; - - set $@halloween_npc_inac, $@n; - set $@halloween_npc_names$[$@n], "[Inac]"; - set $@halloween_greetings$[$@n], "\"Oh, yes?\""; - set $@halloween_trick_notscary$[$@n], "Yes, we monsters moved into the tunnels... and now we're coming out... for revenge!"; - set $@halloween_react_notscary$[$@n], "\"Haha! That's the worse trick I've seen today.\""; - set $@halloween_trick_scary$[$@n], "One of those monsters you mentioned is crawling out of the well!"; - set $@halloween_react_scary$[$@n], "\"He IS? Where!? Aah! Oh. You were just tricking, right? Hahaha, that was good, I really believed you.\""; - set $@halloween_trick_veryscary$[$@n], "Yeah, but it's all fossil water. One day it's gonna dry up!"; - set $@halloween_react_veryscary$[$@n], "\"Fossil water? You mean it's turned to STONE? But you can't drink - oh... you were just tricking, right? You WEREN'T? Aaaah!\""; - - set $@n, $@n + 1; - - set $@halloween_npc_kfahr, $@n; - set $@halloween_npc_names$[$@n], "[Kfahr the Warrior]"; - set $@halloween_greetings$[$@n], "\"Ah, yes!\" He rubs his hands. \"Trick away, then!\""; - set $@halloween_trick_notscary$[$@n], "Meh... I'm only trick-or-treating you to avoid listening to your BORING stories."; - set $@halloween_react_notscary$[$@n], "\"Boring?\" He grins. \"You must be mistaking me for someone else.\""; - set $@halloween_trick_scary$[$@n], "Did you hear the bad news already? They made up a law prohibiting to serve alcoholic drinks! That means no more beer!"; - set $@halloween_react_scary$[$@n], "\"What? But- but- why do they- oh, you tricked me. I was about to really get worried for a moment.\""; - set $@halloween_trick_veryscary$[$@n], "Have you heard? Tulimshar was destroyed by a giant Desert Worm!"; - set $@halloween_react_veryscary$[$@n], "\"What!?\" Kfahr stares. \"And no one called for me? This is appalling! But - what? That was your trick? Hm, nice one. You almost had me fooled!\""; - - set $@n, $@n + 1; - - set $@halloween_npc_nurse, $@n; - set $@halloween_npc_names$[$@n], "[Nurse]"; - set $@halloween_greetings$[$@n], "\"I don't know why I let the Mayor trick me into this... well, go on then.\""; - set $@halloween_trick_notscary$[$@n], "I ate too much Hallowe'en candy, now I'm sick!"; - set $@halloween_react_notscary$[$@n], "\"Well, no one's to blame but yourself, you know. Just make sure you don't eat any more.\""; - set $@halloween_trick_scary$[$@n], "Hurnscald has been struck by plague! You must come and tend to the dying!"; - set $@halloween_react_scary$[$@n], "\"But I don't know how to deal with plague! Oh no! You must get the Doctor! Unless... you were just tricking me! Whew, that's a relief!\""; - set $@halloween_trick_veryscary$[$@n], "The Doctor asked me to tell you that he doesn't want to see you any more."; - set $@halloween_react_veryscary$[$@n], "\"What? But we were getting it on so well. I mean, getting on so well! Oh... that was your trick! Dear me, I believed you!\""; - - set $@n, $@n + 1; - - set $@halloween_npc_pachua, $@n; - set $@halloween_npc_names$[$@n], "[Chief Pachua]"; - set $@halloween_greetings$[$@n], "\"Ah, the strange custom the Government man told me about.\""; - set $@halloween_trick_notscary$[$@n], "Look out! A scorpion!"; - set $@halloween_react_notscary$[$@n], "\"Don't mind him, he won't hurt you. Er... so I give you sweets now, or what?\""; - set $@halloween_trick_scary$[$@n], "Yes, the ritual giving of treats... LOTS of treats... or else!"; - set $@halloween_react_scary$[$@n], "\"Alright, here you go.\""; - set $@halloween_trick_veryscary$[$@n], "Yes, the ritual giving of treats followed by the sacrifice of the treat-giver..."; - set $@halloween_react_veryscary$[$@n], "\"I do like a good sacrifice, but less so if it's me! I'll give you extra sweets if you forget the sacrifice.\""; - - set $@n, $@n + 1; - - set $@halloween_npc_yanis, $@n; - set $@halloween_npc_names$[$@n], "[Yanis]"; - set $@halloween_greetings$[$@n], "\"I am employed by the Tonori Government, make sure you abide the regulations we wrote down for Trick-or-Treaters this year...\""; - set $@halloween_trick_notscary$[$@n], "Of course I will... not!"; - set $@halloween_react_notscary$[$@n], "\"Hm!\""; - set $@halloween_trick_scary$[$@n], "Regulations, smegulations. The Tonori Government can go suck a lollipop for all I care!"; - set $@halloween_react_scary$[$@n], "\"!? How dare you - oh, that was your trick! You did have me worried for a moment...\""; - set $@halloween_trick_veryscary$[$@n], "What regulations?"; - set $@halloween_react_veryscary$[$@n], "\"You mean you haven't even READ - I don't believe - this is ghastly - I - oh... that was your trick... gosh, I believed you for a minute! I thought you really hadn't read them!\""; - - set $@n, $@n + 1; - - set $@halloween_npc_vincent, $@n; - set $@halloween_npc_names$[$@n], "[Vincent]"; - set $@halloween_greetings$[$@n], "\"Ooh, okay! Trick away!\""; - set $@halloween_trick_notscary$[$@n], "Look out! A scorpion!"; - set $@halloween_react_notscary$[$@n], "\"They're everywhere in this desert! Don't worry about them.\""; - set $@halloween_trick_scary$[$@n], "Hey, that action figure you're building just CAME TO LIFE!"; - set $@halloween_react_scary$[$@n], "\"Really? Cool! Where? What? You were tricking me? WAAAH!\""; - set $@halloween_trick_veryscary$[$@n], "Wow, this is a neat action figure! Haha, check out its moves! Oops! Never mind, I'm sure it'll glue back on."; - set $@halloween_react_veryscary$[$@n], "\"My Bug Leg action figure! You broke it!\""; - - set $@n, $@n + 1; - - set $@halloween_npc_weellos, $@n; - set $@halloween_npc_names$[$@n], "[Weellos]"; - set $@halloween_greetings$[$@n], "\"Trick me, then!\""; - set $@halloween_trick_notscary$[$@n], "Look out! A scorpion!"; - set $@halloween_react_notscary$[$@n], "\"Pesky things, I know, but they're everywhere around here...\""; - set $@halloween_trick_scary$[$@n], "Actually, it's a fake. It was built just ten years ago."; - set $@halloween_react_scary$[$@n], "\"No! But I've read all the accounts... oh, haha! Very funny!\""; - set $@halloween_trick_veryscary$[$@n], "They say the earthquake ruined the foundations of this building, and that it's going to fall down."; - set $@halloween_react_veryscary$[$@n], "\"B-but it's one of the oldest buildings around! And... wait, I just remembered that it was designed to be earthquake-proof. You were tricking me!\""; - - set $@n, $@n + 1; - - set $@halloween_npc_zack, $@n; - set $@halloween_npc_names$[$@n], "[Zack]"; - set $@halloween_greetings$[$@n], "\"I thought no one would find me down here, but I'm glad I was wrong! Let's see your trick, then.\""; - set $@halloween_trick_notscary$[$@n], "You think this is something to do with Hallowe'en? Hands up!"; - set $@halloween_react_notscary$[$@n], "\"Heh... That was ok.\""; - set $@halloween_trick_scary$[$@n], "And now that I've found you, you die!"; - set $@halloween_react_scary$[$@n], "\"Aah! What did I do? Oh - wait - I see! That was a good one!\""; - set $@halloween_trick_veryscary$[$@n], "Yes, I have found you. After all these years."; - set $@halloween_react_veryscary$[$@n], "\"Uncle Henry? But how, I covered my tracks so well! I never told anyone that - wait... that was your trick! You had me worried for a minute!\""; - - set $@n, $@n + 1; - - set $@halloween_npc_kimarr, $@n; - set $@halloween_npc_names$[$@n], "[Kimarr]"; - set $@halloween_greetings$[$@n], "\"Many have tried to scare me, all have failed. Try your best, but the frozen wastes contain all manner of horrors.\""; - set $@halloween_trick_notscary$[$@n], "Look out Yetis!"; - set $@halloween_react_notscary$[$@n], "\"You will have to do better then that.\""; - set $@halloween_trick_scary$[$@n], "Hrmm Is that your wife calling you?"; - set $@halloween_react_scary$[$@n], "\"What? You haven't se... wait a second. Ok that was good.\""; - set $@halloween_trick_veryscary$[$@n], "The Kaizeian government declared fluffies an endangered species."; - set $@halloween_react_veryscary$[$@n], "\"NOooOOOooo!!! The Hunt!!! ... wait a second, you city folk are slick.\""; - - set $@n, $@n + 1; - - set $@halloween_npc_nikolai, $@n; - set $@halloween_npc_names$[$@n], "[Nikolai]"; - set $@halloween_greetings$[$@n], "\"Let us see if you are scarier then Kfahr's Fairy Tales.\""; - set $@halloween_trick_notscary$[$@n], "Your going over their to the store."; - set $@halloween_react_notscary$[$@n], "\"*You're* *there* Ugh, thats more annoying then scary.\""; - set $@halloween_trick_scary$[$@n], "Whats White, Blue and slimey? I don't know either but it's right behind you."; - set $@halloween_react_scary$[$@n], "\"More Slimes, Oh no the books again. O you tricked me, good one.\""; - set $@halloween_trick_veryscary$[$@n], "I hope you don't mind I used some of this kindling you have on the shelves to start a fire."; - set $@halloween_react_veryscary$[$@n], "\"AHHHHH!!!! You burned our books!!! *GAH* ... *Eye Twitch*\""; - - set $@n, $@n + 1; - - set $@halloween_npc_vellamo, $@n; - set $@halloween_npc_names$[$@n], "[Vellamo]"; - set $@halloween_greetings$[$@n], "\"Ahh yes, more candy related ritual.\""; - set $@halloween_trick_notscary$[$@n], "Candy? No, I want Parsley."; - set $@halloween_react_notscary$[$@n], "\"Parsley? is this some kind of monster? I'm not getting this scare at all\""; - set $@halloween_trick_scary$[$@n], "Chief Warrick says he needs the candy inventory by end of day."; - set $@halloween_react_scary$[$@n], "\"Ahh, no! I forgot to put a cover sheet on my Candy Production and Storage report.\""; - set $@halloween_trick_veryscary$[$@n], "I'm sorry, but your doctor says your diabetic."; - set $@halloween_react_veryscary$[$@n], "\"Darkest day of my life, blacker then the darkest chocolate.\""; - - set $@halloween_num_npcs, $@n + 1; - - set $@n, 0; - - // Age to go trick-or-treating (1 week before the start) - if ((gettime(6) >= $@halloween_start_month) || (gettime(6) <= $@halloween_end_month)) - set $@halloween_min_age, ((gettime(5) + 7)*86400); - if (gettime(6) == $@halloween_reward_start_month) - set $@halloween_min_age, ((gettime(5) + 38)*86400); - - set $@start_month, $@halloween_start_month; - set $@end_month, $@halloween_end_month; - set $@start_day, 1; - set $@end_day, $@halloween_reward_end_day; - set $@reward_start_month, $@halloween_reward_start_month; - set $@reward_start_day, $@halloween_reward_start_day; - - callfunc "GetEventTime"; - set $@halloween_time, $@event_time; - - if($@halloween_time == 0 && $HALLOWEEN_TIME_KEY[5] < gettime(7)) - setarray $HALLOWEEN_TIME_KEY, $HALLOWEEN_TIME_KEY[0],$HALLOWEEN_TIME_KEY[1],$HALLOWEEN_TIME_KEY[2],$HALLOWEEN_TIME_KEY[3],$HALLOWEEN_TIME_KEY[4],gettime(7); - goto L_Return; - -L_Return: - callfunc "SpawnMunro"; - callfunc "ReplaceTrees"; - end; - -L_HalloweenError: - debugmes "Halloween is Dead Jim."; - mapexit; -} diff --git a/world/map/npc/annuals/halloween/debug.txt b/world/map/npc/annuals/halloween/debug.txt deleted file mode 100644 index b9ca8ac3..00000000 --- a/world/map/npc/annuals/halloween/debug.txt +++ /dev/null @@ -1,147 +0,0 @@ -// Halloween Debug -// Author: Wushin - -function|script|HalloweenDebug -{ - if(debug) - goto L_Debug; - goto L_Live; - -L_Live: - menu - "Debug Time", L_DebugTime, - "Set Old Event Flag.", L_LastReset, - "Halloween Time Key Change.", L_HalloweenTimeKey, - "Reset NPC's mask memory", L_ResetMask, - "Summon Tormenta", L_Tormenta, - "Nothing.", L_Close; - -L_Debug: - menu - "Debug Time", L_DebugTime, - "Set Old Event Flag.", L_LastReset, - "Halloween Time Key Change.", L_HalloweenTimeKey, - "Quest State", L_QuestState, - "Set NPC trick or treat flag", L_SetTrickOrTreats, - "Reset my quest state", L_ResetMe, - "Reset NPC's mask memory", L_ResetMask, - "Summon Tormenta", L_Tormenta, - "Nothing.", L_Close; - -L_DebugTime: - mes "--Sever--"; - mes "Event State: " + $@halloween_time; - mes "Event Start" + $HALLOWEEN_TIME_KEY[0] + "/1"; - mes "Reward Start: " + $HALLOWEEN_TIME_KEY[1] + "/" + $HALLOWEEN_TIME_KEY[3]; - mes "Event End: " + $HALLOWEEN_TIME_KEY[2] + "/" + $HALLOWEEN_TIME_KEY[4]; - mes "Event Time Key (year (CCYY)): " + $HALLOWEEN_TIME_KEY[5]; - next; - goto L_Debug; - -L_LastReset: - set HALLOWEENTIME, 255; - set HALLOWEENYEAR, 2012; - goto L_Debug; - -L_HalloweenTimeKey: - mes "Halloween Time Key Change."; - mes "Start Month?"; - input @halloween_time_key_smonth; - if((@halloween_time_key_smonth == 0) || (@halloween_time_key_smonth > 12)) - goto L_HalloweenError; - mes "Reward Start Month?"; - input @halloween_time_key_srmonth; - if((@halloween_time_key_srmonth == 0) || (@halloween_time_key_srmonth > 12)) - goto L_HalloweenError; - mes "End Month?"; - input @halloween_time_key_emonth; - if((@halloween_time_key_emonth == 0) || (@halloween_time_key_emonth > 12)) - goto L_HalloweenError; - mes "Reward Start Day?"; - input @halloween_time_key_rsday; - if((@halloween_time_key_rsday == 0) || (@halloween_time_key_rsday > 31)) - goto L_HalloweenError; - mes "Reward End Day?"; - input @halloween_time_key_reday; - if((@halloween_time_key_reday == 0) || (@halloween_time_key_reday > 31)) - goto L_HalloweenError; - mes "Time Key (CCYY) "; - input @halloween_time_key_year; - goto L_SetNewKey; - -L_HalloweenError: - mes "Incorrect Entry. Try again."; - next; - goto L_Debug; - -L_SetNewKey: - setarray $HALLOWEEN_TIME_KEY, @halloween_time_key_smonth, @halloween_time_key_srmonth, @halloween_time_key_emonth, @halloween_time_key_rsday, @halloween_time_key_reday, @halloween_time_key_year; - donpcevent "#HalloweenConfig::OnCommandRestartQuest"; - goto L_Debug; - -L_QuestState: - mes "Karma: " + (HALLOWEENTIME & 65535); - set @big_reward_status$, " No."; - if (HALLOWEENTIME & $@halloween_got_big_reward) - set @big_reward_status$, " Yes."; - mes "Big Reward: " + @big_reward_status$; - set @charm_reward_status$, " No."; - if (HALLOWEENTIME & $@halloween_got_charm_reward) - set @charm_reward_status$, " Yes."; - mes "Charm Reward:" + @charm_reward_status$; - set @npc_check_loop, 0; - goto L_NpcCheckLoop; - -L_NpcCheckLoop: - set @display_mes$, "NPC ID " + @npc_check_loop + ":" + $@halloween_npc_names$[@npc_check_loop]; - set @npc_status$, " Needed"; - if (HALLOWEENTIME & (1 << (31 - @npc_check_loop))) - set @npc_status$, " Complete"; - set @display_mes$, @display_mes$ + @npc_status$; - mes @display_mes$; - set @display_mes$, ""; - goto L_NpcCheckInc; - -L_NpcCheckInc: - set @npc_check_loop, (@npc_check_loop + 1); - if (@npc_check_loop >= getarraysize($@halloween_npc_names$)) - goto L_TrickOrTreatCount; - goto L_NpcCheckLoop; - -L_TrickOrTreatCount: - callfunc "TrickOrTreatTally"; - mes @npc_tally + " out of 14"; - next; - goto L_Debug; - -L_SetTrickOrTreats: - mes "Enter NPC to set"; - input @halloween_npc_id; - set HALLOWEENTIME, HALLOWEENTIME | (1 << (31 - @halloween_npc_id)); - goto L_Debug; - -L_ResetMe: - set HALLOWEENTIME, 0; - set HALLOWEENYEAR, $HALLOWEEN_TIME_KEY[5]; - goto L_Debug; - -L_ResetMask: - mes "Enter NPC to reset:"; - input @halloween_npc_id; - set $@halloween_maskmemory[8 * @halloween_npc_id], 0; - goto L_Debug; - -L_Tormenta: - donpcevent "Munro::OnTormenta"; - goto L_Close; - -L_Close: - set @tmp, 0; - set @mask, 0; - set @karma, 0; - set @loop, 0; - set @menu, 0; - set @halloween_npc_id, 0; - close2; - return; -} diff --git a/world/map/npc/annuals/halloween/doomsday.txt b/world/map/npc/annuals/halloween/doomsday.txt deleted file mode 100644 index 1967f532..00000000 --- a/world/map/npc/annuals/halloween/doomsday.txt +++ /dev/null @@ -1,743 +0,0 @@ -// Evol script -// Year: 2020 -// -// Controls Doomsday Event - Vanilla Jande's Rescue (Halloween 2020) -// -// Operates: 057-1 070-1 003-1 -// See also: npc/annuals/halloween/munro.txt -// Variables: -// $@HW2020_SLAIN, array -// $@HW2020_TIMER, array -// $@HW2020_HOCUS, integer -// (0 - Not yet, 1 - Cutscene, 2 - Ambushed, 3 - Completing, 4 - Completed) -// $@HW2020_CNT, temporary int -// $@JACKOID, temporary int -// $@UnderMc, temporary int -// @TulimMc, temporary int -// @JACKOID, temporary int -// @mobID, temporary int -// @mobAM, temporary int - -//////////////////////////////////////////////// -// JackO Central Processing Core ($@JACKOID) -function|script|HocusJackO -{ - if (!$@HW2020_SLAIN[$@JACKOID]) - goto L_Return; - - if ($@HW2020_TIMER[$@JACKOID] < gettimetick(2)) - goto L_Expired; - - // Count the JackO - set $@HW2020_CNT, $@HW2020_CNT+1; - set $@JACKOID, 0; - return; - -// Time expired! -L_Expired: - set $@HW2020_SLAIN[$@JACKOID], 0; - // Re-enable the NPC - if ($@JACKOID == 0) - enablenpc "JackO#Tybalt"; - if ($@JACKOID == 1) - enablenpc "JackO#Nicolas"; - if ($@JACKOID == 2) - enablenpc "JackO#Elanore"; - if ($@JACKOID == 3) - enablenpc "JackO#Aisha"; - if ($@JACKOID == 4) - enablenpc "JackO#Nina"; - if ($@JACKOID == 5) - enablenpc "JackO#Ian"; - if ($@JACKOID == 6) - enablenpc "JackO#Luca"; - if ($@JACKOID == 7) - enablenpc "JackO#Ekinu"; - if ($@JACKOID == 8) - enablenpc "JackO#Ryan"; - if ($@JACKOID == 9) - enablenpc "JackO#Neko"; - if ($@JACKOID == 10) - enablenpc "JackO#Ishi"; - if ($@JACKOID == 11) - enablenpc "JackO#Sandra"; - if ($@JACKOID == 12) - enablenpc "JackO#Vincent"; - set $@JACKOID, 0; - return; - -L_Return: - set $@JACKOID, 0; - return; -} - -//////////////////////////////////////////////// -// Monster Script Control --|script|HW2020 Mobs|32767 -{ - close; - -OnInit: - goto L_Main; - -// They'll respawn at midday. -OnClock1200: - goto L_Main; - -L_Main: - // Do not waste RAM/CPU if we don't need it - if ($DOOMSDAY != 3 || !$@halloween_time) - end; - if ($DOOMSDAY_TJANDE || !$DOOMSDAY_TWARP) - end; - - ///////////////////////////////////////////////////////////////////////// - // Underworld Controller - - // TYPE 1141, SASQUATCH - set $@UnderMc, mobcount("070-1", "HW2020 Mobs::OnDeath1")+1; - if ($@UnderMc < 20) - areamonster "070-1", 20, 20, 75, 100, "", 1141, 20-$@UnderMc, "HW2020 Mobs::OnDeath1"; - - set $@UnderMc, mobcount("070-1", "HW2020 Mobs::OnDeath2")+1; - if ($@UnderMc < 20) - areamonster "070-1", 77, 20, 127, 100, "", 1141, 20-$@UnderMc, "HW2020 Mobs::OnDeath2"; - - set $@UnderMc, mobcount("070-1", "HW2020 Mobs::OnDeath3")+1; - if ($@UnderMc < 20) - areamonster "070-1", 130, 20, 170, 100, "", 1141, 20-$@UnderMc, "HW2020 Mobs::OnDeath3"; - - // TYPE 1140, TENGU - set $@UnderMc, mobcount("070-1", "HW2020 Mobs::OnDeath4")+1; - if ($@UnderMc < 20) - areamonster "070-1", 20, 20, 75, 100, "", 1140, 20-$@UnderMc, "HW2020 Mobs::OnDeath4"; - - set $@UnderMc, mobcount("070-1", "HW2020 Mobs::OnDeath5")+1; - if ($@UnderMc < 20) - areamonster "070-1", 77, 20, 127, 100, "", 1140, 20-$@UnderMc, "HW2020 Mobs::OnDeath5"; - - set $@UnderMc, mobcount("070-1", "HW2020 Mobs::OnDeath6")+1; - if ($@UnderMc < 20) - areamonster "070-1", 130, 20, 170, 100, "", 1140, 20-$@UnderMc, "HW2020 Mobs::OnDeath6"; - - // TYPE 1143, SLAYER - set $@UnderMc, mobcount("070-1", "HW2020 Mobs::OnDeath7")+1; - if ($@UnderMc < 20) - areamonster "070-1", 20, 20, 75, 100, "", 1143, 20-$@UnderMc, "HW2020 Mobs::OnDeath7"; - - set $@UnderMc, mobcount("070-1", "HW2020 Mobs::OnDeath8")+1; - if ($@UnderMc < 20) - areamonster "070-1", 77, 20, 127, 100, "", 1143, 20-$@UnderMc, "HW2020 Mobs::OnDeath8"; - - set $@UnderMc, mobcount("070-1", "HW2020 Mobs::OnDeath9")+1; - if ($@UnderMc < 20) - areamonster "070-1", 130, 20, 170, 100, "", 1143, 20-$@UnderMc, "HW2020 Mobs::OnDeath9"; - - // GUARDIANS - set $@UnderMc, mobcount("070-1", "HW2020 Mobs::OnDeath10")+1; - if ($@UnderMc < 3) - areamonster "070-1", 132, 30, 140, 36, "", 1147, 3-$@UnderMc, "HW2020 Mobs::OnDeath10"; - - set $@UnderMc, mobcount("070-1", "HW2020 Mobs::OnDeath11")+1; - if ($@UnderMc < 1) - areamonster "070-1", 134, 32, 135, 34, "", 1146, 1, "HW2020 Mobs::OnDeath10"; - - ///////////////////////////////////////////////////////////////////////// - // Tulimshar Controller - - // Done - set $@UnderMc, 0; - end; - -// Labels -OnDeath0: - end; -OnDeath1: - end; -OnDeath2: - end; -OnDeath3: - end; -OnDeath4: - end; -OnDeath5: - end; -OnDeath6: - end; -OnDeath7: - end; -OnDeath8: - end; -OnDeath9: - end; -OnDeath10: - end; -OnDeath11: - end; -OnDeath12: - end; - -OnTimer30000: - // Check every JackO - set $@HW2020_CNT, 0; - set $@JACKOID, 0; callfunc "HocusJackO"; - set $@JACKOID, 1; callfunc "HocusJackO"; - set $@JACKOID, 2; callfunc "HocusJackO"; - set $@JACKOID, 3; callfunc "HocusJackO"; - set $@JACKOID, 4; callfunc "HocusJackO"; - set $@JACKOID, 5; callfunc "HocusJackO"; - set $@JACKOID, 6; callfunc "HocusJackO"; - set $@JACKOID, 7; callfunc "HocusJackO"; - set $@JACKOID, 8; callfunc "HocusJackO"; - set $@JACKOID, 9; callfunc "HocusJackO"; - set $@JACKOID, 10; callfunc "HocusJackO"; - set $@JACKOID, 11; callfunc "HocusJackO"; - set $@JACKOID, 12; callfunc "HocusJackO"; - - // Check if portal is to be active - if ($@HW2020_CNT >= 13) - goto L_Active; - - // Janitor - set $@HW2020_CNT, 0; - initnpctimer; - end; - -L_Active: - mapannounce "003-1", "##1There is a loud sound coming from the Bazar.##0" , 0; - enablenpc "#HW2020Bazar"; - stopnpctimer; - end; - -// Misc functions -OnStopThere: - if (getx() > 66 || gety() > 62) - warp "003-1", 44, 61; - sendcollision "003-1", 1, 42, 62, 46, 64; - end; - -OnReward: - set $@HW2020_HOCUS, 4; - mes "[Jande]"; - mes "Jande was rescued. Numa will take care of him until he recovers."; - mes "He struggled for words, but the time he spent there did a number on him."; - mes ""; - mes "What Jande found out? Where is Zax De'Kagen?"; - next; - mes ".:: DOOMSDAY ACT 5: THE FINAL BATTLE ::."; - mes "---- ----"; - mes "INTERLUDE III: RESCUING JANDE"; - mes ""; - mes "Continues in ##BOctober 24th, 17:30 UTC##b"; - mes "##1The Final Snapshot will happen at October 31st.##0"; - next; - // Reward - set @rand, rand(7); - if (@rand == 0) - getitem "Eyepatch", 1; // Classic from HW and Christmas (10% chance) - if (@rand == 1) - getitem "MoubooHead", 1; // Replaced from: Circlet - if (@rand == 2) - getitem "Goggles", 1; - if (@rand == 3) - getitem "LeatherGoggles", 1; - if (@rand == 4) - getitem "SailorHat", 1; // Replaced from: Pirate Hat (Rarity) - if (@rand == 5) - getitem "SkullMask", 1; - if (@rand == 6) - getitem "FaceMask", 1; // Actually Christmas - warp "009-1", 52, 40; - message strcharinfo(0), "Numa : Thanks for helping. I know it is not much, but here is a reward for you."; - close; - -} - - -//////////////////////////////////////////////// -// Return gate -003-1,142,18,0|script|To Underworld|400,1,0 -{ - end; -OnTouch: - if ($DOOMSDAY != 3) end; - if ($DOOMSDAY_TJANDE == 1) end; - if (!$@halloween_time) end; - - warp "070-1", 134, 30; - close; - -OnInit: - if ($DOOMSDAY != 3) - disablenpc "To Underworld"; - end; -} - - -//////////////////////////////////////////////// -003-1,44,64,0|script|#HW2020ActionLess|400,3,0 -{ - end; -OnTouch: - if ($@HW2020_HOCUS == 2 || $@HW2020_HOCUS == 3) - warp "070-1", 0, 0; - end; -} - -003-1,44,40,0|script|#HW2020Bazar|424,0,0 -{ - close; - -OnTouch: - if ($@HW2020_HOCUS == 0) - goto L_Ambush; - if ($@HW2020_HOCUS == 1) - end; - if ($@HW2020_HOCUS == 2) - goto L_Check; - if ($@HW2020_HOCUS == 3) - end; - // GM Special Menu - if (GM < G_GM) - warp "009-1", 52, 40; - if (GM < G_GM) - end; - goto L_GMMenu; - -// GM Menu -L_GMMenu: - mes "This event is already over."; - mes "However, you are a Game Master."; - mes "Do you want to allow the battle to happen again?"; - next; - menu - "No, I was trying to get to Hurns", L_GMNo, - "YES, BEGIN THE AMBUSH", L_GMYes, - "No, it was an accident.", L_GMCancel; - -L_GMYes: - set $@HW2020_HOCUS, 0; - gmlog strcharinfo(0) + " has reset Halloween 2020 Battle."; - mes "* BEEEEEEEP *"; - mes "##9(Talk to portal again to ambush)##0"; - close; - -L_GMNo: - warp "009-1", 52, 40; - close; - -L_GMCancel: - close; - -// Main Event -L_Ambush: - set $@HW2020_HOCUS, 1; - mapannounce "003-1", "What, did you thought it would be so easy?" , 0; - addnpctimer 3000, "#HW2020Bazar::OnAmbush1"; - end; - -OnAmbush1: - mapannounce "003-1", "Hahaha! I am the self-proclaimed sovereign of the underworld..." , 0; - addnpctimer 3000, "#HW2020Bazar::OnAmbush2"; - end; - -OnAmbush2: - mapannounce "003-1", "...THE LOST! Return to where you come from!!" , 0; - // Boss and his shrooms - monster "003-1", 44, 40, "", 1073, 1, "HW2020 Mobs::OnDeath1"; - areamonster "003-1", 20, 20, 60, 60, "", 1106, 12, "HW2020 Mobs::OnDeath2"; - // Collection of nearly every monster you saw thus far :> - areamonster "003-1", 20, 25, 60, 40, "", 1096, 8, "HW2020 Mobs::OnDeath3"; - areamonster "003-1", 20, 25, 60, 40, "", 1036, 6, "HW2020 Mobs::OnDeath4"; - areamonster "003-1", 20, 20, 60, 35, "", 1103, 6, "HW2020 Mobs::OnDeath5"; - areamonster "003-1", 20, 20, 60, 35, "", 1045, 4, "HW2020 Mobs::OnDeath6"; - areamonster "003-1", 20, 20, 60, 30, "", 1022, 2, "HW2020 Mobs::OnDeath7"; - areamonster "003-1", 20, 20, 60, 30, "", 1075, 2, "HW2020 Mobs::OnDeath8"; - areamonster "003-1", 20, 20, 60, 40, "", 1074, 2, "HW2020 Mobs::OnDeath9"; - areamonster "003-1", 20, 20, 60, 40, "", 1124, 2, "HW2020 Mobs::OnDeath10"; - set $@HW2020_HOCUS, 2; - areatimer 0, "003-1", 18, 18, 150, 100, 10, "HW2020 Mobs::OnStopThere"; - initnpctimer; - end; - -L_Check: - set @TulimMc, mobcount("003-1", "HW2020 Mobs::OnDeath1")+1; - if (@TulimMc) - goto L_Reaper; - - set @TulimMc, @TulimMc+mobcount("003-1", "HW2020 Mobs::OnDeath2")+1; - set @TulimMc, @TulimMc+mobcount("003-1", "HW2020 Mobs::OnDeath3")+1; - set @TulimMc, @TulimMc+mobcount("003-1", "HW2020 Mobs::OnDeath4")+1; - set @TulimMc, @TulimMc+mobcount("003-1", "HW2020 Mobs::OnDeath5")+1; - set @TulimMc, @TulimMc+mobcount("003-1", "HW2020 Mobs::OnDeath6")+1; - set @TulimMc, @TulimMc+mobcount("003-1", "HW2020 Mobs::OnDeath7")+1; - set @TulimMc, @TulimMc+mobcount("003-1", "HW2020 Mobs::OnDeath8")+1; - set @TulimMc, @TulimMc+mobcount("003-1", "HW2020 Mobs::OnDeath9")+1; - set @TulimMc, @TulimMc+mobcount("003-1", "HW2020 Mobs::OnDeath10")+1; - - if (@TulimMc) - goto L_NotReady; - - goto L_Finish; - -L_Reaper: - message strcharinfo(0), "The Lost : Hahaha! Don't you think I can't see you!"; - set @TulimMc, 0; - end; - -L_NotReady: - message strcharinfo(0), strcharinfo(0) + " : I can still count "+@TulimMc+" monsters which need to be defeated first."; - set @TulimMc, 0; - end; - -L_Finish: - set $@HW2020_HOCUS, 3; - announce "Doomsday : Jande has been rescued from the Underworld." , 0; - mapannounce "003-1", "The Lost : To be defeated... You should all get lost here forever..." , 0; - areatimer 0, "003-1", 18, 18, 66, 62, 2000, "HW2020 Mobs::OnReward"; - stopnpctimer; - end; - -OnInit: - disablenpc "#HW2020Bazar"; - end; - -// Players defeated? :( -OnTimer5000: - if (getmapusers("003-1") < 1) - goto L_Janitor; - initnpctimer; - end; - -L_Janitor: - killmonster "003-1", "All"; - set $@HW2020_HOCUS, 0; - cleararray $@HW2020_SLAIN, 0, 20; - cleararray $@HW2020_TIMER, 0, 20; - enablenpc "JackO#Tybalt"; - enablenpc "JackO#Nicolas"; - enablenpc "JackO#Elanore"; - enablenpc "JackO#Aisha"; - enablenpc "JackO#Nina"; - enablenpc "JackO#Ian"; - enablenpc "JackO#Luca"; - enablenpc "JackO#Ekinu"; - enablenpc "JackO#Ryan"; - enablenpc "JackO#Neko"; - enablenpc "JackO#Ishi"; - enablenpc "JackO#Sandra"; - enablenpc "JackO#Vincent"; - disablenpc strnpcinfo(0); - stopnpctimer; - end; -} - -//////////////////////////////////////////////// -// Hocus Campaign Main Function -// HocusCampaign( @JACKOID ) -// Use getmap(), getx() and gety() for spawn centering -// OnBegin: -// $@HW2020_SLAIN[ JACKOID ] = False -// $@HW2020_TIMER[ JACKOID ] = gettimetick(2) -// Have HW2020 Mobs timer controlling all of them (runs every minute for expire) -// OnFinish: -// $@HW2020_SLAIN[ JACKOID ] = True -// Timer NOT updated!! -function|script|HocusCampaign -{ - if (@JACKOID < 1) - goto L_Return; - - set @JACKOID, @JACKOID-1; - - if ($@HW2020_TIMER[@JACKOID] > gettimetick(2)) - goto L_Check; - - mes "[Jack O]"; - mes "Hohoho... I am the JackO who curses this lost soul."; - mes "Do you want to free this person? Defeat meeeeee...."; - next; - mes "[Jack O]"; - mes "Hohoho... Prove your worth, defeat meeeeee...."; - mes "Slay all my minions, can you prove yourself to meeeeee....?"; - next; - mes "##3.:: Mission Goals ::.##0"; - mes "1. Defeat all monsters spawned by JackO"; - mes "2. Talk to JackO after this to lift the curse"; - mes "3. Once all 13 NPCs curse is lifted, go to ?????"; - mes ""; - mes "##1Time Limit: 30 minutes since first JackO monster spawn."; - next; - menu - "Bring it on!", L_Begin, - "Not now!", L_Abort; - -L_Begin: - if ($@HW2020_TIMER[@JACKOID] > gettimetick(2)) - goto L_Return; - - // Assign timer, set JackO to ACTIVE - set $@HW2020_SLAIN[@JACKOID], 0; - set $@HW2020_TIMER[@JACKOID], gettimetick(2)+1800; - - // Define mob id - if (@JACKOID % 8 == 0) - set @mobID, 1096; // Soul Snake - if (@JACKOID % 8 == 1) - set @mobID, 1036; // Zombie - if (@JACKOID % 8 == 2) - set @mobID, 1103; // Witch Guard - if (@JACKOID % 8 == 3) - set @mobID, 1045; // Fallen - if (@JACKOID % 8 == 4) - set @mobID, 1022; // JackO - if (@JACKOID % 8 == 5) - set @mobID, 1075; // Stalker - if (@JACKOID % 8 == 6) - set @mobID, 1074; // Red Bone - if (@JACKOID % 8 == 7) - set @mobID, 1124; // Wight - - // Define mob amount - set @mobAM, 8; // Default - if (@JACKOID % 8 == 0) - set @mobAM, 12; // Soul Snake must be more - if (@JACKOID % 8 >= 4) - set @mobAM, 6; // Stalker, JackO, Red and Wigh must be less - - // Spawn the Monsters - areamonster "003-1", getx()-10, gety()-10, getx()+10, gety()+10, "", @mobID, @mobAM, "HW2020 Mobs::OnDeath"+@JACKOID; - - // Announce - mapannounce "003-1", "JackO : Hohoho... You cannot defeat meeeee!" , 0; - - // Clear temporary variables - set @mobID, 0; - set @mobAM, 0; - close2; - return; - -L_Abort: - close2; - return; - -L_Check: - // Count Monsters - set @TulimMc, mobcount("003-1", "HW2020 Mobs::OnDeath"+@JACKOID)+1; - if (@TulimMc) - goto L_Information; - - // Disable JackO here, the script will catch that - set $@HW2020_SLAIN[@JACKOID], 1; - - mes "[JackO]"; - mes "Hohoho... We'll meet againnnnnnnn!"; - donpcevent "HW2020 Mobs::OnTimer30000"; - close2; - return; - -L_Information: - message strcharinfo(0), "JackO : Hohoho... Still "+@TulimMc+" monsters alive... Defeat meeeeee.....!"; - set @TulimMc, 0; - return; - -L_Return: - return; - -} - -//////////////////////////////////////////////// -// JackOs (13 JackOs) -003-1,26,73,0|script|JackO#Tybalt|133 -{ - callfunc "PCtoNPCRange"; - if(@npc_check) end; - set @JACKOID, 1; - callfunc "HocusCampaign"; - if ($@HW2020_SLAIN[@JACKOID]) - disablenpc strnpcinfo(0); - set @JACKOID, 0; - close; -} - -003-1,101,31,0|script|JackO#Nicolas|133 -{ - callfunc "PCtoNPCRange"; - if(@npc_check) end; - set @JACKOID, 2; - callfunc "HocusCampaign"; - if ($@HW2020_SLAIN[@JACKOID]) - disablenpc strnpcinfo(0); - set @JACKOID, 0; - close; -} - -003-1,38,66,0|script|JackO#Elanore|133 -{ - callfunc "PCtoNPCRange"; - if(@npc_check) end; - set @JACKOID, 3; - callfunc "HocusCampaign"; - if ($@HW2020_SLAIN[@JACKOID]) - disablenpc strnpcinfo(0); - set @JACKOID, 0; - close; -} - -003-1,56,70,0|script|JackO#Aisha|133 -{ - callfunc "PCtoNPCRange"; - if(@npc_check) end; - set @JACKOID, 4; - callfunc "HocusCampaign"; - if ($@HW2020_SLAIN[@JACKOID]) - disablenpc strnpcinfo(0); - set @JACKOID, 0; - close; -} - -003-1,119,33,0|script|JackO#Nina|133 -{ - callfunc "PCtoNPCRange"; - if(@npc_check) end; - set @JACKOID, 5; - callfunc "HocusCampaign"; - if ($@HW2020_SLAIN[@JACKOID]) - disablenpc strnpcinfo(0); - set @JACKOID, 0; - close; -} - -003-1,32,30,0|script|JackO#Ian|133 -{ - callfunc "PCtoNPCRange"; - if(@npc_check) end; - set @JACKOID, 6; - callfunc "HocusCampaign"; - if ($@HW2020_SLAIN[@JACKOID]) - disablenpc strnpcinfo(0); - set @JACKOID, 0; - close; -} - -003-1,113,43,0|script|JackO#Luca|133 -{ - callfunc "PCtoNPCRange"; - if(@npc_check) end; - set @JACKOID, 7; - callfunc "HocusCampaign"; - if ($@HW2020_SLAIN[@JACKOID]) - disablenpc strnpcinfo(0); - set @JACKOID, 0; - close; -} - -003-1,47,79,0|script|JackO#Ekinu|133 -{ - callfunc "PCtoNPCRange"; - if(@npc_check) end; - set @JACKOID, 8; - callfunc "HocusCampaign"; - if ($@HW2020_SLAIN[@JACKOID]) - disablenpc strnpcinfo(0); - set @JACKOID, 0; - close; -} - -003-1,38,79,0|script|JackO#Ryan|133 -{ - callfunc "PCtoNPCRange"; - if(@npc_check) end; - set @JACKOID, 9; - callfunc "HocusCampaign"; - if ($@HW2020_SLAIN[@JACKOID]) - disablenpc strnpcinfo(0); - set @JACKOID, 0; - close; -} - -003-1,53,45,0|script|JackO#Neko|133 -{ - callfunc "PCtoNPCRange"; - if(@npc_check) end; - set @JACKOID, 10; - callfunc "HocusCampaign"; - if ($@HW2020_SLAIN[@JACKOID]) - disablenpc strnpcinfo(0); - set @JACKOID, 0; - close; -} - -003-1,54,51,0|script|JackO#Ishi|133 -{ - callfunc "PCtoNPCRange"; - if(@npc_check) end; - set @JACKOID, 11; - callfunc "HocusCampaign"; - if ($@HW2020_SLAIN[@JACKOID]) - disablenpc strnpcinfo(0); - set @JACKOID, 0; - close; -} - -003-1,71,61,0|script|JackO#Sandra|133 -{ - callfunc "PCtoNPCRange"; - if(@npc_check) end; - set @JACKOID, 12; - callfunc "HocusCampaign"; - if ($@HW2020_SLAIN[@JACKOID]) - disablenpc strnpcinfo(0); - set @JACKOID, 0; - close; -} - -003-1,136,35,0|script|JackO#Vincent|133 -{ - callfunc "PCtoNPCRange"; - if(@npc_check) end; - set @JACKOID, 13; - callfunc "HocusCampaign"; - if ($@HW2020_SLAIN[@JACKOID]) - disablenpc strnpcinfo(0); - set @JACKOID, 0; - close; -} - -057-1,126,63,0|script|#HW2020Shroom|400 -{ - // Halloween only - if (!$@halloween_time) end; - callfunc "PCtoNPCRange"; - if(@npc_check) end; - mes "This is a strange mushroom."; - mes "Seeing it makes you feel like saying"; - mes "##B" + get(.invocation$, "alonsialonso") + "##b"; - next; - mes "This never happened before. Must be halloween."; - mes "I should be careful, it could be related to [@@666|@@]!"; - next; - mes "##9HINT: Use the spell only in the precise area of interest.##0"; - mes "##9Side effects of spell misuse includes and are not limited to:##0"; - mes "##9death, warp, heal and/or item loss.##0"; - mes ""; - mes "##9The spell will cease to function once Halloween is over.##0"; - close; -} - -070-1,134,30,0|script|#HW2020Chapel|400 -{ - // Halloween only - if (!$@halloween_time) end; - callfunc "PCtoNPCRange"; - if(@npc_check) end; - mes "Past this door lies the crypt where Tormenta was supposed to be."; - mes "I really should not lock myself up in a place where I cannot leave."; - next; - mes "It should be safe to try the following on the door:"; - mes "##B" + get(.invocation$, "alonsialonso") + "##b"; - // NOTE: This door should lead to 070-3, Abyss/Reaper Room. - // Players from TMW Hardcore would know. - close; -} - diff --git a/world/map/npc/annuals/halloween/munro.txt b/world/map/npc/annuals/halloween/munro.txt deleted file mode 100644 index cbbbf233..00000000 --- a/world/map/npc/annuals/halloween/munro.txt +++ /dev/null @@ -1,50 +0,0 @@ -// Part of Annual halloween -026-1,24,37,0|script|Munro|183 -{ - callfunc "HalloweenCheckOld"; - callfunc "TrickOrTreatTally"; - if (($@halloween_time == $@halloween_reward_time) && (@npc_tally >= $@halloween_charm_count) && !(HALLOWEENTIME & $@halloween_got_charm_reward)) - goto L_Halloween; - goto L_NoReward; - -L_NoReward: - mes "[Munro]"; - mes "\"Greetings mortal.\""; - next; - mes "\"Once again we come to that time of year when the veil is thin\""; - next; - mes "\"All those who have passed on can part the veil to return.\""; - next; - mes "\"A time to celebrate our ancestors and chase evil away.\""; - next; - mes "\"Celebrate the holiday with me and I will reward you later.\""; - goto L_Exit; - -L_Halloween: - mes "[Munro]"; - mes "\"You have shown to have the Halloween spirit. Take this charm.\""; - set HALLOWEENTIME, HALLOWEENTIME | $@halloween_got_charm_reward; - getitem "SkeletonCharm",1; - goto L_Exit; - -L_Exit: - close; -} - -function|script|SpawnMunro -{ - if ($@halloween_time) - goto L_EnableMunro; - goto L_DisableMunro; - -L_EnableMunro: - enablenpc "Munro"; - goto L_Return; - -L_DisableMunro: - disablenpc "Munro"; - goto L_Return; - -L_Return: - return; -} diff --git a/world/map/npc/annuals/halloween/trick_or_treat.txt b/world/map/npc/annuals/halloween/trick_or_treat.txt deleted file mode 100644 index 10265382..00000000 --- a/world/map/npc/annuals/halloween/trick_or_treat.txt +++ /dev/null @@ -1,332 +0,0 @@ -// Halloween Annual -// Authors: alastrim, enchilado, o11c, wushin -// See config -function|script|TrickOrTreat -{ - callfunc "HalloweenCheckOld"; - if ($@halloween_time) - goto L_Halloween; - goto L_QuickReturn; - -L_Halloween: - if ((gettimetick(2)-TUT_var < $@halloween_min_age) || (BaseLevel < $@halloween_min_level)) //player must be created at least 1 weeks ago - goto L_QuickReturn; - menu - "Trick or Treat", L_HWQuest, - "[Go to normal NPC dialog]", L_QuickReturn; - -L_HWQuest: - set @mask, getequipid(equip_head); - goto L_Begin; - -L_Begin: - set @karma, (HALLOWEENTIME & 65535); - if (@mask > 0) - goto L_WearingMask; - goto L_NoMask; - -L_WearingMask: - // set the scare factor of the equipped mask - set @mask_index, 0; - set @scare_factor, 1; - goto L_MaskLoop; - -L_MaskLoop: - if ($@halloween_mask_IDs[@mask_index] == @mask) - goto L_FoundMask; - set @mask_index, @mask_index + 1; - if ($@halloween_mask_IDs[@mask_index]) - goto L_MaskLoop; - // not a mask in the list - set @mask, 0; - goto L_MaskDone; - -L_FoundMask: - set @scare_factor, $@halloween_scare_factors[@mask_index]; - if (@mask != 616) - goto L_MaskDone; - mes "\"Aaargh... Gross! This is sick! I can't even look at your face...\""; - goto L_MaskDone; - -L_MaskDone: - set @mask_index, 0; - // check if the mask is in the memory - set @loop, 0; - // Note: we don't handle remembered faces until they get their candy - if (!@mask) - goto L_MaskMemoryNo; - // check if the mask is remembered - goto L_MaskMemoryCheck; - -L_MaskMemoryCheck: - set @tmp, $@halloween_maskmemory[8 * @halloween_npc_id + @loop]; - if (!@tmp) - goto L_MaskMemoryNo; - if (@tmp == @mask) - goto L_MaskMemoryYes; - set @loop, @loop + 1; - if (@loop != $@halloween_memory_count) - goto L_MaskMemoryCheck; - goto L_MaskMemoryNo; - -L_MaskMemoryYes: - // not necessarily true - mes "\"I remember you, " + getitemlink(getequipid(equip_head)) + " person. No more treats for you!\""; - goto L_Close; - -L_MaskMemoryNo: - // player will probably get treats - set @loop, 0; - set @sweets_types, 0; - goto L_Count_Sweets; - -L_Count_Sweets: - if ($@halloween_sweets[@loop] == 0) - goto L_Check_Inventory; - if (countitem($@halloween_sweets[@loop])) - set @sweets_types, @sweets_types + 1; - set @loop, @loop + 1; - goto L_Count_Sweets; - -L_Check_Inventory: - getinventorylist; - if (@inventorylist_count + (@loop - @halloween_invy) > 100) - goto L_Full_Inventory; - if (@mask) - goto L_Check_Karma; - // check if the player's face is remembered - if (HALLOWEENTIME & (1 << (31 - @halloween_npc_id))) - goto L_Remember_Face; - goto L_Tricking_Trick_or_Treat; - -L_Check_Karma: - // NPC Cheater detection starts after max NPCs hit - if (rand($@halloween_num_npcs, 65535) <= @karma) - goto L_Cheater; - // NPC Cheater detection engages at 48 Trick or Treats - if (@karma >= 48) - goto L_Cheater; - if (HALLOWEENTIME & $@halloween_got_big_reward) - goto L_Tricking_Trick_or_Treat; - // assert: @karma < $@halloween_num_npcs - if (rand($@halloween_num_npcs - @karma)) - goto L_Tricking_Trick_or_Treat; - mes "\"All this candy isn't healthy, here take this to have a break from it.\""; - getitem $@halloween_big_reward[rand(getarraysize($@halloween_big_reward))], 1; - set HALLOWEENTIME, HALLOWEENTIME | $@halloween_got_big_reward; - // you get the big reward first, then the main treats - // otherwise it would be too complicated, and/or possibly unfair - goto L_Tricking_Trick_or_Treat; - -L_Cheater: - mes "\"I recognize you despite your mask, you have been taking sweets you do not deserve.\""; - if (@karma != 65535) - set HALLOWEENTIME, HALLOWEENTIME + 1; - goto L_Close; - -L_Remember_Face: - // mes "You've been here before; I remember your face"; - mes "\"I remember your face, " + strcharinfo(0) + ". No more treats for you!\""; - goto L_Close; - -L_Tricking_Trick_or_Treat: - // moved above - mes $@halloween_npc_names$[@halloween_npc_id]; - mes $@halloween_greetings$[@halloween_npc_id]; - next; - // TODO: should we randomize these? (in a subsequent commit) - menu - $@halloween_trick_notscary$[@halloween_npc_id], L_Tricking_Notscary, - $@halloween_trick_scary$[@halloween_npc_id], L_Tricking_Scary, - $@halloween_trick_veryscary$[@halloween_npc_id], L_Tricking_Veryscary; - -L_Tricking_Notscary: - mes $@halloween_npc_names$[@halloween_npc_id]; - mes $@halloween_react_notscary$[@halloween_npc_id]; - goto L_Tricking_Reward; - -L_Tricking_Scary: - mes $@halloween_npc_names$[@halloween_npc_id]; - mes $@halloween_react_scary$[@halloween_npc_id]; - set @scare_factor, @scare_factor * 2; - goto L_Tricking_Reward; - -L_Tricking_Veryscary: - mes $@halloween_npc_names$[@halloween_npc_id]; - mes $@halloween_react_veryscary$[@halloween_npc_id]; - set @scare_factor, @scare_factor * 3; - goto L_Tricking_Reward; - -L_Tricking_Reward: - next; - if (@karma >= 16) - set @scare_factor, rand(@scare_factor / 2, @scare_factor); - if (@karma >= 24) - set @scare_factor, rand(@scare_factor / 3, @scare_factor); - if (@scare_factor < 1) - set @scare_factor, 1; - goto L_Tricking_Reward_Loop; - -L_Tricking_Reward_Loop: - set @random, rand($@halloween_sweets_num); - setarray @getitem_ids, $@halloween_sweets[@random]; - setarray @getitem_counts, 1; - callfunc "CheckInventory"; - if (@check_fail) - set @scare_factor, 0; - if (!@scare_factor) - goto L_Tricking_End; - // NOTE: it gives out one piece at a time, but can loop several times - getitem $@halloween_sweets[@random], 1; - set @scare_factor, @scare_factor - 1; - goto L_Tricking_Reward_Loop; - -L_SetRememberFace: - set HALLOWEENTIME, HALLOWEENTIME | (1 << (31 - @halloween_npc_id)); - goto L_Close; - -L_Tricking_End: - mes $@halloween_npc_names$[@halloween_npc_id]; - mes "\"That should be enough sweets for you. Thanks for participating!\""; - if (!@mask) - goto L_SetRememberFace; - // add the player's mask to the list - set @loop, 7; - goto L_SetRememberMask; - -L_SetRememberMask: - set $@halloween_maskmemory[8 * @halloween_npc_id + @loop], $@halloween_maskmemory[8 * @halloween_npc_id + @loop - 1]; - set @loop, @loop - 1; - if (@loop) - goto L_SetRememberMask; - set $@halloween_maskmemory[8 * @halloween_npc_id], @mask; - set HALLOWEENTIME, HALLOWEENTIME + 1; - goto L_Close; - -L_Full_Inventory: - mes $@halloween_npc_names$[@halloween_npc_id]; - mes "\"You are trying to collect candy but you have no space to carry all the kinds of stuff that I have to offer! Please, save room for more stuff and come back.\""; - goto L_Close; - -L_NoMask: - mes $@halloween_npc_names$[@halloween_npc_id]; - mes "\"Hey " + strcharinfo(0) + ", are you trying to scare me with your face? Interesting! hahaha...\""; - goto L_Close; - -L_Close: - set @tmp, 0; - set @mask, 0; - set @karma, 0; - set @loop, 0; - set @menu, 0; - set @halloween_npc_id, 0; - return; - -L_QuickReturn: - set @halloween_npc_id, 0; - return; -} -function|script|TrickOrTreatTally -{ - set @npc_loop, 0; - set @npc_tally, 0; - goto L_LoopCheck; - -L_LoopCheck: - if (HALLOWEENTIME & (1 << (31 - @npc_loop))) - set @npc_tally, (@npc_tally + 1); - goto L_IncLoop; - -L_IncLoop: - set @npc_loop, (@npc_loop + 1); - if (@npc_loop >= 15) - goto L_Return; - goto L_LoopCheck; - -L_Return: - return; -} -// Checks for an expired event key -// Each new annual event needs a new key -// or it will allow completion from last year -function|script|HalloweenCheckOld -{ - if(HALLOWEENYEAR == $HALLOWEEN_TIME_KEY[5]) - goto L_Return; - goto L_OldMatch; - -L_OldMatch: - set HALLOWEENTIME, 0; - set HALLOWEENYEAR, $HALLOWEEN_TIME_KEY[5]; - goto L_Return; - -L_Return: - return; -} -function|script|HalloweenTree -{ - mes "[Confused Tree]"; - if ((HALLOWEENTIME & 65535) > ($@halloween_num_npcs * 3)) - mes "\"Whoa slow down greedy, leave some candy for the reset of us!\""; - if ((HALLOWEENTIME & 65535) > $@halloween_num_npcs) - mes "\"I see you have ben enjoying trick or treating, I hope you don't get a stomach ache.\""; - if ((HALLOWEENTIME & 65535) <= $@halloween_num_npcs) - mes "\"I love halloween, wearing masks and going trick or treating is so much fun.\""; - goto L_StartMenu; - -L_StartMenu: - menu - "Whats Halloween?", L_Explain, - "Me too!", L_CheckDressed, - "Meh, I like Christmas Better.", L_XmasBetter; - -L_Explain: - mes "\"I've convinced some people throughout the world to help with trick or treating.\""; - next; - set @npc_check_loop, 0; - goto L_NpcCheckLoop; - -L_NpcCheckLoop: - mes $@halloween_npc_names$[@npc_check_loop]; - next; - goto L_NpcCheckInc; - -L_NpcCheckInc: - set @npc_check_loop, (@npc_check_loop + 1); - if (@npc_check_loop >= getarraysize($@halloween_npc_names$)) - goto L_ContinueExplain; - goto L_NpcCheckLoop; - -L_ContinueExplain: - mes "\"Find each person and put on a mask then try to scare them.\""; - next; - mes "\"The scarier you are, the more treats you will be awarded.\""; - next; - mes "\"If you are really scary you could get a rare reward.\""; - next; - goto L_StartMenu; - -L_CheckDressed: - set @head, getequipid(equip_head); - set @chest, getequipid(equip_torso); - set @leg, getequipid(equip_legs); - set @random_mes$, "\" I like your costume.\""; - if ((@head <= 0) && (@chest <= 0) && (@leg <= 0)) - set @random_mes$, "\"Birthday Suit, always a classic.\""; - if ((@head == 615) && (@chest == 870)) - set @random_mes$, "\"How embrassing... we are wearing the same costume.\""; - if ((@head == 617) || (@head == 622) || (@head == 621)) - set @random_mes$, "\"Yar, matey I see that.\""; - if ((@head == 633) || (@head == 1205) || (@chest == 1183) || (@chest == 1184) || (@chest == 1185) || (@chest == 1186) || (@chest == 1187)) - set @random_mes$, "\"Your sense of humor offends me, it's way to early for that.\""; - mes @random_mes$; - goto L_Return; - -L_XmasBetter: - mes "\"Bah, Humbug, Show your Halloween spirit! OOooooOooo\""; - misceffect 302, strcharinfo(0); - goto L_Return; - -L_Return: - return; -} |