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

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

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

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

> Правила форума

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

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер

IDEAL VIP

, не открываеться меню(
NERPATOLUQ
сообщение 30.11.2014, 12:33
Сообщение #1
Стаж: 12 лет

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

помгите решить проблему, стоит IDEAL VIP. не открываеться меню( работает только сигнал и надпись когда админ заходит и тег в табе, всё(
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Bloo
сообщение 30.11.2014, 12:34
Сообщение #2


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

NERPATOLUQ, исходник где?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
NERPATOLUQ
сообщение 30.11.2014, 12:38
Сообщение #3
Стаж: 12 лет

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

Цитата(Bloo @ 30.11.2014, 12:30) *
NERPATOLUQ, исходник где?


"Содержание"
Код
/*
*-------------------Информация--------------------*
* Название: IDEAL VIP
* Автор: Ba/lePa
* Версия: 3.1
* Последнее обновление: 03.04.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
*                Настроить плагин по своему усмотрению.
*
*----------------История изменений----------------*
*
* 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")
*
*2.9
*    [!!] Человек с ником Ba/lePa без заданного пароля не сможет пользоваться випкой.
*    [!]     Добавлен квар: amx_vipMusic - отвечающий за проигрывания звука при заходе vip игрока
*
*3.0
*    [!] Попрален баг с проигрыванием звука при коннекте випа
*    [+] Добавлено показывание наносимого/принимаемого урона
*
*3.1
*    [+] Исправлена ошибка в логах: invalid CVAR pointer
*    [+] Убрана проверка на мой ник(ибо ухожу из кс все равно ^^ )
*    [!]    Теперь, если у вип есть бомба, то она не сбрасывается
*    [*] Поправлен цвет худа принимаемого урона
*    [*] Фикс отображаемого урона в Damager'е (округление теперь в меньшую сторону)
*
*-------------------------------------------------*
*
* P.S. Если понравился плагин, не откажусь от благодарности ^^
*        Хоть 5 рублей, хоть 10, а лучше 100 ^^ ваше участие будет очень приятно :)
*
*    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.9"
#define AUTHOR "Ba/lePa"

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

#define music // Если звук при входе админа не нужен, то поставьте // перед #define


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

new g_Round, g_Weapon[33], g_vip
new PlayerBomb[33] = false
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 cvar_music
new cvar_damage, cvar_hudsek

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;

new string[32]

new hud;
public plugin_precache()
{
    if(check_map())
    {
        gl_not_map = true
        return;
    }
    
    #if defined(music)
        precache_sound("IDEAL_VIP/ideal_sound.wav")
    #endif
}

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)
    RegisterHam(Ham_TakeDamage, "player", "ham_damage")

    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]");
    #if defined(music)
        cvar_music            =    register_cvar("amx_vipMusic", "1");
    #endif
    cvar_damage            =    register_cvar("amx_vipdamager", "1");
    cvar_hudsek            =    register_cvar("amx_viphudsek", "5.0");
    
    get_pcvar_string(cvar_prefix, string, charsmax(string))
    
    SayText = get_user_msgid("SayText")
    hud = CreateHudSyncObj();
}

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;
    
    if(is_user_cool(id))
        set_task(0.5, "vip_connect", id + 132)
}

public vip_connect(TASKID)
{
    new id = TASKID - 132;
    
    #if defined(music)
        if(get_pcvar_num(cvar_music))
            client_cmd(0, "spk IDEAL_VIP/ideal_sound.wav");
    #endif
    
    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)
{
    PlayerBomb[Player] = false
    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(PlayerBomb[id])
    {
        fm_give_item(id, "weapon_c4");
        cs_set_user_plant(id);
        PlayerBomb[id] = false;
    }
    
    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)
{
    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 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))
                PlayerBomb[id] = true
                
            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))
                PlayerBomb[id] = true
            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))
                PlayerBomb[id] = true
            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))
                PlayerBomb[id] = true
            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))
                PlayerBomb[id] = true
            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

    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))
            }
        }
    }
}

public ham_damage(victim, weapon, killer, Float:fDamage, damagebits)
{
    if(get_pcvar_num(cvar_damage) == 0)
        return;
    
    if(victim == killer)
        return;
    
    if(!is_user_cool(killer) && !is_user_cool(victim))
        return;
        
    if(get_user_team(killer) == get_user_team(victim))
        return;
    
    new iDamage;
    iDamage = floatround(fDamage, floatround_floor)
    
    if(iDamage <= 0)
        return;
    
    if(is_user_cool(victim))
    {
        set_hudmessage(255, 0, 0, 0.6, 0.5, 0, 0.0, get_pcvar_float(cvar_hudsek), 0.0, 0.0, 1)
        ShowSyncHudMsg(victim, hud, "%d", iDamage);
    }
    if(is_user_cool(killer))
    {
        set_hudmessage(0, 100, 255, 0.4, 0.5, 0, 0.0, get_pcvar_float(cvar_hudsek), 0.0, 0.0, 2)
        ShowSyncHudMsg(killer, hud, "%d", iDamage);
    }
}

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;
    
    if((get_user_flags(id) & vip_flag))
        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
}

!
Исходники убираем в тег PAWN или CODE+SPOILER
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 30.11.2014, 12:46
Сообщение #4


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

NERPATOLUQ, как меню открываешь?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
NERPATOLUQ
сообщение 30.11.2014, 12:47
Сообщение #5
Стаж: 12 лет

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

Цитата(Bloo @ 30.11.2014, 12:42) *
NERPATOLUQ, как меню открываешь?


в CFG написано оно открываеться автоматом со 2 раунда)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 30.11.2014, 12:50
Сообщение #6


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

NERPATOLUQ, ну так попробуй для начала в ручную его открыть /vipmenu в чате и main_menu в консоли.
И конфиг сюда под спойлер.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
NERPATOLUQ
сообщение 30.11.2014, 12:52
Сообщение #7
Стаж: 12 лет

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

Цитата(Bloo @ 30.11.2014, 12:46) *
NERPATOLUQ, ну так попробуй для начала в ручную его открыть /vipmenu в чате и main_menu в консоли.
И конфиг сюда под спойлер.


"CFG"
//===========================================//
//= Конфигурационный файл плагина IDEAL_VIP =//
//===========================================//

//================================================================================
==
//amx_vip_prefix "!y[!gIDEAL VIP!y]" // Префикс перед сообщениями //
// !y будет желтый текст после этого знака //
// !g будет зеленый текст после этого знака //
// !t будет по цвету команды текст //
//================================================================================
==

//====[По умолчанию: 2]=============================================================
amx_vipround 2 // C какого раунда можно открыть вип меню //
//================================================================================
==

//====[По умолчанию: 0]=============================================================
amx_vipzaround 6 // Сколько раз за раунд можно открыть меню //
// (0 - хоть сколько) //
//================================================================================
==

//====[По умолчанию: 1]=============================================================
amx_vipshow 1 // Автоматически открывать в начале рануда Вип меню //
// (1 - да; 0 - нет) //
//================================================================================
==

//====[По умолчанию: 1]=============================================================
amx_chatshow 1 // Оповещение в чат при взятии оружия випом //
// (1 - ововещать; 0 - не оповещать) //
//================================================================================
==

//====[По умолчанию: 0]=============================================================
amx_vipautopistols 1 // В начале каждого раунда давать Дигл/Usp //
// (1- Да; 0 - Нет) //
//================================================================================
==

//====[По умолчанию: 1]=============================================================
amx_vipautoset 1 // Давать в начале каждого раунда гранаты //
// (1 - Да; 0 - Нет) //
//================================================================================
==

//====[По умолчанию: 30]============================================================
amx_viphealth 1 // Сколько хп давать випу за убийство //
//================================================================================
==

//====[По умолчанию: 60]============================================================
amx_viphealth_head 2 // Cколько хп давать випу за убийство в голову //
//================================================================================
==

//====[ По умолчанию: 100]==========================================================
amx_viphealth_max 200 // Максимальное количество хп у vip //
//================================================================================
==

//====[По умолчанию: 500]===========================================================
amx_vipmoney 50000 // Сколько денег давать випу за убийство //
//================================================================================
==

//====[По умолчанию: 1000]==========================================================
amx_vipmoney_head 10000 // Сколько денег давать випу за убийство в голову //
//================================================================================
==

//====[По умолчанию: 1]=============================================================
amx_viptab 1 // Показывать статус VIP в таблице на tab //
// (1 - да; 0 - нет) //
//================================================================================
==

//====[По умолчанию: 2]=============================================================
amx_showconnect 2 // Показывать сообщение при подключении випа //
// (0 - нет; 1 - Чат; 2 - Худ; 3 - Дхуд) //
// ( 4 - Чат + Худ; 5 - Чат + Дхуд ) //
---------------------только для HUD/DHUD--------------------------------------------
amx_vipRED 100 // Количество красного цвета 0-255 //
amx_vipGREEN 100 // Количество зеленого цвета 0-255 //
amx_vipBLUE 100 // Количество синего цвета 0-255 //
---------------------только для HUD/DHUD--------------------------------------------
amx_vipXcoord -1.0 // от 0.0 до 1.0 или -1.0 Координата сообщения х //
// 0.0 - левая сторона; 1.0 - правая; -1.0 - центр //
// //
// Допускаются только дробные значения! //
// //
amx_vipYcoord 0.6 // от 0.0 до 1.0 или -1.0 Координата сообщения y //
// 0.0 - самый верх; 1.0 - самый низ; -1.0 - центр //
//================================================================================
==
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 30.11.2014, 12:58
Сообщение #8


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

NERPATOLUQ, вручную открывается?
Проверь значение кваров в консоли сервера
amx_vipshow и amx_vipround просто без значений забей в консоль, он вернет текущее значение.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
NERPATOLUQ
сообщение 30.11.2014, 13:09
Сообщение #9
Стаж: 12 лет

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

Цитата(Bloo @ 30.11.2014, 12:54) *
NERPATOLUQ, вручную открывается?
Проверь значение кваров в консоли сервера
amx_vipshow и amx_vipround просто без значений забей в консоль, он вернет текущее значение.


вручную да открываеться

Цитата(Bloo @ 30.11.2014, 12:54) *
NERPATOLUQ, вручную открывается?
Проверь значение кваров в консоли сервера
amx_vipshow и amx_vipround просто без значений забей в консоль, он вернет текущее значение.


amx_vipshow 1 amx_vipround 2

Цитата(NERPATOLUQ @ 30.11.2014, 13:00) *
вручную да открываеться



amx_vipshow 1 amx_vipround 2


почему же оно само не открываеться(((
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 30.11.2014, 13:16
Сообщение #10


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

Наверное проблема где то тут
Код:
        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);
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
NERPATOLUQ
сообщение 30.11.2014, 13:35
Сообщение #11
Стаж: 12 лет

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

Цитата(Bloo @ 30.11.2014, 13:12) *
Наверное проблема где то тут
Код:
        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);
}


а как хотябы забиднить say /vipmenu?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 30.11.2014, 13:35
Сообщение #12


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

NERPATOLUQ, не стоит ничего биндить, лучше хукнуть стандартную кнопку какаю нибудь.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
NERPATOLUQ
сообщение 30.11.2014, 13:38
Сообщение #13
Стаж: 12 лет

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

Цитата(Bloo @ 30.11.2014, 13:31) *
NERPATOLUQ, не стоит ничего биндить, лучше хукнуть стандартную кнопку какаю нибудь.


это как обьясни пожалуйста
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 30.11.2014, 13:53
Сообщение #14


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

NERPATOLUQ, добавить в исходник:
Код:
register_clcmd("nightvision", "main_menu")

Так при вызове ночного виденья (по дефолту N) будет открываться меню, соответственно само ночное виденье работать не будет. Так можно поставить вызов на любое стандартное действие.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
NERPATOLUQ
сообщение 30.11.2014, 13:59
Сообщение #15
Стаж: 12 лет

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

Цитата(Bloo @ 30.11.2014, 13:49) *
NERPATOLUQ, добавить в исходник:
Код:
register_clcmd("nightvision", "main_menu")

Так при вызове ночного виденья (по дефолту N) будет открываться меню, соответственно само ночное виденье работать не будет. Так можно поставить вызов на любое стандартное действие.


пожалуйста пропиши полностью код чтобы открывать меню на букву t
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 30.11.2014, 14:04
Сообщение #16


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

NERPATOLUQ, естественно если спрей у игрока на другой букве забинден, то и меню будет открываться на нее
Код:
register_clcmd("impulse 201", "main_menu")
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
NERPATOLUQ
сообщение 30.11.2014, 14:29
Сообщение #17
Стаж: 12 лет

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

Цитата(Bloo @ 30.11.2014, 14:00) *
NERPATOLUQ, естественно если спрей у игрока на другой букве забинден, то и меню будет открываться на нее
Код:
register_clcmd("impulse 201", "main_menu")


а как забиндить? /vipmenu

Отредактировал: NERPATOLUQ, - 30.11.2014, 14:30
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
notty
сообщение 30.11.2014, 15:23
Сообщение #18
Стаж: 11 лет

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

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

Цитата(NERPATOLUQ @ 30.11.2014, 13:25) *
а как забиндить? /vipmenu

bind "кнопка" "vipmenu"
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 1.12.2014, 12:23
Сообщение #19


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

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