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

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

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

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

Не выдаются гранаты, нет префикса VIP в табе, и нет оповещения о входе VIP.

, Не выдаются гранаты, нет префикса VIP в табе, и нет оповещения о входе
Статус пользователя 8ball1
сообщение 31.3.2019, 12:36
Сообщение #1
Стаж: 7 лет 2 месяца

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

Здравствуйте.
Не работают эти функции в плагине: Не выдаются гранаты, нет префикса VIP в табе, и нет оповещения о входе VIP.
Почему не работают, не знаю.. Прошу помочь.
Код
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <fakemeta>
#include <hamsandwich>

/*===============================================================================
=
    Данные о плагине
================================================================================
=*/
#define PLUGIN         "ViP Menu"
#define VERSION         "1.5"
#define AUTHOR         "Jack Daniel`s Lol :("
/*===============================================================================
=
    Константы/Массивы и остальное
================================================================================
=*/
native set_hg_auto_equip_status(id, new_status)

new bool:give_deagle[33], bool:give_hpgrenade[33], total_rounds, vip_menu_usage_count[33];
new g_icvars[8], g_ilcvars[8], g_iMaxPlayers;
/*===============================================================================
=
    Загрузка кваров
================================================================================
=*/
public plugin_cfg()
{
    new file[128];    get_configsdir(file,charsmax(file))
    format(file, charsmax(file), "%s/vip_menu.cfg", file)
    
    if(file_exists(file)) server_cmd("exec %s", file), server_exec()
}
/*===============================================================================
=
    Гл. Функция
================================================================================
=*/
public plugin_init()
{
    register_plugin(PLUGIN,VERSION,AUTHOR);
    
    register_logevent("RoundStart", 2, "1=Round_Start");
    register_event("TextMsg" , "event_restart", "a", "2=#Game_will_restart_in","2=#Game_Commencing");
    
    RegisterHam(Ham_Spawn, "player", "player_Spawn_Post" , 1);
    
    register_menu("Vip_Menu", 1023, "Handle_Vip_Menu");
    
    register_concmd("vipmenu", "OpenVipMenu");
    register_clcmd("say /vipmenu", "OpenVipMenu");
    register_clcmd("say_team /vipmenu", "OpenVipMenu");
    
       register_dictionary("vip_menu.txt");
    
    //Квары
    g_icvars[0]    =    register_cvar("vm_start_round","3") // Раунд с которого будет доступно вип меню
    g_icvars[1]    =    register_cvar("vm_round_usage_limit","2") // Сколько раз за раунд можно использовать меню. Если 0, то неограниченное число раз
    g_icvars[2]    =    register_cvar("vm_awp_start_round","4") // Номер раунда с которого будет доступно авп из вип меню  
    g_icvars[3]    =    register_cvar("vm_showscore_status","1") // Показывать или нет надпись VIP в таблице счета
    g_icvars[4]    =    register_cvar("vm_connect_chat_announce","1") // Оповещать (1) или нет (0) всех сообщением в чате при коннекте вип игрока
    g_icvars[5]    =    register_cvar("vm_connect_sound","1") // Проигрывать (1) или нет (0), звук при входе вип игрока на сервер
    g_icvars[6]    =    register_cvar("vm_access_flags","t") // Флаги доступа игроков, которым будет доступно вип меню
    g_icvars[7]    =    register_cvar("vm_give_money","5000")
    
    //Отключение на картах    
    new sPref[][] = {"awp_", "aim_", "35hp_", "fy_"};
    new map[32]; get_mapname(map, charsmax(map));
    for(new i; i < sizeof sPref; i++)
    {
        if(containi(map, sPref[i]) != -1)
        {
            pause("ad");
            return;
        }
    }    
    
    //Квары в массив..
    g_ilcvars[0] =    get_pcvar_num(g_icvars[0]);
    g_ilcvars[1] =    get_pcvar_num(g_icvars[1]);
    g_ilcvars[2] =    get_pcvar_num(g_icvars[2]);
    g_ilcvars[3] =    get_pcvar_num(g_icvars[3]);
    g_ilcvars[4] =    get_pcvar_num(g_icvars[4]);
    g_ilcvars[5] =    get_pcvar_num(g_icvars[5]);
    cvar_to_flags(g_icvars[6], g_ilcvars[6]);
    g_ilcvars[7] =    get_pcvar_num(g_icvars[7]);
    
    g_iMaxPlayers = get_maxplayers();
}

public plugin_precache()
{
    if (g_ilcvars[5]) {
        precache_sound("vip_menu/connect_vip.wav");
    }
}
/*===============================================================================
=
    Подключение игрока
================================================================================
=*/
public client_connect(id)
{
    give_hpgrenade[id] = false
    give_deagle[id] = false
    set_hg_auto_equip_status(id, 0)
    
    new name[32];    get_user_name(id, name, 31)
    
    if (get_user_flags(id) & g_ilcvars[6]) {
        if (g_ilcvars[4]) {
            PrintInChat(0, "%L", LANG_PLAYER, "VM_CONNECT_CHAT_ANNOUNCE", name)
        }
        if(g_ilcvars[5]) {
            emit_sound(0,CHAN_STATIC,"vip_menu/connect_vip.wav",1.0,ATTN_NORM,0,PITCH_NORM)
        }
    }
}
/*===============================================================================
=
    Новый раунд
================================================================================
=*/
public RoundStart(){    
    total_rounds++    
    arrayset(vip_menu_usage_count, 0, charsmax(vip_menu_usage_count));
}
/*===============================================================================
=
    Рестарт раунда или начало игры
================================================================================
=*/
public event_restart()
{
    total_rounds = 0;
    for(new id = 1; id <= g_iMaxPlayers; id++){
        set_hg_auto_equip_status(id, 0)
    }
    
    arrayset(give_hpgrenade, false, charsmax(give_hpgrenade));
}

public player_Spawn_Post(id)
{
    if (!is_user_alive(id) || !(get_user_flags(id) & g_ilcvars[6])) {
        return;
    }
    
    if (total_rounds >= g_ilcvars[0]) {
        give_vip_equip(id);
    }
}
/*===============================================================================
=
    Меню
================================================================================
=*/
public OpenVipMenu(id)
{
    if(!is_user_alive(id)) {
        PrintInChat(id, "%L", LANG_PLAYER, "VM_FOR_ALIVE_WARNING")
        return PLUGIN_HANDLED;
    }

    if(!(get_user_flags(id) & g_ilcvars[6])) {
        PrintInChat(id, "%L", LANG_PLAYER, "VM_NOT_ACCESS_WARNING")
        return PLUGIN_HANDLED;
    }
    
    if(total_rounds < g_ilcvars[0]) {
        PrintInChat(id, "%L", LANG_PLAYER, "VM_ROUND_LIMIT_WARNING", (g_ilcvars[0] == 2) ? "о" : "", g_ilcvars[0])
        return PLUGIN_HANDLED;
    }
    
    if (g_ilcvars[1] && vip_menu_usage_count[id] >= g_ilcvars[1]) {
        PrintInChat(id, "%L", LANG_PLAYER, "VM_MAX_USAGE_WARNING")
        return PLUGIN_HANDLED;
    }
    new name[32];    get_user_name(id, name, charsmax(name));
    new menu[512],    iLen = 0;
    
    iLen = formatex(menu[iLen], charsmax(menu) - iLen, "%L^n^n", LANG_PLAYER, "VM_TITLE_NAME", name);

    iLen += formatex(menu[iLen], charsmax(menu) - iLen, "%L^n", LANG_PLAYER, "VM_ITEM_NAME1", g_ilcvars[7]);
    
    iLen += formatex(menu[iLen], charsmax(menu) - iLen, "%L^n", LANG_PLAYER, "VM_ITEM_NAME2");
    
    iLen += formatex(menu[iLen], charsmax(menu) - iLen, "%L^n", LANG_PLAYER, "VM_ITEM_NAME3");
    
    iLen += formatex(menu[iLen], charsmax(menu) - iLen, "%L^n", LANG_PLAYER, "VM_ITEM_NAME4");
    
    iLen += formatex(menu[iLen], charsmax(menu) - iLen, "%L^n", LANG_PLAYER, "VM_ITEM_NAME5");
    
    iLen += formatex(menu[iLen], charsmax(menu) - iLen, "%L^n", LANG_PLAYER, "VM_ITEM_NAME6",give_hpgrenade[id]?"[\yВкл\w]":"[\yВыкл\w]");
    
    iLen += formatex(menu[iLen], charsmax(menu) - iLen, "%L^n^n", LANG_PLAYER, "VM_ITEM_NAME7",give_deagle[id]?"[\yВкл\w]":"[\yВыкл\w]");
    
    iLen += formatex(menu[iLen], charsmax(menu) - iLen, "%L^n", LANG_PLAYER, "VM_EXIT");
    
    show_menu(id, 1023, menu, -1, "Vip_Menu");
    return PLUGIN_HANDLED;
}

public Handle_Vip_Menu(id, key)
{
    if (!is_user_connected(id))
        return PLUGIN_HANDLED;
    
    switch(key)
    {
        case 0:
        {
            cs_set_user_money(id, cs_get_user_money(id) + g_ilcvars[7]);
            vip_menu_usage_count[id]++
            PrintInChat(id, "%L", LANG_PLAYER, "VM_MONEY", g_ilcvars[7])
        }        
        case 1:
        {
            drop_user_weapons(id, 1)
            give_item(id, "weapon_m4a1")
            cs_set_user_bpammo(id, CSW_M4A1, 90);
            vip_menu_usage_count[id]++
            PrintInChat(id, "%L", LANG_PLAYER, "VM_M4A1")
        }        
        case 2:
        {
            drop_user_weapons(id, 1)
            give_item(id, "weapon_ak47")
            cs_set_user_bpammo(id, CSW_AK47, 90);
            vip_menu_usage_count[id]++
            PrintInChat(id, "%L", LANG_PLAYER, "VM_AK47")
        }        
        case 3:
        {
            if(total_rounds < g_ilcvars[2]){
                PrintInChat(id, "%L", LANG_PLAYER, "VM_AWP_RESTRICT_MSG", g_ilcvars[2], total_rounds)
            }else{
                drop_user_weapons(id, 1)
                give_item(id, "weapon_awp")
                cs_set_user_bpammo(id, CSW_AWP, 30);
                vip_menu_usage_count[id]++
                PrintInChat(id, "%L", LANG_PLAYER, "VM_AWP")
            }
        }        
        case 4:
        {
            drop_user_weapons(id, 1)
            give_item(id, "weapon_famas")
            cs_set_user_bpammo(id, CSW_FAMAS, 90);
            vip_menu_usage_count[id]++
            PrintInChat(id, "%L", LANG_PLAYER, "VM_FAMAS")
        }        
        case 5:
        {
            if(give_hpgrenade[id]){
                give_hpgrenade[id] = false
                set_hg_auto_equip_status(id, 0)
            }else{
                give_hpgrenade[id] = true
                set_hg_auto_equip_status(id, 1)
            }
            OpenVipMenu(id)
            PrintInChat(id, "%L", LANG_PLAYER, "VM_AUTO_GIVE_HPGRENADE", give_hpgrenade[id]?"!tвключена!":"!tвыключена!")
        }        
        case 6:
        {
            give_deagle[id] = !give_deagle[id];
            
            OpenVipMenu(id)
            PrintInChat(id, "%L", LANG_PLAYER, "VM_AUTO_GIVE_DEAGLE", give_deagle[id]?"!tвключена!":"!tвыключена!")
        }
        default: return PLUGIN_HANDLED;
    }
    return PLUGIN_HANDLED;
}
/*===============================================================================
=
    Стоки и Остальное
================================================================================
=*/
give_vip_equip(id)
{
    give_item(id,"weapon_flashbang")
    give_item(id,"weapon_flashbang")
    give_item(id,"weapon_hegrenade")
    give_item(id,"weapon_smokegrenade");
    give_item(id, "item_assaultsuit");
    
    if(give_deagle[id]){
        drop_user_weapons(id, 2)
        give_item(id, "weapon_deagle");
        cs_set_user_bpammo(id, CSW_DEAGLE, 35);
    }
}

stock drop_user_weapons(iPlayer, iSlotStrip){
    new iWpn = get_pdata_cbase(iPlayer, 367 + iSlotStrip, 5);
    
    while(iWpn != FM_NULLENT)
    {
        ExecuteHamB(Ham_Weapon_RetireWeapon, iWpn);
        ExecuteHam(Ham_RemovePlayerItem, iPlayer, iWpn);
        ExecuteHam(Ham_Item_Kill, iWpn);
        set_pev(iPlayer, pev_weapons, pev(iPlayer, pev_weapons) & ~(1<<get_pdata_int(iWpn, 43 ,4)));
        iWpn = get_pdata_cbase(iWpn, 42, 4);
    }
}

stock cvar_to_flags(cvar_ptr, &var){
    new cvar_value[32];
    get_pcvar_string(cvar_ptr, cvar_value, charsmax(cvar_value));
    var = read_flags(cvar_value);
    
    if (var == 0) {
        var = ADMIN_USER;
    }
}

stock PrintInChat(const id, const input[], any:...){
    new count = 1, players[32]
    static msg[191]
    vformat(msg, charsmax(msg), input, 3)
    
    replace_all(msg, charsmax(msg), "!g", "^4") // Green Color
    replace_all(msg, charsmax(msg), "!n", "^1") // Default Color
    replace_all(msg, charsmax(msg), "!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]))    continue;
            
            message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
            write_byte(players[i]);
            write_string(msg);
            message_end();
        }
    }
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: