From 7c4651fcd1a2c5d7355100e8134e3ff34df842b2 Mon Sep 17 00:00:00 2001 From: Sini Ruohomaa Date: Sun, 29 Aug 2010 12:47:43 +0300 Subject: Language and friendlifying newbie quests with timing tips. Also a minor bugfix to Nickos. --- npc/001-1_Tulimshar/children.txt | 16 ++++++++-------- npc/001-1_Tulimshar/mikhail.txt | 9 ++++++++- npc/001-1_Tulimshar/sandra.txt | 23 +++++++++++------------ npc/001-1_Tulimshar/sarah.txt | 14 ++++++++++++-- npc/001-1_Tulimshar/vincent.txt | 9 +++++++++ 5 files changed, 48 insertions(+), 23 deletions(-) (limited to 'npc/001-1_Tulimshar') diff --git a/npc/001-1_Tulimshar/children.txt b/npc/001-1_Tulimshar/children.txt index 701fe2b6..c8941563 100644 --- a/npc/001-1_Tulimshar/children.txt +++ b/npc/001-1_Tulimshar/children.txt @@ -1,4 +1,4 @@ -// +// Aisha and Nina 001-1.gat,95,29,0 script Aisha 108,{ set @TEMP,rand(9); @@ -44,7 +44,7 @@ L_6: L_7: mes "[Aisha]"; - mes "\"I want to be a Doctor when i grow up!\""; + mes "\"I want to be a Doctor when I grow up!\""; close; L_8: @@ -85,7 +85,7 @@ L_4: close; L_5: - mes "\"I always take some spare Cactus Juices with me on the field. They are heavy, though.\""; + mes "\"I always take some spare [Cactus Juice]s with me on the field. They are heavy, though.\""; close; L_6: @@ -101,7 +101,7 @@ L_8: close; L_9: - mes "\"I know a very bad word. But I must not say it, because monsters will come and get me if I do!\""; + mes "\"I know a very bad word. But I must not say it, because monsters will come and get me if I do!\""; next; menu "A bad word?", L_tell, @@ -110,10 +110,10 @@ L_9: L_tell: mes "[Nina]"; - mes "\"Yes, I heard my mother say it once. And she made me promise her to never say it. Never.\""; + mes "\"Yes, I heard my mother say it once. And she made me promise her to never say it. Never.\""; next; menu "If I promise to never tell anyone, can you tell me the word?", L_keepword, - "I understand, you do not need to tell...", L_giveword, + "I understand, you do not need to tell me...", L_giveword, "Goodbye!", -; close; @@ -124,8 +124,8 @@ L_keepword: L_giveword: mes "[Nina]"; - mes "Nina looks around as she hushes you to silence. After a few seconds she whispers to you."; - mes "\"I like you! So I will tell you the bad word. But you can't tell anyone else about it! The bad word is '" + getspellinvocation("aggravate") + "'.\""; + mes "Nina looks around as she hushes you to silence. After a few seconds, she whispers to you."; + mes "\"I like you! So I will tell you the bad word. But you can't tell anyone else about it! The bad word is '" + getspellinvocation("aggravate") + "'.\""; next; mes "[Nina]"; diff --git a/npc/001-1_Tulimshar/mikhail.txt b/npc/001-1_Tulimshar/mikhail.txt index 76a1ad59..2ec8b50b 100644 --- a/npc/001-1_Tulimshar/mikhail.txt +++ b/npc/001-1_Tulimshar/mikhail.txt @@ -4,10 +4,17 @@ if (TMW_Quest == 6) goto L_Done; if (TMW_Quest == 5) goto L_Progress; if (TMW_Quest == 4) goto L_Start; + if (TMW_Quest < 4) goto L_Convince_Mikhail_First; + // If this happens, something is wrong with the above case handling. + mes "Mikhail looks confused."; + close; + +L_Convince_Mikhail_First: mes "[Mikhail]"; mes "\"Hello...\""; - close; + mes ""; + mes "It seems that the boy would like to say more, but does not dare to open up to you. Maybe you should help someone else first, so that he sees your intentions are good."; L_Start: mes "[Mikhail]"; diff --git a/npc/001-1_Tulimshar/sandra.txt b/npc/001-1_Tulimshar/sandra.txt index 49d47a8a..45b91ab3 100644 --- a/npc/001-1_Tulimshar/sandra.txt +++ b/npc/001-1_Tulimshar/sandra.txt @@ -6,7 +6,7 @@ if (TMW_Quest == 10) goto L_Start; mes "[Sandra]"; - mes "\"Hunting monsters for potion ingredients can sometimes be a difficult task.\""; + mes "\"Hunting monsters for potion ingredients can sometimes be a difficult task. Maybe you could help me at some point.\""; close; L_Start: @@ -19,19 +19,19 @@ L_Start: L_Opening0: mes "[Sandra]"; - mes "\"In the outskirts of Tulimshar, there are some scorpions. I need a favor, please help me. Will you?\""; + mes "\"In the outskirts of Tulimshar, there are some scorpions... I need a favor, please help me! Will you?\""; next; goto L_Ask; L_Opening1: mes "[Sandra]"; - mes "\"When you venture in the outskirts of Tulimshar, you can spot scorpions. Will you help me kill some?\""; + mes "\"When you venture to the outskirts of Tulimshar, you can spot scorpions. Will you help me kill some?\""; next; goto L_Ask; L_Opening2: mes "[Sandra]"; - mes "\"The scorpion stinger carries many properties used in potions. Will you get some for me?\""; + mes "\"The [Scorpion Stinger] carries many properties used in potions. Would you get some for me?\""; next; goto L_Ask; @@ -43,8 +43,8 @@ L_Opening3: L_Ask: menu - "Yes", L_Yes, - "No", L_No; + "Yes.", L_Yes, + "No.", L_No; L_Yes: set @TEMP, rand(3); @@ -60,27 +60,26 @@ L_Req0: L_Req1: mes "[Sandra]"; - mes "\"I heard a while ago that scorpion stingers can be used for medical purposes. I need you to help me get 5 [Scorpion Stinger]s.\""; + mes "\"I heard a while ago that stingers from scorpions can be used for medical purposes. I need you to help me get 5 [Scorpion Stinger]s.\""; next; goto L_Set; L_Req2: mes "[Sandra]"; - mes "\"Bring me 5 [Scorpion Stinger]s. I'll give you something if you do.\""; + mes "\"Bring me 5 [Scorpion Stinger]s. I'll give you something if you do!\""; next; goto L_Set; L_Set: set TMW_Quest,11; mes "[Sandra]"; - mes "\"Please bring me them!\""; + mes "\"Please get them for me!\""; close; L_Progress: if (countitem("ScorpionStinger") < 5) goto L_NotEnough; mes "[Sandra]"; - mes "\"Excellent!"; - mes "You brought me 5 [Scorpion Stinger]s!\""; + mes "\"Excellent! You brought me 5 [Scorpion Stinger]s!\""; getinventorylist; if (@inventorylist_count + (countitem("ScorpionStinger") == 5) - (countitem("Arrow") == 0) > 99) goto L_TooMany; delitem "ScorpionStinger", 5; @@ -105,6 +104,6 @@ L_No: L_TooMany: next; mes "[Sandra]"; - mes "\"You don't have room for my reward. I'll wait until you do.\""; + mes "\"You don't have room for my reward. I'll wait until you do.\""; close; } diff --git a/npc/001-1_Tulimshar/sarah.txt b/npc/001-1_Tulimshar/sarah.txt index bc02bef4..cc4126a8 100644 --- a/npc/001-1_Tulimshar/sarah.txt +++ b/npc/001-1_Tulimshar/sarah.txt @@ -4,11 +4,21 @@ if (TMW_Quest >= 8) goto L_Done; if (TMW_Quest == 7) goto L_Progress; if (TMW_Quest == 6) goto L_Start; + if (TMW_Quest < 6) goto L_Convince_Sarah_First; - mes "[Sarah]"; - mes "\"Boy, am I hungry or what!\""; + // If this is shown, something is wrong with the above case handling. + mes "Sarah looks confused."; close; +L_Convince_Sarah_First: + mes "[Sarah]"; + mes "\"Boy, am I hungry or what!\""; + mes ""; + mes "The girl suddenly looks at you suspiciously." + next; + mes "[Sarah]"; + mes "\"My mommy says not to talk to strangers!\"; + L_Start: set @TEMP, rand(2); diff --git a/npc/001-1_Tulimshar/vincent.txt b/npc/001-1_Tulimshar/vincent.txt index b2f2e98b..ffd05162 100644 --- a/npc/001-1_Tulimshar/vincent.txt +++ b/npc/001-1_Tulimshar/vincent.txt @@ -4,10 +4,19 @@ if (TMW_Quest >= 10) goto L_Done; if (TMW_Quest == 9) goto L_Progress; if (TMW_Quest == 8) goto L_Start; + if (TMW_Quest < 8) goto L_Convince_Vincent_First; + // If this happens, something is wrong with the above code. + mes "Vincent looks confused."; + close; + +L_Convince_Vincent_First: mes "[Vincent]"; mes "\"I'm making an action figure. I'm almost done with it.\""; + mes ""; + mes "Vincent seems distracted with his near-completed figurine for now."; close; + L_Start: -- cgit v1.2.3-70-g09d2 From 63f66361cb1e78958b9055243ebabbd7cb93ba45 Mon Sep 17 00:00:00 2001 From: Wombat Date: Mon, 30 Aug 2010 00:47:41 -0400 Subject: Removed diryn from 009-1 and minor fix to sarah.txt diryn has moved to 008-1, south of Hurnscald and has been removed from 009-1 diryn need to be removed again from import.txt and a fix to sarah.txt --- npc/001-1_Tulimshar/sarah.txt | 7 ++--- npc/009-1_Hurnscald/_import.txt | 1 - npc/009-1_Hurnscald/diryn.txt | 66 ----------------------------------------- 3 files changed, 3 insertions(+), 71 deletions(-) delete mode 100644 npc/009-1_Hurnscald/diryn.txt (limited to 'npc/001-1_Tulimshar') diff --git a/npc/001-1_Tulimshar/sarah.txt b/npc/001-1_Tulimshar/sarah.txt index cc4126a8..86ed8db6 100644 --- a/npc/001-1_Tulimshar/sarah.txt +++ b/npc/001-1_Tulimshar/sarah.txt @@ -13,11 +13,10 @@ L_Convince_Sarah_First: mes "[Sarah]"; mes "\"Boy, am I hungry or what!\""; - mes ""; - mes "The girl suddenly looks at you suspiciously." next; - mes "[Sarah]"; - mes "\"My mommy says not to talk to strangers!\"; + mes "\"The girl suddenly looks at you suspiciously.\""; + next; + mes "\"My mommy says not to talk to strangers!\""; L_Start: diff --git a/npc/009-1_Hurnscald/_import.txt b/npc/009-1_Hurnscald/_import.txt index 07c60602..ff08fce7 100644 --- a/npc/009-1_Hurnscald/_import.txt +++ b/npc/009-1_Hurnscald/_import.txt @@ -1,7 +1,6 @@ map: 009-1.gat npc: npc/009-1_Hurnscald/_mobs.txt npc: npc/009-1_Hurnscald/_warps.txt -npc: npc/009-1_Hurnscald/diryn.txt npc: npc/009-1_Hurnscald/jack.txt npc: npc/009-1_Hurnscald/mapflags.txt npc: npc/009-1_Hurnscald/milly.txt diff --git a/npc/009-1_Hurnscald/diryn.txt b/npc/009-1_Hurnscald/diryn.txt deleted file mode 100644 index 70d646d4..00000000 --- a/npc/009-1_Hurnscald/diryn.txt +++ /dev/null @@ -1,66 +0,0 @@ -//This is a teleportation (warp) NPC. Its purpose is to offer expensive, fast trips throughout the world. - -009-1.gat,51,38,0 script Diryn the Traveler 103,{ - mes "[Diryn]"; - mes "\"Greetings. I am Diryn the Traveler, Assistant Councilor of Tulimshar and teleportation extraordinaire. Tulimshar is expanding our influence throughout the world, so I was sent here to aid all who are willing and able to take on the threats to our interests.\""; - next; - mes "\"The monsters of the world have grown out of control, harming people, trade and travel. Needless to say, Tulimshar is not happy with this problem. Our solution: Rally those powerful enough to combat the monster threat and send them to hot spots to challenge the monster threat head on. However, teleportation to these areas is not only extremely dangerous, but also highly expensive. Do you think you got what it takes?\""; - menu - "I sure do!", L_Diryn_Yes, - "No thank you", L_Diryn_No; - close; - -L_Diryn_Yes: - mes "[Diryn]"; - mes "\"Excellent. I can send you to many places, but again, the fees are large. Where shall I send you?\""; - menu - "Druid Tree (5000 GP)", L_Diryn_Druid_Tree, - "Graveyard (10000 GP)", L_Diryn_Graveyard, - "Magic House (5000 GP)", L_Diryn_Magic_House, - "Tulimshar Town Square (2000 GP)", L_Diryn_Tulimshar, - "Not Interested", L_Diryn_No; - close; - -L_Diryn_Druid_Tree: - if (zeny < 10000) goto L_NoMoney; - mes "[Diryn]"; - mes "\"Be fearless!\""; - set zeny, zeny-10000; - warp "005-1.gat",73,36; - close; - -L_Diryn_Graveyard: - if (zeny < 15000) goto L_NoMoney; - mes "[Diryn]"; - mes "\"Be fearless!\""; - set zeny, zeny-15000; - warp "027-1.gat",70,85; - close; - -L_Diryn_Magic_House: - if (zeny < 10000) goto L_NoMoney; - mes "[Diryn]"; - mes "\"Be fearless!\""; - set zeny, zeny-10000; - warp "013-1.gat",45,92; - close; - -L_Diryn_Tulimshar: - if (zeny < 5000) goto L_NoMoney; - mes "[Diryn]"; - mes "\"Be fearless!\""; - set zeny, zeny-5000; - warp "001-1.gat",44,70; - close; - -L_Diryn_No: - mes "[Diryn]"; - mes "\"Perhaps some day you will have the courage to help us. Enjoy your stay here in Hurnscald.\""; - close; - -L_NoMoney: - mes "[Diryn]"; - mes "\"Sorry, you don't have enough. Maybe next time.\""; - close; - -} -- cgit v1.2.3-70-g09d2 From ed0075fcb386f8afe03b0a935835778c1ec846a1 Mon Sep 17 00:00:00 2001 From: Wombat Date: Wed, 29 Sep 2010 12:47:24 -0400 Subject: Tulimshar fixes by argul NPC bug fixes in early level quests on 001-1 map. --- npc/001-1_Tulimshar/mikhail.txt | 113 ++++++++++++++++++++-------------------- npc/001-1_Tulimshar/sarah.txt | 3 +- 2 files changed, 59 insertions(+), 57 deletions(-) (limited to 'npc/001-1_Tulimshar') diff --git a/npc/001-1_Tulimshar/mikhail.txt b/npc/001-1_Tulimshar/mikhail.txt index 2ec8b50b..6514c07d 100644 --- a/npc/001-1_Tulimshar/mikhail.txt +++ b/npc/001-1_Tulimshar/mikhail.txt @@ -1,67 +1,68 @@ // -001-1.gat,50,46,0 script Mikhail 120,{ - if (TMW_Quest == 6) goto L_Done; - if (TMW_Quest == 5) goto L_Progress; - if (TMW_Quest == 4) goto L_Start; - if (TMW_Quest < 4) goto L_Convince_Mikhail_First; - - // If this happens, something is wrong with the above case handling. - mes "Mikhail looks confused."; - close; +001-1.gat,50,46,0 script Mikhail 120, { + if (TMW_Quest >= 6) goto L_Done; + if (TMW_Quest == 5) goto L_Progress; + if (TMW_Quest == 4) goto L_Start; + if (TMW_Quest < 4) goto L_Convince_Mikhail_First; + + // If this happens, something is wrong with the above case handling. + mes "Mikhail looks confused."; + close; L_Convince_Mikhail_First: - mes "[Mikhail]"; - mes "\"Hello...\""; - mes ""; - mes "It seems that the boy would like to say more, but does not dare to open up to you. Maybe you should help someone else first, so that he sees your intentions are good."; + mes "[Mikhail]"; + mes "\"Hello...\""; + mes ""; + mes "It seems that the boy would like to say more, but does not dare to open up to you. Maybe you should help someone else first, so that he sees your intentions are good."; + close; + +L_Start: + mes "[Mikhail]"; + mes "\"My grandma sent me to get five [Maggot Slime]s from the maggots in the desert, but they scare me so bad!\""; + next; + mes "\"You look like a nice person. Would you go get them for me?\""; + menu + "Of course, I'll go get them for you.", L_accept, + "I've got other things to do right now.", L_close; + close; -L_Start: - mes "[Mikhail]"; - mes "\"My grandma sent me to get five [Maggot Slime]s from the maggots in the desert, but they scare me so bad!\""; - next; - mes "\"You look like a nice person. Would you go get them for me?\""; - menu - "Of course, I'll go get them for you.", L_accept, - "I've got other things to do right now.", L_close; - close; - L_close: - close; - + close; + L_accept: - mes "[Mikhail]"; - mes "\"Thank you so much! I'll wait for you here.\""; - set TMW_Quest, 5; - close; - + mes "[Mikhail]"; + mes "\"Thank you so much! I'll wait for you here.\""; + set TMW_Quest, 5; + close; + L_Progress: - mes "[Mikhail]"; - mes "\"Did you bring me the five [Maggot Slime]s i need?\""; - next; - menu - "Yes, here they are, kiddo!", L_try, - "Not yet, but I'll be back soon.", L_close; - close; - + mes "[Mikhail]"; + mes "\"Did you bring me the five [Maggot Slime]s i need?\""; + next; + menu + "Yes, here they are, kiddo!", L_try, + "Not yet, but I'll be back soon.", L_close; + close; + L_try: - if countitem("MaggotSlime") >= 5 goto L_get; - mes "[Mikhail]"; - mes "\"It doesn't look like you have them all...\""; - close; - + if countitem("MaggotSlime") >= 5 goto L_get; + mes "[Mikhail]"; + mes "\"It doesn't look like you have them all...\""; + close; + L_get: - delitem "MaggotSlime", 5; - set TMW_Quest, 6; - mes "[Mikhail]"; - mes "\"Ooh! Thank you so much! I can get back to my grandma now!\""; - next; - getexp 100, 0; - mes "You get 100 xp."; - close; - + delitem "MaggotSlime", 5; + set TMW_Quest, 6; + mes "[Mikhail]"; + mes "\"Ooh! Thank you so much! I can get back to my grandma now!\""; + next; + getexp 100, 0; + mes "You get 100 xp."; + close; + L_Done: - mes "[Mikhail]"; - mes "\"Thanks again for helping me get those [Maggot Slime]s!\""; - close; - + mes "[Mikhail]"; + mes "\"Thanks again for helping me get those [Maggot Slime]s!\""; + close; +} diff --git a/npc/001-1_Tulimshar/sarah.txt b/npc/001-1_Tulimshar/sarah.txt index 86ed8db6..7a109fa6 100644 --- a/npc/001-1_Tulimshar/sarah.txt +++ b/npc/001-1_Tulimshar/sarah.txt @@ -17,7 +17,8 @@ L_Convince_Sarah_First: mes "\"The girl suddenly looks at you suspiciously.\""; next; mes "\"My mommy says not to talk to strangers!\""; - + close; + L_Start: set @TEMP, rand(2); -- cgit v1.2.3-70-g09d2 From 1d4add86fd5182a0501cda01da154921843ff9a2 Mon Sep 17 00:00:00 2001 From: Stefan Beller Date: Sat, 4 Dec 2010 17:30:14 +0100 Subject: ishi improved Ishi now checks your inventory before giving you items! (if there is space in the inventory) The option to get all items was added as well. Coal was added to the list as well. --- npc/001-1_Tulimshar/rewards_master.txt | 84 +++++++++++++++++++++++++++------- 1 file changed, 68 insertions(+), 16 deletions(-) (limited to 'npc/001-1_Tulimshar') diff --git a/npc/001-1_Tulimshar/rewards_master.txt b/npc/001-1_Tulimshar/rewards_master.txt index 571fe1c8..bd55b0ae 100644 --- a/npc/001-1_Tulimshar/rewards_master.txt +++ b/npc/001-1_Tulimshar/rewards_master.txt @@ -5,16 +5,16 @@ if (tvis == 0) set tvis, 1; if (Mobpt < tvis) goto L_NotEnough; - setarray @Items$, "AppleCake", "Arrow", "Beer", "Boots", "BugLeg", "CactusDrink", "CactusPotion", "Cake", "Candy", "CasinoCoins", "CherryCake", "ChickenLeg", "ChocolateBar", "ChocolateCake", "CottonBoots", "CottonCloth", "CottonShirt", "CottonShorts", "FancyHat", "GreenApple", "HardSpike", "IronOre", "Lifestone", "LightBlueDye", "MaggotSlime", "Milk", "Orange", "OrangeCake", "OrangeCupcake", "PinkPetal", "PileOfAsh", "PinkAntenna", "PoltergeistPowder", "RawLog", "RedApple", "RedDye", "ScorpionStinger", "SerfHat", "SmallHealingPotion", "SmallMushroom", "SnakeSkin", "SpectrePowder", "Steak", "TinyHealingPotion", "WhiteCake", "WhiteFur", "WispPowder", "YellowDye"; + setarray @Items$, "AppleCake", "Arrow", "Beer", "Boots", "BugLeg", "CactusDrink", "CactusPotion", "Cake", "Candy", "CasinoCoins", "CherryCake", "ChickenLeg", "ChocolateBar", "ChocolateCake", "CottonBoots", "CottonCloth", "CottonShirt", "CottonShorts", "FancyHat", "GreenApple", "HardSpike", "IronOre", "Lifestone", "LightBlueDye", "MaggotSlime", "Milk", "Orange", "OrangeCake", "OrangeCupcake", "PinkPetal", "PileOfAsh", "PinkAntenna", "PoltergeistPowder", "RawLog", "RedApple", "RedDye", "ScorpionStinger", "SerfHat", "SmallHealingPotion", "SmallMushroom", "SnakeSkin", "SpectrePowder", "Steak", "TinyHealingPotion", "WhiteCake", "WhiteFur", "WispPowder", "YellowDye", "Coal"; mes "[Ishi the Rewards Master]"; mes "\"Welcome! I see you have " + Mobpt + " Monster Points. Would you like to exchange some of those for items?\""; next; - + set @i, 0; setarray @Menu$, "", "", "", "", "", "", "", "", "", "", ""; callsub SUB_prep_menu; - + menu @Menu$[0], -, @Menu$[1], -, @@ -26,20 +26,24 @@ @Menu$[7], -, @Menu$[8], -, @Menu$[9], -, - @Menu$[10], -; + @Menu$[10], -, + @Menu$[11], -; + // this is for the last entry "No thanks": if (@menu > @i) close; - + // this is for the "Give all" entry: + if (@menu == @i) goto L_Give_all; + set @req, @menu; set @rec, 0; - + L_Item_Loop: if (@rec == @req || Mobpt < tvis) goto L_Item_Done; - + callsub SUB_give_item; set @rec, @rec + 1; goto L_Item_Loop; - + L_Item_Done: if (@rec < @req) mes "It looks like your Monster Points were over estimated."; close; @@ -54,6 +58,34 @@ L_NotEnough: mes "\"You don't have enough Monster Points for a reward. You'll need to kill some more monsters first.\""; close; + + +L_Give_all: + // we need to count how many loop iterations are done there, + // since the server complains about more than 250 (70 according to Jaxad0127) + // gotos without interrupting next statement. + set @gotocounter, 50; + +L_Give_all_loop: + set @gotocounter, @gotocounter - 1; + if (@gotocounter < 1) goto L_Give_all_next; + set @itemgiveerror, 0; + callsub SUB_give_item; + if (@itemgiveerror != 0) goto L_Give_all_done; + goto L_Give_all_loop; + +L_Give_all_next: + next; + mes "[Ishi the Rewards Master]"; + mes "\"You have brought lots of items now. You have still " + Mobpt + " monster points. Shall we continue?\""; + menu + "yes", L_Give_all, + "no", L_Give_all_done; + close; + +L_Give_all_done: + close; + ////////////////////////////////////////////////// // Subroutines ////////////////////////////////////////////////// @@ -61,29 +93,49 @@ L_NotEnough: SUB_prep_menu: set @pts, Mobpt; set @dif, tvis; - + L_Menu_Loop: - if (@pts < @dif || @i == 10) goto L_Menu_Done; - + if (@pts < @dif || @i == 10) goto L_Menu_Check; + set @Menu$[@i], @i + 1; - + set @i, @i + 1; set @pts, @pts - @dif; set @dif, @dif + 1; - + goto L_Menu_Loop; + +L_Menu_Check: + // if we are able to give 10, we can enable the option to give all we can have + if (@i != 10) goto L_Menu_Done; + set @Menu$[@i], "Please give me as many as I deserve!"; + set @i, @i + 1; + L_Menu_Done: set @Menu$[@i], "No thanks"; return; SUB_give_item: + set @itemgiveerror, 0; + getinventorylist; + if (@inventorylist_count == 100) goto SUB_give_noinv; + if (Mobpt < tvis) goto SUB_give_nomobpts; set Mobpt, Mobpt - tvis; set tvis, tvis + 1; set @item$, @Items$[rand(getarraysize(@Items$))]; - + getitem @item$, 1; - + mes "You received one " + getitemname(@item$) + "!"; - + return; + +SUB_give_noinv: + mes "Your inventory is full!"; + set @itemgiveerror, 1; + return; + +SUB_give_nomobpts: + mes "It looks like your Monster Points were over estimated."; + set @itemgiveerror, 1; 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/001-1_Tulimshar') 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 ef6ad87712c18faca677618f4bf61573a5b381ba Mon Sep 17 00:00:00 2001 From: Stefan Beller Date: Sun, 19 Dec 2010 00:00:54 +0100 Subject: adding the astral soul skill, Sagatha and the Bard can explain Sagatha and the bard can explain a little about the astral soul, but they cannot teach you. --- npc/001-1_Tulimshar/bard.txt | 2 +- npc/013-1_Woodland_hills/sagatha.txt | 16 ++++++++++++- npc/functions/magic.txt | 45 ++++++++++++++++++++++-------------- 3 files changed, 44 insertions(+), 19 deletions(-) (limited to 'npc/001-1_Tulimshar') diff --git a/npc/001-1_Tulimshar/bard.txt b/npc/001-1_Tulimshar/bard.txt index e7fdd883..9de957e1 100644 --- a/npc/001-1_Tulimshar/bard.txt +++ b/npc/001-1_Tulimshar/bard.txt @@ -52,7 +52,7 @@ L_News: L_Question: callfunc "MagicTalkOptionsSetup"; - set @ignore, 0; + set @ignore, @QQ_ASTRALSOUL; callfunc "MagicTalkMenu"; if (@c == 0) goto L_Main; diff --git a/npc/013-1_Woodland_hills/sagatha.txt b/npc/013-1_Woodland_hills/sagatha.txt index f5e2f606..3f8cb4f8 100644 --- a/npc/013-1_Woodland_hills/sagatha.txt +++ b/npc/013-1_Woodland_hills/sagatha.txt @@ -260,7 +260,7 @@ L_teach: mes "[Sagatha the Witch]"; mes "\"Not yet. You have to ask the mana seed to give you more power.\""; next; - goto L_main; + goto L_main; L_practice: mes "[1000 experience points]"; @@ -347,12 +347,26 @@ 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 "[Sagatha the Witch]"; mes "\"That doesn't concern you.\""; next; goto L_main; +L_Q_astralsoul: + mes "[Sagatha the Witch]"; + mes "\"Yes, there is a way to improve your magic.\""; + next; + mes "\"Did you ever hear about focusing?\""; + 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."\"; + next; + goto L_main; + L_Q_old_wizard: mes "[Sagatha the Witch]"; mes "\"A kind and wise wizard.\""; diff --git a/npc/functions/magic.txt b/npc/functions/magic.txt index 2bf8ef64..3f9b620b 100644 --- a/npc/functions/magic.txt +++ b/npc/functions/magic.txt @@ -23,12 +23,13 @@ function script MagicGainBasic { function script MagicTalkOptionsSetup { set @QQ_ELANORE, 1; set @QQ_MANASEED, 2; - set @QQ_MANAPOTION, 3; - set @QQ_WYARA, 4; - set @QQ_SAGATHA, 5; - set @QQ_AULDSBEL, 6; - set @QQ_IMP, 7; - set @QQ_OLDWIZ, 8; + set @QQ_MANAPOTION, 4; + set @QQ_WYARA, 8; + set @QQ_SAGATHA, 16; + set @QQ_AULDSBEL, 32; + set @QQ_IMP, 64; + set @QQ_OLDWIZ, 128; + set @QQ_ASTRALSOUL, 256; return; } @@ -40,11 +41,11 @@ function script MagicTalkOptionsSetup { function script MagicTalkMenu { - setarray @choice$, "", "", "", "", "", "", "", "", ""; + setarray @choice$, "", "", "", "", "", "", "", "", "", ""; set @choices_nr, 0; - setarray @choice_idx, 0, 0, 0, 0, 0, 0, 0, 0, 0; + setarray @choice_idx, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0; - if (@ignore == @QQ_ELANORE) + if (@ignore & @QQ_ELANORE) goto L_Q_post_elanore; set @choice$[@choices_nr], "...Elanore the Healer?"; set @choice_idx[@choices_nr], @QQ_ELANORE; @@ -60,7 +61,7 @@ L_Q_post_elanore: set @choices_nr, @choices_nr + 1; L_Q_post_manaseed: - if (@ignore == @QQ_MANAPOTION) + if (@ignore & @QQ_MANAPOTION) goto L_Q_post_manapotion; if (!(MAGIC_FLAGS & MFLAG_KNOWS_MANAPOTION)) goto L_Q_post_manapotion; @@ -69,7 +70,7 @@ L_Q_post_manaseed: set @choices_nr, @choices_nr + 1; L_Q_post_manapotion: - if (@ignore == @QQ_WYARA) + if (@ignore & @QQ_WYARA) goto L_Q_post_wyara; if (!(MAGIC_FLAGS & MFLAG_KNOWS_WYARA)) goto L_Q_post_wyara; @@ -78,7 +79,7 @@ L_Q_post_manapotion: set @choices_nr, @choices_nr + 1; L_Q_post_wyara: - if (@ignore == @QQ_SAGATHA) + if (@ignore & @QQ_SAGATHA) goto L_Q_post_sagatha; if (!(MAGIC_FLAGS & MFLAG_KNOWS_SAGATHA)) goto L_Q_post_sagatha; @@ -87,7 +88,7 @@ L_Q_post_wyara: set @choices_nr, @choices_nr + 1; L_Q_post_sagatha: - if (@ignore == @QQ_AULDSBEL) + if (@ignore & @QQ_AULDSBEL) goto L_Q_post_auldsbel; if (!(MAGIC_FLAGS & MFLAG_KNOWS_AULDSBEL)) goto L_Q_post_auldsbel; @@ -96,7 +97,7 @@ L_Q_post_sagatha: set @choices_nr, @choices_nr + 1; L_Q_post_auldsbel: - if (@ignore == @QQ_OLDWIZ) + if (@ignore & @QQ_OLDWIZ) goto L_Q_post_oldwiz; if (!(MAGIC_FLAGS & MFLAG_KNOWS_OLD_WIZARD)) goto L_Q_post_oldwiz; @@ -105,7 +106,7 @@ L_Q_post_auldsbel: set @choices_nr, @choices_nr + 1; L_Q_post_oldwiz: - if (@ignore == @QQ_IMP) + if (@ignore & @QQ_IMP) goto L_Q_post_imp; if (!(MAGIC_FLAGS & MFLAG_KNOWS_IMP)) goto L_Q_post_imp; @@ -114,6 +115,15 @@ L_Q_post_oldwiz: set @choices_nr, @choices_nr + 1; L_Q_post_imp: + if (@ignore & @QQ_ASTRALSOUL) + goto L_Q_post_astralsoul; + if (!getskillv(SKILL_MAGIC) || !getskillv(SKILL_FOCUS)) + goto L_Q_post_astralsoul; + set @choice$[@choices_nr], "...ways to improve my magic?"; + set @choice_idx[@choices_nr], @QQ_IMP; + set @choices_nr, @choices_nr + 1; +L_Q_post_astralsoul: + set @choice$[@choices_nr], "...never mind."; set @choice_idx[@choices_nr], 0; set @choices_nr, @choices_nr + 1; @@ -126,13 +136,14 @@ L_Q_post_imp: @choice$[5], -, @choice$[6], -, @choice$[7], -, - @choice$[8], -; + @choice$[8], -, + @choice$[9], -; set @menu, @menu - 1; if (@menu >= @choices_nr) set @menu, 0; - + set @c, @choice_idx[@menu]; return @c; } -- cgit v1.2.3-70-g09d2 From ecf569d623a98f5a4cdd5ac4dc5949ff31c35c8a Mon Sep 17 00:00:00 2001 From: Stefan Beller Date: Mon, 27 Dec 2010 14:53:39 +0100 Subject: Elanore knows about the astral soul --- npc/001-1_Tulimshar/elanore.txt | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'npc/001-1_Tulimshar') diff --git a/npc/001-1_Tulimshar/elanore.txt b/npc/001-1_Tulimshar/elanore.txt index 7dea2a32..c7210b91 100644 --- a/npc/001-1_Tulimshar/elanore.txt +++ b/npc/001-1_Tulimshar/elanore.txt @@ -125,7 +125,7 @@ Heal_4: mes "\"Much better, right?!\""; heal 10000,10000; close; - + L_NoHeal: if (MAGIC_FLAGS) goto L_Chat; @@ -135,7 +135,7 @@ L_NoHealMessage: mes "\"I'm sorry but unless you are young and in need, I can't help you, and your level is already higher than ten."; mes "With so many people still injured from the earthquake, I really have no time to help."; mes "You can get some rest in the inn near here.\""; - + close; L_Chat: @@ -454,7 +454,7 @@ L_3_where: mes "\"Kadiya and Omar live relatively close by. See this corner in the inner city wall east of here? Turn past it, then go north. It's the second house.\""; next; goto L_3_menu; - + L_Teach_Explain3_abort: mes "[Elanore the Healer]"; mes "\"I'm sorry, but you lack the magical power to advance.\""; @@ -571,6 +571,7 @@ L_Question: if (@c == @QQ_SAGATHA) goto L_Q_sagatha; if (@c == @QQ_AULDSBEL) goto L_Q_auldsbel; if (@c == @QQ_OLDWIZ) goto L_Q_oldwiz; + if (@c == @QQ_ASTRALSOUL)goto L_Q_astralsoul; mes "[Elanore the Healer]"; mes "Elanore shakes her head."; @@ -578,6 +579,12 @@ L_Question: next; goto L_Main; +L_Q_astralsoul: + mes "[Elanore the Healer]"; + mes "\"The astral soul skill is one of the most important skills for mages. I learned this focus long time ago. Without that skill your magic is quite useless? If the rumors are really true, you can find that skill near a Mana Seed.\""; + next; + goto L_Main; + L_Q_oldwiz: mes "[Elanore the Healer]"; mes "\"He is a kind old man. He stays mostly with his books and his apprentice, though we have chatted a few times.\""; -- cgit v1.2.3-70-g09d2 From 3de6ef52cf7ba3bcfe8c908e38a69f4463bfc190 Mon Sep 17 00:00:00 2001 From: Jessica Tölke Date: Mon, 27 Dec 2010 21:30:11 +0100 Subject: some minor changes in sagatha and elanore --- npc/001-1_Tulimshar/elanore.txt | 2 +- npc/013-1_Woodland_hills/sagatha.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'npc/001-1_Tulimshar') diff --git a/npc/001-1_Tulimshar/elanore.txt b/npc/001-1_Tulimshar/elanore.txt index c7210b91..22f3611e 100644 --- a/npc/001-1_Tulimshar/elanore.txt +++ b/npc/001-1_Tulimshar/elanore.txt @@ -581,7 +581,7 @@ L_Question: L_Q_astralsoul: mes "[Elanore the Healer]"; - mes "\"The astral soul skill is one of the most important skills for mages. I learned this focus long time ago. Without that skill your magic is quite useless? If the rumors are really true, you can find that skill near a Mana Seed.\""; + mes "\"The astral soul skill is one of the most important skills for mages. I learned this focus long time ago. Without that skill your magic is quite useless, isn't it? If the rumors are really true, there is an experienced mage in the Woodlands around Hurnscald.\""; next; goto L_Main; diff --git a/npc/013-1_Woodland_hills/sagatha.txt b/npc/013-1_Woodland_hills/sagatha.txt index 372cd20a..84df4fe6 100644 --- a/npc/013-1_Woodland_hills/sagatha.txt +++ b/npc/013-1_Woodland_hills/sagatha.txt @@ -364,7 +364,7 @@ L_Q_astralsoul: 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 "\"Maybe you should ask some other people experienced in magic.\""; next; goto L_main; -- cgit v1.2.3-70-g09d2 From c26b3a95f257260a2147537f79b3ffdc342d5138 Mon Sep 17 00:00:00 2001 From: Stefan Beller Date: Tue, 28 Dec 2010 21:30:13 +0100 Subject: luca can focus and unfocus now --- db/const.txt | 2 ++ npc/001-1_Tulimshar/luca.txt | 80 ++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 79 insertions(+), 3 deletions(-) (limited to 'npc/001-1_Tulimshar') diff --git a/db/const.txt b/db/const.txt index ab080511..981031ed 100644 --- a/db/const.txt +++ b/db/const.txt @@ -247,6 +247,8 @@ MFLAG_KNOWS_OLD_WIZARD 8192 // Knows Bjorn's old wizard MFLAG_MADE_CONC_POTION 16384 // Made a concentration potion with T15 and/or T16 MFLAG_ELANORE_OMAR 32768 // Told Omar about Elanore's involvement +MFLAG_KNOWS_UNFOCUS_RECIPE 65536 // Luca told me about how to unfocus + DOCK_tulimshar 1 DOCK_hurnscald 2 DOCK_candor 3 diff --git a/npc/001-1_Tulimshar/luca.txt b/npc/001-1_Tulimshar/luca.txt index 0a12545f..b37e2123 100644 --- a/npc/001-1_Tulimshar/luca.txt +++ b/npc/001-1_Tulimshar/luca.txt @@ -250,13 +250,87 @@ L_teachmore_explain: goto L_teachmore2; L_focus: -//FIXME + getpoolskilllist; + set @skilllist_id[@skilllist_count], 0; + set @skilllist_name$[@skilllist_count], "Nevermind"; + menu + @skilllist_name$[0], -, + @skilllist_name$[1], -, + @skilllist_name$[2], -, + @skilllist_name$[3], -, + @skilllist_name$[4], -, + @skilllist_name$[5], -, + @skilllist_name$[6], -, + @skilllist_name$[7], -; + + set @menu, @menu - 1; + if (@skilllist_id[@menu] == 0) + goto L_teachmore2; + + poolskill @skilllist_id[@menu]; + goto L_teachmore2; L_unfocus: -//FIXME + if (countitem("DementiaPotion") > 0) + goto L_unfocus_menu; + + if (MAGIG_FLAGS & MFLAG_KNOWS_UNFOCUS_RECIPE) + goto L_nopotion; + + set MAGIG_FLAGS, MAGIG_FLAGS | MFLAG_HEARD_OF_UNFOCUS_RECIPE; + mes "[Luca the Hunter]"; + mes "\"Unfocussing is one of the harder parts though, because it is sunk in. You see?\""; + next; + mes "\"So to remove that mental focus we will need a special potion.\""; + next; + mes "\"Maybe you should consult some very skilled alchemists.\""; + next; + mes "\"Ah yes, of course you will need a recipe. Although the alchemist usually knows it.\""; + next; + mes "\"The potion is called grimace of dementia. So the alchemist will know for sure.\""; + set MAGIC_FLAGS, MAGIC_FLAGS | MFLAG_KNOWS_UNFOCUS_RECIPE; + menu + "Ok, I will get a grimace of dementia potion", -, + "Alright, be right back!", -; + close; + +L_nopotion: + mes "[Luca the Hunter]"; + mes "\"Hey, You really need that dementia potion for unfocussing.\""; + next; + mes "\"Come back, when you found a suitable alchemist, who can mix such a potion.\""; + next; + goto L_teachmore2; + +L_unfocus_menu: + mes "[Luca the Hunter]"; + mes "\"Ahh, I see you have a dementia potion.\""; + next; + mes "\"What focus would you like to unfocus?\""; + + getactivatedpoolskilllist; + + set @skilllist_id[@skilllist_count], 0; + set @skilllist_name$[@skilllist_count], "Nevermind"; + menu + @skilllist_name$[0], -, + @skilllist_name$[1], -, + @skilllist_name$[2], -, + @skilllist_name$[3], -, + @skilllist_name$[4], -, + @skilllist_name$[5], -, + @skilllist_name$[6], -, + @skilllist_name$[7], -; + + set @menu, @menu - 1; + if (@skilllist_id[@menu] == 0) + goto L_teachmore2; + + unpoolskill @skilllist_id[@menu]; + close; L_teach_brawling: -//FIXME +//TODO close; } -- cgit v1.2.3-70-g09d2 From cd2325a40b2a3b38fa48c63f9e0935b3e361b542 Mon Sep 17 00:00:00 2001 From: Jessica Tölke Date: Sun, 2 Jan 2011 15:06:10 +0100 Subject: luca: teaches now the skill brawling --- npc/001-1_Tulimshar/luca.txt | 98 ++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 89 insertions(+), 9 deletions(-) (limited to 'npc/001-1_Tulimshar') diff --git a/npc/001-1_Tulimshar/luca.txt b/npc/001-1_Tulimshar/luca.txt index b37e2123..f019cd7c 100644 --- a/npc/001-1_Tulimshar/luca.txt +++ b/npc/001-1_Tulimshar/luca.txt @@ -2,6 +2,8 @@ 001-1.gat,108,55,0 script Luca 102,{ + set @EXP_BRAWLING, 2000; + if (BaseLevel >= 35) goto L_teach; @@ -237,20 +239,71 @@ L_teachmore: next; L_teachmore2: + setarray @choices, 0,0,0,0,0; + setarray @choice$, "", "", "", "", ""; + set @choice_nr, 0; + + set @C_focus, 1; + set @C_unfocus, 2; + set @C_teachbrawling, 3; + set @C_teachnothing, 4; + set @C_explainagain, 5; + set @C_nvm, 6; + + getactivatedpoolskilllist; + if (!((getskilllv(SKILL_POOL) - @skilllist_count) > 0)) goto L_teachmore2_nof; + getunactivatedpoolskilllist; + if (@skilllist_count == 0) goto L_teachmore2_nof; + set @choices[@choice_nr], @C_focus; + set @choice$[@choice_nr], "I would like to focus."; + set @choice_nr, @choice_nr + 1; +L_teachmore2_nof: + + getactivatedpoolskilllist; + if (@skilllist_count == 0) goto L_teachmore2_nounf; + set @choices[@choice_nr], @C_unfocus; + set @choice$[@choice_nr], "I would like to unfocus."; + set @choice_nr, @choice_nr + 1; +L_teachmore2_nounf: + + if (!(getskilllv(SKILL_BRAWLING))) + set @choices[@choice_nr], @C_teachbrawling; + if (getskilllv(SKILL_BRAWLING)) + set @choices[@choice_nr], @C_teachnothing; + set @choice$[@choice_nr], "Can you teach me a skill?"; + set @choice_nr, @choice_nr + 1; + + set @choices[@choice_nr], @C_explainagain; + set @choice$[@choice_nr], "Can you explain skills again?"; + set @choice_nr, @choice_nr + 1; + + set @choices[@choice_nr], @C_nvm; + set @choice$[@choice_nr], "I'm done for now, thanks!"; + set @choice_nr, @choice_nr + 1; + 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; + @choice$[0],-, + @choice$[1],-, + @choice$[2],-, + @choice$[3],-, + @choice$[4],-; + + set @menu, @menu - 1; + if (@choices[@menu] == 0) close; + if (@choices[@menu] == @C_focus) goto L_focus; + if (@choices[@menu] == @C_unfocus) goto L_unfocus; + if (@choices[@menu] == @C_teachbrawling) goto L_teach_brawling; + if (@choices[@menu] == @C_teachnothing) goto L_teach_nothing; + if (@choices[@menu] == @C_explainagain) goto L_teachmore_explain; + if (@choices[@menu] == @C_nvm) close; + close; L_teachmore_explain: callsub S_explain; goto L_teachmore2; L_focus: - getpoolskilllist; + getunactivatedpoolskilllist; set @skilllist_id[@skilllist_count], 0; set @skilllist_name$[@skilllist_count], "Nevermind"; menu @@ -277,7 +330,6 @@ L_unfocus: if (MAGIG_FLAGS & MFLAG_KNOWS_UNFOCUS_RECIPE) goto L_nopotion; - set MAGIG_FLAGS, MAGIG_FLAGS | MFLAG_HEARD_OF_UNFOCUS_RECIPE; mes "[Luca the Hunter]"; mes "\"Unfocussing is one of the harder parts though, because it is sunk in. You see?\""; next; @@ -308,6 +360,9 @@ L_unfocus_menu: next; mes "\"What focus would you like to unfocus?\""; + if (countitem("DementiaPotion") == 0) goto L_nopotion; + delitem "DementiaPotion", 1; + getactivatedpoolskilllist; set @skilllist_id[@skilllist_count], 0; @@ -330,7 +385,32 @@ L_unfocus_menu: close; L_teach_brawling: -//TODO + mes "[Luca the Hunter]"; + mes "\"Well, yes, I can teach you brawling. It's a nice thing, if you have nothing left but your hands to defend yourself.\""; + next; + mes "He is laughing."; + mes "\"And is handy, if some sapling starts getting naughty.\""; + next; + mes "He rises his hand in front of his face and clenches his fists."; + mes "\"Ok, let's go! Hold your hands like this.\""; + next; + mes "......."; + next; + mes "Some bruises later."; + mes "\"Great! I think, you got it.\""; + next; + set @SUP_id, SKILL_BRAWLING; + set @SUP_lvl, 1; + set @SUP_name$, "Brawling"; + set @SUP_xp, @EXP_BRAWLING; + callfunc "SkillUp"; close; +L_teach_nothing: + mes "[Luca the Hunter]"; + mes "\"I was able to teach you brawling. For other professions you should visit someone else.\""; + next; + mes "\"You see, I am an adventurer. Everybody has his tricks. But you really should visit someone, who is a teacher, not an adventurer now.\""; + next; + goto L_teachmore2; } -- cgit v1.2.3-70-g09d2