Mam problem.Na serwerze Cod mam w folderze "scripting/include" folder "amxbans".Posiadam też kilka innych serwerów ale tam nie ma takiego folderu jak amxbans.
Przez plik "check_player.inl" (znajduje się właśnie w folderze amxbans) serwer kilka razy dziennie craschuje.Podmienilem te pliki na inne z ...googl pobrane i dalej ten sam log się pokazuje.
Wersja amxmodx jest 1.5.1 bo takiego tego CoD-a kupilem.Na samym początku było wszystko OK ale teraz od jakiegoś czasu mam ten problem i sam nie mogę sobie poradzić.
Logi:
"L 10/23/2013 - 00:28:07: Start of error session. L 10/23/2013 - 00:28:07: Info (map "de_cbble") (file "addons/amxmodx/logs/error_20131023.log") L 10/23/2013 - 00:28:07: [MySQL] Thread worker was unable to start. L 10/23/2013 - 00:28:07: [AMXX] Displaying debug trace (plugin "amxbans_main.amxx") L 10/23/2013 - 00:28:07: [AMXX] Run time error 10: native error (native "SQL_ThreadQuery") L 10/23/2013 - 00:28:07: [AMXX] [0] check_player.inl::add_kick_to_db (line 232) L 10/23/2013 - 00:28:07: [AMXX] [1] check_player.inl::check_player_ (line 196)"
Kod pliku include check_player.inl :
Spoiler
public prebanned_check(id)
{
if(is_user_bot(id))
return PLUGIN_HANDLED
new player_steamid[32], player_ip[20]
get_user_authid(id, player_steamid, 31)
get_user_ip(id, player_ip, 19, 1)
new query[4096]
new data[1]
format(query, 4096, "SELECT ban_created,admin_nick FROM `%s` WHERE ( player_id='%s' AND ban_type='S' ) OR ( player_ip='%s' AND ban_type='SI' )",tbl_banhist, player_steamid, player_ip)
data[0] = id
SQL_ThreadQuery(g_SqlX, "prebanned_check_", query, data, 1)
return PLUGIN_HANDLED
}
public prebanned_check_(failstate, Handle:query, error[], errnum, data[], size)
{
new id = data[0]
if (failstate)
{
new szQuery[256]
MySqlX_ThreadError( szQuery, error, errnum, failstate, 16 )
}
else
{
if(!SQL_NumResults(query))
{
return PLUGIN_HANDLED
}
else
{
new admin_nick[32]
new current_time_int, ban_count, ban_created, banned_days_ago
current_time_int = get_systime(0)
new preBanTime = get_pcvar_num(max_time_to_show_preban )
new showAtacbans = get_pcvar_num(show_atacbans)
while (SQL_MoreResults(query))
{
ban_created = SQL_ReadResult(query, 0)
SQL_ReadResult(query, 1, admin_nick, 31)
/* Check how many days have gone since the ban was created */
banned_days_ago = (current_time_int - ban_created) / 86400
if ( ( banned_days_ago > preBanTime ) || ( containi(admin_nick, "[ATAC]") != -1 && showAtacbans == 0 ) )
{
if ( get_pcvar_num(amxbans_debug) == 1 && ( banned_days_ago > preBanTime ))
log_amx("To OLD ban: %i > %d", banned_days_ago, preBanTime )
if ( get_pcvar_num(amxbans_debug) == 1 && ( containi(admin_nick, "[ATAC]") != -1 && showAtacbans == 0 ))
log_amx("Showing atacbans is off, admin: %s", admin_nick)
}
else
{
ban_count++
if ( get_pcvar_num(amxbans_debug) == 1 )
log_amx("PreBan count: %i < %d Total:%i",banned_days_ago, preBanTime, ban_count )
}
SQL_NextRow(query)
}
new name[32], player_steamid[32]
get_user_authid(id, player_steamid, 31)
get_user_name(id, name, 31)
if( !(get_user_flags(id)&ADMIN_IMMUNITY) && !(is_user_bot(id)) && !(equal("", player_steamid)) && (ban_count >= get_pcvar_num(show_prebanned_num)) )
server_cmd("amx_chat %L", LANG_PLAYER, "PLAYER_BANNED_BEFORE", name, player_steamid, ban_count)
}
}
return PLUGIN_HANDLED
}
/*************************************************************************/
public check_player(id)
{
new player_steamid[32], player_ip[20]
get_user_authid(id, player_steamid, 31)
get_user_ip(id, player_ip, 19, 1)
new query[4096]
new data[1]
format(query, 4095, "SELECT bid,ban_created,ban_length,ban_reason,admin_nick,admin_id,admin_ip,player_nick,player_id,player_ip,server_name,server_ip,ban_type FROM `%s` WHERE ( player_id='%s' AND ban_type='S' ) OR ( player_ip='%s' AND ban_type='SI' )",tbl_bans, player_steamid, player_ip)
data[0] = id
SQL_ThreadQuery(g_SqlX, "check_player_", query, data, 1)
return PLUGIN_HANDLED
}
public check_player_(failstate, Handle:query, error[], errnum, data[], size)
{
new id = data[0]
if (failstate)
{
new szQuery[256]
MySqlX_ThreadError( szQuery, error, errnum, failstate, 17 )
}
else
{
if(!SQL_NumResults(query))
{
return PLUGIN_HANDLED
}
else
{
new ban_length[50], ban_reason[255], admin_nick[100],admin_steamid[50],admin_ip[30],ban_type[4]
new player_nick[50],player_steamid[50],player_ip[30],server_name[100],server_ip[30]
new bid = SQL_ReadResult(query, 0)
new ban_created = SQL_ReadResult(query, 1)
SQL_ReadResult(query, 2, ban_length, 49)
SQL_ReadResult(query, 3, ban_reason, 254)
SQL_ReadResult(query, 4, admin_nick, 99)
SQL_ReadResult(query, 5, admin_steamid, 49)
SQL_ReadResult(query, 6, admin_ip, 29)
SQL_ReadResult(query, 7, player_nick, 49)
SQL_ReadResult(query, 8, player_steamid, 49)
SQL_ReadResult(query, 9, player_ip, 29)
SQL_ReadResult(query, 10, server_name, 99)
SQL_ReadResult(query, 11, server_ip, 29)
SQL_ReadResult(query, 12, ban_type, 3)
if ( get_pcvar_num(amxbans_debug) == 1 )
log_amx("^nbid: %d ^nwhen: %d ^nlenght: %s ^nreason: %s ^nadmin: %s ^nadminsteamID: %s ^nPlayername %s ^nserver: %s ^nserverip: %s ^nbantype: %s",bid,ban_created,ban_length,ban_reason,admin_nick,admin_steamid,player_nick,server_name,server_ip,ban_type)
new current_time_int = get_systime(0)
new ban_length_int = str_to_num(ban_length) * 60 // in secs
// A ban was found for the connecting player!! Lets see how long it is or if it has expired
if ((ban_length_int == 0) || (ban_created ==0) || (ban_created+ban_length_int > current_time_int))
{
new complain_url[256]
get_pcvar_string(complainurl ,complain_url,255)
client_cmd(id, "echo [AMXBANS] ===============================================")
new show_activity = get_cvar_num("amx_show_activity")
if(get_user_flags(id)&ADMIN_LEVEL_F || id == 0)
show_activity = 1
if (show_activity == 2)
{
client_cmd(id, "echo [AMXBANS] %L",LANG_PLAYER,"MSG_8", admin_nick)
}
if (show_activity == 1)
{
client_cmd(id, "echo [AMXBANS] %L",LANG_PLAYER,"MSG_9")
}
if (ban_length_int==0)
{
client_cmd(id, "echo [AMXBANS] %L",LANG_PLAYER,"MSG_10")
}
else
{
new cTimeLength[128]
new iSecondsLeft = (ban_created + ban_length_int - current_time_int)
get_time_length(id, iSecondsLeft, timeunit_seconds, cTimeLength, 127)
client_cmd(id, "echo [AMXBANS] %L" ,LANG_PLAYER, "MSG_12", cTimeLength)
}
client_cmd(id, "echo [AMXBANS] %L", LANG_PLAYER, "MSG_13", player_nick)
client_cmd(id, "echo [AMXBANS] %L", LANG_PLAYER, "MSG_2", ban_reason)
client_cmd(id, "echo [AMXBANS] %L", LANG_PLAYER, "MSG_7", complain_url)
client_cmd(id, "echo [AMXBANS] %L", LANG_PLAYER, "MSG_4", player_steamid)
client_cmd(id, "echo [AMXBANS] %L", LANG_PLAYER, "MSG_5", player_ip)
client_cmd(id, "echo [AMXBANS] ===============================================")
if ( get_pcvar_num(amxbans_debug) == 1 )
log_amx("[AMXBANS DEBUG] BID:<%d> Player:<%s> <%s> connected and got kicked, because of an active ban", bid, player_nick, player_steamid)
new id_str[3]
num_to_str(id,id_str,3)
if ( get_pcvar_num(amxbans_debug) == 1 )
log_amx("[AMXBANS DEBUG] Delayed Kick-TASK ID1: <%d> ID2: <%s>", id, id_str)
set_task(3.5,"delayed_kick",0,id_str,3)
return PLUGIN_HANDLED
}
else // The ban has expired
{
client_cmd(id, "echo [AMXBANS] %L",LANG_PLAYER,"MSG_11")
new unban_created = get_systime(0)
//make sure there are no single quotes in these 4 vars
replace_all(player_nick, 49, "\", "")
replace_all(player_nick, 49, "'", "´")
replace_all(admin_nick, 99, "\", "")
replace_all(admin_nick, 99, "'", "´")
replace_all(ban_reason, 254, "\", "")
replace_all(ban_reason, 254, "'", "´")
replace_all(server_name, 99, "\", "")
replace_all(server_name, 99, "'", "´")
new query[512]
new data[2]
format(query, 511, "INSERT INTO `%s` (player_id,player_ip,player_nick,admin_id,admin_nick,admin_ip,ban_type,ban_reason,ban_created,ban_length,server_ip,server_name,unban_created,unban_reason,unban_admin_nick) VALUES('%s','%s','%s','%s','%s','%s','%s','%s','%d','%s','%s','%s','%i','Bantime expired','amxbans')",tbl_banhist, player_steamid, player_ip, player_nick, admin_steamid, admin_nick, admin_ip, ban_type, ban_reason, ban_created, ban_length, server_ip, server_name, unban_created)
data[0] = id
data[1] = bid
SQL_ThreadQuery(g_SqlX, "insert_to_banhistory", query, data, 2)
if ( get_pcvar_num(amxbans_debug) == 1 )
log_amx("[AMXBANS DEBUG] PRUNE BAN: INSERT INTO `%s` (VALUES('%s','%s','%s')",tbl_banhist, player_steamid, player_nick, ban_length)
}
}
}
return PLUGIN_HANDLED
}
public insert_to_banhistory(failstate, Handle:query, error[], errnum, data[], size)
{
new id = data[0]
new bid = data[1]
if (failstate)
{
new szQuery[256]
MySqlX_ThreadError( szQuery, error, errnum, failstate, 18 )
}
else
{
new query[512]
new data[1]
format(query, 511,"DELETE FROM `%s` WHERE bid='%d'",tbl_bans, bid)
data[0] = id
SQL_ThreadQuery(g_SqlX, "delete_expired_ban", query, data, 1)
if ( get_pcvar_num(amxbans_debug) == 1 )
log_amx("[AMXBANS DEBUG] PRUNE BAN: DELETE FROM `%s` WHERE bid='%d'",tbl_bans, bid)
}
return PLUGIN_HANDLED
}
public delete_expired_ban(failstate, Handle:query, error[], errnum, data[], size)
{
if (failstate)
{
new szQuery[256]
MySqlX_ThreadError( szQuery, error, errnum, failstate, 19 )
}
}
Bardzo prosił bym o pomoc.
Załączone pliki
-
amxbans.cfg 4,2 KB 8 Ilość pobrań
-
modules.ini 1,13 KB 12 Ilość pobrań
-
plugins.ini 5,08 KB 10 Ilość pobrań
Użytkownik adams35wawa edytował ten post 23.10.2013 12:53