From 6be13484c7e4244943c3e0be3720cbef78339ad5 Mon Sep 17 00:00:00 2001 From: Ben Longbons Date: Thu, 20 Oct 2011 19:48:15 -0700 Subject: Fix halloween quest and add 'big reward'. --- world/map/npc/001-1/vincent.txt | 2 ++ world/map/npc/006-1/pachua.txt | 1 + world/map/npc/008-1/george.txt | 2 ++ world/map/npc/009-2/kfahr.txt | 2 ++ world/map/npc/009-2/nurse.txt | 2 ++ world/map/npc/010-2/workers.txt | 2 ++ world/map/npc/021-1/eurni.txt | 2 ++ world/map/npc/021-1/weellos.txt | 2 ++ world/map/npc/021-2/government_building.txt | 2 ++ world/map/npc/027-2/caretaker.txt | 2 ++ world/map/npc/halloween/2011/config.txt | 9 ++++++--- world/map/npc/halloween/2011/trick_or_treat.txt | 13 ++++++++++++- 12 files changed, 37 insertions(+), 4 deletions(-) diff --git a/world/map/npc/001-1/vincent.txt b/world/map/npc/001-1/vincent.txt index 52285dbb..c7d50302 100644 --- a/world/map/npc/001-1/vincent.txt +++ b/world/map/npc/001-1/vincent.txt @@ -5,6 +5,7 @@ if (gettime(7) == $@hw2011_year && gettime(6) == 10 && gettime(5) >= $@hw2011_start_day) goto L_TrickOrTreat; +L_Begin: if (TMW_Quest >= 10) goto L_Done; if (TMW_Quest == 9) goto L_Progress; if (TMW_Quest == 8) goto L_Start; @@ -130,4 +131,5 @@ L_Close: L_TrickOrTreat: callfunc "TrickOrTreat2011"; + goto L_Begin; } diff --git a/world/map/npc/006-1/pachua.txt b/world/map/npc/006-1/pachua.txt index 941ffa79..fc2b27fd 100644 --- a/world/map/npc/006-1/pachua.txt +++ b/world/map/npc/006-1/pachua.txt @@ -318,4 +318,5 @@ L_SeeBunny: L_TrickOrTreat: callfunc "TrickOrTreat2011"; + goto L_Begin; } diff --git a/world/map/npc/008-1/george.txt b/world/map/npc/008-1/george.txt index 6144aed2..3c8aff99 100644 --- a/world/map/npc/008-1/george.txt +++ b/world/map/npc/008-1/george.txt @@ -5,6 +5,7 @@ if (gettime(7) == $@hw2011_year && gettime(6) == 10 && gettime(5) >= $@hw2011_start_day) goto L_TrickOrTreat; +L_Begin: if (getequipid(equip_head) == 617) goto L_Pirate; if (getequipid(equip_head) == 622) goto L_Bandana; if (getequipid(equip_head) == 621) goto L_EyePatch; @@ -29,4 +30,5 @@ L_EyePatch: L_TrickOrTreat: callfunc "TrickOrTreat2011"; + goto L_Begin; } diff --git a/world/map/npc/009-2/kfahr.txt b/world/map/npc/009-2/kfahr.txt index daccd429..a8837865 100644 --- a/world/map/npc/009-2/kfahr.txt +++ b/world/map/npc/009-2/kfahr.txt @@ -18,6 +18,7 @@ if (gettime(7) == $@hw2011_year && gettime(6) == 10 && gettime(5) >= $@hw2011_start_day) goto L_TrickOrTreat; +L_Begin: set @QS_NEWBIE, 0; set @QS_MET_KFAHR, 1; set @QS_KNOWS_KFAHR, 2; @@ -1084,4 +1085,5 @@ L_Update_Var: L_TrickOrTreat: callfunc "TrickOrTreat2011"; + goto L_Begin; } diff --git a/world/map/npc/009-2/nurse.txt b/world/map/npc/009-2/nurse.txt index e1095099..b9be0a7d 100644 --- a/world/map/npc/009-2/nurse.txt +++ b/world/map/npc/009-2/nurse.txt @@ -27,6 +27,7 @@ if (gettime(7) == $@hw2011_year && gettime(6) == 10 && gettime(5) >= $@hw2011_start_day) goto L_TrickOrTreat; +L_Begin: set @SNAKET_AMOUNT, 5; set @BSCORPIONST_AMOUNT, 10; // This quest can be done very often: so give less xp @@ -545,4 +546,5 @@ L_Game_toomuch: L_TrickOrTreat: callfunc "TrickOrTreat2011"; + goto L_Begin; } diff --git a/world/map/npc/010-2/workers.txt b/world/map/npc/010-2/workers.txt index 9176328f..ab2e6d5d 100644 --- a/world/map/npc/010-2/workers.txt +++ b/world/map/npc/010-2/workers.txt @@ -11,10 +11,12 @@ if (gettime(7) == $@hw2011_year && gettime(6) == 10 && gettime(5) >= $@hw2011_start_day) goto L_TrickOrTreat; +L_Begin: mes "[Zack]"; mes "\"My brother and I are fixing the cellar pass.\""; close; L_TrickOrTreat: callfunc "TrickOrTreat2011"; + goto L_Begin; } diff --git a/world/map/npc/021-1/eurni.txt b/world/map/npc/021-1/eurni.txt index e24e320a..3575ab1f 100644 --- a/world/map/npc/021-1/eurni.txt +++ b/world/map/npc/021-1/eurni.txt @@ -5,6 +5,7 @@ if (gettime(7) == $@hw2011_year && gettime(6) == 10 && gettime(5) >= $@hw2011_start_day) goto L_TrickOrTreat; +L_Begin: if (BaseLevel < 10) goto L_TooYoung; if (zeny < 10000) goto L_NoMoney; @@ -43,4 +44,5 @@ L_NoMoney: L_TrickOrTreat: callfunc "TrickOrTreat2011"; + goto L_Begin; } diff --git a/world/map/npc/021-1/weellos.txt b/world/map/npc/021-1/weellos.txt index 5d12bfdd..ec57a457 100644 --- a/world/map/npc/021-1/weellos.txt +++ b/world/map/npc/021-1/weellos.txt @@ -5,6 +5,7 @@ if (gettime(7) == $@hw2011_year && gettime(6) == 10 && gettime(5) >= $@hw2011_start_day) goto L_TrickOrTreat; +L_Begin: if isin("021-1.gat", 130, 120, 140, 125) goto L_In; mes "[Weellos]"; @@ -19,4 +20,5 @@ L_In: L_TrickOrTreat: callfunc "TrickOrTreat2011"; + goto L_Begin; } diff --git a/world/map/npc/021-2/government_building.txt b/world/map/npc/021-2/government_building.txt index 5935d06e..ab2a9214 100644 --- a/world/map/npc/021-2/government_building.txt +++ b/world/map/npc/021-2/government_building.txt @@ -143,6 +143,7 @@ S_give_rings: if (gettime(7) == $@hw2011_year && gettime(6) == 10 && gettime(5) >= $@hw2011_start_day) goto L_TrickOrTreat; +L_Begin: set @PARTY_SKILL, 3; mes "[Tathin]"; @@ -222,6 +223,7 @@ L_NotEnoughMoney: L_TrickOrTreat: callfunc "TrickOrTreat2011"; + goto L_Begin; } // Guard diff --git a/world/map/npc/027-2/caretaker.txt b/world/map/npc/027-2/caretaker.txt index d55c8c3b..d9bd17df 100644 --- a/world/map/npc/027-2/caretaker.txt +++ b/world/map/npc/027-2/caretaker.txt @@ -7,6 +7,7 @@ if (gettime(7) == $@hw2011_year && gettime(6) == 10 && gettime(5) >= $@hw2011_start_day) goto L_TrickOrTreat; +L_Begin: if (QUEST_Graveyard_Caretaker == 1) goto L_Return_Dialog; if (QUEST_Graveyard_Caretaker == 2) goto L_Has_Letter; if (QUEST_Graveyard_Caretaker == 3) goto L_Delivered_Letter; @@ -128,4 +129,5 @@ OnWifeDeath: L_TrickOrTreat: callfunc "TrickOrTreat2011"; + goto L_Begin; } diff --git a/world/map/npc/halloween/2011/config.txt b/world/map/npc/halloween/2011/config.txt index 39587685..31b863e0 100644 --- a/world/map/npc/halloween/2011/config.txt +++ b/world/map/npc/halloween/2011/config.txt @@ -10,6 +10,7 @@ // $@hw2011_min_level = Minimum level to go trick-or-treating // Global stuff +// $@hw2011_big_reward$ = The main reward randomly given, usually after the counter has reached 7-10 // $@hw2011_sweets$ = Array with all the sweets to be given as treats // $@hw2011_mask_IDs = Array with the IDs of all the masks that cover your face + The Scary Axehat // $@hw2011_scare_factors = Array with the basic scare factor of each mask @@ -39,9 +40,9 @@ // $@hw2011_trick_veryscary$ = Array with the most scary menu options // $@hw2011_react_veryscary$ = Array with all the reactions to the very scary menu options -// !!! IMPORTANT NOTE: a maximum of 16 NPCs can be used for this quest !!! +// !!! IMPORTANT NOTE: a maximum of 15 NPCs can be used for this quest !!! -009-1.gat,43,40,0|script|#hw2011config|45,{ +-|script|#hw2011config|-1,{ OnInit: // Set this to 1 for testing, to enable for all of October set $@hw2011_start_day, 24; @@ -55,6 +56,8 @@ OnInit: // Don't decrease this below 10 or the surgeon will be filled with plot holes set $@hw2011_min_level, 10; + set $@hw2011_big_reward$, "BunchOfParsley"; + set $@hw2011_got_big_reward, 0x10000; // TODO: review this list // all sweets are equal currently setarray $@hw2011_sweets$, @@ -218,7 +221,7 @@ OnInit: set $@hw2011_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 $@hw2011_num_npcs, $@n + 1; - set $@hw2011_all_npc_bits, 0xFFFFFFFF << (32 - $@hw2011_all_npc_bits); + set $@hw2011_all_npc_bits, 0xFFFFFFFF << (32 - $@hw2011_num_npcs); set $@n, 0; } diff --git a/world/map/npc/halloween/2011/trick_or_treat.txt b/world/map/npc/halloween/2011/trick_or_treat.txt index 3f3aa890..f2de95a4 100644 --- a/world/map/npc/halloween/2011/trick_or_treat.txt +++ b/world/map/npc/halloween/2011/trick_or_treat.txt @@ -109,10 +109,21 @@ L_Check_Karma: // Please don't change this, you'll break stuff. if (rand($@hw2011_num_npcs, 0xffff) <= (hw2011 & 0xffff)) goto L_Cheater; + if (hw2011 & $@hw2011_got_big_reward) + goto L_Tricking_Trick_or_Treat; + // assert: (hw2011 & 0xffff) < $@hw2011_num_npcs + if (rand($@hw2011_num_npcs - (hw2011 & 0xffff))) + goto L_Tricking_Trick_or_Treat; + mes "Here, have something to freshen you up after your long night"; + getitem $@hw2011_big_reward$, 1; + // 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 ((hw2011 & 0xFFFF) != 0xFFFF) + set hw2011, hw2011 + 1; goto L_Close; L_Remember_Face: @@ -188,7 +199,7 @@ L_ScaryFace: mes "\"Oh, that's your face ...\""; next; set @mask, 0; - set @scarefactor, 5; + set @scarefactor, 2 + rand(3); goto L_MaskDone; L_NoMask: -- cgit v1.2.3-60-g2f50