Raised This Month: $32 Target: $400
 8% 

Amxbans problem


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
S0X
Junior Member
Join Date: Jan 2014
Old 05-29-2015 , 10:47   Amxbans problem
Reply With Quote #1

Hello!

I edited amxbans cmd_ban.inl file to allow admins with r flag to ban Immunity admins.
All works well, they can ban immunity admins by amxmodmenu and by console.
Also bans goes to amxbans website as marked banned.

But there is also a problem. Ehen immunity admin is banned and kicked by ban,
they can join to server right after ban, but amxbans shows banned. And when i try to ban
immunity admin again, it shows: Player is already banned.
Other players, who are not immunity admins, ban stays and they cant connect under the ban.

I use AmxBans 1.6 GM.

Can anyone help, what i have to change in cmd_ban.inl file that immunity admins also can't connect again when banned?

Here is code of cmd_ban.inl as i can't attach it:

Code:
#if defined _cmdban_included
    #endinput
#endif

#define _cmdban_included

#include <amxmodx>
#include <sqlx>

public cmdMenuBan(id) 
{
    new pid, bantime, bantype[3], banip[22], banname[32], bansteamid[34], banreason[128]
    
    pid = banData[id][banPlayer]
    bantime = banData[id][banTime]
    copy(bantype, 2, banData[id][banType])
    copy(banip, 21, banData[id][banIp])
    copy(banname, 31, banData[id][banName])
    copy(bansteamid, 33, banData[id][banSteamid])
    copy(banreason, 127, banData[id][banReason])
    
    if(get_user_state(pid, PDATA_BEING_BANNED)) 
    {
        return ColorChat(id, RED, "%s %L", PREFIX, id, "BLOCKING_DOUBLEBAN", banname)
    }
    
    add_user_state(pid, PDATA_BEING_BANNED)
    
    if(!get_ban_type(bantype, 127, bansteamid, banip)) 
    {
        log_amx("[AMXBans ERROR cmdMenuBan] Steamid / IP Invalid! Bantype: <%s> | Authid: <%s> | IP: <%s>", bantype, bansteamid, banip)
        return remove_user_state(pid, PDATA_BEING_BANNED)
    }
    
    if(get_pcvar_num(pcvar_debug) >= 2) 
    {
        log_amx("[AMXBans cmdMenuBan %d] %d | %s | %s | %s | %s (%d min)", id, pid, banname, bansteamid, banip, banreason, bantime)
    }
    
    new pquery[512]
    
    if(equal(bantype, "S")) 
    {
        formatex(pquery, 511, "SELECT `player_id` FROM `%s%s` WHERE `player_id` = '%s' AND `ban_type` = 'S' AND `expired` = '0';", g_dbPrefix, TBL_BANS, bansteamid)
        if(get_pcvar_num(pcvar_debug) >= 2)
        {
            log_amx("[AMXBans cmdMenuBan] Banned a player by SteamID")
        }
    } 
    else 
    {
        formatex(pquery, 511, "SELECT `player_ip` FROM `%s%s` WHERE `player_ip` = '%s' AND `ban_type` = 'SI' AND `expired` = '0';", g_dbPrefix, TBL_BANS, banip)
        if(get_pcvar_num(pcvar_debug) >= 2)
        {
            log_amx("[AMXBans cmdMenuBan] Banned a player by IP")
        }
    }
    
    new data[256]
    format_ban_data(data, id, pid, bantime, bantype, banip, banname, bansteamid, banreason)
    
    return SQL_ThreadQuery(g_SqlX, "_cmdMenuBan", pquery, data, 255)
}

public _cmdMenuBan(failstate, Handle:query, const error[], errornum, const data[], size, Float:queuetime)
{
    new id, pid, bantime, nums[3], bantype[3], banip[22], banname[32], bansteamid[34], banreason[128]
    parse_ban_data(data, nums, bantype, banip, banname, bansteamid, banreason)
    
    id = nums[0]
    pid = nums[1]
    bantime = nums[2]

    if(failstate)
    {
        remove_user_state(pid, PDATA_BEING_BANNED)
        return SQL_Error(query, error, errornum, failstate)
    }
    
    if(get_pcvar_num(pcvar_debug) >= 1)
    {
        log_amx("[AMXBans cmdMenuBan function 2] Playerid: %d", pid)
    }
    
    if(SQL_NumResults(query)) 
    {
        SQL_FreeHandle(query)
        ColorChat(id, RED, "%s %L", PREFIX, id, "ALREADY_BANNED")
        return remove_user_state(pid, PDATA_BEING_BANNED)
    }
    
    new admin_nick[64]
    mysql_get_username_safe(id, admin_nick, 63)
    
    new player_nick[64]
    copy(player_nick, 63, banname)
    mysql_escape_string(player_nick, 63)
    
    new server_name[256]
    mysql_get_servername_safe(server_name, 255)
    
    if(get_pcvar_num(pcvar_add_mapname)) 
    {
        new mapname[32]
        get_mapname(mapname, 31)
        format(server_name, 255, "%s (%s)", server_name, mapname)
    }
    
    new pquery[1024], len
    
#if defined SET_NAMES_UTF8

    len = format(pquery, 1023, "SET NAMES UTF8; INSERT INTO `%s%s` (`player_id`, `player_ip`, `player_nick`, `admin_ip`, `admin_id`, `admin_nick`, `ban_type`, `ban_reason`, `cs_ban_reason`, `ban_created`, `ban_length`, `server_name`, `server_ip`, `expired`) ", g_dbPrefix, TBL_BANS)
    len += format(pquery[len], 1023 - len, "VALUES('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', UNIX_TIMESTAMP(NOW()), '%d', '%s', '%s:%s', '0');", bansteamid, banip, player_nick, playerData[id][playerIp], playerData[id][playerSteamid], admin_nick, bantype, banreason, "See banlist", bantime, server_name, g_ip, g_port)
    
#else

    len = format(pquery, 1023, "INSERT INTO `%s%s` (`player_id`, `player_ip`, `player_nick`, `admin_ip`, `admin_id`, `admin_nick`, `ban_type`, `ban_reason`, `cs_ban_reason`, `ban_created`, `ban_length`, `server_name`, `server_ip`, `expired`) ", g_dbPrefix, TBL_BANS)
    len += format(pquery[len], 1023 - len, "VALUES('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', UNIX_TIMESTAMP(NOW()), '%d', '%s', '%s:%s', '0');", bansteamid, banip, player_nick, playerData[id][playerIp], playerData[id][playerSteamid], admin_nick, bantype, banreason, banreason, bantime, server_name, g_ip, g_port)

#endif

    return SQL_ThreadQuery(g_SqlX, "insert_bandetails", pquery, data, size)
}

public cmdBan(id, level, cid)
{
    if(!cmd_access(id, level, cid, 3))
    {
        return PLUGIN_HANDLED
    }
    
    new pid, bantime, bantype[3], ban_length[10], banip[22], banname[32], bansteamid[34], ind[52], banreason[128], temp2[182], temp[192]
    
    read_args(temp, 191)
    strbreak(temp, ban_length, 9, temp2, 181)
    strbreak(temp2, ind, 51, banreason, 127)
    trim(ban_length)
    trim(ind)
    trim(banreason)
    remove_quotes(banreason)
    
    pid = locate_player(id, bantype, ind)
    
    if(pid == -2)
    {
        return PLUGIN_HANDLED
    }
    
    if(!is_str_num(ban_length) || read_argc() < 3 || pid == -1)
    {
        return client_print(id, print_console, "[AMXBans] %L", LANG_PLAYER, "AMX_BAN_SYNTAX")
    }
    
    bantime = abs(str_to_num(ban_length))

    if(get_user_state(pid, PDATA_BEING_BANNED)) 
    {
        return client_print(id, print_console, "[AMXBans] %L", id, "BLOCKING_DOUBLEBAN")
    }
    
    if(!(get_user_flags(id) & get_higher_ban_time_admin_flag()) && bantime == 0)
    {
        return client_print(id, print_console, "[AMXBans] %L", LANG_PLAYER, "NOT_BAN_PERMANENT")
    }
    
    add_user_state(pid, PDATA_BEING_BANNED)
    
    if(!strlen(banreason)) 
    {
        get_pcvar_string(pcvar_default_banreason, banreason, 127)
    }
    
    new cTimeLength[128]
    if(bantime > 0)
    {
        get_time_length(id, bantime, timeunit_minutes, cTimeLength, 127)
    }
    else
    {
        format(cTimeLength, 127, "%L", LANG_PLAYER, "TIME_ELEMENT_PERMANENTLY")
    }
    
    if(get_pcvar_num(pcvar_debug) >= 1)
    {
        log_amx("[AMXBans cmdBan function 1] Playerid: %d", pid)
    }

    if(pid)
    {
        copy(bansteamid, 33, playerData[pid][playerSteamid])
        copy(banname, 31, playerData[pid][playerName])
        copy(banip, 21, playerData[pid][playerIp])
    }
    else
    {        
        console_print(id, "[AMXBans] %L", LANG_PLAYER, "PLAYER_NOT_FOUND", ind)

        if(get_pcvar_num(pcvar_debug) >= 1)
        {
            log_amx("[AMXBans] Player %s could not be found", ind)
        }
        
        return remove_user_state(id, PDATA_BEING_BANNED)
    }

    if(!get_ban_type(bantype, 127, bansteamid, banip)) 
    {
        log_amx("[AMXBans ERROR cmdBan] Steamid / IP Invalid! Bantype: <%s> | Authid: <%s> | IP: <%s>", banreason, bansteamid, banip)
        return remove_user_state(id, PDATA_BEING_BANNED)
    }
    
    new pquery[256]
    
    if(equal(banreason, "S"))
    {
        formatex(pquery, 255, "SELECT `player_id` FROM `%s%s` WHERE `player_id` = '%s' AND `ban_type` = 'S' AND `expired` = '0';", g_dbPrefix, TBL_BANS, bansteamid)
        
        if(get_pcvar_num(pcvar_debug) >= 1)
        {
            log_amx("[AMXBans cmdBan] Banned a player by SteamID: %s", bansteamid)
        }
    }
    else
    {
        formatex(pquery, 255, "SELECT `player_ip` FROM `%s%s` WHERE `player_ip` = '%s' AND `ban_type` = 'SI' AND `expired` = '0';", g_dbPrefix, TBL_BANS, banip)
        
        if(get_pcvar_num(pcvar_debug) >= 1)
        {
            log_amx("[AMXBans cmdBan] Banned a player by IP: %s", banip)
        }
    }
    
    new data[256]
    format_ban_data(data, id, pid, bantime, bantype, banip, banname, bansteamid, banreason)
    
    return SQL_ThreadQuery(g_SqlX, "cmd_ban_", pquery, data, 256)
}

