summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--world/map/npc/001-1/vincent.txt2
-rw-r--r--world/map/npc/006-1/pachua.txt1
-rw-r--r--world/map/npc/008-1/george.txt2
-rw-r--r--world/map/npc/009-2/kfahr.txt2
-rw-r--r--world/map/npc/009-2/nurse.txt2
-rw-r--r--world/map/npc/010-2/workers.txt2
-rw-r--r--world/map/npc/021-1/eurni.txt2
-rw-r--r--world/map/npc/021-1/weellos.txt2
-rw-r--r--world/map/npc/021-2/government_building.txt2
-rw-r--r--world/map/npc/027-2/caretaker.txt2
-rw-r--r--world/map/npc/halloween/2011/config.txt9
-rw-r--r--world/map/npc/halloween/2011/trick_or_treat.txt13
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: