diff options
Diffstat (limited to 'world/map/npc/033-1')
-rw-r--r-- | world/map/npc/033-1/_import.txt | 2 | ||||
-rw-r--r-- | world/map/npc/033-1/_mobs.txt | 2 | ||||
-rw-r--r-- | world/map/npc/033-1/_warps.txt | 3 | ||||
-rw-r--r-- | world/map/npc/033-1/birrod.txt | 91 | ||||
-rw-r--r-- | world/map/npc/033-1/debug.txt | 10 | ||||
-rw-r--r-- | world/map/npc/033-1/kimarr.txt | 17 | ||||
-rw-r--r-- | world/map/npc/033-1/yerrnk.txt | 9 |
7 files changed, 69 insertions, 65 deletions
diff --git a/world/map/npc/033-1/_import.txt b/world/map/npc/033-1/_import.txt index eb257c24..bb31437a 100644 --- a/world/map/npc/033-1/_import.txt +++ b/world/map/npc/033-1/_import.txt @@ -1,4 +1,4 @@ -// Map 033-1: Snow field +// Map 033-1: Snow Field // This file is generated automatically. All manually changes will be removed when running the Converter. map: 033-1.gat npc: npc/033-1/_mobs.txt diff --git a/world/map/npc/033-1/_mobs.txt b/world/map/npc/033-1/_mobs.txt index daab38d9..96a51f99 100644 --- a/world/map/npc/033-1/_mobs.txt +++ b/world/map/npc/033-1/_mobs.txt @@ -1,5 +1,5 @@ // This file is generated automatically. All manually changes will be removed when running the Converter. -// Snow field mobs +// Snow Field mobs diff --git a/world/map/npc/033-1/_warps.txt b/world/map/npc/033-1/_warps.txt index 37bdd507..538a5dcb 100644 --- a/world/map/npc/033-1/_warps.txt +++ b/world/map/npc/033-1/_warps.txt @@ -1,3 +1,4 @@ // This file is generated automatically. All manually changes will be removed when running the Converter. -// Snow field warps +// Snow Field warps +033-1.gat,22,20|warp|ToSnowField|-1,0,034-1.gat,159,19 diff --git a/world/map/npc/033-1/birrod.txt b/world/map/npc/033-1/birrod.txt index f560b0d0..916d4dc4 100644 --- a/world/map/npc/033-1/birrod.txt +++ b/world/map/npc/033-1/birrod.txt @@ -1,26 +1,21 @@ 033-1.gat,72,27,0|script|Birrod|217,{ -//TODO: minimum level for quests? +// TODO: check name of wolf monster after it has been added to the mob_db set @Q_Barbarians_MASK, NIBBLE_0_MASK; set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); -//TODO: think about amount - set @candy, 25; - set @chocolate, 20; - set @candycane, 15; - set @sweet_exp, 10000; - -// different idea: wolf ambushs on 034-1 -//TODO set @wolfdrop, ; -//TODO set @wolf_exp, ; +// TODO: determine values: + set @wolvern_level, 40; // minimum level to do the wolvern hunting + set @wolvern_amount, 10; // number of script spawned wolverns to kill + set @wolvern_exp, 5000; set @minigame_exp, 5000; if (@state >= 6) goto L_Impressed; if (@state == 5) goto L_Questions; - if (@state == 4) goto L_Warrior; - if (@state == 3) goto L_Sweets; + if (@state == 4) goto L_Wolverns; + if (@state == 3) goto L_Hunting; if (@state == 2) goto L_Kimarr; if (@state == 1) goto L_Fluffy; @@ -45,62 +40,46 @@ L_Kimarr: mes "\"But I think, Kimarr has something for you.\""; close; -// TODO: decide whether to leave out this part or not -L_Sweets: - mes "Birrod speaks with a lowered voice."; +L_Hunting: + if (baselevel < @wolvern_level) + goto L_Weak; mes "[Birrod]"; - mes "\"" + strcharinfo(0) + ", can I ask you for a favor?\""; + mes "\"Hello, " + strcharinfo(0) + "! Would you like to prove your hunting skills again?\""; next; - mes "\"I noticed those slime things with the funny hats. And they have so tasty stuff with them!\""; + mes "\"I noticed some groups of wolverns in the forest west of here which are unusually aggressive."; + mes "This makes dangerous to all the small people from the town nearby to go there.\""; next; - mes "He blushes."; - mes "[Birrod]"; - mes "\"A warrior shouldn't get excited about sweets, so ahm, it would be great if you don't tell Yerrnk and Kimarr about it.\""; + mes "\"To prove your skills, go to the forest and hunt down " + @wolvern_amount + " of the very aggressive wolverns.\""; next; - mes "\"Do you have " + @candy + " Candys, " + @chocolate + " Chocolate Bars and " + @candycane + " Candy Canes for me?\""; - menu - "Sure.",-, - "I'll see what I can do.",L_Close, - "I'm a great warrior, I don't have sweets with me!",L_Close; - - if ((countitem("Candy") < @candy) || (countitem("ChocolateBar") < @chocolate) || (countitem("CandyCane") < @candycane)) goto L_No_Items; - delitem "Candy", @candy; - delitem "ChocolateBar", @chocolate; - delitem "CandyCane", @candycane; - getexp @sweet_exp, 0; + mes "\"There are also some wolverns that behave normally attacking you when you come to close to them."; + mes "Those are not the ones I mean, but those that seek the battle themselves.\""; set @state, 4; callsub S_Update_Mask; - mes "[Birrod]"; - mes "\"Thank you!\""; - mes "He puts the sweets in his pockets covertly."; - mes "Then takes one candy and eats it with such a delighted look on his face that's really hard not to burst out in laughter."; close; -L_Warrior: -// TODO: player can show his fighting abilities by bringing some drop of wolve monsters -// different idea: wolf ambushs on 034-1 -// wolve monsters are more dangerous and harder to hunt than fluffies -> harder task -// reason to hunt them: there unusual aggressive and are a danger for the people living in that area -// also use of the items the drop (e.g. fur -> clothes) +L_Wolverns: + if (wolvern_count >= @wolvern_amount) + goto L_Wolverns_Done; mes "[Birrod]"; - mes "\"Hello, " + strcharinfo(0) + "! Would you like to prove your hunting skills again?\""; + mes "\"Greetings, my friend."; + mes "The aggressive wolverns are still roaming the forest west of here.\""; next; -// TODO: check name of monster - mes "\"I noticed many wolverns in this area. When there are so many of them, they reduce the fluffy population too much."; - mes "Also they are dangerous to all the small people who live in the town nearby.\""; - next; - mes "\"Bring me (amount) (TODO:drop of wolvern)."; - mes "alternative: hunt (amount) of the aggressive wolverns in forest in the west."; - mes "TODO: add story about what useful can be done with that drop."; - menu - "Debug succes",-, - "Debug no succes",L_Close; + mes "\"This is your chance to prove your worth.\""; + close; + +L_Wolverns_Done: set @state, 5; callsub S_Update_Mask; - if (getskilllv(SKILL_POOL) == 0) goto L_Not_Ready; + set wolvern_count, 0; mes "[Birrod]"; + mes "\"" + strcharinfo(0) + "!"; + mes "Good work. Now this area is much safer.\""; + next; + getexp @wolvern_exp, 0; + if (getskilllv(SKILL_POOL) == 0) goto L_Not_Ready; mes "\"Your skills are impressing. You are worthy to be called a warrior of the Mangarr, if you accept.\""; next; + goto L_Questions; L_Questions: if (getskilllv(SKILL_POOL) == 0) goto L_Not_Ready; @@ -251,7 +230,13 @@ L_No_Member: mes "Come back when you feel better prepared.\""; close; +L_Weak: + mes "[Birrod]"; + mes "\"Hello, " + strcharinfo(0) + "! I might have a task for you when you've grown up a bit.\""; + close; + L_Close: + // TODO: set all variables to 0 close; S_Update_Mask: diff --git a/world/map/npc/033-1/debug.txt b/world/map/npc/033-1/debug.txt index 7db90195..5fab2310 100644 --- a/world/map/npc/033-1/debug.txt +++ b/world/map/npc/033-1/debug.txt @@ -5,17 +5,27 @@ menu "Reset all records", -, "Reset quest",L_Reset, + "Set Fluffy Hunting done", L_Fluffy, "Close", L_Close; cleararray $Record_Fluffy_Kills, 0, MAX_HIGH_SCORES; cleararray $Record_Fluffy_Name$, "", MAX_HIGH_SCORES; cleararray $Record_Fluffy_Date$, "", MAX_HIGH_SCORES; +L_Fluffy: + set @Q_Barbarians_MASK, NIBBLE_0_MASK; + set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; + set @state, 3; + callsub S_Update_Mask; + set wolvern_count, 0; + close; + L_Reset: set @Q_Barbarians_MASK, NIBBLE_0_MASK; set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; set @state, 0; callsub S_Update_Mask; + set wolvern_count, 0; close; S_Update_Mask: diff --git a/world/map/npc/033-1/kimarr.txt b/world/map/npc/033-1/kimarr.txt index b2a7d2e6..7d565001 100644 --- a/world/map/npc/033-1/kimarr.txt +++ b/world/map/npc/033-1/kimarr.txt @@ -64,8 +64,6 @@ "Sure! What shall I do?", -, "No, I don't need to prove anything.", L_Close; -L_Explain: - mes "[Kimarr]"; mes "\"Every young member of our tribe proves his or her worth by hunting monsters.\""; next; mes "\"The first monsters to hunt are fluffies. Fluffies give a good meal for a young person and the fur can be used to make clothes and blankets.\""; @@ -114,7 +112,7 @@ L_Reward1: // as far as I can tell, this fails because it won't resume from the "next" // when the script is executed via the "OnFluffyDeath" callback // (I haven't tried via the 301st call of OnTimer1000) - message strcharinfo(0), "Kimarr: talk to me for your reward"; + message strcharinfo(0), "Kimarr: Talk to me for your reward."; goto L_Close; // this label is reached on completion of the quest, or, if you inventory was @@ -128,7 +126,7 @@ L_Reward: if (@inventorylist_count == 100) goto L_Full_Inv; set @inventorylist_count, 0; - mes "[Kimarr]"; + mes "\"Take this as a symbol of your strength. You're a member of our tribe now.\""; getitem "YetiSkinShirt", 1; set @state, 3; @@ -137,7 +135,6 @@ L_Reward: goto L_Close; L_Full_Inv: - mes "[Kimarr]"; mes "\"You can't carry the reward I want to give you.\""; goto L_Close; @@ -160,7 +157,10 @@ L_Game: set $@Fluffy_FighterID, getcharid(3); set $@Fluffy_Time, 180; -//TODO: set minimum number of killed fluffies (maybe based on level?) +//TODO: set minimum number of killed fluffies, here are some ideas +// set $@Fluffy_Min, (baselevel*7)/10; +// set $@Fluffy_Min, (baselevel*2)/3; +// set $@Fluffy_Min, (baselevel*3)/4; set $@Fluffy_Min, 2; warp "033-1.gat", 79, 34; initnpctimer; @@ -212,7 +212,6 @@ L_ContinueTimer: end; L_GotOut: - // TODO: this is the only use of $@Fluffy_Fighter$, can we remove it? npctalk "What a strange thing... " + $@Fluffy_Fighter$ + " just disappeared!"; callsub S_Clean; end; @@ -261,7 +260,7 @@ L_BeginHunting: areamonster "033-1.gat", 79, 29, 88, 42, "", 1089, $@Fluffy_Spawn, "Kimarr::OnFluffyDeath"; - set $@Fluffy_Extra, 5 * @Fluffy_XmasCake + 3 * @Fluffy_Cake + 10 * BaseLevel; + set $@Fluffy_Extra, 5 * @Fluffy_XmasCake + 3 * @Fluffy_Cake + 12 * ($@Fluffy_Alive + $@Fluffy_Spawn) + 7 * BaseLevel; if ((BaseLevel > 40) && (rand($@Fluffy_Extra) > 500)) // Ice Goblin areamonster "033-1.gat", 79, 29, 88, 42, "", 1058, 1, "Kimarr::OnIceGoblinDeath"; if ((BaseLevel > 60) && (rand($@Fluffy_Extra) > 550)) // Santa Slime @@ -313,7 +312,7 @@ OnFluffyDeath: // message strcharinfo(0), "Fluffies killed: " + $@Fluffy_Kills; if ($@Fluffy_Alive != 0) end; - if (attachrid($@Fluffy_FighterID)) + if (attachrid($@Fluffy_FighterID) == 1) goto L_Killedall; goto L_GotOut; end; diff --git a/world/map/npc/033-1/yerrnk.txt b/world/map/npc/033-1/yerrnk.txt index a474a759..4e13a169 100644 --- a/world/map/npc/033-1/yerrnk.txt +++ b/world/map/npc/033-1/yerrnk.txt @@ -50,6 +50,8 @@ L_Sorrow: mes "\"I noticed that you're getting along with Kimarr and Birrod very well. That's good.\""; mes "He smiles, but then an expression of worry gets back to his face."; next; + +L_Mission: mes "[Yerrnk]"; mes "\"Our tribe is going through dire straits. We used to live in harmony with the mountain ever since."; mes "Life is hard in the snowy mountains, but this life suits our nature.\""; @@ -71,14 +73,21 @@ L_Birrod: mes "[Yerrnk]"; mes "\"" + strcharinfo(0) + ", I have to admit that I'm surprised by your skills."; mes "You've proved your braveness and strength.\""; + next; if (getskilllv(SKILL_POOL) == 0) goto L_Not_Ready; mes "\"Please talk to Birrod to receive the initiation ritual to become a warrior of the Mangarr.\""; + menu + "Alright.",-, + "Can you tell me again what are you here for?",L_Mission; close; L_Not_Ready: mes "[Yerrnk]"; mes "\"But you're not yet ready to become a fully accepted warrior of our tribe."; mes "You should travel the world to gain the ability to focus on your inner strength.\""; + menu + "Alright.",-, + "What are you doing down here?",L_Mission; close; L_Warrior: |