summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Dombrowski <stefan@uni-bonn.de>2012-01-16 22:12:16 +0100
committerJessica Tölke <jtoelke@mail.upb.de>2012-01-17 20:04:43 +0100
commitaf937c6f932cdea5b56f0ee7c4976c7706e986a8 (patch)
tree1863e9bc227dbcaf9e8192df2e30d6643aba47e2
parent589f8f9ec044dd8ee00fb01f6e5e1206d0f716e4 (diff)
downloadserverdata-af937c6f932cdea5b56f0ee7c4976c7706e986a8.tar.gz
serverdata-af937c6f932cdea5b56f0ee7c4976c7706e986a8.tar.bz2
serverdata-af937c6f932cdea5b56f0ee7c4976c7706e986a8.tar.xz
serverdata-af937c6f932cdea5b56f0ee7c4976c7706e986a8.zip
Some fixes to the Barbarian quests
-rw-r--r--world/map/npc/033-1/birrod.txt6
-rw-r--r--world/map/npc/033-1/kimarr.txt36
-rw-r--r--world/map/npc/033-1/yerrnk.txt6
-rw-r--r--world/map/npc/034-1/ambushs.txt210
-rw-r--r--world/map/npc/034-1/yetiSpawn.txt5
5 files changed, 162 insertions, 101 deletions
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;