summaryrefslogtreecommitdiff
path: root/npc
diff options
context:
space:
mode:
Diffstat (limited to 'npc')
-rw-r--r--npc/027-1_Graveyard/_mobs.txt10
-rw-r--r--npc/027-2_Caretakers_House/husband.txt55
-rw-r--r--npc/027-2_Caretakers_House/innkeeper.txt56
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,