Русское сообщество по скриптингу

Как отправит определенному игроку значение через меню

Все вопросы по работе и настройке AMXX и его плагинов.

Модератор: liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только вопросов по AMX Mod X и его плагинам.

Как отправит определенному игроку значение через меню

Сообщение pakilo » 25 июл 2021, 16:40

Здравствуйте как поняли в описаний есть код
Допустим отправка клиенту (квар) и он при (выбере ножа стандартны выводился сообщение в чат),если оружие то другой сообщение.

Код: Выделить всё


new pistols
[6] = {CSW_M4A1, CSW_AK47, CSW_AWP, CSW_DEAGLE, CSW_USP, CSW_GLOCK18};

    register_clcmd("set", "MenuPlayer")
    register_event("CurWeapon", "getweapon", "b", "1=1");


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(weapon[iPlayer])
    {
        weapon[iPlayer] = false;
        client_print (id, print_chat, "(ON) - %s", name2);
    }
    else
    
{
        weapon[iPlayer] = true;
        client_print (id, print_chat, "(YES) - %s", name2);
    }
    menu_destroy(menu)
    return PLUGIN_HANDLED
}

public getweapon(id)
{
    if (is_user_alive(id))
    {
        for (new i = 0; i < 6; i++)
        {
            if (get_user_weapon(id, pistols[i]))
            {
                fm_strip_user_gun(id, pistols[i]);
                break;
            }
        }
        client_print(id, print_chat, ".......TEST1.......");
    }
}
 


как правильно написать вместе. и патроны это вроде код: iwpn = get_user_weapon(id, wclip, wammo)
Код: Выделить всё
   
 if 
(get_user_weapon(id) == CSW_KNIFE)
    {
        client_print(id, print_chat, ".......TEST2.......");
    }
 


Добавлено спустя 5 минут 29 секунд:
Chinga,
Аватара пользователя
pakilo
 
Сообщения: 2
Зарегистрирован: 26 апр 2019, 19:05
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Языки программирования: Я ничего не знаю

Re: Как отправит определенному игроку значение через меню

Сообщение [N][E][M][E][C] » 26 июл 2021, 00:29

Не понятен вопрос
Аватара пользователя
[N][E][M][E][C]
 
Сообщения: 641
Зарегистрирован: 14 фев 2021, 10:48
Благодарил (а): 50 раз.
Поблагодарили: 89 раз.
Опыт программирования: Около года
Языки программирования: Нуждаюсь в помощи

Re: Как отправит определенному игроку значение через меню

Сообщение pakilo » 28 июл 2021, 21:12

Вот плагин как сделать что бы плагин работал для определенного игрока...
Код: Выделить всё
#include <amxmodx>

#define PLUGIN "Weapon Icon"
#define VERSION "1.2"
#define AUTHOR "hoboman313/Zenix"

#define MAX_PLAYERS 32

new iconstatus, pcv_iloc
new user_icons
[MAX_PLAYERS+1][16]


public plugin_init() 
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    register_event
("CurWeapon", "update_icon", "be", "1=1")
    register_event("AmmoX", "draw_icon", "be")
    register_event("DeathMsg", "event_death", "a")
    
    pcv_iloc 
= register_cvar("amx_weapon_location", "1")
    
    check_icon_loc
()
}

public update_icon(id) 
{
    remove_weapon_icon(id)
    
    check_icon_loc
()
        
    if
( get_pcvar_num(pcv_iloc) == 0 || is_user_bot(id) )
        return
        
    static sprite
[16], iwpn, clip, ammo

    iwpn 
= get_user_weapon(id, clip, ammo)
    
    switch
(iwpn) 
    
{
        case CSW_P228: 
        sprite 
= "d_p228"
        case CSW_SCOUT: 
        sprite 
= "d_scout"
        case CSW_HEGRENADE: 
        sprite 
= "d_grenade"
        case CSW_XM1014:
        sprite = "d_xm1014"
        case CSW_MAC10: 
        sprite 
= "d_mac10"
        case CSW_AUG: 
        sprite 
= "d_aug"
        case CSW_SMOKEGRENADE: 
        sprite 
= "d_flashbang"
        case CSW_ELITE: 
        sprite 
= "d_elite"
        case CSW_FIVESEVEN: 
        sprite 
= "d_fiveseven"
        case CSW_UMP45: 
        sprite 
= "d_ump45"
        case CSW_SG550: 
        sprite 
= "d_sg550"
        case CSW_GALIL: 
        sprite 
= "d_galil"
        case CSW_FAMAS: 
        sprite 
= "d_famas"
        case CSW_USP: 
        sprite 
= "d_usp"
        case CSW_MP5NAVY: 
        sprite 
= "d_mp5navy"
        case CSW_M249: 
        sprite 
= "d_m249"
        case CSW_M3: 
        sprite 
= "d_m3"
        case CSW_M4A1: 
        sprite 
= "d_m4a1"
        case CSW_TMP: 
        sprite 
= "d_tmp"
        case CSW_G3SG1: 
        sprite 
= "d_g3sg1"
        case CSW_FLASHBANG:
        sprite = "d_flashbang"
        case CSW_DEAGLE: 
        sprite 
= "d_deagle"
        case CSW_SG552: 
        sprite 
= "d_sg552"
        case CSW_AK47: 
        sprite 
= "d_ak47"
        case CSW_KNIFE: 
        sprite 
= "d_knife"
        case CSW_P90: 
        sprite 
= "d_p90"
        case CSW_GLOCK18: 
        sprite 
= "d_glock18"
        case CSW_AWP: 
        sprite 
= "d_awp"
        default: 
        return
    
}    
    user_icons
[id] = sprite
    
    draw_icon
(id)
    
    return
} 


public draw_icon
(id)
{
    static iwpn, clip, ammo, icon_color[3]
    
    iwpn 
= get_user_weapon(id, clip, ammo)
    
    
// ammo check, this is for the color of the icon
    if ((ammo == 0 && clip == 0))
        icon_color = {255, 0, 0} // outta ammo!
    else if ( ammo==&& iwpn!=CSW_KNIFE)
        icon_color = {255, 160, 0} // last clip!
    else 
        icon_color 
= {0, 160, 0}//green icon...decent ammo
    
    
    
// draw the sprite itself
    message_begin(MSG_ONE,iconstatus,{0,0,0},id)
    write_byte(1) // status (0=hide, 1=show, 2=flash)
    write_string(user_icons[id]) // sprite name
    write_byte(icon_color[0]) // red
    write_byte(icon_color[1]) // green
    write_byte(icon_color[2]) // blue
    message_end()
}


public remove_weapon_icon(id) 
{
    message_begin(MSG_ONE,iconstatus,{0,0,0},id)
    write_byte(0)
    write_string(user_icons[id])
    message_end()
}


public event_death() 
{
    new id = read_data(2) // the dead player's ID (1-32)
    
    if 
(!is_user_bot(id)) 
        remove_weapon_icon
(id) 
}


public check_icon_loc() 
{
    new value = get_pcvar_num(pcv_iloc)
    
    if 
(value == 1)
        iconstatus = get_user_msgid("StatusIcon")
    else if (value == 2)
        iconstatus = get_user_msgid("Scenario")
    else
        iconstatus 
= 0
    
    return PLUGIN_CONTINUE
}
Аватара пользователя
pakilo
 
Сообщения: 2
Зарегистрирован: 26 апр 2019, 19:05
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Языки программирования: Я ничего не знаю


Вернуться в Вопросы по AMXX и его плагинам

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 10