It's way easier than you think, What I would do tbh is just replacing updatedamagefeedback func from
maps\mp\gametypes\_damagefeedback.gsc
and just add one line to change the damage color.
to achieve this just add this in your file:
main()
{
replaceFunc(maps\mp\gametypes\_damagefeedback::updatedamagefeedback, ::updatedamagefeedback);
}
updatedamagefeedback( mod, inflictor, perkfeedback )
{
if ( !isplayer( self ) || sessionmodeiszombiesgame() )
return;
if ( isdefined( mod ) && mod != "MOD_CRUSH" && mod != "MOD_GRENADE_SPLASH" && mod != "MOD_HIT_BY_OBJECT" )
{
if ( isdefined( inflictor ) && isdefined( inflictor.soundmod ) )
{
switch ( inflictor.soundmod )
{
case "player":
self playlocalsound( "mpl_hit_alert" );
break;
case "heli":
self thread playhitsound( mod, "mpl_hit_alert_air" );
break;
case "hpm":
self thread playhitsound( mod, "mpl_hit_alert_hpm" );
break;
case "taser_spike":
self thread playhitsound( mod, "mpl_hit_alert_taser_spike" );
break;
case "dog":
case "straferun":
break;
case "default_loud":
self thread playhitsound( mod, "mpl_hit_heli_gunner" );
break;
default:
self thread playhitsound( mod, "mpl_hit_alert_low" );
break;
}
}
else
self playlocalsound( "mpl_hit_alert_low" );
}
if ( isdefined( perkfeedback ) )
{
switch ( perkfeedback )
{
case "flakjacket":
self.hud_damagefeedback setshader( "damage_feedback_flak", 24, 48 );
break;
case "tacticalMask":
self.hud_damagefeedback setshader( "damage_feedback_tac", 24, 48 );
break;
}
}
else
self.hud_damagefeedback setshader( "damage_feedback", 24, 48 );
self.hud_damagefeedback.color = ( 1, 0, 0 );
self.hud_damagefeedback.alpha = 1;
self.hud_damagefeedback fadeovertime( 1 );
self.hud_damagefeedback.alpha = 0;
}