summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--conf/atcommand_local.conf.example22
-rw-r--r--conf/battle_athena.conf21
-rw-r--r--conf/char_athena.conf2
-rw-r--r--conf/help.txt.example9
-rw-r--r--db/item_db.txt3
-rw-r--r--db/mob_db.txt4
-rw-r--r--npc/001-1_Tulimshar/rules.txt2
-rw-r--r--npc/008-1_Hurnscald_outskirts/_import.txt1
-rw-r--r--npc/008-1_Hurnscald_outskirts/andra.txt24
-rw-r--r--npc/013-3_Cave/barrier.txt2
-rw-r--r--npc/015-1_Woodland/barrier.txt2
-rw-r--r--npc/021-1_Tulimshar/north_shops.txt2
-rw-r--r--npc/024-2_Tulimshar_Magic_School/barrier.txt2
-rw-r--r--npc/024-2_Tulimshar_Magic_School/tyer_trigger.txt2
-rw-r--r--npc/easter/2008/monsters.txt (renamed from npc/easter2008/monsters.txt)0
-rw-r--r--npc/easter/2008/npc.txt (renamed from npc/easter2008/npc.txt)0
-rw-r--r--npc/easter/2009/bunny.txt89
-rw-r--r--npc/easter/2009/object.txt407
-rw-r--r--npc/functions/clear_vars.txt61
-rw-r--r--npc/functions/soul_menhir.txt4
-rw-r--r--npc/scripts.conf5
21 files changed, 640 insertions, 24 deletions
diff --git a/conf/atcommand_local.conf.example b/conf/atcommand_local.conf.example
index 1f07f962..ca369949 100644
--- a/conf/atcommand_local.conf.example
+++ b/conf/atcommand_local.conf.example
@@ -81,7 +81,8 @@ charstats: 40
// Heals a person to full HP/SP.
heal: 40
-// GM Hide (enables you to be invisible to characters, and most monsters) (1 command + /hide).
+// GM Hide (hides you from monsters and most reporting functions).
+// To hide from other players use @invisible
hide: 40
// Enables you to to jump randomly on a map (that you are already on).
@@ -109,6 +110,13 @@ itemreset: 40
// Sets your spawn point (aka save point).
save: 40
+// Send text to the GM log
+log: 40
+l: 40
+
+// Send text to the GM log and local chat
+tee: 40
+t: 40
//--------------------
// 60: "GM"
@@ -285,6 +293,18 @@ chardropall: 60
// put a players possessions in storage
charstoreall: 60
+// iterate over players
+// forward
+hugo: 60
+// backward
+linus: 60
+
+// make yourself invisible to everyone
+invisible: 60
+
+// make yourself visible to everyone
+visible: 60
+
//----------------------
// 80: "eA Dev"
diff --git a/conf/battle_athena.conf b/conf/battle_athena.conf
index a4806bec..d4852dd7 100644
--- a/conf/battle_athena.conf
+++ b/conf/battle_athena.conf
@@ -708,18 +708,19 @@ max_cloth_color: 4
area_size: 14
// chat system:
-// 2 anti spam systems works together, one is a time based system and the
-// other is a repeat based system. Both count up individually, and if one
-// surpasses the spam_threshold, players is auto-banned for spam_ban hours
+// More than flood lines in threshold seconds gets a ban
+// More than warn lines in threshold seconds gets a warning
+chat_spam_flood: 10
+chat_spam_warn: 8
+chat_spam_threshold: 10
-// how many hours to auto ban spammer, 0 to disable [0-32767]. Default 6.
-spam_ban: 1
-
-// how many ms must the message be within to hit threshold counter [1-32767]. Default 3000.
-spam_time: 3000
+// How much to increment the line count if the content is lame.
+// Lameness is defined as mostly caps, punctuation, or a repeat of the last line.
+// Set to 1 or 2 depending on how much you hate hearing "ITEN PLZ!" 3 times in a row..
+chat_lame_penalty: 2
-// how many unpaused lines/repeats in a row before ban trigger [1-32767]. Default 10.
-spam_threshold: 10
+// how many hours to auto ban spammer, 0 to disable [0-32767]. Default 6.
+chat_spam_ban: 1
// Maximum line lengt, if a message is above chat_maxline, its dropped [1-512]. Default 255.
chat_maxline: 512
diff --git a/conf/char_athena.conf b/conf/char_athena.conf
index 83a06145..d1e27843 100644
--- a/conf/char_athena.conf
+++ b/conf/char_athena.conf
@@ -106,7 +106,7 @@ online_sorting_option: 0
online_display_option: 64
// minimum GM level to display 'GM' when we want to display it (default: 1)
-online_gm_display_min_level: 20
+online_gm_display_min_level: 60
// refresh time (in sec) of the html file in the explorer (default 20)
online_refresh_html: 20
diff --git a/conf/help.txt.example b/conf/help.txt.example
index 3aa1af99..bcbbf563 100644
--- a/conf/help.txt.example
+++ b/conf/help.txt.example
@@ -30,7 +30,9 @@
40:
40:--- CHANGE GM STATE CMD ---
40:@die ---- suicide
- 40:@hide - Makes you character invisible (GM invisibility). Type @hide again become visible.
+ 40:@hide - Makes you invisible to monsters and other reporting functions. Type @hide again become visible.
+ 60:@invisible - Makes your character invisible (complete)
+ 60:@visible - Makes your character visible (opposite of @invisible)
40:@save - Sets respawn point to current spot
40:@return - Warps you to your save point
40:@warp <mapname> <x> <y> - Warps you to the selected position
@@ -42,6 +44,11 @@
40: -2: (Memo point 1) 2: geffen 6: aldebaran 10: amatsu 14: louyang
40: -1: (Memo point 0) 3: payon 7: xmas (lutie) 11: gonryun 15: start point
40: 0: prontera 4: alberta 8: comodo 12: umbala 16: prison/jail
+ 60:@hugo - iterate over players forward
+ 60:@linus - iterator over players backwards
+ 40:
+ 40:@log/@l - Send text to the GM log
+ 40:@tee/@t - Send text to the GM log and local chat
40:
60:@alive - Revives yourself from death
40:@heal [<HP> <SP>] - Heals the desired amount of HP and SP. No value specified will do a full heal.
diff --git a/db/item_db.txt b/db/item_db.txt
index ed27292a..ea5a1cec 100644
--- a/db/item_db.txt
+++ b/db/item_db.txt
@@ -224,6 +224,7 @@
740,Root,Root,3,500,200,5,,,,,,,,,,,{},{},,
741,CottonGloves,Cotton Gloves,5,2000,500,20,,1,,-10,0,2,4,,0,0,{},{},,
742,FourLeafClover,Four-Leaf Clover,5,10000,5000,1,,,,5,0,2,8,,0,0,{},{ bonus bLuk, 1; },
+743,Acorn,Acorn,0,50,10,1,,,,,,2,,,0,,{ itemheal 3,0; },{},
744,DilutedConcentrationPotion,Diluted Concentration Potion,0,250,100,10,,,,,,2,,,0,,{ sc_start 37,30, 20; },{}
745,DarkConcentrationPotion,Dark Concentration Potion,0,50,25,10,,,,,,2,,,0,,{ sc_start 37,10, 40; sc_start sc_poison, 1, 50;},{}
1198,JackOSoul,Jack O Soul,3,100000,1,1,,,,,,,,,,,{},{},,
@@ -246,6 +247,8 @@
1215,ToySabre,Toy Sabre,4,50,25,1,1,,1,,0,2,2,1,1,1,{},{},,
1216,MoubooHead,Mouboo Head,5,10,1,20,,1,,0,0,2,256,,0,0,{},{},,
1217,CatEars,Cat Ears,5,100,50,2,,1,,1,0,2,256,,0,0,{},{ bonus bAgi, 3; },
+1218,PaperBagHelm,Paper Bag,5,1000,5,1,,1,,-1,0,2,256,,0,0,{},{ bonus bAgi, -1; },
+1219,MoubootaurHead,Moubootaur Head,5,10,1,20,,1,,0,0,2,256,,0,0,{},{},,
2050,RedCottonShirt,Red Cotton Shirt,5,10,5,100,,2,,-4,0,2,512,,0,0,{},{},,
2051,GreenCottonShirt,Green Cotton Shirt,5,10,5,100,,2,,-4,0,2,512,,0,0,{},{},,
2052,DarkBlueCottonShirt,Dark Blue Cotton Shirt,5,10,5,100,,2,,-4,0,2,512,,0,0,{},{},,
diff --git a/db/mob_db.txt b/db/mob_db.txt
index 4e19fcc7..21e8b529 100644
--- a/db/mob_db.txt
+++ b/db/mob_db.txt
@@ -22,7 +22,7 @@
1022,JackO,Jack O,250,10000,0,0,5000,2,100,500,40,20,35,40,25,25,35,50,1,1,1,0,20,133,250,1500,672,480,617,300,622,400,624,400,620,400,615,300,1203,400,1198,10000,616,600,0,0,0,0,,,,,,,2,30
1023,FireSkull,Fire Skull,180,5000,0,0,100,2,75,175,35,15,30,30,20,20,25,60,1,1,1,3,23,175,600,1600,672,480,631,1000,701,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,,,,,2,30
1024,PoisonSkull,Poison Skull,180,5000,0,0,100,2,75,175,35,15,30,30,20,20,25,60,1,1,1,3,25,175,600,1600,672,480,631,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,,,,,4,20
-1025,LogHead,Log Head,30,500,0,0,30,1,7,20,50,5,1,1,1,0,20,25,1,1,1,3,22,129,800,1872,672,480,569,2000,740,2500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,,,,,1,50
+1025,LogHead,Log Head,30,500,0,0,30,1,7,20,50,5,1,1,1,0,20,25,1,1,1,3,22,129,800,1872,672,480,569,2000,740,2500,743,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,,,,,1,50
1026,MountainSnake,Mountain Snake,130,900,0,0,100,1,80,125,4,6,20,40,10,10,35,45,1,1,1,0,20,133,1000,1500,672,480,532,20,641,150,715,400,715,400,711,500,0,0,0,0,0,0,0,0,0,0,,,,,,,1,30
1027,EasterFluffy,Easter Fluffy,30,500,0,0,3,1,10,12,0,5,1,1,1,0,20,25,1,1,1,3,20,129,800,1872,672,480,1208,2000,1209,2000,1210,2000,1211,1000,1212,1000,1213,200,0,0,0,0,0,0,0,0,,,,,,,1,40
1028,Mouboo,Mouboo,85,1200,0,0,40,2,30,75,65,5,15,5,15,0,40,10,2,2,1,3,20,129,600,1872,672,480,660,200,660,100,541,750,660,10,0,0,0,0,0,0,0,0,0,0,0,0,,,,,,,1,30
@@ -35,4 +35,4 @@
1035,Silkworm,Silkworm,20,1,0,0,1,1,0,0,2,10,20,11,10,10,40,10,1,1,1,0,20,129,1300,1100,672,480,718,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,,,,,2,40
// ,Zombie,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
1037,CloverPatch,Clover Patch,1,1,0,0,1,1,0,0,0,5,0,0,0,0,0,0,1,1,1,3,22,0,800,800,672,480,742,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,,,,,0,0
-1038,Squirrel,Squirrel,15,160,1,0,1,1,15,25,1,6,1,3,1,0,15,40,1,1,1,3,20,129,800,800,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,,,,,1,15
+1038,Squirrel,Squirrel,15,160,1,0,1,1,15,25,1,6,1,3,1,0,15,40,1,1,1,3,20,129,800,800,672,480,743,7000,680,1000,681,1000,682,1000,683,1000,0,0,0,0,0,0,0,0,0,0,,,,,,,1,15
diff --git a/npc/001-1_Tulimshar/rules.txt b/npc/001-1_Tulimshar/rules.txt
index 1a0f3b82..bc82a994 100644
--- a/npc/001-1_Tulimshar/rules.txt
+++ b/npc/001-1_Tulimshar/rules.txt
@@ -1,6 +1,6 @@
//
-001-1.gat,29,28,0 script #Rules 127,1,1,{
+001-1.gat,29,28,0 script #Rules 0,1,1,{
if (TUT_var & 1 == 1) close;
callfunc "GameRules";
mes "Ian, the trainer, can help you get to know the game.";
diff --git a/npc/008-1_Hurnscald_outskirts/_import.txt b/npc/008-1_Hurnscald_outskirts/_import.txt
index e3e92081..3101190e 100644
--- a/npc/008-1_Hurnscald_outskirts/_import.txt
+++ b/npc/008-1_Hurnscald_outskirts/_import.txt
@@ -1,6 +1,7 @@
map: 008-1.gat
npc: npc/008-1_Hurnscald_outskirts/_mobs.txt
npc: npc/008-1_Hurnscald_outskirts/_warps.txt
+npc: npc/008-1_Hurnscald_outskirts/andra.txt
npc: npc/008-1_Hurnscald_outskirts/dock_worker.txt
npc: npc/008-1_Hurnscald_outskirts/george.txt
npc: npc/008-1_Hurnscald_outskirts/hinnak.txt
diff --git a/npc/008-1_Hurnscald_outskirts/andra.txt b/npc/008-1_Hurnscald_outskirts/andra.txt
new file mode 100644
index 00000000..e56cbbf5
--- /dev/null
+++ b/npc/008-1_Hurnscald_outskirts/andra.txt
@@ -0,0 +1,24 @@
+//
+
+008-1.gat,36,26,0 script Andra 201,{
+ mes "[Andra]";
+ mes "\"Hello, my name is Andra, what's yours?\"";
+ next;
+ input @name$;
+
+ mes "[Andra]";
+ mes "\"Hello, " + @name$ + "! What is your favorite number?\"";
+ next;
+ input @num;
+
+ if (@num == 5) goto L_Same;
+
+ mes "[Andra]";
+ mes "\"I don't like that one.\"";
+ close;
+
+L_Same:
+ mes "[Andra]";
+ mes "\"Mine too!\"";
+ close;
+}
diff --git a/npc/013-3_Cave/barrier.txt b/npc/013-3_Cave/barrier.txt
index 95fb6383..72be0d3c 100644
--- a/npc/013-3_Cave/barrier.txt
+++ b/npc/013-3_Cave/barrier.txt
@@ -1,6 +1,6 @@
//
-013-3.gat,71,21,0 script #DemonMineBarrier1#_M 127,1,1,{
+013-3.gat,71,21,0 script #DemonMineBarrier1#_M 0,1,1,{
if (QUEST_demon_mines >= 2) close;
if (QUEST_demon_mines == 1 && countitem(1198) >= 1) goto L_Has_Jack_O_Soul;
diff --git a/npc/015-1_Woodland/barrier.txt b/npc/015-1_Woodland/barrier.txt
index 5cf82848..0ba82ec9 100644
--- a/npc/015-1_Woodland/barrier.txt
+++ b/npc/015-1_Woodland/barrier.txt
@@ -1,7 +1,7 @@
// This barrier is for checking whether the player went outside after
// progressing with the cat quest.
-015-1.gat,59,32,0 script #CatOutsideBarrier 127,1,1,{
+015-1.gat,59,32,0 script #CatOutsideBarrier 0,1,1,{
set KatzeBeenOutside, 1;
// No close here, as this doesn't open any client windows
}
diff --git a/npc/021-1_Tulimshar/north_shops.txt b/npc/021-1_Tulimshar/north_shops.txt
index 51fd1139..6d38531c 100644
--- a/npc/021-1_Tulimshar/north_shops.txt
+++ b/npc/021-1_Tulimshar/north_shops.txt
@@ -36,6 +36,6 @@
// An officer (for security)
021-1.gat,130,38,0 script Officer 150,{
mes "[Officer]";
- mes "I'm here for extra secutiry for this market.";
+ mes "I'm here for extra security for this market.";
close;
}
diff --git a/npc/024-2_Tulimshar_Magic_School/barrier.txt b/npc/024-2_Tulimshar_Magic_School/barrier.txt
index ffe5a3f3..ede39644 100644
--- a/npc/024-2_Tulimshar_Magic_School/barrier.txt
+++ b/npc/024-2_Tulimshar_Magic_School/barrier.txt
@@ -1,6 +1,6 @@
// A barrier in the magic school to keep less experienced players out of the canyon
-024-2.gat,31,24,0 script #MagicSchoolBarrier1#M 127,1,1,{
+024-2.gat,31,24,0 script #MagicSchoolBarrier1#M 0,1,1,{
if (BaseLevel < 40) goto L_PushBack;
close;
diff --git a/npc/024-2_Tulimshar_Magic_School/tyer_trigger.txt b/npc/024-2_Tulimshar_Magic_School/tyer_trigger.txt
index 2ae884da..ee588365 100644
--- a/npc/024-2_Tulimshar_Magic_School/tyer_trigger.txt
+++ b/npc/024-2_Tulimshar_Magic_School/tyer_trigger.txt
@@ -1,6 +1,6 @@
// A man in the magic school
-024-2.gat,33,24,0 script #Tyer_Trigger 127,1,1,{
+024-2.gat,33,24,0 script #Tyer_Trigger 0,1,1,{
if (BaseLevel >= 40) end;
mes "[Tyer]";
diff --git a/npc/easter2008/monsters.txt b/npc/easter/2008/monsters.txt
index d886f519..d886f519 100644
--- a/npc/easter2008/monsters.txt
+++ b/npc/easter/2008/monsters.txt
diff --git a/npc/easter2008/npc.txt b/npc/easter/2008/npc.txt
index e93e27a2..e93e27a2 100644
--- a/npc/easter2008/npc.txt
+++ b/npc/easter/2008/npc.txt
diff --git a/npc/easter/2009/bunny.txt b/npc/easter/2009/bunny.txt
new file mode 100644
index 00000000..62644f23
--- /dev/null
+++ b/npc/easter/2009/bunny.txt
@@ -0,0 +1,89 @@
+// The Easter Bunny
+
+007-1.gat,32,30, 0 script Easter Bunny 173,{
+ callfunc "ClearVariables";
+ if (QUEST_Easter09 == 1) goto L_CheckEggs;
+ if (QUEST_Easter09 == 2) goto L_Done;
+
+ mes "[Easter Bunny]";
+ mes "Oh dear! Oh dear! I shall be too late!";
+ next;
+
+ menu
+ "What do you mean?", -,
+ "Goodbye then.", close;
+
+ mes "[Easter Bunny]";
+ mes "It's already Easter and I haven't hid a single Easter egg yet. And the worst part is, they already started searching for the eggs. What am I going to do? I seriously need a miracle. I mean, there are so many people searching and I haven't even begun yet. What am I going to do?";
+ next;
+
+ menu
+ "Maybe I can help.", -,
+ "I'll leave you to it then.", close;
+
+ mes "[Easter Bunny]";
+ mes "It's hopeless, you can't help me, it's to late!";
+ next;
+
+ menu
+ "I'm sure they haven't searched everywhere. What about that stone over there?", -,
+ "You're probably right.", close;
+
+ mes "[Easter Bunny]";
+ mes "Maybe you're right. Here, go hide these 10 Easter eggs for me.";
+
+ getitem "EasterEgg", 10;
+ set QUEST_Easter09, 1;
+
+ close;
+
+L_CheckEggs:
+ set @count, 0;
+ set @temp, QUEST_Easter09_slots;
+ set @i, 0;
+
+L_CheckEggs_Loop:
+ if (@temp & 1) set @count, @count + 1;
+ set @i, @i + 1;
+ if (@i == 31) goto L_CheckEggs_Continue;
+ set @temp, @temp >> 1;
+ goto L_CheckEggs_Loop;
+
+L_CheckEggs_Continue:
+ if (@count > 10) goto L_ManyEggs;
+ if (@count == 10) goto L_EnoughEggs;
+ mes "[Easter Bunny]";
+ mes "Please place " + (10 - @count) + " more eggs!";
+
+ set @temp, 10 - @count - countitem("EasterEgg");
+
+ if (@temp > 0) goto L_GiveMoreEggs;
+ close;
+
+L_GiveMoreEggs:
+ mes "[Easter Bunny]";
+ mes "What happened to " + @temp + " of your eggs?";
+ next;
+
+ mes "[Easter Bunny]";
+ mes "Never mind that. Take these and get them placed!";
+ getitem "EasterEgg", @temp;
+ close;
+
+L_ManyEggs:
+ mes "[Easter Bunny]";
+ mes "How did you manage to place more eggs than I gave you?";
+ next;
+
+L_EnoughEggs:
+ mes "[Easter Bunny]";
+ mes "Thanks! I'm saved. Now I don't need to be scared anymore. And I just came with the great plan to hide myself under a paper bag. Oh well, maybe you can use it.";
+ getitem "PaperBagHelm", 1;
+ set QUEST_Easter09, 2;
+ close;
+
+L_Done:
+ mes "[Easter Bunny]";
+ mes "Thank you for placing those eggs for me!";
+ close;
+}
diff --git a/npc/easter/2009/object.txt b/npc/easter/2009/object.txt
new file mode 100644
index 00000000..263321aa
--- /dev/null
+++ b/npc/easter/2009/object.txt
@@ -0,0 +1,407 @@
+//
+
+function script Easter2009Object {
+ if (@action == 1) goto L_TryPlace;
+
+ set @result, $Easter2009 >> @object;
+ set @result, @result & 1;
+
+ if (@result == 1) goto L_GiveEgg;
+ return;
+
+L_GiveEgg:
+ set $Easter2009, $Easter2009 & ~(1 << @object);
+ getitem "EasterEgg", 1;
+ return;
+
+L_TryPlace:
+ set @has, QUEST_Easter09_slots >> @object;
+ set @has, @has & 1;
+
+ if (@has == 1) goto L_AlreadyPlaced;
+
+ set @has, $Easter2009 >> @object;
+ set @has, @has & 1;
+
+ if (@has == 0) goto L_DoPlace;
+ set @result, 0;
+ return;
+
+L_DoPlace:
+ if (countitem("EasterEgg") > 0) goto L_DoPlace_Finish;
+
+ mes "You don't have any eggs to place!";
+ close;
+
+L_DoPlace_Finish:
+ delitem "EasterEgg", 1;
+ set @has, 1 << @object;
+ set QUEST_Easter09_slots, QUEST_Easter09_slots | @has;
+ set $Easter2009, $Easter2009 | @has;
+ set @result, 1;
+ return;
+
+L_AlreadyPlaced:
+ set @result, 2;
+ return;
+}
+
+function script Easter2009Rock {
+ if (QUEST_Easter09 == 1) goto L_PlaceEgg;
+ mes "Do you want to examine this rock?";
+ next;
+ menu
+ "Yes", -,
+ "No", close;
+
+ set @action, 0;
+ callfunc "Easter2009Object";
+ if (@result == 1) goto L_Found;
+ mes "There is nothing strange about this rock.";
+ close;
+
+L_Found:
+ mes "You found an egg under the rock.";
+ close;
+
+L_PlaceEgg:
+ mes "Do you want to put an egg under this rock?";
+ next;
+ menu
+ "Yes", -,
+ "No", close;
+
+ set @action, 1;
+ callfunc "Easter2009Object";
+ if (@result == 1) goto L_Placed;
+ if (@result == 2) goto L_AlreadyPlaced;
+ mes "Strange, there is already an egg under this rock.";
+ close;
+
+L_Placed:
+ mes "You placed an egg under the rock.";
+ close;
+
+L_AlreadyPlaced:
+ mes "You already placed an egg under this rock!";
+ close;
+}
+
+function script Easter2009Tree {
+ if (QUEST_Easter09 == 1) goto L_PlaceEgg;
+ mes "Do you want to examine this tree?";
+ next;
+ menu
+ "Yes", -,
+ "No", close;
+
+ set @action, 0;
+ callfunc "Easter2009Object";
+ if (@result == 1) goto L_Found;
+ mes "There is nothing strange about this tree.";
+ close;
+
+L_Found:
+ mes "You found an egg in the tree.";
+ close;
+
+L_PlaceEgg:
+ mes "Do you want to put an egg in this tree?";
+ next;
+ menu
+ "Yes", -,
+ "No", close;
+
+ set @action, 1;
+ callfunc "Easter2009Object";
+ if (@result == 1) goto L_Placed;
+ if (@result == 2) goto L_AlreadyPlaced;
+ mes "Strange, there is already an egg in this tree.";
+ close;
+
+L_Placed:
+ mes "You placed an egg in the tree.";
+ close;
+
+L_AlreadyPlaced:
+ mes "You already placed an egg in this tree!";
+ close;
+}
+
+function script Easter2009Flower {
+ if (QUEST_Easter09 == 1) goto L_PlaceEgg;
+ mes "Do you want to examine these flowers?";
+ next;
+ menu
+ "Yes", -,
+ "No", close;
+
+ set @action, 0;
+ callfunc "Easter2009Object";
+ if (@result == 1) goto L_Found;
+ mes "There is nothing strange about these flowers.";
+ close;
+
+L_Found:
+ mes "You found an egg among the flowers.";
+ close;
+
+L_PlaceEgg:
+ mes "Do you want to hide an egg with these flowers?";
+ next;
+ menu
+ "Yes", -,
+ "No", close;
+
+ set @action, 1;
+ callfunc "Easter2009Object";
+ if (@result == 1) goto L_Placed;
+ if (@result == 2) goto L_AlreadyPlaced;
+ mes "Strange, there is already an egg here.";
+ close;
+
+L_Placed:
+ mes "You placed an egg with the flowers.";
+ close;
+
+L_AlreadyPlaced:
+ mes "You already placed an egg among these flowers!";
+ close;
+}
+
+function script Easter2009Pot {
+ if (QUEST_Easter09 == 1) goto L_PlaceEgg;
+ mes "Do you want to examine this pot?";
+ next;
+ menu
+ "Yes", -,
+ "No", close;
+
+ set @action, 0;
+ callfunc "Easter2009Object";
+ if (@result == 1) goto L_Found;
+ mes "There is nothing strange about this pot.";
+ close;
+
+L_Found:
+ mes "You found an egg in the pot.";
+ close;
+
+L_PlaceEgg:
+ mes "Do you want to put an egg in this pot?";
+ next;
+ menu
+ "Yes", -,
+ "No", close;
+
+ set @action, 1;
+ callfunc "Easter2009Object";
+ if (@result == 1) goto L_Placed;
+ if (@result == 2) goto L_AlreadyPlaced;
+ mes "Strange, there is already an egg in this pot.";
+ close;
+
+L_Placed:
+ mes "You placed an egg in the pot.";
+ close;
+
+L_AlreadyPlaced:
+ mes "You already placed an egg in this pot!";
+ close;
+}
+
+function script Easter2009Sign {
+ if (QUEST_Easter09 == 1) goto L_PlaceEgg;
+ mes "Do you want to examine this sign?";
+ next;
+ menu
+ "Yes", -,
+ "No", close;
+
+ set @action, 0;
+ callfunc "Easter2009Object";
+ if (@result == 1) goto L_Found;
+ mes "There is nothing strange about this sign.";
+ close;
+
+L_Found:
+ mes "You found an egg near the sign.";
+ close;
+
+L_PlaceEgg:
+ mes "Do you want to put an egg near this sign?";
+ next;
+ menu
+ "Yes", -,
+ "No", close;
+
+ set @action, 1;
+ callfunc "Easter2009Object";
+ if (@result == 1) goto L_Placed;
+ if (@result == 2) goto L_AlreadyPlaced;
+ mes "Strange, there is already an egg near this sign.";
+ close;
+
+L_Placed:
+ mes "You placed an egg near the sign.";
+ close;
+
+L_AlreadyPlaced:
+ mes "You already placed an egg near this sign!";
+ close;
+}
+
+007-1.gat,126,63,0 script Rock 127,{
+ set @object, 0;
+ callfunc "Easter2009Rock";
+}
+
+009-1.gat,66,33,0 script Pot 127,{
+ set @object, 1;
+ callfunc "Easter2009Pot";
+}
+
+009-1.gat,93,52,0 script Tree 127,{
+ set @object, 2;
+ callfunc "Easter2009Tree";
+}
+
+007-1.gat,37,22,0 script Flowers 127,{
+ set @object, 3;
+ callfunc "Easter2009Flower";
+}
+
+008-1.gat,38,32,0 script Tree 127,{
+ set @object, 4;
+ callfunc "Easter2009Tree";
+}
+
+008-1.gat,43,21,0 script Flowers 127,{
+ set @object, 5;
+ callfunc "Easter2009Flower";
+}
+
+018-1.gat,121,88,0 script Tree 127,{
+ set @object, 6;
+ callfunc "Easter2009Tree";
+}
+
+010-1.gat,103,73,0 script Flowers 127,{
+ set @object, 7;
+ callfunc "Easter2009Flower";
+}
+
+010-1.gat,31,45,0 script Rock 127,{
+ set @object, 8;
+ callfunc "Easter2009Rock";
+}
+
+011-1.gat,83,39,0 script Pot 127,{
+ set @object, 9;
+ callfunc "Easter2009Pot";
+}
+
+011-1.gat,33,78,0 script Tree 127,{
+ set @object, 10;
+ callfunc "Easter2009Tree";
+}
+
+018-1.gat,64,98,0 script Rock 127,{
+ set @object, 11;
+ callfunc "Easter2009Rock";
+}
+
+012-1.gat,88,122,0 script Flowers 127,{
+ set @object, 12;
+ callfunc "Easter2009Flower";
+}
+
+012-1.gat,97,32,0 script Rock 127,{
+ set @object, 13;
+ callfunc "Easter2009Rock";
+}
+
+012-1.gat,153,101,0 script Tree 127,{
+ set @object, 14;
+ callfunc "Easter2009Tree";
+}
+
+013-1.gat,118,92,0 script Rock 127,{
+ set @object, 15;
+ callfunc "Easter2009Rock";
+}
+
+013-1.gat,104,36,0 script Flowers 127,{
+ set @object, 16;
+ callfunc "Easter2009Flower";
+}
+
+014-1.gat,100,37,0 script Flowers 127,{
+ set @object, 17;
+ callfunc "Easter2009Flower";
+}
+
+014-1.gat,38,102,0 script Tree 127,{
+ set @object, 18;
+ callfunc "Easter2009Tree";
+}
+
+014-1.gat,54,50,0 script Sign 127,{
+ set @object, 19;
+ callfunc "Easter2009Sign";
+}
+
+015-1.gat,59,97,0 script Rock 127,{
+ set @object, 20;
+ callfunc "Easter2009Rock";
+}
+
+015-1.gat,29,25,0 script Flowers 127,{
+ set @object, 21;
+ callfunc "Easter2009Flower";
+}
+
+016-1.gat,83,54,0 script Pot 127,{
+ set @object, 22;
+ callfunc "Easter2009Pot";
+}
+
+016-1.gat,62,83,0 script Sign 127,{
+ set @object, 23;
+ callfunc "Easter2009Sign";
+}
+
+016-1.gat,20,51,0 script Tree 127,{
+ set @object, 24;
+ callfunc "Easter2009Tree";
+}
+
+017-1.gat,77,32,0 script Sign 127,{
+ set @object, 25;
+ callfunc "Easter2009Sign";
+}
+
+017-1.gat,104,90,0 script Tree 127,{
+ set @object, 26;
+ callfunc "Easter2009Tree";
+}
+
+017-1.gat,37,76,0 script Flowers 127,{
+ set @object, 27;
+ callfunc "Easter2009Flower";
+}
+
+009-1.gat,29,48,0 script Flowers 127,{
+ set @object, 28;
+ callfunc "Easter2009Flower";
+}
+
+010-1.gat,127,99,0 script Tree 127,{
+ set @object, 29;
+ callfunc "Easter2009Tree";
+}
+
+011-1.gat,34,95,0 script Rock 127,{
+ set @object, 30;
+ callfunc "Easter2009Rock";
+}
diff --git a/npc/functions/clear_vars.txt b/npc/functions/clear_vars.txt
new file mode 100644
index 00000000..706c5cd8
--- /dev/null
+++ b/npc/functions/clear_vars.txt
@@ -0,0 +1,61 @@
+// Clears old variables
+
+function script ClearVariables {
+ // Halloween 2006
+ set HWQUEST1, 0;
+ set HWQUEST2, 0;
+ set HWQUEST3, 0;
+ set HWQUEST4, 0;
+ set HWQUEST5, 0;
+ set HWQUEST6, 0;
+ set HWQUEST7, 0;
+ set HWQUEST8, 0;
+ set HWQUEST9, 0;
+ set HWQUEST10, 0;
+ set HWQUEST11, 0;
+ set HWQUEST12, 0;
+ set HWQUEST13, 0;
+ set HWQUEST14, 0;
+ set HWQUEST15, 0;
+ set HWQUEST16, 0;
+ set HWQUEST17, 0;
+ set HWQUEST18, 0;
+ set HWQUEST18, 0;
+ set HWQUEST19, 0;
+ set HWQUEST20, 0;
+
+ // Christmas 2006
+ set XMASQUEST1, 0;
+ set XMASQUEST2, 0;
+ set XMASQUEST3, 0;
+ set XMASQUEST4, 0;
+ set XMASQUEST5, 0;
+ set XMASQUEST6, 0;
+ set XMASQUEST7, 0;
+ set XMASQUEST8, 0;
+ set XMASQUEST9, 0;
+ set XMASQUEST10, 0;
+ set XMASQUEST11, 0;
+ set XMASQUEST12, 0;
+ set XMASQUEST13, 0;
+ set XMASQUEST14, 0;
+ set XMASQUEST15, 0;
+ set XMASQUEST16, 0;
+ set XMASQUEST17, 0;
+ set XMASQUEST18, 0;
+ set XMASQUEST19, 0;
+ set XMASQUEST20, 0;
+
+ set QUEST_xmas07_state, 0;
+ set QUEST_xmas07_milk, 0;
+ set QUEST_xmas07_cookies, 0;
+ set QUEST_xmas07_presents, 0;
+
+ set QUEST_Easter08_state, 0;
+
+ set Halloween08, 0;
+
+ set QUEST_xmas08_state, 0;
+
+ return;
+}
diff --git a/npc/functions/soul_menhir.txt b/npc/functions/soul_menhir.txt
index ccedc319..25ccc4db 100644
--- a/npc/functions/soul_menhir.txt
+++ b/npc/functions/soul_menhir.txt
@@ -5,7 +5,7 @@ function script SoulMenhir {
menu
"Touch it", -,
- "Leave it alone", return;
+ "Leave it alone", L_Return;
if (Menhir_Activated == 1) goto L_Shortversion;
@@ -31,5 +31,7 @@ L_Shortversion:
L_Save:
savepoint @map$, @x, @y;
+
+L_Return:
return;
}
diff --git a/npc/scripts.conf b/npc/scripts.conf
index f7cede08..dda7d1ff 100644
--- a/npc/scripts.conf
+++ b/npc/scripts.conf
@@ -3,6 +3,7 @@
// NPC Functions
npc: npc/functions/banker.txt
npc: npc/functions/barber.txt
+npc: npc/functions/clear_vars.txt
npc: npc/functions/game_rules.txt
npc: npc/functions/inn.txt
npc: npc/functions/magic.txt
@@ -47,8 +48,8 @@ import: npc/_import.txt
// npc: npc/xmas/2007/after-xmas.txt
// Easter 2008
-// npc: npc/easter2008/monsters.txt
-// npc: npc/easter2008/npc.txt
+// npc: npc/easter/2008/monsters.txt
+// npc: npc/easter/2008/npc.txt
// Halloween 2008
// npc: npc/halloween/2008/monsters.txt