From 82244e430cb91cccc1b4046eb29cced1986c95b7 Mon Sep 17 00:00:00 2001 From: Sini Ruohomaa Date: Sun, 29 Aug 2010 11:20:02 +0300 Subject: Language polish project cont'd. --- npc/009-2_Hurnscald/nicholas.txt | 85 +++++++++++++++++----------------------- npc/009-2_Hurnscald/peter.txt | 17 ++++---- 2 files changed, 45 insertions(+), 57 deletions(-) (limited to 'npc/009-2_Hurnscald') diff --git a/npc/009-2_Hurnscald/nicholas.txt b/npc/009-2_Hurnscald/nicholas.txt index 8c820849..639b8be3 100644 --- a/npc/009-2_Hurnscald/nicholas.txt +++ b/npc/009-2_Hurnscald/nicholas.txt @@ -36,15 +36,11 @@ set @Q_SHIELD_status, (QUEST_Forestbow_state & @Q_SHIELD_MASK) >> @Q_SHIELD_SHIFT; mes "[Nicholas]"; - mes "\"Hello there,"; - mes "I'm an expert blacksmith."; - mes "If you get me some coal and iron ingots"; - mes "I could make you a very valuable shield"; - mes "or helmet.\""; + mes "\"Hello, there! I'm an expert blacksmith. If you get me some [Coal] and [Iron Ingot]s, I could make you a very valuable shield or helmet.\""; next; menu - "I have iron ingots!", L_Check, - "Where can I get coal and iron Ingots?", L_Info, + "I have Iron Ingots!", L_Check, + "Where can I get Coal and Iron Ingots?", L_Info, "I'm okay, thanks.", L_Pass; L_Check: @@ -58,32 +54,26 @@ L_Check: L_Info: mes "[Nicholas]"; - mes "\"You can find coal and iron ore in mines."; - mes "\"Once you have coal and iron ore, find a smith that will smelt the iron ore and cast them into iron ingots."; - mes "\"Come back here with more coal and the iron ingots and I'll make something nice for you.\""; + mes "\"You can find [Coal] and [Iron Ore] in mines. Once you have [Coal] and [Iron Ore], find a smith that will smelt the [Iron Ore] and cast them into [Iron Ingot]s.\""; + next; + mes "[Nicholas]"; + mes "\"Come back here with some [Coal] and [Iron Ingot]s, and I'll make something nice for you.\""; close; L_Pass: mes "[Nicholas]"; - mes "\"Oh, okay"; - mes "Come back any time.\""; + mes "\"Oh, okay. Come back any time.\""; close; L_StageA: mes "[Nicholas]"; - mes "\"That's just enough for me to make you"; - mes "a winged Knight's Helmet."; - mes "But it'll cost you 10,000GP,"; - mes "6 Coal and 3 Iron Ingots.\""; + mes "\"That's just enough for me to make you a winged [Knight's Helmet], but it'll cost you 10,000GP, 6 [Coal] and 3 [Iron Ingot]s.\""; next; goto L_main_menu; L_StageB: mes "[Nicholas]"; - mes "\"Ahh, with that much coal and iron ingots I can"; - mes "make you one of two helmets,"; - mes "for only 10,000GP, or I can"; - mes "make you a shield, for 20,000GP.\""; + mes "\"Ahh, with that much [Coal] and [Iron Ingot]s I can make you one of two helmets, for only 10,000GP, or I can make you a shield, for 20,000GP.\""; mes ""; mes "\"What would you like?\""; next; @@ -91,13 +81,9 @@ L_StageB: L_StageC: mes "[Nicholas]"; - mes "\"Excellent, that's enough to make"; - mes "three different types of helmet."; - mes "My fee is 10,000GP."; - mes "I can also make a shield, but that"; - mes "that will cost you 20,000 GP.\""; + mes "\"Excellent, that's enough to make three different types of helmet. My fee is 10,000GP. I can also make a shield, but that will cost you 20,000 GP.\""; mes ""; - mes "\"Which helmet or shield will it be?\""; + mes "\"Which will it be?\""; next; goto L_main_menu; @@ -115,14 +101,14 @@ L_main_menu: setarray @choice_idx, 0, 0, 0, 0, 0, 0; if (countitem("ShortSword") < 1) goto L_main_menu_post_setzer; - set @choice$[@choices_nr], "Can you make my short sword better?"; + set @choice$[@choices_nr], "Can you make my Short Sword better?"; set @choice_idx[@choices_nr], @CHOICE_SETZER; set @choices_nr, 1 + @choices_nr; L_main_menu_post_setzer: if ( (countitem("IngotIron")<3) | (countitem("Coal") <6) ) goto L_no_more_helmets; - set @choice$[@choices_nr], "Knight's Helmet. (3 Iron Ingots & 6 Coal)"; + set @choice$[@choices_nr], "Knight's Helmet (3 Iron Ingots & 6 Coal)."; set @choice_idx[@choices_nr], @CHOICE_KNIGHT; set @choices_nr, 1 + @choices_nr; @@ -172,8 +158,7 @@ L_no_more_helmets: L_NoItem: mes "[Nicholas]"; - mes "\"It appears you don't have enough Coal and Iron Ingots for me to work with."; - mes "Please do come back when you have more though.\""; + mes "\"It appears you don't have enough [Coal] and [Iron Ingot]s for me to work with. Please do come back when you have more, though.\""; close; L_ComeBack: @@ -218,7 +203,7 @@ L_YesWarlord: L_YesShield: mes "[Nicholas]"; - mes "Nicholas examines your Iron Ingots."; + mes "Nicholas examines your [Iron Ingot]s."; mes "\"No, this iron is too brittle; for something as large as a shield I need to mix in softer iron. Can I see if you have anything suitable?\""; next; @@ -229,8 +214,8 @@ L_YesShield: if (countitem("InfantryHelmet") == 0) goto L_NoInfantry; mes "[Nicholas]"; - mes "Nicholas pulls out two of your infantry helmets."; - mes "\"I can use those... yes, that should work. Now all I need is a leather patch for the handle, and 20,000 GP.\""; + mes "Nicholas pulls out two of your [Infantry Helmet]s."; + mes "\"I can use those... yes, that should work. Now all I need is a [Leather Patch] for the handle, and 20,000 GP.\""; if (@Q_SHIELD_status < @SHIELD_KNOWS_PATCH) set @Q_SHIELD_status, @SHIELD_KNOWS_PATCH; @@ -238,8 +223,8 @@ L_YesShield: next; - menu "Here you are.", -, - "Where can I get a leather patch?", L_WhereLeather, + menu "Here you are!", -, + "Where can I get a Leather Patch?", L_WhereLeather, "No way.", L_Pass; if (zeny < 20000) goto L_ShieldNoZeny; @@ -251,7 +236,7 @@ L_YesShield: mes "[Nicholas]"; mes "\"Yes, it looks as if you have all that is needed!\""; - mes "You watch Nicholas melt the ingots and helmets and form a shield out of the resulting iron. He then cuts your leather patch apart and adds it to the handles."; + mes "You watch Nicholas melt the ingots and helmets and form a shield out of the resulting iron. He then cuts your [Leather Patch] apart and adds it to the handles."; mes "\"Here is your shield!\""; delitem "InfantryHelmet", 1; @@ -279,34 +264,34 @@ L_ShieldNoZeny: L_ShieldNoInfantry: mes "[Nicholas]"; - mes "\"Now this is strange... I could have sworn that you had two infantry helmets right here. Well, come back if you have some more!\""; + mes "\"Now this is strange... I could have sworn that you had two [Infantry Helmet]s right here. Well, come back if you have some more!\""; close; L_ShieldNoIngot: mes "[Nicholas]"; - mes "\"How odd... didn't I put your iron ingots on the table right here? Well, I will need it back to make the shield.\""; + mes "\"How odd... didn't I put your [Iron Ingot]s on the table right here? Well, I will need them back to make the shield.\""; close; L_ShieldNoCoal: mes "[Nicholas]"; - mes "\"How odd... didn't I put your coal on the table right here? Well, I will need it back to make the shield.\""; + mes "\"How odd... didn't I put your [Coal] on the table right here? Well, I will need it back to make the shield.\""; close; L_ShieldNoLeatherPatch: mes "[Nicholas]"; - mes "\"You don't have a suitable leather patch. I'm sorry, but a shield without one would chafe terribly.\""; + mes "\"You don't have a suitable [Leather Patch]. I'm sorry, but a shield without one would chafe terribly.\""; close; L_MoreInfantry: mes "[Nicholas]"; - mes "Nicholas takes your infantry helmet and examines it."; + mes "Nicholas takes your [Infantry Helmet] and examines it."; mes "\"Yes, this is perfect! If you can bring me another one of those, I can make your shield.\""; close; L_NoInfantry: mes "[Nicholas]"; mes "Nicholas shakes his head."; - mes "\"No, none of these items are suitable. Try looking for somewhat large metal things.\""; + mes "\"No, none of these items are suitable. Try looking for somewhat large metal items.\""; close; L_WhereLeather: @@ -319,8 +304,8 @@ L_SetzerQuest: mes "[Nicholas]"; if (@Q_SETZER_status & @SETZER_FLAG_MADE_SETZER) mes "\"Another one? Sure, why not.\""; - mes "Nicholas examines your short sword, then nods."; - mes "\"This is good quality. I can make something special out of it, with three ingot bars of iron and 50,000 GP-- but I will also need a potion of monster oil.\""; + mes "Nicholas examines your [Short Sword], then nods."; + mes "\"This is good quality. I can make something special out of it, with three ingot bars of iron and 50,000 GP -- but I will also need a potion of monster oil.\""; if (@Q_SETZER_status < @SETZER_KNOWS_OIL) set @Q_SETZER_status, @SETZER_KNOWS_OIL; callsub L_Update_Var; @@ -328,7 +313,7 @@ L_SetzerQuest: menu "Here you are.", -, "Monster oil? What's that?", L_ExplainMonsterOil, - "HOW much? Never mind.", L_Pass; + "HOW much? Nevermind then!", L_Pass; if (zeny < 50000) goto L_SetzerNoZeny; if ( (countitem("IngotIron") < 3) | (countitem("Coal") < 6) ) goto L_SetzerNoIngot; @@ -337,7 +322,7 @@ L_SetzerQuest: // No inventory check needed, as the short sword is removed, opening a slot mes "[Nicholas]"; - mes "Nicholas takes the items, heats up your sword and pounds it with a heavy hammer. Before your eyes it turns thinner and flatter. Finally he pours the monster oil over it, heats it up again and douses it in water."; + mes "Nicholas takes the items, heats up your sword and pounds it with a heavy hammer. As you watch, it turns thinner and flatter. Finally he pours the monster oil over it, heats the metal up again and douses it in water."; set zeny, zeny - 50000; delitem "IngotIron", 3; @@ -356,16 +341,16 @@ L_SetzerQuest: mes "[Nicholas]"; mes "Nicholas hands you the completed sword. It feels strangely light in your hands."; - mes "\"I made it lighter and faster, it should also cut a little better now. This kind of sword is called a Setzer, after a famous gambler who invented it as a weapon in between a knife and a sword.\""; + mes "\"I made it lighter and faster, it should also cut a little better now. This kind of sword is called a [Setzer], after a famous gambler who invented it as a weapon in between a knife and a sword.\""; next; mes "[Nicholas]"; - mes "\"I'm quite happy with this one. Be careful around the edge, though, it is quite sharp.\""; + mes "\"I'm quite happy with this one. Be careful around the edge, though, it is quite sharp!\""; close; L_ExplainMonsterOil: mes "[Nicholas]"; - mes "\"Monster oil is a special oil that can be used to harden thin sheets of metal, if used properly. Unfortunately it is very hard to get. Perhaps one of our local alchemists can help you with it?\""; + mes "\"Monster oil is a special oil that can be used to harden thin sheets of metal, if used properly. Unfortunately, it is very hard to get. Perhaps one of our local alchemists can help you with it?\""; close; L_SetzerNoZeny: @@ -385,7 +370,7 @@ L_SetzerNoMonsterOil: L_SetzerNoSword: mes "[Nicholas]"; - mes "\"I will need your old short sword as a basis. Please bring it to me first.\""; + mes "\"I will need your old [Short Sword] as a basis. Please bring it to me first.\""; close; L_end: diff --git a/npc/009-2_Hurnscald/peter.txt b/npc/009-2_Hurnscald/peter.txt index 1fcea250..85e31dc9 100644 --- a/npc/009-2_Hurnscald/peter.txt +++ b/npc/009-2_Hurnscald/peter.txt @@ -3,14 +3,17 @@ 009-2.gat,183,57,0 script Peter 157,{ mes "[Peter]"; - mes "\"Hello, I am Nicholas' apprentice, Peter.\""; + mes "\"Hello, I am Peter, apprentice to Nicholas.\""; next; - mes "\"I can make you some sturdy armor if you give me iron ingots to craft with and gold pieces for my efforts. What would you like me to make?\""; + mes "\"I can make you some sturdy armor: you must give me [Iron Ingot]s to craft with and some gold pieces for my efforts.\""; + next; + mes "[Peter]"; + mes "\"What would you like me to make?\""; menu - "Chain Mail (10 coal, 5 ingots and 20000 GP)", L_Peter_Chain_Mail, - "Light Plate (20 coal, 10 ingots and 50000 GP)", L_Peter_Light_Plate, - "Warlord Plate (30 coal, 15 ingots and 100000 GP)", L_Peter_Warlord_Plate, - "nevermind", -; + "Chain Mail (10 coal, 5 ingots and 20000 GP).", L_Peter_Chain_Mail, + "Light Plate (20 coal, 10 ingots and 50000 GP).", L_Peter_Light_Plate, + "Warlord Plate (30 coal, 15 ingots and 100000 GP).", L_Peter_Warlord_Plate, + "Nevermind.", -; close; L_Peter_Chain_Mail: @@ -64,7 +67,7 @@ L_Peter_NotEnough_Ingot: L_Peter_NotEnough_Coal: mes "[Peter]"; - mes "\"You don't have enough coal.\""; + mes "\"You don't have enough [Coal].\""; close; L_Peter_TooMany: -- cgit v1.2.3-70-g09d2 From 3dc13da84ef8237d8072deaa4ae595abcee5e15d Mon Sep 17 00:00:00 2001 From: Freeyorp Date: Sun, 3 Oct 2010 05:53:22 +1300 Subject: Critical fixes for Nicholas and Lora Tay --- npc/009-2_Hurnscald/nicholas.txt | 17 ++++++++++------- npc/010-2_Dimonds_Cove/loratay.txt | 6 ++++++ 2 files changed, 16 insertions(+), 7 deletions(-) (limited to 'npc/009-2_Hurnscald') diff --git a/npc/009-2_Hurnscald/nicholas.txt b/npc/009-2_Hurnscald/nicholas.txt index 639b8be3..fe4af0c3 100644 --- a/npc/009-2_Hurnscald/nicholas.txt +++ b/npc/009-2_Hurnscald/nicholas.txt @@ -47,9 +47,9 @@ L_Check: mes "[Nicholas]"; mes "\"Let me take at look at how much you have...\""; next; - if ( (countitem("IngotIron")<3) | (countitem("Coal") < 6) ) goto L_NoItem; - if ( (countitem("IngotIron")<6) | (countitem("Coal") < 12) ) goto L_StageA; - if ( (countitem("IngotIron")<9) | (countitem("Coal") < 18) ) goto L_StageB; + if ( (countitem("IngotIron")<3) || (countitem("Coal") < 6) ) goto L_NoItem; + if ( (countitem("IngotIron")<6) || (countitem("Coal") < 12) ) goto L_StageA; + if ( (countitem("IngotIron")<9) || (countitem("Coal") < 18) ) goto L_StageB; goto L_StageC; L_Info: @@ -107,12 +107,12 @@ L_main_menu: L_main_menu_post_setzer: - if ( (countitem("IngotIron")<3) | (countitem("Coal") <6) ) goto L_no_more_helmets; + if ( (countitem("IngotIron")<3) || (countitem("Coal") <6) ) goto L_no_more_helmets; set @choice$[@choices_nr], "Knight's Helmet (3 Iron Ingots & 6 Coal)."; set @choice_idx[@choices_nr], @CHOICE_KNIGHT; set @choices_nr, 1 + @choices_nr; - if ( (countitem("IngotIron")<6) | (countitem("Coal") < 12) ) goto L_no_more_helmets; + if ( (countitem("IngotIron")<6) || (countitem("Coal") < 12) ) goto L_no_more_helmets; set @choice$[@choices_nr], "Crusade Helmet. (6 Iron Ingots & 12 Coal)"; set @choice_idx[@choices_nr], @CHOICE_CRUSADE; @@ -122,7 +122,7 @@ L_main_menu_post_setzer: set @choice_idx[@choices_nr], @CHOICE_SHIELD; set @choices_nr, 1 + @choices_nr; - if ( (countitem("IngotIron")<9) | (countitem("Coal") < 18) ) goto L_no_more_helmets; + if ( (countitem("IngotIron")<9) || (countitem("Coal") < 18) ) goto L_no_more_helmets; set @choice$[@choices_nr], "Warlord Helmet. (9 Iron Ingots & 18 Coal)"; set @choice_idx[@choices_nr], @CHOICE_WARLORD; @@ -173,6 +173,7 @@ L_NoMoney: L_YesKnight: if (zeny < 10000) goto L_NoMoney; + if ( (countitem("IngotIron")<3) || (countitem("Coal") < 6) ) goto L_NoItem; getinventorylist; if (@inventorylist_count == 100) goto L_TooMany; set zeny, zeny - 10000; @@ -183,6 +184,7 @@ L_YesKnight: L_YesCrusade: if (zeny < 10000) goto L_NoMoney; + if ( (countitem("IngotIron")<6) || (countitem("Coal") < 12) ) goto L_NoItem; getinventorylist; if (@inventorylist_count == 100) goto L_TooMany; set zeny, zeny-10000; @@ -193,6 +195,7 @@ L_YesCrusade: L_YesWarlord: if (zeny < 10000) goto L_NoMoney; + if ( (countitem("IngotIron")<9) || (countitem("Coal") < 18) ) goto L_NoItem; getinventorylist; if (@inventorylist_count == 100) goto L_TooMany; set zeny, zeny-10000; @@ -316,7 +319,7 @@ L_SetzerQuest: "HOW much? Nevermind then!", L_Pass; if (zeny < 50000) goto L_SetzerNoZeny; - if ( (countitem("IngotIron") < 3) | (countitem("Coal") < 6) ) goto L_SetzerNoIngot; + if ( (countitem("IngotIron") < 3) || (countitem("Coal") < 6) ) goto L_SetzerNoIngot; if (countitem("MonsterOilPotion") < 1) goto L_SetzerNoMonsterOil; if (countitem("ShortSword") < 1) goto L_SetzerNoSword; // No inventory check needed, as the short sword is removed, opening a slot diff --git a/npc/010-2_Dimonds_Cove/loratay.txt b/npc/010-2_Dimonds_Cove/loratay.txt index 47d5ea1d..c336de32 100644 --- a/npc/010-2_Dimonds_Cove/loratay.txt +++ b/npc/010-2_Dimonds_Cove/loratay.txt @@ -315,6 +315,9 @@ L_trim: if (@item >= 2100 && @item <= 2109) set @genitem, @item + 70; if (@genitem == 0) goto L_trim_impossible; if (zeny < 100) goto L_trim_nozeny; + + if (countitem(@delitem) < 1) + goto L_main_menu; delitem @delitem, 1; getitem @genitem, 1; @@ -368,6 +371,9 @@ L_lengthen: if (@genitem == 0) goto L_lengthen_impossible; if (zeny < 500) goto L_lengthen_nozeny; if (countitem ("CottonCloth") < 1) goto L_lengthen_nocotton; + + if (countitem(@delitem) < 1) + goto L_main_menu; delitem @delitem, 1; delitem "CottonCloth", 1; -- cgit v1.2.3-70-g09d2 From 3ab2089653f73d01bd6aa98073688c2d79b3650a Mon Sep 17 00:00:00 2001 From: Freeyorp Date: Sun, 3 Oct 2010 05:58:55 +1300 Subject: Make Nicholas mention that he requires coal for the setzer. --- npc/009-2_Hurnscald/nicholas.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'npc/009-2_Hurnscald') diff --git a/npc/009-2_Hurnscald/nicholas.txt b/npc/009-2_Hurnscald/nicholas.txt index fe4af0c3..d0719430 100644 --- a/npc/009-2_Hurnscald/nicholas.txt +++ b/npc/009-2_Hurnscald/nicholas.txt @@ -308,7 +308,7 @@ L_SetzerQuest: if (@Q_SETZER_status & @SETZER_FLAG_MADE_SETZER) mes "\"Another one? Sure, why not.\""; mes "Nicholas examines your [Short Sword], then nods."; - mes "\"This is good quality. I can make something special out of it, with three ingot bars of iron and 50,000 GP -- but I will also need a potion of monster oil.\""; + mes "\"This is good quality. I can make something special out of it, with three ingot bars of iron, six lumps of coal and 50,000 GP -- but I will also need a potion of monster oil.\""; if (@Q_SETZER_status < @SETZER_KNOWS_OIL) set @Q_SETZER_status, @SETZER_KNOWS_OIL; callsub L_Update_Var; @@ -363,7 +363,7 @@ L_SetzerNoZeny: L_SetzerNoIngot: mes "[Nicholas]"; - mes "\"Without 3 ingots of iron, I can't improve your sword.\""; + mes "\"Without 3 ingots of iron, and six lumps of coal, I can't improve your sword.\""; close; L_SetzerNoMonsterOil: -- cgit v1.2.3-70-g09d2 From 055e0d35888626d7207caef9938d252739756486 Mon Sep 17 00:00:00 2001 From: Stefan Dombrowski Date: Thu, 21 Oct 2010 21:09:16 +0200 Subject: Removing the coal requirement for the steel shield in Nicholas' skript Nicholas did offer the steel shield only if you had 12 coals, but he did not charge any coal. --- npc/009-2_Hurnscald/nicholas.txt | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) (limited to 'npc/009-2_Hurnscald') diff --git a/npc/009-2_Hurnscald/nicholas.txt b/npc/009-2_Hurnscald/nicholas.txt index d0719430..3241cc97 100644 --- a/npc/009-2_Hurnscald/nicholas.txt +++ b/npc/009-2_Hurnscald/nicholas.txt @@ -45,8 +45,9 @@ L_Check: mes "[Nicholas]"; - mes "\"Let me take at look at how much you have...\""; + mes "\"Let me take a look at how much you have...\""; next; + if ( (countitem("IngotIron")>5) && (countitem("Coal") < 6) ) goto L_StageShield; if ( (countitem("IngotIron")<3) || (countitem("Coal") < 6) ) goto L_NoItem; if ( (countitem("IngotIron")<6) || (countitem("Coal") < 12) ) goto L_StageA; if ( (countitem("IngotIron")<9) || (countitem("Coal") < 18) ) goto L_StageB; @@ -65,9 +66,16 @@ L_Pass: mes "\"Oh, okay. Come back any time.\""; close; +L_StageShield: + mes "[Nicholas]"; + mes "\"That's just enough for me to make you a [Steel Shield], but it'll cost you 20,000 GP and 6 [Iron Ingot]s.\""; + next; + goto L_main_menu; + L_StageA: mes "[Nicholas]"; - mes "\"That's just enough for me to make you a winged [Knight's Helmet], but it'll cost you 10,000GP, 6 [Coal] and 3 [Iron Ingot]s.\""; + mes "\"That's enough for me to make you a winged [Knight's Helmet], but it'll cost you 10,000GP, 6 [Coal] and 3 [Iron Ingot]s.\""; + if ( (countitem("IngotIron")>5) ) mes "\"I can also make you a [Steel Shield] for 20,000 GP and 6 [Iron Ingot]s.\""; next; goto L_main_menu; @@ -118,16 +126,19 @@ L_main_menu_post_setzer: set @choice_idx[@choices_nr], @CHOICE_CRUSADE; set @choices_nr, 1 + @choices_nr; - set @choice$[@choices_nr], "Steel Shield. (6 Iron Ingots)"; - set @choice_idx[@choices_nr], @CHOICE_SHIELD; - set @choices_nr, 1 + @choices_nr; - if ( (countitem("IngotIron")<9) || (countitem("Coal") < 18) ) goto L_no_more_helmets; set @choice$[@choices_nr], "Warlord Helmet. (9 Iron Ingots & 18 Coal)"; set @choice_idx[@choices_nr], @CHOICE_WARLORD; set @choices_nr, 1 + @choices_nr; + L_no_more_helmets: + if ( (countitem("IngotIron")<6) ) goto L_no_more_items; + set @choice$[@choices_nr], "Steel Shield. (6 Iron Ingots)"; + set @choice_idx[@choices_nr], @CHOICE_SHIELD; + set @choices_nr, 1 + @choices_nr; + +L_no_more_items: set @choice$[@choices_nr], "No thanks."; set @choice_idx[@choices_nr], @CHOICE_CANCEL; set @choices_nr, 1 + @choices_nr; -- cgit v1.2.3-70-g09d2 From 25483c444e2ae03e4b120ded937f03d5200d760c Mon Sep 17 00:00:00 2001 From: Stefan Dombrowski Date: Thu, 21 Oct 2010 23:07:01 +0200 Subject: Fixing Nicholas script and increasing odds of coal drops from Mogguns Nicholas now tell his customers that he charges coal. The odds of coal drops from Mogguns are increased from 6% to 10%. --- db/mob_db.txt | 2 +- npc/009-2_Hurnscald/nicholas.txt | 25 +++++++------------------ 2 files changed, 8 insertions(+), 19 deletions(-) (limited to 'npc/009-2_Hurnscald') diff --git a/db/mob_db.txt b/db/mob_db.txt index dc2b439c..5362b67c 100644 --- a/db/mob_db.txt +++ b/db/mob_db.txt @@ -58,5 +58,5 @@ 1058, IceGoblin, Ice Goblin, 25, 330, 0, 0, 2, 1, 20, 25, 0, 5, 5, 5, 1, 0, 6, 30, 1, 1, 1, 3, 23, 133, 700, 1872, 672, 480, 505, 800, 501, 150, 518, 800, 502, 150, 521, 70, 522, 10, 701, 500, 0, 0, 0, 0, 0, 0, , , , , , , 2, 30 1059, GCMaggot, Giant Cave Maggot, 90, 2000, 0, 0, 16, 2, 60, 80, 2, 7, 10, 10, 2, 1, 22, 1, 2, 2, 1, 0, 41, 133, 1000, 1872, 672, 480, 727, 10000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , 1, 25 1060, Archant, Archant, 30, 400, 0, 0, 200, 1, 20, 30, 4, 6, 10, 5, 1, 0, 12, 10, 1, 1, 1, 0, 25, 133, 1000, 1500, 672, 480, 537, 300, 535, 100, 640, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , 2, 40 -1061, Moggun, Moggun, 60, 800, 0, 0, 100, 1, 70, 90, 20, 10, 50, 40, 10, 10, 10, 10, 1, 1, 1, 0, 25, 137, 600, 1500, 672, 480, 611, 600, 4001, 600, 4002, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , 2, 40 +1061, Moggun, Moggun, 60, 800, 0, 0, 100, 1, 70, 90, 20, 10, 50, 40, 10, 10, 10, 10, 1, 1, 1, 0, 25, 137, 600, 1500, 672, 480, 611, 600, 4001, 1000, 4002, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , 2, 40 1062, Terranite, Terranite, 110, 6000, 0, 0, 1000, 1, 200, 300, 20, 40, 60, 40, 40, 30, 60, 40, 1, 1, 1, 0, 29, 133, 400, 872, 672, 900, 4001, 600, 4004, 20, 4005, 20, 4007, 20, 763, 500, 640, 500, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , 2, 30 diff --git a/npc/009-2_Hurnscald/nicholas.txt b/npc/009-2_Hurnscald/nicholas.txt index 3241cc97..fccafbce 100644 --- a/npc/009-2_Hurnscald/nicholas.txt +++ b/npc/009-2_Hurnscald/nicholas.txt @@ -47,7 +47,6 @@ L_Check: mes "[Nicholas]"; mes "\"Let me take a look at how much you have...\""; next; - if ( (countitem("IngotIron")>5) && (countitem("Coal") < 6) ) goto L_StageShield; if ( (countitem("IngotIron")<3) || (countitem("Coal") < 6) ) goto L_NoItem; if ( (countitem("IngotIron")<6) || (countitem("Coal") < 12) ) goto L_StageA; if ( (countitem("IngotIron")<9) || (countitem("Coal") < 18) ) goto L_StageB; @@ -66,16 +65,9 @@ L_Pass: mes "\"Oh, okay. Come back any time.\""; close; -L_StageShield: - mes "[Nicholas]"; - mes "\"That's just enough for me to make you a [Steel Shield], but it'll cost you 20,000 GP and 6 [Iron Ingot]s.\""; - next; - goto L_main_menu; - L_StageA: mes "[Nicholas]"; - mes "\"That's enough for me to make you a winged [Knight's Helmet], but it'll cost you 10,000GP, 6 [Coal] and 3 [Iron Ingot]s.\""; - if ( (countitem("IngotIron")>5) ) mes "\"I can also make you a [Steel Shield] for 20,000 GP and 6 [Iron Ingot]s.\""; + mes "\"That's just enough for me to make you a winged [Knight's Helmet], but it'll cost you 10,000GP, 6 [Coal] and 3 [Iron Ingot]s.\""; next; goto L_main_menu; @@ -122,23 +114,20 @@ L_main_menu_post_setzer: if ( (countitem("IngotIron")<6) || (countitem("Coal") < 12) ) goto L_no_more_helmets; - set @choice$[@choices_nr], "Crusade Helmet. (6 Iron Ingots & 12 Coal)"; + set @choice$[@choices_nr], "Crusade Helmet (6 Iron Ingots & 12 Coal)."; set @choice_idx[@choices_nr], @CHOICE_CRUSADE; set @choices_nr, 1 + @choices_nr; + set @choice$[@choices_nr], "Steel Shield (6 Iron Ingots & 12 Coal)."; + set @choice_idx[@choices_nr], @CHOICE_SHIELD; + set @choices_nr, 1 + @choices_nr; + if ( (countitem("IngotIron")<9) || (countitem("Coal") < 18) ) goto L_no_more_helmets; - set @choice$[@choices_nr], "Warlord Helmet. (9 Iron Ingots & 18 Coal)"; + set @choice$[@choices_nr], "Warlord Helmet (9 Iron Ingots & 18 Coal)."; set @choice_idx[@choices_nr], @CHOICE_WARLORD; set @choices_nr, 1 + @choices_nr; - L_no_more_helmets: - if ( (countitem("IngotIron")<6) ) goto L_no_more_items; - set @choice$[@choices_nr], "Steel Shield. (6 Iron Ingots)"; - set @choice_idx[@choices_nr], @CHOICE_SHIELD; - set @choices_nr, 1 + @choices_nr; - -L_no_more_items: set @choice$[@choices_nr], "No thanks."; set @choice_idx[@choices_nr], @CHOICE_CANCEL; set @choices_nr, 1 + @choices_nr; -- cgit v1.2.3-70-g09d2 From 644eb90e7395c75d50992f7690c1542aadd58370 Mon Sep 17 00:00:00 2001 From: Stefan Beller Date: Sun, 31 Oct 2010 14:22:09 +0100 Subject: fix in L_Update_Var in nicholas adding a missing @ --- npc/009-2_Hurnscald/nicholas.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'npc/009-2_Hurnscald') diff --git a/npc/009-2_Hurnscald/nicholas.txt b/npc/009-2_Hurnscald/nicholas.txt index fccafbce..d3767a97 100644 --- a/npc/009-2_Hurnscald/nicholas.txt +++ b/npc/009-2_Hurnscald/nicholas.txt @@ -388,7 +388,7 @@ L_Done: L_Update_Var: set QUEST_Forestbow_state, - (QUEST_Forestbow_state & ~(@Q_SHIELD_MASK | Q_SETZER_MASK) + (QUEST_Forestbow_state & ~(@Q_SHIELD_MASK | @Q_SETZER_MASK) | (@Q_SHIELD_status << @Q_SHIELD_SHIFT) | (@Q_SETZER_status << @Q_SETZER_SHIFT)); return; -- cgit v1.2.3-70-g09d2 From 4bb4c388174c9efb583852d27a6d67f603376eb8 Mon Sep 17 00:00:00 2001 From: Wombat Date: Wed, 13 Oct 2010 14:33:00 -0400 Subject: Bandit Quest and fixes to peter, mikhail Bandit quest changes, fixes to peter and mikhail, 011-6 mobs --- data/012-4.wlk | Bin 109204 -> 109204 bytes db/mob_db.txt | 4 +- npc/009-2_Hurnscald/_import.txt | 1 + npc/009-2_Hurnscald/lena.txt | 105 +++++++++++++++++++++++++++++++++++++ npc/009-2_Hurnscald/peter.txt | 6 ++- npc/011-4_Lake_cave/_import.txt | 1 + npc/011-4_Lake_cave/_warps.txt | 1 - npc/011-4_Lake_cave/bl_barrier.txt | 16 ++++++ npc/011-6/_import.txt | 1 + npc/011-6/_mobs.txt | 24 +++++++++ npc/011-6/_warps.txt | 2 +- npc/011-6/bryant.txt | 53 +++++++++++++++++++ 12 files changed, 208 insertions(+), 6 deletions(-) create mode 100644 npc/009-2_Hurnscald/lena.txt create mode 100644 npc/011-4_Lake_cave/bl_barrier.txt create mode 100644 npc/011-6/bryant.txt (limited to 'npc/009-2_Hurnscald') diff --git a/data/012-4.wlk b/data/012-4.wlk index c5a61ec4..affeafe9 100644 Binary files a/data/012-4.wlk and b/data/012-4.wlk differ diff --git a/db/mob_db.txt b/db/mob_db.txt index 500a74d1..955fa961 100644 --- a/db/mob_db.txt +++ b/db/mob_db.txt @@ -60,8 +60,8 @@ 1060, Archant, Archant, 30, 400, 0, 0, 200, 1, 20, 30, 4, 6, 10, 5, 1, 0, 12, 10, 1, 1, 1, 0, 25, 133, 1000, 1500, 672, 480, 537, 300, 535, 100, 640, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , 2, 40 1061, Moggun, Moggun, 60, 800, 0, 0, 100, 1, 70, 90, 20, 10, 50, 40, 10, 10, 10, 10, 1, 1, 1, 0, 25, 137, 600, 1500, 672, 480, 611, 600, 4001, 1000, 4002, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , 2, 40 1062, Terranite, Terranite, 110, 6000, 0, 0, 1000, 1, 200, 300, 20, 40, 60, 40, 40, 30, 60, 40, 1, 1, 1, 0, 29, 133, 400, 872, 672, 900, 4001, 600, 4004, 20, 4005, 20, 4007, 20, 763, 500, 640, 500, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , 2, 30 -1063, Bandit, Bandit, 30, 500, 0, 0, 100, 1, 50, 50, 5, 0, 10, 10, 10, 10, 10, 10, 1, 1, 1, 0, 29, 135, 500, 872, 672, 900, 4016, 800, 521, 200, 526, 200, 535, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , 2, 30 -1064, BanditLord, Bandit Lord, 60, 3000, 0, 0, 120, 5, 60, 60, 15, 15, 15, 15, 15, 15, 15, 15, 1, 1, 1, 0, 29, 135, 400, 872, 672, 900, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , 2, 30 +1063, Bandit, Bandit, 20, 400, 0, 0, 100, 1, 40, 40, 5, 0, 10, 10, 10, 10, 10, 10, 1, 1, 1, 0, 29, 135, 500, 1500, 672, 900, 4016, 800, 521, 200, 526, 200, 535, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , 2, 30 +1064, BanditLord, Bandit Lord, 40, 2000, 0, 0, 120, 5, 50, 50, 15, 15, 15, 15, 15, 15, 15, 15, 1, 1, 1, 0, 29, 135, 400, 1500, 672, 900, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , 2, 30 1065, TheLost, The Lost, 30, 5000, 0, 0, 1000, 5, 260, 375, 10, 70, 5, 40, 10, 70, 70, 40, 4, 9, 1, 1, 69, 141, 500, 2000, 672, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , 0, 0 1111, Reaper, Reaper, 50, 55500, 0, 0, 10000, 12, 444, 555, 30, 80, 100, 200, 70, 120, 150, 80, 1, 50, 1, 1, 89, 165, 500, 1200, 800, 300, 777, 1000, 775, 500, 776, 100, 1221, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , 0, 0 1112, Scythe, Scythe, 40, 3000, 0, 0, 500, 1, 200, 350, 30, 10, 100, 250, 1, 1, 150, 90, 1, 50, 1, 0, 40, 133, 220, 700, 672, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , 0, 0 diff --git a/npc/009-2_Hurnscald/_import.txt b/npc/009-2_Hurnscald/_import.txt index 25d4868d..1ee969c2 100644 --- a/npc/009-2_Hurnscald/_import.txt +++ b/npc/009-2_Hurnscald/_import.txt @@ -7,6 +7,7 @@ npc: npc/009-2_Hurnscald/doctor.txt npc: npc/009-2_Hurnscald/drunks.txt npc: npc/009-2_Hurnscald/inspector.txt npc: npc/009-2_Hurnscald/kfahr.txt +npc: npc/009-2_Hurnscald/lena.txt npc: npc/009-2_Hurnscald/mapflags.txt npc: npc/009-2_Hurnscald/misc.txt npc: npc/009-2_Hurnscald/nicholas.txt diff --git a/npc/009-2_Hurnscald/lena.txt b/npc/009-2_Hurnscald/lena.txt new file mode 100644 index 00000000..a88da8da --- /dev/null +++ b/npc/009-2_Hurnscald/lena.txt @@ -0,0 +1,105 @@ +// Quest for Fairy Hat and Forest Armor + +009-2.gat,146,43,0 script Lena 182,{ + + if (TMW_Quest >= 46) goto L_Lena_Done; + if (TMW_Quest == 45) goto L_Lena_Success; + if (TMW_Quest == 44) goto L_Lena_Bandit_Leader_Fail; + if (TMW_Quest == 43) goto L_Lena_Bandit_Leader_Fail; + if (TMW_Quest == 42) goto L_Lena_Bandit_Leader; + if (TMW_Quest == 41) goto L_Lena_Fairy_Hat; + if (TMW_Quest == 40) && (baselevel >= 30) goto L_Lena_Start; + + mes "[Lena]"; + mes "\"I got ambushed by a group of bandits and one of them stabbed me pretty good. Hopefully I heal up soon so I can fight this menace.\""; + close; + +L_Lena_Start: + mes "[Lena]"; + mes "\"While wandering through the forest, I was ambushed by bandits. Though I got them all, one of them stabbed me pretty good. I'm still healing from that encounter. I'm worried that the bandit threat may spread.\""; + menu + "Don't worry, I can take out some of these scumbags.", L_Lena_Approves, + "I think I left my courage in another pair of pants. See you later!", L_Lena_No_Fan; + close; + +L_Lena_Approves: + set TMW_Quest, 41; + mes "[Lena]"; + mes "\"You look like you can handle yourself in a fight. If you can take on this scourge I'll reward you with a hat like mine. In order to prove your mettle, bring me 10 [Bandit Hood]s so I know they've met their match.\""; + areamonster "008-1.gat",25,60,40,65,"Bandit",1063,3, "::"; + areamonster "011-1.gat",35,40,65,60,"Bandit",1063,3, "::"; + close; + +L_Lena_No_Fan: + mes "[Lena]"; + mes "\"What will Hurnscald do if these bandits overrun the town? I hope you reconsider.\""; + close; + +L_Lena_Fairy_Hat: + if (countitem("BanditHood") < 10) goto L_Lena_NotEnough; + getinventorylist; + if (@inventorylist_count - (countitem("BanditHood")== 10) > 99) goto L_TooMany; + set TMW_Quest, 42; + delitem "BanditHood", 10; + getitem "FairyHat", 1; + mes "[Lena]"; + mes "\"Ah, you've brought me the [Bandit Hood]s. As promised, here is a hat like mine.\""; + next; + mes "\"Unfortunately, I feel this bandit threat may of grown. Perhaps they are being lead? I noticed many of them seem to hang around a cave just west of Hurnscald. If you could defeat their leader I know they will become less of a threat to Hurnscald. I'll reward you with armor like mine if you do. Sound like something you could do?\""; + menu + "Consider it done!", L_Lena_Bandit_Leader_Yes, + "Woah there, that sounds a bit harder than what I can suceed at.", L_Lena_NoWay; + close; + +L_Lena_NotEnough: + mes "[Lena]"; + mes "\"You don't have enough [Bandit Hood]s to prove you are taking care of this threat. Please come back with 10 [Bandit Hood]s to show you are taking care of these bandits.\""; + close; + +L_Lena_Bandit_Leader: + mes "[Lena]"; + mes "\"I feel this bandit threat may of grown. Perhaps they are being lead? I noticed many of them seem to hang around a cave just west of Hurnscald. If you could defeat their leader I know they will become less of a threat to Hurnscald. I'll reward you with armor like mine if you do. Sound like something you could do?\""; + menu + "Consider it done!", L_Lena_Bandit_Leader_Yes, + "Woah there, that sounds a bit harder than what I can succeed at.", L_Lena_NoWay; + close; + +L_Lena_Bandit_Leader_Yes: + set TMW_Quest, 43; + areamonster "008-1.gat",25,60,40,65,"Bandit",1063,3, "::"; + areamonster "011-1.gat",35,40,65,60,"Bandit",1063,3, "::"; + mes "[Lena]"; + mes "\"You have a brave heart. Though I know you can suceed on your own, I recommend finding others to help you defeat the bandit leader. I believe he could pose a significant threat to solitary individuals seeking to challenge him. Good luck!\""; + close; + +L_Lena_NoWay: + mes "[Lena]"; + mes "\"That is too bad. Feel free to return at any time. This bandit threat needs to be pushed back.\""; + close; + +L_Lena_Bandit_Leader_Fail: + set TMW_Quest, 43; + mes "[Lena]"; + mes "\"You haven't killed the bandit leader yet. This is a big problem. Please be careful.\""; + close; + +L_Lena_Success: + getinventorylist; + if (@inventorylist_count == 100) goto L_TooMany; + set TMW_Quest, 46; + getitem "ForestArmor", 1; + mes "[Lena]"; + mes "\"Excellent! You killed the bandit leader. Here is the armor as I promised you. Safe journeys!\""; + close; + +L_Lena_Done: + mes "[Lena]"; + mes "\"Thank you for all your help. With your efforts, we can only hope this scourge doesn't see a resurgence.\""; + close; + +L_TooMany: + mes "[Lena]"; + mes "\"You have too many items in your inventory. Please get rid of something so I can reward you.\""; + close; + +} diff --git a/npc/009-2_Hurnscald/peter.txt b/npc/009-2_Hurnscald/peter.txt index 85e31dc9..995bfc31 100644 --- a/npc/009-2_Hurnscald/peter.txt +++ b/npc/009-2_Hurnscald/peter.txt @@ -30,26 +30,28 @@ L_Peter_Chain_Mail: close; L_Peter_Light_Plate: - if (zeny < 20000) goto L_Peter_NotEnough_Zeny; + if (zeny < 50000) goto L_Peter_NotEnough_Zeny; if (countitem("IngotIron") < 10) goto L_Peter_NotEnough_Ingot; if (countitem("Coal") < 20) goto L_Peter_NotEnough_Coal; getinventorylist; if (@inventorylist_count == 100) goto L_Peter_TooMany; set zeny, zeny - 50000; delitem "IngotIron", 10; + delitem "Coal", 20; getitem "LightPlatemail", 1; mes "[Peter]"; mes "\"Here you go!\""; close; L_Peter_Warlord_Plate: - if (zeny < 20000) goto L_Peter_NotEnough_Zeny; + if (zeny < 100000) goto L_Peter_NotEnough_Zeny; if (countitem("IngotIron") < 15) goto L_Peter_NotEnough_Ingot; if (countitem("Coal") < 30) goto L_Peter_NotEnough_Coal; getinventorylist; if (@inventorylist_count == 100) goto L_Peter_TooMany; set zeny, zeny - 100000; delitem "IngotIron", 15; + delitem "Coal", 30; getitem "WarlordPlate", 1; mes "[Peter]"; mes "\"Here you go!\""; diff --git a/npc/011-4_Lake_cave/_import.txt b/npc/011-4_Lake_cave/_import.txt index f2cfbc87..fe6c5cfd 100644 --- a/npc/011-4_Lake_cave/_import.txt +++ b/npc/011-4_Lake_cave/_import.txt @@ -1,4 +1,5 @@ map: 011-4.gat npc: npc/011-4_Lake_cave/_mobs.txt npc: npc/011-4_Lake_cave/_warps.txt +npc: npc/011-4_Lake_cave/bl_barrier.txt npc: npc/011-4_Lake_cave/monsters.txt diff --git a/npc/011-4_Lake_cave/_warps.txt b/npc/011-4_Lake_cave/_warps.txt index b3208950..7f1c1b2a 100644 --- a/npc/011-4_Lake_cave/_warps.txt +++ b/npc/011-4_Lake_cave/_warps.txt @@ -9,6 +9,5 @@ 011-4.gat,114,61 warp warp -1,-1,011-6.gat,122,213 011-4.gat,86,75 warp warp -1,-1,011-6.gat,94,227 011-4.gat,62,86 warp warp -1,-1,011-6.gat,68,233 -011-4.gat,111,121 warp toBigCave -1,-1,011-6.gat,251,275 011-4.gat,32,5 warp warp 0,-1,011-6.gat,186,180 011-4.gat,45,118 warp warp -1,-1,011-6.gat,266,180 diff --git a/npc/011-4_Lake_cave/bl_barrier.txt b/npc/011-4_Lake_cave/bl_barrier.txt new file mode 100644 index 00000000..07b44999 --- /dev/null +++ b/npc/011-4_Lake_cave/bl_barrier.txt @@ -0,0 +1,16 @@ +//bandit lord barrier + +011-4.gat,111,121,0 script #BL_Barrier 127,0,0,{ + + if (TMW_Quest >= 44) goto L_Bandit_Lord_Barrier_Open; + + message strcharinfo(0), "This entrance appears to be locked."; + end; + + +L_Bandit_Lord_Barrier_Open: + message strcharinfo(0), "You insert the silver arrow key and unlock the entrance."; + warp "011-6.gat",251,275; + end; + +} diff --git a/npc/011-6/_import.txt b/npc/011-6/_import.txt index 10bf382d..ae38662c 100644 --- a/npc/011-6/_import.txt +++ b/npc/011-6/_import.txt @@ -1,3 +1,4 @@ map: 011-6.gat npc: npc/011-6/_mobs.txt npc: npc/011-6/_warps.txt +npc: npc/011-6/bryant.txt diff --git a/npc/011-6/_mobs.txt b/npc/011-6/_mobs.txt index dda63569..9b6fc0a5 100644 --- a/npc/011-6/_mobs.txt +++ b/npc/011-6/_mobs.txt @@ -1,7 +1,31 @@ // 011-6 mobs +011-6.gat,0,0,0,0 monster Spiky Mushroom 1019,30,30000,100000,Mob011-6::On1019 +011-6.gat,0,0,0,0 monster Evil Mushroom 1013,15,30000,100000,Mob011-6::On1013 +011-6.gat,115,79,191,110 monster Bandit 1063,8,30000,100000,Mob011-6::On1063 +011-6.gat,0,0,0,0 monster Bat 1017,30,30000,100000,Mob011-6::On1017 011-6.gat,0,0,0 script Mob011-6 -1,{ +On1013: + set @mobID, 1013; + callfunc "MobPoints"; + break; + +On1017: + set @mobID, 1017; + callfunc "MobPoints"; + break; + +On1019: + set @mobID, 1019; + callfunc "MobPoints"; + break; + +On1063: + set @mobID, 1063; + callfunc "MobPoints"; + break; + end; } diff --git a/npc/011-6/_warps.txt b/npc/011-6/_warps.txt index 7e3b6f5e..545bc386 100644 --- a/npc/011-6/_warps.txt +++ b/npc/011-6/_warps.txt @@ -22,4 +22,4 @@ 011-6.gat,186,182 warp warp -1,-1,011-4.gat,31,7 011-6.gat,266,182 warp warp -1,-1,011-4.gat,45,120 011-6.gat,174,256 warp warp -1,-1,011-6.gat,264,238 -011-6.gat,264,236 warp warp -2,-2,011-6.gat,174,253 +011-6.gat,264,236 warp warp -1,-1,011-6.gat,174,252 diff --git a/npc/011-6/bryant.txt b/npc/011-6/bryant.txt new file mode 100644 index 00000000..07c5453d --- /dev/null +++ b/npc/011-6/bryant.txt @@ -0,0 +1,53 @@ +//NPC to set the state for killing the bandit lord. + +011-6.gat,27,200,0 script Bryant 126,{ + + if (TMW_Quest >= 45) goto L_Bryant_Quiet; + if (TMW_Quest == 44) goto L_Bryant_Waits; + if (TMW_Quest == 43) goto L_Bryant_Summon; + + mes "[Bryant]"; + mes "\"I'm looking everywhere for the bandit leader. I can't seem to find him.\""; + close; + +L_Bryant_Summon: + mes "[Bryant]"; + mes "\"I ran into that bandit lord and he got me good. I'm going to stay here for a while and heal. He dropped this key. Take it. You might be able to handle him better than I could.\""; + next; + mes "Bryant gives you a key, shaped to look like a small silver arrow."; + next; + mes "\"I believe I saw him run into a cave south and east of here. There is a red carpet in front of the cave entrance. Be careful and good luck.\""; + set TMW_Quest, 44; + monster "011-6.gat",260,250,"BanditLord",1064,1, "Bryant::onBanditLordDead"; + close; + +onBanditLordDead: + set TMW_Quest, 45; + message strcharinfo(0), "You killed the bandit lord."; + end; + +L_Bryant_Waits: + mes "[Bryant]"; + mes "\"I think the bandit lord is still around. I fear this could be dangerous for the people of Hurnscald. When you went to the cave with the red carpet in front of it, did you find him and kill him?\""; + menu + "No.", L_Bryant_No, + "Yes.", L_Bryant_Yes; + close; + +L_Bryant_No: + mes "[Bryant]"; + mes "\"Well, maybe he ran off. I'm pretty sure he should be there now.\""; + killmonster "011-6.gat", "Bryant::onBanditLordDead"; + monster "011-6.gat",260,250,"BanditLord",1064,1, "Bryant::onBanditLordDead"; + close; + +L_Bryant_Yes: + mes "[Bryant]"; + mes "\"I don't think you killed him. Please try to find and kill him. He should be in the cave south and east of here with the red carpet in front of it.\""; + close; + +L_Bryant_Quiet: + mes "[Bryant]"; + mes "\"Glad that bandit leader got what was coming to him.\""; + close; +} -- cgit v1.2.3-70-g09d2 From e095298140bf9867671007aa53fc2e52e1f2d4cd Mon Sep 17 00:00:00 2001 From: Wombat Date: Wed, 22 Dec 2010 02:38:37 -0500 Subject: fixes: bandit quest, mob_db, nivalis soul menhir Fixed mob ids on bandit quest summoning, fixed Pumpkin stats, fixed soul menhir in Nivalis. --- db/mob_db.txt | 2 +- npc/009-2_Hurnscald/lena.txt | 8 ++++---- npc/011-6/bryant.txt | 2 +- npc/020-1_Nivalis/soul-menhir.txt | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-) (limited to 'npc/009-2_Hurnscald') diff --git a/db/mob_db.txt b/db/mob_db.txt index 41dabd50..78140b54 100644 --- a/db/mob_db.txt +++ b/db/mob_db.txt @@ -60,7 +60,7 @@ 1060, Archant, Archant, 30, 400, 0, 0, 200, 1, 20, 30, 4, 6, 10, 5, 1, 0, 12, 10, 1, 1, 1, 0, 25, 133, 1000, 1500, 672, 480, 537, 300, 535, 100, 640, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , 2, 40 1061, Moggun, Moggun, 60, 800, 0, 0, 100, 1, 70, 90, 20, 10, 50, 40, 10, 10, 10, 10, 1, 1, 1, 0, 25, 137, 600, 1500, 672, 480, 611, 600, 4001, 1000, 4002, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , 2, 40 1062, Terranite, Terranite, 110, 6000, 0, 0, 1000, 1, 200, 300, 20, 40, 60, 40, 40, 30, 60, 40, 1, 1, 1, 0, 29, 133, 400, 872, 672, 900, 4001, 600, 4004, 20, 4005, 20, 4007, 20, 763, 500, 640, 500, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , 2, 30 -1063, Pumpkin, Pumpkin, 10, 100, 0, 0, 4, 1, 10, 10, 0, 5, 5, 5, 1, 0, 6, 5, 1, 1, 1, 3, 21, 133, 700, 1872, 672, 480, 505, 800, 501, 150, 518, 400, 533, 150, 502, 70, 522, 10, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , 0, 0 +1063, Pumpkin, Pumpkin, 1, 200, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 1, 1, 1, 3, 22, 0, 800, 800, 672, 480, 3000, 100, 3001, 20, 3002, 10, 3003, 15, 3011, 500, 3006, 1500, 3007, 2000, 3010, 2500, 0, 0, 0, 0, , , , , , , 0, 0 1064, Bandit, Bandit, 20, 400, 0, 0, 100, 1, 40, 40, 5, 0, 10, 10, 10, 10, 10, 10, 1, 1, 1, 0, 29, 135, 500, 1500, 672, 900, 4016, 800, 521, 200, 526, 200, 535, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , 2, 30 1065, BanditLord, Bandit Lord, 40, 2000, 0, 0, 120, 5, 50, 50, 15, 15, 15, 15, 15, 15, 15, 15, 1, 1, 1, 0, 29, 135, 400, 1500, 672, 900, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , 2, 30 1066, VampireBat, Vampire Bat, 30, 800, 0, 0, 200, 1, 15, 2, 0, 8, 8, 8, 1, 4, 20, 4, 6, 1, 1, 3, 24, 129, 800, 1872, 672, 480, 501, 150, 518, 400, 533, 150, 521, 70, 522, 1, 753, 3000, 754, 2000, 0, 0, 0, 0, 0, 0, , , , , , , 2, 30 diff --git a/npc/009-2_Hurnscald/lena.txt b/npc/009-2_Hurnscald/lena.txt index a88da8da..52144a35 100644 --- a/npc/009-2_Hurnscald/lena.txt +++ b/npc/009-2_Hurnscald/lena.txt @@ -26,8 +26,8 @@ L_Lena_Approves: set TMW_Quest, 41; mes "[Lena]"; mes "\"You look like you can handle yourself in a fight. If you can take on this scourge I'll reward you with a hat like mine. In order to prove your mettle, bring me 10 [Bandit Hood]s so I know they've met their match.\""; - areamonster "008-1.gat",25,60,40,65,"Bandit",1063,3, "::"; - areamonster "011-1.gat",35,40,65,60,"Bandit",1063,3, "::"; + areamonster "008-1.gat",25,60,40,65,"Bandit",1064,3, "::"; + areamonster "011-1.gat",35,40,65,60,"Bandit",1064,3, "::"; close; L_Lena_No_Fan: @@ -66,8 +66,8 @@ L_Lena_Bandit_Leader: L_Lena_Bandit_Leader_Yes: set TMW_Quest, 43; - areamonster "008-1.gat",25,60,40,65,"Bandit",1063,3, "::"; - areamonster "011-1.gat",35,40,65,60,"Bandit",1063,3, "::"; + areamonster "008-1.gat",25,60,40,65,"Bandit",1064,3, "::"; + areamonster "011-1.gat",35,40,65,60,"Bandit",1064,3, "::"; mes "[Lena]"; mes "\"You have a brave heart. Though I know you can suceed on your own, I recommend finding others to help you defeat the bandit leader. I believe he could pose a significant threat to solitary individuals seeking to challenge him. Good luck!\""; close; diff --git a/npc/011-6/bryant.txt b/npc/011-6/bryant.txt index 07c5453d..4c1579b9 100644 --- a/npc/011-6/bryant.txt +++ b/npc/011-6/bryant.txt @@ -18,7 +18,7 @@ L_Bryant_Summon: next; mes "\"I believe I saw him run into a cave south and east of here. There is a red carpet in front of the cave entrance. Be careful and good luck.\""; set TMW_Quest, 44; - monster "011-6.gat",260,250,"BanditLord",1064,1, "Bryant::onBanditLordDead"; + monster "011-6.gat",260,250,"BanditLord",1065,1, "Bryant::onBanditLordDead"; close; onBanditLordDead: diff --git a/npc/020-1_Nivalis/soul-menhir.txt b/npc/020-1_Nivalis/soul-menhir.txt index 1569d0d6..ee973170 100644 --- a/npc/020-1_Nivalis/soul-menhir.txt +++ b/npc/020-1_Nivalis/soul-menhir.txt @@ -2,9 +2,9 @@ 020-1.gat,64,89,0 script Soul Menhir 144, { callfunc "ClearVariables"; - set @map$, "009-1.gat"; - setarray @Xs, 52, 53, 54, 52, 54, 52, 54; - setarray @Ys, 39, 39, 39, 40, 40, 41, 41; + set @map$, "020-1.gat"; + setarray @Xs, 63, 64, 65, 63, 65, 63, 65; + setarray @Ys, 88, 88, 88, 89, 89, 90, 90; set @x, 0; set @y, 0; callfunc "SoulMenhir"; -- cgit v1.2.3-70-g09d2 From 0543913f56d02049d475e93b12827aa5de4a92ec Mon Sep 17 00:00:00 2001 From: Stefan Beller Date: Wed, 27 Oct 2010 22:08:34 +0200 Subject: anti-poisonskill by the the nurse in hurnscald The nurse will teach you an anti-poison spell in hurnscald. She will also heal players below lvl 25 now (raised from previously 10) This has no effect (there are always enough people in town, who can heal you anyway) --- npc/009-2_Hurnscald/nurse.txt | 507 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 468 insertions(+), 39 deletions(-) (limited to 'npc/009-2_Hurnscald') diff --git a/npc/009-2_Hurnscald/nurse.txt b/npc/009-2_Hurnscald/nurse.txt index 9fd759c8..8d6f1ee9 100644 --- a/npc/009-2_Hurnscald/nurse.txt +++ b/npc/009-2_Hurnscald/nurse.txt @@ -1,48 +1,477 @@ -// Nurse - -// heals player below level 10 for free and tells players about the doctor on the 3rd floor. -009-2.gat,147,65,0 script Nurse 119,{ - mes "[Nurse]"; - mes "\"Can I help you?\""; - next; - - if (Inspector == 1) - menu - "Oooh, these wounds! They hurts so much!", L_Heal, - "I don't feel so well, I might be sick.", L_Doctor, - "Have you seen anything out of the ordinary?", L_NohMask, - "No, I'm fine.", -; - if (Inspector != 1) - menu - "Oooh, these wounds! They hurts so much!", L_Heal, - "I don't feel so well, I might be sick.", L_Doctor, - "No, I'm fine.", -; - mes "[Nurse]"; - mes "\"Then I would ask you to leave. There are people who really need our help.\""; - close; + //###################################################################################### +//# Nurse +//# AUTHORS: Jenalya and Pjotr Orial +//# 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: +//# byte0 (bit 0-7) = healing_needed, byte1 (bit 8-15) = venum_needed, byte2 (bit 16-23) = stabilizer_needed +//# 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, +//# need black scorpion stingers and grass snake tongues +//# 1 waits for ingredients: black scorpion stingers and grass snake tongues +//# 2 waits for ingredients: acorns, apples, orange, healing potion, when these ingreds are there, +//# she mixes the stuff (modify global variable!) +//# 3 you can start the minigame, 3 tries remaining +//# 4 you can start the minigame, 2 tries remaining +//# 5 you can start the minigame, 1 try remaining +//# 6 not enough stuff remaining, jump to state 1 +//# 7 yay! you made it! + + +//###################################################################################### +009-2.gat,147,65,0 script Nurse 119, { + set @GSNAKET_AMOUNT, 5; + set @BSCORPIONST_AMOUNT, 10; + set @QUEST1_EXP, 5000; + set @ACORNS_AMOUNT, 10; + set @GREENAPPLE_AMOUNT, 5; + set @REDAPPLE_AMOUNT, 5; + set @ORANGE_AMOUNT, 5; + set @HEALING_AMOUNT, 3; + set @QUEST2_EXP, 10000; + set @ANTIDOTE_EXP, 10000; + + 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; + if (@Q_poison == 4) goto state4; + if (@Q_poison == 3) goto state3; + if (@Q_poison == 2) goto state2; + if (@Q_poison == 1) goto state1; + if (getskilllv(SKILL_POOL)) goto state0; + +L_Usual: + mes "[Nurse]"; + mes "\"How can I help you?\""; + next; + + if (Inspector == 1) + menu + "Oooh, these wounds! They hurts so much!", L_Heal, + "I don't feel so well, I might be sick.", L_Doctor, + "Have you seen anything out of the ordinary?", L_NohMask, + "No, I'm fine.", -; + if (Inspector != 1) + menu + "Oooh, these wounds! They hurts so much!", L_Heal, + "I don't feel so well, I might be sick.", L_Doctor, + "No, I'm fine.", -; + mes "[Nurse]"; + mes "\"Then I would ask you to leave. There are people who really need our help.\""; + close; L_Doctor: - mes "[Nurse]"; - mes "\"Then you should better see the doctor. He is usually in his office on the 3rd floor.\""; - close; + mes "[Nurse]"; + mes "\"Then you should better see the doctor. He is usually in his office on the 3rd floor.\""; + close; L_Heal: - if (baselevel > 10) goto L_NoHeal; - mes "[Nurse]"; - mes "\"Here, let me heal you.\""; - next; - heal 10000, 10000; - close; + if (baselevel > 20) goto L_NoHeal; + mes "[Nurse]"; + mes "\"Here, let me heal you.\""; + next; + heal 10000, 10000; + close; L_NoHeal: - mes "[Nurse]"; - mes "\"I'm sorry but I'm here only to help young people."; - mes "Your level is already higher than 10."; - mes "You can get some rest in the inn near here.\""; - close; + mes "[Nurse]"; + mes "\"I'm sorry but I'm here only to help young people."; + mes "Your level is already higher than 20."; + mes "You can get some rest in the inn near here.\""; + close; L_NohMask: - mes "[Nurse]"; - mes "\"I'm to busy here to observe the town.\""; - close; + mes "[Nurse]"; + mes "\"I'm to busy here to observe the town.\""; + close; + +state0: + 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.\""; + next; + mes "\"Unfortunaly, some of them are poisonous and it is very difficult for us to help the miners.\""; + next; + mes "\"For this 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_, + "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; + + 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 grass 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?\""; + next; + menu + "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; + + if (countitem("GrassSnakeTongue") < @GSNAKET_AMOUNT || countitem("BlackScorpionStinger") < @BSCORPIONST_AMOUNT) goto L_NotEnough; + delitem "GrassSnakeTongue", @GSNAKET_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: + 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]"; + mes "\"I managed to extract the poisonous components. We should be able to create an anitidote, if you have anything else we need.\""; + next; + menu + "Actually, I have another question.", L_Usual, + "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; + delitem "RedApple", @REDAPPLE_AMOUNT; + delitem "Orange", @ORANGE_AMOUNT; + delitem "SmallHealingPotion", @HEALING_AMOUNT; + getexp @QUEST2_EXP, 0; + + set @Q_poison, 3; + 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."; + next; + mes "After some minutes, it is blubbering and steaming and some liquidity is dropping in a pot under the device."; + next; + mes "Then she takes the acorn flour and the liquidity and goes to a place back in the room, where she does something you don't see."; + next; + mes "After just a few moments, she comes back with a smiling face, holding two different bottles in her hand."; + next; + mes "[Nurse]"; + mes "\"That was easy compared to the things to be done with the stingers and snake tongues.\""; + next; + mes "Then her facial expression gets more serious."; + next; + mes "\"When we try to find the right mixture for the antidote, we need to test it.\""; + 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.\""; + 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 + "Actually, I have another question.", L_Usual, + "Yes, let us begin.",-; + +L_Exp_Game: + mes "[Nurse]"; + mes "\"Listen carefully! I will explain, what you need to do.\""; + next; + mes "\"I have here two different distillate. One is the venom extract, the other one a stabilizer.\""; + next; + mes "\"We also have the healing potion.\""; + next; + mes "\"The problem is, that i can only guess the concentration of the venom and the stabilizer. My equipment isn't good enough to determine it precise.\""; + next; + mes "\"You need to find the right amount of each ingredient. I will tell you, what I can know with my analysis methods.\""; + next; + mes "\"Shall we start? \""; + next; + menu + "Please explain it again.", L_Exp_Game, + "Allright", -; + +L_Game: + set @Q_poison, @Q_poison + 1; + callsub S_Update_Var; + // healing, venom, stabilizer + callsub L_Load_Need; + //descriptions + set @desc_length, 6; + setarray @desc$,"very little","only a little", "little","much", "a lot", "very much", "a huge amount"; + + set @divisor, @count / @desc_length; + set @hlIndex, (@hl_need-@offset) /@divisor; + set @vnIndex, (@hl_need-@offset) /@divisor; + set @stIndex, (@hl_need-@offset) /@divisor; + + mes "\"I guess you need " + @desc$[@hlIndex] + " of the healing potion.\""; + mes "\"I guess you need " + @desc$[@vnIndex] + " of the venom extracts.\""; + mes "\"I guess you need " + @desc$[@stIndex] + " of the stabilizer.\""; + + if(hlNeed/vnNeed > 1 ) mes "\"I see that the healing potions are needed at least " + hlNeed/vnNeed + "times as much as the venom potion. \""; + if(vnNeed/hlNeed > 1 ) mes "\"I see that the venom extracts are needed at least " + vnNeed/hlNeed + "times as much as the healing potion.\""; + + + //the same for vn<->st + + //the same for vn<->hl + + 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.\""; + mes "\"How many drops of the healing potion should we use?\""; + input @hlPut; + mes "\"How many drops of the venom extract potion should we use? \""; + input @vnPut; + mes "\"How many drops of the stabilizer potion should we use? \""; + input @stPut; + + 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."; + next; + mes "[Nurse]"; + mes "\"Allright, now i will inject the venom into you, then you should drink the antidote immidiatly. Are you ready?\""; + next; + mes "You take a deep breath and nod."; + next; + mes "The nurse take a scary looking syringe out of a drawer and swabs your arm with disinfection dabber."; + next; + mes "Then she stings the syringe in your vein and pushs it down. After a few seconds, your heart starts pounding quicker and you began to sweat all over your body"; + next; + mes "[Nurse]"; + mes "\"Drink the antidote!\""; + next; + mes "You lift the glass to you lips and drink it all at once"; + + 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; + if ( (@hlPut < @hlNeed) && (@vnPut < @vnNeed) ) goto l_hl_l_vn; + set @hl_vn_ok, 1; + goto check_st; + + +m_hl_m_vn: + //poison for 3 minutes + sc_start SC_Poison,180000,0; + mes "You began to feel really dizzy. And you feel so light - you can't help yourself and burst out with laughter. What a strange feeling!"; + next; + mes "The nurse looks at you with a really worried look in her face. As you open your mouth to tell her, that you feel allright, the content of your stomache finds its way out through your throat and on the floor."; + next; + "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,60000,0; + mes "You feel the pain of the poison weaken. This seems promising. The thought, you might have been succesful makes you feel enormously happy."; + next; + mes "But a few seconds later, you wonder, what the reason for your happiness was."; + next; + mes "Anyway, what are you doing here? Actually, where are you?"; + next; + mes "You don't care, you feel so great. You start to giggle and laugh uncontrollable. What a wonderful feeling. "; + next; + mes "Suddenly, the world has some really strange colors. As you watch this women in front of you chaning her color from dark green to a light purple, you become really tired."; + next; + 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; + mes "/"Very well, you are sober again./""; + next; + + goto check_st; + +l_hl_m_vn: + // first poison for 10 minutes, player will die anyway + sc_start SC_Poison,600000,0; + mes "You feel a sting in your stomach and your heart starts pounding loudly."; + next; + mes "The room is getting dark." + next; + mes "...and darker..." + next; + mes "......." + // bye bye player! + heal -Hp, 0; + // close instead of telling how much stabilizer is needed + close; + // goto check_st; + +l_hl_l_vn: + //poison for 1 minute + sc_start SC_Poison, 60000,0; + mes "The antidote seems to have no effect." + goto check_st; + +check_st: + if ( (@stPut < @stNeed) ) goto l_st; + if ( (@stPut > @stNeed) ) goto m_st; + if (@hl_vn_ok == 1) goto allcorrect; + + mes "[Nurse]"; + mes "\"The amount of the stabilizer seems alright, but we have to think again about the other ingredients.\""; + next; + goto notallcorrect; + +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; + goto notallcorrect; +m_st: + mes "[Nurse]"; + 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 "[Nurse]"; + mes "\"Wonderfull! You made it! Now i will be able to help all the people, who get poisoned in the mines!\"" + next; + mes "[Nurse]"; + mes "\"Thank you so much! Oh, and it seems, as if you have gained the skill to resist posion someway. This is great.\""; + next; + mes "[Nurse]"; + mes "\"You should talk to someone, who can help you to focus on your skills.\""; + next; + getexp @ANTIDOTE, 0; + setskill TMW_POISON_RESISTANCE, 1; + +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: + mes "The nurse has a worried look in her face."; + mes "[Nurse]"; + mes "\"Hello. I hope you recovered well?\""; + next; + mes "\"There is enough of the distillates left to have another try.\""; + next; + mes "\"Oh no, with all that trouble, I forgot to label your distillate.\""; + next; + mes "She holds up two ampullas."; + next; + mes "\"I hope, this one are yours. I'm sorry.\""; + 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: + mes "The nurse looks at you pitiful."; + mes "[Nurse]"; + mes "\"Hello. I'm really sorry for causing you so much pain.\""; + next; + mes "\"But if we can suceed, you are a hero! I will be able to help a lot of people.\""; + next; + mes "\"Next time you might remember me to label the distillates right. I am sorry that it screwed up again.\""; + next; + mes "\"There is enough stuff left for one last try.\""; + next; + mes "\"If we don't get it this time, you will have to get new ingredients.\""; + 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]"; + mes "\"There is not enough stuff left for another try.\""; + next; + mes "\"We should try again, right?\""; + set @Q_poison, 1; + callsub S_Update_Var; + + goto L_ExplainAgain1; + + +state7: // geschafft + mes "[Nurse]"; + mes "\"Thanks a lot, you can call yourself a true hero now!\""; + next; + mes "\"I am able to help the poisoned miners quite well now.\""; + next; + goto L_Usual; + +L_NotEnough: + mes "[Nurse]"; + mes "\"This must be a missunderstanding. You don't have all the things I asked you for.\""; + if (@Q_poison == 1) goto L_ExplainAgain1; + 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; + +S_Update_Var: + set QUEST_Forestbow_state, + (QUEST_Forestbow_state & ~(@Q_poison_MASK) + | (@Q_poison << @Q_poison_SHIFT)); + return; + +L_Shuffle_Need: + set @count, 24; + set @offset, 1; + 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: + set @hlNeed, ($NPC_NURSE & BYTE_0_MASK) >> BYTE_0_SHIFT; + set @vnNeed, ($NPC_NURSE & BYTE_1_MASK) >> BYTE_1_SHIFT; + set @stNeed, ($NPC_NURSE & BYTE_2_MASK) >> BYTE_2_SHIFT; + return; } + + -- cgit v1.2.3-70-g09d2 From 3b2578da3d7be6724312de452ba9ae51911fb07c Mon Sep 17 00:00:00 2001 From: Stefan Beller Date: Sun, 14 Nov 2010 19:09:45 +0100 Subject: gwendolin and nurse fully done, luca uncommented and corrected. now 2 skills are completely working. luca needs another rework to focus on skills. --- npc/001-1_Tulimshar/luca.txt | 291 ++++++++++++++++++++------------------- npc/009-2_Hurnscald/nurse.txt | 150 +++++++++++++------- npc/016-1_Woodland/gwendolyn.txt | 28 +--- 3 files changed, 246 insertions(+), 223 deletions(-) (limited to 'npc/009-2_Hurnscald') diff --git a/npc/001-1_Tulimshar/luca.txt b/npc/001-1_Tulimshar/luca.txt index bc048e65..0a12545f 100644 --- a/npc/001-1_Tulimshar/luca.txt +++ b/npc/001-1_Tulimshar/luca.txt @@ -2,11 +2,11 @@ 001-1.gat,108,55,0 script Luca 102,{ -// if (BaseLevel >= 45) -// goto L_teach_soon; + if (BaseLevel >= 35) + goto L_teach; -// if (BaseLevel >= 50) -// goto L_teach; + if (BaseLevel >= 25) + goto L_teach_soon; mes "[Luca the Hunter]"; mes "\"Ouch! It hurts, this wound I got from battle.\""; @@ -15,10 +15,10 @@ L_Exp: mes "[Luca the Hunter]"; - mes "\"I was just coming back from a long journey. I ran into a group of scorpions and started fighting them for experience.\""; - next; + mes "\"I was just coming back from a long journey. I ran into a group of scorpions and started fighting them for experience.\""; + next; mes "[Luca the Hunter]"; - mes "\"Then, out of a cave came a BLACK one! I had NEVER seen it before!\""; + mes "\"Then, out of a cave came a BLACK one! I had NEVER seen it before!\""; next; mes "[Luca the Hunter]"; mes "\"Luckily i had a camera with me! Here's a picture of it... Let me find it, I put it in my pocket somewhere...\""; @@ -35,32 +35,32 @@ L_Nev: L_teach_soon: mes "[Luca the Hunter]"; - mes "\"You've grown quite a bit stronger since I first saw you, strolling around town like that! You know, if you train a little more, maybe we can help each other out a little?\""; - close; + mes "\"You've grown quite a bit stronger since I first saw you, strolling around town like that! You know, if you train a little more, maybe we can help each other out a little?\""; + close; L_teach: if (getskilllv(SKILL_POOL)) goto L_teachmore; mes "[Luca the Hunter]"; - mes "\"Hey there! You've become quite the adventurer, haven't you? I think it's time that someone taught you some basic skills.\""; - next; + mes "\"Hey there! You've become quite the adventurer, haven't you? I think it's time that someone taught you some basic skills.\""; + next; mes "[Luca the Hunter]"; mes "\"If you want, I can help with that!\""; - next; - menu + next; + menu "Sure, that sounds fun!", -, "I'm not interested.", L_Nev; mes "[Luca the Hunter]"; - mes "\"All right! It's not all that easy, though. First you have to learn how to focus. That's because you can learn many skills, but you can't focus on all of them all the time.\""; - next; + mes "\"All right! It's not all that easy, though. First you have to learn how to focus. That's because you can learn many skills, but you can't focus on all of them all the time.\""; + next; mes "[Luca the Hunter]"; - mes "\"When you can do that, you can learn some real skills, and when you know them, you can come back to me to tell me which ones you want to focus on. Deal?\""; - next; + mes "\"When you can do that, you can learn some real skills, and when you know them, you can come back to me to tell me which ones you want to focus on. Deal?\""; + next; - menu + menu "Yeah!", L_teach0_follow, "Certainly!", L_teach0_follow, "Wait... what do you mean?", -, @@ -71,182 +71,183 @@ L_teach: L_teach0_follow: mes "[Luca the Hunter]"; - mes "\"Great! Now, before I can give you that skill, I have to make sure that those stories about you are all true and that you really are experienced enough.\""; - next; + mes "\"Great! Now, before I can give you that skill, I have to make sure that those stories about you are all true and that you really are experienced enough.\""; + next; mes "[Luca the Hunter]"; - mes "\"So I'm going to ask you some easy questions.\""; - next; + mes "\"So I'm going to ask you some easy questions.\""; + next; mes "[Luca the Hunter]"; - mes "\"First, who is the man who guards the entrance to the old Tulimshar underground arena?\""; - next; - input @anser$; - if (@answer$ != "Phaet" && @answer$ != "phaet") - goto L_wronganser; + mes "\"First, who is the man who guards the entrance to the old Tulimshar underground arena?\""; + next; + input @answer$; + if (@answer$ != "Phaet" && @answer$ != "phaet") + goto L_wronganswer; mes "[Luca the Hunter]"; - mes "\"Good. Next, what's the name of the pipe-smoker who lives on top of Lore Mountain and makes leathery goods there?\""; - next; - input @anser$; - if (@answer$ != "Pachua" && @answer$ != "pachua") - goto L_wronganser; + mes "\"Good. Next, what's the name of the pipe-smoker who lives on top of Lore Mountain and makes leathery goods there?\""; + next; + input @answer$; + if (@answer$ != "Pachua" && @answer$ != "pachua") + goto L_wronganswer; mes "[Luca the Hunter]"; - mes "\"Great! One more: Who was the adventurer who built Dimond's Cove for Dimond?\""; - next; - input @anser$; - if (@answer$ != "Merlin" && @answer$ != "merlin") - goto L_wronganser; + mes "\"Great! One more: Who was the adventurer who built Dimond's Cove for Dimond?\""; + next; + input @answer$; + if (@answer$ != "Merlin" && @answer$ != "merlin") + goto L_wronganswer; mes "[Luca the Hunter]"; - mes "Luca laughs in excitement."; - mes "\"All right! You're the real thing, my friend!\""; - next; + mes "Luca laughs in excitement."; + mes "\"All right! You're the real thing, my friend!\""; + next; mes "[Luca the Hunter]"; - mes "\"Now stand over there. This should only take a second...\""; - mes "He takes of a pendant he is wearing and holds it up."; - next; + mes "\"Now stand over there. This should only take a second...\""; + mes "He takes of a pendant he is wearing and holds it up."; + next; mes "[Luca the Hunter]"; - mes "\"See that fang at the end of the chain? Keep staring at it at it.\""; - next; + mes "\"See that fang at the end of the chain? Keep staring at it at it.\""; + next; mes "[Luca the Hunter]"; - mes "He starts swinging the pendant back and forth."; - mes "\"And whatever you do, don't blink. Don't look away, and don't blink.\""; - next; + mes "He starts swinging the pendant back and forth."; + mes "\"And whatever you do, don't blink. Don't look away, and don't blink.\""; + next; mes "[Luca the Hunter]"; - mes "The world slows down around you as you focus on the pendant going back..."; - next; + mes "The world slows down around you as you focus on the pendant going back..."; + next; - mes "and forth..."; - next; + mes "and forth..."; + next; - mes "and back..."; - next; + mes "and back..."; + next; - mes "and forth..."; - next; + mes "and forth..."; + next; - mes "and back..."; - next; + mes "and back..."; + next; - mes "and..."; - next; + mes "and..."; + next; - mes "You feel relaxed."; - next; + mes "You feel relaxed."; + next; mes "[Luca the Hunter]"; - mes "\"... still there?\""; - mes "You hear the sound of fingers snapping. Why would someone do that on such a calm day?"; - next; + mes "\"... still there?\""; + mes "You hear the sound of fingers snapping. Why would someone do that on such a calm day?"; + next; mes "[Luca the Hunter]"; - mes "\"Oh, good... I think it worked. Nice job!\""; - mes "He grins."; - mes "[You gain 10,000 experience points]"; - mes "[You learned Skill Focus]"; - setskill SKILL_POOL, 1; - getexp 10000, 0; - next; + mes "\"Oh, good... I think it worked. Nice job!\""; + mes "He grins."; + mes "[You gain 10,000 experience points]"; + mes "[You learned Skill Focus]"; + setskill SKILL_POOL, 1; + getexp 10000, 0; + next; - goto L_teachmore2; + goto L_teachmore2; -L_wronganser: + L_wronganswer: mes "[Luca the Hunter]"; - mes "\"No, that was wrong. I suppose you're not as experienced as I thought you'd be.\""; - close; + mes "\"No, that was wrong. I suppose you're not as experienced as I thought you'd be.\""; + close; S_explain: - mes "[Luca the Hunter]"; - mes "\"Alright, what do you want to know?\""; - next; + mes "[Luca the Hunter]"; + mes "\"Alright, what do you want to know?\""; + next; S_explain_loop: menu - "What's skill focus?", L_explain_focus, - "What skills are there?", L_explain_skills, - "How do skills work?", L_explain_work, - "Thanks, I think I got it!", -; + "What's skill focus?", L_explain_focus, + "What skills are there?", L_explain_skills, + "How do skills work?", L_explain_work, + "Thanks, I think I got it!", -; return; L_explain_focus: - mes "[Luca the Hunter]"; - mes "\"Well, you can learn many, many skills. But you can't really use all of them at once, not even old Aulsbels' head is big enough for that! So you have to focus.\""; - next; - mes "[Luca the Hunter]"; - mes "\"But you can change that focus whenever you want. It works like this: You come to me, you tell me what you want to focus on, and we do exercises until it's stuck in your head.\""; - next; - mes "[Luca the Hunter]"; - mes "\"If there's not enough space in your head, you'll first have to stop thinking about some other thing. There's an exercise I learned to do that, so when you talk to me you can just let me know what you want to forget.\""; - next; - mes "[Luca the Hunter]"; - if (getskilllv(SKILL_POOL) == 0) - mes "\"Right now you can't focus on anything yet, so I'll first have to teach you a simple skill to keep your focus.\""; - if (getskilllv(SKILL_POOL) == 1) - mes "\"Right now you can only focus on one thing at a time. So if you want to change, you have to forget whatever else you've focused on.\""; - if (getskilllv(SKILL_POOL) > 1) - mes "\"You can focus on " + getskilllv(SKILL_POOL) + " skills right now.\""; - next; - mes "[Luca the Hunter]"; - mes "\"You can come back to me to focus or unfocus whenever you want, I'm here all day.\""; - next; - goto S_explain_loop; + mes "[Luca the Hunter]"; + mes "\"Well, you can learn many, many skills. But you can't really use all of them at once, not even old Aulsbels' head is big enough for that! So you have to focus.\""; + next; + mes "[Luca the Hunter]"; + mes "\"But you can change that focus whenever you want. It works like this: You come to me, you tell me what you want to focus on, and we do exercises until it's stuck in your head.\""; + next; + mes "[Luca the Hunter]"; + mes "\"If there's not enough space in your head, you'll first have to stop thinking about some other thing. There's an exercise I learned to do that, so when you talk to me you can just let me know what you want to forget.\""; + next; + mes "[Luca the Hunter]"; + if (getskilllv(SKILL_POOL) == 0) + mes "\"Right now you can't focus on anything yet, so I'll first have to teach you a simple skill to keep your focus.\""; + if (getskilllv(SKILL_POOL) == 1) + mes "\"Right now you can only focus on one thing at a time. So if you want to change, you have to forget whatever else you've focused on.\""; + if (getskilllv(SKILL_POOL) > 1) + mes "\"You can focus on " + getskilllv(SKILL_POOL) + " skills right now.\""; + next; + mes "[Luca the Hunter]"; + mes "\"You can come back to me to focus or unfocus whenever you want, I'm here all day.\""; + next; + goto S_explain_loop; L_explain_skills: - mes "[Luca the Hunter]"; - mes "\"Well, I don't really know... lots, I think. I can teach you brawling, which is good when you've run out of arrows or don't have a weapon around.\""; - next; - mes "[Luca the Hunter]"; - mes "\"But there's other skills around. Some mages need special skills to concentrate, so ask around in that crowd, if that's your thing.\""; - next; - mes "[Luca the Hunter]"; - mes "\"I've also heard that there is someone in Hurnscald who can help you make your body more resistant against some things. But body and mind belong together, so you probably have to focus for that, too.\""; - next; - mes "[Luca the Hunter]"; - mes "\"Other than that, just ask around! There have to be some people who can teach you something...\""; - next; - goto S_explain_loop; + mes "[Luca the Hunter]"; + mes "\"Well, I don't really know... lots, I think. I can teach you brawling, which is good when you've run out of arrows or don't have a weapon around.\""; + next; + mes "[Luca the Hunter]"; + mes "\"But there's other skills around. Some mages need special skills to concentrate, so ask around in that crowd, if that's your thing.\""; + next; + mes "[Luca the Hunter]"; + mes "\"I've also heard that there is someone in Hurnscald who can help you make your body more resistant against some things. But body and mind belong together, so you probably have to focus for that, too.\""; + next; + mes "[Luca the Hunter]"; + mes "\"Other than that, just ask around! There have to be some people who can teach you something...\""; + next; + goto S_explain_loop; L_explain_work: - mes "[Luca the Hunter]"; - mes "\"Well, skills allow you to be better in some things, or just to do what you couldn't do without them. When you've learned a skill and are focussing on it, then it affects what you do.\""; - next; - mes "[Luca the Hunter]"; - mes "\"Now, when you start out with a skill, you won't be very good at it yet. But if you keep practicing you'll learn how to get better.\""; - next; - mes "[Luca the Hunter]"; - mes "\"My old teacher always called that getting `skill points' and that you can see them with [F5], whoever that is.\""; - next; - mes "[Luca the Hunter]"; - mes "\"She also said that with this [F5] thing you can get better at those skills, and that it costs you as many skill points as the level you want to go to.\""; - next; - mes "[Luca the Hunter]"; - mes "\"She always would have one cactus poition too many... but she was an amazing teacher.\""; - mes "He nods emphatically."; - next; - goto S_explain_loop; + mes "[Luca the Hunter]"; + mes "\"Well, skills allow you to be better in some things, or just to do what you couldn't do without them. When you've learned a skill and are focussing on it, then it affects what you do.\""; + next; + mes "[Luca the Hunter]"; + mes "\"Now, when you start out with a skill, you won't be very good at it yet. But if you keep practicing you'll learn how to get better.\""; + next; + mes "[Luca the Hunter]"; + mes "\"My old teacher always called that getting `skill points' and that you can see them with [F5], whoever that is.\""; + next; + //TODO: + //mes "[Luca the Hunter]"; + //mes "\"She also said that with this [F5] thing you can get better at those skills, and that it costs you as many skill points as the level you want to go to.\""; + //next; + mes "[Luca the Hunter]"; + mes "\"She always would have one cactus poition too many... but she was an amazing teacher.\""; + mes "He nods emphatically."; + next; + goto S_explain_loop; L_teachmore: - mes "[Luca the Hunter]"; - mes "\"Good to see you again!\""; - next; + mes "[Luca the Hunter]"; + mes "\"Good to see you again!\""; + next; L_teachmore2: - menu - "I would like to focus.", L_focus, - "I would like to unfocus.", L_unfocus, - "Can you teach me a skill?", L_teach_brawling, - "Can you explain skills again?", L_teachmore_explain, - "I'm done for now, thanks!"; + menu + "I would like to focus.", L_focus, + "I would like to unfocus.", L_unfocus, + "Can you teach me a skill?", L_teach_brawling, + "Can you explain skills again?", L_teachmore_explain, + "I'm done for now, thanks!",-; close; L_teachmore_explain: callsub S_explain; - goto L_teachmore2; + goto L_teachmore2; L_focus: //FIXME @@ -256,6 +257,6 @@ L_unfocus: L_teach_brawling: //FIXME - close; + close; } diff --git a/npc/009-2_Hurnscald/nurse.txt b/npc/009-2_Hurnscald/nurse.txt index 8d6f1ee9..1cffc5b4 100644 --- a/npc/009-2_Hurnscald/nurse.txt +++ b/npc/009-2_Hurnscald/nurse.txt @@ -10,8 +10,8 @@ //# used player-variable: QUEST_Forestbow, nibble7 //# states: //# 0 if skills are available, she tells you about her plans of doing the antidote, -//# need black scorpion stingers and grass snake tongues -//# 1 waits for ingredients: black scorpion stingers and grass snake tongues +//# 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, //# she mixes the stuff (modify global variable!) //# 3 you can start the minigame, 3 tries remaining @@ -22,16 +22,18 @@ //###################################################################################### -009-2.gat,147,65,0 script Nurse 119, { - set @GSNAKET_AMOUNT, 5; +009-2.gat,147,65,0 script Nurse 119, { + set @SNAKET_AMOUNT, 5; set @BSCORPIONST_AMOUNT, 10; - set @QUEST1_EXP, 5000; + // This quest can be done very often: so give less xp + set @QUEST1_EXP, 300; set @ACORNS_AMOUNT, 10; set @GREENAPPLE_AMOUNT, 5; set @REDAPPLE_AMOUNT, 5; set @ORANGE_AMOUNT, 5; set @HEALING_AMOUNT, 3; - set @QUEST2_EXP, 10000; + // This quest can be done very often: so give less xp + set @QUEST2_EXP, 700; set @ANTIDOTE_EXP, 10000; set @Q_poison_MASK, NIBBLE_7_MASK; @@ -45,6 +47,7 @@ if (@Q_poison == 3) goto state3; if (@Q_poison == 2) goto state2; if (@Q_poison == 1) goto state1; + mes "TODO: remove: skill check: " + getskilllv(SKILL_POOL); if (getskilllv(SKILL_POOL)) goto state0; L_Usual: @@ -100,23 +103,24 @@ state0: next; mes "\"Unfortunaly, some of them are poisonous and it is very difficult for us to help the miners.\""; next; - mes "\"For this 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.\""; + 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_, + "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.\""; + mes "\"That is disagreeable to hear. Maybe I can find another person to take this task.\""; next; goto L_Usual; +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 grass snakes and ten stingers of black scorpions.\""; + mes "\"Please bring me five tongues of snakes and ten stingers of black scorpions.\""; close; state1: @@ -129,8 +133,8 @@ state1: "I have what you asked for.", -, "I'm still working on that.", quit; - if (countitem("GrassSnakeTongue") < @GSNAKET_AMOUNT || countitem("BlackScorpionStinger") < @BSCORPIONST_AMOUNT) goto L_NotEnough; - delitem "GrassSnakeTongue", @GSNAKET_AMOUNT; + if (countitem("SnakeTongue") < @SNAKET_AMOUNT || countitem("BlackScorpionStinger") < @BSCORPIONST_AMOUNT) goto L_NotEnough; + delitem "SnakeTongue", @SNAKET_AMOUNT; delitem "BlackScorpionStinger", @BSCORPIONST_AMOUNT; getexp @QUEST1_EXP, 0; @@ -204,20 +208,19 @@ L_Exp_Game: mes "[Nurse]"; mes "\"Listen carefully! I will explain, what you need to do.\""; next; - mes "\"I have here two different distillate. One is the venom extract, the other one a stabilizer.\""; + mes "\"I have here two different distillates. One is the venom extract, the other one a stabilizer.\""; next; mes "\"We also have the healing potion.\""; next; - mes "\"The problem is, that i can only guess the concentration of the venom and the stabilizer. My equipment isn't good enough to determine it precise.\""; + mes "\"The problem is, that I can only guess the concentration of the venom and the stabilizer. My equipment isn't good enough to determine it precise.\""; next; mes "\"You need to find the right amount of each ingredient. I will tell you, what I can know with my analysis methods.\""; next; - mes "\"Shall we start? \""; + mes "\"Shall we start?\""; next; menu "Please explain it again.", L_Exp_Game, - "Allright", -; - + "Alright.", -; L_Game: set @Q_poison, @Q_poison + 1; callsub S_Update_Var; @@ -225,41 +228,65 @@ L_Game: callsub L_Load_Need; //descriptions set @desc_length, 6; + setarray @desc$,"very little","only a little", "little","much", "a lot", "very much", "a huge amount"; - + set @divisor, @count / @desc_length; - set @hlIndex, (@hl_need-@offset) /@divisor; - set @vnIndex, (@hl_need-@offset) /@divisor; - set @stIndex, (@hl_need-@offset) /@divisor; - + + set @hlIndex, (@hlNeed-@offset) /@divisor; + set @vnIndex, (@vnNeed-@offset) /@divisor; + set @stIndex, (@stNeed-@offset) /@divisor; + + //mes "TODO REMOVE: needs" + @hlNeed + " " + @vnNeed + " " + @stNeed; + //mes "TODO REMOVE: @count:" + @count + " @offset: " + @offset + " @desc_length" + @desc_length +" @divisor" +@divisor; + //mes "TODO REMOVE: Indices" + @hlIndex + " " + @vnIndex + " " + @stIndex; + + mes "[Nurse]"; mes "\"I guess you need " + @desc$[@hlIndex] + " of the healing potion.\""; - mes "\"I guess you need " + @desc$[@vnIndex] + " of the venom extracts.\""; - mes "\"I guess you need " + @desc$[@stIndex] + " of the stabilizer.\""; - - if(hlNeed/vnNeed > 1 ) mes "\"I see that the healing potions are needed at least " + hlNeed/vnNeed + "times as much as the venom potion. \""; - if(vnNeed/hlNeed > 1 ) mes "\"I see that the venom extracts are needed at least " + vnNeed/hlNeed + "times as much as the healing potion.\""; - + next; + mes "\"You need " + @desc$[@vnIndex] + " of the venom extracts, I suppose.\""; + next; + mes "\"As far as I can tell you will need " + @desc$[@stIndex] + " of the stabilizer.\""; + next; - //the same for vn<->st - - //the same for vn<->hl + 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; + + 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.\""; + mes "\"My scale goes up to " + @max + ". I suggest to put at least " + @min +" drops on the scale.\""; + next; + mes "\"How many drops of the healing potion should we use?\""; input @hlPut; + if (@hlPut < @offset) goto L_Game_tooless; + if (@hlPut > @max) goto L_Game_toomuch; + mes "\"How many drops of the venom extract potion should we use? \""; input @vnPut; + if (@vnPut < @offset) goto L_Game_tooless; + if (@vnPut > @max) goto L_Game_toomuch; + mes "\"How many drops of the stabilizer potion should we use? \""; 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."; next; mes "[Nurse]"; - mes "\"Allright, now i will inject the venom into you, then you should drink the antidote immidiatly. Are you ready?\""; + mes "\"Allright, now I will inject the venom into you, then you should drink the antidote immidiatly. Are you ready?\""; next; mes "You take a deep breath and nod."; next; @@ -270,29 +297,35 @@ L_Game: mes "[Nurse]"; mes "\"Drink the antidote!\""; next; - mes "You lift the glass to you lips and drink it all at once"; + 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; if ( (@hlPut < @hlNeed) && (@vnPut < @vnNeed) ) goto l_hl_l_vn; + + mes "You feel quite normal."; + mes "[Nurse]"; + 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,180000,0; + sc_start sc_poison, 1, 20; mes "You began to feel really dizzy. And you feel so light - you can't help yourself and burst out with laughter. What a strange feeling!"; next; mes "The nurse looks at you with a really worried look in her face. As you open your mouth to tell her, that you feel allright, the content of your stomache finds its way out through your throat and on the floor."; next; - "The feeling of happieness disappears, but you seems to be still poisoned."; + 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,60000,0; + sc_start sc_poison, 1, 20; mes "You feel the pain of the poison weaken. This seems promising. The thought, you might have been succesful makes you feel enormously happy."; next; mes "But a few seconds later, you wonder, what the reason for your happiness was."; @@ -307,21 +340,21 @@ m_hl_l_vn: 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; - mes "/"Very well, you are sober again./""; + mes "\"Very well, you are sober again.\""; next; goto check_st; l_hl_m_vn: // first poison for 10 minutes, player will die anyway - sc_start SC_Poison,600000,0; + sc_start sc_poison, 1, 20; mes "You feel a sting in your stomach and your heart starts pounding loudly."; next; - mes "The room is getting dark." + mes "The room is getting dark."; next; - mes "...and darker..." + mes "...and darker..."; next; - mes "......." + mes "......."; // bye bye player! heal -Hp, 0; // close instead of telling how much stabilizer is needed @@ -330,8 +363,8 @@ l_hl_m_vn: l_hl_l_vn: //poison for 1 minute - sc_start SC_Poison, 60000,0; - mes "The antidote seems to have no effect." + sc_start sc_poison, 1, 20; + mes "The antidote seems to have no effect."; goto check_st; check_st: @@ -356,17 +389,20 @@ m_st: 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!\"" + mes "\"Wonderfull! You made it! Now I will be able to help all the people, who get poisoned in the mines!\""; next; - mes "[Nurse]"; mes "\"Thank you so much! Oh, and it seems, as if you have gained the skill to resist posion someway. This is great.\""; next; - mes "[Nurse]"; mes "\"You should talk to someone, who can help you to focus on your skills.\""; next; getexp @ANTIDOTE, 0; setskill TMW_POISON_RESISTANCE, 1; + mes "TODO: set @Q_poison, 7"; + mes "TODO: make close here:"; + //close; notallcorrect: mes "[Nurse]"; @@ -395,14 +431,14 @@ state4: "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.\""; next; mes "\"But if we can suceed, you are a hero! I will be able to help a lot of people.\""; next; - mes "\"Next time you might remember me to label the distillates right. I am sorry that it screwed up again.\""; + mes "\"Next time you might remember me to label the distillates right. I am sorry that it is screwed up again.\""; next; mes "\"There is enough stuff left for one last try.\""; next; @@ -452,10 +488,14 @@ S_Update_Var: (QUEST_Forestbow_state & ~(@Q_poison_MASK) | (@Q_poison << @Q_poison_SHIFT)); return; - -L_Shuffle_Need: + +L_Game_init_vars: set @count, 24; - set @offset, 1; + set @offset, 1; + return; + +L_Shuffle_Need: + callsub L_Game_init_vars; set @hlNeed, @offset + rand(@count); set @vnNeed, @offset + rand(@count); set @stNeed, @offset + rand(@count); @@ -468,10 +508,16 @@ L_Shuffle_Need: return; L_Load_Need: + callsub L_Game_init_vars; set @hlNeed, ($NPC_NURSE & BYTE_0_MASK) >> BYTE_0_SHIFT; set @vnNeed, ($NPC_NURSE & BYTE_1_MASK) >> BYTE_1_SHIFT; set @stNeed, ($NPC_NURSE & BYTE_2_MASK) >> BYTE_2_SHIFT; return; + +L_Game_tooless: + //TODO +L_Game_toomuch: + //TODO } diff --git a/npc/016-1_Woodland/gwendolyn.txt b/npc/016-1_Woodland/gwendolyn.txt index 8c6728da..6fada83a 100644 --- a/npc/016-1_Woodland/gwendolyn.txt +++ b/npc/016-1_Woodland/gwendolyn.txt @@ -142,9 +142,8 @@ state3: next; state4: - // TODO - // check if skills are enabled, if not, goto not_ready if (baselevel < @BASELEVEL_GAME) goto not_ready; + if (!getskilllv(SKILL_POOL)) goto not_ready; mes "Gwendolyn takes an analyzing look at you. Then she noods."; next; @@ -215,9 +214,6 @@ game: set @wp_sq, (@wdX * @wdX) + (@wdY * @wdY); -//TODO: remove -//mes "wdX:"+@wdX+" wdY:"+@wdY+" wp_sq:"+@wp_sq+" wdIndex:"+@wdIndex; - if (@wp_sq == 0) goto wp0; if (@wp_sq < 3) goto wp1; if (@wp_sq < 9) goto wp2; @@ -346,9 +342,6 @@ choose_shotpower: set @pointX, @wdX + @spX; set @pointY, @wdY + @sp; -//TODO: remove -//mes "pointX:"+@pointX+" pointY:"+@pointY+" spX:"+@spX+" sp:"+@sp; - if( @pointX==0 && @pointY==0 ) goto target_hit; //set @targethit to these numbers: @@ -436,9 +429,7 @@ target_nohit: state6: mes "[Gwendolyn Bowmaker]"; mes "\"You really have a reason to be proud.\""; - //close; - //TODO: uncomment close! - mes "here is an uncommented close; for testing purpose, you can try once more :-D"; + close; state1: mes "[Gwendoly Bowmaker]"; @@ -522,21 +513,6 @@ S_getDirection: //check the origin, because the origin is found by the "straight" lines as well. (should not, but is.. maybe a bug?) if( @paramX==0 && @paramY==0 ) set @returnIndex, 5; return; - -//TODO: remove: -testoutput: - set @paramX ,-4; -loopouter: - set @paramY ,-4; -loopinner: -callsub S_getDirection; -mes " "+@paramX+" / "+@paramY+" = "+@returnIndex; -set @paramY, @paramY+1; -if(@paramY<5)goto loopinner; -next; -set @paramX, @paramX+1; -if(@paramX<5)goto loopouter; -return; } //////////////////////////////////// -- cgit v1.2.3-70-g09d2 From 1e928158cca01692172158805c949b19843ba41e Mon Sep 17 00:00:00 2001 From: Stefan Beller Date: Mon, 27 Dec 2010 15:03:55 +0100 Subject: Wyara also knows the astral soul skill, but you don't expect her to teach you? No, she really can't. She isn't a good mage, is she? --- npc/009-2_Hurnscald/wyara.txt | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'npc/009-2_Hurnscald') diff --git a/npc/009-2_Hurnscald/wyara.txt b/npc/009-2_Hurnscald/wyara.txt index 256c036c..fc80798c 100644 --- a/npc/009-2_Hurnscald/wyara.txt +++ b/npc/009-2_Hurnscald/wyara.txt @@ -30,7 +30,7 @@ goto L_Magic_purify_once; if (@Q_status == @STATUS_PURIFY_TWICE) goto L_Magic_purify_done; - + mes "[Wyara the witch]"; if (!Sex) mes "\"Greetings, fair traveller! What can I do for you?\""; @@ -71,6 +71,7 @@ L_Question: if (@c == @QQ_AULDSBEL) goto L_Q_auldsbel; if (@c == @QQ_IMP) goto L_Q_imp; if (@c == @QQ_OLDWIZ) goto L_Q_old_wizard; + if (@c == @QQ_ASTRALSOUL)goto L_Q_astralsoul; mes "[Wyara the Witch]"; mes "\"I fear that I can't help you with that.\""; @@ -78,6 +79,15 @@ L_Question: goto L_Main; +L_Q_astralsoul: + mes "[Wyara the Witch]"; + mes "\"The astral soul skill? Yes, I have heard about that. It can be taught by old and wise mages usually.\""; + next; + mes "\"You need lots of practise until you can handle the ability, and even more practises until you have the powers to teach it to someone else.\""; + next; + goto L_Main; + + L_Q_old_wizard: mes "[Wyara the Witch]"; mes "\"I don't know his name, but I do know that he has been living in the mountains since I first came here. He is a master of many schools of magic, I believe.\""; @@ -340,7 +350,7 @@ L_Magic_purify_explained: goto L_Magic_purify_lacking; if (countitem("MaggotSlime") < 20) goto L_Magic_purify_lacking; - + delitem "MauveHerb", 20; delitem "MaggotSlime", 20; getitem "PurificationPotion", 1; @@ -390,7 +400,7 @@ L_Magic_purify_once: goto L_Magic_purify_lacking; if (countitem("MaggotSlime") < 20) goto L_Magic_purify_lacking; - + delitem "MauveHerb", 20; delitem "MaggotSlime", 20; getitem "PurificationPotion", 1; -- cgit v1.2.3-70-g09d2 From 29a65c0d92c10fadff09802a8f044e4b35b9beda Mon Sep 17 00:00:00 2001 From: Stefan Beller Date: Mon, 27 Dec 2010 20:33:40 +0100 Subject: remove the last compile errors --- npc/009-2_Hurnscald/nurse.txt | 115 +++++++++++++++++------------------ npc/011-1_Woodland/auldsbel.txt | 2 +- npc/013-1_Woodland_hills/sagatha.txt | 3 +- npc/functions/magic.txt | 4 +- 4 files changed, 63 insertions(+), 61 deletions(-) (limited to 'npc/009-2_Hurnscald') 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; -- cgit v1.2.3-70-g09d2 From c2da0b33fdf6138e7441b25f46714705832fc524 Mon Sep 17 00:00:00 2001 From: Stefan Beller Date: Sat, 1 Jan 2011 17:18:49 +0100 Subject: Nurse fully done, no todos in there --- npc/009-2_Hurnscald/nurse.txt | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) (limited to 'npc/009-2_Hurnscald') diff --git a/npc/009-2_Hurnscald/nurse.txt b/npc/009-2_Hurnscald/nurse.txt index 8262bf85..f4d5df40 100644 --- a/npc/009-2_Hurnscald/nurse.txt +++ b/npc/009-2_Hurnscald/nurse.txt @@ -47,7 +47,6 @@ if (@Q_poison == 3) goto state3; if (@Q_poison == 2) goto state2; if (@Q_poison == 1) goto state1; - mes "TODO: remove: skill check: " + getskilllv(SKILL_POOL); if (getskilllv(SKILL_POOL)) goto state0; L_Usual: @@ -237,10 +236,6 @@ L_Game: set @vnIndex, (@vnNeed-@offset) /@divisor; set @stIndex, (@stNeed-@offset) /@divisor; - //mes "TODO REMOVE: needs" + @hlNeed + " " + @vnNeed + " " + @stNeed; - //mes "TODO REMOVE: @count:" + @count + " @offset: " + @offset + " @desc_length" + @desc_length +" @divisor" +@divisor; - //mes "TODO REMOVE: Indices" + @hlIndex + " " + @vnIndex + " " + @stIndex; - mes "[Nurse]"; mes "\"I guess you need " + @desc$[@hlIndex] + " of the healing potion.\""; next; @@ -251,16 +246,17 @@ 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; + if ( (@hlNeed/@vnNeed > 1 ) || (@vnNeed/@hlNeed > 1 )) 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 ((@vnNeed/@stNeed > 1 ) || (@stNeed/@vnNeed > 1 )) 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; + if ((@hlNeed/@stNeed > 1 ) || (@stNeed/@hlNeed > 1 )) next; +L_choosePut: 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.\""; @@ -292,7 +288,7 @@ L_Game: next; mes "The nurse take a scary looking syringe out of a drawer and swabs your arm with disinfection dabber."; next; - mes "Then she stings the syringe in your vein and pushs it down. After a few seconds, your heart starts pounding quicker and you began to sweat all over your body"; + mes "Then she stings the syringe in your vein and pushs it down. After a few seconds, your heart starts pounding quicker and you began to sweat all over your body."; next; mes "[Nurse]"; mes "\"Drink the antidote!\""; @@ -398,9 +394,9 @@ allcorrect: next; getexp @ANTIDOTE, 0; setskill TMW_POISON_RESISTANCE, 1; - mes "TODO: set @Q_poison, 7"; - mes "TODO: make close here:"; - //close; + set @Q_poison, 7; + callsub S_Update_Var; + close; notallcorrect: mes "[Nurse]"; @@ -512,11 +508,14 @@ L_Load_Need: return; L_Game_tooless: - //TODO - mes ""; + mes "[Nurse]"; + mes "\"That is nothing! So you need to put in there at least a small amount."; + goto L_choosePut; + L_Game_toomuch: - //TODO - mes ""; + mes "[Nurse]"; + mes "\"This would be way too much for my scale. I don't want to break it.\""; + goto L_choosePut; } -- cgit v1.2.3-70-g09d2