Added crosshair hitmarker

This commit is contained in:
Kamay Xutax 2024-09-11 09:47:55 +02:00
parent 52b452c60b
commit 097e18db87
3 changed files with 53 additions and 7 deletions

View file

@ -2532,7 +2532,7 @@ void C_CSPlayer::FireGameEvent( IGameEvent* event )
V_sprintf_safe( buffer_armor,
" and \x7"
"FF0000%i \x7"
"FFFFFFarmor.",
"FFFFFFarmor damage.",
armor_damages );
}
else
@ -2544,12 +2544,14 @@ void C_CSPlayer::FireGameEvent( IGameEvent* event )
hudChat->Printf( CHAT_FILTER_NONE,
"\7FFFFFFYou hit \x7"
"FF00FF%s\x7"
"FFFFFF with: \x7"
"FFFFFF with \x7"
"FF0000%i \x7"
"FFFFFFhealth%s",
"FFFFFFhealth damage%s",
player->GetPlayerName(),
health_damages,
buffer_armor );
m_bHasHitPlayer = true;
}
}
}

View file

@ -428,6 +428,7 @@ private:
QAngle m_angRenderAngles;
bool m_bIsInsideLagCompensationContext;
bool m_bHasHitPlayer;
};
C_CSPlayer* GetLocalOrInEyeCSPlayer( void );

View file

@ -13,7 +13,7 @@
#include "ammodef.h"
#include "cs_gamerules.h"
#define ALLOW_WEAPON_SPREAD_DISPLAY 0
#define ALLOW_WEAPON_SPREAD_DISPLAY 1
#if defined( CLIENT_DLL )
@ -38,7 +38,7 @@
#endif
ConVar weapon_accuracy_model( "weapon_accuracy_model", "1", FCVAR_REPLICATED );
ConVar weapon_accuracy_model( "weapon_accuracy_model", "0", FCVAR_REPLICATED );
// ----------------------------------------------------------------------------- //
@ -331,8 +331,8 @@ LINK_ENTITY_TO_CLASS( weapon_cs_base, CWeaponCSBase );
ConVar cl_crosshaircolor_b( "cl_crosshaircolor_b", "50", FCVAR_CLIENTDLL | FCVAR_ARCHIVE );
#if ALLOW_WEAPON_SPREAD_DISPLAY
ConVar weapon_debug_spread_show( "weapon_debug_spread_show", "0", FCVAR_CLIENTDLL | FCVAR_DEVELOPMENTONLY, "Enables display of weapon accuracy; 1: show accuracy box, 2: show box with recoil offset" );
ConVar weapon_debug_spread_gap( "weapon_debug_spread_gap", "0.67", FCVAR_CLIENTDLL | FCVAR_DEVELOPMENTONLY );
ConVar weapon_debug_spread_show( "weapon_debug_spread_show", "0", FCVAR_CLIENTDLL, "Enables display of weapon accuracy; 1: show accuracy box, 2: show box with recoil offset" );
ConVar weapon_debug_spread_gap( "weapon_debug_spread_gap", "0.67", FCVAR_CLIENTDLL );
#endif
// [paquin] make sure crosshair scales independent of frame rate
@ -1230,6 +1230,49 @@ void CWeaponCSBase::DefaultTouch(CBaseEntity *pOther)
int y1 = y0 + iBarThickness;
DrawCrosshairRect( x0, y0, x1, y1, bAdditive );
}
static float flDisplayCurrentTime = 0.0f;
static float flDisplayTime = 1.0F;
if ( pPlayer->m_bHasHitPlayer )
{
flDisplayCurrentTime = gpGlobals->curtime + flDisplayTime;
pPlayer->m_bHasHitPlayer = false;
}
if ( flDisplayCurrentTime >= gpGlobals->curtime )
{
float flAlpha = ( flDisplayCurrentTime - gpGlobals->curtime ) / flDisplayTime;
int tocenter = 10;
int initpos = 16;
initpos += iCrosshairDistance * 2;
tocenter += iCrosshairDistance * 2;
float oldAlphaMultiplier = vgui::surface()->DrawGetAlphaMultiplier();
vgui::surface()->DrawSetColor( r, g, b, int(flAlpha * 255.0f) );
for ( int i = -2; i < 2; i++ )
{
vgui::surface()->DrawLine( iCenterX - initpos - i,
iCenterY - initpos - i,
iCenterX - tocenter - i,
iCenterY - tocenter - i );
vgui::surface()->DrawLine( iCenterX + initpos + i,
iCenterY + initpos + i,
iCenterX + tocenter + i,
iCenterY + tocenter + i );
vgui::surface()->DrawLine( iCenterX + initpos + i,
iCenterY - initpos - i,
iCenterX + tocenter + i,
iCenterY - tocenter - i );
vgui::surface()->DrawLine( iCenterX - initpos - i,
iCenterY + initpos + i,
iCenterX - tocenter - i,
iCenterY + tocenter + i );
}
}
}
#if ALLOW_WEAPON_SPREAD_DISPLAY