diff --git a/src/core/modules/entities/entities.h b/src/core/modules/entities/entities.h old mode 100644 new mode 100755 index 296caaf86..19a950027 --- a/src/core/modules/entities/entities.h +++ b/src/core/modules/entities/entities.h @@ -96,12 +96,45 @@ class TakeDamageInfoBaseWrapper: public CTakeDamageInfo unsigned int get_attacker() { +#if defined(ENGINE_CSGO) + return (unsigned int)m_CSGOAttacker.m_iClientIndex; +#else return ExcIndexFromBaseHandle(m_hAttacker); +#endif } void set_attacker(unsigned int uiAttacker) { +#if defined(ENGINE_CSGO) + m_CSGOAttacker.m_hHndl = ExcBaseHandleFromIndex(uiAttacker); + m_CSGOAttacker.m_bNeedInit = false; + m_CSGOAttacker.m_bIsWorld = false; + m_CSGOAttacker.m_iClientIndex = (int)uiAttacker; + + IPlayerInfo* pPlayerInfo; + if (PlayerInfoFromIndex(uiAttacker, pPlayerInfo)) + { + m_CSGOAttacker.m_bIsPlayer = true; + + int iTeamIndex = pPlayerInfo->GetTeamIndex(); + m_CSGOAttacker.m_iTeamChecked = iTeamIndex; + m_CSGOAttacker.m_iTeamNum = iTeamIndex; + m_CSGOAttacker.m_iUserId = pPlayerInfo->GetUserID(); + } + else + { + if (uiAttacker == 0) + { + m_CSGOAttacker.m_bIsWorld = true; + } + m_CSGOAttacker.m_bIsPlayer = false; + m_CSGOAttacker.m_iTeamChecked = -1; + m_CSGOAttacker.m_iTeamNum = -1; + m_CSGOAttacker.m_iUserId = -1; + } +#else m_hAttacker = ExcBaseHandleFromIndex(uiAttacker); +#endif } unsigned int get_weapon()