Выдача n патронов через меню

Сообщения
335
Реакции
93
Помог
2 раз(а)
Делаю функционал для CSDM. Игрок в меню может выбрать кол-во патрон в обойме для всего своего оружия: 1, 2 ,3, дефолт. При убийстве патроны автоматом пополняются. Но вот беды... Ham_Weapon_Reload триггерится на ручную перезарядку, а его post выполняется до сета патрон в обычном режиме => выдача была, стрелять можно. Ham_Item_Deploy для сета патрон при переключение на другое оружие, но можно так абузить патроны. Потом решил поработать с rg_give_item, но там уже свои проблемы, хотя вариант хороший. Есть идеи, либо код/плагин с такой реализацией (без get_item)? Буду очень благодарен за помощь.

Код:
// Массив с выбранном кол-во патрон playerSetting[id][Ammo]
// Значения 0, 1, 2, 3 — понятно всё.
public Fwd_Weapon_Reload_Pre(weapon)
{
    new id = get_member(weapon, m_pPlayer)

    if(!is_user_connected(id) || get_member(weapon, m_Weapon_iClip) < playerSetting[id][Ammo] || playerSetting[id][Ammo] == 0)  
        return HAM_IGNORED;

    SendWeaponAnimation(id,0); // немного баганная блокировка. :/
    return HAM_SUPERCEDE;
}
public Fwd_Weapon_Reload_Post(weapon)
{
    new id = get_member(weapon, m_pPlayer)
    
    if(!is_user_connected(id) || get_member(weapon, m_Weapon_iClip) < playerSetting[id][Ammo] || playerSetting[id][Ammo] == 0)
        return HAM_IGNORED;
   
    new item = get_member(id, m_pActiveItem)
    new WeaponID = get_member(item, m_iId)

    switch(playerSetting[id][Ammo])
    {   
        case 1: {/*Тут была отправка на кривую функцию выдачи патрон*/}
        case 2: {/*Тут была отправка на кривую функцию выдачи патрон*/ }
        case 3: {/*Тут была отправка на кривую функцию выдачи патрон*/}
    }
    return HAM_SUPERCEDE;
}

stock SendWeaponAnimation(const id, const Anim)
{
    set_entvar(id, var_weaponanim, Anim);
    message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, .player = id);
    write_byte(Anim);
    write_byte(0);
    message_end();
}
 
Сообщения
335
Реакции
93
Помог
2 раз(а)
up. Хотя бы отлов, когда "сетаются" патрон в обойму после перезарядки, если такое есть.
 

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

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