#include <amxmodx> #include <amxmisc> #include <hamsandwich> #include <cstrike> #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_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(iRet == 0 && 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 fwPlayerFinished(id) { if( is_user_alive( id ) && cs_get_user_team( id ) == CS_TEAM_CT ){ 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); else ArrayDeleteItem( arKolejka , 0 ); } } public wyswietl() { new msg[512]; new bool: bNone = 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); bNone = false; } if(bNone) 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; }
lecz on działa na zasadzie tego pluginu: http://amxx.pl/topic...a-staty-i-rank/
a ja chciałbym aby działał na zasadzie tego: http://amxx.pl/topic...r-save-records/
Da ktoś rade go przerobić ?