diff options
Diffstat (limited to 'npc')
-rw-r--r-- | npc/027-2_Caretakers_House/diary.txt | 6 | ||||
-rw-r--r-- | npc/027-2_Caretakers_House/golbanez.txt | 104 | ||||
-rw-r--r-- | npc/027-2_Caretakers_House/husband.txt | 66 | ||||
-rw-r--r-- | npc/027-2_Caretakers_House/innkeeper.txt | 106 | ||||
-rw-r--r-- | npc/027-2_Caretakers_House/lover.txt | 52 | ||||
-rwxr-xr-x | npc/027-2_Caretakers_House/testnpcs.txt | 13 |
6 files changed, 329 insertions, 18 deletions
diff --git a/npc/027-2_Caretakers_House/diary.txt b/npc/027-2_Caretakers_House/diary.txt index 9e931733..233dc8c5 100644 --- a/npc/027-2_Caretakers_House/diary.txt +++ b/npc/027-2_Caretakers_House/diary.txt @@ -28,9 +28,9 @@ L_Diary: mes "'Hamond won't be here next night - he needs to visit our wine supplier to negotiate the prices. Savaric knows this. I'm feeling so excited - I should go with Hamond, but I told him, I need to take care about the inn, while he's away. Savaric.. '"; next; mes "This is the last entry."; - if (@state != 6) goto L_Close; + if (@reid != 6) goto L_Close; - set @state, 7; + set @reid, 7; callsub S_Update_Mask; L_Close: close; @@ -38,6 +38,6 @@ L_Close: S_Update_Mask: set QUEST_Graveyard_Inn, (QUEST_Graveyard_Inn & ~(@Graveyard_Inn_MASK)) - | (@state << @Graveyard_Inn_SHIFT); + | (@reid << @Graveyard_Inn_SHIFT); return; } diff --git a/npc/027-2_Caretakers_House/golbanez.txt b/npc/027-2_Caretakers_House/golbanez.txt index 70af8f2e..1fb4bfc5 100644 --- a/npc/027-2_Caretakers_House/golbanez.txt +++ b/npc/027-2_Caretakers_House/golbanez.txt @@ -210,10 +210,17 @@ L_Savaric: set @state, 5; callsub S_Update_Mask; mes "[Golbanez]"; - mes "\"TODO: add comment from golbanez\""; + mes "\"Humans can be so amusing!\""; + menu + "YOU CRUEL MONSTER!",-, + "I agree. What a bunch of idiots.",-; + mes "Golbanez smiles"; + mes "[Golbanez]"; + mes "\"Oh, thank you.\""; close; L_All: + //TODO: add asking for Savarics soul mes "[Golbanez]"; mes "\"Did you come back to see the memories again?\""; menu @@ -225,7 +232,7 @@ L_All: L_S_Again: callsub S_Savaricsmem; - //TODO: check, it [Golbanez] is needed + mes "[Golbanez]"; mes "\"What a fool he was even for a human.\""; close; @@ -386,7 +393,98 @@ S_Hamondsmem: return; S_Savaricsmem: - mes "TODO: add savarics story here"; + mes "As you gain your eyesight again, you find yourself bustling back and forth in Savarics room."; + next; + mes "The mixture of feelings you sense is very confusing. Worry, guilt, craving and below all that a deep feeling of luck and satisfaction."; + next; + mes "Then you hear steps outside the room. Savaric turns to the door quickly, then Reid breaks into the room."; + next; + mes "She looks totally tattered, her dress is riven, her lips are bleeding, she has a black eye and she is sobbing uncontrolled. It takes Savaric less than a second to reach her and put his arms around her carefully."; + next; + mes "You feel a deep and cold anger."; + next; + mes "[Savaric]"; + mes "\"Reid, my love, what did he do to you? Please come and lay down.\""; + next; + mes "Savaric leads Reid to his bed and covers her caring. Then he holds and dandle her until she falls asleep. You notice Savaric is only wearing his underpants."; + next; + mes "After Reids breathing has calmed down and her oppressed face looks peaceful again, he stands up and his cold burning anger comes back."; + next; + mes "[Savaric]"; + mes "\"I won't let him go away with that!\""; + next; + mes "Savaric pulls some things out of a chest and puts them on the table. He lights some candles and begins to mix together some powders and fluids. You feel concentration, but also a great anger which detains you from having a straight thought."; + next; + mes "Savaric seems to be ready with his magic ingredients and takes what he mixed together. You feel raising power inside of you. The moment you think you can't stand it anymore, the tension disappears and a purple light fills the room for a moment."; + next; + mes "Golbanez is standing in front of you"; + next; + mes "[Golbanez]"; + mes "\"Mortal! It was very rude of you to force me to this place with that spell - are you aware of the power you are playing around with?!\""; + next; + mes "Fear is raising inside of you, but also excitement and a feeling of power."; + next; + mes "[Savaric]"; + mes "\"I called you to get rid of the person who did this to this adorable woman.\""; + mes "He points at Reid"; + next; + mes "[Savaric]"; + mes "\"Tell me your charge.\""; + next; + mes "Golbanez behavior changes immediatly and he seems much friendlier."; + next; + mes "[Golbanez]"; + mes "\"Ah, you're offering me a deal. That's something else. Let me see. I can free her from all pain and anything or anyone causing her trouble.\""; + next; + mes "You feel Savarics heart pounding."; + mes "[Savaric]"; + mes "\"Yes. That's what I want. I want her to be safe from any harm.\""; + next; + mes "Golbanez face turns into a smile."; + mes "[Golbanez]"; + mes "\"This requires some effort. It will have a remarkable price. I want your soul in exchange.\""; + next; + mes "The feeling of power disappears and is replaced with unsureness."; + mes "[Savaric]"; + mes "\"My - soul? Can't it be something else?\""; + next; + mes "[Golbanez]"; + mes "\"Think about what you get! This woman will never feel any harm again!\""; + next; + mes "Savarics hesitation vanishes."; + mes "[Golbanez]"; + mes "\"So be it. Take my soul and prevent Reid from feeling pain ever again.\""; + next; + mes "Golbanez smile changes to an ugly grin of malice. He reaches out to Savaric and seems to pull something out of him. Suddenly, you feel very weak and empty."; + next; + mes "In the next moment, you're laying on the ground and see Golbanez raising his arms. You sense a unbelievable magic force - what is he doing?"; + next; + mes "Undeads are entring the room and one of them steps to the bed and breaks Reid neck with a quick movement. A dark and black feeling of despair is rising inside of you."; + next; + mes "[Savaric]"; + mes "\"NO!! What are you doing?\""; + next; + mes "[Golbanez]"; + mes "\"She will never feel any harm anymore. Just as everyone else in this inn - beside of you, foolish mortal.\""; + next; + mes "Golbanez leaves the room and you feel Savaric giving in to his pain. He is laying on the floor and tries to understand what he did."; + next; + mes "After some moments you were only feeling Savarics suffering he finally manages to stand up again. He can't stand to see Reids dead body anymore and stumbles out of the room."; + next; + mes "But what you can see in the rest of the inn isn't capable to ease the suffer you're feeling. The undeads have slaughtered every person in the inn, leaving only Savaric alive."; + next; + mes "Savaric seems stunned by shock. He returns to his room and knees in front of the bed taking Reids hand."; + next; + mes "[Savaric]"; + mes "\"Reid - I'm so sorry. My haughtiness was greater than my skills.\""; + next; + mes "The dumb feeling gives way to a new feeling of determination."; + next; + mes "Savaric pulls a rope out of his chest."; + mes "[Savaric]"; + mes "\"Now there's only one thing left for me to do.\""; + next; + mes "Your eyesight turns black again and you're standing in front of Golbanez."; return; S_Update_Mask: diff --git a/npc/027-2_Caretakers_House/husband.txt b/npc/027-2_Caretakers_House/husband.txt index e48794f5..39ce10e6 100644 --- a/npc/027-2_Caretakers_House/husband.txt +++ b/npc/027-2_Caretakers_House/husband.txt @@ -18,11 +18,14 @@ //TODO: determine sane values set @ICE_CUBE_AMOUNT, 100; set @ICE_CUBE_EXP, 10000; - //TODO: determine sane values set @BONE_AMOUNT, 100; set @SKULL_AMOUNT, 50; set @BONE_EXP, 30000; + set @RUBY_AMOUNT, 20; // 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; @@ -191,6 +194,7 @@ L_Jealousy: set @state, 4; callsub S_Update_Mask; close; + L_Man: mes "[Hamond]"; mes "\"You're a man - I think you would understand what is happening to me.\""; @@ -216,7 +220,65 @@ L_Bracelet: close; L_News: - mes "TODO: add story"; + 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.",-; + + mes "[Hamond]"; + mes "\"You did? Amazing! Please tell me.\""; + next; + mes "You explain him how you came here, about your researches and what Golbanez 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 at me.\""; + next; + mes "\"How did this come? What did I do wrong? I should have shown her my love more. I should have protected her from the allurements of this 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.",-, + "You got very upset, don't blame yourself",-, + "You're right. You were very violent. How could you do that if you love her?",-; + + 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; + close; + +L_Waiting: + mes "[Hamond]"; + mes "\"Did you bring Reid the " + @RUBY_AMOUNT + " rubies?\""; + 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 at this place together for remain of eternity! This is just pervert.\""; + 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.\""; + //TODO: determine reward and give it, idea: different bowler hat? + set @state, 7; + callsub S_Update_Mask; + close; + +L_Thanks: + mes "[Hamond]"; + mes "\"Good to see you, my friend! The inn is running well, I'm getting used in being dead.\""; close; L_Not_Enough_B: diff --git a/npc/027-2_Caretakers_House/innkeeper.txt b/npc/027-2_Caretakers_House/innkeeper.txt index 9105d45c..26631f7f 100644 --- a/npc/027-2_Caretakers_House/innkeeper.txt +++ b/npc/027-2_Caretakers_House/innkeeper.txt @@ -5,11 +5,21 @@ 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); + 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_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_Golbanez_MASK, NIBBLE_4_MASK; set @Graveyard_Inn_Golbanez_SHIFT, NIBBLE_4_SHIFT; @@ -17,8 +27,13 @@ //TODO: determine sane values set @YETI_TEAR_AMOUNT, 10; - set @YETI_TEAR_EXP, 60000; // maybe about 1% for a level 80? + set @YETI_TEAR_EXP, 60000; + set @DIAMOND_AMOUNT, 10; // caution, this value needs to be the same as in the lovers script! + set @RUBY_AMOUNT, 20; // caution, this value needs to be the same as in the husbands script! + if (@state == 11) goto L_Happy; + if (@state == 10) goto L_Thanks; + if ((@state == 8) || (@state == 9)) goto L_Sorry; if (@state == 7) goto L_Savaric; if (@state == 6) goto L_Read_Diary; if (@state == 5) goto L_Check_Kid; @@ -248,14 +263,89 @@ L_Savaric: if (@golbanez < 5) menu "But I still didn't find out, what happened. I'll return when I have news.",L_Close; - //TODO: add news here + menu + "But I still didn't find out, what happened. I'll return when I have news.",L_Close, + "I found out what happened to you and this place. I'll tell you.",-; + + mes "You explain her about Golbanez, Savaric and the memories you have seen."; + next; + mes "[Reid's Ghost]"; + mes "\"Oh, I always knew we weren't doing the right thing! But how should we have known it would end like this?\""; + next; + mes "\"I would never have expected Hamond to beat me - and Savaric... I trusted him with my life... And he uncarefully wasted it. Mine and that from everyone else in the inn.\""; + next; + mes "\"I'm feeling hurt. And confused. Both Hamond and Savaric turned out not to be the person I believed them to be.\""; + set @state, 8; + callsub S_Update_Mask; + if (@lover < 4) close; + close; + +L_Sorry: + mes "[Reid's Ghost]"; + mes "\"Welcome back.\""; + if ((@lover == 4) && (countitem("GemRawWhite") >= @DIAMOND_AMOUNT) && (countitem("GemRawRed") >= @RUBY_AMOUNT) && (@husband == 5)) + menu + "Savaric asked me to give you something.",L_Diamond, + "Hamond sent me to bring you this.",L_Ruby, + "Nevermind.",-; + if (@lover == 4 && (countitem("GemRawWhite") >= @DIAMOND_AMOUNT)) + menu + "Savaric asked me to give you something.",L_Diamond, + "Nevermind.",-; + if (@husband == 5 && (countitem("GemRawRed") >= @RUBY_AMOUNT)) + menu + "Hamond sent me to bring you this.",L_Ruby, + "Nevermind.",-; + close; + +L_Diamond: + if (countitem("GemRawWhite") < @DIAMOND_AMOUNT) goto L_Kidding; + delitem "GemRawWhite", @DIAMOND_AMOUNT; + mes "You explain how Savaric feels and what the diamonds mean."; + next; + mes "[Reid's Ghost]"; + mes "\"Oh Savaric. I just can't be angry at him. Thanks for your help. I'll go to talk with him.\""; + set @lover, 5; + callsub S_Update_Mask_Lover; + set @state, @state + 1; + callsub S_Update_Mask; + close; + +L_Ruby: + if (countitem("GemRawRed") < @RUBY_AMOUNT) goto L_Kidding; + delitem "GemRawRed", @RUBY_AMOUNT; + mes "You tell her about Hamonds feelings."; + next; + mes "[Reid's Ghost]"; + mes "\"I need to talk to him. Thanks for bringing me this.\""; + set @husband, 6; + callsub S_Update_Mask_Husband; + set @state, @state + 1; + callsub S_Update_Mask; close; +L_Kidding: + mes "[Reid's Ghost]"; + mes "\"Are you kidding? You don't have the items you are talking about. This is not funny.\""; + L_Tease: mes "[Reid's Ghost]"; mes "\"Don't be mean! I never feeled like that before.\""; close; +L_Thanks: + mes "[Reid's Ghost]"; + mes "\"I'm so glad, now I know what happened and spoke to Savaric and Hamond. Thank you so much. Please take this.\""; + //TODO: determine reward and give it + set @state, 11; + callsub S_Update_Mask; + close; + +L_Happy: + mes "[Reid's Ghost]"; + mes "\"Thank you for all you've done.\""; + close; + L_Not_Enough_Tears: mes "[Reid's Ghost]"; set @tears, countitem("FrozenYetiTear"); @@ -297,6 +387,18 @@ S_Update_Mask_Kid: | (@kidstate << @Graveyard_Inn_Kid_SHIFT); return; +S_Update_Mask_Husband: + set QUEST_Graveyard_Inn, + (QUEST_Graveyard_Inn & ~(@Graveyard_Inn_Husband_MASK)) + | (@husband << @Graveyard_Inn_Husband_SHIFT); + return; + +S_Update_Mask_Lover: + set QUEST_Graveyard_Inn, + (QUEST_Graveyard_Inn & ~(@Graveyard_Inn_Lover_MASK)) + | (@lover << @Graveyard_Inn_Lover_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 index eb1ef917..d780c562 100644 --- a/npc/027-2_Caretakers_House/lover.txt +++ b/npc/027-2_Caretakers_House/lover.txt @@ -18,7 +18,12 @@ //TODO: determine sane values set @CRYSTAL_AMOUNT, 300; //200? set @CRYSTAL_EXP, 100000; + set @DIAMOND_AMOUNT, 10; // caution, this value needs to be the same as in the innkeepers script! + if (@state == 7) goto L_Have_Soul; + if (@state == 6) goto L_Want_Soul; + if (@state == 5) goto L_Apologize; + if (@state == 4) goto L_Waiting; if (@state == 3) goto L_Golb; if (@state == 2) goto L_News; if (@state == 1) goto L_Crystals; @@ -153,7 +158,52 @@ L_Golbanez: close; L_Golb: - mes "TODO: add story"; + mes "[Savaric]"; + mes "\"Good to see you back my friend. What did you find out?\""; + if (@golbanez < 5) + menu + "I'm still working on getting all the stuff he wants.",L_Close; + menu + "Now I know what happened. I'll tell you.",-, + "I'm sorry to tell you, but this was all your fault.",-; + + mes "You tell about what Golbanez showed to you."; + next; + mes "[Savaric]"; + mes "\"I.. I can't believe.. My master told me, I need to be careful because of my temper - but I never thought, it would lead me to do such a terrible mistake. Oh, Reid - and all the people in the inn! What have I done?!\""; + next; + mes "He seems pained by his guilt."; + next; + mes "[Savaric]"; + mes "\"" + strcharinfo(0) + ", please, can you go to Reid and tell her about what I've done? And then ask her if she will ever be able to forgive me?\""; + next; + mes "\"But wait. It is not enough just to ask for forgiveness. Please, can you bring her " + @DIAMOND_AMOUNT + " diamonds? They symbolize my pure feelings for her even.\""; + set @state, 4; + callsub S_Update_Mask; + close; + +L_Waiting: + mes "[Savaric]"; + mes "\"Have you already brought the diamonds to Reid?\""; + close; + +L_Apologize: + mes "[Savaric]"; + mes "\"Oh thank you! I thank you so much! Reid came here to talk to me.\""; + next; + mes "\"She forgave me! I'm so happy!\""; + next; + mes "\"You did so much for me, can I ask you for one last favor?\""; + next; + mes "\"Golbanez took my soul and I want it back. You were very clever how you negotiated with him so far. Could you get my soul back for me?\""; + set @state, 6; + callsub S_Update_Mask; + close; + +L_Want_Soul: + close; + +L_Have_Soul: close; L_Reid: diff --git a/npc/027-2_Caretakers_House/testnpcs.txt b/npc/027-2_Caretakers_House/testnpcs.txt index a050cd7a..c126e58d 100755 --- a/npc/027-2_Caretakers_House/testnpcs.txt +++ b/npc/027-2_Caretakers_House/testnpcs.txt @@ -52,7 +52,6 @@ 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 (restarting the client seems to help - strange) - choose reset all, if the other stuff don't work."; menu "reset all",-, "reset reid " + @woman,L_Reid, @@ -63,7 +62,7 @@ "leave", L_Close; set QUEST_Graveyard_Inn, 0; - +close; L_Reid: set @woman, 0; callsub S_Update_Mask_Woman; @@ -90,31 +89,31 @@ L_Close: S_Update_Mask_Golb: set QUEST_Graveyard_Inn, (QUEST_Graveyard_Inn & ~(@Graveyard_Inn_Golb_MASK)) - | (@state << @Graveyard_Inn_Golb_SHIFT); + | (@Golb << @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); + | (@Husband << @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); + | (@Child << @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); + | (@Lover << @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); + | (@woman << @Graveyard_Inn_Woman_SHIFT); return; } |