Pvz. tokį kodą
Code: Select all
new bool:Alive[33]; OnSpawn(client) Alive[client] = bool:is_user_alive(client); OnKilled(client) Alive[client] = bool:is_user_alive(client); OnPreThink(client){ if (!Alive[client]) return; // Do stuff}
Code: Select all
#define SetPlayerBit(%1,%2) (%1 |= (1 << (%2 & 31)))#define ResetPlayerBit(%1,%2) (%1 &= ~(1 << (%2 & 31)))#define GetPlayerBit(%1,%2) (%1 & (1 << (%2 & 31))) new Alive; OnSpawn(client) is_user_alive(client) ? SetPlayerBit(Alive, client) : ResetPlayerBit(Alive, client); OnKilled(client) is_user_alive(client) ? SetPlayerBit(Alive, client) : ResetPlayerBit(Alive, client); OnPreThink(client){ if (!GetPlayerBit(Alive, client)) return; // Do stuff}
Šias „funkcijas“ patarčiau nusikopijuoti į savo plugin'us arba įsidėti į naują include failą:
Code: Select all
#define SetPlayerBit(%1,%2) (%1 |= (1 << (%2 & 31)))#define ResetPlayerBit(%1,%2) (%1 &= ~(1 << (%2 & 31)))#define GetPlayerBit(%1,%2) (%1 & (1 << (%2 & 31)))
Code: Select all
new Alive;new Vip;
Code: Select all
if (get_user_flags(client) & ADMIN_LEVEL_H) SetPlayerBit(Vip, client);
Code: Select all
user_kill(client);ResetPlayerBit(Alive, client);