diff options
-rw-r--r-- | world/map/npc/034-1/ambushs.txt | 640 |
1 files changed, 634 insertions, 6 deletions
diff --git a/world/map/npc/034-1/ambushs.txt b/world/map/npc/034-1/ambushs.txt index ff01993b..31d6cebb 100644 --- a/world/map/npc/034-1/ambushs.txt +++ b/world/map/npc/034-1/ambushs.txt @@ -8,17 +8,19 @@ set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); if (@state != 4) end; - if (rand(50) > wolvern_count) // TODO: eventally use different argument for rand - end; - set $@Ambush0VictimID, getcharid(3); + +// if (rand(50) > wolvern_count) // TODO: eventally use different argument for rand +// end; + if ($@Ambush0_Active != 0) end; + set $@Ambush0VictimID, getcharid(3); set $@Ambush0_Active, 1; donpcevent "#Ambush0::OnAmbush"; end; } -034-1.gat,119,60,0|script|#Ambush0|45,{ +034-1.gat,118,59,0|script|#Ambush0|45,{ end; OnAmbush: @@ -54,17 +56,19 @@ OnWolvernDeath: set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); if (@state != 4) end; + if (rand(50) > wolvern_count) end; - set $@Ambush1VictimID, getcharid(3); + if ($@Ambush1_Active != 0) end; + set $@Ambush1VictimID, getcharid(3); set $@Ambush1_Active, 1; donpcevent "#Ambush1::OnAmbush"; end; } -034-1.gat,94,92,0|script|#Ambush1|45,{ +034-1.gat,94,91,0|script|#Ambush1|45,{ end; OnAmbush: @@ -93,3 +97,627 @@ OnWolvernDeath: message strcharinfo(0), "You've hunted down a lot of Wolverns. Maybe you should talk to Birrod?"; end; } + +034-1.gat,122,35,0|script|#Ambush2Trigger|45,1,1,{ + 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) + end; + + if (rand(50) > wolvern_count) + end; + + if ($@Ambush2_Active != 0) + end; + set $@Ambush2VictimID, getcharid(3); + set $@Ambush2_Active, 1; + donpcevent "#Ambush2::OnAmbush"; + end; +} + +034-1.gat,122,35,0|script|#Ambush2|45,{ +end; + +OnAmbush: + attachrid($@Ambush2VictimID); + set @wolvern_amount, 10; // has to be same value as in birrod.txt + set $@Ambush2_Spawn, 4 + rand(3); + message strcharinfo(0), "An ambush!"; + areamonster "034-1.gat", 118, 32, 126, 39, "", 1089, $@Ambush2_Spawn, "#Ambush2::OnWolvernDeath"; + set $@Ambush2VictimID, 0; + end; + +OnWolvernDeath: + set @MobID, 1089; // TODO: adapt + + 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 (wolvern_count >= @wolvern_amount) + message strcharinfo(0), "You've hunted down a lot of Wolverns. Maybe you should talk to Birrod?"; + end; +} + +034-1.gat,83,44,0|script|#Ambush3Trigger|45,1,1,{ + 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) + end; + + if (rand(50) > wolvern_count) + end; + + if ($@Ambush3_Active != 0) + end; + set $@Ambush3VictimID, getcharid(3); + set $@Ambush3_Active, 1; + donpcevent "#Ambush3::OnAmbush"; + end; +} + +034-1.gat,83,44,0|script|#Ambush3|45,{ +end; + +OnAmbush: + attachrid($@Ambush3VictimID); + set @wolvern_amount, 10; // has to be same value as in birrod.txt + set $@Ambush3_Spawn, 4 + rand(3); + message strcharinfo(0), "An ambush!"; + areamonster "034-1.gat", 79, 41, 86, 47, "", 1089, $@Ambush3_Spawn, "#Ambush3::OnWolvernDeath"; + set $@Ambush3VictimID, 0; + end; + +OnWolvernDeath: + set @MobID, 1089; // TODO: adapt + + 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 (wolvern_count >= @wolvern_amount) + message strcharinfo(0), "You've hunted down a lot of Wolverns. Maybe you should talk to Birrod?"; + end; +} + +034-1.gat,74,28,0|script|#Ambush4Trigger|45,1,1,{ + 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) + end; + + if (rand(50) > wolvern_count) + end; + + if ($@Ambush4_Active != 0) + end; + set $@Ambush4VictimID, getcharid(3); + set $@Ambush4_Active, 1; + donpcevent "#Ambush4::OnAmbush"; + end; +} + +034-1.gat,74,28,0|script|#Ambush4|45,{ +end; + +OnAmbush: + attachrid($@Ambush4VictimID); + set @wolvern_amount, 10; // has to be same value as in birrod.txt + set $@Ambush4_Spawn, 4 + rand(3); + message strcharinfo(0), "An ambush!"; + areamonster "034-1.gat", 69, 25, 77, 31, "", 1089, $@Ambush4_Spawn, "#Ambush4::OnWolvernDeath"; + set $@Ambush4VictimID, 0; + end; + +OnWolvernDeath: + set @MobID, 1089; // TODO: adapt + + 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 (wolvern_count >= @wolvern_amount) + message strcharinfo(0), "You've hunted down a lot of Wolverns. Maybe you should talk to Birrod?"; + end; +} + +034-1.gat,26,44,0|script|#Ambush5Trigger|45,1,1,{ + 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) + end; + + if (rand(50) > wolvern_count) + end; + + if ($@Ambush5_Active != 0) + end; + set $@Ambush5VictimID, getcharid(3); + set $@Ambush5_Active, 1; + donpcevent "#Ambush5::OnAmbush"; + end; +} + +034-1.gat,26,44,0|script|#Ambush5|45,{ +end; + +OnAmbush: + attachrid($@Ambush5VictimID); + set @wolvern_amount, 10; // has to be same value as in birrod.txt + set $@Ambush5_Spawn, 4 + rand(3); + message strcharinfo(0), "An ambush!"; + areamonster "034-1.gat", 22, 40, 30, 48, "", 1089, $@Ambush5_Spawn, "#Ambush5::OnWolvernDeath"; + set $@Ambush5VictimID, 0; + end; + +OnWolvernDeath: + set @MobID, 1089; // TODO: adapt + + 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 (wolvern_count >= @wolvern_amount) + message strcharinfo(0), "You've hunted down a lot of Wolverns. Maybe you should talk to Birrod?"; + end; +} + +034-1.gat,50,47,0|script|#Ambush6Trigger|45,1,1,{ + 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) + end; + + if (rand(50) > wolvern_count) + end; + + if ($@Ambush6_Active != 0) + end; + set $@Ambush6VictimID, getcharid(3); + set $@Ambush6_Active, 1; + donpcevent "#Ambush6::OnAmbush"; + end; +} + +034-1.gat,50,47,0|script|#Ambush6|45,{ +end; + +OnAmbush: + attachrid($@Ambush6VictimID); + set @wolvern_amount, 10; // has to be same value as in birrod.txt + set $@Ambush6_Spawn, 4 + rand(3); + message strcharinfo(0), "An ambush!"; + areamonster "034-1.gat", 46, 45, 54, 50, "", 1089, $@Ambush6_Spawn, "#Ambush6::OnWolvernDeath"; + set $@Ambush6VictimID, 0; + end; + +OnWolvernDeath: + set @MobID, 1089; // TODO: adapt + + 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 (wolvern_count >= @wolvern_amount) + message strcharinfo(0), "You've hunted down a lot of Wolverns. Maybe you should talk to Birrod?"; + end; +} + +034-1.gat,36,62,0|script|#Ambush7Trigger|45,1,1,{ + 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) + end; + + if (rand(50) > wolvern_count) + end; + + if ($@Ambush7_Active != 0) + end; + set $@Ambush7VictimID, getcharid(3); + set $@Ambush7_Active, 1; + donpcevent "#Ambush7::OnAmbush"; + end; +} + +034-1.gat,36,62,0|script|#Ambush7|45,{ +end; + +OnAmbush: + attachrid($@Ambush7VictimID); + set @wolvern_amount, 10; // has to be same value as in birrod.txt + set $@Ambush7_Spawn, 4 + rand(3); + message strcharinfo(0), "An ambush!"; + areamonster "034-1.gat", 31, 59, 39, 65, "", 1089, $@Ambush7_Spawn, "#Ambush7::OnWolvernDeath"; + set $@Ambush7VictimID, 0; + end; + +OnWolvernDeath: + set @MobID, 1089; // TODO: adapt + + 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 (wolvern_count >= @wolvern_amount) + message strcharinfo(0), "You've hunted down a lot of Wolverns. Maybe you should talk to Birrod?"; + end; +} + +034-1.gat,26,95,0|script|#Ambush8Trigger|45,1,1,{ + 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) + end; + + if (rand(50) > wolvern_count) + end; + + if ($@Ambush8_Active != 0) + end; + set $@Ambush8VictimID, getcharid(3); + set $@Ambush8_Active, 1; + donpcevent "#Ambush8::OnAmbush"; + end; +} + +034-1.gat,26,95,0|script|#Ambush8|45,{ +end; + +OnAmbush: + attachrid($@Ambush8VictimID); + set @wolvern_amount, 10; // has to be same value as in birrod.txt + set $@Ambush8_Spawn, 4 + rand(3); + message strcharinfo(0), "An ambush!"; + areamonster "034-1.gat", 21, 90, 32, 100, "", 1089, $@Ambush8_Spawn, "#Ambush8::OnWolvernDeath"; + set $@Ambush8VictimID, 0; + end; + +OnWolvernDeath: + set @MobID, 1089; // TODO: adapt + + 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 (wolvern_count >= @wolvern_amount) + message strcharinfo(0), "You've hunted down a lot of Wolverns. Maybe you should talk to Birrod?"; + end; +} + +034-1.gat,56,91,0|script|#Ambush9Trigger|45,1,1,{ + 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) + end; + + if (rand(50) > wolvern_count) + end; + + if ($@Ambush9_Active != 0) + end; + set $@Ambush9VictimID, getcharid(3); + set $@Ambush9_Active, 1; + donpcevent "#Ambush9::OnAmbush"; + end; +} + +034-1.gat,56,91,0|script|#Ambush9|45,{ +end; + +OnAmbush: + attachrid($@Ambush9VictimID); + set @wolvern_amount, 10; // has to be same value as in birrod.txt + set $@Ambush9_Spawn, 4 + rand(3); + message strcharinfo(0), "An ambush!"; + areamonster "034-1.gat", 52, 88, 61, 96, "", 1089, $@Ambush9_Spawn, "#Ambush9::OnWolvernDeath"; + set $@Ambush9VictimID, 0; + end; + +OnWolvernDeath: + set @MobID, 1089; // TODO: adapt + + 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 (wolvern_count >= @wolvern_amount) + message strcharinfo(0), "You've hunted down a lot of Wolverns. Maybe you should talk to Birrod?"; + end; +} + +034-1.gat,65,66,0|script|#Ambush10Trigger|45,1,1,{ + 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) + end; + + if (rand(50) > wolvern_count) + end; + + if ($@Ambush10_Active != 0) + end; + set $@Ambush10VictimID, getcharid(3); + set $@Ambush10_Active, 1; + donpcevent "#Ambush10::OnAmbush"; + end; +} + +034-1.gat,65,66,0|script|#Ambush10|45,{ +end; + +OnAmbush: + attachrid($@Ambush10VictimID); + set @wolvern_amount, 10; // has to be same value as in birrod.txt + set $@Ambush10_Spawn, 4 + rand(3); + message strcharinfo(0), "An ambush!"; + areamonster "034-1.gat", 60, 63, 69, 69, "", 1089, $@Ambush10_Spawn, "#Ambush10::OnWolvernDeath"; + set $@Ambush10VictimID, 0; + end; + +OnWolvernDeath: + set @MobID, 1089; // TODO: adapt + + 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 (wolvern_count >= @wolvern_amount) + message strcharinfo(0), "You've hunted down a lot of Wolverns. Maybe you should talk to Birrod?"; + end; +} + +034-1.gat,86,68,0|script|#Ambush11Trigger|45,1,1,{ + 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) + end; + + if (rand(50) > wolvern_count) + end; + + if ($@Ambush11_Active != 0) + end; + set $@Ambush11VictimID, getcharid(3); + set $@Ambush11_Active, 1; + donpcevent "#Ambush11::OnAmbush"; + end; +} + +034-1.gat,86,68,0|script|#Ambush11|45,{ +end; + +OnAmbush: + attachrid($@Ambush11VictimID); + set @wolvern_amount, 10; // has to be same value as in birrod.txt + set $@Ambush11_Spawn, 4 + rand(3); + message strcharinfo(0), "An ambush!"; + areamonster "034-1.gat", 82, 65, 90, 72, "", 1089, $@Ambush11_Spawn, "#Ambush11::OnWolvernDeath"; + set $@Ambush11VictimID, 0; + end; + +OnWolvernDeath: + set @MobID, 1089; // TODO: adapt + + 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 (wolvern_count >= @wolvern_amount) + message strcharinfo(0), "You've hunted down a lot of Wolverns. Maybe you should talk to Birrod?"; + end; +} + +034-1.gat,101,79,0|script|#Ambush12Trigger|45,1,1,{ + 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) + end; + + if (rand(50) > wolvern_count) + end; + + if ($@Ambush12_Active != 0) + end; + set $@Ambush12VictimID, getcharid(3); + set $@Ambush12_Active, 1; + donpcevent "#Ambush12::OnAmbush"; + end; +} + +034-1.gat,101,79,0|script|#Ambush12|45,{ +end; + +OnAmbush: + attachrid($@Ambush12VictimID); + set @wolvern_amount, 10; // has to be same value as in birrod.txt + set $@Ambush12_Spawn, 4 + rand(3); + message strcharinfo(0), "An ambush!"; + areamonster "034-1.gat", 98, 76, 104, 81, "", 1089, $@Ambush12_Spawn, "#Ambush12::OnWolvernDeath"; + set $@Ambush12VictimID, 0; + end; + +OnWolvernDeath: + set @MobID, 1089; // TODO: adapt + + 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 (wolvern_count >= @wolvern_amount) + message strcharinfo(0), "You've hunted down a lot of Wolverns. Maybe you should talk to Birrod?"; + end; +} + +034-1.gat,124,88,0|script|#Ambush13Trigger|45,1,1,{ + 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) + end; + + if (rand(50) > wolvern_count) + end; + + if ($@Ambush13_Active != 0) + end; + set $@Ambush13VictimID, getcharid(3); + set $@Ambush13_Active, 1; + donpcevent "#Ambush13::OnAmbush"; + end; +} + +034-1.gat,124,88,0|script|#Ambush13|45,{ +end; + +OnAmbush: + attachrid($@Ambush13VictimID); + set @wolvern_amount, 10; // has to be same value as in birrod.txt + set $@Ambush13_Spawn, 4 + rand(3); + message strcharinfo(0), "An ambush!"; + areamonster "034-1.gat", 120, 86, 127, 90, "", 1089, $@Ambush13_Spawn, "#Ambush13::OnWolvernDeath"; + set $@Ambush13VictimID, 0; + end; + +OnWolvernDeath: + set @MobID, 1089; // TODO: adapt + + 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 (wolvern_count >= @wolvern_amount) + message strcharinfo(0), "You've hunted down a lot of Wolverns. Maybe you should talk to Birrod?"; + end; +} + +034-1.gat,117,103,0|script|#Ambush14Trigger|45,1,1,{ + 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) + end; + + if (rand(50) > wolvern_count) + end; + + if ($@Ambush14_Active != 0) + end; + set $@Ambush14VictimID, getcharid(3); + set $@Ambush14_Active, 1; + donpcevent "#Ambush14::OnAmbush"; + end; +} + +034-1.gat,117,103,0|script|#Ambush14|45,{ +end; + +OnAmbush: + attachrid($@Ambush14VictimID); + set @wolvern_amount, 10; // has to be same value as in birrod.txt + set $@Ambush14_Spawn, 4 + rand(3); + message strcharinfo(0), "An ambush!"; + areamonster "034-1.gat", 114, 100, 120, 106, "", 1089, $@Ambush14_Spawn, "#Ambush14::OnWolvernDeath"; + set $@Ambush14VictimID, 0; + end; + +OnWolvernDeath: + set @MobID, 1089; // TODO: adapt + + 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 (wolvern_count >= @wolvern_amount) + message strcharinfo(0), "You've hunted down a lot of Wolverns. Maybe you should talk to Birrod?"; + end; +} |