Witam. Od pewnego czasu borykam się z problemem występujących na serwerze lagów/ścinek. Mają one miejsce najczęściej, gdy ktoś jest zabijany. (np. celuję w typa, ma już paść i nagle pojawia się lag, po którego końcu owy gracz ginie, zabity przeze mnie. - przed chwilą lag miał miejsce tuż przed wygraniem rundy przez CS około 4-5sek.) Wyrzuciłem jeden plugin, który wydawał mi się odpowiedzialny za to zamieszanie i jednak okazało się to nietrafione.
Oto moje plugins.ini
amxbans_core.amxx debug ; amxbans_main.amxx debug ; admin.amxx ; admin base (required for any admin-related) ;admin_sql.amxx ; admin base - SQL version (comment admin.amxx) ; Basic admincmd.amxx ; basic admin console commands adminhelp.amxx ; help command for admin console commands adminslots.amxx ; slot reservation multilingual.amxx ; Multi-Lingual management ; Menus menufront.amxx ; front-end for admin menus cmdmenu.amxx ; command menu (speech, settings) plmenu.amxx ; players menu (kick, ban, client cmds.) ;telemenu.amxx ; teleport menu (Fun Module required!) mapsmenu.amxx ; maps menu (vote, changelevel) pluginmenu.amxx ; Menus for commands/cvars organized by plugin ; Chat / Messages adminchat.amxx ; console chat commands antiflood.amxx ; prevent clients from chat-flooding the server scrollmsg.amxx ; displays a scrolling message imessage.amxx ; displays information messages adminvote.amxx ; vote commands ; Map related nextmap.amxx ; displays next map in mapcycle ;mapchooser.amxx ; allows to vote for next map timeleft.amxx ; displays time left on map ; Configuration pausecfg.amxx ; allows to pause and unpause some plugins statscfg.amxx ; allows to manage stats plugins via menu and commands ; Counter-Strike restmenu.amxx ; restrict weapons menu statsx.amxx ; stats on death or round end (CSX Module required!) ;miscstats.amxx ; bunch of events announcement for Counter-Strike ;stats_logging.amxx ; weapons stats logging (CSX Module required!) ; Enable to use AMX Mod plugins ;amxmod_compat.amxx ; AMX Mod backwards compatibility layer ; Custom - Add 3rd party plugins here ;PLUGINY DODATKOWE: bf2rank.amxx debug ; - bf2 mod Admin_Screen3v15.amxx ; - screeny luciaHallucination.amxx ; - halina admin_spec_esp.amxx ; - admin esp hpk.amxx ; - wywalanie za ping ;wynik.amxx ; - pokazywanie wygranych rund ( wydaje mi się, że ten plugin robi te ścinki) ad_manager_array.amxx ; - reklamy na sayu afkbombtransfer.amxx ; - przekazywanie paki od AFKa show_ip.amxx ; - amx_ip extreme_bancfg2.amxx ; - ban na config raty.amxx ; - wymuszanie rat i interpu auto_restart_knives.amxx ; - rozgrzewka na noże c4timer.amxx ; - licznik C4 abd.amxx ; - pokazywanie obrażeń ptb.amxx ; - wyrównywanie teamów parachute.amxx ; - spadochron adminlisten.amxx ; - admin widzi wszystko swear_replacement.amxx ; - cenzura admin_freelook.amxx ; - admin widzi z all kamer auto_reload.amxx ; - przeładowana broń w nowej rundzie simple_redirect.amxx ; - przekierowanie sam.amxx ; - rezerwacja nicków
Poniżej podaję kod do pluginu wynik.amxx - gdyby ktoś mógł uporządkować kod jeśli jest niechlujnie poskładany (to nie mój plugin)
/* Wynik by MaKeL v 1.1 */ #include <amxmodx> #define PLUGIN "Wynik" #define VERSION "1.1" #define AUTHOR "MaKeL" #define MAXSLOTS 32 enum Color { YELLOW = 1, // Żółty GREEN, // Zielony TEAM_COLOR, // Kolor dla Temu GREY, // Szary RED, // Czerwony BLUE, // Niebieski } new TeamInfo; new SayText; new MaxSlots; new TeamName[][] = { "", "TERRORIST", "CT", "SPECTATOR" } new CT = 0 new TT = 0 public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_event("TeamScore","end_round","a"); register_event( "TextMsg", "Restore", "a", "2&#Game_will_restart_in" ); register_event("TextMsg", "Restore", "a", "2&#Game_C") register_event( "HLTV","Nowa_Runda","a","1=0","2=0"); TeamInfo = get_user_msgid("TeamInfo"); SayText = get_user_msgid("SayText"); MaxSlots = get_maxplayers(); } public Restore() { CT=0; TT=0; } public Nowa_Runda() { if(CT == TT) { ColorChat(0, GREY, "Remis ^x01%d : ^x01%d",CT,TT); } if(CT > TT) { ColorChat(0, BLUE, "Antyterrorysci ^x04prowadza ^x01%d : ^x01%d",CT,TT); } if(CT <TT) { ColorChat(0, RED, "Terrorysci ^x04prowadza ^x01%d : ^x01%d",TT,CT); } } public end_round() { new teamname[3],score; read_data(1,teamname,2); score=read_data(2); if(equal(teamname,"CT")) CT=score; else TT=score; } public ColorChat(id, Color:type, const msg[], {Float,Sql,Result,_}:...) { static message[256]; switch(type) { case YELLOW: // Yellow { message[0] = 0x01; } case GREEN: // Green { message[0] = 0x04; } default: // White, Red, Blue { message[0] = 0x03; } } vformat(message[1], 251, msg, 4); // Make sure message is not longer than 192 character. Will crash the server. message[192] = '^0'; new team, ColorChange, index, MSG_Type; if(!id) { index = FindPlayer(); MSG_Type = MSG_ALL; } else { MSG_Type = MSG_ONE; index = id; } team = get_user_team(index); if(team==-1) team=3; ColorChange = ColorSelection(index, MSG_Type, type); ShowColorMessage(index, MSG_Type, message); if(ColorChange) { Team_Info(index, MSG_Type, TeamName[team]); } } ShowColorMessage(id, type, message[]) { message_begin(type, SayText, _, id); write_byte(id) write_string(message); message_end(); } Team_Info(id, type, team[]) { message_begin(type, TeamInfo, _, id); write_byte(id); write_string(team); message_end(); return 1; } ColorSelection(index, type, Color:Type) { switch(Type) { case RED: { return Team_Info(index, type, TeamName[1]); } case BLUE: { return Team_Info(index, type, TeamName[2]); } case GREY: { return Team_Info(index, type, TeamName[0]); } } return 0; } FindPlayer() { new i = 0; while(i < MaxSlots) { if(is_user_connected(i++)) return i; } return 0; }
Jak ktoś ma jakieś pomysły to proszę o pomoc. Z góry dziękuję i pozdrawiam.