diff options
author | Fate <fate-tmw@googlemail.com> | 2009-05-16 15:20:10 +0000 |
---|---|---|
committer | Fate <fate-tmw@googlemail.com> | 2009-05-16 15:20:10 +0000 |
commit | 9c025c897e112583b68de9d8545f81edb95dbe5c (patch) | |
tree | 0712c68e84e8f12650d07a90420003b6fd9e1cdd /npc | |
parent | 25c4fee3bc0196a381b529f495bce8143ee0f501 (diff) | |
parent | 25789740c889c6f37d31b32cebb741ab7cfeb869 (diff) | |
download | serverdata-9c025c897e112583b68de9d8545f81edb95dbe5c.tar.gz serverdata-9c025c897e112583b68de9d8545f81edb95dbe5c.tar.bz2 serverdata-9c025c897e112583b68de9d8545f81edb95dbe5c.tar.xz serverdata-9c025c897e112583b68de9d8545f81edb95dbe5c.zip |
Merge branch 'master' of git@gitorious.org:tmw-eathena-data/mainline
Conflicts:
db/item_db.txt
npc/013-3_Cave/barrier.txt
Diffstat (limited to 'npc')
-rw-r--r-- | npc/001-1_Tulimshar/rules.txt | 2 | ||||
-rw-r--r-- | npc/008-1_Hurnscald_outskirts/_import.txt | 1 | ||||
-rw-r--r-- | npc/008-1_Hurnscald_outskirts/andra.txt | 24 | ||||
-rw-r--r-- | npc/013-3_Cave/barrier.txt | 2 | ||||
-rw-r--r-- | npc/015-1_Woodland/barrier.txt | 2 | ||||
-rw-r--r-- | npc/021-1_Tulimshar/north_shops.txt | 2 | ||||
-rw-r--r-- | npc/024-2_Tulimshar_Magic_School/barrier.txt | 2 | ||||
-rw-r--r-- | npc/024-2_Tulimshar_Magic_School/tyer_trigger.txt | 2 | ||||
-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.txt | 89 | ||||
-rw-r--r-- | npc/easter/2009/object.txt | 407 | ||||
-rw-r--r-- | npc/functions/clear_vars.txt | 61 | ||||
-rw-r--r-- | npc/functions/soul_menhir.txt | 4 | ||||
-rw-r--r-- | npc/scripts.conf | 5 |
15 files changed, 594 insertions, 9 deletions
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 |