public cmd_ban_(failstate, Handle:query, const error[], errornum, const data[], size, Float:queuetime)
{
    new id, pid, bantime, nums[3], bantype[3], banip[22], banname[32], bansteamid[34], banreason[128]
    parse_ban_data(data, nums, bantype, banip, banname, bansteamid, banreason)

    id = nums[0]
    pid = nums[1]
    bantime = nums[2]
    
    if(failstate)
    {
        remove_user_state(pid, PDATA_BEING_BANNED)
        return SQL_Error(query, error, errornum, failstate)
    }
    
    if(get_pcvar_num(pcvar_debug) >= 1)
    {
        log_amx("[AMXBans cmd_ban_ function 2] Playerid: %d", pid)
    }
    
    if(!SQL_NumResults(query))
    {
        SQL_FreeHandle(query)

        new admin_nick[100]
        if(id == 0) get_user_name(id, playerData[id][playerName], 31)
        mysql_get_username_safe(id, admin_nick, 99)
        
        if(id > 0)
        {
            if(get_pcvar_num(pcvar_debug) >= 1)
            {
                log_amx("[AMXBans cmdBan] Adminsteamid: %s, Servercmd: %s", playerData[id][playerSteamid], (id == 0) ? "Yes" : "No")
            }
        }
        else
        {
            copy(playerData[id][playerSteamid], 33, "STEAM_ID_SERVER")
    
            new servernick[100]
            get_pcvar_string(pcvar_server_nick, servernick, 99)
            if(strlen(servernick))
            {
                copy(admin_nick, 99, servernick)
            }
            
            check_reason(banreason, 127, admin_nick, 99)
        }
        
        if(get_pcvar_num(pcvar_debug) >= 1)
        {
            log_amx("[AMXBans cmdBan] Admin nick: %s, Admin userid: %d", admin_nick, get_user_userid(id))
        }
        
        new server_name[200]
        mysql_get_servername_safe(server_name, 199)
        
        if(get_pcvar_num(pcvar_add_mapname)) 
        {
            new mapname[32]
            get_mapname(mapname, 31)
            format(server_name, 199, "%s (%s)", server_name, mapname)
        }
        
        new player_nick[64]
        copy(player_nick, 63, banname)
        
        mysql_escape_string(player_nick, 99)
        mysql_escape_string(admin_nick, 99)
        
        new pquery[1024], len
        
#if defined SET_NAMES_UTF8        
        
        len = format(pquery, 1023, "SET NAMES UTF8; INSERT INTO `%s%s` (`player_id`, `player_ip`, `player_nick`, `admin_ip`, `admin_id`, `admin_nick`, `ban_type`, `ban_reason`, `cs_ban_reason`, `ban_created`, `ban_length`, `server_name`, `server_ip`, `expired`) ", g_dbPrefix, TBL_BANS)
        len += format(pquery[len], 1023 - len, "VALUES('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', UNIX_TIMESTAMP(NOW()), '%d', '%s', '%s:%s', '0');", bansteamid, banip, player_nick, playerData[id][playerIp], playerData[id][playerSteamid], admin_nick, bantype, banreason, "See banlist", bantime, server_name, g_ip, g_port)
        
#else

        len = format(pquery, 1023, "INSERT INTO `%s%s` (`player_id`, `player_ip`, `player_nick`, `admin_ip`, `admin_id`, `admin_nick`, `ban_type`, `ban_reason`, `cs_ban_reason`, `ban_created`, `ban_length`, `server_name`, `server_ip`, `expired`) ", g_dbPrefix, TBL_BANS)
        len += format(pquery[len], 1023 - len, "VALUES('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', UNIX_TIMESTAMP(NOW()), '%d', '%s', '%s:%s', '0');", bansteamid, banip, player_nick, playerData[id][playerIp], playerData[id][playerSteamid], admin_nick, bantype, banreason, banreason, bantime, server_name, g_ip, g_port)

#endif
            
        new tdata[256]
        format_ban_data(tdata, id, pid, bantime, bantype, banip, banname, bansteamid, banreason)
        
        SQL_ThreadQuery(g_SqlX, "insert_bandetails", pquery, tdata, 255)
    }
    else
    {
        if(id == 0)
        {
            log_amx("[AMXBans] %L", LANG_SERVER, "ALREADY_BANNED", bansteamid, banip)
        }
        else
        {
            client_print(id, print_console, "[AMXBans] %L", LANG_PLAYER, "ALREADY_BANNED", bansteamid, banip)
            remove_user_state(pid, PDATA_BEING_BANNED)
        }
    }
    
    return PLUGIN_HANDLED
}

