Fix client_death forward called on kill command if sent by a spectator (#404)
This commit is contained in:
parent
38b8dc338d
commit
c27bfcd7fe
|
@ -125,17 +125,27 @@ const char* get_localinfo( const char* name , const char* def = 0 )
|
|||
return b;
|
||||
}
|
||||
|
||||
static bool ClientKill_wasAlive;
|
||||
|
||||
void ClientKill(edict_t *pEntity)
|
||||
{
|
||||
CPlayer *pPlayer = GET_PLAYER_POINTER(pEntity);
|
||||
ClientKill_wasAlive = pPlayer->IsAlive();
|
||||
|
||||
RETURN_META(MRES_IGNORED);
|
||||
}
|
||||
|
||||
void ClientKill_Post(edict_t *pEntity)
|
||||
{
|
||||
CPlayer *pPlayer = GET_PLAYER_POINTER(pEntity);
|
||||
if ( pPlayer->IsAlive())
|
||||
RETURN_META(MRES_IGNORED);
|
||||
|
||||
MF_ExecuteForward( iFDamage,static_cast<cell>(pPlayer->index), static_cast<cell>(pPlayer->index) ,
|
||||
static_cast<cell>(0), static_cast<cell>(0), static_cast<cell>(0), static_cast<cell>(0) ); // he would
|
||||
pPlayer->saveKill(pPlayer,0,0,0);
|
||||
MF_ExecuteForward( iFDeath,static_cast<cell>(pPlayer->index), static_cast<cell>(pPlayer->index),
|
||||
static_cast<cell>(0), static_cast<cell>(0), static_cast<cell>(0) );
|
||||
if (ClientKill_wasAlive && !pPlayer->IsAlive())
|
||||
{
|
||||
MF_ExecuteForward(iFDamage, static_cast<cell>(pPlayer->index), static_cast<cell>(pPlayer->index),
|
||||
static_cast<cell>(0), static_cast<cell>(0), static_cast<cell>(0), static_cast<cell>(0)); // he would
|
||||
pPlayer->saveKill(pPlayer, 0, 0, 0);
|
||||
MF_ExecuteForward(iFDeath, static_cast<cell>(pPlayer->index), static_cast<cell>(pPlayer->index),
|
||||
static_cast<cell>(0), static_cast<cell>(0), static_cast<cell>(0));
|
||||
}
|
||||
|
||||
RETURN_META(MRES_IGNORED);
|
||||
}
|
||||
|
|
|
@ -119,7 +119,7 @@
|
|||
// #define FN_ResetGlobalState ResetGlobalState /* pfnResetGlobalState() */
|
||||
// #define FN_ClientConnect ClientConnect /* pfnClientConnect() (wd) Client has connected */
|
||||
#define FN_ClientDisconnect ClientDisconnect /* pfnClientDisconnect() (wd) Player has left the game */
|
||||
// #define FN_ClientKill ClientKill /* pfnClientKill() (wd) Player has typed "kill" */
|
||||
#define FN_ClientKill ClientKill /* pfnClientKill() (wd) Player has typed "kill" */
|
||||
// #define FN_ClientPutInServer ClientPutInServer /* pfnClientPutInServer() (wd) Client is entering the game */
|
||||
// #define FN_ClientCommand ClientCommand /* pfnClientCommand() (wd) Player has sent a command (typed or from a bind) */
|
||||
// #define FN_ClientUserInfoChanged ClientUserInfoChanged /* pfnClientUserInfoChanged() (wd) Client has updated their setinfo structure */
|
||||
|
|
Loading…
Reference in New Issue
Block a user