[Mod FF]: _damagefeedback: added hitmarker when AI was flashed
This commit is contained in:
parent
9f92cf9127
commit
8775a7455d
@ -6,18 +6,13 @@ init()
|
||||
precacheShader( "h1_damage_feedback" );
|
||||
precacheShader( "h1_damage_feedback_headshot" );
|
||||
|
||||
// if ( getDvar( "scr_damagefeedback" ) == "" )
|
||||
// setDvar( "scr_damagefeedback", "1" );
|
||||
level.damagefeedback_funcs = [];
|
||||
AddDamageFunction(::monitorDamage);
|
||||
AddDamageFunction(::so_ai_flashed_damage_feedback);
|
||||
|
||||
// if ( getDvar( "scr_damagefeedback" ) == "0" )
|
||||
// return;
|
||||
|
||||
// axis = getAIArray( "axis" );
|
||||
// array_thread( axis, ::monitorDamage );
|
||||
// add_global_spawn_function( "axis", ::monitorDamage );
|
||||
enemies = getaiarray( "axis" );
|
||||
array_thread( enemies, ::monitorDamage );
|
||||
add_global_spawn_function( "axis", ::monitorDamage );
|
||||
array_thread( enemies, ::DamageFeedbackFunctions );
|
||||
add_global_spawn_function( "axis", ::DamageFeedbackFunctions );
|
||||
|
||||
level.player thread init_damage_feedback();
|
||||
}
|
||||
@ -46,20 +41,43 @@ init_damage_feedback()
|
||||
self.hud_damagefeedback_headshot.y = 25; // aligns it to the center of the crosshair.
|
||||
}
|
||||
|
||||
DamageFeedbackFunctions()
|
||||
{
|
||||
for ( i = 0; i < level.damagefeedback_funcs.size; i++ )
|
||||
{
|
||||
func = level.damagefeedback_funcs[ i ];
|
||||
self thread [[ func[ "function" ] ]]();
|
||||
}
|
||||
}
|
||||
|
||||
monitorDamage()
|
||||
{
|
||||
level.player endon("death");
|
||||
|
||||
while( isDefined(self) && isAlive(self) )
|
||||
while( isDefined( self ) && isAlive( self ) )
|
||||
{
|
||||
self waittill( "damage", damage, attacker, direction_vec, point, type, modelName, tagName );
|
||||
self damagefeedback_took_damage( damage, attacker, direction_vec, point, type, modelName, tagName );
|
||||
}
|
||||
}
|
||||
|
||||
// from mw3 scripts
|
||||
so_ai_flashed_damage_feedback()
|
||||
{
|
||||
level.player endon( "death" );
|
||||
|
||||
while( isDefined( self ) && isAlive( self ) )
|
||||
{
|
||||
// <origin> exists in the game function, but doesn't have Scr_AddVector return :<
|
||||
// https://discord.com/channels/1091304681822752778/1091317154420375562/1248003248225259622
|
||||
self waittill( "flashbang", /*flash_origin,*/ flash_dist, flash_angle, attacker, team );
|
||||
attacker updateDamageFeedback( self, false, false );
|
||||
}
|
||||
}
|
||||
|
||||
damagefeedback_took_damage( damage, attacker, direction_vec, point, type, modelName, tagName )
|
||||
{
|
||||
if ( !isplayer( attacker ) )
|
||||
if ( !isPlayer( attacker ) )
|
||||
return;
|
||||
legal_bullet_types = [];
|
||||
legal_bullet_types[ "MOD_PISTOL_BULLET" ] = true;
|
||||
@ -108,7 +126,7 @@ updateDamageFeedback( attacked, kill, headshot )
|
||||
|
||||
updateDamageFeedbackSnd()
|
||||
{
|
||||
if ( getDvar( "snd_hitsoundDisabled" ) == "1" )
|
||||
if( !SoundHitEffectHasEnabled() )
|
||||
return;
|
||||
|
||||
if ( !isPlayer( self ) )
|
||||
@ -120,7 +138,7 @@ updateDamageFeedbackSnd()
|
||||
|
||||
updateDamageFeedbackHUD( attacked, kill, headshot )
|
||||
{
|
||||
if ( getDvar( "cg_drawDamageFeedbackOption" ) == "0" )
|
||||
if( !HitMarkerHasEnabled() )
|
||||
return;
|
||||
|
||||
if ( !isPlayer( self ) )
|
||||
@ -156,3 +174,42 @@ updateDamageFeedbackHUD( attacked, kill, headshot )
|
||||
self.hud_damagefeedback.y = 25 - int( offset );
|
||||
self.hud_damagefeedback_headshot.y = 25 - int( offset );
|
||||
}
|
||||
|
||||
SoundHitEffectHasEnabled()
|
||||
{
|
||||
return getDvarInt( "snd_hitsoundDisabled" ) == 0;
|
||||
}
|
||||
|
||||
HitMarkerHasEnabled()
|
||||
{
|
||||
return getDvarInt( "cg_drawDamageFeedbackOption" ) == 1;
|
||||
}
|
||||
|
||||
AddDamageFunction( function )
|
||||
{
|
||||
func = [];
|
||||
func[ "function" ] = function;
|
||||
|
||||
level.damagefeedback_funcs[ level.damagefeedback_funcs.size ] = func;
|
||||
}
|
||||
|
||||
RemoveDamageFunction( function )
|
||||
{
|
||||
new_damagefeedback_funcs = [];
|
||||
|
||||
for ( i = 0; i < level.damagefeedback_funcs.size; i++ )
|
||||
{
|
||||
func_array = level.damagefeedback_funcs[ i ];
|
||||
if ( func_array[ "function" ] == function )
|
||||
continue;
|
||||
|
||||
new_damagefeedback_funcs[ new_damagefeedback_funcs.size ] = func_array;
|
||||
}
|
||||
|
||||
level.damagefeedback_funcs = new_damagefeedback_funcs;
|
||||
}
|
||||
|
||||
GetDamageFunctionSize()
|
||||
{
|
||||
return level.damagefeedback_funcs.size;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user