Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

AdminPrefixes | Цвет чата

, Прошу помощи - вернуть цвет чата
Статус пользователя Hnt
сообщение 6.11.2012, 2:09
Сообщение #1


Стаж: 18 лет

Сообщений: 810
Благодарностей: 198
Полезность: 494

Ребят подскажите - имею на руках плагин AdminPrefixes
Не могу понять как вернуть обычный Не цветной чат. Может кто взглянуть на код. Спасибо!

Прикрепленное изображение

Сам плагин - Admin Prefixes V2.2 by m0skVi4a ;]

Исходник
Код
#include <amxmodx>
#include <amxmisc>
#include <nvault>

#define FLAG_LOAD ADMIN_CFG
#define MAX_PREFIXES 33
#define MAX_BAD_PREFIXES 100

new g_bad_prefix, g_listen, g_listen_flag, g_custom_current, g_custom_current_flag, g_custom_others, g_custom_others_flag, g_say_characters, g_prefix_characters;
new pre_ips_count = 0, pre_names_count = 0, pre_flags_count = 0, bad_prefix_count = 0, i, temp_cvar[2];
new configs_dir[64], file[128], text[128], prefix[32], type[2], acc_type[32], length, line = 0, error[256];
new g_saytxt, g_maxplayers, g_nvault, g_team;
new g_typed[192], g_message[192], g_name[32], typed_prefix[33];
new pre_ips_collect[MAX_PREFIXES][33], ips_collect[MAX_PREFIXES][32], pre_names_collect[MAX_PREFIXES][33], names_collect[MAX_PREFIXES][33], pre_flags_collect[MAX_PREFIXES][33], flags_collect[MAX_PREFIXES][2], bad_prefixes_collect[MAX_BAD_PREFIXES][33], client_prefix[33][33];

new const forbidden_say_symbols[] = {
    "/",
    "!",
    "%",
    "$"
}

new const forbidden_prefixes_symbols[] = {
    "/",
    "\",
    "%",
    "$",
    ".",
    ":",
    "?",
    "!",
    "@",
    "#",
    "%"
}

new const separator[] = "************************************************"
new const in_prefix[] = "[AdminPrefixes]"

public plugin_init()
{
    register_plugin("Admin Prefixes", "2.2", "m0skVi4a;]")

    g_bad_prefix = register_cvar("ap_bad_prefixes", "1")
    g_listen = register_cvar("ap_listen", "1")
    g_listen_flag = register_cvar("ap_listen_flag", "a")
    g_custom_current = register_cvar("ap_custom_current", "1")
    g_custom_current_flag = register_cvar("ap_custom_current_flag", "b")
    g_custom_others = register_cvar("ap_custom_others", "1")
    g_custom_others_flag = register_cvar("ap_custom_others_flag", "c")
    g_say_characters = register_cvar("ap_say_characters", "1")
    g_prefix_characters = register_cvar("ap_prefix_characters", "1")

    g_saytxt = get_user_msgid ("SayText")
    g_maxplayers = get_maxplayers()
    g_nvault = nvault_open("CustomAdminPrefixes")

    register_concmd("ap_reload_prefixes", "LoadPrefixes")
    register_concmd("ap_reload_badprefixes", "LoadBadPrefixes")
    register_concmd("ap_put", "SetPrefix")
    register_concmd("ap_put_player", "SetPlayerPrefix")
    register_clcmd("say", "HookSay")
    register_clcmd("say_team", "HookSayTeam")

    register_dictionary("admin_prefixes.txt")

    get_configsdir(configs_dir, charsmax(configs_dir))

    LoadPrefixes(0)
    LoadBadPrefixes(0)
}
    
public LoadPrefixes(id)
{
    if(!(get_user_flags(id) & FLAG_LOAD))
    {
        console_print(id, "%L", LANG_SERVER, "PREFIX_PERMISSION", in_prefix)
        return PLUGIN_HANDLED
    }

    line = 0, pre_flags_count = 0, pre_ips_count = 0, pre_names_count = 0;
    formatex(file, charsmax(file), "%s/ap_prefixes.ini", configs_dir)

    if(!file_exists(file))
    {
        formatex(error, charsmax(error), "%L", LANG_SERVER, "PREFIX_NOT_FOUND", in_prefix, file)
        set_fail_state(error)
    }

    server_print(separator)

    while(read_file(file, line++ , text, charsmax(text), length) && pre_flags_count <= MAX_PREFIXES)
    {
        if(!text[0] || text[0] == '^n' || text[0] == ';')
            continue

        parse(text, type, charsmax(type), prefix, charsmax(prefix), acc_type, charsmax(acc_type))
        trim(prefix)

        if(!type[0] || !prefix[0] || !acc_type[0])
            continue

        replace_all(prefix, charsmax(prefix), "!g", "^x04")
        replace_all(prefix, charsmax(prefix), "!t", "^x03")
        replace_all(prefix, charsmax(prefix), "!n", "^x01")

        switch(type[0])
        {
            case 'i':
            {
                pre_ips_count++
                pre_ips_collect[pre_ips_count] = prefix
                ips_collect[pre_ips_count] = acc_type
                server_print("%L", LANG_SERVER, "PREFIX_LOAD_IP", in_prefix, prefix, acc_type)
            }
            case 'n':
            {
                pre_names_count++
                pre_names_collect[pre_names_count] = prefix
                names_collect[pre_names_count] = acc_type
                server_print("%L", LANG_SERVER, "PREFIX_LOAD_NAME", in_prefix, prefix, acc_type)
            }
            case 'f':
            {
                pre_flags_count++
                pre_flags_collect[pre_flags_count] = prefix
                flags_collect[pre_flags_count][0] = acc_type[0]
                server_print("%L", LANG_SERVER, "PREFIX_LOAD_FLAG", in_prefix, prefix, acc_type[0])
            }
            default:
            {
                continue
            }
        }
    }

    if(pre_flags_count <= 0 && pre_ips_count <= 0 && pre_names_count <= 0)
    {
        server_print("%L", LANG_SERVER, "PREFIX_NO", in_prefix)
    }

    get_user_name(id, g_name, charsmax(g_name))
    server_print("%L", LANG_SERVER, "PREFIX_LOADED_BY", in_prefix, g_name)
    console_print(id, "%L", LANG_SERVER, "PREFIX_LOADED", in_prefix)

    server_print(separator)

    for(new i = 1; i <= g_maxplayers; i++)
    {
        client_prefix[id] = ""
        CheckNvaultPrefix(i)
    }

    return PLUGIN_HANDLED
}

public LoadBadPrefixes(id)
{
    if(!get_pcvar_num(g_bad_prefix))
    {
        console_print(id, "%L", LANG_SERVER, "BADP_OFF", in_prefix)
        return PLUGIN_HANDLED
    }

    if(!(get_user_flags(id) & FLAG_LOAD))
    {
        console_print(id, "%L", LANG_SERVER, "BADP_PERMISSION", in_prefix)
        return PLUGIN_HANDLED
    }

    line = 0, bad_prefix_count = 0;

    formatex(file, charsmax(file), "%s/ap_bad_prefixes.ini", configs_dir)

    if(!file_exists(file))
    {
        console_print(id, "%L", LANG_SERVER, "BADP_NOT_FOUND", in_prefix, file)
        return PLUGIN_HANDLED        
    }


    server_print(separator)

    while(read_file(file, line++ , text, charsmax(text), length) && bad_prefix_count <= MAX_BAD_PREFIXES)
    {
        if(!text[0] || text[0] == '^n' || text[0] == ';')
            continue

        parse(text, prefix, charsmax(prefix))

        if(!prefix[0])
            continue

        bad_prefix_count++
        bad_prefixes_collect[bad_prefix_count] = prefix
        server_print("%L", LANG_SERVER, "BADP_LOAD", in_prefix, prefix)
    }

    if(bad_prefix_count <= 0)
    {
        server_print("%L", LANG_SERVER, "BADP_LOAD", in_prefix)
    }

    get_user_name(id, g_name, charsmax(g_name))
    server_print("%L", LANG_SERVER, "BADP_LOADED_BY", in_prefix, g_name)
    console_print(id, "%L", LANG_SERVER, "BADP_LOADED", in_prefix)
    
    server_print(separator)

    for(new i = 1; i <= g_maxplayers; i++)
    {
        CheckNvaultPrefix(i)
    }

    return PLUGIN_HANDLED
}

public client_putinserver(id)
{
    client_prefix[id] = ""
    CheckNvaultPrefix(id)
}

public HookSay(id)
{
    read_args(g_typed, charsmax(g_typed))
    remove_quotes(g_typed)

    if(equal(g_typed, "") || !is_user_connected(id))
        return PLUGIN_HANDLED_MAIN
        
    if((client_prefix[id][0] && get_pcvar_num(g_say_characters) == 1) || (!client_prefix[id][0] && get_pcvar_num(g_say_characters) == 2) || get_pcvar_num(g_say_characters) == 3)
    {
        if(check_say_characters(g_typed))
            return PLUGIN_HANDLED_MAIN
    }

    get_user_name(id, g_name, charsmax(g_name))

    g_team = get_user_team(id)

    new const team_info[2][][] = {
        {"*SPEC* ", "*DEAD* ", "*DEAD* ", "*SPEC* "},
        {"", "", "", ""}
    }

    if(client_prefix[id][0])
    {
        formatex(g_message, charsmax(g_message), "^1%s^4%s^3 %s :^4 %s", team_info[is_user_alive(id)][g_team], client_prefix[id], g_name, g_typed)
    }
    else
    {
        formatex(g_message, charsmax(g_message), "^1%s^3%s :^1 %s", team_info[is_user_alive(id)][g_team], g_name, g_typed)
    }

    get_pcvar_string(g_listen_flag, temp_cvar, charsmax(temp_cvar))

    for(new i = 1; i <= g_maxplayers; i++)
    {
        if(!is_user_connected(i))
            continue

        if(is_user_alive(id) && is_user_alive(i) || !is_user_alive(id) && !is_user_alive(i) || get_pcvar_num(g_listen) && get_user_flags(i) & read_flags(temp_cvar))
        {
            send_message(g_message, id, i)
        }
    }

    return PLUGIN_HANDLED_MAIN
}

public HookSayTeam(id)
{
    read_args(g_typed, charsmax(g_typed))
    remove_quotes(g_typed)

    if(equal(g_typed, "") || !is_user_connected(id))
        return PLUGIN_HANDLED_MAIN
        
    if((client_prefix[id][0] && get_pcvar_num(g_say_characters) == 1) || (!client_prefix[id][0] && get_pcvar_num(g_say_characters) == 2) || get_pcvar_num(g_say_characters) == 3)
    {
        if(check_say_characters(g_typed))
            return PLUGIN_HANDLED_MAIN
    }

    get_user_name(id, g_name, charsmax(g_name))

    g_team = get_user_team(id)
    
    new const team_info[2][][] = {
        {"(Spectator) ", "*DEAD*(Terrorist) ", "*DEAD*(Counter-Terrorist) ", "(Spectator) "},
        {"(Spectator) ", "(Terrorist) ", "(Counter-Terrorist) ", "(Spectator) "}
    }

    if(client_prefix[id][0])
    {
        formatex(g_message, charsmax(g_message), "^1%s^4%s^3 %s :^4 %s", team_info[is_user_alive(id)][g_team], client_prefix[id], g_name, g_typed)
    }
    else
    {
        formatex(g_message, charsmax(g_message), "^1%s^3%s :^1 %s", team_info[is_user_alive(id)][g_team], g_name, g_typed)
    }

    get_pcvar_string(g_listen_flag, temp_cvar, charsmax(temp_cvar))

    for(new i = 1; i <= g_maxplayers; i++)
    {
        if(!is_user_connected(i))
            continue

        if(get_user_team(id) == get_user_team(i) || get_pcvar_num(g_listen) && get_user_flags(i) & read_flags(temp_cvar))
        {
            if(is_user_alive(id) && is_user_alive(i) || !is_user_alive(id) && !is_user_alive(i) || get_pcvar_num(g_listen) && get_user_flags(i) & read_flags(temp_cvar))
            {
                send_message(g_message, id, i)
            }
        }
    }

    return PLUGIN_HANDLED_MAIN
}

public SetPrefix(id)
{
    if(!get_pcvar_num(g_custom_current) || !get_pcvar_string(g_custom_current_flag, temp_cvar, charsmax(temp_cvar)))
    {
        console_print(id, "%L", LANG_SERVER, "CUSTOM_OFF", in_prefix)
        return PLUGIN_HANDLED
    }

    if(!(get_user_flags(id) & read_flags(temp_cvar)))
    {
        console_print(id, "%L", LANG_SERVER, "CUSTOM_PERMISSION", in_prefix)
        return PLUGIN_HANDLED
    }

    read_args(typed_prefix, charsmax(typed_prefix))
    remove_quotes(typed_prefix)
    trim(typed_prefix)

    if(get_pcvar_num(g_bad_prefix) && is_bad_prefix(typed_prefix))
    {
        console_print(id, "%L", LANG_SERVER, "CUSTOM_FORBIDDEN", in_prefix, typed_prefix)
        return PLUGIN_HANDLED
    }

    if(get_pcvar_num(g_prefix_characters) && check_prefix_characters(typed_prefix))
    {
        console_print(id, "%L", LANG_SERVER, "CUSTOM_SYMBOL", in_prefix, typed_prefix, forbidden_prefixes_symbols[i])
        return PLUGIN_HANDLED
    }

    get_user_name(id, g_name, charsmax(g_name))

    if(equal(typed_prefix, ""))
    {
        nvault_remove(g_nvault, g_name)
        console_print(id, "%L", LANG_SERVER, "CUSTOM_REMOVE", in_prefix)
        server_print("%L", LANG_SERVER, "CUSTOM_REMOVE_INFO", in_prefix, g_name)
        PutPrefix(id)

        return PLUGIN_HANDLED
    }

    nvault_set(g_nvault, g_name, typed_prefix)

    client_prefix[id] = typed_prefix
    
    console_print(id, "%L", LANG_SERVER, "CUSTOM_CHANGE", in_prefix, typed_prefix)
    server_print("%L", LANG_SERVER, "CUSTOM_CHANGE_INFO", in_prefix, g_name, typed_prefix)

    return PLUGIN_HANDLED
}

public SetPlayerPrefix(id)
{
    if(!get_pcvar_num(g_custom_current) || !get_pcvar_string(g_custom_current_flag, temp_cvar, charsmax(temp_cvar)) || !get_pcvar_num(g_custom_others) || !get_pcvar_string(g_custom_others_flag, temp_cvar, charsmax(temp_cvar)))
    {
        console_print(id, "%L", LANG_SERVER, "CO_OFF", in_prefix)
        return PLUGIN_HANDLED
    }

    if(!(get_user_flags(id) & read_flags(temp_cvar)))
    {
        console_print(id, "%L", LANG_SERVER, "CO_FORBIDDEN", in_prefix)
        return PLUGIN_HANDLED
    }

    new name_tag[64], typed_name[32];

    read_args(name_tag, charsmax(name_tag))
    remove_quotes(name_tag)
    parse(name_tag, typed_name, charsmax(typed_name), typed_prefix, charsmax(typed_prefix))
    trim(typed_prefix)

    if(get_pcvar_num(g_bad_prefix) && is_bad_prefix(typed_prefix))
    {
        console_print(id, "%L", LANG_SERVER, "CUSTOM_FORBIDDEN", in_prefix, typed_prefix)
        return PLUGIN_HANDLED
    }

    if(get_pcvar_num(g_prefix_characters) && check_prefix_characters(typed_prefix))
    {
        console_print(id, "%L", LANG_SERVER, "CUSTOM_SYMBOL", in_prefix, typed_prefix, forbidden_prefixes_symbols[i])
        return PLUGIN_HANDLED
    }

    get_user_name(id, g_name, charsmax(g_name))

    new target = cmd_target(id, typed_name, 1)

    if(!target)
        return PLUGIN_HANDLED

    if(equal(typed_prefix, ""))
    {
        nvault_remove(g_nvault, typed_name)
        console_print(id, "%L", LANG_SERVER, "CO_REMOVE", in_prefix, typed_name)
        server_print("%L", LANG_SERVER, "CO_REMOVE_INFO", in_prefix, g_name, typed_name)
        PutPrefix(target)

        return PLUGIN_HANDLED
    }

    nvault_set(g_nvault, typed_name, typed_prefix)

    client_prefix[id] = typed_prefix
    
    console_print(id, "%L", LANG_SERVER, "CO_CHANGE", in_prefix, typed_name, typed_prefix)
    server_print("%L", LANG_SERVER, "CO_CHANGE_INFO", in_prefix, g_name, typed_name, typed_prefix)

    return PLUGIN_HANDLED
}

public client_infochanged(id)
{
    if(!is_user_connected(id))
        return PLUGIN_CONTINUE

    new g_old_name[32];

    get_user_info(id, "name", g_name, charsmax(g_name))
    get_user_name(id, g_old_name, charsmax(g_old_name))

    if(!equal(g_name, g_old_name))
    {
        client_prefix[id] = ""
        set_task(0.5, "CheckNvaultPrefix", id)
        return PLUGIN_HANDLED
    }

    return PLUGIN_CONTINUE
}

public CheckNvaultPrefix(const id)
{
    new nvault_prefix[33];
    get_user_name(id, g_name, charsmax(g_name))
    get_pcvar_string(g_custom_current_flag, temp_cvar, charsmax(temp_cvar))

    new data = nvault_get(g_nvault, g_name, nvault_prefix, charsmax(nvault_prefix))

    if(data && get_pcvar_num(g_custom_current) && get_user_flags(id) & read_flags(temp_cvar))
    {
        if((get_pcvar_num(g_bad_prefix) && is_bad_prefix(nvault_prefix)) || (get_pcvar_num(g_prefix_characters) && check_prefix_characters(nvault_prefix)))
        {
            PutPrefix(id)
            return PLUGIN_HANDLED
        }
        client_prefix[id] = nvault_prefix
        return PLUGIN_HANDLED
    }
    else
    {
        PutPrefix(id)
        return PLUGIN_HANDLED
    }
    return PLUGIN_HANDLED
}

stock PutPrefix(const id)
{
    new temp_ip[16];

    get_user_ip(id, temp_ip, charsmax(temp_ip), 1)

    for(new i = 0; i <= pre_ips_count; i++)
    {
        if(equal(temp_ip, ips_collect[i]))
        {
            client_prefix[id] = pre_ips_collect[i]
            
            return PLUGIN_HANDLED
        }
    }

    get_user_name(id, g_name, charsmax(g_name))

    for(new i = 0; i <= pre_names_count; i++)
    {
        if(equal(g_name, names_collect[i]))
        {
            client_prefix[id] = pre_names_collect[i]

            return PLUGIN_HANDLED
        }
    }

    for(new i = 0; i <= pre_flags_count; i++)
    {
        if(get_user_flags(id) & read_flags(flags_collect[i]))
        {
            client_prefix[id] = pre_flags_collect[i]
            
            return PLUGIN_HANDLED
        }
    }
    return PLUGIN_HANDLED
}

stock send_message(const message[], const id, const i)
{
    message_begin(MSG_ONE, g_saytxt, {0, 0, 0}, i)
    write_byte(id)
    write_string(message)
    message_end()
}

bool:check_say_characters(const check_message[])
{
    for(new i = 0; i < charsmax(forbidden_say_symbols); i++)
    {
        if(check_message[0] == forbidden_say_symbols[i])
        {
            return true
        }
    }
    return false
}

bool:check_prefix_characters(const check_prefix[])
{
    for(i = 0; i < charsmax(forbidden_prefixes_symbols); i++)
    {
        if(containi(check_prefix, forbidden_prefixes_symbols[i]) != -1)
        {
            return true
        }
    }
    return false
}

bool:is_bad_prefix(const check_prefix[])
{
    for(new i = 0; i <= bad_prefix_count; i++)
    {            
        if(equali(check_prefix, bad_prefixes_collect[i]))
        {
            return true
        }
    }
    return false
}


Отредактировал: Hnt, - 9.11.2012, 9:47
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Fresenius
сообщение 6.11.2012, 22:57
Сообщение #2


Стаж: 14 лет

Сообщений: 180
Благодарностей: 8
Полезность: < 0

Цитата(Hnt @ 6.11.2012, 2:09) *
Ребят подскажите - имею на руках плагин AdminPrefixes
Не могу понять как вернуть обычный Не цветной чат. Может кто взглянуть на код. Спасибо!

Прикрепленное изображение


Скрытый текст
Код
#include <amxmodx>
#include <amxmisc>
#include <nvault>

#define FLAG_LOAD ADMIN_CFG
#define MAX_PREFIXES 33
#define MAX_BAD_PREFIXES 100

new g_bad_prefix, g_listen, g_listen_flag, g_custom_current, g_custom_current_flag, g_custom_others, g_custom_others_flag, g_say_characters, g_prefix_characters;
new pre_ips_count = 0, pre_names_count = 0, pre_flags_count = 0, bad_prefix_count = 0, i, temp_cvar[2];
new configs_dir[64], file[128], text[128], prefix[32], type[2], acc_type[32], length, line = 0, error[256];
new g_saytxt, g_maxplayers, g_nvault, g_team;
new g_typed[192], g_message[192], g_name[32], typed_prefix[33];
new pre_ips_collect[MAX_PREFIXES][33], ips_collect[MAX_PREFIXES][32], pre_names_collect[MAX_PREFIXES][33], names_collect[MAX_PREFIXES][33], pre_flags_collect[MAX_PREFIXES][33], flags_collect[MAX_PREFIXES][2], bad_prefixes_collect[MAX_BAD_PREFIXES][33], client_prefix[33][33];

new const forbidden_say_symbols[] = {
    "/",
    "!",
    "%",
    "$"
}

new const forbidden_prefixes_symbols[] = {
    "/",
    "\",
    "%",
    "$",
    ".",
    ":",
    "?",
    "!",
    "@",
    "#",
    "%"
}

new const separator[] = "************************************************"
new const in_prefix[] = "[AdminPrefixes]"

public plugin_init()
{
    register_plugin("Admin Prefixes", "2.2", "m0skVi4a;]")

    g_bad_prefix = register_cvar("ap_bad_prefixes", "1")
    g_listen = register_cvar("ap_listen", "1")
    g_listen_flag = register_cvar("ap_listen_flag", "a")
    g_custom_current = register_cvar("ap_custom_current", "1")
    g_custom_current_flag = register_cvar("ap_custom_current_flag", "b")
    g_custom_others = register_cvar("ap_custom_others", "1")
    g_custom_others_flag = register_cvar("ap_custom_others_flag", "c")
    g_say_characters = register_cvar("ap_say_characters", "1")
    g_prefix_characters = register_cvar("ap_prefix_characters", "1")

    g_saytxt = get_user_msgid ("SayText")
    g_maxplayers = get_maxplayers()
    g_nvault = nvault_open("CustomAdminPrefixes")

    register_concmd("ap_reload_prefixes", "LoadPrefixes")
    register_concmd("ap_reload_badprefixes", "LoadBadPrefixes")
    register_concmd("ap_put", "SetPrefix")
    register_concmd("ap_put_player", "SetPlayerPrefix")
    register_clcmd("say", "HookSay")
    register_clcmd("say_team", "HookSayTeam")

    register_dictionary("admin_prefixes.txt")

    get_configsdir(configs_dir, charsmax(configs_dir))

    LoadPrefixes(0)
    LoadBadPrefixes(0)
}
    
public LoadPrefixes(id)
{
    if(!(get_user_flags(id) & FLAG_LOAD))
    {
        console_print(id, "%L", LANG_SERVER, "PREFIX_PERMISSION", in_prefix)
        return PLUGIN_HANDLED
    }

    line = 0, pre_flags_count = 0, pre_ips_count = 0, pre_names_count = 0;
    formatex(file, charsmax(file), "%s/ap_prefixes.ini", configs_dir)

    if(!file_exists(file))
    {
        formatex(error, charsmax(error), "%L", LANG_SERVER, "PREFIX_NOT_FOUND", in_prefix, file)
        set_fail_state(error)
    }

    server_print(separator)

    while(read_file(file, line++ , text, charsmax(text), length) && pre_flags_count <= MAX_PREFIXES)
    {
        if(!text[0] || text[0] == '^n' || text[0] == ';')
            continue

        parse(text, type, charsmax(type), prefix, charsmax(prefix), acc_type, charsmax(acc_type))
        trim(prefix)

        if(!type[0] || !prefix[0] || !acc_type[0])
            continue

        replace_all(prefix, charsmax(prefix), "!g", "^x04")
        replace_all(prefix, charsmax(prefix), "!t", "^x03")
        replace_all(prefix, charsmax(prefix), "!n", "^x01")

        switch(type[0])
        {
            case 'i':
            {
                pre_ips_count++
                pre_ips_collect[pre_ips_count] = prefix
                ips_collect[pre_ips_count] = acc_type
                server_print("%L", LANG_SERVER, "PREFIX_LOAD_IP", in_prefix, prefix, acc_type)
            }
            case 'n':
            {
                pre_names_count++
                pre_names_collect[pre_names_count] = prefix
                names_collect[pre_names_count] = acc_type
                server_print("%L", LANG_SERVER, "PREFIX_LOAD_NAME", in_prefix, prefix, acc_type)
            }
            case 'f':
            {
                pre_flags_count++
                pre_flags_collect[pre_flags_count] = prefix
                flags_collect[pre_flags_count][0] = acc_type[0]
                server_print("%L", LANG_SERVER, "PREFIX_LOAD_FLAG", in_prefix, prefix, acc_type[0])
            }
            default:
            {
                continue
            }
        }
    }

    if(pre_flags_count <= 0 && pre_ips_count <= 0 && pre_names_count <= 0)
    {
        server_print("%L", LANG_SERVER, "PREFIX_NO", in_prefix)
    }

    get_user_name(id, g_name, charsmax(g_name))
    server_print("%L", LANG_SERVER, "PREFIX_LOADED_BY", in_prefix, g_name)
    console_print(id, "%L", LANG_SERVER, "PREFIX_LOADED", in_prefix)

    server_print(separator)

    for(new i = 1; i <= g_maxplayers; i++)
    {
        client_prefix[id] = ""
        CheckNvaultPrefix(i)
    }

    return PLUGIN_HANDLED
}

public LoadBadPrefixes(id)
{
    if(!get_pcvar_num(g_bad_prefix))
    {
        console_print(id, "%L", LANG_SERVER, "BADP_OFF", in_prefix)
        return PLUGIN_HANDLED
    }

    if(!(get_user_flags(id) & FLAG_LOAD))
    {
        console_print(id, "%L", LANG_SERVER, "BADP_PERMISSION", in_prefix)
        return PLUGIN_HANDLED
    }

    line = 0, bad_prefix_count = 0;

    formatex(file, charsmax(file), "%s/ap_bad_prefixes.ini", configs_dir)

    if(!file_exists(file))
    {
        console_print(id, "%L", LANG_SERVER, "BADP_NOT_FOUND", in_prefix, file)
        return PLUGIN_HANDLED        
    }


    server_print(separator)

    while(read_file(file, line++ , text, charsmax(text), length) && bad_prefix_count <= MAX_BAD_PREFIXES)
    {
        if(!text[0] || text[0] == '^n' || text[0] == ';')
            continue

        parse(text, prefix, charsmax(prefix))

        if(!prefix[0])
            continue

        bad_prefix_count++
        bad_prefixes_collect[bad_prefix_count] = prefix
        server_print("%L", LANG_SERVER, "BADP_LOAD", in_prefix, prefix)
    }

    if(bad_prefix_count <= 0)
    {
        server_print("%L", LANG_SERVER, "BADP_LOAD", in_prefix)
    }

    get_user_name(id, g_name, charsmax(g_name))
    server_print("%L", LANG_SERVER, "BADP_LOADED_BY", in_prefix, g_name)
    console_print(id, "%L", LANG_SERVER, "BADP_LOADED", in_prefix)
    
    server_print(separator)

    for(new i = 1; i <= g_maxplayers; i++)
    {
        CheckNvaultPrefix(i)
    }

    return PLUGIN_HANDLED
}

public client_putinserver(id)
{
    client_prefix[id] = ""
    CheckNvaultPrefix(id)
}

public HookSay(id)
{
    read_args(g_typed, charsmax(g_typed))
    remove_quotes(g_typed)

    if(equal(g_typed, "") || !is_user_connected(id))
        return PLUGIN_HANDLED_MAIN
        
    if((client_prefix[id][0] && get_pcvar_num(g_say_characters) == 1) || (!client_prefix[id][0] && get_pcvar_num(g_say_characters) == 2) || get_pcvar_num(g_say_characters) == 3)
    {
        if(check_say_characters(g_typed))
            return PLUGIN_HANDLED_MAIN
    }

    get_user_name(id, g_name, charsmax(g_name))

    g_team = get_user_team(id)

    new const team_info[2][][] = {
        {"*SPEC* ", "*DEAD* ", "*DEAD* ", "*SPEC* "},
        {"", "", "", ""}
    }

    if(client_prefix[id][0])
    {
        formatex(g_message, charsmax(g_message), "^1%s^4%s^3 %s :^4 %s", team_info[is_user_alive(id)][g_team], client_prefix[id], g_name, g_typed)
    }
    else
    {
        formatex(g_message, charsmax(g_message), "^1%s^3%s :^1 %s", team_info[is_user_alive(id)][g_team], g_name, g_typed)
    }

    get_pcvar_string(g_listen_flag, temp_cvar, charsmax(temp_cvar))

    for(new i = 1; i <= g_maxplayers; i++)
    {
        if(!is_user_connected(i))
            continue

        if(is_user_alive(id) && is_user_alive(i) || !is_user_alive(id) && !is_user_alive(i) || get_pcvar_num(g_listen) && get_user_flags(i) & read_flags(temp_cvar))
        {
            send_message(g_message, id, i)
        }
    }

    return PLUGIN_HANDLED_MAIN
}

public HookSayTeam(id)
{
    read_args(g_typed, charsmax(g_typed))
    remove_quotes(g_typed)

    if(equal(g_typed, "") || !is_user_connected(id))
        return PLUGIN_HANDLED_MAIN
        
    if((client_prefix[id][0] && get_pcvar_num(g_say_characters) == 1) || (!client_prefix[id][0] && get_pcvar_num(g_say_characters) == 2) || get_pcvar_num(g_say_characters) == 3)
    {
        if(check_say_characters(g_typed))
            return PLUGIN_HANDLED_MAIN
    }

    get_user_name(id, g_name, charsmax(g_name))

    g_team = get_user_team(id)
    
    new const team_info[2][][] = {
        {"(Spectator) ", "*DEAD*(Terrorist) ", "*DEAD*(Counter-Terrorist) ", "(Spectator) "},
        {"(Spectator) ", "(Terrorist) ", "(Counter-Terrorist) ", "(Spectator) "}
    }

    if(client_prefix[id][0])
    {
        formatex(g_message, charsmax(g_message), "^1%s^4%s^3 %s :^4 %s", team_info[is_user_alive(id)][g_team], client_prefix[id], g_name, g_typed)
    }
    else
    {
        formatex(g_message, charsmax(g_message), "^1%s^3%s :^1 %s", team_info[is_user_alive(id)][g_team], g_name, g_typed)
    }

    get_pcvar_string(g_listen_flag, temp_cvar, charsmax(temp_cvar))

    for(new i = 1; i <= g_maxplayers; i++)
    {
        if(!is_user_connected(i))
            continue

        if(get_user_team(id) == get_user_team(i) || get_pcvar_num(g_listen) && get_user_flags(i) & read_flags(temp_cvar))
        {
            if(is_user_alive(id) && is_user_alive(i) || !is_user_alive(id) && !is_user_alive(i) || get_pcvar_num(g_listen) && get_user_flags(i) & read_flags(temp_cvar))
            {
                send_message(g_message, id, i)
            }
        }
    }

    return PLUGIN_HANDLED_MAIN
}

public SetPrefix(id)
{
    if(!get_pcvar_num(g_custom_current) || !get_pcvar_string(g_custom_current_flag, temp_cvar, charsmax(temp_cvar)))
    {
        console_print(id, "%L", LANG_SERVER, "CUSTOM_OFF", in_prefix)
        return PLUGIN_HANDLED
    }

    if(!(get_user_flags(id) & read_flags(temp_cvar)))
    {
        console_print(id, "%L", LANG_SERVER, "CUSTOM_PERMISSION", in_prefix)
        return PLUGIN_HANDLED
    }

    read_args(typed_prefix, charsmax(typed_prefix))
    remove_quotes(typed_prefix)
    trim(typed_prefix)

    if(get_pcvar_num(g_bad_prefix) && is_bad_prefix(typed_prefix))
    {
        console_print(id, "%L", LANG_SERVER, "CUSTOM_FORBIDDEN", in_prefix, typed_prefix)
        return PLUGIN_HANDLED
    }

    if(get_pcvar_num(g_prefix_characters) && check_prefix_characters(typed_prefix))
    {
        console_print(id, "%L", LANG_SERVER, "CUSTOM_SYMBOL", in_prefix, typed_prefix, forbidden_prefixes_symbols[i])
        return PLUGIN_HANDLED
    }

    get_user_name(id, g_name, charsmax(g_name))

    if(equal(typed_prefix, ""))
    {
        nvault_remove(g_nvault, g_name)
        console_print(id, "%L", LANG_SERVER, "CUSTOM_REMOVE", in_prefix)
        server_print("%L", LANG_SERVER, "CUSTOM_REMOVE_INFO", in_prefix, g_name)
        PutPrefix(id)

        return PLUGIN_HANDLED
    }

    nvault_set(g_nvault, g_name, typed_prefix)

    client_prefix[id] = typed_prefix
    
    console_print(id, "%L", LANG_SERVER, "CUSTOM_CHANGE", in_prefix, typed_prefix)
    server_print("%L", LANG_SERVER, "CUSTOM_CHANGE_INFO", in_prefix, g_name, typed_prefix)

    return PLUGIN_HANDLED
}

public SetPlayerPrefix(id)
{
    if(!get_pcvar_num(g_custom_current) || !get_pcvar_string(g_custom_current_flag, temp_cvar, charsmax(temp_cvar)) || !get_pcvar_num(g_custom_others) || !get_pcvar_string(g_custom_others_flag, temp_cvar, charsmax(temp_cvar)))
    {
        console_print(id, "%L", LANG_SERVER, "CO_OFF", in_prefix)
        return PLUGIN_HANDLED
    }

    if(!(get_user_flags(id) & read_flags(temp_cvar)))
    {
        console_print(id, "%L", LANG_SERVER, "CO_FORBIDDEN", in_prefix)
        return PLUGIN_HANDLED
    }

    new name_tag[64], typed_name[32];

    read_args(name_tag, charsmax(name_tag))
    remove_quotes(name_tag)
    parse(name_tag, typed_name, charsmax(typed_name), typed_prefix, charsmax(typed_prefix))
    trim(typed_prefix)

    if(get_pcvar_num(g_bad_prefix) && is_bad_prefix(typed_prefix))
    {
        console_print(id, "%L", LANG_SERVER, "CUSTOM_FORBIDDEN", in_prefix, typed_prefix)
        return PLUGIN_HANDLED
    }

    if(get_pcvar_num(g_prefix_characters) && check_prefix_characters(typed_prefix))
    {
        console_print(id, "%L", LANG_SERVER, "CUSTOM_SYMBOL", in_prefix, typed_prefix, forbidden_prefixes_symbols[i])
        return PLUGIN_HANDLED
    }

    get_user_name(id, g_name, charsmax(g_name))

    new target = cmd_target(id, typed_name, 1)

    if(!target)
        return PLUGIN_HANDLED

    if(equal(typed_prefix, ""))
    {
        nvault_remove(g_nvault, typed_name)
        console_print(id, "%L", LANG_SERVER, "CO_REMOVE", in_prefix, typed_name)
        server_print("%L", LANG_SERVER, "CO_REMOVE_INFO", in_prefix, g_name, typed_name)
        PutPrefix(target)

        return PLUGIN_HANDLED
    }

    nvault_set(g_nvault, typed_name, typed_prefix)

    client_prefix[id] = typed_prefix
    
    console_print(id, "%L", LANG_SERVER, "CO_CHANGE", in_prefix, typed_name, typed_prefix)
    server_print("%L", LANG_SERVER, "CO_CHANGE_INFO", in_prefix, g_name, typed_name, typed_prefix)

    return PLUGIN_HANDLED
}

public client_infochanged(id)
{
    if(!is_user_connected(id))
        return PLUGIN_CONTINUE

    new g_old_name[32];

    get_user_info(id, "name", g_name, charsmax(g_name))
    get_user_name(id, g_old_name, charsmax(g_old_name))

    if(!equal(g_name, g_old_name))
    {
        client_prefix[id] = ""
        set_task(0.5, "CheckNvaultPrefix", id)
        return PLUGIN_HANDLED
    }

    return PLUGIN_CONTINUE
}

public CheckNvaultPrefix(const id)
{
    new nvault_prefix[33];
    get_user_name(id, g_name, charsmax(g_name))
    get_pcvar_string(g_custom_current_flag, temp_cvar, charsmax(temp_cvar))

    new data = nvault_get(g_nvault, g_name, nvault_prefix, charsmax(nvault_prefix))

    if(data && get_pcvar_num(g_custom_current) && get_user_flags(id) & read_flags(temp_cvar))
    {
        if((get_pcvar_num(g_bad_prefix) && is_bad_prefix(nvault_prefix)) || (get_pcvar_num(g_prefix_characters) && check_prefix_characters(nvault_prefix)))
        {
            PutPrefix(id)
            return PLUGIN_HANDLED
        }
        client_prefix[id] = nvault_prefix
        return PLUGIN_HANDLED
    }
    else
    {
        PutPrefix(id)
        return PLUGIN_HANDLED
    }
    return PLUGIN_HANDLED
}

stock PutPrefix(const id)
{
    new temp_ip[16];

    get_user_ip(id, temp_ip, charsmax(temp_ip), 1)

    for(new i = 0; i <= pre_ips_count; i++)
    {
        if(equal(temp_ip, ips_collect[i]))
        {
            client_prefix[id] = pre_ips_collect[i]
            
            return PLUGIN_HANDLED
        }
    }

    get_user_name(id, g_name, charsmax(g_name))

    for(new i = 0; i <= pre_names_count; i++)
    {
        if(equal(g_name, names_collect[i]))
        {
            client_prefix[id] = pre_names_collect[i]

            return PLUGIN_HANDLED
        }
    }

    for(new i = 0; i <= pre_flags_count; i++)
    {
        if(get_user_flags(id) & read_flags(flags_collect[i]))
        {
            client_prefix[id] = pre_flags_collect[i]
            
            return PLUGIN_HANDLED
        }
    }
    return PLUGIN_HANDLED
}

stock send_message(const message[], const id, const i)
{
    message_begin(MSG_ONE, g_saytxt, {0, 0, 0}, i)
    write_byte(id)
    write_string(message)
    message_end()
}

bool:check_say_characters(const check_message[])
{
    for(new i = 0; i < charsmax(forbidden_say_symbols); i++)
    {
        if(check_message[0] == forbidden_say_symbols[i])
        {
            return true
        }
    }
    return false
}

bool:check_prefix_characters(const check_prefix[])
{
    for(i = 0; i < charsmax(forbidden_prefixes_symbols); i++)
    {
        if(containi(check_prefix, forbidden_prefixes_symbols[i]) != -1)
        {
            return true
        }
    }
    return false
}

bool:is_bad_prefix(const check_prefix[])
{
    for(new i = 0; i <= bad_prefix_count; i++)
    {            
        if(equali(check_prefix, bad_prefixes_collect[i]))
        {
            return true
        }
    }
    return false
}

Держи!
Сделал цветное сообщение - на стд.
#include <amxmodx>
#include <amxmisc>
#include <nvault>

#define FLAG_LOAD ADMIN_CFG
#define MAX_PREFIXES 33
#define MAX_BAD_PREFIXES 100

new g_bad_prefix, g_listen, g_listen_flag, g_custom_current, g_custom_current_flag, g_custom_others, g_custom_others_flag, g_say_characters, g_prefix_characters;
new pre_ips_count = 0, pre_names_count = 0, pre_flags_count = 0, bad_prefix_count = 0, i, temp_cvar[2];
new configs_dir[64], file[128], text[128], prefix[32], type[2], acc_type[32], length, line = 0, error[256];
new g_saytxt, g_maxplayers, g_nvault, g_team;
new g_typed[192], g_message[192], g_name[32], typed_prefix[33];
new pre_ips_collect[MAX_PREFIXES][33], ips_collect[MAX_PREFIXES][32], pre_names_collect[MAX_PREFIXES][33], names_collect[MAX_PREFIXES][33], pre_flags_collect[MAX_PREFIXES][33], flags_collect[MAX_PREFIXES][2], bad_prefixes_collect[MAX_BAD_PREFIXES][33], client_prefix[33][33];

new const forbidden_say_symbols[] = {
"/",
"!",
"%",
"$"
}

new const forbidden_prefixes_symbols[] = {
"/",
"\",
"%",
"$",
".",
":",
"?",
"!",
"@",
"#",
"%"
}

new const separator[] = "************************************************"
new const in_prefix[] = "[AdminPrefixes]"

public plugin_init()
{
register_plugin("Admin Prefixes", "2.2", "m0skVi4a;]")

g_bad_prefix = register_cvar("ap_bad_prefixes", "1")
g_listen = register_cvar("ap_listen", "1")
g_listen_flag = register_cvar("ap_listen_flag", "a")
g_custom_current = register_cvar("ap_custom_current", "1")
g_custom_current_flag = register_cvar("ap_custom_current_flag", "b")
g_custom_others = register_cvar("ap_custom_others", "1")
g_custom_others_flag = register_cvar("ap_custom_others_flag", "c")
g_say_characters = register_cvar("ap_say_characters", "1")
g_prefix_characters = register_cvar("ap_prefix_characters", "1")

g_saytxt = get_user_msgid ("SayText")
g_maxplayers = get_maxplayers()
g_nvault = nvault_open("CustomAdminPrefixes")

register_concmd("ap_reload_prefixes", "LoadPrefixes")
register_concmd("ap_reload_badprefixes", "LoadBadPrefixes")
register_concmd("ap_put", "SetPrefix")
register_concmd("ap_put_player", "SetPlayerPrefix")
register_clcmd("say", "HookSay")
register_clcmd("say_team", "HookSayTeam")

register_dictionary("admin_prefixes.txt")

get_configsdir(configs_dir, charsmax(configs_dir))

LoadPrefixes(0)
LoadBadPrefixes(0)
}

public LoadPrefixes(id)
{
if(!(get_user_flags(id) & FLAG_LOAD))
{
console_print(id, "%L", LANG_SERVER, "PREFIX_PERMISSION", in_prefix)
return PLUGIN_HANDLED
}

line = 0, pre_flags_count = 0, pre_ips_count = 0, pre_names_count = 0;
formatex(file, charsmax(file), "%s/ap_prefixes.ini", configs_dir)

if(!file_exists(file))
{
formatex(error, charsmax(error), "%L", LANG_SERVER, "PREFIX_NOT_FOUND", in_prefix, file)
set_fail_state(error)
}

server_print(separator)

while(read_file(file, line++ , text, charsmax(text), length) && pre_flags_count <= MAX_PREFIXES)
{
if(!text[0] || text[0] == '^n' || text[0] == ';')
continue

parse(text, type, charsmax(type), prefix, charsmax(prefix), acc_type, charsmax(acc_type))
trim(prefix)

if(!type[0] || !prefix[0] || !acc_type[0])
continue

replace_all(prefix, charsmax(prefix), "!g", "^x04")
replace_all(prefix, charsmax(prefix), "!t", "^x03")
replace_all(prefix, charsmax(prefix), "!n", "^x01")

switch(type[0])
{
case 'i':
{
pre_ips_count++
pre_ips_collect[pre_ips_count] = prefix
ips_collect[pre_ips_count] = acc_type
server_print("%L", LANG_SERVER, "PREFIX_LOAD_IP", in_prefix, prefix, acc_type)
}
case 'n':
{
pre_names_count++
pre_names_collect[pre_names_count] = prefix
names_collect[pre_names_count] = acc_type
server_print("%L", LANG_SERVER, "PREFIX_LOAD_NAME", in_prefix, prefix, acc_type)
}
case 'f':
{
pre_flags_count++
pre_flags_collect[pre_flags_count] = prefix
flags_collect[pre_flags_count][0] = acc_type[0]
server_print("%L", LANG_SERVER, "PREFIX_LOAD_FLAG", in_prefix, prefix, acc_type[0])
}
default:
{
continue
}
}
}

if(pre_flags_count <= 0 && pre_ips_count <= 0 && pre_names_count <= 0)
{
server_print("%L", LANG_SERVER, "PREFIX_NO", in_prefix)
}

get_user_name(id, g_name, charsmax(g_name))
server_print("%L", LANG_SERVER, "PREFIX_LOADED_BY", in_prefix, g_name)
console_print(id, "%L", LANG_SERVER, "PREFIX_LOADED", in_prefix)

server_print(separator)

for(new i = 1; i <= g_maxplayers; i++)
{
client_prefix[id] = ""
CheckNvaultPrefix(i)
}

return PLUGIN_HANDLED
}

public LoadBadPrefixes(id)
{
if(!get_pcvar_num(g_bad_prefix))
{
console_print(id, "%L", LANG_SERVER, "BADP_OFF", in_prefix)
return PLUGIN_HANDLED
}

if(!(get_user_flags(id) & FLAG_LOAD))
{
console_print(id, "%L", LANG_SERVER, "BADP_PERMISSION", in_prefix)
return PLUGIN_HANDLED
}

line = 0, bad_prefix_count = 0;

formatex(file, charsmax(file), "%s/ap_bad_prefixes.ini", configs_dir)

if(!file_exists(file))
{
console_print(id, "%L", LANG_SERVER, "BADP_NOT_FOUND", in_prefix, file)
return PLUGIN_HANDLED
}


server_print(separator)

while(read_file(file, line++ , text, charsmax(text), length) && bad_prefix_count <= MAX_BAD_PREFIXES)
{
if(!text[0] || text[0] == '^n' || text[0] == ';')
continue

parse(text, prefix, charsmax(prefix))

if(!prefix[0])
continue

bad_prefix_count++
bad_prefixes_collect[bad_prefix_count] = prefix
server_print("%L", LANG_SERVER, "BADP_LOAD", in_prefix, prefix)
}

if(bad_prefix_count <= 0)
{
server_print("%L", LANG_SERVER, "BADP_LOAD", in_prefix)
}

get_user_name(id, g_name, charsmax(g_name))
server_print("%L", LANG_SERVER, "BADP_LOADED_BY", in_prefix, g_name)
console_print(id, "%L", LANG_SERVER, "BADP_LOADED", in_prefix)

server_print(separator)

for(new i = 1; i <= g_maxplayers; i++)
{
CheckNvaultPrefix(i)
}

return PLUGIN_HANDLED
}

public client_putinserver(id)
{
client_prefix[id] = ""
CheckNvaultPrefix(id)
}

public HookSay(id)
{
read_args(g_typed, charsmax(g_typed))
remove_quotes(g_typed)

if(equal(g_typed, "") || !is_user_connected(id))
return PLUGIN_HANDLED_MAIN

if((client_prefix[id][0] && get_pcvar_num(g_say_characters) == 1) || (!client_prefix[id][0] && get_pcvar_num(g_say_characters) == 2) || get_pcvar_num(g_say_characters) == 3)
{
if(check_say_characters(g_typed))
return PLUGIN_HANDLED_MAIN
}

get_user_name(id, g_name, charsmax(g_name))

g_team = get_user_team(id)

new const team_info[2][][] = {
{"*SPEC* ", "*DEAD* ", "*DEAD* ", "*SPEC* "},
{"", "", "", ""}
}

if(client_prefix[id][0])
{
formatex(g_message, charsmax(g_message), "^1%s^4%s^3 %s : %s", team_info[is_user_alive(id)][g_team], client_prefix[id], g_name, g_typed)
}
else
{
formatex(g_message, charsmax(g_message), "^1%s^3%s : %s", team_info[is_user_alive(id)][g_team], g_name, g_typed)
}

get_pcvar_string(g_listen_flag, temp_cvar, charsmax(temp_cvar))

for(new i = 1; i <= g_maxplayers; i++)
{
if(!is_user_connected(i))
continue

if(is_user_alive(id) && is_user_alive(i) || !is_user_alive(id) && !is_user_alive(i) || get_pcvar_num(g_listen) && get_user_flags(i) & read_flags(temp_cvar))
{
send_message(g_message, id, i)
}
}

return PLUGIN_HANDLED_MAIN
}

public HookSayTeam(id)
{
read_args(g_typed, charsmax(g_typed))
remove_quotes(g_typed)

if(equal(g_typed, "") || !is_user_connected(id))
return PLUGIN_HANDLED_MAIN

if((client_prefix[id][0] && get_pcvar_num(g_say_characters) == 1) || (!client_prefix[id][0] && get_pcvar_num(g_say_characters) == 2) || get_pcvar_num(g_say_characters) == 3)
{
if(check_say_characters(g_typed))
return PLUGIN_HANDLED_MAIN
}

get_user_name(id, g_name, charsmax(g_name))

g_team = get_user_team(id)

new const team_info[2][][] = {
{"(Spectator) ", "*DEAD*(Terrorist) ", "*DEAD*(Counter-Terrorist) ", "(Spectator) "},
{"(Spectator) ", "(Terrorist) ", "(Counter-Terrorist) ", "(Spectator) "}
}

if(client_prefix[id][0])
{
formatex(g_message, charsmax(g_message), "^1%s^4%s^3 %s : %s", team_info[is_user_alive(id)][g_team], client_prefix[id], g_name, g_typed)
}
else
{
formatex(g_message, charsmax(g_message), "^1%s^3%s : %s", team_info[is_user_alive(id)][g_team], g_name, g_typed)
}

get_pcvar_string(g_listen_flag, temp_cvar, charsmax(temp_cvar))

for(new i = 1; i <= g_maxplayers; i++)
{
if(!is_user_connected(i))
continue

if(get_user_team(id) == get_user_team(i) || get_pcvar_num(g_listen) && get_user_flags(i) & read_flags(temp_cvar))
{
if(is_user_alive(id) && is_user_alive(i) || !is_user_alive(id) && !is_user_alive(i) || get_pcvar_num(g_listen) && get_user_flags(i) & read_flags(temp_cvar))
{
send_message(g_message, id, i)
}
}
}

return PLUGIN_HANDLED_MAIN
}

public SetPrefix(id)
{
if(!get_pcvar_num(g_custom_current) || !get_pcvar_string(g_custom_current_flag, temp_cvar, charsmax(temp_cvar)))
{
console_print(id, "%L", LANG_SERVER, "CUSTOM_OFF", in_prefix)
return PLUGIN_HANDLED
}

if(!(get_user_flags(id) & read_flags(temp_cvar)))
{
console_print(id, "%L", LANG_SERVER, "CUSTOM_PERMISSION", in_prefix)
return PLUGIN_HANDLED
}

read_args(typed_prefix, charsmax(typed_prefix))
remove_quotes(typed_prefix)
trim(typed_prefix)

if(get_pcvar_num(g_bad_prefix) && is_bad_prefix(typed_prefix))
{
console_print(id, "%L", LANG_SERVER, "CUSTOM_FORBIDDEN", in_prefix, typed_prefix)
return PLUGIN_HANDLED
}

if(get_pcvar_num(g_prefix_characters) && check_prefix_characters(typed_prefix))
{
console_print(id, "%L", LANG_SERVER, "CUSTOM_SYMBOL", in_prefix, typed_prefix, forbidden_prefixes_symbols[i])
return PLUGIN_HANDLED
}

get_user_name(id, g_name, charsmax(g_name))

if(equal(typed_prefix, ""))
{
nvault_remove(g_nvault, g_name)
console_print(id, "%L", LANG_SERVER, "CUSTOM_REMOVE", in_prefix)
server_print("%L", LANG_SERVER, "CUSTOM_REMOVE_INFO", in_prefix, g_name)
PutPrefix(id)

return PLUGIN_HANDLED
}

nvault_set(g_nvault, g_name, typed_prefix)

client_prefix[id] = typed_prefix

console_print(id, "%L", LANG_SERVER, "CUSTOM_CHANGE", in_prefix, typed_prefix)
server_print("%L", LANG_SERVER, "CUSTOM_CHANGE_INFO", in_prefix, g_name, typed_prefix)

return PLUGIN_HANDLED
}

public SetPlayerPrefix(id)
{
if(!get_pcvar_num(g_custom_current) || !get_pcvar_string(g_custom_current_flag, temp_cvar, charsmax(temp_cvar)) || !get_pcvar_num(g_custom_others) || !get_pcvar_string(g_custom_others_flag, temp_cvar, charsmax(temp_cvar)))
{
console_print(id, "%L", LANG_SERVER, "CO_OFF", in_prefix)
return PLUGIN_HANDLED
}

if(!(get_user_flags(id) & read_flags(temp_cvar)))
{
console_print(id, "%L", LANG_SERVER, "CO_FORBIDDEN", in_prefix)
return PLUGIN_HANDLED
}

new name_tag[64], typed_name[32];

read_args(name_tag, charsmax(name_tag))
remove_quotes(name_tag)
parse(name_tag, typed_name, charsmax(typed_name), typed_prefix, charsmax(typed_prefix))
trim(typed_prefix)

if(get_pcvar_num(g_bad_prefix) && is_bad_prefix(typed_prefix))
{
console_print(id, "%L", LANG_SERVER, "CUSTOM_FORBIDDEN", in_prefix, typed_prefix)
return PLUGIN_HANDLED
}

if(get_pcvar_num(g_prefix_characters) && check_prefix_characters(typed_prefix))
{
console_print(id, "%L", LANG_SERVER, "CUSTOM_SYMBOL", in_prefix, typed_prefix, forbidden_prefixes_symbols[i])
return PLUGIN_HANDLED
}

get_user_name(id, g_name, charsmax(g_name))

new target = cmd_target(id, typed_name, 1)

if(!target)
return PLUGIN_HANDLED

if(equal(typed_prefix, ""))
{
nvault_remove(g_nvault, typed_name)
console_print(id, "%L", LANG_SERVER, "CO_REMOVE", in_prefix, typed_name)
server_print("%L", LANG_SERVER, "CO_REMOVE_INFO", in_prefix, g_name, typed_name)
PutPrefix(target)

return PLUGIN_HANDLED
}

nvault_set(g_nvault, typed_name, typed_prefix)

client_prefix[id] = typed_prefix

console_print(id, "%L", LANG_SERVER, "CO_CHANGE", in_prefix, typed_name, typed_prefix)
server_print("%L", LANG_SERVER, "CO_CHANGE_INFO", in_prefix, g_name, typed_name, typed_prefix)

return PLUGIN_HANDLED
}

public client_infochanged(id)
{
if(!is_user_connected(id))
return PLUGIN_CONTINUE

new g_old_name[32];

get_user_info(id, "name", g_name, charsmax(g_name))
get_user_name(id, g_old_name, charsmax(g_old_name))

if(!equal(g_name, g_old_name))
{
client_prefix[id] = ""
set_task(0.5, "CheckNvaultPrefix", id)
return PLUGIN_HANDLED
}

return PLUGIN_CONTINUE
}

public CheckNvaultPrefix(const id)
{
new nvault_prefix[33];
get_user_name(id, g_name, charsmax(g_name))
get_pcvar_string(g_custom_current_flag, temp_cvar, charsmax(temp_cvar))

new data = nvault_get(g_nvault, g_name, nvault_prefix, charsmax(nvault_prefix))

if(data && get_pcvar_num(g_custom_current) && get_user_flags(id) & read_flags(temp_cvar))
{
if((get_pcvar_num(g_bad_prefix) && is_bad_prefix(nvault_prefix)) || (get_pcvar_num(g_prefix_characters) && check_prefix_characters(nvault_prefix)))
{
PutPrefix(id)
return PLUGIN_HANDLED
}
client_prefix[id] = nvault_prefix
return PLUGIN_HANDLED
}
else
{
PutPrefix(id)
return PLUGIN_HANDLED
}
return PLUGIN_HANDLED
}

stock PutPrefix(const id)
{
new temp_ip[16];

get_user_ip(id, temp_ip, charsmax(temp_ip), 1)

for(new i = 0; i <= pre_ips_count; i++)
{
if(equal(temp_ip, ips_collect[i]))
{
client_prefix[id] = pre_ips_collect[i]

return PLUGIN_HANDLED
}
}

get_user_name(id, g_name, charsmax(g_name))

for(new i = 0; i <= pre_names_count; i++)
{
if(equal(g_name, names_collect[i]))
{
client_prefix[id] = pre_names_collect[i]

return PLUGIN_HANDLED
}
}

for(new i = 0; i <= pre_flags_count; i++)
{
if(get_user_flags(id) & read_flags(flags_collect[i]))
{
client_prefix[id] = pre_flags_collect[i]

return PLUGIN_HANDLED
}
}
return PLUGIN_HANDLED
}

stock send_message(const message[], const id, const i)
{
message_begin(MSG_ONE, g_saytxt, {0, 0, 0}, i)
write_byte(id)
write_string(message)
message_end()
}

bool:check_say_characters(const check_message[])
{
for(new i = 0; i < charsmax(forbidden_say_symbols); i++)
{
if(check_message[0] == forbidden_say_symbols[i])
{
return true
}
}
return false
}

bool:check_prefix_characters(const check_prefix[])
{
for(i = 0; i < charsmax(forbidden_prefixes_symbols); i++)
{
if(containi(check_prefix, forbidden_prefixes_symbols[i]) != -1)
{
return true
}
}
return false
}

bool:is_bad_prefix(const check_prefix[])
{
for(new i = 0; i <= bad_prefix_count; i++)
{
if(equali(check_prefix, bad_prefixes_collect[i]))
{
return true
}
}
return false
}


Если не поможет(хотя должно)посмотри в ланг-файле.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Hnt
сообщение 6.11.2012, 23:12
Сообщение #3


Стаж: 18 лет

Сообщений: 810
Благодарностей: 198
Полезность: 494

Fresenius - привет!

Сообщения стали выводиться цветом каждой команды CT TT ,а не дефолтным :)
Что именно в ланг файле ?

Отредактировал: Hnt, - 9.11.2012, 8:47
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Fresenius
сообщение 6.11.2012, 23:32
Сообщение #4


Стаж: 14 лет

Сообщений: 180
Благодарностей: 8
Полезность: < 0

Цитата(Hnt @ 6.11.2012, 23:12) *
Fresenius - привет!

Сообщения стали выводиться цветом каждой команды CT TT ,а не дефолтным :)
Что именно в ланг файле ?
Навсякий даю ссыль на сам плагиин - Admin Prefixes V2.2 by m0skVi4a ;]

Так точно должно пахать
#include <amxmodx>
#include <amxmisc>
#include <nvault>

#define FLAG_LOAD ADMIN_CFG
#define MAX_PREFIXES 33
#define MAX_BAD_PREFIXES 100

new g_bad_prefix, g_listen, g_listen_flag, g_custom_current, g_custom_current_flag, g_custom_others, g_custom_others_flag, g_say_characters, g_prefix_characters;
new pre_ips_count = 0, pre_names_count = 0, pre_flags_count = 0, bad_prefix_count = 0, i, temp_cvar[2];
new configs_dir[64], file[128], text[128], prefix[32], type[2], acc_type[32], length, line = 0, error[256];
new g_saytxt, g_maxplayers, g_nvault, g_team;
new g_typed[192], g_message[192], g_name[32], typed_prefix[33];
new pre_ips_collect[MAX_PREFIXES][33], ips_collect[MAX_PREFIXES][32], pre_names_collect[MAX_PREFIXES][33], names_collect[MAX_PREFIXES][33], pre_flags_collect[MAX_PREFIXES][33], flags_collect[MAX_PREFIXES][2], bad_prefixes_collect[MAX_BAD_PREFIXES][33], client_prefix[33][33];

new const forbidden_say_symbols[] = {
"/",
"!",
"%",
"$"
}

new const forbidden_prefixes_symbols[] = {
"/",
"\",
"%",
"$",
".",
":",
"?",
"!",
"@",
"#",
"%"
}

new const separator[] = "************************************************"
new const in_prefix[] = "[AdminPrefixes]"

public plugin_init()
{
register_plugin("Admin Prefixes", "2.2", "m0skVi4a;]")

g_bad_prefix = register_cvar("ap_bad_prefixes", "1")
g_listen = register_cvar("ap_listen", "1")
g_listen_flag = register_cvar("ap_listen_flag", "a")
g_custom_current = register_cvar("ap_custom_current", "1")
g_custom_current_flag = register_cvar("ap_custom_current_flag", "b")
g_custom_others = register_cvar("ap_custom_others", "1")
g_custom_others_flag = register_cvar("ap_custom_others_flag", "c")
g_say_characters = register_cvar("ap_say_characters", "1")
g_prefix_characters = register_cvar("ap_prefix_characters", "1")

g_saytxt = get_user_msgid ("SayText")
g_maxplayers = get_maxplayers()
g_nvault = nvault_open("CustomAdminPrefixes")

register_concmd("ap_reload_prefixes", "LoadPrefixes")
register_concmd("ap_reload_badprefixes", "LoadBadPrefixes")
register_concmd("ap_put", "SetPrefix")
register_concmd("ap_put_player", "SetPlayerPrefix")
register_clcmd("say", "HookSay")
register_clcmd("say_team", "HookSayTeam")

register_dictionary("admin_prefixes.txt")

get_configsdir(configs_dir, charsmax(configs_dir))

LoadPrefixes(0)
LoadBadPrefixes(0)
}

public LoadPrefixes(id)
{
if(!(get_user_flags(id) & FLAG_LOAD))
{
console_print(id, "%L", LANG_SERVER, "PREFIX_PERMISSION", in_prefix)
return PLUGIN_HANDLED
}

line = 0, pre_flags_count = 0, pre_ips_count = 0, pre_names_count = 0;
formatex(file, charsmax(file), "%s/ap_prefixes.ini", configs_dir)

if(!file_exists(file))
{
formatex(error, charsmax(error), "%L", LANG_SERVER, "PREFIX_NOT_FOUND", in_prefix, file)
set_fail_state(error)
}

server_print(separator)

while(read_file(file, line++ , text, charsmax(text), length) && pre_flags_count <= MAX_PREFIXES)
{
if(!text[0] || text[0] == '^n' || text[0] == ';')
continue

parse(text, type, charsmax(type), prefix, charsmax(prefix), acc_type, charsmax(acc_type))
trim(prefix)

if(!type[0] || !prefix[0] || !acc_type[0])
continue

replace_all(prefix, charsmax(prefix), "!g", "^x04")
replace_all(prefix, charsmax(prefix), "!t", "^x03")
replace_all(prefix, charsmax(prefix), "!n", "^x01")

switch(type[0])
{
case 'i':
{
pre_ips_count++
pre_ips_collect[pre_ips_count] = prefix
ips_collect[pre_ips_count] = acc_type
server_print("%L", LANG_SERVER, "PREFIX_LOAD_IP", in_prefix, prefix, acc_type)
}
case 'n':
{
pre_names_count++
pre_names_collect[pre_names_count] = prefix
names_collect[pre_names_count] = acc_type
server_print("%L", LANG_SERVER, "PREFIX_LOAD_NAME", in_prefix, prefix, acc_type)
}
case 'f':
{
pre_flags_count++
pre_flags_collect[pre_flags_count] = prefix
flags_collect[pre_flags_count][0] = acc_type[0]
server_print("%L", LANG_SERVER, "PREFIX_LOAD_FLAG", in_prefix, prefix, acc_type[0])
}
default:
{
continue
}
}
}

if(pre_flags_count <= 0 && pre_ips_count <= 0 && pre_names_count <= 0)
{
server_print("%L", LANG_SERVER, "PREFIX_NO", in_prefix)
}

get_user_name(id, g_name, charsmax(g_name))
server_print("%L", LANG_SERVER, "PREFIX_LOADED_BY", in_prefix, g_name)
console_print(id, "%L", LANG_SERVER, "PREFIX_LOADED", in_prefix)

server_print(separator)

for(new i = 1; i <= g_maxplayers; i++)
{
client_prefix[id] = ""
CheckNvaultPrefix(i)
}

return PLUGIN_HANDLED
}

public LoadBadPrefixes(id)
{
if(!get_pcvar_num(g_bad_prefix))
{
console_print(id, "%L", LANG_SERVER, "BADP_OFF", in_prefix)
return PLUGIN_HANDLED
}

if(!(get_user_flags(id) & FLAG_LOAD))
{
console_print(id, "%L", LANG_SERVER, "BADP_PERMISSION", in_prefix)
return PLUGIN_HANDLED
}

line = 0, bad_prefix_count = 0;

formatex(file, charsmax(file), "%s/ap_bad_prefixes.ini", configs_dir)

if(!file_exists(file))
{
console_print(id, "%L", LANG_SERVER, "BADP_NOT_FOUND", in_prefix, file)
return PLUGIN_HANDLED
}


server_print(separator)

while(read_file(file, line++ , text, charsmax(text), length) && bad_prefix_count <= MAX_BAD_PREFIXES)
{
if(!text[0] || text[0] == '^n' || text[0] == ';')
continue

parse(text, prefix, charsmax(prefix))

if(!prefix[0])
continue

bad_prefix_count++
bad_prefixes_collect[bad_prefix_count] = prefix
server_print("%L", LANG_SERVER, "BADP_LOAD", in_prefix, prefix)
}

if(bad_prefix_count <= 0)
{
server_print("%L", LANG_SERVER, "BADP_LOAD", in_prefix)
}

get_user_name(id, g_name, charsmax(g_name))
server_print("%L", LANG_SERVER, "BADP_LOADED_BY", in_prefix, g_name)
console_print(id, "%L", LANG_SERVER, "BADP_LOADED", in_prefix)

server_print(separator)

for(new i = 1; i <= g_maxplayers; i++)
{
CheckNvaultPrefix(i)
}

return PLUGIN_HANDLED
}

public client_putinserver(id)
{
client_prefix[id] = ""
CheckNvaultPrefix(id)
}

public HookSay(id)
{
read_args(g_typed, charsmax(g_typed))
remove_quotes(g_typed)

if(equal(g_typed, "") || !is_user_connected(id))
return PLUGIN_HANDLED_MAIN

if((client_prefix[id][0] && get_pcvar_num(g_say_characters) == 1) || (!client_prefix[id][0] && get_pcvar_num(g_say_characters) == 2) || get_pcvar_num(g_say_characters) == 3)
{
if(check_say_characters(g_typed))
return PLUGIN_HANDLED_MAIN
}

get_user_name(id, g_name, charsmax(g_name))

g_team = get_user_team(id)

new const team_info[2][][] = {
{"*SPEC* ", "*DEAD* ", "*DEAD* ", "*SPEC* "},
{"", "", "", ""}
}

if(client_prefix[id][0])
{
formatex(g_message, charsmax(g_message), "^1%s^4%s^3 %s :^1 %s", team_info[is_user_alive(id)][g_team], client_prefix[id], g_name, g_typed)
}
else
{
formatex(g_message, charsmax(g_message), "^1%s^3%s :^1 %s", team_info[is_user_alive(id)][g_team], g_name, g_typed)
}

get_pcvar_string(g_listen_flag, temp_cvar, charsmax(temp_cvar))

for(new i = 1; i <= g_maxplayers; i++)
{
if(!is_user_connected(i))
continue

if(is_user_alive(id) && is_user_alive(i) || !is_user_alive(id) && !is_user_alive(i) || get_pcvar_num(g_listen) && get_user_flags(i) & read_flags(temp_cvar))
{
send_message(g_message, id, i)
}
}

return PLUGIN_HANDLED_MAIN
}

public HookSayTeam(id)
{
read_args(g_typed, charsmax(g_typed))
remove_quotes(g_typed)

if(equal(g_typed, "") || !is_user_connected(id))
return PLUGIN_HANDLED_MAIN

if((client_prefix[id][0] && get_pcvar_num(g_say_characters) == 1) || (!client_prefix[id][0] && get_pcvar_num(g_say_characters) == 2) || get_pcvar_num(g_say_characters) == 3)
{
if(check_say_characters(g_typed))
return PLUGIN_HANDLED_MAIN
}

get_user_name(id, g_name, charsmax(g_name))

g_team = get_user_team(id)

new const team_info[2][][] = {
{"(Spectator) ", "*DEAD*(Terrorist) ", "*DEAD*(Counter-Terrorist) ", "(Spectator) "},
{"(Spectator) ", "(Terrorist) ", "(Counter-Terrorist) ", "(Spectator) "}
}

if(client_prefix[id][0])
{
formatex(g_message, charsmax(g_message), "^1%s^4%s^3 %s :^1 %s", team_info[is_user_alive(id)][g_team], client_prefix[id], g_name, g_typed)
}
else
{
formatex(g_message, charsmax(g_message), "^1%s^3%s :^1 %s", team_info[is_user_alive(id)][g_team], g_name, g_typed)
}

get_pcvar_string(g_listen_flag, temp_cvar, charsmax(temp_cvar))

for(new i = 1; i <= g_maxplayers; i++)
{
if(!is_user_connected(i))
continue

if(get_user_team(id) == get_user_team(i) || get_pcvar_num(g_listen) && get_user_flags(i) & read_flags(temp_cvar))
{
if(is_user_alive(id) && is_user_alive(i) || !is_user_alive(id) && !is_user_alive(i) || get_pcvar_num(g_listen) && get_user_flags(i) & read_flags(temp_cvar))
{
send_message(g_message, id, i)
}
}
}

return PLUGIN_HANDLED_MAIN
}

public SetPrefix(id)
{
if(!get_pcvar_num(g_custom_current) || !get_pcvar_string(g_custom_current_flag, temp_cvar, charsmax(temp_cvar)))
{
console_print(id, "%L", LANG_SERVER, "CUSTOM_OFF", in_prefix)
return PLUGIN_HANDLED
}

if(!(get_user_flags(id) & read_flags(temp_cvar)))
{
console_print(id, "%L", LANG_SERVER, "CUSTOM_PERMISSION", in_prefix)
return PLUGIN_HANDLED
}

read_args(typed_prefix, charsmax(typed_prefix))
remove_quotes(typed_prefix)
trim(typed_prefix)

if(get_pcvar_num(g_bad_prefix) && is_bad_prefix(typed_prefix))
{
console_print(id, "%L", LANG_SERVER, "CUSTOM_FORBIDDEN", in_prefix, typed_prefix)
return PLUGIN_HANDLED
}

if(get_pcvar_num(g_prefix_characters) && check_prefix_characters(typed_prefix))
{
console_print(id, "%L", LANG_SERVER, "CUSTOM_SYMBOL", in_prefix, typed_prefix, forbidden_prefixes_symbols[i])
return PLUGIN_HANDLED
}

get_user_name(id, g_name, charsmax(g_name))

if(equal(typed_prefix, ""))
{
nvault_remove(g_nvault, g_name)
console_print(id, "%L", LANG_SERVER, "CUSTOM_REMOVE", in_prefix)
server_print("%L", LANG_SERVER, "CUSTOM_REMOVE_INFO", in_prefix, g_name)
PutPrefix(id)

return PLUGIN_HANDLED
}

nvault_set(g_nvault, g_name, typed_prefix)

client_prefix[id] = typed_prefix

console_print(id, "%L", LANG_SERVER, "CUSTOM_CHANGE", in_prefix, typed_prefix)
server_print("%L", LANG_SERVER, "CUSTOM_CHANGE_INFO", in_prefix, g_name, typed_prefix)

return PLUGIN_HANDLED
}

public SetPlayerPrefix(id)
{
if(!get_pcvar_num(g_custom_current) || !get_pcvar_string(g_custom_current_flag, temp_cvar, charsmax(temp_cvar)) || !get_pcvar_num(g_custom_others) || !get_pcvar_string(g_custom_others_flag, temp_cvar, charsmax(temp_cvar)))
{
console_print(id, "%L", LANG_SERVER, "CO_OFF", in_prefix)
return PLUGIN_HANDLED
}

if(!(get_user_flags(id) & read_flags(temp_cvar)))
{
console_print(id, "%L", LANG_SERVER, "CO_FORBIDDEN", in_prefix)
return PLUGIN_HANDLED
}

new name_tag[64], typed_name[32];

read_args(name_tag, charsmax(name_tag))
remove_quotes(name_tag)
parse(name_tag, typed_name, charsmax(typed_name), typed_prefix, charsmax(typed_prefix))
trim(typed_prefix)

if(get_pcvar_num(g_bad_prefix) && is_bad_prefix(typed_prefix))
{
console_print(id, "%L", LANG_SERVER, "CUSTOM_FORBIDDEN", in_prefix, typed_prefix)
return PLUGIN_HANDLED
}

if(get_pcvar_num(g_prefix_characters) && check_prefix_characters(typed_prefix))
{
console_print(id, "%L", LANG_SERVER, "CUSTOM_SYMBOL", in_prefix, typed_prefix, forbidden_prefixes_symbols[i])
return PLUGIN_HANDLED
}

get_user_name(id, g_name, charsmax(g_name))

new target = cmd_target(id, typed_name, 1)

if(!target)
return PLUGIN_HANDLED

if(equal(typed_prefix, ""))
{
nvault_remove(g_nvault, typed_name)
console_print(id, "%L", LANG_SERVER, "CO_REMOVE", in_prefix, typed_name)
server_print("%L", LANG_SERVER, "CO_REMOVE_INFO", in_prefix, g_name, typed_name)
PutPrefix(target)

return PLUGIN_HANDLED
}

nvault_set(g_nvault, typed_name, typed_prefix)

client_prefix[id] = typed_prefix

console_print(id, "%L", LANG_SERVER, "CO_CHANGE", in_prefix, typed_name, typed_prefix)
server_print("%L", LANG_SERVER, "CO_CHANGE_INFO", in_prefix, g_name, typed_name, typed_prefix)

return PLUGIN_HANDLED
}

public client_infochanged(id)
{
if(!is_user_connected(id))
return PLUGIN_CONTINUE

new g_old_name[32];

get_user_info(id, "name", g_name, charsmax(g_name))
get_user_name(id, g_old_name, charsmax(g_old_name))

if(!equal(g_name, g_old_name))
{
client_prefix[id] = ""
set_task(0.5, "CheckNvaultPrefix", id)
return PLUGIN_HANDLED
}

return PLUGIN_CONTINUE
}

public CheckNvaultPrefix(const id)
{
new nvault_prefix[33];
get_user_name(id, g_name, charsmax(g_name))
get_pcvar_string(g_custom_current_flag, temp_cvar, charsmax(temp_cvar))

new data = nvault_get(g_nvault, g_name, nvault_prefix, charsmax(nvault_prefix))

if(data && get_pcvar_num(g_custom_current) && get_user_flags(id) & read_flags(temp_cvar))
{
if((get_pcvar_num(g_bad_prefix) && is_bad_prefix(nvault_prefix)) || (get_pcvar_num(g_prefix_characters) && check_prefix_characters(nvault_prefix)))
{
PutPrefix(id)
return PLUGIN_HANDLED
}
client_prefix[id] = nvault_prefix
return PLUGIN_HANDLED
}
else
{
PutPrefix(id)
return PLUGIN_HANDLED
}
return PLUGIN_HANDLED
}

stock PutPrefix(const id)
{
new temp_ip[16];

get_user_ip(id, temp_ip, charsmax(temp_ip), 1)

for(new i = 0; i <= pre_ips_count; i++)
{
if(equal(temp_ip, ips_collect[i]))
{
client_prefix[id] = pre_ips_collect[i]

return PLUGIN_HANDLED
}
}

get_user_name(id, g_name, charsmax(g_name))

for(new i = 0; i <= pre_names_count; i++)
{
if(equal(g_name, names_collect[i]))
{
client_prefix[id] = pre_names_collect[i]

return PLUGIN_HANDLED
}
}

for(new i = 0; i <= pre_flags_count; i++)
{
if(get_user_flags(id) & read_flags(flags_collect[i]))
{
client_prefix[id] = pre_flags_collect[i]

return PLUGIN_HANDLED
}
}
return PLUGIN_HANDLED
}

stock send_message(const message[], const id, const i)
{
message_begin(MSG_ONE, g_saytxt, {0, 0, 0}, i)
write_byte(id)
write_string(message)
message_end()
}

bool:check_say_characters(const check_message[])
{
for(new i = 0; i < charsmax(forbidden_say_symbols); i++)
{
if(check_message[0] == forbidden_say_symbols[i])
{
return true
}
}
return false
}

bool:check_prefix_characters(const check_prefix[])
{
for(i = 0; i < charsmax(forbidden_prefixes_symbols); i++)
{
if(containi(check_prefix, forbidden_prefixes_symbols[i]) != -1)
{
return true
}
}
return false
}

bool:is_bad_prefix(const check_prefix[])
{
for(new i = 0; i <= bad_prefix_count; i++)
{
if(equali(check_prefix, bad_prefixes_collect[i]))
{
return true
}
}
return false
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Hnt
сообщение 7.11.2012, 0:03
Сообщение #5


Стаж: 18 лет

Сообщений: 810
Благодарностей: 198
Полезность: 494

Да все замечательно! ok.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 8.11.2012, 10:20
Сообщение #6
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

мусор а не плагин.
этот исходник больше чем чем 100 строк. я себе писал цветной, и без багов и ошибок, длина до 40 строк.

Отредактировал: Orty_Hart, - 8.11.2012, 10:20
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Hnt
сообщение 8.11.2012, 11:49
Сообщение #7


Стаж: 18 лет

Сообщений: 810
Благодарностей: 198
Полезность: 494

Цитата(Orty_Hart @ 8.11.2012, 12:20) *
мусор а не плагин.
этот исходник больше чем чем 100 строк. я себе писал цветной, и без багов и ошибок, длина до 40 строк.

Он как то отличается по функциям?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 8.11.2012, 12:25
Сообщение #8
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

Hnt,
ну меньше проверок, функций и т.д.

Цитата
register_concmd("ap_reload_prefixes", "LoadPrefixes")
register_concmd("ap_reload_badprefixes", "LoadBadPrefixes")
register_concmd("ap_put", "SetPrefix")
register_concmd("ap_put_player", "SetPlayerPrefix")
register_clcmd("say", "HookSay")
register_clcmd("say_team", "HookSayTeam")


ap_reload_prefixes, ap_reload_badprefixes, ap_put, ap_put_player - зачем?

посмотри сколько кваров:
Цитата
g_bad_prefix = register_cvar("ap_bad_prefixes", "1")
g_listen = register_cvar("ap_listen", "1")
g_listen_flag = register_cvar("ap_listen_flag", "a")
g_custom_current = register_cvar("ap_custom_current", "1")
g_custom_current_flag = register_cvar("ap_custom_current_flag", "b")
g_custom_others = register_cvar("ap_custom_others", "1")
g_custom_others_flag = register_cvar("ap_custom_others_flag", "c")
g_say_characters = register_cvar("ap_say_characters", "1")
g_prefix_characters = register_cvar("ap_prefix_characters", "1")


зачем они? если ты точно знаешь что тебе нужно...

Отредактировал: Orty_Hart, - 8.11.2012, 12:26
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Hnt
сообщение 8.11.2012, 20:06
Сообщение #9


Стаж: 18 лет

Сообщений: 810
Благодарностей: 198
Полезность: 494

Может быть, еще удивляет то что привязка идет по IP ,Ник или Флагу ,но нет по ID. superstition.gif
У тебя твой плагин для паблика есть? Или "был когда то" но сейчас его нет ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 8.11.2012, 22:17
Сообщение #10
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

Hnt,
он и сейчас есть. я могу написать тебе, так как ты хочешь. без лишних проверок и т.д.
напиши мне какая должна быть строчка.

например:
[Админ] PROKiller : 9 tyt admin!
*DEAD* [Админ] PROKiller : 9 tyt admin!
*Connter-Terror* [Админ] PROKiller : 9 tyt admin!
*Connter-Terror* *DEAD* [Админ] PROKiller : 9 tyt admin!

напиши все 4 вида сообщений, когда Админ жив, мертв, и когда он пишет под живим и мертвым игрокам своей команды.
так-же если он пишет в чат, его слышат все? т.е. Если он мертв, написал что-то в чат, все игроки в том числе и живие видят что он пишет.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Hnt
сообщение 8.11.2012, 22:46
Сообщение #11


Стаж: 18 лет

Сообщений: 810
Благодарностей: 198
Полезность: 494

Цитата
он и сейчас есть. я могу написать тебе, так как ты хочешь. без лишних проверок и т.д.

Спасибо конечно ,но я просто не вижу нужды что-либо писать заного ? Может проще в нем оптимизировать код ?. В принципе он функционален - что не хватает там ( к примеру для меня ) ,так это привязки по ID - определенного пользователя ( не только хочется дать Админам префикс ). Если есть желание можешь его оптимизировать и добавить привязку к ID ?

Скрытый текст
[ADMIN] PROKiller : test!
*DEAD* [ADMIN] PROKiller : test!
*Connter-Terrorist* [ADMIN] PROKiller : test!
*Connter-Terrorist* *DEAD* [ADMIN] PROKiller : test!


Отредактировал: Hnt, - 8.11.2012, 22:51
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 8.11.2012, 22:56
Сообщение #12
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

Hnt,
т.е. ты выбрал игрока, и у него идет приставка [admin] в чате? это можно сделать. но зачем?Оо
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Hnt
сообщение 8.11.2012, 23:09
Сообщение #13


Стаж: 18 лет

Сообщений: 810
Благодарностей: 198
Полезность: 494

Цитата
т.е. ты выбрал игрока, и у него идет приставка [admin] в чате? это можно сделать. но зачем?Оо

Нет не админ ,все префиксы я меняю в ap_prefixes.ini


Скрытый текст
;"i" "[PREFIX IP]" "IP"
;"n" "[PREFIX NAME]" "Ник"
;"f" "[PREFIX FLAG]" "Флаг"

"f" "[BOSS]" "a"
"f" "[ADMIN]" "b"
"f" "[VIP]" "p"


Искал плагин с минимум функционала для VIP ( приставка и слот ,в качестве бесплатного поощрения постоянным пользователям ) ,наткнулся на Префексы ( то что мне нужно ). Вообще к админу добавлять не особо планировал ,ну если только себе [BOSS] - )) Считаешь глупо?

Отредактировал: Hnt, - 8.11.2012, 23:15
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Avrora
сообщение 9.11.2012, 7:21
Сообщение #14


Стаж: 13 лет
Город: Санкт-Петербург


Сообщений: 806
Благодарностей: 171
Полезность: 95

Могу тебе дать исходник. Там есть такие префиксы:

[Gamer] - Приставка у игрока (Можно вырезать)
[Admin] - Приставка у админа
[Men] - Приставка если ты Админ + ВИп
[VIP] - Приставка у вип игрока
[Boss] - Приставка у Гл админа
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Hnt
сообщение 9.11.2012, 7:42
Сообщение #15


Стаж: 18 лет

Сообщений: 810
Благодарностей: 198
Полезность: 494

Цитата(Avrora @ 9.11.2012, 9:21) *
Могу тебе дать исходник. Там есть такие префиксы:

[Gamer] - Приставка у игрока (Можно вырезать)
[Admin] - Приставка у админа
[Men] - Приставка если ты Админ + ВИп
[VIP] - Приставка у вип игрока
[Boss] - Приставка у Гл админа

Благодарю thank_you2.gif ,но думаю мне хватит того что у меня есть и вроде все работает, и чат не напоминает зеленку спс Fresenius ,и удобно что править можно в ap_prefixes.ini ,не лазя в исходник.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя 3ple
сообщение 9.11.2012, 8:38
Сообщение #16
Стаж: 13 лет

Сообщений: 74
Благодарностей: 7
Полезность: 8

а можно сделать админам вот такую приставу?

[Админ] User : Text

или вот так

[Админ] User : Text
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Hnt
сообщение 9.11.2012, 8:53
Сообщение #17


Стаж: 18 лет

Сообщений: 810
Благодарностей: 198
Полезность: 494

Ты имеешь в виду цвет? Или Русификацию?

Отредактировал: Hnt, - 9.11.2012, 8:53
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя 3ple
сообщение 9.11.2012, 9:12
Сообщение #18
Стаж: 13 лет

Сообщений: 74
Благодарностей: 7
Полезность: 8

цвет, конечно.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 9.11.2012, 9:32
Сообщение #19
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

3ple,
тебе нужна простая приставка?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Hnt
сообщение 9.11.2012, 9:32
Сообщение #20


Стаж: 18 лет

Сообщений: 810
Благодарностей: 198
Полезность: 494

Цитата(3ple @ 9.11.2012, 10:38) *
а можно сделать админам вот такую приставу?

[Админ] User : Text

или вот так

[Админ] User : Text


Редактируется в файле ap_prefixes.ini

Цитата
"f" "!n[!gBOSS!n]" "a"


!t цвет команды , !g зеленый цывет, !n обычный (желтый) цвет.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: