mirror of
https://github.com/JezuzLizard/BO2-Reimagined.git
synced 2025-06-07 21:59:49 -05:00
100 lines
2.0 KiB
Plaintext
100 lines
2.0 KiB
Plaintext
#include maps\mp\zm_buried_sq_ows;
|
|
#include common_scripts\utility;
|
|
#include maps\mp\_utility;
|
|
#include maps\mp\zombies\_zm_utility;
|
|
#include maps\mp\zombies\_zm_sidequests;
|
|
#include maps\mp\zm_buried_sq;
|
|
|
|
ows_targets_start()
|
|
{
|
|
n_cur_second = 0;
|
|
flag_clear("sq_ows_target_missed");
|
|
level thread sndsidequestowsmusic();
|
|
a_sign_spots = getstructarray("otw_target_spot", "script_noteworthy");
|
|
|
|
level.targets_hit = 0;
|
|
|
|
while (n_cur_second < 40)
|
|
{
|
|
a_spawn_spots = ows_targets_get_cur_spots(n_cur_second);
|
|
|
|
if (isdefined(a_spawn_spots) && a_spawn_spots.size > 0)
|
|
ows_targets_spawn(a_spawn_spots);
|
|
|
|
wait 1;
|
|
n_cur_second++;
|
|
}
|
|
|
|
players = get_players();
|
|
|
|
if (level.targets_hit < (20 * players.size))
|
|
{
|
|
flag_set("sq_ows_target_missed");
|
|
}
|
|
|
|
if (!flag("sq_ows_target_missed"))
|
|
{
|
|
flag_set("sq_ows_success");
|
|
playsoundatposition("zmb_sq_target_success", (0, 0, 0));
|
|
}
|
|
else
|
|
playsoundatposition("zmb_sq_target_fail", (0, 0, 0));
|
|
|
|
level notify("sndEndOWSMusic");
|
|
}
|
|
|
|
ows_targets_spawn(a_spawn_spots)
|
|
{
|
|
i = 0;
|
|
|
|
foreach (s_spot in a_spawn_spots)
|
|
{
|
|
m_target = spawn("script_model", s_spot.origin);
|
|
m_target.angles = s_spot.angles;
|
|
m_target setmodel("p6_zm_bu_target");
|
|
m_target ghost();
|
|
wait_network_frame();
|
|
m_target show();
|
|
playfxontag(level._effect["sq_spawn"], m_target, "tag_origin");
|
|
m_target playsound("zmb_sq_target_spawn");
|
|
|
|
if (isdefined(s_spot.target))
|
|
m_target thread ows_target_move(s_spot.target);
|
|
|
|
m_target thread ows_target_think();
|
|
m_target thread sndhit();
|
|
m_target thread sndtime();
|
|
i++;
|
|
}
|
|
}
|
|
|
|
ows_target_think()
|
|
{
|
|
self setcandamage(1);
|
|
self thread ows_target_delete_timer();
|
|
msg = self waittill_any_return("ows_target_timeout", "damage");
|
|
|
|
if (msg == "damage")
|
|
{
|
|
level.targets_hit++;
|
|
}
|
|
|
|
if (isdefined(self.m_linker))
|
|
{
|
|
self unlink();
|
|
self.m_linker delete();
|
|
}
|
|
|
|
self rotatepitch(-90, 0.15, 0.05, 0.05);
|
|
|
|
self waittill("rotatedone");
|
|
|
|
self delete();
|
|
}
|
|
|
|
ows_target_delete_timer()
|
|
{
|
|
self endon("death");
|
|
wait 4;
|
|
self notify("ows_target_timeout");
|
|
} |