Top VIP

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
19
Реакции
0
Всем привет! Подскажите пожалуйста, как правильно сделать проверку в этом плагине, что если есть в топе админ например с флагом ADMIN_KICK, то ему ничего не выдавало
Код:
#include <amxmodx>
#include <amxmisc>
#include <csx>

#define PLUGIN "TOP VIP (Auto Set)"
#define VERSION "1.0a"
#define AUTHOR "Leo_[BH]"

new g_Flags_Vip, g_Top_Num
new g_Chat_Enable, g_Hud_Enable, g_Sound_Enable

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    g_Flags_Vip         = register_cvar("amx_top_vip_access",                 "t")
    g_Top_Num             = register_cvar("amx_top_vip_players",                 "3")
    
    g_Chat_Enable         = register_cvar("amx_top_vip_chat_msg",             "1")
    g_Hud_Enable         = register_cvar("amx_top_vip_hud_msg",                 "1")
    g_Sound_Enable         = register_cvar("amx_top_vip_sound",                 "1")
    
    register_cvar("amx_top_vip_task", "15.0")
    
    register_clcmd("say /rank",     "CmdRank");
    
    register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
    
    return PLUGIN_CONTINUE;
}

public plugin_cfg(){
    new configsdir[128]
    get_localinfo("amxx_configsdir", configsdir, 127)
    return server_cmd("exec %s/top_vip.cfg", configsdir)
}

public client_putinserver(id)
{
    new Float:g_szSetTime = get_cvar_float("amx_top_vip_task")
    set_task(g_szSetTime, "csx_check", id)
}

public csx_check(id)
{
    if(!is_user_connected(id) || is_user_admin(id) || is_user_bot(id))
    {
        return PLUGIN_CONTINUE;
    }
    
    new stats[8],bodyhits[8],irank
    irank = get_user_stats(id,stats,bodyhits)
    
//    client_print(id,print_console,"[StatsX] Rank: %d", irank)
    
    if ( (irank <= get_pcvar_num(g_Top_Num)) )
    {
        set_vip(id)
    }
    
    return PLUGIN_CONTINUE;
}

public set_vip(id)
{
        if(!is_user_connected(id) || is_user_bot(id))
        {
            return PLUGIN_CONTINUE;
        }
        
        // SET VIP ACCESS!!!
        new g_szFlagsVip[64]
        get_pcvar_string( g_Flags_Vip, g_szFlagsVip, 63 );
        
        new r_flag_z, flags_vip;
        
        r_flag_z = read_flags("z");
        remove_user_flags(id,r_flag_z);
        
        flags_vip = read_flags(g_szFlagsVip);
        set_user_flags(id,flags_vip);
        
        // Info VIP Set
        new stats[8],bodyhits[8],irank
        irank = get_user_stats(id,stats,bodyhits)
        
        if(get_pcvar_num(g_Chat_Enable))
        {
            ChatColor ( id, "^1[^4VIP^1] Вы награждены ^3VIP-Привилегиями^1 за^4 %d-ое^1 место в топе сервера!", irank)
        }
        
        if(get_pcvar_num(g_Hud_Enable))
        {
            set_dhudmessage(0, 200, 0, -1.0, 0.28, 2, 6.0, 2.5, 0.05, 1.5);
            show_dhudmessage(id, "Вы награждены VIP-Привилегиями ^nЗа %d-ое место в топе сервера!", irank);
        }
        
        if(get_pcvar_num(g_Sound_Enable))
        {
            client_cmd(id, "spk doop")
        }
        
        return PLUGIN_CONTINUE;
}

public event_round_start()
{
    new id
    for(id = 1; id <= 32; id++)
    {
        if(!is_user_connected(id) || is_user_admin(id) || is_user_bot(id))
        {
            return PLUGIN_CONTINUE;
        }
        
        new stats[8],bodyhits[8],irank
        irank = get_user_stats(id,stats,bodyhits)
        
//        client_print(id,print_console,"[StatsX] Rank: %d", irank)
        
        if ( (irank <= get_pcvar_num(g_Top_Num)) )
        {
            set_vip(id)
        }
    }
    return PLUGIN_CONTINUE;
}

/*
public CmdRank(id)
{
    new topnum = get_pcvar_num(g_Top_Num)
    
    if(get_pcvar_num(g_Hud_Enable))
    {
        set_dhudmessage(0, 200, 0, -1.0, 0.28, 2, 6.0, 2.5, 0.05, 1.5);
        
        if(topnum == 1)
        {
            show_dhudmessage(id, "За первое место:^n VIP Выдается автоматически!");
        }
        else if(topnum <= 4)
        {
            show_dhudmessage(id, "За первые %d места:^n VIP Выдается автоматически!", topnum);
        }
        else{
            show_dhudmessage(id, "За первые %d мест:^n VIP Выдается автоматически!", topnum);
        }
    }
    
    if(get_pcvar_num(g_Chat_Enable))
    {
        if(topnum == 1)
        {
            ChatColor ( id, "^4[StatsX] ^3За первое^4 %d ^3мест: ^4VIP бесплатно!")
        }
        else if(topnum <= 4)
        {
            ChatColor ( id, "^4[StatsX] ^3За первые^4 %d ^3места: ^4VIP бесплатно!", topnum)
        }
        else{
            ChatColor ( id, "^4[StatsX] ^3За первые^4 %d ^3мест: ^4VIP бесплатно!", topnum)
        }
    }
    
    return PLUGIN_CONTINUE;
}
*/

stock ChatColor(const id, const input[], any:...)
{
    new count = 1, players[32]
    static msg[191]
    vformat(msg, 190, input, 3)
    
    replace_all(msg, 190, "!g", "^4") // Green Color
    replace_all(msg, 190, "!y ", "^1") // Default Color
    replace_all(msg, 190, "!team", "^3") // Team Color
    replace_all(msg, 190, "!team2", "^0") // Team2 Color
    
    if (id) players[0] = id; else get_players(players, count, "ch")
    {
        for (new i = 0; i < count; i++)
        {
            if (is_user_connected(players[i]))
            {
                message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
                write_byte(players[i]);
                write_string(msg);
                message_end();
            }
        }
    }
}
 
Сообщения
391
Реакции
106
Помог
2 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Код:
if(!is_user_connected(id) || is_user_admin(id) || is_user_bot(id) || get_user_flags(id) & ADMIN_KICK)
{
    return PLUGIN_CONTINUE;
}
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу