summaryrefslogtreecommitdiff
path: root/world/map/npc/026-1
diff options
context:
space:
mode:
authorwushin <pasekei@gmail.com>2016-04-21 15:37:05 -0500
committerwushin <pasekei@gmail.com>2016-04-23 18:53:23 -0500
commit3f175b590d284ef413be0be25c7f74392523414b (patch)
tree2af26d2602696e6623c75dd54bd28a32e0767c0b /world/map/npc/026-1
parentcab5e80475f0fa1370b8587c519bb6b6b7c6190a (diff)
downloadclassic-serverdata-3f175b590d284ef413be0be25c7f74392523414b.tar.gz
classic-serverdata-3f175b590d284ef413be0be25c7f74392523414b.tar.bz2
classic-serverdata-3f175b590d284ef413be0be25c7f74392523414b.tar.xz
classic-serverdata-3f175b590d284ef413be0be25c7f74392523414b.zip
Deadmere - Undead Town
Diffstat (limited to 'world/map/npc/026-1')
-rw-r--r--world/map/npc/026-1/_import.txt7
-rw-r--r--world/map/npc/026-1/_mobs.txt17
-rw-r--r--world/map/npc/026-1/_nodes.txt2
-rw-r--r--world/map/npc/026-1/_warps.txt5
-rw-r--r--world/map/npc/026-1/evil_guard.txt28
-rw-r--r--world/map/npc/026-1/headless_man.txt209
-rw-r--r--world/map/npc/026-1/husband.txt355
-rw-r--r--world/map/npc/026-1/mapflags.txt3
-rw-r--r--world/map/npc/026-1/soul-menhir.txt17
-rw-r--r--world/map/npc/026-1/traveler.txt11
10 files changed, 643 insertions, 11 deletions
diff --git a/world/map/npc/026-1/_import.txt b/world/map/npc/026-1/_import.txt
index 72d1a275..ce06afc8 100644
--- a/world/map/npc/026-1/_import.txt
+++ b/world/map/npc/026-1/_import.txt
@@ -1,8 +1,13 @@
-// Map 026-1: Swamp
+// Map 026-1: Deadmere
// This file is generated automatically. All manually added changes will be removed when running the Converter.
map: 026-1
npc: npc/026-1/_mobs.txt
npc: npc/026-1/_nodes.txt
npc: npc/026-1/_warps.txt
+npc: npc/026-1/evil_guard.txt
+npc: npc/026-1/headless_man.txt
+npc: npc/026-1/husband.txt
npc: npc/026-1/mapflags.txt
npc: npc/026-1/sign.txt
+npc: npc/026-1/soul-menhir.txt
+npc: npc/026-1/traveler.txt
diff --git a/world/map/npc/026-1/_mobs.txt b/world/map/npc/026-1/_mobs.txt
index 9f4d8325..de57d933 100644
--- a/world/map/npc/026-1/_mobs.txt
+++ b/world/map/npc/026-1/_mobs.txt
@@ -1,14 +1,17 @@
// This file is generated automatically. All manually added changes will be removed when running the Converter.
-// Swamp mobs
+// Deadmere mobs
026-1,0,0,0,0|monster|Wisp|1040,34,120000ms,40000ms
026-1,0,0,0,0|monster|Spectre|1042,34,120000ms,40000ms
026-1,0,0,0,0|monster|Poltergeist|1047,34,120000ms,40000ms
026-1,0,0,0,0|monster|Silkworm|1035,10,300000ms,60000ms
-026-1,0,0,0,0|monster|Scorpion|1003,15,300000ms,30000ms
026-1,0,0,0,0|monster|LogHead|1025,8,300000ms,40000ms
-026-1,46,74,35,26|monster|GrassSnake|1034,2,100000ms,50000ms
-026-1,88,36,35,26|monster|GrassSnake|1034,2,100000ms,50000ms
-026-1,35,36,18,16|monster|GrassSnake|1034,2,100000ms,50000ms
-026-1,66,33,73,17|monster|GrassSnake|1034,4,100000ms,50000ms
-026-1,60,76,61,31|monster|GrassSnake|1034,4,100000ms,50000ms
+026-1,49,31,56,14|monster|DrunkenSkeleton|1077,4,100000ms,30000ms
+026-1,50,31,52,11|monster|TipsySkeleton|1078,4,100000ms,30000ms
+026-1,56,77,66,30|monster|DrunkenSkeleton|1077,4,100000ms,30000ms
+026-1,57,77,59,23|monster|TipsySkeleton|1078,4,100000ms,30000ms
+026-1,110,59,31,74|monster|DrunkenSkeleton|1077,4,100000ms,30000ms
+026-1,110,59,28,71|monster|TipsySkeleton|1078,4,100000ms,30000ms
+026-1,110,59,31,74|monster|DrunkenLadySkeleton|1079,4,100000ms,30000ms
+026-1,57,79,69,32|monster|DrunkenLadySkeleton|1079,4,100000ms,30000ms
+026-1,48,31,54,12|monster|DrunkenLadySkeleton|1079,4,100000ms,30000ms
diff --git a/world/map/npc/026-1/_nodes.txt b/world/map/npc/026-1/_nodes.txt
index 47e3199f..0fb7a7bf 100644
--- a/world/map/npc/026-1/_nodes.txt
+++ b/world/map/npc/026-1/_nodes.txt
@@ -1,4 +1,4 @@
// This file is generated automatically. All manually added changes will be removed when running the Converter.
-// Swamp nodes
+// Deadmere nodes
// (no nodes)
diff --git a/world/map/npc/026-1/_warps.txt b/world/map/npc/026-1/_warps.txt
index 7158b0cb..af945881 100644
--- a/world/map/npc/026-1/_warps.txt
+++ b/world/map/npc/026-1/_warps.txt
@@ -1,5 +1,8 @@
// This file is generated automatically. All manually added changes will be removed when running the Converter.
-// Swamp warps
+// Deadmere warps
026-1,63,16|warp|-1,-1,027-1,63,105
026-1,129,66|warp|-1,-1,025-1,20,66
+026-1,48,39|warp|-1,-1,026-2,29,33
+026-1,43,24|warp|-1,-1,026-2,31,128
+026-1,25,20|warp|-1,-1,026-2,22,95
diff --git a/world/map/npc/026-1/evil_guard.txt b/world/map/npc/026-1/evil_guard.txt
new file mode 100644
index 00000000..22288b5c
--- /dev/null
+++ b/world/map/npc/026-1/evil_guard.txt
@@ -0,0 +1,28 @@
+026-1,50,32,0|script|Blackwin|316
+{
+ mes "...";
+ next;
+ mes "The guard glares at you, silently daring you to try something.";
+ next;
+ mes "[Evil Guard]";
+ mes "\"Heed my warning, young human. My master will suffer no fools here.\"";
+ next;
+ mes "[Evil Guard]";
+ mes "\"He created this as a place of leisure, and we are here to ensure that it remains undisturbed.\"";
+ close;
+}
+
+026-1,29,28,0|script|Forwin|316
+{
+ mes "[Evil Guard]";
+ mes "\"" + strcharinfo(0) + "...\"";
+ next;
+ mes "[Evil Guard]";
+ mes "\"I am your father...\"";
+ next;
+ mes "There is an awkward pause, and then the guard bursts out laughing.";
+ mes "";
+ mes "[Evil Guard]";
+ mes "\"Just kidding! Can you imagine Golbenez's reaction if we had such puny offspring?\"";
+ close;
+}
diff --git a/world/map/npc/026-1/headless_man.txt b/world/map/npc/026-1/headless_man.txt
new file mode 100644
index 00000000..f922406d
--- /dev/null
+++ b/world/map/npc/026-1/headless_man.txt
@@ -0,0 +1,209 @@
+// author: TheKandiman, input from Jenalya and Pjotr Orial
+// simple quest for headless man in gy inn
+// state 0: first contact
+// state 1: quest accepted
+// state 2: items delivered, return for reward and followup story
+// state 3: quest completed
+
+026-1,34,30,0|script|Thurstan|318
+{
+ set @Graveyard_Inn_MASK, NIBBLE_6_MASK;
+ set @Graveyard_Inn_SHIFT, NIBBLE_6_SHIFT;
+
+ set @state, ((QUEST_Graveyard_Inn & @Graveyard_Inn_MASK) >> @Graveyard_Inn_SHIFT);
+
+ set @Wisp_Powder, 50;
+ set @Polt_Powder, 50;
+ set @Spec_Powder, 50;
+ set @Iron_Pot, 50;
+ set @Conc_Pot, 30;
+ set @Red_Dye, 50;
+ set @Yellow_Dye, 50;
+ set @LB_Dye, 50;
+
+ set @Glue_Exp, 50000;
+
+ if (@state >= 3) goto L_Final;
+ if (@state == 2) goto L_Quest_finished;
+ if (@state == 1) goto L_Quest_progress;
+
+ mes "You see a man, propped up against the foot of the tree.";
+ mes "In his hand, he is holding what you assume to be his own head.";
+ next;
+ mes "You jump back a bit, startled, as the head starts talking to you!";
+ mes "It's a little strange watching him talk, but it's better than looking at what's left of his neck.";
+ next;
+ if (BaseLevel < 85)
+ goto L_greet;
+ mes "[Headless Man]";
+ mes "\"Hello. My name is Thurstan. Could I ask your assistance with something? I seem to be in a spot of difficulty.\"";
+ menu
+ "I'll listen, just keep that thing from dripping on me.", L_Quest_ask,
+ "Ack, a bloody talking head! Gross, no way!", L_Close;
+
+L_greet:
+ mes "[Headless Man]";
+ mes "\"Greetings! Do you have any duck tape?\"";
+ goto L_Close;
+
+L_Quest_ask:
+ mes "[Thurstan]";
+ mes "\"A little while ago there was a patron visiting the inn...I can't remember his name now. He noticed this predicament I am in and offered to help me. He told me that he was an alchemist and that he had a recipe for an adhesive that would keep my head where it's supposed to be. Unfortunately, he wasn't able to stay long enough to gather all the ingredients for the spell, so he gave me the recipe instead. However, it's rather hard to gather things when I have to carry it around all day.\"";
+ next;
+ mes "[Thurstan]";
+ mes "\"I have a list of items and how many of each are needed. Would you mind gathering them for me?\"";
+ menu
+ "Lay it on me, Mr. Noggin!", L_Quest_start,
+ "Sorry, I'm kinda busy with, you know, living.", L_Quest_no;
+
+L_Quest_start:
+ mes "[Thurstan]";
+ mes "\"Great! I will need the following things.\"";
+ mes "\"" + @Wisp_Powder + " Wisp Powder,\"";
+ mes "\"" + @Polt_Powder + " Poltergeist Powder,\"";
+ mes "\"" + @Spec_Powder + " Spectre Powder,\"";
+ mes "\"" + @Iron_Pot + " Iron Potion,\"";
+ mes "\"" + @Conc_Pot + " Concentration Potion,\"";
+ mes "\"" + @Red_Dye + " vials of Red Dye,\"";
+ mes "\"" + @Yellow_Dye + " vials of Yellow Dye,\"";
+ mes "\"and...\"";
+ mes "\"" + @LB_Dye + " vials of Light Blue Dye,\"";
+ next;
+ mes "[Thurstan]";
+ mes "\"My friend also said that I should use a metal bowl instead of a wooden one. I don't have one and I think a cauldron from the kitchen would be too big. Perhaps we could use an Infantry Helmet to serve that task.\"";
+ next;
+ mes "[Thurstan]";
+ mes "\"I know it probably doesn't seem like that much to you, but it is a really big deal for me. I will try to find something to compensate you for your efforts.\"";
+ set @state, 1;
+ callsub S_Update_Mask;
+ goto L_Close;
+
+L_Quest_no:
+ mes "[Thurstan]";
+ mes "\"Very well. Just don't come looking to me when your own head falls off!\"";
+ goto L_Close;
+
+L_Quest_progress:
+ mes "[Thurstan]";
+ mes "Have you managed to find those items yet?\"";
+ menu
+ "Yes, here you go!", L_Quest_check,
+ "What was I supposed to get again?", L_Quest_items,
+ "No, I'm still working on it.", L_Close;
+
+L_Quest_check:
+ if (countitem("WispPowder") < @Wisp_Powder
+ || countitem("PoltergeistPowder") < @Polt_Powder
+ || countitem("SpectrePowder") < @Spec_Powder
+ || countitem("IronPotion") < @Iron_Pot
+ || countitem("ConcentrationPotion") < @Conc_Pot
+ || countitem("RedDye") < @Red_Dye
+ || countitem("YellowDye") < @Yellow_Dye
+ || countitem("LightBlueDye") < @LB_Dye
+ || countitem("InfantryHelmet") < 1)
+ goto L_Quest_notenough;
+
+ delitem "WispPowder", @Wisp_Powder;
+ delitem "PoltergeistPowder", @Polt_Powder;
+ delitem "SpectrePowder", @Spec_Powder;
+ delitem "IronPotion", @Iron_Pot;
+ delitem "ConcentrationPotion", @Conc_Pot;
+ delitem "RedDye", @Red_Dye;
+ delitem "YellowDye", @Yellow_Dye;
+ delitem "LightBlueDye", @LB_Dye;
+ delitem "InfantryHelmet", 1;
+ getexp @Glue_Exp, 0;
+ mes "[Thurstan]";
+ mes "\"Excellent, excellent!\"";
+ mes "";
+ mes "Thurstan takes your ingredients and seperates them into little piles according to some complex formula he is reading, seemingly from the tops of his shoes.";
+ next;
+ mes "[Thurstan]";
+ mes "\"Now if I could prevail upon you to mix the ingredients according to the instructions I have here, I would be greatly indebted.\"";
+ next;
+ mes "You mix the powders together in the Infantry bowl, adding potions and dyes as instructed. Gradually, the concoction starts to get tacky and takes on a hue similar to Thurstan's skin.";
+ mes "You can see him starting to get excited beside you...";
+ next;
+ mes "[Thurstan]";
+ mes "\"Oh this is perfect! I'll be back in action in no time!\"";
+ next;
+ mes "Thurstan covers the base of his neck with a thick coat of the glue using his free hand. He then lifts his head in both hands, places it on the layer of adhesive, and makes some minor adjustments to the position. He mutters an incantation that you can't make out and the wound across his neck seems to fade away.";
+ misceffect sfx_magic_transmute;
+ next;
+ mes "Thurstan is practically jumping for joy now.";
+ mes "";
+ mes "[Thurstan]";
+ mes "\"Thank you so much! That is such a weight on my shoulders! Now that I have some mobility back, let me see what I can do to repay you. Would you mind coming back in a few minutes?\"";
+ set @state, 2;
+ callsub S_Update_Mask;
+ goto L_Close;
+
+L_Quest_notenough:
+ mes "Thurstan quickly looks through the items you've brought.";
+ mes "[Thurstan]";
+ mes "\"It seems you are missing a few things. Please come back once you have everything on the list.\"";
+ goto L_Close;
+
+L_Quest_items:
+ mes "[Thurstan]";
+ mes "\"" + @Wisp_Powder + " Wisp Powder,\"";
+ mes "\"" + @Polt_Powder + " Poltergeist Powder,\"";
+ mes "\"" + @Spec_Powder + " Spectre Powder,\"";
+ mes "\"" + @Iron_Pot + " Iron Potion,\"";
+ mes "\"" + @Conc_Pot + " Concentration Potion,\"";
+ mes "\"" + @Red_Dye + " vials of Red Dye,\"";
+ mes "\"" + @Yellow_Dye + " vials of Yellow Dye,\"";
+ mes "\"" + @LB_Dye + " vials of Light Blue Dye,\"";
+ mes "\"We'll also need 1 Infantry Helmet to use as a bowl for mixing everything together.\"";
+ goto L_Close;
+
+L_Quest_finished:
+ mes "[Thurstan]";
+ mes "\"Thank you for all your help.\"";
+ next;
+ mes "[Thurstan]";
+ mes "\"It worked well and the bond seemed to be holding for a while. Then I started feeling a strange tingling in my neck. I suppose that was the adhesive starting to dissolve. I was leaned over my trunk digging around for something appropriate to give you..Aaaand once again my head left it's proper place.\"";
+ next;
+ getinventorylist;
+ if (@inventorylist_count == 100)
+ goto L_Full_Inv;
+ mes "[Thurstan]";
+ mes "\"Please take this for your efforts. I got it in payment of some work I did protecting the pinkie population from a terrible scourge some time ago.\"";
+ getitem "PinkieHelmet", 1;
+ set @state, 3;
+ callsub S_Update_Mask;
+ goto L_Close;
+
+L_Full_Inv:
+ mes "[Thurstan]";
+ mes "\"I'd like to give you something for your efforts, but you're carrying too much stuff.\"";
+ goto L_Close;
+
+L_Final:
+ mes "[Thurstan]";
+ mes "\"I guess I will need to find another way to re-attach my cranium. If you come across any good alchemists who might be able to help, please let me know.\"";
+ goto L_Close;
+
+L_Close:
+
+ set @Graveyard_Inn_MASK, 0;
+ set @Graveyard_Inn_SHIFT, 0;
+ set @state, 0;
+ set @Wisp_Powder, 0;
+ set @Polt_Powder, 0;
+ set @Spec_Powder, 0;
+ set @Iron_Pot, 0;
+ set @Conc_Pot, 0;
+ set @Red_Dye, 0;
+ set @Yellow_Dye, 0;
+ set @LB_Dye, 0;
+ set @Glue_Exp, 0;
+ close;
+
+S_Update_Mask:
+ set QUEST_Graveyard_Inn,
+ (QUEST_Graveyard_Inn & ~(@Graveyard_Inn_MASK))
+ | (@state << @Graveyard_Inn_SHIFT);
+ return;
+
+}
diff --git a/world/map/npc/026-1/husband.txt b/world/map/npc/026-1/husband.txt
new file mode 100644
index 00000000..6dac42a3
--- /dev/null
+++ b/world/map/npc/026-1/husband.txt
@@ -0,0 +1,355 @@
+// author: Jenalya
+// love triangle quest, involved npcs: Reid's Ghost, Hamond, Savaric, Aldred, Golbenez
+// state 0: if BaseLevel >= 85, he asks for something to cool the drinks (ice cubes)
+// state 1: can be asked about the ring. needs @ICE_CUBE_AMOUNT ice cubes, then asks for bones and skulls.
+// state 2: wants @BONE_AMOUNT and @SKULL_AMOUNT bones and skulls
+// state 3: can be asked about the ring. needs @woman > 5 to be asked about savaric, tells, if crying child quest is completed
+// state 4: if @golbanez < 5, can be told about the memories, then asks the player to bring @RUBY_AMOUNT rubies to reid
+// state 5: waiting
+// state 6: is set in reid, gives as reward a special bowler hat
+// state 7: done
+
+026-1,40,41,0|script|Hamond|319
+{
+ set @Graveyard_Inn_MASK, NIBBLE_3_MASK;
+ set @Graveyard_Inn_SHIFT, NIBBLE_3_SHIFT;
+
+ set @state, ((QUEST_Graveyard_Inn & @Graveyard_Inn_MASK) >> @Graveyard_Inn_SHIFT);
+
+ set @Graveyard_Inn_Woman_MASK, NIBBLE_0_MASK;
+ set @Graveyard_Inn_Woman_SHIFT, NIBBLE_0_SHIFT;
+
+ set @woman, ((QUEST_Graveyard_Inn & @Graveyard_Inn_Woman_MASK) >> @Graveyard_Inn_Woman_SHIFT);
+
+ set @Graveyard_Inn_Kid_MASK, NIBBLE_2_MASK;
+ set @Graveyard_Inn_Kid_SHIFT, NIBBLE_2_SHIFT;
+
+ set @kidstate, ((QUEST_Graveyard_Inn & @Graveyard_Inn_Kid_MASK) >> @Graveyard_Inn_Kid_SHIFT);
+
+ set @Graveyard_Inn_Golbenez_MASK, NIBBLE_4_MASK;
+ set @Graveyard_Inn_Golbenez_SHIFT, NIBBLE_4_SHIFT;
+
+ set @golbanez, ((QUEST_Graveyard_Inn & @Graveyard_Inn_Golbenez_MASK) >> @Graveyard_Inn_Golbenez_SHIFT);
+
+ set @minLevel, 85;
+ set @ICE_CUBE_AMOUNT, 100;
+ set @ICE_CUBE_EXP, 75000;
+ set @BONE_AMOUNT, 100;
+ set @SKULL_AMOUNT, 75;
+ set @BONE_EXP, 100000;
+ set @RUBY_AMOUNT, 25; // caution, this value needs to be the same as in the innkeepers script!
+
+ if (@state >= 7) goto L_Thanks;
+ if (@state == 6) goto L_Apologize;
+ if (@state == 5) goto L_Waiting;
+ if (@state == 4) goto L_News;
+ if (@state == 3) goto L_Brought_Bones;
+ if (@state == 2) goto L_Check_Bones;
+ if (@state == 1) goto L_Ice_Cube;
+
+ mes "[Pale Man]";
+ mes "\"Hello, My name is Hamond. I run the inn together with my beautiful wife Reid. If there is anything I can do for you, please let me know.\"";
+ if (BaseLevel < @minLevel)
+ goto L_Close;
+ next;
+ menu
+ "I'd like to know why all the people in here are dead.",L_Next,
+ "Are you feeling well? You look very pale... In fact, deathly pale.",L_Next,
+ "Thank you, but I'm fine.", L_Close;
+
+L_Next:
+ mes "Hamond seems very confused. Then he notices the grey color of his hands and begins to shake his head in panic.";
+ mes "[Hamond]";
+ mes "\"WHAT IS THIS?\"";
+ next;
+ mes "Because of the fast movement of his head, it hinges back in his neck along a cut in his throat.. a deep cut you didn't notice before.";
+ next;
+ mes "You're trying hard not to run away screaming. Instead, you grab his hair and pull his head back into place.";
+ next;
+ mes "Hamond blinks a few times, with a puzzled look on his face.";
+ mes "[Hamond]";
+ mes "\"That was uncomfortable! I guess you are right. I am dead. Weird.\"";
+ next;
+ mes "\"How can I be dead if I am walking around and talking? This is very strange. \"";
+ next;
+ mes "\"But nevertheless, I will continue to run the inn and do my best to make all our patrons happy and satisfied - be they alive or dead.\"";
+ next;
+ menu
+ "Can I help with that?", L_Continue;
+
+L_Continue:
+ mes "[Hamond]";
+ mes "\"Help me? Normally I would never ask you for this, but actually, I do need something to cool the drinks. Maybe you can find something.\"";
+
+ set @state, 1;
+ callsub S_Update_Mask;
+
+ goto L_Close;
+
+L_Ice_Cube:
+ mes "[Hamond]";
+ mes "\"Hello my friend! Good to see you again. Did you find something to cool the drinks?\"";
+ next;
+
+ if ((@kidstate == 4)
+ && countitem("IceCube") > 0)
+ menu
+ "Maybe this never melting Ice Cube?", L_Check_Ice,
+ "I found this in the main hall. Do you know to whom it belongs?", L_Ring,
+ "I'm still searching.", L_Close;
+ if (@kidstate == 4)
+ menu
+ "I found this in the main hall. Do you know to whom it belongs?", L_Ring,
+ "I'm still searching.", L_Close;
+ if (countitem("IceCube") > 0)
+ menu
+ "Maybe this never melting Ice Cube?", L_Check_Ice,
+ "I'm still searching.", L_Close;
+ mes "\"You didn't? Too bad.\"";
+ goto L_Close;
+
+L_Check_Ice:
+ if (countitem("IceCube") < @ICE_CUBE_AMOUNT)
+ goto L_Not_Enough_Cubes;
+ delitem "IceCube", @ICE_CUBE_AMOUNT;
+
+ getexp @ICE_CUBE_EXP, 0;
+
+ set @state, 2;
+ callsub S_Update_Mask;
+
+ mes "[Hamond]";
+ mes "\"Yes, wonderful! That's exactly what I need.\"";
+ next;
+ mes "\"I put all my effort in making the inn a run well for my beloved Reid.\"";
+ next;
+ mes "\"You know, she had a very hard childhood.\"";
+ next;
+ mes "\"Her parents were the former owners of the inn. But they had some problems and the inn wasn't running well.\"";
+ next;
+ mes "\"Also they died very early and Reid was so lonely and sad. She is such a wonderful woman, I'd do anything for her.\"";
+ next;
+ mes "He mumbles the next sentence as if to himself.";
+ next;
+ mes "\"And I won't let a wannabe mage take her away from me...\"";
+ next;
+ menu
+ "What do you mean?",L_More;
+
+L_More:
+ mes "[Hamond]";
+ mes "\"Nevermind, nevermind. I'd like to ask you for another favor, if I might.\"";
+ next;
+ mes "\"A patron asked for - uhm, bones. He said he needed to replace some of his bones, which were damaged in a scuffle with mortals.\"";
+ next;
+ mes "\"I know, this is a bit strange - I'm still getting used to being dead. But a patron's wish is a patron's wish!\"";
+ next;
+ mes "\"Can you bring me a huge amount of bones and skulls? This way I can fulfill that peculiar wish and make another patron very happy!\"";
+ goto L_Close;
+
+L_Check_Bones:
+ mes "[Hamond]";
+ mes "\"Welcome back! Let me see what you have.\"";
+ if ((countitem("Bone") < @BONE_AMOUNT)
+ || (countitem("Skull") < @SKULL_AMOUNT))
+ goto L_Not_Enough_B;
+ delitem "Bone", @BONE_AMOUNT;
+ delitem "Skull", @SKULL_AMOUNT;
+
+ getexp @BONE_EXP, 0;
+
+ set @state, 3;
+ callsub S_Update_Mask;
+ goto L_Brought_Bones;
+
+L_Brought_Bones:
+ mes "[Hamond]";
+ mes "\"Thanks for your help! Now I'll be able to satisfy another strange request from one of our patrons.\"";
+ next;
+
+ if ((@kidstate == 4)
+ && (@woman > 5))
+ menu
+ "Would you tell me about this mage named Savaric?", L_Savaric,
+ "I found this in the main hall. Do you know to whom it belongs?", L_Ring,
+ "You're welcome.", L_Close;
+ if (@kidstate == 4)
+ menu
+ "I found this in the main hall. Do you know to whom it belongs?", L_Ring,
+ "You're welcome.", L_Close;
+ if (@woman > 5)
+ menu
+ "Would you tell me about this mage named Savaric?", L_Savaric,
+ "You're welcome.",L_Welcome;
+ goto L_Welcome;
+
+L_Welcome:
+ mes "[Hamond]";
+ mes "\"Please make yourself at home.\"";
+ goto L_Close;
+
+L_Savaric:
+ mes "Hamond's face turns into an ugly grimace.";
+ mes "[Hamond]";
+ mes "\"That cheeky egomaniac - \"";
+ next;
+
+ if (@kidstate < 7)
+ goto L_Problem;
+ mes "\"Well, I have been thinking about you. You seem to be a very helpful and wise person. Even my son told me good things about you, making a long speech about how great you are and your ability to comprehend and deal with delicate matters. I wonder how he reached that conclusion... But anyway, I'll tell you about Savaric.\"";
+ next;
+ goto L_Jealousy;
+
+L_Jealousy:
+ mes "[Hamond]";
+ mes "\"Savaric calls himself the first apprentice of a great wizard and seems to hold his head very high because of that. Pah, that snooty-nosed little upstart.\"";
+ next;
+ mes "\"Don't get me wrong, usually I'm a very open minded man, everyone can live their life as ever they like. But I never saw a wizard do anything good. They're in their books and ancient riddles and speaking with demons and whatever else they might come up with.\"";
+ next;
+ mes "\"But do they care for normal people? I've never seen that. And not only that! This Savaric guy seems to think it is fun to play games with my wife.\"";
+ next;
+ mes "Hamond seems to nearly burst with anger.";
+ next;
+ mes "\"I guess, they think I don't see what they are doing! But they are flirting all the time, my poor Reid seems unable to have a straight thought anymore.\"";
+ next;
+ mes "\"I already thought about throwing him out of the inn - but he is a patron! I can't be rude to a patron.\"";
+ next;
+ mes "\"Ah, this is annoying.\"";
+ set @state, 4;
+ callsub S_Update_Mask;
+ goto L_Close;
+
+L_Problem:
+ mes "[Hamond]";
+ mes "\"To be honest, I think I'd only be able to talk about such a complicated matter if I am sure I am sharing my feelings with a good, wise and understanding person. No offense, it is just that I barely know you...\"";
+ goto L_Close;
+
+L_Ring:
+ mes "[Hamond]";
+ mes "\"Well.. this is just a cheap ring. It is very popular with the young kids, especially the magic students.\"";
+ next;
+ mes "\"They say the ring increases 'magic attack' if you add a sapphire gem to it... But, in fact, I think these kids are delusional. Magic, pah.\"";
+ next;
+ mes "\"Anyway, I remember you could easily find one of these in a lot of small shops in town. I am pretty sure that whoever lost it won't bother coming all the way back to get it.\"";
+ set @kidstate, 5;
+ callsub S_Update_Mask_Kid;
+ goto L_Close;
+
+L_News:
+ mes "[Hamond]";
+ mes "\"Ah, dear friend. How are you?\"";
+ if (@golbanez < 5)
+ menu
+ "I'm enjoying myself.",L_Close;
+ menu
+ "I'm enjoying myself.",L_Close,
+ "I found out what happened to you and this place.",L_FoundOut;
+
+L_FoundOut:
+ mes "[Hamond]";
+ mes "\"You did? Amazing! Please tell me.\"";
+ next;
+ mes "You explain to him how you came here, the results of your research and what Golbenez showed to you.";
+ next;
+ mes "[Hamond]";
+ mes "\"WHAT? This is just crazy! But - you've shown me that you're trustworthy. This must be the truth.\"";
+ next;
+ mes "\"But still, it is hard to believe - I can't imagine I would ever hurt Reid and that she - that she would cheat on me.\"";
+ next;
+ mes "\"How did this come about? What did I do wrong? I should have shown her my love more. I should have protected her from the allurements of that sneaky mage. And I - I should have never ever hurt her.\"";
+ next;
+ mes "Hamond seems about to break down.";
+ menu
+ "Maybe it was just fate.",L_HamondFate,
+ "You got very upset, don't blame yourself",L_HamondFate,
+ "You're right. You were very violent. How could you do that if you love her?",L_HamondFate;
+
+L_HamondFate:
+ mes "[Hamond]";
+ mes "\"I- I need to apologize.\"";
+ next;
+ mes "\"" + strcharinfo(0) + "! Can you help me once more? Please get " + @RUBY_AMOUNT + " Rubies and bring them to her as a symbol of my love and my remorse.\"";
+ set @state, 5;
+ callsub S_Update_Mask;
+ goto L_Close;
+
+L_Waiting:
+ mes "[Hamond]";
+ mes "\"Did you bring Reid the " + @RUBY_AMOUNT + " Rubies?\"";
+ goto L_Close;
+
+L_Apologize:
+ mes "[Hamond]";
+ mes "\"I thank you! Reid came to me to talk about what happened.\"";
+ next;
+ mes "\"We talked about all the stuff that happened. It's hard for me, but I accepted her feelings for that mage. I mean - we are dead! And we have to stay in this place together for the rest of eternity! This is just perverted.\"";
+ next;
+ mes "\"But whatever, we need to get along with each other someway and I won't be the one who makes this difficult.\"";
+ next;
+ mes "\"And frankly, it gives me a bitter satisfaction that they long for each other but can't touch each other.\"";
+ next;
+ mes "\"However, you are a great friend and did a lot for me. I want you to have this.\"";
+ getinventorylist;
+ if (@inventorylist_count == 100)
+ goto L_Full_Inv;
+ getitem "BowlerHatBrown", 1;
+ set @state, 7;
+ callsub S_Update_Mask;
+ goto L_Close;
+
+L_Thanks:
+ mes "[Hamond]";
+ mes "\"Good to see you, my friend! The inn is running well and I'm getting used to being dead.\"";
+ goto L_Close;
+
+L_Not_Enough_B:
+ if (countitem("Bone") < @BONE_AMOUNT)
+ mes "\"I need more Bones than you have with you right now.\"";
+ if (countitem("Skull") < @SKULL_AMOUNT)
+ mes "\"Maybe you should come back with more Skulls than you have now. I don't think it is enough.\"";
+ goto L_Close;
+
+L_Not_Enough_Cubes:
+ mes "[Hamond]";
+ mes "\"Yes, they look good! But I think I need more of them. Maybe " + @ICE_CUBE_AMOUNT + "?\"";
+ goto L_Close;
+
+L_Full_Inv:
+ mes "[Hamond]";
+ mes "\"You have a really full backpack, haven't you? Come back when you have some room in there.\"";
+ goto L_Close;
+
+L_Close:
+ set @Graveyard_Inn_MASK, 0;
+ set @Graveyard_Inn_SHIFT, 0;
+ set @state, 0;
+ set @Graveyard_Inn_Woman_MASK, 0;
+ set @Graveyard_Inn_Woman_SHIFT, 0;
+ set @woman, 0;
+ set @Graveyard_Inn_Kid_MASK, 0;
+ set @Graveyard_Inn_Kid_SHIFT, 0;
+ set @Graveyard_Inn_Golbenez_MASK, 0;
+ set @Graveyard_Inn_Golbenez_SHIFT, 0;
+ set @golbanez, 0;
+ set @kidstate, 0;
+ set @minLevel, 0;
+ set @ICE_CUBE_AMOUNT, 0;
+ set @ICE_CUBE_EXP, 0;
+ set @BONE_AMOUNT, 0;
+ set @SKULL_AMOUNT, 0;
+ set @BONE_EXP, 0;
+ set @RUBY_AMOUNT, 0;
+ close;
+
+S_Update_Mask_Kid:
+ set QUEST_Graveyard_Inn,
+ (QUEST_Graveyard_Inn & ~(@Graveyard_Inn_Kid_MASK))
+ | (@kidstate << @Graveyard_Inn_Kid_SHIFT);
+ return;
+
+S_Update_Mask:
+ set QUEST_Graveyard_Inn,
+ (QUEST_Graveyard_Inn & ~(@Graveyard_Inn_MASK))
+ | (@state << @Graveyard_Inn_SHIFT);
+ return;
+}
diff --git a/world/map/npc/026-1/mapflags.txt b/world/map/npc/026-1/mapflags.txt
index 137d6a1c..1a059118 100644
--- a/world/map/npc/026-1/mapflags.txt
+++ b/world/map/npc/026-1/mapflags.txt
@@ -1 +1,2 @@
-026-1|mapflag|resave|025-1,33,50
+026-1|mapflag|resave|026-1,28,35
+026-1|mapflag|outside
diff --git a/world/map/npc/026-1/soul-menhir.txt b/world/map/npc/026-1/soul-menhir.txt
new file mode 100644
index 00000000..9b1b87b4
--- /dev/null
+++ b/world/map/npc/026-1/soul-menhir.txt
@@ -0,0 +1,17 @@
+//
+
+026-1,29,34,0|script|Soul Menhir#deadmire|351
+{
+ set @map$, "026-1";
+ setarray @Xs, 28, 29, 30, 28, 30, 28, 30;
+ setarray @Ys, 32, 33, 34, 32, 34, 32, 34;
+ set @x, 0;
+ set @y, 0;
+ callfunc "SoulMenhir";
+ set @map$, "";
+ cleararray @Xs[0], 0, 7;
+ cleararray @Ys[0], 0, 7;
+ set @x, 0;
+ set @y, 0;
+ close;
+}
diff --git a/world/map/npc/026-1/traveler.txt b/world/map/npc/026-1/traveler.txt
new file mode 100644
index 00000000..de743c14
--- /dev/null
+++ b/world/map/npc/026-1/traveler.txt
@@ -0,0 +1,11 @@
+// This is a teleportation (warp) NPC. Its purpose is to offer expensive, fast trips throughout the world.
+// Author: Wombat, wushin
+// cost depending on level and adapted to new scripting guidelines: Jenalya
+
+026-1,49,46,0|script|Styx the Traveler|103
+{
+ set @npcname$, "Styx";
+ set @NpcTravelBit, $@graveyard_bit;
+ callfunc "Traveler";
+ end;
+}