public insert_bandetails(failstate, Handle:query, const error[], errornum, const data[], size, Float:queuetime)
{
    new pid, nums[3], banip[22], bansteamid[34], banreason[128]
    parse_ban_data(data, nums, _, banip, _, bansteamid, banreason)

    pid = nums[1]
    
    if(failstate)
    {
        return SQL_Error(query, error, errornum, failstate)
    }
    
    if(get_pcvar_num(pcvar_debug) >= 1)
    {
        log_amx("[AMXBans cmdBan function 5] Playerid: %d", pid)
    }
    
#if defined SET_NAMES_UTF8    
    
    SQL_FreeHandle(query)
    
    new pquery[1024]
    formatex(pquery, 1023, "SELECT (@bid := (SELECT MAX(`bid`) FROM `%s%s` WHERE (`player_ip` = '%s' AND `ban_type` = 'SI') OR (`player_id` = '%s' AND `ban_type` = 'S'))) AS `bid`; UPDATE `%s%s` SET `cs_ban_reason` = '%s' WHERE `bid` = @bid;", g_dbPrefix, TBL_BANS, banip, bansteamid, g_dbPrefix, TBL_BANS, banreason)

    return SQL_ThreadQuery(g_SqlX, "KocTblJIu_KocTblJIb4uku", pquery, data, size)
}
    
public KocTblJIu_KocTblJIb4uku(failstate, Handle:query, const error[], errornum, const data[], size, Float:queuetime)
{
    new id, pid, nums[3]
    parse_ban_data(data, nums)
    
    id = nums[0]
    pid = nums[1]
    
    if(failstate)
    {
        delayed_kick(pid + 200)
        return SQL_Error(query, error, errornum, failstate)
    }
    
    if(!SQL_NumResults(query))
    {
        return SQL_FreeHandle(query)
    }
    
    new bid = SQL_ReadResult(query, 0)
    
#else

    new id = nums[0]
    new bid = SQL_GetInsertId(query)
    
#endif    

    SQL_FreeHandle(query)
    
    new motd[3]
    motd[0] = id
    motd[1] = pid
    motd[2] = bid
    
    if(get_pcvar_num(pcvar_snapshot))
    {
        screen_user(id, pid)
        return set_task(1.5, "select_amxbans_motd", 117811, motd, 3)
    }

    return select_amxbans_motd(motd)
}

public select_amxbans_motd(const data[]) 
{
    if(get_pcvar_num(pcvar_debug) >= 1)
    {
        log_amx("[AMXBans cmdBan function 5] Bid: %d", data[2])
    }

    new pquery[1024]

#if defined SET_NAMES_UTF8
    
    format(pquery, 1023, "SELECT `si`.`amxban_motd`, `ba`.`player_nick`, `ba`.`player_id`, `ba`.`player_ip`, \
        `ba`.`admin_nick`, `ba`.`admin_id`, `ba`.`ban_type`, `ba`.`cs_ban_reason`, `ba`.`ban_length` FROM `%s%s` AS `si`,`%s%s` AS `ba` \
        WHERE `ba`.`bid` = '%d' AND `si`.`address` = '%s:%s';", g_dbPrefix, TBL_SERVERINFO, g_dbPrefix, TBL_BANS, data[2], g_ip, g_port)
        
#else

    format(pquery, 1023, "SELECT `si`.`amxban_motd`, `ba`.`player_nick`, `ba`.`player_id`, `ba`.`player_ip`, \
        `ba`.`admin_nick`, `ba`.`admin_id`, `ba`.`ban_type`, `ba`.`ban_reason`, `ba`.`ban_length` FROM `%s%s` AS `si`,`%s%s` AS `ba` \
        WHERE `ba`.`bid` = '%d' AND `si`.`address` = '%s:%s';", g_dbPrefix, TBL_SERVERINFO, g_dbPrefix, TBL_BANS, data[2], g_ip, g_port)

#endif
    
    return SQL_ThreadQuery(g_SqlX, "_select_amxbans_motd", pquery, data, 3)
}

