1
0
mirror of https://github.com/JezuzLizard/BO2-Reimagined.git synced 2025-07-05 03:19:06 -05:00

Afterlife: fix zombies not going after other players

This commit is contained in:
Jbleezy
2023-04-11 04:12:57 -07:00
parent eff871035a
commit ba735453b3

View File

@ -141,6 +141,31 @@ afterlife_laststand( b_electric_chair = 0 )
self playsound( "zmb_afterlife_revived_gasp" ); self playsound( "zmb_afterlife_revived_gasp" );
} }
afterlife_spawn_corpse()
{
if ( isdefined( self.is_on_gondola ) && self.is_on_gondola && level.e_gondola.destination == "roof" )
corpse = maps\mp\zombies\_zm_clone::spawn_player_clone( self, self.origin, undefined );
else
{
trace_start = self.origin;
trace_end = self.origin + vectorscale( ( 0, 0, -1 ), 500.0 );
corpse_trace = playerphysicstrace( trace_start, trace_end );
corpse = spawn_player_clone( self, corpse_trace, undefined );
}
corpse.angles = self.angles;
corpse.ignoreme = 1;
corpse maps\mp\zombies\_zm_clone::clone_give_weapon( "m1911_zm" );
corpse maps\mp\zombies\_zm_clone::clone_animate( "afterlife" );
corpse.revive_hud = self afterlife_revive_hud_create();
corpse thread afterlife_revive_trigger_spawn();
if ( get_players().size == 1 )
corpse thread afterlife_corpse_create_pois();
return corpse;
}
afterlife_fake_death() afterlife_fake_death()
{ {
level notify( "fake_death" ); level notify( "fake_death" );
@ -163,6 +188,13 @@ afterlife_fake_death()
self freezecontrols( 1 ); self freezecontrols( 1 );
} }
collision = spawn( "script_model", corpse.origin + ( 0, 0, 16 ) );
collision.angles = corpse.angles;
collision setmodel( "collision_clip_32x32x32" );
collision linkto( corpse );
collision ghost();
corpse.collision = collision;
afterlife_revive_invincible() afterlife_revive_invincible()
{ {
self endon( "disconnect" ); self endon( "disconnect" );
@ -309,4 +341,32 @@ afterlife_revive_do_revive( playerbeingrevived, revivergun )
playerbeingrevived thread checkforbleedout( self ); playerbeingrevived thread checkforbleedout( self );
return revived; return revived;
}
afterlife_corpse_cleanup( corpse )
{
playsoundatposition( "zmb_afterlife_revived", corpse.origin );
if ( isdefined( corpse.revivetrigger ) )
{
corpse notify( "stop_revive_trigger" );
corpse.revivetrigger delete();
corpse.revivetrigger = undefined;
}
if ( isdefined( corpse.collision ) )
{
corpse.collision delete();
corpse.collision = undefined;
}
self.e_afterlife_corpse = undefined;
corpse setclientfield( "player_corpse_id", 0 );
corpse afterlife_corpse_remove_pois();
corpse ghost();
self.loadout = undefined;
wait_network_frame();
wait_network_frame();
wait_network_frame();
corpse delete();
} }