summaryrefslogtreecommitdiff
path: root/npc
diff options
context:
space:
mode:
Diffstat (limited to 'npc')
-rw-r--r--npc/027-2_Caretakers_House/_import.txt3
-rw-r--r--npc/027-2_Caretakers_House/golbanez.txt71
-rw-r--r--npc/027-2_Caretakers_House/husband.txt75
-rw-r--r--npc/027-2_Caretakers_House/innkeeper.txt128
-rw-r--r--npc/027-2_Caretakers_House/lover.txt142
-rwxr-xr-xnpc/027-2_Caretakers_House/testnpcs.txt107
6 files changed, 401 insertions, 125 deletions
diff --git a/npc/027-2_Caretakers_House/_import.txt b/npc/027-2_Caretakers_House/_import.txt
index 5ba5f6d5..eb4196b3 100644
--- a/npc/027-2_Caretakers_House/_import.txt
+++ b/npc/027-2_Caretakers_House/_import.txt
@@ -6,9 +6,10 @@ npc: npc/027-2_Caretakers_House/alacrius.txt
npc: npc/027-2_Caretakers_House/caretaker.txt
npc: npc/027-2_Caretakers_House/diary.txt
npc: npc/027-2_Caretakers_House/door.txt
+npc: npc/027-2_Caretakers_House/golbanez.txt
npc: npc/027-2_Caretakers_House/gy_inn_shops.txt
npc: npc/027-2_Caretakers_House/husband.txt
npc: npc/027-2_Caretakers_House/innkeeper.txt
npc: npc/027-2_Caretakers_House/crying_child.txt
-//npc: npc/027-2_Caretakers_House/lover.txt
+npc: npc/027-2_Caretakers_House/lover.txt
npc: npc/027-2_Caretakers_House/testnpcs.txt
diff --git a/npc/027-2_Caretakers_House/golbanez.txt b/npc/027-2_Caretakers_House/golbanez.txt
new file mode 100644
index 00000000..4e19f137
--- /dev/null
+++ b/npc/027-2_Caretakers_House/golbanez.txt
@@ -0,0 +1,71 @@
+027-2.gat,39,91,0 script Golbenez 307,{
+
+ set @Graveyard_Inn_MASK, NIBBLE_4_MASK;
+ set @Graveyard_Inn_SHIFT, NIBBLE_4_SHIFT;
+
+ set @state, ((QUEST_Graveyard_Inn & @Graveyard_Inn_MASK) >> @Graveyard_Inn_SHIFT);
+
+ set @Graveyard_Inn_Lover_MASK, NIBBLE_1_MASK;
+ set @Graveyard_Inn_Lover_SHIFT, NIBBLE_1_SHIFT;
+
+ set @lover, ((QUEST_Graveyard_Inn & @Graveyard_Inn_Lover_MASK) >> @Graveyard_Inn_Lover_SHIFT);
+
+ if (@state ==1) goto L_Back;
+
+ mes "[Golbanez]";
+ mes "\"How do you like my place of leisure, mortal?\"";
+ menu
+ "What is this place? Why is it full of dead people?",-,
+ "You look different here. Nice horns.",L_Horns,
+ "I'm enjoying myself, thanks for asking.",L_Close;
+
+ mes "[Golbanez]";
+ mes "\"Mortal, this is way over your head. Don't worry about that and enjoy your time.\"";
+
+ if (@lover < 2)
+ goto L_Close;
+ menu
+ "I want to know. Try me.",-;
+
+ mes "Golbanez takes a gradualist look at you.";
+ mes "[Golbanez]";
+ mes "\"Fine.\"";
+ next;
+ mes "\"This place was an usual inn many many of your years ago. I found it by chance and it became one of my favorite playgrounds ever.\"";
+ next;
+ mes "Golbanez laughs a way, which really gives you the creeps.";
+ next;
+ mes "[Golbanez]";
+ mes "\"Unfortunaly - it got destroyed. So I took the memories of the dead and recreated this place.\"";
+ menu
+ "What do you mean with playground?",-,
+ "Recreated? What do you mean with that?",-;
+
+ mes "[Golbanez]";
+ mes "\"As I said, you don't understand. You start to bore me. Leave.\"";
+
+ set @state, 1;
+ callsub S_Update_Mask;
+
+ close;
+
+L_Back:
+ //TODO: continue here
+ close;
+
+L_Horns:
+ mes "Golbanez bursts out with laughter.";
+ next;
+ mes "[Golbanez]";
+ mes "\"Mortals! They never stop surprising me.\"";
+ close;
+
+L_Close:
+ close;
+
+S_Update_Mask:
+ set QUEST_Graveyard_Inn,
+ (QUEST_Graveyard_Inn & ~(@Graveyard_Inn_MASK))
+ | (@state << @Graveyard_Inn_SHIFT);
+ return;
+}
diff --git a/npc/027-2_Caretakers_House/husband.txt b/npc/027-2_Caretakers_House/husband.txt
index f53c6386..79451642 100644
--- a/npc/027-2_Caretakers_House/husband.txt
+++ b/npc/027-2_Caretakers_House/husband.txt
@@ -4,7 +4,7 @@
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;
@@ -14,7 +14,7 @@
set @Graveyard_Inn_Kid_SHIFT, NIBBLE_2_SHIFT;
set @kidstate, ((QUEST_Graveyard_Inn & @Graveyard_Inn_Kid_MASK) >> @Graveyard_Inn_Kid_SHIFT);
-
+
//TODO: determine sane values
set @ICE_CUBE_AMOUNT, 100;
set @ICE_CUBE_EXP, 10000;
@@ -22,11 +22,11 @@
set @BONE_AMOUNT, 100;
set @SKULL_AMOUNT, 50;
set @BONE_EXP, 30000;
-
- if (@state >= 3) goto L_Brought_Bones;
+
+ 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, I hope you're enjoying your time in Reid's Inn. My name is Hamond, and I'm running this inn together with my beautiful wife Reid. If there is anything I can do for you, please let me know.\"";
if (baselevel < 85) goto L_Close;
@@ -35,7 +35,7 @@
"I'd like to know why all the people in here are dead.",-,
"Are you feeling well? You look very pale... In fact, deathly pale.",-,
"Thank you, but I'm fine.", L_Close;
-
+
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?\"";
@@ -52,28 +52,28 @@
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 this inn and do my best to make all our patrons happy and satisfied - be they alive or dead.\"";
- next;
+ next;
menu
"Can I help with that?", -;
mes "[Hamond]";
mes "\"Help me? I would never ask you for this, but actually, I need something to cool the drinks. Maybe you can find something.\"";
-
+
set @state, 1;
callsub S_Update_Mask;
-
- close;
+
+ 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 Cubes?", L_Check_Ice,
- "I found this in the main hall. Do you know to whom it belongs?", L_Bracelet,
+ "Maybe this never melting Ice Cubes?", L_Check_Ice,
+ "I found this in the main hall. Do you know to whom it belongs?", L_Bracelet,
"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_Bracelet,
@@ -81,22 +81,22 @@ L_Ice_Cube:
if (countitem("IceCube") > 0)
menu
- "Maybe this never melting Ice Cubes?", L_Check_Ice,
+ "Maybe this never melting Ice Cubes?", L_Check_Ice,
"I'm still searching.", L_Close;
-
+
mes "\"You didn't? Too bad.\"";
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, wonderfull! That's exactly what I need.\"";
next;
@@ -123,7 +123,7 @@ L_Check_Ice:
next;
mes "\"Can you bring me a huge amount of bones and skulls? This way I can fulfill that peculilar wish and make another patron very happy!\"";
close;
-
+
L_Check_Bones:
mes "[Hamond]";
mes "\"Welcome back! Let me see what you have.\"";
@@ -131,9 +131,9 @@ L_Check_Bones:
goto L_Not_Enough_B;
delitem "Bone", @BONE_AMOUNT;
delitem "Skull", @SKULL_AMOUNT;
-
+
getexp @BONE_EXP, 0;
-
+
set @state, 3;
callsub S_Update_Mask;
@@ -141,41 +141,38 @@ 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_Bracelet,
+ "I found this in the main hall. Do you know to whom it belongs?", L_Bracelet,
"You're welcome.", L_Close;
-
+
if (@kidstate == 4)
menu
"I found this in the main hall. Do you know to whom it belongs?", L_Bracelet,
"You're welcome.", L_Close;
-
- if (@woman > 5)
+
+ if (@woman > 5)
menu
"Would you tell me about this mage named Savaric?", L_Savaric,
"You're welcome.",-;
mes "[Hamond]";
mes "\"Please make yourself at home.\"";
-
+
close;
-
+
L_Savaric:
mes "Hamond's face turns into an ugly grimace.";
mes "[Hamond]";
mes "\"This egomaniac cheekily - \"";
next;
-
- //TODO: think, if gender change should be checked
- //TODO: determine correct value for kidstate
+
if ((Sex == 0) && (@kidstate < 7)) goto L_Woman;
- if ((Sex == 1) && (@kidstate < 7)) goto L_Man;
- 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.\"";
+ if ((Sex == 1) && (@kidstate < 7)) goto L_Man;
+ 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.\"";
L_Jealousy:
-//TODO: go on here
mes "TODO: add story :P";
close;
L_Man:
@@ -195,7 +192,7 @@ L_Woman:
// mes "[Hamond]";
// mes "\"It was very nice of you to help my son. He told me, you found something he lost. I think, I can tell you about Savaric.\"";
// goto L_Jealousy;
-
+
L_Bracelet:
mes "[Hamond]";
mes "\"Well.. this is just a cheap bracelet, it is very popular with the young kids these days, specially the magic students. They call it 'Scarab Armlet'. Fancy name, huh? But for me it is just a cheap bracelet.\"";
@@ -206,7 +203,7 @@ L_Bracelet:
set @kidstate, 5;
callsub S_Update_Mask_Kid;
close;
-
+
L_Not_Enough_B:
if (countitem("Bone") < @BONE_AMOUNT)
mes "\"I'm not sure, but I think more bones will be better.\"";
@@ -220,7 +217,7 @@ L_Not_Enough_Cubes:
close;
L_Close:
- close;
+ close;
S_Update_Mask_Kid:
set QUEST_Graveyard_Inn,
diff --git a/npc/027-2_Caretakers_House/innkeeper.txt b/npc/027-2_Caretakers_House/innkeeper.txt
index d46fefd2..d4dd478d 100644
--- a/npc/027-2_Caretakers_House/innkeeper.txt
+++ b/npc/027-2_Caretakers_House/innkeeper.txt
@@ -1,7 +1,7 @@
-027-2.gat,104,39,0 script Reid's Ghost 315,{
+027-2.gat,104,39,0 script Reids Ghost 315,{
//TODO: add child quest context another way: not helping her child, but finding the bracelet
-
+
set @Graveyard_Inn_MASK, NIBBLE_0_MASK;
set @Graveyard_Inn_SHIFT, NIBBLE_0_SHIFT;
@@ -11,11 +11,11 @@
set @Graveyard_Inn_Kid_SHIFT, NIBBLE_2_SHIFT;
set @kidstate, ((QUEST_Graveyard_Inn & @Graveyard_Inn_Kid_MASK) >> @Graveyard_Inn_Kid_SHIFT);
-
+
//TODO: determine sane values
set @YETI_TEAR_AMOUNT, 10;
set @YETI_TEAR_EXP, 60000; // maybe about 1% for a level 80?
-
+
if (@state == 6) goto L_Read_Diary;
if (@state == 5) goto L_Check_Kid;
if (@state == 4) goto L_Ask_Life;
@@ -27,10 +27,10 @@
next;
mes "[Ghost]";
mes "\"He- I - What - Oh -\"";
- mes "The woman's ghost seems to be confused.";
+ mes "The womans ghost seems to be confused.";
next;
mes "[Ghost]";
- mes "Oh, I'm sorry. Welcome to Reid's Inn. My name is Reid, I am the innkeeper of this wonderful place of leisure. Please enjoy your visit here!";
+ mes "Oh, I'm sorry. Welcome to Reids Inn. My name is Reid, I am the innkeeper of this wonderful place of leisure. Please enjoy your visit here!";
next;
set @state, 1;
@@ -39,58 +39,58 @@
goto L_Ask_Dead;
L_After_Welcome:
- mes "[Reid's Ghost]";
+ mes "[Reids Ghost]";
mes "\"Please enjoy yourself!\"";
if (baselevel < 85) goto L_Close;
-
+
L_Ask_Dead:
if (baselevel < 85) goto L_Close;
-
+
menu
"What happened to you?", - ,
"Thank you, I'll surely enjoy my visit.", L_Close;
-
- mes "[Reid's Ghost]";
+
+ mes "[Reids Ghost]";
mes "\"What happened to me? What do you mean?\"";
//TODO: add more possible answers
menu
"Ahm, you don't look very well - actually, you look dead.",-,
"You don't seem to be in the best condition.",-,
"You are dead!",-;
-
+
mes "Reid looks down at her body and turns even more pale, if this is possible.";
next;
- mes "[Reid's Ghost]";
+ mes "[Reids Ghost]";
mes "\"OH?\"";
next;
-
+
menu
"I'm sorry. I didn't know you weren't aware of that.",-,
"Yes - do you understand my question now?",-,
"Shall I help you to find out what happened to you?", L_Offer_Help1;
- mes "[Reid's Ghost]";
+ mes "[Reids Ghost]";
mes "\"I'm dead? But why? And why am I still here?\"";
next;
mes "She stares into space and doesn't seem to notice you anymore.";
set @state, 2;
callsub S_Update_Mask;
close;
-
+
L_Offer_Help2:
- mes "Reid's Ghost is still staring into space.";
-
+ mes "Reids Ghost is still staring into space.";
+
if (@kidstate == 5)
menu
"Shall I help you to find out what happened to you?", L_Skip1,
- "Hi. I found this in the main hall. Do you know to whom it belongs?", L_Bracelet,
+ "Hi. I found this in the main hall. Do you know to whom it belongs?", L_Bracelet,
"I don't want to bother you.", L_Close;
-L_Skip1:
+L_Skip1:
menu
"Shall I help you to find out what happened to you?", -,
"I don't want to bother you.", L_Close;
-L_Offer_Help1:
+L_Offer_Help1:
mes "\"I.. I don't know you. Why should you help me?\"";
next;
mes "\"Bring me a proof you are serious. My life seems to have ended in a terrible and sad way, I can feel it very clearly. If you want to help me, please bring me something that represents this immeasurable sadness I am feeling!\"";
@@ -98,60 +98,60 @@ L_Offer_Help1:
set @state, 3;
callsub S_Update_Mask;
close;
-
+
L_Bring_Tears:
- mes "[Reid's Ghost]";
+ mes "[Reids Ghost]";
mes "\"Did you find something that can represent my sadness?\"";
next;
-
+
if ((@kidstate == 5) && countitem("FrozenYetiTear") > 0)
menu
- "I found this frozen tear to represent your sadness.", L_Check_Tears,
- "Hi. I found this in the main hall. Do you know to whom it belongs?", L_Bracelet,
+ "I found this frozen tear to represent your sadness.", L_Check_Tears,
+ "Hi. I found this in the main hall. Do you know to whom it belongs?", L_Bracelet,
"I'm still searching.", L_Close;
-
+
if (@kidstate == 5)
menu
- "Hi. I found this in the main hall. Do you know to whom it belongs?", L_Bracelet,
+ "Hi. I found this in the main hall. Do you know to whom it belongs?", L_Bracelet,
"I'm still searching.", L_Close;
if (countitem("FrozenYetiTear") > 0)
menu
- "I found this frozen tear to represent your sadness.", L_Check_Tears,
+ "I found this frozen tear to represent your sadness.", L_Check_Tears,
"I'm still searching.", L_Close;
-
+
mes "\"You didn't? It seems you're not serious with your offer to help me.\"";
close;
-
+
L_Check_Tears:
if (countitem("FrozenYetiTear") < @YETI_TEAR_AMOUNT)
goto L_Not_Enough_Tears;
delitem "FrozenYetiTear", @YETI_TEAR_AMOUNT;
-
+
getexp @YETI_TEAR_EXP, 0;
-
+
set @state, 4;
callsub S_Update_Mask;
-
- mes "[Reid's Ghost]";
+
+ mes "[Reids Ghost]";
mes "\"These tears.. how they shimmer in the candle light. Yes, it seems you are serious about your offer. I think you have the sensibility to help me find out the real meaning of this terrible feeling.\"";
next;
L_Ask_Life:
- mes "[Reid's Ghost]";
+ mes "[Reids Ghost]";
mes "\"But how do you plan to help me?\"";
next;
-
+
if (@kidstate == 5)
menu
"Please tell me about your life. Maybe this gives a clue what happened.",L_Skip2,
- "Hi. I found this in the main hall. Do you know to whom it belongs?", L_Bracelet,
+ "Hi. I found this in the main hall. Do you know to whom it belongs?", L_Bracelet,
"I need to think about that.", L_Close;
-L_Skip2:
+L_Skip2:
menu
"Please tell me about your life. Maybe this gives a clue what happened.",-,
"I need to think about that.", L_Close;
-
- mes "[Reid's Ghost]";
+
+ mes "[Reids Ghost]";
mes "\"About my life? Well ok.\"";
next;
mes "\"I'm the owner of this inn. I inherited it from my parents, who ran it while I was a child.\"";
@@ -169,11 +169,11 @@ L_Skip2:
mes "Reid seems to be tortured by her memories.";
next;
mes "\"That was a very hard time.\"";
-
+
menu
"Yes, yes, but what about your life shortly before you died?",-,
"I can imagine. I'm very sorry for you",-;
-
+
mes "She doesn't seem to pay much attention on what you say.";
next;
mes "\"But Hamond, my friend since I was a child, helped me in those bad times. We built up the inn again and we - we married.\"";
@@ -182,29 +182,29 @@ L_Skip2:
next;
mes "\"Everything was peaceful and I thought I had found my place. But one day -\"";
next;
-
+
set @state, 5;
callsub S_Update_Mask;
-L_Check_Kid:
-
+L_Check_Kid:
+
if (@kidstate == 5)
menu
- "Hi. I found this in the main hall. Do you know to whom it belongs?", L_Bracelet;
+ "Hi. I found this in the main hall. Do you know to whom it belongs?", L_Bracelet;
if ((Sex == 1) && (@kidstate < 7)) goto L_Man;
if ((Sex == 0) && (@kidstate < 7)) goto L_Woman;
-
+
mes "\"What I'm going to tell you is very personal, but your acts showed me you're a person I can trust. You kindly asked me about that bracelet you have found... and also, even my son, who is always so reserved with strangers, came to me and spent a long time telling me a lot of nice things about you.\"";
next;
L_Lovestory:
- mes "[Reid's Ghost]";
+ mes "[Reids Ghost]";
mes "\"It began as a completely normal day. We were taking care of our overnight guests and prepared the inn for the evening rush.\"";
next;
mes "\"But that day, a very special patron checked in. His name was Savaric, and he was a student of magic. He came from far away to check some rumours about a legendary mana seed.\"";
next;
- mes "Reid's Ghost has a completely enchanted look on her face.";
+ mes "Reids Ghost has a completely enchanted look on her face.";
next;
mes "\"He really made me feel alive - when he was near, I was feeling like I never felt before. I started to search for reasons to be near him - I told myself that I liked him just because he was interesting, coming from so far away and being a mage.\"";
next;
@@ -214,25 +214,25 @@ L_Lovestory:
next;
mes "She pulls a key out of her pocket as transparent as herself. As you try to grab it, your fingers just go through it.";
next;
- mes "[Reid's Ghost]";
+ mes "[Reids Ghost]";
mes "\"I keep forgetting! Please take the key out of my pocket.\"";
mes "She is pointing at her dead body with a sad look on her face. You take the key.";
next;
- mes "[Reid's Ghost]";
+ mes "[Reids Ghost]";
mes "\"This is the key to our personal room, it is located at the very end of the corridor upstairs. You will find my dairy in the bookshelf, hidden behind a book with poems. Hamond don't like poems.\"";
next;
mes "\"Please go and read it.\"";
-
+
set @state, 6;
callsub S_Update_Mask;
close;
L_Read_Diary:
- //TODO
+ mes "TODO: add story";
close;
L_Not_Enough_Tears:
- mes "[Reid's Ghost]";
+ mes "[Reids Ghost]";
set @tears, countitem("FrozenYetiTear");
if (@tears == 1)
mes "\"This is beautiful! But one of them isn't enough to represent my sadness.\"";
@@ -241,7 +241,7 @@ L_Not_Enough_Tears:
close;
L_Man:
- mes "[Reid's Ghost]";
+ mes "[Reids Ghost]";
mes "\"What I have to tell is very personal. You're a man - I'm not sure if I want to tell you. I know you helped me already and showed me you are a sensitive man, but I barely know you. I am sorry, but I have to think a little bit more. Maybe later, when I know you better, I can tell you more about it. \"";
//TODO: REMOVE!!!
mes "Skip that for debugging?";
@@ -249,9 +249,9 @@ L_Man:
"yes",L_Lovestory,
"no",-;
close;
-
+
L_Woman:
- mes "[Reid's Ghost]";
+ mes "[Reids Ghost]";
mes "\"What I have to tell you something very personal. You are a woman like me - I'm sure you would understand.\"";
next;
mes "\"But I'm not sure if I want to tell you. I know you helped me already and showed me you are a sensitive woman, but I barely know you. I am sorry, but I have to think a little bit more. Maybe later, when I know you better, I can tell you more about it. \"";
@@ -261,9 +261,9 @@ L_Woman:
"yes",L_Lovestory,
"no",-;
close;
-
+
L_Bracelet:
- mes "[Reid's Ghost]";
+ mes "[Reids Ghost]";
mes "\"Oh, this - I - it's mine. It was a present from a very precious person.\"";
next;
mes "She reaches out to take the bracelet, but her fingers go just through it. She looks sad.";
@@ -272,13 +272,13 @@ L_Bracelet:
set @kidstate, 6;
callsub S_Update_Mask_Kid;
close;
-
+
//L_Helped_Kid:
-// mes "[Reid's Ghost]";
+// mes "[Reids Ghost]";
// mes "\"You showed me you're a sensitive person with bringing me the bracelet.\"";
// next;
// goto L_Lovestory;
-
+
L_Close:
close;
@@ -287,7 +287,7 @@ S_Update_Mask_Kid:
(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))
diff --git a/npc/027-2_Caretakers_House/lover.txt b/npc/027-2_Caretakers_House/lover.txt
new file mode 100644
index 00000000..960217a3
--- /dev/null
+++ b/npc/027-2_Caretakers_House/lover.txt
@@ -0,0 +1,142 @@
+027-2.gat,43,73,0 script Savaric 317,{
+
+ set @Graveyard_Inn_MASK, NIBBLE_1_MASK;
+ set @Graveyard_Inn_SHIFT, NIBBLE_1_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_Golbanez_MASK, NIBBLE_4_MASK;
+ set @Graveyard_Inn_Golbanez_SHIFT, NIBBLE_4_SHIFT;
+
+ set @golbanez, ((QUEST_Graveyard_Inn & @Graveyard_Inn_Golbanez_MASK) >> @Graveyard_Inn_Golbanez_SHIFT);
+
+ //TODO: determine sane values
+ set @CRYSTAL_AMOUNT, 500;
+ set @CRYSTAL_EXP, 100000;
+
+ if (@state == 2) goto L_News;
+ if (@state == 1) goto L_Crystals;
+
+ mes "You see a dead man hanging. This place is creepy!";
+ next;
+ mes "Suddenly the man opens his eyes and look at you.";
+ next;
+ mes "[Hanged Man]";
+ mes "\"Oh, hello. Nice to see you - I seem to be dead, but I don't know why and why I'm still consciousness. This is very interesting.\"";
+ menu
+ "INTERESTING? Are you crazy?",-;
+ mes "[Hanged Man]";
+ mes "\"Well, as you mention it, it is quite annyoing and uncomfortable. Would you mind to help me coming down on the floor?\"";
+ next;
+ mes "You take a step towards him, but some invisible force holds you back.";
+ next;
+ mes "[Hanged Man]";
+ mes "\"Oh, someone is holding you back with magic! I sense a really dark and mighty power. What has happened!?\"";
+ next;
+ mes "\"Can I ask you for a favor? Can you bring me lots of dark crystals? You might need to ask a dark mage for it. I want to try to break the barrier.\"";
+ set @state, 1;
+ callsub S_Update_Mask;
+ close;
+
+L_Crystals:
+ mes "[Hanged Man]";
+ mes "\"Ah, you're back! Did you get the dark crystals?\"";
+
+ if (countitem("DarkCrystal") == 0)
+ menu
+ "Not yet.", L_Close;
+
+ if (countitem("DarkCrystal") < @CRYSTAL_AMOUNT)
+ goto L_Not_Enough_Crystals;
+
+ delitem "DarkCrystal", countitem("DarkCrystal");
+ getexp @CRYSTAL_EXP, 0;
+ next;
+ mes "\"Oh, I can feel them! Please lay them down on the floor.\"";
+ next;
+ mes "You lay your dark crystals down on the floor and step back, nervously expecting the coming.";
+ next;
+ mes "The hanged man seems very concentrated now, which looks absurdly with him hanging there.";
+ next;
+ mes "The dark crystals start to glow and buzz. You take another step back.";
+ next;
+ mes "The buzzing turns louder and louder, so you can't hear the word, the hanged man is calling now.";
+ next;
+ heal -300, 0;
+ mes "The crystals explode and hit you!";
+ //TODO: try this!
+ if (hp <= 0)
+ close;
+ next;
+ mes "You fall down on the floor and blink hectically to regain your eyesight again.";
+ next;
+ mes "[Hanged Man]";
+ mes "\"Hello? You're ok? I'm sorry, something went wrong. It seems, not only there is a magical barrier, but also my manaflow is blocked. I don't know, if this is because I'm dead or part of the barrier spell.\"";
+ next;
+ mes "\"I never was dead before, so I can't be sure. But I was able to access my magic - it just got out of control in the critical moment.\"";
+ next;
+ mes "\"This is fascinating!\"";
+ menu
+ "Ok, you are crazy!",-,
+ "Yes, it is very fascinating to be blown up!",-,
+ "I NEARLY DIED! AND YOU THINK, THIS IS FASCINATING?!",-;
+ mes "[Hanged Man]";
+ mes "\"I sometimes forget the fact, not everybody is fascinated by the riddles of magic. Please forgive me.\"";
+ next;
+ mes "\"And I even didn't introduced myself! I am very sorry for my rude behaviour!\"";
+ next;
+ mes "\"My name is Savaric, first apprentice of the Great Demon Summoner Ymbert.\"";
+ next;
+ mes "\"If you can forgive me my behaviour, may I ask you for another favor? Can you please search for someone or something in this inn, that could be the source of this dark magic?\"";
+ set @state, 2;
+ callsub S_Update_Mask;
+ close;
+
+L_News:
+ mes "[Savaric]";
+ mes "\"Welcome back. Did you find a possible source for the dark magic?\"";
+ if ((@woman < 6) && (@golbanez == 0))
+ menu
+ "Not yet, I'm still searching.",L_Close;
+
+ if ((@woman < 6) && (@golbanez > 0))
+ menu
+ "Yes, let me tell you.",L_Golbanez,
+ "I don't think so",L_Close;
+
+ if ((@woman >= 6) && (@golbanez == 0))
+ menu
+ "Can you tell me about your relationship to Reid?",L_Reid,
+ "Not yet, I'm still searching.",L_Close;
+
+ if ((@woman >= 6) && (@golbanez >= 0))
+ menu
+ "Can you tell me about your relationship to Reid?",L_Reid,
+ "Yes, let me tell you.",L_Golbanez,
+ "I don't think so",L_Close;
+
+L_Golbanez:
+ mes "TODO: add story";
+ close;
+
+L_Reid:
+ mes "TODO: add story";
+ close;
+
+L_Not_Enough_Crystals:
+ mes "It seems, you managed to get some, but not enough. Can you bring me more?";
+ close;
+L_Close:
+ close;
+
+S_Update_Mask:
+ set QUEST_Graveyard_Inn,
+ (QUEST_Graveyard_Inn & ~(@Graveyard_Inn_MASK))
+ | (@state << @Graveyard_Inn_SHIFT);
+ return;
+}
diff --git a/npc/027-2_Caretakers_House/testnpcs.txt b/npc/027-2_Caretakers_House/testnpcs.txt
index 684bc87f..64aea571 100755
--- a/npc/027-2_Caretakers_House/testnpcs.txt
+++ b/npc/027-2_Caretakers_House/testnpcs.txt
@@ -1,7 +1,7 @@
// Temporary placing of all non shop npcs
// A proper break down of files will need to be done later
-// drunk lover: quest,
+// drunk lover: quest,
// werewolf: gambling,
// chef's helper: simple dialog,
// horn mage: golbenez,
@@ -22,26 +22,99 @@
}
027-2.gat,118,23,0 script Werewolf 305,{
+ end;
+}
+
+027-2.gat,110,30,0 script Debug 305,{
+ 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_Lover_MASK, NIBBLE_1_MASK;
+ set @Graveyard_Inn_Lover_SHIFT, NIBBLE_1_SHIFT;
+
+ set @Lover, ((QUEST_Graveyard_Inn & @Graveyard_Inn_Lover_MASK) >> @Graveyard_Inn_Lover_SHIFT);
+
+ set @Graveyard_Inn_Child_MASK, NIBBLE_2_MASK;
+ set @Graveyard_Inn_Child_SHIFT, NIBBLE_2_SHIFT;
+
+ set @Child, ((QUEST_Graveyard_Inn & @Graveyard_Inn_Child_MASK) >> @Graveyard_Inn_Child_SHIFT);
+
+ set @Graveyard_Inn_Husband_MASK, NIBBLE_3_MASK;
+ set @Graveyard_Inn_Husband_SHIFT, NIBBLE_3_SHIFT;
+
+ set @Husband, ((QUEST_Graveyard_Inn & @Graveyard_Inn_Husband_MASK) >> @Graveyard_Inn_Husband_SHIFT);
+
+ set @Graveyard_Inn_Golb_MASK, NIBBLE_4_MASK;
+ set @Graveyard_Inn_Golb_SHIFT, NIBBLE_4_SHIFT;
+
+ set @Golb, ((QUEST_Graveyard_Inn & @Graveyard_Inn_Golb_MASK) >> @Graveyard_Inn_Golb_SHIFT);
+
mes "debug for the lovetriangle quest";
+ mes "there seems to be a bug in the debug somewhere - choose reset all, if the other stuff don't work.";
menu
- "reset reid", -,
+ "reset all",-,
+ "reset reid " + @woman,L_Reid,
+ "reset lover " + @Lover,L_Lover,
+ "reset child " + @Child,L_Child,
+ "reset husband " + @Husband,L_Husband,
+ "reset golbanez " + @Golb,L_Golb,
"leave", L_Close;
- set @Graveyard_Inn_MASK, NIBBLE_0_MASK;
- set @Graveyard_Inn_SHIFT, NIBBLE_0_SHIFT;
+set QUEST_Graveyard_Inn, 0;
- set @state, ((QUEST_Graveyard_Inn & @Graveyard_Inn_MASK) >> @Graveyard_Inn_SHIFT);
- set @state, 0;
- callsub S_Update_Mask;
+L_Reid:
+ set @woman, 0;
+ callsub S_Update_Mask_Woman;
+ close;
+L_Lover:
+ set @Lover, 0;
+ callsub S_Update_Mask_Lover;
+ close;
+L_Child:
+ set @Child, 0;
+ callsub S_Update_Mask_Child;
+ close;
+L_Husband:
+ set @Husband, 0;
+ callsub S_Update_Mask_Husband;
+ close;
+L_Golb:
+ set @Golb, 0;
+ callsub S_Update_Mask_Golb;
close;
-
L_Close:
close;
-S_Update_Mask:
+S_Update_Mask_Golb:
set QUEST_Graveyard_Inn,
- (QUEST_Graveyard_Inn & ~(@Graveyard_Inn_MASK))
- | (@state << @Graveyard_Inn_SHIFT);
+ (QUEST_Graveyard_Inn & ~(@Graveyard_Inn_Golb_MASK))
+ | (@state << @Graveyard_Inn_Golb_SHIFT);
+ return;
+
+S_Update_Mask_Husband:
+ set QUEST_Graveyard_Inn,
+ (QUEST_Graveyard_Inn & ~(@Graveyard_Inn_Husband_MASK))
+ | (@state << @Graveyard_Inn_Husband_SHIFT);
+ return;
+
+S_Update_Mask_Child:
+ set QUEST_Graveyard_Inn,
+ (QUEST_Graveyard_Inn & ~(@Graveyard_Inn_Child_MASK))
+ | (@state << @Graveyard_Inn_Child_SHIFT);
+ return;
+
+S_Update_Mask_Lover:
+ set QUEST_Graveyard_Inn,
+ (QUEST_Graveyard_Inn & ~(@Graveyard_Inn_Lover_MASK))
+ | (@state << @Graveyard_Inn_Lover_SHIFT);
+ return;
+
+S_Update_Mask_Woman:
+ set QUEST_Graveyard_Inn,
+ (QUEST_Graveyard_Inn & ~(@Graveyard_Inn_Woman_MASK))
+ | (@state << @Graveyard_Inn_Woman_SHIFT);
return;
}
@@ -62,11 +135,11 @@ L_0:
close;
L_1:
mes "[Ghost Drunker]";
- mes "\"Ish that a Zzombee?...\"";
+ mes "\"Ish that a Zzombee?...\"";
close;
L_2:
mes "[Ghost Drunker]";
- mes "\"Auuu... Hiccup... Don't byte mee... \"";
+ mes "\"Auuu... Hiccup... Don't byte mee... \"";
close;
L_3:
mes "[Ghost Drunker]";
@@ -90,18 +163,10 @@ L_3:
close;
}
-027-2.gat,39,91,0 script Golbenez 307,{
- end;
-}
-
027-2.gat,100,43,0 script Evil Guard 316,{
end;
}
-027-2.gat,43,73,0 script Hanged Lover 317,{
- end;
-}
-
027-2.gat,24,77,0 script Headless Man 318,{
end;
}