Life State Notifier v1.0.1
Требования:
dhooks
Игры:
CSS:OB, CSS:34.
Код
/**
* @note void CBasePlayer::SharedSpawn()
* @note Вызывается до `item_pickup`/`SDKHook_WeaponEquip`/`player_spawn`, когда оружие/бронь ещё не выданы, но они могут быть, если остались с прошлого раунда.
*/
forward void CS_OnPlayerSpawnPre(int client);
/**
* Погиб / перемещён в наблюдатели / покинул сервер.
* @note `player_death` недостаточно, т.к. не вызывается после взрыва бомбы и `ChangeClientTeam(client, 1)`.
* @note `IsClientInGame` может быть `false`.
*/
forward void CS_OnPlayerDied(int client);
#if defined LIFE_STATE_NOTIFIER1
public void CS_OnPlayerSpawnPre(int client) { LIFE_STATE_NOTIFIER1(client); }
public void CS_OnPlayerDied(int client) { LIFE_STATE_NOTIFIER1(client); }
#elseif defined LIFE_STATE_NOTIFIER2
public void CS_OnPlayerSpawnPre(int client) { LIFE_STATE_NOTIFIER2(client, true); }
public void CS_OnPlayerDied(int client) { LIFE_STATE_NOTIFIER2(client, false); }
#endif
/*
Если хочется ОДИН callback (для удобства), есть два варианта:
// 1
#define LIFE_STATE_NOTIFIER1 OnClientLifeStateChanged
#include <life_state_notifier>
void OnClientLifeStateChanged(int client)
{
}
// 2
#define LIFE_STATE_NOTIFIER2 OnClientLifeStateChanged
#include <life_state_notifier>
void OnClientLifeStateChanged(int client, bool alive)
{
}
*/