#include #include #include #define PLUGIN "Info po smierci" #define VERSION "1.0" #define AUTHOR "DarkGL" #define MAX 32 #define IsPlayer(%1) (1<=%1<=32) new bool:bCan[MAX+1] new pTime new i[33] public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) pTime = register_cvar("info_smierci_czas","5"); register_event("DeathMsg", "DeathMsg", "a") register_clcmd("say","sayHandle") register_clcmd("say_team","sayHandle") register_forward(FM_Voice_SetClientListening, "Forward_SetClientListening"); } public sayHandle(id){ if(!bCan[id]){ return PLUGIN_CONTINUE; } new szTmp[128],szPrint[190],szName[64]; read_argv(1,szTmp,charsmax(szTmp)); trim(szTmp) get_user_name(id,szName,charsmax(szName)); formatex(szPrint,charsmax(szPrint),"[Info od %s] ^x01 %s",szName,szTmp); ColorChat(id,GREEN,szPrint); for(new i = 1;i<=MAX;i++){ if(!is_user_alive(i) || get_user_team(i) != get_user_team(id)){ continue; } ColorChat(i,GREEN,szPrint); } bCan[id] = false; return PLUGIN_HANDLED; } public DeathMsg() { new vid = read_data(2) i[vid] = get_pcvar_num(pTime) set_task(1.0,"odlicz",vid,_,_,"b") if(IsPlayer(vid) && !is_user_alive(vid)){ bCan[vid] = true; remove_task(vid); set_task(float(get_pcvar_num(pTime)),"stopInfo",vid) } } public odlicz(id) { set_hudmessage(255, 0, 0, -1.0, 0.2, 0, 6.0, 1.0) show_hudmessage(id, "Masz %d sec na powiadomienie druzyny.",i[id]) i[id]-- if(i[id] <= 0) { if(task_exists(id)) { remove_task(id) } } } public client_connect(id){ bCan[id] = false; i[id] = 0; } public client_disconnect(id) { if(task_exists(id)) { remove_task(id) } } public stopInfo(id){ if(is_user_connected(id)){ client_cmd(id,"-voicerecord") } bCan[id] = false; } public Forward_SetClientListening( iReceiver, iSender, bool:bListen ) { if(!is_user_connected(iSender) || !bCan[iSender] || get_user_team(iSender) != get_user_team(iReceiver) ){ return FMRES_IGNORED; } engfunc(EngFunc_SetClientListening, iReceiver, iSender, true); forward_return(FMV_CELL, true) return FMRES_SUPERCEDE }