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.


Dodatki SourceMod














