Dark mi pisał kiedyś taki plugin
#include <amxmodx>
#include <hamsandwich>
#include <fakemeta_util>
#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "DarkGL"
#define MAX 32
new bool:gFirst[MAX+1]
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("DeathMsg","smierc","a")
RegisterHam(Ham_Spawn,"player","fwh_spawned",1)
register_event("TeamInfo","team_assign","a")
}
public getLife(id){
if(is_user_alive(id)){
return PLUGIN_CONTINUE;
}
ExecuteHamB(Ham_CS_RoundRespawn, id);
return PLUGIN_CONTINUE;
}
public client_connect(id){
gFirst[id] = true;
}
public fwh_spawned(id){
if(!is_user_alive(id)){
return HAM_IGNORED;
}
fm_give_item(id, "weapon_awp");
fm_give_item(id, "ammo_338magnum");
fm_give_item(id, "ammo_338magnum");
fm_give_item(id, "ammo_338magnum");
fm_give_item(id, "weapon_knife");
return HAM_IGNORED;
}
public smierc(){
set_task(3.0,"spawn",read_data(2))
}
public spawn(id){
if(is_user_alive(id) || (get_user_team(id) != 1 && get_user_team(id) != 2)){
return PLUGIN_CONTINUE;
}
ExecuteHamB(Ham_CS_RoundRespawn, id)
return PLUGIN_CONTINUE;
}
public team_assign()
{
static old_team[33]
new tid
new id = read_data(1)
new Team[32]
read_data(2,Team,31) //UNASSIGNED
if((equal(Team,"TERRORIST") || equal(Team,"CT")) && gFirst[id]){
gFirst[id] = false;
set_task(3.0,"getLife",id);
}
if(equal(Team,"UNASSIGNED")) tid = 0
else if(equal(Team,"TERRORIST")) tid = 1
else if(equal(Team,"CT")) tid = 2
else if(equal(Team,"SPECTATOR")) tid = 3
if(old_team[id]==tid) return PLUGIN_CONTINUE //jesli druzyna sie nie zmienila to przerywamy event
if(old_team[id] == 3 && (tid == 1 || tid == 2)){
if(task_exists(id)){
remove_task(id);
}
set_task(3.0,"getLife",id);
}
old_team[id] = tid
return PLUGIN_CONTINUE
}