Hi!
I've tryed to make a plugin that will kick a player if he was dead for 60 seconds, but I have some problems with it. Here is my code:
PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#pragma semicolon 1
#define PLUGIN_NAME "Dead Kicker"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "LaineN"
new bool:gbAlive[33];
new gDeadTime[33];
new gMaxPlayers;
public plugin_init()
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
RegisterHam(Ham_Spawn, "player", "fwd_PlayerSpawn", 1);
register_event("DeathMsg", "event_PlayerDeath", "a");
set_task(5.0, "TaskCheckPlayers", _, _, _, "b");
gMaxPlayers = get_maxplayers();
}
public client_putinserver(id)
{
gbAlive[id] = false;
gDeadTime[id] = 0;
}
public client_disconnect(id)
{
gbAlive[id] = false;
}
public fwd_PlayerSpawn(id)
{
gbAlive[id] = true;
}
public event_PlayerDeath()
{
new id = read_data(2);
gbAlive[id] = false;
}
public TaskCheckPlayers()
{
if ( get_playersnum() > 2 )
{
for ( new id = 1; id <= gMaxPlayers; id++ )
{
if ( access(id, ADMIN_IMMUNITY)
|| is_user_hltv(id) ) continue;
if ( !gbAlive[id] )
{
gDeadTime[id] += 5;
CheckDeadTime(id);
}
else
{
if ( gDeadTime[id] > 0 ) gDeadTime[id] = 0;
}
}
}
}
CheckDeadTime(id)
{
if ( gDeadTime[id] >= 60 )
{
new szName[32];
get_user_name(id, szName, sizeof(szName) - 1);
client_print(0, print_chat, "%s was kicked for being dead longer than 60 seconds!", szName);
server_cmd("kick #%i ^"You were kicked for being dead longer than 60 seconds^"", get_user_userid(id));
}
}
After 60 seconds this message starts to print every 5 seconds:
Code:
was kicked for being dead longer than 60 seconds!
Even if you are dead, or alive.
Someone see some faults in the code?
__________________