diff options
Diffstat (limited to 'npc')
-rw-r--r-- | npc/027-2_Caretakers_House/_import.txt | 3 | ||||
-rw-r--r-- | npc/027-2_Caretakers_House/golbanez.txt | 71 | ||||
-rw-r--r-- | npc/027-2_Caretakers_House/husband.txt | 75 | ||||
-rw-r--r-- | npc/027-2_Caretakers_House/innkeeper.txt | 128 | ||||
-rw-r--r-- | npc/027-2_Caretakers_House/lover.txt | 142 | ||||
-rwxr-xr-x | npc/027-2_Caretakers_House/testnpcs.txt | 107 |
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; } |