mam problem z pluginem spree, który pokazuje najlepszego gracza rundy - chodzi o to, że dla wszystkich na serwerze - CT, TT i SPEC pokazuje jeden kolor niezależnie od teamu - Czerwony, biały lub niebieski.
Czy jest coś nie tak z tym kodem?
#include <amxmodx> #include <amxmisc> #include <colorchat> #define PLUGIN "Spreeeee!" #define VERSION "0.07" #define AUTHOR "R3X" #define MAX_PLAYERS 32 //#define DEBUG new g_points[MAX_PLAYERS+1][2]; new g_pointsThisRound[MAX_PLAYERS+1][2]; new g_cvarLimit,g_cvarEndShow; public plugin_init(){ register_plugin(PLUGIN, VERSION, AUTHOR); register_event("DeathMsg","onDeath","a"); register_event("TextMsg", "resetAll", "a", "2&#Game_will_restart_in" ); register_event("TextMsg", "resetAll", "a", "2&#Game_C"); register_logevent("onEndRound", 2, "1=Round_End") register_logevent("resetAllThisRound", 2, "1=Round_Start") g_cvarLimit=register_cvar("amx_spree_limit","5"); g_cvarEndShow=register_cvar("amx_endshow","1"); #if defined DEBUG register_concmd("show_points","cmd_show_points",ADMIN_KICK); #endif } reset(id){ g_points[id][0]=0; g_points[id][1]=0; } resetRound(id){ g_pointsThisRound[id][0]=0; g_pointsThisRound[id][1]=0; } public resetAllThisRound(){ for(new i=0;i<=MAX_PLAYERS;i++) resetRound(i); } public resetAll(){ for(new i=0;i<=MAX_PLAYERS;i++) reset(i); } public onEndRound(){ if(get_pcvar_num(g_cvarEndShow)) set_task(0.3,"podsumowanie"); } public podsumowanie(){ new bool:double=false; new id=0; for(new i=1;i<=MAX_PLAYERS;i++){ if(g_pointsThisRound[id][0]==g_pointsThisRound[i][0]){ if(g_pointsThisRound[id][1] == g_pointsThisRound[i][1]){ double=true; } else if(g_pointsThisRound[id][1] < g_pointsThisRound[i][1]){ id=i; double=false; } } else if(g_pointsThisRound[id][0] < g_pointsThisRound[i][0]){ id=i; double=false; } } if(!double && id){ new szNick[33]; get_user_name(id,szNick,32); ColorChat(0, GREEN, "**^x01 Najlepszy gracz rundy to^x03 %s^x01 !",szNick); ColorChat(0, GREEN, "**^x01 Zamordowal^x03 %d^x01 graczy !",g_pointsThisRound[id][0]); ColorChat(0, GREEN, "**^x01 Ustrzelil^x03 %d^x01 headshot'ow !",g_pointsThisRound[id][1]); } } public client_putinserver(id){ reset(id); resetRound(id); } public client_disconnect(id){ reset(id); resetRound(id); } public onDeath(){ new kid=read_data(1); new vid=read_data(2); log_amx("%d->%d",kid,vid); if(!is_user_connected(kid)){ reset(vid); return PLUGIN_CONTINUE; } log_amx("(2)%d->%d",kid,vid); g_points[kid][0]++; g_pointsThisRound[kid][0]++; if(read_data(3)){ g_points[kid][1]++; g_pointsThisRound[kid][1]++; } if(get_pcvar_num(g_cvarLimit)<=0) return PLUGIN_CONTINUE; if(g_points[vid][0]>=get_pcvar_num(g_cvarLimit)){ new szVicNick[33],szKilNick[33]; get_user_name(vid,szVicNick,32); get_user_name(kid,szKilNick,32); ColorChat(0, GREEN, "**^x01 Szalenstwo zabijania^x03 %s^x01 !",szVicNick); ColorChat(0, GREEN, "**^x01 Zabil^x03 %d^x01 graczy w tym^x03 %d^x01 hs'ow !",g_points[vid][0],g_points[vid][1]); ColorChat(0, GREEN, "**^x01 Zatrzymane przez^x03 %s^x01 !",szKilNick); } reset(vid); return PLUGIN_CONTINUE; } #if defined DEBUG public cmd_show_points(id,level,cid){ if( !cmd_access(id, level, cid, 1)) return PLUGIN_HANDLED; client_print(id,print_console,"----------Points------------"); new Players[32]; new playerCount, id2; get_players(Players, playerCount); for ( new i=0; i<playerCount; i++){ id2 = Players[i]; client_print(id,print_console,"[%d] P=%d(%dhs), PTR=%d(%dhs)",id2,g_points[id2][0],g_points[id2][1],g_pointsThisRound[id2][0],g_pointsThisRound[id2][1]) } client_print(id,print_console,"--------------------------"); return PLUGIN_HANDLED; } #endif