public _select_amxbans_motd(failstate, Handle:query, const error[], errornum, const data[], size, Float:queuetime)
{
    if(failstate)
    {
        delayed_kick(data[1] + 200)
        return SQL_Error(query, error, errornum, failstate)
    }
    
    new id = data[0]
    new player = data[1]
    new bid = data[2]
    
    if(get_pcvar_num(pcvar_debug) >= 1)
    {
        log_amx("[AMXBans cmdBan function 6] Playerid: %d, Bid: %d", player, bid)
    }
    
    new amxban_motd_url[256]
    new admin_steamid[35], admin_nick[100], pl_steamid[35], pl_nick[100], pl_ip[22]
    new ban_type[32], ban_reason[128], iBanLength
    
    if(!SQL_NumResults(query)) 
    {
        SQL_FreeHandle(query)
        amxban_motd_url[0] = '^0'
        log_amx("[AMXBans cmdBan function 6.1] select_motd without result: %d, Bid: %d", player, bid)

        return set_task(kick_delay, "delayed_kick", player + 200)
    } 
    else 
    {
        SQL_ReadResult(query, 0, amxban_motd_url, 256)
        SQL_ReadResult(query, 1, pl_nick, 99)
        SQL_ReadResult(query, 2, pl_steamid, 34)
        SQL_ReadResult(query, 3, pl_ip, 21)
        SQL_ReadResult(query, 4, admin_nick, 99)
        SQL_ReadResult(query, 5, admin_steamid, 34)
        SQL_ReadResult(query, 6, ban_type, 31)
        SQL_ReadResult(query, 7, ban_reason, 127)
        iBanLength = SQL_ReadResult(query, 8)
        SQL_FreeHandle(query)
    }
    
    new admin_team[11]
    
    get_user_team(id, admin_team, 10)
    
    new cTimeLengthPlayer[128]
    new cTimeLengthServer[128]
        
    if(iBanLength > 0) 
    {
        get_time_length(player, iBanLength, timeunit_minutes, cTimeLengthPlayer, 127)
        get_time_length(0, iBanLength, timeunit_minutes, cTimeLengthServer, 127)
    } 
    else 
    {
        format(cTimeLengthPlayer, 127, "%L", player, "TIME_ELEMENT_PERMANENTLY")
        format(cTimeLengthServer, 127, "%L", LANG_SERVER, "TIME_ELEMENT_PERMANENTLY")
    }
    
    new show_activity = get_cvar_num("amx_show_activity")
    
    if((get_user_flags(id) & get_admin_mole_access_flag() || id == 0) && (get_pcvar_num(pcvar_show_name_evenif_mole) == 0))
    {
        show_activity = 1
    }
    
    if(player)
    {
        new complain_url[256]
        get_pcvar_string(pcvar_complainurl, complain_url, 255)
            
        client_print(player, print_console, "[AMXBans] ===============================================")
        
        new ban_motd[1400]
        switch(show_activity)
        {
            case 1:
            {
                client_print(player, print_console, "[AMXBans] %L", player, "MSG_1")
                client_print(player, print_console, "[AMXBans] %L", player, "MSG_7", complain_url)
                format(ban_motd, 1399, "%L", player, "MSG_MOTD_1", ban_reason, cTimeLengthPlayer, pl_steamid)
            }
            case 2:
            {
                client_print(player, print_console, "[AMXBans] %L", player, "MSG_6", admin_nick)
                client_print(player, print_console, "[AMXBans] %L", player, "MSG_7", complain_url)
                format(ban_motd, 1399, "%L", player, "MSG_MOTD_2", ban_reason, cTimeLengthPlayer, pl_steamid, admin_nick)
            }
            case 3:
            {
                if(get_user_state(player, PDATA_ADMIN))
                {
                    client_print(player, print_console, "[AMXBans] %L", player, "MSG_6", admin_nick)
                    client_print(player, print_console, "[AMXBans] %L", player, "MSG_7", complain_url)
                    format(ban_motd, 1399, "%L", player, "MSG_MOTD_2", ban_reason, cTimeLengthPlayer, pl_steamid, admin_nick)
                }
                else
                {
                    client_print(player, print_console, "[AMXBans] %L", player, "MSG_1")
                    client_print(player, print_console, "[AMXBans] %L", player, "MSG_7", complain_url)
                    format(ban_motd, 1399, "%L", player, "MSG_MOTD_1", ban_reason, cTimeLengthPlayer, pl_steamid)
                }
            }
            case 4:
            {
                if(get_user_state(player, PDATA_ADMIN))
                {
                    client_print(player, print_console, "[AMXBans] %L", player, "MSG_6", admin_nick)
                    client_print(player, print_console, "[AMXBans] %L", player, "MSG_7", complain_url)
                    format(ban_motd, 1399, "%L", player, "MSG_MOTD_2", ban_reason, cTimeLengthPlayer, pl_steamid, admin_nick)
                }
            }
            case 5:
            {
                if(get_user_state(player, PDATA_ADMIN))
                {
                    client_print(player, print_console, "[AMXBans] %L", player, "MSG_1")
                    client_print(player, print_console, "[AMXBans] %L", player, "MSG_7", complain_url)
                    format(ban_motd, 1399, "%L", player, "MSG_MOTD_1", ban_reason, cTimeLengthPlayer, pl_steamid)
                }
            }
        }
        
        client_print(player, print_console, "[AMXBans] %L", player, "MSG_2", ban_reason)
        client_print(player, print_console, "[AMXBans] %L", player, "MSG_3", cTimeLengthPlayer)
        client_print(player, print_console, "[AMXBans] %L", player, "MSG_4", pl_steamid)
        client_print(player, print_console, "[AMXBans] %L", player, "MSG_5", pl_ip)
        client_print(player, print_console, "[AMXBans] ===============================================")
        
        new msg[1400]
        
        if(get_pcvar_num(pcvar_debug) >= 1)
        {
            log_amx("[AMXBans cmdBan function 6.2] Bid: %d URL= %s Kickdelay:%f", bid, amxban_motd_url, kick_delay)
        }

        if(contain(amxban_motd_url, "sid=%s&adm=%d&lang=%s") != -1) 
        {
            new bidstr[10],lang[5] 
            formatex(bidstr, 9, "B%d", bid)
            get_user_info(player, "lang", lang, 9)
            
            if(equal(lang, ""))
            {
                get_cvar_string("amx_language", lang, 9)
            }
            
            format(msg, 1399, amxban_motd_url, bidstr, (show_activity == 2) ? 1 : 0, lang)
            if(get_pcvar_num(pcvar_debug) >= 1)
            {
                log_amx("[AMXBans cmdBan function 6.3] Motd: %s", msg)
            }
        } 
        else 
        {
            formatex(msg, 1399, ban_motd)
        }
        
        if(!is_user_disconnected(player)) 
        {
            if(get_user_state(player, PDATA_CONNECTED))
            {
                new ret
                ExecuteForward(MFHandle[Ban_MotdOpen], ret, player)
            
                show_motd(player, msg, "AMXBans Gm 1.5.2")
                set_pev(player, pev_flags, pev(player, pev_flags) | FL_FROZEN)
            }
            
            set_task(kick_delay, "delayed_kick", player + 200)
        }
    } 
    else 
    {
        console_print(id, "[AMXBans] %L", LANG_PLAYER, "PLAYER_NOT_FOUND", g_ident)

        if(get_pcvar_num(pcvar_debug) >= 1)
        {
            log_amx("[AMXBans] Player %s could not be found", g_ident)
        }
        return PLUGIN_HANDLED
        
    }
            
    if(equal(ban_type, "S")) 
    {
        if(id == 0)
        {
            log_message("[AMXBans] %L", LANG_SERVER,"STEAMID_BANNED_SUCCESS_IP_LOGGED", pl_steamid)
        }
        else
        {
            client_print(id, print_console, "[AMXBans] %L", id, "STEAMID_BANNED_SUCCESS_IP_LOGGED", pl_steamid)
        }
    } 
    else 
    {
        if(id == 0)
        {
            log_message("[AMXBans] %L", LANG_SERVER, "STEAMID_IP_BANNED_SUCCESS")
        }
        else
        {
            client_print(id, print_console, "[AMXBans] %L", id," STEAMID_IP_BANNED_SUCCESS")
        }
    }
    
    if(id == 0)
    {
        admin_steamid[0] = '^0'
        admin_team[0] = '^0'
    }
            
    if(iBanLength > 0) 
    {
        log_amx("%L", LANG_SERVER, "BAN_LOG",admin_nick, get_user_userid(id), admin_steamid, admin_team, \
            pl_nick, pl_steamid, cTimeLengthServer, iBanLength, ban_reason)

        if(get_pcvar_num(pcvar_show_in_hlsw)) 
        {
            log_message("^"%s<%d><%s><%s>^" triggered ^"amx_chat^" (text ^"%L^")", admin_nick, get_user_userid(id), admin_steamid, admin_team, \
                LANG_SERVER, "BAN_CHATLOG", pl_nick, pl_steamid, cTimeLengthServer, iBanLength, ban_reason)
        }
    } 
    else 
    {
        log_amx("%L", LANG_SERVER, "BAN_LOG_PERM", admin_nick, get_user_userid(id), admin_steamid, admin_team, pl_nick, pl_steamid, ban_reason)

        if(get_pcvar_num(pcvar_show_in_hlsw)) 
        {
            log_message("^"%s<%d><%s><%s>^" triggered ^"amx_chat^" (text ^"%L^")", admin_nick, get_user_userid(id), admin_steamid, admin_team, \
                LANG_SERVER, "BAN_CHATLOG_PERM", pl_nick, pl_steamid, ban_reason)
        }
    }
    
    new message[191]
    
    switch(show_activity)
    {
        case 1:
        {
            for(new i = 1; i <= plnum; i++) 
            {
                if(get_user_state(i, PDATA_HLTV) || get_user_state(i, PDATA_BOT) || !get_user_state(i, PDATA_CONNECTED)) continue
                
                get_time_length(i, iBanLength, timeunit_minutes, cTimeLengthPlayer, 127)
                
                if(iBanLength > 0)
                {
                    format(message, 190, "%L", i, "PUBLIC_BAN_ANNOUNCE", pl_nick, cTimeLengthPlayer, ban_reason)
                }
                else
                {
                    format(message, 190, "%L", i, "PUBLIC_BAN_ANNOUNCE_PERM", pl_nick, ban_reason)
                }
                
                if(get_pcvar_num(pcvar_show_hud_messages) == 1) 
                {
                    set_hudmessage(0, 255, 0, 0.05, 0.30, 0, 6.0, 10.0 , 0.5, 0.15, -1)
                    ShowSyncHudMsg(i, g_MyMsgSync, message)
                }
                ColorChat(i, RED, "%s %s", PREFIX, message)
                client_print(i, print_console, message)
            }
        }
        case 2:
        {
            for(new i = 1; i <= plnum; i++) 
            {
                if(get_user_state(i, PDATA_HLTV) || get_user_state(i, PDATA_BOT) || !get_user_state(i, PDATA_CONNECTED)) continue
                
                get_time_length(i, iBanLength, timeunit_minutes, cTimeLengthPlayer, 127)
                
                if(iBanLength > 0)
                {
                    format(message, 190, "%L", i, "PUBLIC_BAN_ANNOUNCE_2", pl_nick, cTimeLengthPlayer, ban_reason, admin_nick)
                }
                else
                {
                    format(message, 190, "%L", i, "PUBLIC_BAN_ANNOUNCE_2_PERM", pl_nick, ban_reason, admin_nick)
                }
                
                if(get_pcvar_num(pcvar_show_hud_messages) == 1) 
                {
                    set_hudmessage(0, 255, 0, 0.05, 0.30, 0, 6.0, 10.0 , 0.5, 0.15, -1)
                    ShowSyncHudMsg(i, g_MyMsgSync, message)
                }

                ColorChat(i, RED, "%s %s", PREFIX, message)
                client_print(i, print_console, "%s", message)
            }
        }
        case 3:
        {
            if(is_user_admin(id))
            {
                for(new i = 1; i <= plnum; i++) 
                {
                    if(get_user_state(i, PDATA_HLTV) || get_user_state(i, PDATA_BOT) || !get_user_state(i, PDATA_CONNECTED)) continue
                    
                    get_time_length(i, iBanLength, timeunit_minutes, cTimeLengthPlayer, 127)
                    
                    if(iBanLength > 0)
                    {
                        format(message,190, "%L", i, "PUBLIC_BAN_ANNOUNCE_2", pl_nick, cTimeLengthPlayer, ban_reason, admin_nick)
                    }
                    else
                    {
                        format(message,190, "%L", i, "PUBLIC_BAN_ANNOUNCE_2_PERM", pl_nick, ban_reason, admin_nick)
                    }
                    
                    if(get_pcvar_num(pcvar_show_hud_messages) == 1) 
                    {
                        set_hudmessage(0, 255, 0, 0.05, 0.30, 0, 6.0, 10.0 , 0.5, 0.15, -1)
                        ShowSyncHudMsg(i, g_MyMsgSync, message)
                    }

                    ColorChat(i, RED, "%s %s", PREFIX, message)
                    client_print(i, print_console, "%s", message)
                }
            }
            else
            {
                for(new i = 1; i <= plnum; i++) 
                {
                    if(get_user_state(i, PDATA_HLTV) || get_user_state(i, PDATA_BOT) || !get_user_state(i, PDATA_CONNECTED)) continue
                    
                    get_time_length(i, iBanLength, timeunit_minutes, cTimeLengthPlayer, 127)
                    
                    if(iBanLength > 0)
                    {
                        format(message, 190, "%L", i, "PUBLIC_BAN_ANNOUNCE", pl_nick, cTimeLengthPlayer, ban_reason)
                    }
                    else
                    {
                        format(message, 190, "%L", i, "PUBLIC_BAN_ANNOUNCE_PERM", pl_nick, ban_reason)
                    }
                    
                    if(get_pcvar_num(pcvar_show_hud_messages) == 1) 
                    {
                        set_hudmessage(0, 255, 0, 0.05, 0.30, 0, 6.0, 10.0 , 0.5, 0.15, -1)
                        ShowSyncHudMsg(i, g_MyMsgSync, message)
                    }

                    ColorChat(i, RED, "%s %s", PREFIX, message)
                    client_print(i, print_console, "%s", message)
                }
            }
        }
        case 4:
        {
            if(is_user_admin(id))
            {
                for(new i = 1; i <= plnum; i++) 
                {
                    if(get_user_state(i, PDATA_HLTV) || get_user_state(i, PDATA_BOT) || !get_user_state(i, PDATA_CONNECTED)) continue
                    get_time_length(i, iBanLength, timeunit_minutes, cTimeLengthPlayer, 127)
                    
                    if(iBanLength > 0)
                    {
                        format(message, 190, "%L", i, "PUBLIC_BAN_ANNOUNCE_2", pl_nick, cTimeLengthPlayer, ban_reason, admin_nick)
                    }
                    else
                    {
                        format(message, 190, "%L", i, "PUBLIC_BAN_ANNOUNCE_2_PERM", pl_nick, ban_reason, admin_nick)
                    }
                    if(get_pcvar_num(pcvar_show_hud_messages) == 1) 
                    {
                        set_hudmessage(0, 255, 0, 0.05, 0.30, 0, 6.0, 10.0 , 0.5, 0.15, -1)
                        ShowSyncHudMsg(i, g_MyMsgSync, message)
                    }

                    ColorChat(i, RED, "%s %s", PREFIX, message)
                    client_print(i, print_console, "%s", message)
                }
            }
        }
        case 5:
        {
            if(is_user_admin(id))
            {
                for(new i = 1; i <= plnum; i++) 
                {
                    if(get_user_state(i, PDATA_HLTV) || get_user_state(i, PDATA_BOT) || !get_user_state(i, PDATA_CONNECTED)) continue
                    
                    get_time_length(i, iBanLength, timeunit_minutes, cTimeLengthPlayer, 127)
                    
                    if(iBanLength > 0)
                    {
                        format(message, 190, "%L", i, "PUBLIC_BAN_ANNOUNCE", pl_nick, cTimeLengthPlayer, ban_reason)
                    }
                    else
                    {
                        format(message, 190, "%L", i, "PUBLIC_BAN_ANNOUNCE_PERM", pl_nick, ban_reason)
                    }
                    
                    if(get_pcvar_num(pcvar_show_hud_messages) == 1) 
                    {
                        set_hudmessage(0, 255, 0, 0.05, 0.30, 0, 6.0, 10.0 , 0.5, 0.15, -1)
                        ShowSyncHudMsg(i, g_MyMsgSync, message)
                    }

                    ColorChat(i, RED, "%s %s", PREFIX, message)
                    client_print(i, print_console, "%s", message)
                }
            }
        }
    }
    
    return PLUGIN_HANDLED
}

