Как передать через меню (costom knife)

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
106
Реакции
-4
Как передать определенному игроку costom нож через меню.
как правильно сделать, что я делаю не так?
"заранее благодарю"

Код:
#include < amxmodx >
#include < hamsandwich >
#include < reapi >


#define PLUGIN "setknife"
#define VERSION "0.1"
#define AUTHOR "????"


#define ACCESS_FLAG        ADMIN_LEVEL_C    // Флаг которому доступно оружие. Закоментировать чтобы было доступно всем

new const KN_V_MODEL[] = "models/setknife/v_knife.mdl";
new const KN_P_MODEL[] = "models/setknife/p_knife.mdl";

//new keys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_0
new bool:g_bKnife[33]

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
  
    register_clcmd("set_knife", "MenuPlayer")

    RegisterHam(Ham_Item_Deploy, "weapon_knife", "HookItemDeploy", 1);

    //register_menu("MenuCase", keys, "Menu_Handller")
}

public plugin_precache() {
    precache_model(KN_V_MODEL);
    precache_model(KN_P_MODEL);
}


public MenuPlayer(id)
{

    new i_Menu = menu_create("Выберите игрока:", "menu_handle")

    new s_Players[32], i_Num, i_Player

    new s_Name[32], s_Player[10], text[128]
  
    get_players(s_Players, i_Num)

    for (new i; i < i_Num; i++)
    {
        i_Player = s_Players[i]
      
        get_user_name(i_Player, s_Name, charsmax(s_Name))
        num_to_str(i_Player, s_Player, charsmax(s_Player))

        formatex(text, charsmax(text), "%s", s_Name)
        menu_additem(i_Menu, text, s_Player, 0)
    }
    menu_setprop(i_Menu, MPROP_EXITNAME, "Выход")
    menu_setprop(i_Menu, MPROP_NEXTNAME, "Далее")
    menu_setprop(i_Menu, MPROP_BACKNAME, "Назад")
    menu_display(id, i_Menu, 0)

}

public menu_handle(id, menu, item)
{
    if (item == MENU_EXIT)
    {
        menu_destroy(menu)
        return PLUGIN_HANDLED
    }

    new s_Data[6], s_Name[64], 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_Player = str_to_num(s_Data)
  
    new name[32], name2[32]
  
  
    get_user_name(id, name, 31)
    get_user_name(i_Player, name2, 31)


    if(g_bKnife[i_Player])
    {
        g_bKnife[i_Player] = false
        client_print (id, print_chat, "Убрать нож - %s", name2);

    }
    else
    {
        g_bKnife[i_Player] = true
        client_print (id, print_chat, "Дать нож - %s", name2);

    }

    menu_destroy(menu)
    return PLUGIN_HANDLED
}

public HookItemDeploy(const weapon, const i_Player) {
    new id = get_member(weapon, m_pPlayer);
  
    if (!(get_user_flags(id) & ACCESS_FLAG)) {
        return HAM_IGNORED;
    }

    if(is_user_alive(id) && g_bKnife[i_Player] == true) {
        set_entvar(id, var_viewmodel, KN_V_MODEL);
        set_entvar(id, var_weaponmodel, KN_P_MODEL);
    }

    return HAM_IGNORED;
}
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.

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

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