From af937c6f932cdea5b56f0ee7c4976c7706e986a8 Mon Sep 17 00:00:00 2001 From: Stefan Dombrowski Date: Mon, 16 Jan 2012 22:12:16 +0100 Subject: Some fixes to the Barbarian quests --- world/map/npc/033-1/birrod.txt | 6 +- world/map/npc/033-1/kimarr.txt | 36 +++---- world/map/npc/033-1/yerrnk.txt | 6 +- world/map/npc/034-1/ambushs.txt | 210 ++++++++++++++++++++++++-------------- world/map/npc/034-1/yetiSpawn.txt | 5 +- 5 files changed, 162 insertions(+), 101 deletions(-) (limited to 'world/map') diff --git a/world/map/npc/033-1/birrod.txt b/world/map/npc/033-1/birrod.txt index df541727..5bcd4f96 100644 --- a/world/map/npc/033-1/birrod.txt +++ b/world/map/npc/033-1/birrod.txt @@ -46,11 +46,11 @@ L_Hunting: mes "\"Hello, " + strcharinfo(0) + "! Would you like to prove your hunting skills again?\""; next; 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.\""; + mes "This makes it dangerous for all the small people from the town nearby to go there.\""; next; mes "\"To prove your skills, go to the forest and hunt down " + @wolvern_amount + " of the very aggressive wolverns.\""; next; - mes "\"There are also some wolverns that behave normally attacking you when you come to close to them."; + mes "\"There are also some wolverns that behave normally and attack you only when you come too 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; @@ -120,7 +120,7 @@ L_Success11: "Try to hold them back until everyone is safe, then retreat.",L_Success21; L_Fail21: mes "[Birrod]"; - mes "\"You will never get a accepted member of our tribe with that attitude.\""; + mes "\"You will never become an accepted member of our tribe with that attitude.\""; next; goto L_No_Member; L_Fail22: diff --git a/world/map/npc/033-1/kimarr.txt b/world/map/npc/033-1/kimarr.txt index a4e3f6f2..0070089c 100644 --- a/world/map/npc/033-1/kimarr.txt +++ b/world/map/npc/033-1/kimarr.txt @@ -77,7 +77,7 @@ L_Explain_Game: next; mes "\"I also saw one of them getting excited about one of that sweet things you call 'cake'.\""; next; - mes "\"You should be careful, other monsters living here might like the food as well\""; + mes "\"You should be careful, other monsters living here might like the food as well.\""; next; mes "\"Go to the cave entrance and throw food on the floor to make them come out.\""; next; @@ -97,8 +97,9 @@ L_Ask: goto L_Close; L_AlreadyGotReward: + npctalk strcharinfo(0) + " killed " + $@Fluffy_Kills + " Fluffies and has once again proven to be a good hunter."; + message strcharinfo(0), "Kimarr: Once again you prove you are worth as a hunter! You killed " + $@Fluffy_Kills + " Fluffies."; callsub S_Clean; - mes "Once again you prove you are worth as a hunter, " + strcharinfo(0) + "."; goto L_Close; L_Reward1: @@ -109,14 +110,16 @@ L_Reward1: if (@state >= 2) goto L_AlreadyGotReward; - set @state, 2; - callsub S_Update_Mask; - callsub S_Clean; + npctalk "Hooray! " + strcharinfo(0) + " killed " + $@Fluffy_Kills + " Fluffies and is now a worthy hunter."; // 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: Hooray! You hunted " + $@Fluffy_Kills + " Fluffies. Talk to me for your reward."; + + set @state, 2; + callsub S_Update_Mask; + callsub S_Clean; goto L_Close; // this label is reached on completion of the quest, or, if you inventory was @@ -234,9 +237,6 @@ L_TimeOver: goto L_MaybeRecordScore; L_CheckDrops: - if ($@Fluffy_Alive >= 100) - goto L_TooManyFluffies; - set @Fluffy_Toomany, 0; set @Fluffy_RedApple, getareadropitem("033-1.gat", 79, 29, 88, 42, "RedApple", 1); set @Fluffy_XmasCake, getareadropitem("033-1.gat", 79, 29, 88, 42, "XmasCake", 1); set @Fluffy_Cake, getareadropitem("033-1.gat", 79, 29, 88, 42, "Cake", 1); @@ -245,19 +245,17 @@ L_CheckDrops: goto L_BeginHunting; goto L_ContinueTimer; -L_TooManyFluffies: - if (@Fluffy_Toomany) - goto L_ContinueTimer; - message strcharinfo(0), "Wow, calm down, there are already too many fluffies around here."; - set @Fluffy_Toomany, 1; - goto L_ContinueTimer; - L_BeginHunting: set $@Fluffy_Spawn, @Fluffy_RedApple + 5 * @Fluffy_XmasCake + 3 * @Fluffy_Cake + @Fluffy_GreenApple; // limit the number of monsters that can be spawned, to prevent people creating lag with massive amount of monsters - if ($@Fluffy_Spawn > 100) - set $@Fluffy_Spawn, 100; + if (($@Fluffy_Spawn + $@Fluffy_Alive) <= 100) + goto L_SpawnFluffies; + message strcharinfo(0), "Wow, calm down, there are already too many fluffies around here."; + set $@Fluffy_Spawn, 100 - $@Fluffy_Alive; + if ($@Fluffy_Spawn <= 0) + goto L_ContinueTimer; + L_SpawnFluffies: areamonster "033-1.gat", 79, 29, 88, 42, "", 1089, $@Fluffy_Spawn, "Kimarr::OnFluffyDeath"; set $@Fluffy_Extra, 5 * @Fluffy_XmasCake + 3 * @Fluffy_Cake + 12 * ($@Fluffy_Alive + $@Fluffy_Spawn) + 7 * BaseLevel; @@ -399,6 +397,8 @@ L_FinallyInsertMe: goto L_Reward1; L_NotGoodEnough: + npctalk "What a disapointment, " + strcharinfo(0) + " hunted only " + $@Fluffy_Kills + " Fluffies."; + message strcharinfo(0), "Kimarr: What a disapointment, you hunted only " + $@Fluffy_Kills + " Fluffies."; callsub S_Clean; end; diff --git a/world/map/npc/033-1/yerrnk.txt b/world/map/npc/033-1/yerrnk.txt index e9c79593..749350af 100644 --- a/world/map/npc/033-1/yerrnk.txt +++ b/world/map/npc/033-1/yerrnk.txt @@ -44,7 +44,7 @@ L_Duty: next; mes "\"You passed the inition ritus for hunters of our tribe. That means now you are a hunter of our tribe, with all the rights and duties that come along with that.\""; next; - mes "\"So you'll have to obey our laws and traditiones, protect and help any member of our tribe that is in need and never show weakness nor fear in battle.\""; + mes "\"So you'll have to obey our laws and traditions, protect and help any member of our tribe that is in need and never show weakness nor fear in battle.\""; next; mes "\"Keep this in mind. If you fail you'll have to recieve the elders judgement.\""; goto L_Close; @@ -108,9 +108,9 @@ L_Warrior: L_Skill: mes "[Yerrnk]"; mes "\"As a warrior of our tribe it should be the most important thing to you to defend weaker members of the tribe."; - mes "To achieve this goal our warriors are training the skill to stand the pain of being hit and even use it to get into a state of rage."; + mes "To achieve this goal our warriors are training the skill to stand the pain of being hit and even use it to get into a state of rage.\""; next; - mes "It only works in a melee fight, when you hear your opponent gasping, smell his sweat, feel the heat of his body, -\""; + mes "\"It only works in a melee fight, when you hear your opponent gasping, smell his sweat, and feel the heat of his body.\""; next; mes "Yerrnk gets excited, then he pauses a moment calming down."; mes "\"Basically its a neglect of your own defense but therefor being able to hit the enemy with outstanding might.\""; diff --git a/world/map/npc/034-1/ambushs.txt b/world/map/npc/034-1/ambushs.txt index 8bcd9ecc..7bb9462f 100644 --- a/world/map/npc/034-1/ambushs.txt +++ b/world/map/npc/034-1/ambushs.txt @@ -29,7 +29,6 @@ OnAmbush: set $@Ambush0_Spawn, 4 + rand(3); message strcharinfo(0), "An ambush!"; areamonster "034-1.gat", 113, 55, 122, 63, "", 1090, $@Ambush0_Spawn, "#Ambush0::OnWolvernDeath"; - set $@Ambush0VictimID, 0; end; L_Abort: @@ -43,15 +42,20 @@ OnWolvernDeath: set @Q_Barbarians_MASK, NIBBLE_0_MASK; set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); - if (@state == 4) - set wolvern_count, wolvern_count + 1; set $@Ambush0_Spawn, $@Ambush0_Spawn - 1; - if ($@Ambush0_Spawn == 0) - set $@Ambush0_Active, 0; + if ($@Ambush0VictimID != getcharid(3)) + end; + if (@state != 4) + end; + + set wolvern_count, wolvern_count + 1; if (wolvern_count >= @wolvern_amount) message strcharinfo(0), "You've hunted down a lot of Wolverns. Maybe you should talk to Birrod?"; + + if ($@Ambush0_Spawn == 0) + goto L_Abort; end; } @@ -83,7 +87,6 @@ OnAmbush: set $@Ambush1_Spawn, 4 + rand(3); message strcharinfo(0), "An ambush!"; areamonster "034-1.gat", 91, 89, 98, 94, "", 1090, $@Ambush1_Spawn, "#Ambush1::OnWolvernDeath"; - set $@Ambush1VictimID, 0; end; L_Abort: @@ -97,15 +100,20 @@ OnWolvernDeath: set @Q_Barbarians_MASK, NIBBLE_0_MASK; set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); - if (@state == 4) - set wolvern_count, wolvern_count + 1; set $@Ambush1_Spawn, $@Ambush1_Spawn - 1; - if ($@Ambush1_Spawn == 0) - set $@Ambush1_Active, 0; + if ($@Ambush1VictimID != getcharid(3)) + end; + if (@state != 4) + end; + + set wolvern_count, wolvern_count + 1; if (wolvern_count >= @wolvern_amount) message strcharinfo(0), "You've hunted down a lot of Wolverns. Maybe you should talk to Birrod?"; + + if ($@Ambush1_Spawn == 0) + goto L_Abort; end; } @@ -137,7 +145,6 @@ OnAmbush: set $@Ambush2_Spawn, 4 + rand(3); message strcharinfo(0), "An ambush!"; areamonster "034-1.gat", 118, 32, 126, 39, "", 1090, $@Ambush2_Spawn, "#Ambush2::OnWolvernDeath"; - set $@Ambush2VictimID, 0; end; L_Abort: @@ -151,15 +158,20 @@ OnWolvernDeath: set @Q_Barbarians_MASK, NIBBLE_0_MASK; set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); - if (@state == 4) - set wolvern_count, wolvern_count + 1; set $@Ambush2_Spawn, $@Ambush2_Spawn - 1; - if ($@Ambush2_Spawn == 0) - set $@Ambush2_Active, 0; + if ($@Ambush2VictimID != getcharid(3)) + end; + if (@state != 4) + end; + + set wolvern_count, wolvern_count + 1; if (wolvern_count >= @wolvern_amount) message strcharinfo(0), "You've hunted down a lot of Wolverns. Maybe you should talk to Birrod?"; + + if ($@Ambush2_Spawn == 0) + goto L_Abort; end; } @@ -191,7 +203,6 @@ OnAmbush: set $@Ambush3_Spawn, 4 + rand(3); message strcharinfo(0), "An ambush!"; areamonster "034-1.gat", 79, 41, 86, 47, "", 1090, $@Ambush3_Spawn, "#Ambush3::OnWolvernDeath"; - set $@Ambush3VictimID, 0; end; L_Abort: @@ -205,15 +216,20 @@ OnWolvernDeath: set @Q_Barbarians_MASK, NIBBLE_0_MASK; set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); - if (@state == 4) - set wolvern_count, wolvern_count + 1; set $@Ambush3_Spawn, $@Ambush3_Spawn - 1; - if ($@Ambush3_Spawn == 0) - set $@Ambush3_Active, 0; + if ($@Ambush3VictimID != getcharid(3)) + end; + if (@state != 4) + end; + + set wolvern_count, wolvern_count + 1; if (wolvern_count >= @wolvern_amount) message strcharinfo(0), "You've hunted down a lot of Wolverns. Maybe you should talk to Birrod?"; + + if ($@Ambush3_Spawn == 0) + goto L_Abort; end; } @@ -245,7 +261,6 @@ OnAmbush: set $@Ambush4_Spawn, 4 + rand(3); message strcharinfo(0), "An ambush!"; areamonster "034-1.gat", 69, 25, 77, 31, "", 1090, $@Ambush4_Spawn, "#Ambush4::OnWolvernDeath"; - set $@Ambush4VictimID, 0; end; L_Abort: @@ -259,15 +274,20 @@ OnWolvernDeath: set @Q_Barbarians_MASK, NIBBLE_0_MASK; set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); - if (@state == 4) - set wolvern_count, wolvern_count + 1; set $@Ambush4_Spawn, $@Ambush4_Spawn - 1; - if ($@Ambush4_Spawn == 0) - set $@Ambush4_Active, 0; + if ($@Ambush4VictimID != getcharid(3)) + end; + if (@state != 4) + end; + + set wolvern_count, wolvern_count + 1; if (wolvern_count >= @wolvern_amount) message strcharinfo(0), "You've hunted down a lot of Wolverns. Maybe you should talk to Birrod?"; + + if ($@Ambush4_Spawn == 0) + goto L_Abort; end; } @@ -299,7 +319,6 @@ OnAmbush: set $@Ambush5_Spawn, 4 + rand(3); message strcharinfo(0), "An ambush!"; areamonster "034-1.gat", 22, 40, 30, 48, "", 1090, $@Ambush5_Spawn, "#Ambush5::OnWolvernDeath"; - set $@Ambush5VictimID, 0; end; L_Abort: @@ -313,15 +332,20 @@ OnWolvernDeath: set @Q_Barbarians_MASK, NIBBLE_0_MASK; set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); - if (@state == 4) - set wolvern_count, wolvern_count + 1; set $@Ambush5_Spawn, $@Ambush5_Spawn - 1; - if ($@Ambush5_Spawn == 0) - set $@Ambush5_Active, 0; + if ($@Ambush5VictimID != getcharid(3)) + end; + if (@state != 4) + end; + + set wolvern_count, wolvern_count + 1; if (wolvern_count >= @wolvern_amount) message strcharinfo(0), "You've hunted down a lot of Wolverns. Maybe you should talk to Birrod?"; + + if ($@Ambush5_Spawn == 0) + goto L_Abort; end; } @@ -353,7 +377,6 @@ OnAmbush: set $@Ambush6_Spawn, 4 + rand(3); message strcharinfo(0), "An ambush!"; areamonster "034-1.gat", 46, 45, 54, 50, "", 1090, $@Ambush6_Spawn, "#Ambush6::OnWolvernDeath"; - set $@Ambush6VictimID, 0; end; L_Abort: @@ -367,15 +390,20 @@ OnWolvernDeath: set @Q_Barbarians_MASK, NIBBLE_0_MASK; set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); - if (@state == 4) - set wolvern_count, wolvern_count + 1; set $@Ambush6_Spawn, $@Ambush6_Spawn - 1; - if ($@Ambush6_Spawn == 0) - set $@Ambush6_Active, 0; + if ($@Ambush6VictimID != getcharid(3)) + end; + if (@state != 4) + end; + + set wolvern_count, wolvern_count + 1; if (wolvern_count >= @wolvern_amount) message strcharinfo(0), "You've hunted down a lot of Wolverns. Maybe you should talk to Birrod?"; + + if ($@Ambush6_Spawn == 0) + goto L_Abort; end; } @@ -407,7 +435,6 @@ OnAmbush: set $@Ambush7_Spawn, 4 + rand(3); message strcharinfo(0), "An ambush!"; areamonster "034-1.gat", 31, 59, 39, 65, "", 1090, $@Ambush7_Spawn, "#Ambush7::OnWolvernDeath"; - set $@Ambush7VictimID, 0; end; L_Abort: @@ -421,15 +448,20 @@ OnWolvernDeath: set @Q_Barbarians_MASK, NIBBLE_0_MASK; set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); - if (@state == 4) - set wolvern_count, wolvern_count + 1; set $@Ambush7_Spawn, $@Ambush7_Spawn - 1; - if ($@Ambush7_Spawn == 0) - set $@Ambush7_Active, 0; + if ($@Ambush7VictimID != getcharid(3)) + end; + if (@state != 4) + end; + + set wolvern_count, wolvern_count + 1; if (wolvern_count >= @wolvern_amount) message strcharinfo(0), "You've hunted down a lot of Wolverns. Maybe you should talk to Birrod?"; + + if ($@Ambush7_Spawn == 0) + goto L_Abort; end; } @@ -461,7 +493,6 @@ OnAmbush: set $@Ambush8_Spawn, 4 + rand(3); message strcharinfo(0), "An ambush!"; areamonster "034-1.gat", 21, 90, 32, 100, "", 1090, $@Ambush8_Spawn, "#Ambush8::OnWolvernDeath"; - set $@Ambush8VictimID, 0; end; L_Abort: @@ -475,15 +506,20 @@ OnWolvernDeath: set @Q_Barbarians_MASK, NIBBLE_0_MASK; set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); - if (@state == 4) - set wolvern_count, wolvern_count + 1; set $@Ambush8_Spawn, $@Ambush8_Spawn - 1; - if ($@Ambush8_Spawn == 0) - set $@Ambush8_Active, 0; + if ($@Ambush8VictimID != getcharid(3)) + end; + if (@state != 4) + end; + + set wolvern_count, wolvern_count + 1; if (wolvern_count >= @wolvern_amount) message strcharinfo(0), "You've hunted down a lot of Wolverns. Maybe you should talk to Birrod?"; + + if ($@Ambush8_Spawn == 0) + goto L_Abort; end; } @@ -515,7 +551,6 @@ OnAmbush: set $@Ambush9_Spawn, 4 + rand(3); message strcharinfo(0), "An ambush!"; areamonster "034-1.gat", 52, 88, 61, 96, "", 1090, $@Ambush9_Spawn, "#Ambush9::OnWolvernDeath"; - set $@Ambush9VictimID, 0; end; L_Abort: @@ -529,15 +564,20 @@ OnWolvernDeath: set @Q_Barbarians_MASK, NIBBLE_0_MASK; set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); - if (@state == 4) - set wolvern_count, wolvern_count + 1; set $@Ambush9_Spawn, $@Ambush9_Spawn - 1; - if ($@Ambush9_Spawn == 0) - set $@Ambush9_Active, 0; + if ($@Ambush9VictimID != getcharid(3)) + end; + if (@state != 4) + end; + + set wolvern_count, wolvern_count + 1; if (wolvern_count >= @wolvern_amount) message strcharinfo(0), "You've hunted down a lot of Wolverns. Maybe you should talk to Birrod?"; + + if ($@Ambush9_Spawn == 0) + goto L_Abort; end; } @@ -569,7 +609,6 @@ OnAmbush: set $@Ambush10_Spawn, 4 + rand(3); message strcharinfo(0), "An ambush!"; areamonster "034-1.gat", 60, 63, 69, 69, "", 1090, $@Ambush10_Spawn, "#Ambush10::OnWolvernDeath"; - set $@Ambush10VictimID, 0; end; L_Abort: @@ -583,15 +622,20 @@ OnWolvernDeath: set @Q_Barbarians_MASK, NIBBLE_0_MASK; set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); - if (@state == 4) - set wolvern_count, wolvern_count + 1; set $@Ambush10_Spawn, $@Ambush10_Spawn - 1; - if ($@Ambush10_Spawn == 0) - set $@Ambush10_Active, 0; + if ($@Ambush10VictimID != getcharid(3)) + end; + if (@state != 4) + end; + + set wolvern_count, wolvern_count + 1; if (wolvern_count >= @wolvern_amount) message strcharinfo(0), "You've hunted down a lot of Wolverns. Maybe you should talk to Birrod?"; + + if ($@Ambush10_Spawn == 0) + goto L_Abort; end; } @@ -623,7 +667,6 @@ OnAmbush: set $@Ambush11_Spawn, 4 + rand(3); message strcharinfo(0), "An ambush!"; areamonster "034-1.gat", 82, 65, 90, 72, "", 1090, $@Ambush11_Spawn, "#Ambush11::OnWolvernDeath"; - set $@Ambush11VictimID, 0; end; L_Abort: @@ -637,15 +680,20 @@ OnWolvernDeath: set @Q_Barbarians_MASK, NIBBLE_0_MASK; set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); - if (@state == 4) - set wolvern_count, wolvern_count + 1; set $@Ambush11_Spawn, $@Ambush11_Spawn - 1; - if ($@Ambush11_Spawn == 0) - set $@Ambush11_Active, 0; + if ($@Ambush11VictimID != getcharid(3)) + end; + if (@state != 4) + end; + + set wolvern_count, wolvern_count + 1; if (wolvern_count >= @wolvern_amount) message strcharinfo(0), "You've hunted down a lot of Wolverns. Maybe you should talk to Birrod?"; + + if ($@Ambush11_Spawn == 0) + goto L_Abort; end; } @@ -677,7 +725,6 @@ OnAmbush: set $@Ambush12_Spawn, 4 + rand(3); message strcharinfo(0), "An ambush!"; areamonster "034-1.gat", 98, 76, 104, 81, "", 1090, $@Ambush12_Spawn, "#Ambush12::OnWolvernDeath"; - set $@Ambush12VictimID, 0; end; L_Abort: @@ -691,15 +738,20 @@ OnWolvernDeath: set @Q_Barbarians_MASK, NIBBLE_0_MASK; set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); - if (@state == 4) - set wolvern_count, wolvern_count + 1; set $@Ambush12_Spawn, $@Ambush12_Spawn - 1; - if ($@Ambush12_Spawn == 0) - set $@Ambush12_Active, 0; + if ($@Ambush12VictimID != getcharid(3)) + end; + if (@state != 4) + end; + + set wolvern_count, wolvern_count + 1; if (wolvern_count >= @wolvern_amount) message strcharinfo(0), "You've hunted down a lot of Wolverns. Maybe you should talk to Birrod?"; + + if ($@Ambush12_Spawn == 0) + goto L_Abort; end; } @@ -731,7 +783,6 @@ OnAmbush: set $@Ambush13_Spawn, 4 + rand(3); message strcharinfo(0), "An ambush!"; areamonster "034-1.gat", 120, 86, 127, 90, "", 1090, $@Ambush13_Spawn, "#Ambush13::OnWolvernDeath"; - set $@Ambush13VictimID, 0; end; L_Abort: @@ -745,15 +796,20 @@ OnWolvernDeath: set @Q_Barbarians_MASK, NIBBLE_0_MASK; set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); - if (@state == 4) - set wolvern_count, wolvern_count + 1; set $@Ambush13_Spawn, $@Ambush13_Spawn - 1; - if ($@Ambush13_Spawn == 0) - set $@Ambush13_Active, 0; + if ($@Ambush13VictimID != getcharid(3)) + end; + if (@state != 4) + end; + + set wolvern_count, wolvern_count + 1; if (wolvern_count >= @wolvern_amount) message strcharinfo(0), "You've hunted down a lot of Wolverns. Maybe you should talk to Birrod?"; + + if ($@Ambush13_Spawn == 0) + goto L_Abort; end; } @@ -785,7 +841,6 @@ OnAmbush: set $@Ambush14_Spawn, 4 + rand(3); message strcharinfo(0), "An ambush!"; areamonster "034-1.gat", 114, 100, 120, 106, "", 1090, $@Ambush14_Spawn, "#Ambush14::OnWolvernDeath"; - set $@Ambush14VictimID, 0; end; L_Abort: @@ -799,14 +854,19 @@ OnWolvernDeath: set @Q_Barbarians_MASK, NIBBLE_0_MASK; set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); - if (@state == 4) - set wolvern_count, wolvern_count + 1; set $@Ambush14_Spawn, $@Ambush14_Spawn - 1; - if ($@Ambush14_Spawn == 0) - set $@Ambush14_Active, 0; + if ($@Ambush14VictimID != getcharid(3)) + end; + if (@state != 4) + end; + + set wolvern_count, wolvern_count + 1; if (wolvern_count >= @wolvern_amount) message strcharinfo(0), "You've hunted down a lot of Wolverns. Maybe you should talk to Birrod?"; + + if ($@Ambush14_Spawn == 0) + goto L_Abort; end; } diff --git a/world/map/npc/034-1/yetiSpawn.txt b/world/map/npc/034-1/yetiSpawn.txt index 2f9e1000..f18e78be 100644 --- a/world/map/npc/034-1/yetiSpawn.txt +++ b/world/map/npc/034-1/yetiSpawn.txt @@ -1,7 +1,7 @@ // This file belongs to the yeti hunting quest given by 033-1/yerrnk.txt // Author: Jenalya -034-1.gat,79,98,0|script|#Yerrnk_YetiTrigger|32767,1,1,{ +034-1.gat,79,98,0|script|#Yerrnk_YetiTrigger|32767,1,3,{ set @Q_Barbarians_MASK, NIBBLE_0_MASK; set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); @@ -39,11 +39,12 @@ OnYetiDeath: set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); if (@state != 7) - end; + goto L_End; set @state, 8; callsub S_Update_Mask; message strcharinfo(0), "You defeated the Yeti."; +L_End: set $@Yerrnk_Yeti_Active, 0; set $@Yerrnk_Yetifighter_ID, 0; end; -- cgit v1.2.3-60-g2f50