public locate_player(id, output[], const identifier[]) 
{
    new player = find_player("c", identifier)

    if(!player) 
    {
        player = find_player("bl", identifier)
    }
    else
    {
        copy(output, 2, "S")
    }
    
    if(!player) 
    {
        player = find_player("d", identifier)
        if(player)
        {
            copy(output, 2, "SI")
        }
    }

    if(!player && identifier[0]=='#' && identifier[1]) 
    {
        player = find_player("k", str_to_num(identifier[1]))
    }

    if(player) 
    {
        if( !(get_user_flags(id) & ADMIN_LEVEL_F))
        {
            if(get_user_state(player, PDATA_IMMUNITY)) 
            {
                if(id == 0)
                {
                    server_print("[AMXBans] Client has immunity")
                }
                else
                {
                    console_print(id, "[AMXBans] Client has immunity")
                }
                return -2
            }
        }
    }
    else
    {
        player = -1
    }
    
    return player
}

public screen_user(id, pid)
{
    if(is_user_disconnected(pid))
    {
        return PLUGIN_CONTINUE
    }
    
    new timestamp[32]
    get_time("%d.%m.%Y - %H:%M:%S", timestamp, 31) 
    ColorChat(pid, RED, "%s Screenshot taken on player ^x03%s^x01 (^x04%s^x01) ^x03%s^x01 by admin ^x04%s", PREFIX, playerData[pid][playerName], playerData[pid][playerIp], timestamp, playerData[id][playerName])
    set_hudmessage(255, 255, 0, -1.0, 0.01, 0, 0.02, 15.0, 0.0, 0.0, -1)
    show_hudmessage(pid, "Player: %s (%s) Time: %s Admin: %s", playerData[pid][playerName], playerData[pid][playerIp], timestamp, playerData[id][playerName])
    
    return set_task(1.0, "get_snapshot", pid + 118911)
}

