mirror of
https://github.com/Paintball/BO2-GSC-Releases.git
synced 2025-06-10 14:57:56 -05:00
89 lines
2.8 KiB
Plaintext
89 lines
2.8 KiB
Plaintext
#include maps\mp\_utility;
|
|
#include common_scripts\utility;
|
|
#include maps\mp\gametypes_zm\_hud_util;
|
|
#include maps\mp\gametypes_zm\_hud_message;
|
|
|
|
init()
|
|
{
|
|
level thread init_hitmarkers();
|
|
}
|
|
|
|
init_hitmarkers()
|
|
{
|
|
precacheshader( "damage_feedback" );
|
|
|
|
maps/mp/zombies/_zm_spawner::register_zombie_damage_callback(::do_hitmarker);
|
|
maps/mp/zombies/_zm_spawner::register_zombie_death_event_callback(::do_hitmarker_death);
|
|
|
|
for( ;; )
|
|
{
|
|
level waittill( "connected", player );
|
|
player.hud_damagefeedback = newdamageindicatorhudelem( player );
|
|
player.hud_damagefeedback.horzalign = "center";
|
|
player.hud_damagefeedback.vertalign = "middle";
|
|
player.hud_damagefeedback.x = -12;
|
|
player.hud_damagefeedback.y = -12;
|
|
player.hud_damagefeedback.alpha = 0;
|
|
player.hud_damagefeedback.archived = 1;
|
|
player.hud_damagefeedback.color = ( 1, 1, 1 );
|
|
player.hud_damagefeedback setshader( "damage_feedback", 24, 48 );
|
|
player.hud_damagefeedback_red = newdamageindicatorhudelem( player );
|
|
player.hud_damagefeedback_red.horzalign = "center";
|
|
player.hud_damagefeedback_red.vertalign = "middle";
|
|
player.hud_damagefeedback_red.x = -12;
|
|
player.hud_damagefeedback_red.y = -12;
|
|
player.hud_damagefeedback_red.alpha = 0;
|
|
player.hud_damagefeedback_red.archived = 1;
|
|
player.hud_damagefeedback_red.color = ( 1, 0, 0 );
|
|
player.hud_damagefeedback_red setshader( "damage_feedback", 24, 48 );
|
|
}
|
|
}
|
|
|
|
updatedamagefeedback( mod, inflictor, death ) //checked matches cerberus output
|
|
{
|
|
if ( !isplayer( self ) || isDefined( self.disable_hitmarkers ))
|
|
{
|
|
return;
|
|
}
|
|
if ( isDefined( mod ) && mod != "MOD_CRUSH" && mod != "MOD_GRENADE_SPLASH" && mod != "MOD_HIT_BY_OBJECT" )
|
|
{
|
|
if ( isDefined( inflictor ))
|
|
{
|
|
self playlocalsound( "mpl_hit_alert" );
|
|
}
|
|
if( death && getdvarintdefault( "redhitmarkers", 1 ))
|
|
{
|
|
self.hud_damagefeedback_red setshader( "damage_feedback", 24, 48 );
|
|
self.hud_damagefeedback_red.alpha = 1;
|
|
self.hud_damagefeedback_red fadeovertime( 1 );
|
|
self.hud_damagefeedback_red.alpha = 0;
|
|
}
|
|
else
|
|
{
|
|
self.hud_damagefeedback setshader( "damage_feedback", 24, 48 );
|
|
self.hud_damagefeedback.alpha = 1;
|
|
self.hud_damagefeedback fadeovertime( 1 );
|
|
self.hud_damagefeedback.alpha = 0;
|
|
}
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
do_hitmarker_death()
|
|
{
|
|
if( isDefined( self.attacker ) && isplayer( self.attacker ) && self.attacker != self )
|
|
{
|
|
self.attacker thread updatedamagefeedback( self.damagemod, self.attacker, 1 );
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
do_hitmarker(mod, hitloc, hitorig, player, damage)
|
|
{
|
|
if( isDefined( player ) && isplayer( player ) && player != self )
|
|
{
|
|
player thread updatedamagefeedback( mod, player, 0 );
|
|
}
|
|
return 0;
|
|
}
|