diff options
Diffstat (limited to 'npc')
-rw-r--r-- | npc/009-2_Hurnscald/nurse.txt | 115 | ||||
-rw-r--r-- | npc/011-1_Woodland/auldsbel.txt | 2 | ||||
-rw-r--r-- | npc/013-1_Woodland_hills/sagatha.txt | 3 | ||||
-rw-r--r-- | npc/functions/magic.txt | 4 |
4 files changed, 63 insertions, 61 deletions
diff --git a/npc/009-2_Hurnscald/nurse.txt b/npc/009-2_Hurnscald/nurse.txt index 1cffc5b4..8262bf85 100644 --- a/npc/009-2_Hurnscald/nurse.txt +++ b/npc/009-2_Hurnscald/nurse.txt @@ -1,7 +1,7 @@ //###################################################################################### //# Nurse //# AUTHORS: Jenalya and Pjotr Orial -//# REVIEWED BY: +//# REVIEWED BY: //# heals player below level 20 for free and tells players about the doctor on the 3rd floor. //# //# gives the resist-poison skill, used global (!) variable: "$NPC_NURSE", split up in 4 bytes: @@ -9,7 +9,7 @@ //# byte3 (bit 24-31) still unused //# used player-variable: QUEST_Forestbow, nibble7 //# states: -//# 0 if skills are available, she tells you about her plans of doing the antidote, +//# 0 if skills are available, she tells you about her plans of doing the antidote, //# need black scorpion stingers and snake tongues //# 1 waits for ingredients: black scorpion stingers and snake tongues //# 2 waits for ingredients: acorns, apples, orange, healing potion, when these ingreds are there, @@ -26,7 +26,7 @@ set @SNAKET_AMOUNT, 5; set @BSCORPIONST_AMOUNT, 10; // This quest can be done very often: so give less xp - set @QUEST1_EXP, 300; + set @QUEST1_EXP, 300; set @ACORNS_AMOUNT, 10; set @GREENAPPLE_AMOUNT, 5; set @REDAPPLE_AMOUNT, 5; @@ -39,7 +39,7 @@ set @Q_poison_MASK, NIBBLE_7_MASK; set @Q_poison_SHIFT, NIBBLE_7_SHIFT; set @Q_poison, (QUEST_Forestbow_state & @Q_poison_MASK) >> @Q_poison_SHIFT; - + if (@Q_poison == 7) goto state7; if (@Q_poison == 6) goto state6; if (@Q_poison == 5) goto state5; @@ -50,7 +50,7 @@ mes "TODO: remove: skill check: " + getskilllv(SKILL_POOL); if (getskilllv(SKILL_POOL)) goto state0; -L_Usual: +L_Usual: mes "[Nurse]"; mes "\"How can I help you?\""; next; @@ -96,7 +96,7 @@ L_NohMask: close; state0: - mes "[Nurse]"; + mes "[Nurse]"; mes "\"Welcome! You really look like a competent person. Maybe you can help to deal with a problem we have.\""; next; mes "\"We recently had some accidents in the mines. It seems, that the creatures in the mines become more aggressive.\""; @@ -106,9 +106,9 @@ state0: mes "\"For that reason, I want to do some research on this subject, to create an anitdote. But I need help to get some ingredients, someone who is able to deal with the dangerous creatures in the mines.\""; next; menu - "I will do what I can. What do you need?", L_firstquest, + "I will do what I can. What do you need?", L_firstquest, "I'm really sorry, but I don't think, I can help you.", -; - + mes "\"That is disagreeable to hear. Maybe I can find another person to take this task.\""; next; goto L_Usual; @@ -116,13 +116,13 @@ state0: L_firstquest: set @Q_poison, 1; callsub S_Update_Var; - + mes "\"That's great! First, I need some parts of the creatures, that cause the poison.\""; next; L_ExplainAgain1: mes "\"Please bring me five tongues of snakes and ten stingers of black scorpions.\""; close; - + state1: mes "[Nurse]"; mes "\"You are back, wonderful! Did you get, what we need for the antidote?\""; @@ -131,25 +131,25 @@ state1: "Actually, I have another question.", L_Usual, "Sorry, I forgot. What shall I bring you?", L_ExplainAgain1, "I have what you asked for.", -, - "I'm still working on that.", quit; - + "I'm still working on that.", quit; + if (countitem("SnakeTongue") < @SNAKET_AMOUNT || countitem("BlackScorpionStinger") < @BSCORPIONST_AMOUNT) goto L_NotEnough; delitem "SnakeTongue", @SNAKET_AMOUNT; delitem "BlackScorpionStinger", @BSCORPIONST_AMOUNT; getexp @QUEST1_EXP, 0; - + set @Q_poison, 2; callsub S_Update_Var; - + mes "[Nurse]"; mes "\"Very good. Now I have to extract the poison from this, it will take some time.\""; next; mes "\"But there are some other things we will need in any case. It would be courteous, if you could get them meanwhile.\""; next; -L_ExplainAgain2: +L_ExplainAgain2: mes "\"Please bring me ten acorns, five red apples and five green apples, also five oranges. And we need some small healing potions. They will be useful to hold off the baneful effects. I guess, three of them will be enough.\""; close; - + state2: mes "You look at the nurse, who seems to be really tired with shadows under her eyes. When she regocnize you, she smiles."; mes "[Nurse]"; @@ -160,7 +160,7 @@ state2: "I have a bad memory. Can you tell me again, what we need?", L_ExplainAgain2, "I managed to get everything we need.", -, "I will go and get it.", quit; - + if (countitem("Acorn") < @ACORNS_AMOUNT || countitem("GreenApple") < @GREENAPPLE_AMOUNT || countitem("RedApple") < @REDAPPLE_AMOUNT || countitem("Orange") < @ORANGE_AMOUNT || countitem("SmallHealingPotion") < @HEALING_AMOUNT) goto L_NotEnough; delitem "Acorn", @ACORNS_AMOUNT; delitem "GreenApple", @GREENAPPLE_AMOUNT; @@ -168,13 +168,13 @@ state2: delitem "Orange", @ORANGE_AMOUNT; delitem "SmallHealingPotion", @HEALING_AMOUNT; getexp @QUEST2_EXP, 0; - + set @Q_poison, 3; - callsub S_Update_Var; - + callsub S_Update_Var; + L_Chemistry: callsub L_Shuffle_Need; - mes "The nurse takes the ingredients you brought and starts to squeeze the fruits and to crush the acorns. Then she put the fruit juices in some complicated looking chemical device."; + mes "The nurse takes the ingredients you brought and starts to squeeze the fruits and to crush the acorns. Then she put the fruit juices in some complicated looking chemical device."; next; mes "After some minutes, it is blubbering and steaming and some liquidity is dropping in a pot under the device."; next; @@ -191,20 +191,20 @@ L_Chemistry: next; mes "\"For that purpose, I will poison you. Then you drink the antidote to see, if it works.\""; next; - mes "\"If we make a mistake, this might be exhausting and painful, so you should rest a while and prepare yourself.\""; + mes "\"If we make a mistake, this might be exhausting and painful, so you should rest a while and prepare yourself.\""; next; mes "\"Come back, when you feel ready for that task.\""; close; - + state3: mes "[Nurse]"; mes "\"Hello my friend. You feel prepared to test the antidote?\""; next; - menu + menu "Actually, I have another question.", L_Usual, - "Yes, let us begin.",-; - -L_Exp_Game: + "Yes, let us begin.",-; + +L_Exp_Game: mes "[Nurse]"; mes "\"Listen carefully! I will explain, what you need to do.\""; next; @@ -223,7 +223,7 @@ L_Exp_Game: "Alright.", -; L_Game: set @Q_poison, @Q_poison + 1; - callsub S_Update_Var; + callsub S_Update_Var; // healing, venom, stabilizer callsub L_Load_Need; //descriptions @@ -251,16 +251,16 @@ L_Game: if(@hlNeed/@vnNeed > 1 ) mes "\"I see that the healing potions are needed at least " + @hlNeed/@vnNeed + " times as much as the venom.\""; if(@vnNeed/@hlNeed > 1 ) mes "\"I see that the venom extracts are needed at least " + @vnNeed/@hlNeed + " times as much as the healing potions.\""; - next; + next; if(@stNeed/@vnNeed > 1 ) mes "\"I see that the stabilizer is needed at least " + @stNeed/@vnNeed + " times as much as the venom extracts.\""; if(@vnNeed/@stNeed > 1 ) mes "\"I see that the venom extracts are needed at least " + @vnNeed/@stNeed + " times as much as the stabilizer.\""; next; - + if(@stNeed/@hlNeed > 1 ) mes "\"I see that the stabilizer is needed at least " + @stNeed/@hlNeed + " times as much as the healing potions.\""; if(@hlNeed/@stNeed > 1 ) mes "\"I see that the healing potions are needed at least " + @hlNeed/@stNeed + " times as much as the stabilizer.\""; next; - + set @max, @count+@offset-1; set @min, @offset; mes "\"My scale goes up to " + @max + ". I suggest to put at least " + @min +" drops on the scale.\""; @@ -280,7 +280,7 @@ L_Game: input @stPut; if (@stPut < @offset) goto L_Game_tooless; if (@stPut > @max) goto L_Game_toomuch; - + mes "The nurse puts the potions together according to your instructions. Then she takes a spoon and stirs it."; next; mes "You take the glass and look suspiciously at the liquid, which has changed to an odd colour."; @@ -299,7 +299,7 @@ L_Game: next; mes "You lift the glass to your lips and drink it all at once."; next; - + if ( (@hlPut > @hlNeed) && (@vnPut > @vnNeed) ) goto m_hl_m_vn; if ( (@hlPut > @hlNeed) && (@vnPut <= @vnNeed) ) goto m_hl_l_vn; if ( (@hlPut <= @hlNeed) && (@vnPut > @vnNeed) ) goto l_hl_m_vn; @@ -307,12 +307,11 @@ L_Game: mes "You feel quite normal."; mes "[Nurse]"; - mes "\"Oh yes, the concentration of the healing potions and the venom extracts seem to be right.\""; + mes "\"Oh yes, the concentration of the healing potions and the venom extracts seem to be right.\""; next; set @hl_vn_ok, 1; goto check_st; - m_hl_m_vn: //poison for 3 minutes sc_start sc_poison, 1, 20; @@ -322,7 +321,7 @@ m_hl_m_vn: next; mes "The feeling of happieness disappears, but you seems to be still poisoned."; goto check_st; - + m_hl_l_vn: //poison for 1 minute sc_start sc_poison, 1, 20; @@ -339,10 +338,10 @@ m_hl_l_vn: mes "You lay down on the floor and fall asleep."; next; mes "As you open your eyes again, the nurse shines in your face with a lamp and pulls your eyelids open. Then she nodds."; - next; + next; mes "\"Very well, you are sober again.\""; next; - + goto check_st; l_hl_m_vn: @@ -365,7 +364,7 @@ l_hl_l_vn: //poison for 1 minute sc_start sc_poison, 1, 20; mes "The antidote seems to have no effect."; - goto check_st; + goto check_st; check_st: if ( (@stPut < @stNeed) ) goto l_st; @@ -377,7 +376,7 @@ check_st: next; goto notallcorrect; -l_st: +l_st: mes "[Nurse]"; mes "\"It seems, as if we took not enough of the stabilizer, the antidote would loose its effect after some time.\""; next; @@ -387,15 +386,14 @@ m_st: mes "\"It seems, as if we took too much of the stabilizer. The antidote would turn into venom again after some time.\""; next; goto notallcorrect; - allcorrect: mes "You feel totally normal again."; next; mes "[Nurse]"; mes "\"Wonderfull! You made it! Now I will be able to help all the people, who get poisoned in the mines!\""; - next; + next; mes "\"Thank you so much! Oh, and it seems, as if you have gained the skill to resist posion someway. This is great.\""; - next; + next; mes "\"You should talk to someone, who can help you to focus on your skills.\""; next; getexp @ANTIDOTE, 0; @@ -408,9 +406,9 @@ notallcorrect: mes "[Nurse]"; mes "\"It didn't work. You are a really brave person. Now you should rest and recover. I hope, you won't give up now. Please come back later, so we can try it again.\""; next; - + close; -state4: +state4: mes "The nurse has a worried look in her face."; mes "[Nurse]"; mes "\"Hello. I hope you recovered well?\""; @@ -425,13 +423,13 @@ state4: next; mes "\"If you feel ok, we could try it again.\""; next; - + menu "I still feel a bit dizzy, so I don't want to do it now.", L_Usual, "I'm ok. We can try, but please explain again.", L_Exp_Game, "Let's start right now.", L_Game; - -state5: + +state5: mes "The nurse looks at you pitiful."; mes "[Nurse]"; mes "\"Hello. I'm really sorry for causing you so much pain.\""; @@ -446,12 +444,12 @@ state5: next; mes "\"Do you want to have another try?\""; next; - + menu "I still feel a bit dizzy, so I don't want to do it now.", L_Usual, "I'm ok. We can try, but please explain again.", L_Exp_Game, "Let's start right now.", L_Game; - + state6: mes "The nurse looks at you pitiful."; mes "[Nurse]"; @@ -460,11 +458,10 @@ state6: mes "\"We should try again, right?\""; set @Q_poison, 1; callsub S_Update_Var; - - goto L_ExplainAgain1; + goto L_ExplainAgain1; -state7: // geschafft +state7: // geschafft mes "[Nurse]"; mes "\"Thanks a lot, you can call yourself a true hero now!\""; next; @@ -479,7 +476,7 @@ L_NotEnough: if (@Q_poison == 2) goto L_ExplainAgain2; // the following close *should* never be reached, but who knows, whoever will mess this script up! close; - + quit: close; @@ -491,7 +488,7 @@ S_Update_Var: L_Game_init_vars: set @count, 24; - set @offset, 1; + set @offset, 1; return; L_Shuffle_Need: @@ -499,14 +496,14 @@ L_Shuffle_Need: set @hlNeed, @offset + rand(@count); set @vnNeed, @offset + rand(@count); set @stNeed, @offset + rand(@count); - + set $NPC_NURSE, ($NPC_NURSE & ~(BYTE_0_MASK | BYTE_1_MASK | BYTE_2_MASK) | (@hlNeed << BYTE_0_SHIFT) | (@vnNeed << BYTE_1_SHIFT) | (@stNeed << BYTE_2_SHIFT)); return; - + L_Load_Need: callsub L_Game_init_vars; set @hlNeed, ($NPC_NURSE & BYTE_0_MASK) >> BYTE_0_SHIFT; @@ -516,8 +513,10 @@ L_Load_Need: L_Game_tooless: //TODO + mes ""; L_Game_toomuch: - //TODO + //TODO + mes ""; } diff --git a/npc/011-1_Woodland/auldsbel.txt b/npc/011-1_Woodland/auldsbel.txt index 8a76ff30..0b2174f1 100644 --- a/npc/011-1_Woodland/auldsbel.txt +++ b/npc/011-1_Woodland/auldsbel.txt @@ -516,7 +516,7 @@ L_question: goto L_main_menu; L_Q_astralsoul: - if (!getskillv(SKILL_ASTRAL_SOUL)) + if (!getskilllv(SKILL_ASTRAL_SOUL)) goto L_Q_astralsoul_L; next; mes "[Auldsbel the Wizard]"; diff --git a/npc/013-1_Woodland_hills/sagatha.txt b/npc/013-1_Woodland_hills/sagatha.txt index 3f8cb4f8..372cd20a 100644 --- a/npc/013-1_Woodland_hills/sagatha.txt +++ b/npc/013-1_Woodland_hills/sagatha.txt @@ -359,11 +359,12 @@ L_Q_astralsoul: mes "\"Yes, there is a way to improve your magic.\""; next; mes "\"Did you ever hear about focusing?\""; + next; mes "\"It is a mental ability, which improves you at a certain focused skill.\""; next; mes "\"Yes, I am focused on nature magic, but I cannot teach focusing. That is another realm of magic. Just a few people can really focus your brain to a specific art of magic.\""; next; - mes "\"Usually those, who have the ability to help you with the mana seed, will have the ability to help you with the astral soul. These skills are similar."\"; + mes "\"Usually those, who have the ability to help you with the mana seed, will have the ability to help you with the astral soul. These skills are similar.\""; next; goto L_main; diff --git a/npc/functions/magic.txt b/npc/functions/magic.txt index 31baa66c..4dadb2a9 100644 --- a/npc/functions/magic.txt +++ b/npc/functions/magic.txt @@ -117,7 +117,9 @@ L_Q_post_imp: if (@ignore & @QQ_ASTRALSOUL) goto L_Q_post_astralsoul; - if (!getskillv(SKILL_MAGIC) || !getskillv(SKILL_POOL)) + if (!(getskilllv(SKILL_MAGIC))) + goto L_Q_post_astralsoul; + if (!(getskilllv(SKILL_POOL))) goto L_Q_post_astralsoul; set @choice$[@choices_nr], "...ways to improve my magic?"; set @choice_idx[@choices_nr], @QQ_IMP; |