public get_snapshot(id)
{
    id -= 118911
    return client_cmd(id, "snapshot")
}

stock parse_ban_data(const input[], nums[] = "", bantype[] = "", banip[] = "", banname[] = "", bansteamid[] = "", banreason[] = "")
{
    new sid[5], spid[5], stime[10]
    parse(input, sid, 4, spid, 4, stime, 9, bantype, 2, banip, 21, banname, 31, bansteamid, 33, banreason, 127)
    
    nums[0] = str_to_num(sid)
    nums[1] = str_to_num(spid)
    nums[2] = str_to_num(stime)
    
    return 1
}

stock format_ban_data(output[], id, pid, bantime, const bantype[], const banip[], const banname[], const bansteamid[], const banreason[])
{
    return formatex(output, 255, "^"%d^" ^"%d^" ^"%d^" ^"%s^" ^"%s^" ^"%s^" ^"%s^" ^"%s^"", id, pid, bantime, bantype, banip, banname, bansteamid, banreason)
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1061\\ f0\\ fs16 \n\\ par }
*/
S0X is offline
Mordekay
Squirrel of Fortune
Join Date: Apr 2006
Location: Germany
Old 05-29-2015 , 11:05   Re: Amxbans problem
Reply With Quote #2

This version is not supported here.
Ask wherever you got that plugin.
__________________

Mordekay is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 06:22.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode