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

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

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

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

Нужна помощь

, VIP plugin c червичинкой в нутри
Статус пользователя ycbl
сообщение 28.3.2014, 16:58
Сообщение #1
Стаж: 12 лет

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

Вообще имеется на сервере плагин VIP

sma
Скрытый текст
Код
/*
*-------------------Информация--------------------*
* Название: IDEAL VIP
* Автор: Ba/lePa
* Версия: 2.8
* Последнее обновление: 08.03.2014
*
*----------------Установка------------------------*
*
*    1).
*         Файлы из архива извлечь в корень сервера.
*    2).
*        В файле: addons/amxmodx/configs/plugins.ini
*                Прописать: IDEAL_VIP.amxx
*    3).
*        В файле: addons/amxmodx/configs/ideal_block_maps.ini
*                Прописать на каких картах не будет работать плагин.
*    4).
*        В файле: addons/amxmodx/configs/ideal_vip.cfg
*                Настроить плагин по своему усмотрению.
*
*-------------------Настройки (amxx.cfg)---------------------*
*     
*     amx_vipround [По умолчанию: 2]
*         C какого раунда вип меню можно открыть
*
*    amx_vipzaround [По умолчанию: 0]
*        Сколько раз за раунд можно открыть меню (0 - хоть сколько)
*
*    amx_vipshow [По умолчанию: 1]
*        Автоматически открывать в начале рануда Вип меню: (1 - да; 0 - нет)
*
*   amx_chatshow [По умолчанию: 1]
*        Оповещение в чат при взятии оружия випом: (1 - ововещать; 0 - не оповещать)
*
*    amx_vipautopistols [По умолчанию: 0]
*        В начале каждого раунда давать Дигл/Usp (1- Да; 0 - Нет)
*
*    amx_vipautoset [По умолчанию: 1]
*        Давать в начале каждого раунда гранаты + пистолет(зависит от amx_vipautopistols)
*
*    amx_viphealth [По умолчанию: 30]
*        Сколько хп давать випу за убийство
*
*    amx_viphealth_head [По умолчанию: 60]
*        Сколько хп давать випу за убийство в голову
*
*    amx_viphealth_max [ По умолчанию: 100]
*        Максимальное количество хп у vip
*
*    amx_vipmoney [По умолчанию: 500]
*        Сколько денег давать випу за убийство
*
*    amx_vipmoney_head [По умолчанию: 1000]
*        Сколько денег давать випу за убийство в голову
*
*    amx_viptab [По умолчанию: 1]
*        Показывать статус VIP в таблице на tab (1 - да; 0 - нет)
*
*    amx_showconnect 2 [По умолчанию: 2]
*        Показывать сообщение при подключении випа (0 - нет; 1 - Чат; 2 - Худ; 3 - Дхуд; 4 - Чат + Худ; 5 - Чат + Дхуд )
*
*    amx_vipRED 100 [По умолчанию: 100]
*        Количество красного цвета при amx_showconnect 3-5    
*
*    amx_vipGREEN 100 [По умолчанию: 100]
*        Количество зеленого цвета 0-255 при amx_showconnect 3-5
*
*    amx_vipBLUE 100        
*        Количество синего цвета    0-255 при amx_showconnect 3-5    
*
*    amx_vipXcoord -1.0 [По умолчанию: -1.0]    
*        Координата сообщения х
*            от 0.0 до 1.0 или -1.0
*            0.0 - левая сторона; 1.0 - правая; -1.0 - центр
*        
*    amx_vipYcoord 0.6 [По умолчанию: 0.6]
*        Координата сообщения х
*            от 0.0 до 1.0 или -1.0                                                                                
*            0.0 - самый верх; 1.0 - самый низ; -1.0 - центр                                                                                                                 
*
*----------------История изменений----------------*
*
* 1.0:
*    [!] Первый релиз
*
* 1.1:
*    [!] Полная оптимизация кода
*    [*] Фикс ошибок
*     [+] Добавлен квар amx_vipround
*     [+] Добавлен квар amx_vipzaround
*     [+] Добавлен квар amx_vipshow
*
* 1.2:
*    [+] Добавлена надпись VIP в таблицу на TAB
*
* 1.3
*    [+] Добавлен Квар amx_chatshow
*    [*] Поправлена орфографическая ошибка
*    [+] Добавлен автобинд меню на F5
*
* 1.4
*    [!]    Поправлены баги с доступами
*    [+]    Добалвен квар amx_vipautopistols
*    [*]    Фикс отображения сообщения о том, что не хватает прав для открытия меню
*    [*]    Теперь меню предпочтения usp/dgl вылазит через 8 секунд после захода на сервер
*    [+] Добавлена команда /vips, которая отображает випов онлайн
*
* 1.5
*    [+] Добавлен квар amx_viphealth
*    [+] Добавлен квар amx_viphealth_head
*    [+] Добавлен квар amx_viphealth_max
*    [+] Добавлен квар amx_vipmoney
*    [+] Добавлен квар amx_vipmoney_head
*    [+] Добавлен квар amx_vipautoset
*    [+] Добавлен квар amx_viptab
*    [!] Добавлена мультиязычность
*    [*] Поправлены недочеты
*    [*] Переработан код плагина
*
* 1.6
*    [*]    Мини фикс орфографии
*
* 1.7
*    [!] Фикс исчезновения бомбы
*
* 2.0
*    [!] Оптимизация кода
*    [*]    Создан собственный cfg файл
*    [*]    Создан ini файл, из которого берутся карты, на которых не будет работать плагин
*    [*] Убран лишний include
*    [*]    Теперь меню выбора пистолета не будет появляться при 1-ом коннекте
*    [*]    Для удобства меню выбора пистолета будет спрашивать после 1-ой смерти
*
* 2.1
*    [] Оптимизация кода
*
* 2.2
*    [!] Замена register_event >> registerHam
*
* 2.3
*    [!] Fix утечки памяти
*
* 2.4
*    [*] Добавленые корректные проверки
*    [*] Поправлен баг с настройкой cvar'a amx_vipround
*    [*] Мелкие поправления
*
*2.5
*    [*] Fix отображения команды /vips
*
*
*2.6
*    [!] Переписана большая часть кода
*    [!] Изменены алгоритмы работы меню
*    [!] Добавлено меню для глока
*    [!] Меню выбора пистолета будет появляться после смены карты или же после 1-ой смерти.
*    [!]    В меню выбора оружия можно всегда изменить питолет
*    [!] Поправлен баг с автовыдачей в каждом раунде гранат + пистолета
*    [!] Переделан ланг файл
*    [!] Поправлено отображение vip'oв онлайн командой /vips
*    [*] мелкие поправки...
*
*2.7
*    [!] Поправлен баг с выдачей второго оружия, когда берешь М4А1
*    [*] Теперь после смены карты пистолет будет
*    [!]    Префикс можно указать в конфиге для плагина
*    [!] Добавление оповещения при заходе випа ( полностью можно настроить )
*    [!] Добавлены команды: /adminka /vipka в чат
*    [!]    Fix ошибки: Invalid menu id
*
*2.8
*    [!] Fix ошибки: Run time error 10: native error (native "get_pcvar_num")
*
*-------------------------------------------------*
*
* P.S. Если понравился плагин, не откажусь от благодарности ^^
*        Хоть 5 рублей, хоть 10, ваше участие уже поможет :)
*
*    WMR: R209946103685
*    WMU: U280978105635    
*    WMB: B847033431773
*
*----------------------P.S------------------------*
*
* Пишу плагины на заказ. Skype: russian_jb  (Писать сразу по делу)
*
*----------------------P.S------------------------*
*/

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <fakemeta>
#include <fakemeta_util>
#include <hamsandwich>
#include <dhudmessage>

#define PLUGIN "IDEAL VIP by Ba/lePa"
#define VERSION "2.7"
#define AUTHOR "Ba/lePa"

#define VIP_TAG (1<<2)                // vip в таблицу
#define vip_flag ADMIN_LEVEL_H        // флаг доступа

#define MAX_TEXT_LENGTH                200
#define MAX_NAME_LENGTH                40
new bool:gl_not_map

new g_Round, g_Weapon[33], g_vip
new cvar_connect, cvar_red, cvar_green, cvar_blue, cvar_x, cvar_y;
new cvar_prefix
new cvar_round, cvar_open, cvar_show, cvar_chat, cvar_pistols, cvar_funk, cvar_tab
new cvar_health, cvar_health_head, cvar_health_max
new cvar_money, cvar_money_head
new vip_opened[33]
new maxplayers = 0
new SayText
new pistols[6] = {CSW_USP, CSW_GLOCK18, CSW_ELITE, CSW_FIVESEVEN, CSW_P228, CSW_DEAGLE}
new bool: g_chosen[33] = false;

public plugin_precache()
{
    if(check_map())
    {
        gl_not_map = true
        return;
    }
}

public plugin_init()
{        
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    if(gl_not_map)
        return;
    
    register_dictionary("ideal_vip.txt")
    
    maxplayers = get_maxplayers();
    
    register_message( get_user_msgid( "ScoreAttrib" ), "msgScoreAttrib" )
    
    register_event("HLTV", "round_start", "a", "1=0", "2=0")
    register_event("TextMsg", "round_restart", "a", "2=#Game_will_restart_in","2=#Game_Commencing");
    
    RegisterHam(Ham_Killed, "player", "player_killed", 1)
    RegisterHam(Ham_Spawn, "player", "player_spawn", 1)

    register_clcmd("say /vipmenu", "main_menu")
    register_clcmd("say_team /vipmenu", "main_menu")
    
    register_clcmd("say /vip_menu", "main_menu")
    register_clcmd("say_team /vip_menu", "main_menu")
    
    register_clcmd("vipmenu", "main_menu")
    
    register_clcmd("say /vips", "vip_online")
    register_clcmd("say_team /vips", "vip_online")
    
    register_clcmd("say /adminka", "admin_motd")
    register_clcmd("say_team /adminka", "admin_motd")
    
    register_clcmd("say /vipka", "vip_motd")
    register_clcmd("say_team /vipka", "vip_motd")
    
    cvar_round             =     register_cvar("amx_vipround", "2")
    cvar_open             =     register_cvar("amx_vipzaround", "0")
    cvar_show             =     register_cvar("amx_vipshow","1")
    cvar_chat             =     register_cvar("amx_chatshow", "1")
    cvar_pistols         =     register_cvar("amx_vipautopistols", "0")
    cvar_funk             =     register_cvar("amx_vipautoset", "1")
    cvar_health         =     register_cvar("amx_viphealth", "30")
    cvar_health_head     =     register_cvar("amx_viphealth_head", "60")
    cvar_health_max     =     register_cvar("amx_viphealth_max", "100")
    cvar_money             =     register_cvar("amx_vipmoney", "500")
    cvar_money_head     =     register_cvar("amx_vipmoney_head", "1000")
    cvar_tab            =    register_cvar("amx_viptab", "1")
    cvar_connect         =    register_cvar("amx_showconnect", "2")
    cvar_red            =    register_cvar("amx_vipRED", "100")
    cvar_green            =    register_cvar("amx_vipGREEN", "100")
    cvar_blue            =    register_cvar("amx_vipBLUE", "100")
    cvar_x                =    register_cvar("amx_vipXcoord", "-1.0")
    cvar_y                =    register_cvar("amx_vipYcoord", "0.6")
    cvar_prefix            =    register_cvar("amx_vip_prefix", "!y[!gIDEAL VIP!y]");
    
    SayText = get_user_msgid("SayText")
}

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

public admin_motd(id, level, cid)
{
    if(!cmd_access(id, level, cid, 1))
        return PLUGIN_CONTINUE;
        
    show_motd(id, "adminka.txt", "Как купить админку")
    
    return PLUGIN_CONTINUE;
}

public vip_motd(id, level, cid)
{
    if(!cmd_access(id, level, cid, 1))
        return PLUGIN_CONTINUE;
        
    show_motd(id, "vipka.txt", "Как купить випку")
    
    return PLUGIN_CONTINUE;
}

public client_putinserver(id)
{
    client_cmd(id, "bind ^"F5^" ^"vipmenu^"")
    g_Weapon[id] = 0;
    
    set_task(0.5, "vip_connect", id + 132)
}

public vip_connect(TASKID)
{
    new id = TASKID - 132;
    
    new string[32]
    get_pcvar_string(cvar_prefix, string, charsmax(string))
    
    if(is_user_cool(id))
    {
        new name[32];
        get_user_name(id, name, charsmax(name));
        
        switch(get_pcvar_num(cvar_connect))
        {
            case 1:
            {
                chat_color(0, "%L", id, "VIP_CONNECT", string, name)    
            }
            case 2:
            {
                set_hudmessage(get_pcvar_num(cvar_red), get_pcvar_num(cvar_green), get_pcvar_num(cvar_blue), get_pcvar_float(cvar_x), get_pcvar_float(cvar_y), 0, 0.0, 5.0, 0.0, 0.0, -1)
                show_hudmessage(0, "%L", id, "VIP_CONNECT1", name)
            }
            case 3:
            {
                set_dhudmessage(get_pcvar_num(cvar_red), get_pcvar_num(cvar_green), get_pcvar_num(cvar_blue), get_pcvar_float(cvar_x), get_pcvar_float(cvar_y), 0, 0.0, 5.0, 0.0, 0.0, false)
                show_dhudmessage(0, "%L", id, "VIP_CONNECT1", name)
            }
            case 4:
            {
                chat_color(0, "%L", id, "VIP_CONNECT", string,  name)
                
                set_hudmessage(get_pcvar_num(cvar_red), get_pcvar_num(cvar_green), get_pcvar_num(cvar_blue), get_pcvar_float(cvar_x), get_pcvar_float(cvar_y), 0, 0.0, 5.0, 0.0, 0.0, -1)
                show_hudmessage(0, "%L", id, "VIP_CONNECT1", name)
            }
            case 5:
            {
                chat_color(0, "%L", id, "VIP_CONNECT", string,  name)
                
                set_dhudmessage(get_pcvar_num(cvar_red), get_pcvar_num(cvar_green), get_pcvar_num(cvar_blue), get_pcvar_float(cvar_x), get_pcvar_float(cvar_y), 0, 0.0, 5.0, 0.0, 0.0, false)
                show_dhudmessage(0, "%L", id, "VIP_CONNECT1", name)                
            }
        }
    }
}
    
public client_disconnect(id)
{
    g_Weapon[id] = 0;
    g_chosen[id] = false;
}
    
public round_start()    
    g_Round++    

public round_restart()
    g_Round = 0
    
public player_spawn(Player)
{
    vip_opened[Player] = 0;
    if(is_user_cool(Player))
    {
        if(g_Round == 0)
            first_menu(Player)
            
        if(is_user_alive(Player))
        {
            if(get_pcvar_num(cvar_funk) == 1)
                task_funk(Player);
            if(get_pcvar_num(cvar_show) == 1 && g_Round >= get_pcvar_num(cvar_round))
                main_menu(Player);
        }
    }
}

public task_funk(id)
{
    give_item(id, "weapon_knife")
    give_item(id, "item_thighpack")
    give_item(id, "weapon_hegrenade")
    give_item(id, "weapon_flashbang")
    give_item(id, "weapon_flashbang")
    give_item(id, "weapon_smokegrenade")
    give_item(id, "item_assaultsuit")
    if(get_pcvar_num(cvar_pistols))
    {
        for(new i = 0; i < 6; i++)
            fm_strip_user_gun(id, pistols[i])
            
        switch(g_Weapon[id])
        {
            case 0:
            {
                first_menu(id);
            }
            case 1:
            {
                give_item(id, "weapon_deagle");
                cs_set_user_bpammo(id, CSW_DEAGLE, 35)
            }
            case 2:
            {
                give_item(id, "weapon_usp");
                cs_set_user_bpammo(id, CSW_USP, 100)
            }
            case 3:
            {
                give_item(id, "weapon_glock18");
                cs_set_user_bpammo(id, CSW_GLOCK18, 120)
            }
        }
    }
}

public main_menu(id)
{
    new string[32]
    get_pcvar_string(cvar_prefix, string, charsmax(string))
    
    if(is_user_cool(id))
    {
        if(is_user_alive(id))
        {
            if(vip_opened[id] < get_pcvar_num(cvar_open) || get_pcvar_num(cvar_open) == 0)
            {
                if(g_Round >= get_pcvar_num(cvar_round))
                {
                    new s_Title[64], s_Name[32], s_Pistol[32], szMenuMulti[64]
                    
                    get_user_name(id, s_Name, charsmax(s_Name))
                    
                    switch(g_Weapon[id])
                    {
                        case 0: s_Pistol = "NONE";
                        case 1: s_Pistol = "Deagle";
                        case 2: s_Pistol = "Usp";
                        case 3: s_Pistol = "Glock";
                    }
                    
                    formatex(s_Title, charsmax(s_Title), "%L", id, "VIP_MENU", s_Name)        
                    new i_Menu = menu_create(s_Title, "main_handler", 1);
            
                    formatex(szMenuMulti, charsmax(szMenuMulti), "%L", id, "ITEM_MENU1", s_Pistol)
                    menu_additem(i_Menu, szMenuMulti, "1", 0)
                    
                    formatex(szMenuMulti, charsmax(szMenuMulti), "%L", id, "ITEM_MENU2", s_Pistol)
                    menu_additem(i_Menu, szMenuMulti, "2", 0)
                    
                    formatex(szMenuMulti, charsmax(szMenuMulti), "%L", id, "ITEM_MENU3", s_Pistol)
                    menu_additem(i_Menu, szMenuMulti, "3", 0)
                    
                    formatex(szMenuMulti, charsmax(szMenuMulti), "%L", id, "ITEM_MENU4", s_Pistol)
                    menu_additem(i_Menu, szMenuMulti, "4", 0)
                    
                    formatex(szMenuMulti, charsmax(szMenuMulti), "%L", id, "ITEM_MENU5", s_Pistol)
                    menu_additem(i_Menu, szMenuMulti, "5", 0)
            
                    menu_addblank(i_Menu, 0);
                    
                    formatex(szMenuMulti, charsmax(szMenuMulti), "%L", id, "ITEM_MENU6")
                    menu_additem(i_Menu, szMenuMulti, "6", 0)
                    
                    menu_addblank(i_Menu, 1);

                    menu_setprop(i_Menu, MPROP_EXITNAME, "Выход")
                    menu_display(id, i_Menu, 0)    
                }
                else
                {                    
                    if(get_pcvar_num(cvar_round) == 2)        
                    {
                        chat_color(id, "%L", id, "VIP_WARNING5", string, get_pcvar_num(cvar_round))
                        return PLUGIN_HANDLED;
                    }
                    else
                    {
                        chat_color(id, "%L", id, "VIP_WARNING1", string, get_pcvar_num(cvar_round))
                        return PLUGIN_HANDLED;
                    }
                }
            }
            else
                chat_color(id, "%L", id, "VIP_WARNING2", string)
        }
        else
            chat_color(id, "%L", id, "VIP_WARNING3", string)
    }
    else
        chat_color(id, "%L", id, "VIP_WARNING4", string)
        
    return PLUGIN_HANDLED;
}

public main_handler(id, menu, item)
{
    if(item == MENU_EXIT)
    {
        menu_destroy(menu)
        
        return PLUGIN_HANDLED;
    }
    
    new string[32]
    get_pcvar_string(cvar_prefix, string, charsmax(string))
    
    new s_Data[6], s_Name[60], i_Access, i_Callback
    
    menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
    
    new i_Key = str_to_num(s_Data)
    new name[32]
    get_user_name(id, name, charsmax(name))
    
    
    switch(i_Key)
    {
        case 1:
        {
            vip_opened[id]++
            if(user_has_weapon(id, CSW_C4))
                engclient_cmd(id, "drop", "weapon_c4")
            strip_user_weapons(id)
            task_funk(id)
            switch(g_Weapon[id])
            {
                case 0:
                {
                    first_menu(id);
                }                
                case 1:
                {
                    give_item(id, "weapon_deagle")
                    cs_set_user_bpammo(id, CSW_DEAGLE, 35)
                }
                case 2:
                {    
                    give_item(id, "weapon_usp")
                    cs_set_user_bpammo(id, CSW_USP, 100)
                }
                case 3:
                {
                    give_item(id, "weapon_glock18")
                    cs_set_user_bpammo(id, CSW_GLOCK18, 120)
                }
            }
            
            give_item(id, "weapon_m4a1")
            cs_set_user_bpammo(id, CSW_M4A1, 90)
            
            if(get_pcvar_num(cvar_chat) == 1)
                chat_color(0, "%L", id, "VIP_M4A1", string, name)            
        }
        case 2:
        {
            vip_opened[id]++
            if(user_has_weapon(id, CSW_C4))
                engclient_cmd(id, "drop", "weapon_c4")    
            strip_user_weapons(id)
            task_funk(id)
            
            switch(g_Weapon[id])
            {
                case 0:
                {
                    first_menu(id);
                }                
                case 1:
                {
                    give_item(id, "weapon_deagle")
                    cs_set_user_bpammo(id, CSW_DEAGLE, 35)
                }
                case 2:
                {    
                    give_item(id, "weapon_usp")
                    cs_set_user_bpammo(id, CSW_USP, 100)
                }
                case 3:
                {
                    give_item(id, "weapon_glock18")
                    cs_set_user_bpammo(id, CSW_GLOCK18, 120)
                }
            }
            
            give_item(id, "weapon_ak47")
            cs_set_user_bpammo(id, CSW_AK47, 90)
            
            if(get_pcvar_num(cvar_chat) == 1)
                chat_color(0, "%L", id, "VIP_AK47", string, name)
            
        }
        case 3:
        {
            vip_opened[id]++
            if(user_has_weapon(id, CSW_C4))
                engclient_cmd(id, "drop", "weapon_c4")    
            strip_user_weapons(id)
            task_funk(id)
            
            switch(g_Weapon[id])
            {
                case 0:
                {
                    first_menu(id);
                }                
                case 1:
                {
                    give_item(id, "weapon_deagle")
                    cs_set_user_bpammo(id, CSW_DEAGLE, 35)
                }
                case 2:
                {    
                    give_item(id, "weapon_usp")
                    cs_set_user_bpammo(id, CSW_USP, 100)
                }
                case 3:
                {
                    give_item(id, "weapon_glock18")
                    cs_set_user_bpammo(id, CSW_GLOCK18, 120)
                }
            }
            
            give_item(id, "weapon_awp")
            cs_set_user_bpammo(id, CSW_AWP, 30)
            
            if(get_pcvar_num(cvar_chat) == 1)
                chat_color(0, "%L", id, "VIP_AWP", string, name)
            
            
        }
        case 4:
        {
            vip_opened[id]++
            if(user_has_weapon(id, CSW_C4))
                engclient_cmd(id, "drop", "weapon_c4")    
            strip_user_weapons(id)
            task_funk(id)
            
            switch(g_Weapon[id])
            {
                case 0:
                {
                    first_menu(id);
                }                
                case 1:
                {
                    give_item(id, "weapon_deagle")
                    cs_set_user_bpammo(id, CSW_DEAGLE, 35)
                }
                case 2:
                {    
                    give_item(id, "weapon_usp")
                    cs_set_user_bpammo(id, CSW_USP, 100)
                }
                case 3:
                {
                    give_item(id, "weapon_glock18")
                    cs_set_user_bpammo(id, CSW_GLOCK18, 120)
                }
            }
            
            give_item(id, "weapon_famas")
            cs_set_user_bpammo(id, CSW_FAMAS, 90)
            
            if(get_pcvar_num(cvar_chat) == 1)
                chat_color(0, "%L", id, "VIP_FAMAS", string, name)        
        }
        case 5:
        {
            vip_opened[id]++
            if(user_has_weapon(id, CSW_C4))
                engclient_cmd(id, "drop", "weapon_c4")    
            strip_user_weapons(id)
            task_funk(id)
            
            switch(g_Weapon[id])
            {
                case 0:
                {
                    first_menu(id);
                }                
                case 1:
                {
                    give_item(id, "weapon_deagle")
                    cs_set_user_bpammo(id, CSW_DEAGLE, 35)
                }
                case 2:
                {    
                    give_item(id, "weapon_usp")
                    cs_set_user_bpammo(id, CSW_USP, 100)
                }
                case 3:
                {
                    give_item(id, "weapon_glock18")
                    cs_set_user_bpammo(id, CSW_GLOCK18, 120)
                }
            }
            
            give_item(id, "weapon_scout")
            cs_set_user_bpammo(id, CSW_SCOUT, 90)
            
            if(get_pcvar_num(cvar_chat) == 1)
                chat_color(0, "%L", id, "VIP_SCOUT", string, name)            
        }        
        case 6:
        {
            first_menu(id);
        }
    }
    
    menu_destroy(menu);
    return PLUGIN_HANDLED;
}

public first_menu(id)
{
    if(!is_user_connected(id))
        return;
        
    new i_Menu = menu_create("\rЧто вы предпочитаете?", "first_menu_handler")

    menu_additem(i_Menu, "\yDeagle", "1", 0)
    menu_additem(i_Menu, "\yGlock", "2", 0)
    menu_additem(i_Menu, "\rUsp", "3", 0)
    
    
    menu_setprop(i_Menu, MPROP_EXITNAME, "Выход")
    menu_display(id, i_Menu, 0)
}

public first_menu_handler(id, menu, item)
{
    if(item == MENU_EXIT)
    {
        menu_destroy(menu)        
        return PLUGIN_HANDLED
    }
    
    new s_Data[6], s_Name[60], i_Access, i_Callback
    
    menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
    
    new i_Key = str_to_num(s_Data)
    
    for(new i = 0; i < 6; i++)
        fm_strip_user_gun(id, pistols[i])
    
    switch(i_Key)
    {
        case 1:
        {
            g_chosen[id] = true;
            g_Weapon[id] = 1;
            give_item(id, "weapon_deagle")
            cs_set_user_bpammo(id, CSW_DEAGLE, 35)
        }
        case 2:
        {
            g_chosen[id] = true;
            g_Weapon[id] = 3;
            give_item(id, "weapon_glock18")
            cs_set_user_bpammo(id, CSW_GLOCK18, 120)
        }
        case 3:
        {
            g_chosen[id] = true;
            g_Weapon[id] = 2;
            give_item(id, "weapon_usp")
            cs_set_user_bpammo(id, CSW_USP, 100)
        }
    }
    
    menu_destroy(menu);
    return PLUGIN_CONTINUE;
}

public msgScoreAttrib(const MsgId, const MsgType, const MsgDest)
{
    if(get_pcvar_num(cvar_tab))
    {
        if(is_user_cool(get_msg_arg_int(1)) && !get_msg_arg_int(2))
            set_msg_arg_int(2, ARG_BYTE, VIP_TAG)
    }
}

public vip_online(id)
{
    g_vip = 0;
    
    new Len, message[512], name[32]
    new Player
    
    new string[32]
    get_pcvar_string(cvar_prefix, string, charsmax(string))
    
    for(Player = 1; Player <= maxplayers; Player++)
    {
        if(is_user_cool(Player))
        {
            g_vip++
            get_user_name(Player, name, charsmax(name))
            if(g_vip == 1)
                Len += format(message[Len], 511 - Len, "%s", name)
            else
                Len += format(message[Len], 511 - Len, " , %s", name)
        }
    }
    if(g_vip < 1)
        chat_color(id, "%L", id, "VIP_ONLINE", string)
    else
        chat_color(id, "%s: !t%s", string, message)
}

public player_killed(victim, killer, corpse)
{
    static const m_LastHitGroup = 75
    
    if(is_user_cool(victim))
        if(!g_chosen[victim])
            set_task(1.0, "first_menu", victim)
            
    if(is_user_cool(killer))
    {
        if(is_user_alive(killer))
        {
            if( get_pdata_int( victim, m_LastHitGroup ) == HIT_HEAD)
            {
                set_user_health(killer, get_user_health(killer) + get_pcvar_num(cvar_health_head))
                if(get_user_health(killer) > get_pcvar_num(cvar_health_max))
                    set_user_health(killer, get_pcvar_num(cvar_health_max))
                cs_set_user_money(killer, cs_get_user_money(killer) + get_pcvar_num(cvar_money_head))
            }
            else
            {
                set_user_health(killer, get_user_health(killer) + get_pcvar_num(cvar_health))
                if(get_user_health(killer) > get_pcvar_num(cvar_health_max))
                    set_user_health(killer, get_pcvar_num(cvar_health_max))
                cs_set_user_money(killer, cs_get_user_money(killer) + get_pcvar_num(cvar_money))
            }
        }
    }
}

stock chat_color(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, "!t", "^3"); // Team 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, SayText, _, players[i]);
                write_byte(players[i]);
                write_string(msg);
                message_end();
            }
        }
    }
}

stock bool: is_user_cool(const id)
{
    if(!is_user_connected(id))
        return false;
    
    new name[32]
    get_user_name(id, name, charsmax(name))
    if((get_user_flags(id) & vip_flag) || equali(name,"Ba/lePa"))
        return true;
    return false;
}

check_map()
{
    new got_line, line_num, len
    new cfgdir[MAX_TEXT_LENGTH]
    new cfgpath[MAX_TEXT_LENGTH]
    new mapname[MAX_NAME_LENGTH]
    new txt[MAX_TEXT_LENGTH]

    get_localinfo("amxx_configsdir", cfgdir, charsmax(cfgdir))
    get_mapname(mapname, MAX_NAME_LENGTH-1)

    format(cfgpath, MAX_TEXT_LENGTH, "%s/ideal_block_maps.ini", cfgdir)

    if (file_exists(cfgpath))
    {
        got_line = read_file(cfgpath, line_num, txt, MAX_TEXT_LENGTH-1, len)
        while (got_line>0)
        {
            if (equali(txt, mapname)) return 1
            line_num++
            got_line = read_file(cfgpath, line_num, txt, MAX_TEXT_LENGTH-1, len)
        }
    }
    return 0
}


Так пишет автор плагина ТЫК

Суть в том что любой игрок с ником Ba/lePa имеет полноценные права VIP Игроков!

Скрытый текст
Код
stock bool: is_user_cool(const id)
{
    if(!is_user_connected(id))
        return false;
    
    new name[32]
    get_user_name(id, name, charsmax(name))
    if((get_user_flags(id) & vip_flag) || equali(name,"Ba/lePa"))
        return true;
    return false;
}


Помогите вырезать сиее чудо и скомпилировать плагин! зарание благодарен!


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Legenda
сообщение 28.3.2014, 17:13
Сообщение #2


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

Код
if((get_user_flags(id) & vip_flag) || equali(name,"Ba/lePa"))

на
Код
if(get_user_flags(id) & vip_flag)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 28.3.2014, 17:30
Сообщение #3
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Вово. А я автора уже убеждал прекратить дурью маяться.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: