mirror of
https://github.com/reaaLx/nx1-gsc-dump.git
synced 2025-09-23 00:46:39 +00:00
Incomplete SP dump provided by Louvenarde
This commit is contained in:
81
maps/_damagefeedback.gsc
Normal file
81
maps/_damagefeedback.gsc
Normal file
@@ -0,0 +1,81 @@
|
||||
#include common_scripts\utility;
|
||||
#include maps\_utility;
|
||||
#include maps\_debug;
|
||||
#include maps\_hud_util;
|
||||
init()
|
||||
{
|
||||
precacheShader( "damage_feedback" );
|
||||
|
||||
if ( getDvar( "scr_damagefeedback" ) == "" )
|
||||
setDvar( "scr_damagefeedback", "0" );
|
||||
|
||||
if ( !getDvarInt( "scr_damagefeedback", 0 ) )
|
||||
return;
|
||||
|
||||
array_thread( level._players, ::init_damage_feedback );
|
||||
array_thread( level._players, ::monitorDamage );
|
||||
}
|
||||
|
||||
init_damage_feedback()
|
||||
{
|
||||
self.hud_damagefeedback = newClientHudElem( self );
|
||||
self.hud_damagefeedback.alignX = "center";
|
||||
self.hud_damagefeedback.alignY = "middle";
|
||||
self.hud_damagefeedback.horzAlign = "center";
|
||||
self.hud_damagefeedback.vertAlign = "middle";
|
||||
self.hud_damagefeedback.alpha = 0;
|
||||
self.hud_damagefeedback.archived = true;
|
||||
self.hud_damagefeedback setShader( "damage_feedback", 24, 24 * 2 );
|
||||
self.hud_damagefeedback.y = 12; // aligns it to the center of the crosshair.
|
||||
}
|
||||
|
||||
monitorDamage()
|
||||
{
|
||||
if ( !getDvarInt( "scr_damagefeedback", 0 ) )
|
||||
return;
|
||||
|
||||
self add_damage_function( ::damagefeedback_took_damage );
|
||||
}
|
||||
|
||||
damagefeedback_took_damage( damage, attacker, direction_vec, point, type, modelName, tagName )
|
||||
{
|
||||
if ( !isplayer( attacker ) )
|
||||
return;
|
||||
if ( isdefined( self.bullet_resistance ) )
|
||||
{
|
||||
legal_bullet_types = [];
|
||||
legal_bullet_types[ "MOD_PISTOL_BULLET" ] = true;
|
||||
legal_bullet_types[ "MOD_RIFLE_BULLET" ] = true;
|
||||
|
||||
if ( isdefined( legal_bullet_types[ type ] ) )
|
||||
{
|
||||
if ( damage <= self.bullet_resistance )
|
||||
return;
|
||||
}
|
||||
}
|
||||
attacker updateDamageFeedback( self );
|
||||
}
|
||||
|
||||
updateDamageFeedback( attacked )
|
||||
{
|
||||
if ( !isPlayer( self ) )
|
||||
return;
|
||||
if ( !isdefined( attacked.team ) )
|
||||
return;
|
||||
if ( ( attacked.team == self.team ) || ( attacked.team == "neutral" ) )
|
||||
return;
|
||||
self playlocalsound( "SP_hit_alert" );
|
||||
|
||||
fadeTime = 1; //fade out crosshair damage indicator over this time
|
||||
|
||||
//If in slomo, fade out damage indicator faster (the value entered for the slomo time fraction
|
||||
if ( isdefined( level._slowmo.speed_slow ) )
|
||||
fadeTime = level._slowmo.speed_slow;
|
||||
|
||||
self.hud_damagefeedback.alpha = 1;
|
||||
self.hud_damagefeedback fadeOverTime( fadeTime );
|
||||
self.hud_damagefeedback.alpha = 0;
|
||||
|
||||
offset = getdvarfloat( "cg_crosshairVerticalOffset" ) * 240;
|
||||
self.hud_damagefeedback.y = 12 - int( offset );
|
||||
}
|
Reference in New Issue
Block a user