1
0
mirror of https://github.com/JezuzLizard/BO2-Reimagined.git synced 2025-06-09 14:49:26 -05:00
BO2-Reimagined/scripts/zm/replaced/_zm_weap_blundersplat.gsc

125 lines
3.4 KiB
Plaintext

#include maps\mp\zombies\_zm_weap_blundersplat;
#include common_scripts\utility;
#include maps\mp\_utility;
#include maps\mp\zombies\_zm_utility;
#include maps\mp\zombies\_zm_net;
#include maps\mp\zombies\_zm_weapons;
#include maps\mp\zombies\_zm_spawner;
#include maps\mp\animscripts\zm_shared;
wait_for_blundersplat_fired()
{
self endon( "disconnect" );
self waittill( "spawned_player" );
for (;;)
{
self waittill( "weapon_fired", str_weapon );
if ( str_weapon == "blundersplat_zm" )
{
_titus_locate_target( 1, 0 );
wait_network_frame();
_titus_locate_target( 1, 1 );
wait_network_frame();
_titus_locate_target( 1, 2 );
wait_network_frame();
}
}
}
wait_for_blundersplat_upgraded_fired()
{
self endon( "disconnect" );
self waittill( "spawned_player" );
for (;;)
{
self waittill( "weapon_fired", str_weapon );
if ( str_weapon == "blundersplat_upgraded_zm" )
{
_titus_locate_target( 0, 0 );
wait_network_frame();
_titus_locate_target( 0, 1 );
wait_network_frame();
_titus_locate_target( 0, 2 );
wait_network_frame();
}
}
}
_titus_locate_target( is_not_upgraded = 1, count )
{
fire_angles = self getplayerangles();
fire_origin = self getplayercamerapos();
if ( is_not_upgraded )
n_fuse_timer = randomfloatrange( 1.0, 2.5 );
else
n_fuse_timer = randomfloatrange( 3.0, 4.0 );
n_spread = 5;
if (isads(self))
{
n_spread *= 0.5;
}
else if (self hasPerk("specialty_deadshot"))
{
n_spread *= getdvarfloat("perk_weapSpreadMultiplier");
}
if (count == 1)
{
fire_angles += (0, n_spread, 0);
}
else if (count == 2)
{
fire_angles -= (0, n_spread, 0);
}
vec = anglestoforward( fire_angles );
trace_end = fire_origin + vec * 20000;
trace = bullettrace( fire_origin, trace_end, 1, self );
offsetpos = trace["position"];
e_dart = magicbullet( "blundersplat_bullet_zm", fire_origin, offsetpos, self );
e_dart thread _titus_reset_grenade_fuse( n_fuse_timer );
}
_titus_reset_grenade_fuse( n_fuse_timer = randomfloatrange( 1, 1.5 ), is_not_upgraded = 1 )
{
self waittill( "death" );
a_grenades = getentarray( "grenade", "classname" );
foreach ( e_grenade in a_grenades )
{
if ( isdefined( e_grenade.model ) && e_grenade.model == "t6_wpn_zmb_projectile_blundergat" && !isdefined( e_grenade.fuse_reset ) )
{
e_grenade.fuse_reset = 1;
e_grenade.fuse_time = n_fuse_timer;
e_grenade resetmissiledetonationtime( n_fuse_timer );
if ( is_not_upgraded )
e_grenade create_zombie_point_of_interest( 250, 15, 10000 );
else
e_grenade create_zombie_point_of_interest( 500, 30, 10000 );
return;
}
}
}
_titus_target_animate_and_die( n_fuse_timer, inflictor )
{
self endon( "death" );
self endon( "titus_target_timeout" );
self thread _titus_target_timeout( n_fuse_timer );
self thread _titus_check_for_target_death( inflictor );
self thread _blundersplat_target_acid_stun_anim();
wait( n_fuse_timer );
self notify( "killed_by_a_blundersplat", inflictor );
self dodamage( self.health + 1000, self.origin, inflictor );
}