Witam mógłby mi ktoś przerobić tą kolejke, aby była taka, że jeszcze raz może tą osobe zaliczyć do kolejke, bo czasmi to działa, czasami nie i jeszcze, że jak admin slaynie to, żeby go usuneło z kolejki, bo ktoś po prosi bo się zbugował to dalej jest w kolejce
#include <amxmodx> #include <amxmisc> #include <hamsandwich> #include <fakemeta_util> #include <deathrun_stats> #define PLUGIN "Kolejka do TT" #define VERSION "1.0" #define AUTHOR "DarkGL" #define dmg(%1,%2) (ArraySize(arKolejka) > 0 && ArrayGetCell(arKolejka,0) == %2 && get_user_team(%1) == 1) #define dmg2(%1,%2) (ArraySize(arKolejka) > 0 && ArrayGetCell(arKolejka,0) == %1 && get_user_team(%2) == 1) new Array: arKolejka; new kolor; new hud; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) arKolejka = ArrayCreate(1,32); kolor = register_cvar("kolejka_kolorek", "0 255 0"); register_event("HLTV", "event_RoundStart", "a", "1=0", "2=0"); RegisterHam(Ham_TakeDamage, "player", "HamTakeDamage"); RegisterHam(Ham_TraceAttack, "player", "HamTraceAttack"); RegisterHam(Ham_Spawn,"player","HamSpawned",1) register_event("DeathMsg", "DeathMsg", "a", "1=0") hud = CreateHudSyncObj(); set_task(1.0, "wyswietl",.flags = "b"); } public DeathMsg() { new victim = read_data(2) new iRet = iFind(victim); if(iRet != -1){ ArrayDeleteItem(arKolejka,iRet); } if(ArraySize(arKolejka) > 0 && ArrayGetCell(arKolejka,0) == victim){ ArrayDeleteItem(arKolejka,0); if(ArraySize(arKolejka) > 0) fm_set_user_rendering(ArrayGetCell(arKolejka,0), kRenderFxGlowShell, 0, 255, 0, kRenderNormal, 40); } return PLUGIN_HANDLED; } public HamSpawned(id){ if(!is_user_alive(id)) return ; fm_set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderNormal, 40); } public event_RoundStart() { ArrayClear(arKolejka); } public HamTakeDamage(victim, inflictor, attacker) return (dmg(victim, attacker) || dmg2(victim, attacker) || !is_user_connected(attacker)) ? HAM_IGNORED : HAM_SUPERCEDE; public HamTraceAttack(victim, attacker) return (dmg(victim, attacker) || dmg2(victim, attacker) || !is_user_connected(attacker)) ? HAM_IGNORED : HAM_SUPERCEDE; public fwPlayerFinished(id) { new iRet = iFind(id); if(iRet == -1) ArrayPushCell(arKolejka,id); if(is_user_alive(ArrayGetCell(arKolejka,0))) fm_set_user_rendering(ArrayGetCell(arKolejka,0), kRenderFxGlowShell, 0, 255, 0, kRenderNormal, 40); } public wyswietl() { new msg[512]; new bool: pusto = true; new szName[64] for(new i = 0;i<ArraySize(arKolejka);i++){ if(!is_user_alive(ArrayGetCell(arKolejka,i))){ ArrayDeleteItem(arKolejka,i) continue; } get_user_name(ArrayGetCell(arKolejka,i), szName,charsmax(szName)); formatex(msg, 511, "%s%d. %s^n", msg, i+1, szName); pusto = false; } if(pusto) formatex(msg, 511, "Lista jest pusta"); new color[15], rgb[3][4]; get_pcvar_string(kolor, color, 14); parse(color, rgb[0], 3, rgb[1], 3, rgb[2], 3); set_hudmessage(str_to_num(rgb[0]), str_to_num(rgb[1]), str_to_num(rgb[2]), 0.78, 0.3, 0, 6.0, 1.0); ShowSyncHudMsg(0, hud, "Kolejka:^n%s^n^n", msg); } public client_disconnect(id) arClear(id); public client_connect(id) arClear(id); arClear(id){ new iRet = iFind(id); if(iRet == -1) return ; ArrayDeleteItem(arKolejka,iRet) } iFind(id){ for(new i = 0;i<ArraySize(arKolejka);i++){ if(ArrayGetCell(arKolejka,i) == id) return i; } return -1; }