diff options
-rw-r--r-- | npc/027-1_Graveyard/_mobs.txt | 10 | ||||
-rw-r--r-- | npc/027-2_Caretakers_House/husband.txt | 55 | ||||
-rw-r--r-- | npc/027-2_Caretakers_House/innkeeper.txt | 56 |
3 files changed, 100 insertions, 21 deletions
diff --git a/npc/027-1_Graveyard/_mobs.txt b/npc/027-1_Graveyard/_mobs.txt index 24d60cb2..bd05622a 100644 --- a/npc/027-1_Graveyard/_mobs.txt +++ b/npc/027-1_Graveyard/_mobs.txt @@ -87,9 +87,8 @@ _MOBCOUNT_ZOMBIES: if (@state != 1) return; // You have to kill 50?(or more?) zombies OR 50?(or more?) fallens. If you close the client, the @zombies count go back to zero. set @zombies, @zombies + 1; -// This is in DEBUG mode. That is the reason for the message. - message strcharinfo(0), "I killed " +@zombies+ " zombies. Now I need to kill only " +(50-@zombies)+ "."; - if (@zombies < 50) return; +// TODO: set 1 to 50 + if (@zombies < 1) return; message strcharinfo(0), "You found a strange bracelet hidden in the zombie's rotten rags. Maybe this is what the Crying child was looking for..."; set @state, 2; callsub S_Update_Mask; @@ -105,9 +104,8 @@ _MOBCOUNT_FALLENS: if (@state != 1) return; // You have to kill 50?(or more?) fallens OR 50?(or more?) zombies. If you close the client, the @fallens count go back to zero. set @fallens, @fallens + 1; -// This is in DEBUG mode. That is the reason for the message. - message strcharinfo(0), "I killed " +@fallens+ " fallens. Now I need to kill only " +(50-@fallens)+ "."; - if (@fallens < 50) return; +// TODO: set 1 to 50 + if (@fallens < 1) return; message strcharinfo(0), "You found a strange bracelet inside the fallen's broken helmet. Maybe this is what the Crying child was looking for..."; set @state, 2; callsub S_Update_Mask; diff --git a/npc/027-2_Caretakers_House/husband.txt b/npc/027-2_Caretakers_House/husband.txt index 7e2e578d..1253455a 100644 --- a/npc/027-2_Caretakers_House/husband.txt +++ b/npc/027-2_Caretakers_House/husband.txt @@ -5,13 +5,11 @@ set @state, ((QUEST_Graveyard_Inn & @Graveyard_Inn_MASK) >> @Graveyard_Inn_SHIFT); - //TODO: find out, why this don't work set @Graveyard_Inn_Woman_MASK, NIBBLE_0_MASK; set @Graveyard_Inn_Woman_SHIFT, NIBBLE_0_SHIFT; - set @woman, ((QUEST_Graveyard_Inn & @Graveyard_Inn_MASK_Woman) >> @Graveyard_Inn_SHIFT_Woman); - - //TODO: determine correct nibble + 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; @@ -25,7 +23,7 @@ set @SKULL_AMOUNT, 50; set @BONE_EXP, 30000; - if ((@state == 4) && (sex == 0) && (@kidstate >= 5)) goto L_Helped_Kid; //TODO: determine right value of kidstate + if ((@state == 4) && (sex == 0) && (@kidstate >= 7)) goto L_Helped_Kid; if (@state == 3) goto L_Brought_Bones; if (@state == 2) goto L_Check_Bones; if (@state == 1) goto L_Ice_Cube; @@ -70,6 +68,17 @@ 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, + "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, + "I'm still searching.", L_Close; if (countitem("IceCube") > 0) menu @@ -84,6 +93,8 @@ L_Check_Ice: goto L_Not_Enough_Cubes; delitem "IceCube", @ICE_CUBE_AMOUNT; + getexp @ICE_CUBE_EXP, 0; + set @state, 2; callsub S_Update_Mask; @@ -122,6 +133,8 @@ L_Check_Bones: delitem "Bone", @BONE_AMOUNT; delitem "Skull", @SKULL_AMOUNT; + getexp @BONE_EXP, 0; + set @state, 3; callsub S_Update_Mask; @@ -130,7 +143,16 @@ L_Brought_Bones: mes "\"Thanks for your help! Now I'll be able to satisfy our patrons wishes.\""; next; - mes "TODO: remove, debug: @woman =" + @woman; + 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, + "Your welcome.", L_Close; + + if (@kidstate == 4) + menu + "I found this in the main hall. Do you know to whom it belongs?", L_Bracelet, + "Your welcome.", L_Close; if (@woman > 5) menu @@ -174,8 +196,19 @@ L_Woman: L_Helped_Kid: mes "[Hamond]"; - mes "\"It was very nice of you to help my son. I think, I can tell you about Savaric.\""; + 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.\""; + next; + mes "\"They also say it increases 'magic atack'. But, in fact, I think these kids are delusional. Magic, pah.\""; + next; + mes "\"Anyway, you can easily find one of these in a lot of small shops in this 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; + close; L_Not_Enough_B: if (countitem("Bone") < @BONE_AMOUNT) @@ -190,7 +223,13 @@ L_Not_Enough_Cubes: close; L_Close: - close; + 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, diff --git a/npc/027-2_Caretakers_House/innkeeper.txt b/npc/027-2_Caretakers_House/innkeeper.txt index 855168bd..489dcaa3 100644 --- a/npc/027-2_Caretakers_House/innkeeper.txt +++ b/npc/027-2_Caretakers_House/innkeeper.txt @@ -6,8 +6,7 @@ set @Graveyard_Inn_SHIFT, NIBBLE_0_SHIFT; set @state, ((QUEST_Graveyard_Inn & @Graveyard_Inn_MASK) >> @Graveyard_Inn_SHIFT); - - //TODO: determine correct nibble + set @Graveyard_Inn_Kid_MASK, NIBBLE_2_MASK; set @Graveyard_Inn_Kid_SHIFT, NIBBLE_2_SHIFT; @@ -23,7 +22,7 @@ if (@state == 3) goto L_Bring_Tears; if (@state == 2) goto L_Offer_Help2; if (@state == 1) goto L_After_Welcome; - + mes "You see a dead women lying on the floor, something that appears to be her ghost floating above her dead body."; next; mes "[Ghost]"; @@ -46,10 +45,11 @@ L_After_Welcome: 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 "[Reids Ghost]"; mes "\"What happened to me? What do you mean?\""; //TODO: add more possible answers @@ -79,6 +79,13 @@ L_Ask_Dead: L_Offer_Help2: mes "Reids Ghost is still staring into space."; + + if (@kidstate == 5) + menu + "Shall I help you to find out what happened with you?", L_Skip1, + "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: menu "Shall I help you to find out what happened with you?", -, "I don't want to bother you.", L_Close; @@ -96,6 +103,17 @@ L_Bring_Tears: mes "[Reids Ghost]"; mes "\"Did you find something, which 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'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, + "I'm still searching.", L_Close; if (countitem("FrozenYetiTear") > 0) menu @@ -110,6 +128,8 @@ L_Check_Tears: goto L_Not_Enough_Tears; delitem "FrozenYetiTear", @YETI_TEAR_AMOUNT; + getexp @YETI_TEAR_EXP, 0; + set @state, 4; callsub S_Update_Mask; @@ -121,6 +141,12 @@ L_Ask_Life: mes "\"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, + "I need to think about that.", L_Close; +L_Skip2: menu "Please tell me about your life. Maybe this gives a clue what happened.",-, "I need to think about that.", L_Close; @@ -162,10 +188,9 @@ L_Ask_Life: if (Sex == 0) goto L_Woman; //TODO: think, if gender change should be checked - //TODO: determine correct value for kidstate if ((Sex == 1) && (@kidstate < 5)) goto L_Man; - mes "\"What I'm going to tell you is very personal, but you showed me you're a sensitive person with helping my child.\""; + mes "\"What I'm going to tell you is very personal, but you showed me you're a sensitive person with bringing me the bracelet.\""; L_Lovestory: mes "[Reids Ghost]"; @@ -225,14 +250,31 @@ L_Woman: next; goto L_Lovestory; +L_Bracelet: + 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."; + next; + mes "\"Ah, I forgot again. It pains me not being able to hold it. Please, take it with you, I don't want it anymore. It hurts too much.\""; + set @kidstate, 6; + callsub S_Update_Mask_Kid; + close; + L_Helped_Kid: mes "[Reids Ghost]"; - mes "\"You showed me you're a sensitive person with helping my child.\""; + mes "\"You showed me you're a sensitive person with bringing me the bracelet.\""; next; goto L_Lovestory; L_Close: 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, |