Помогите разобраться как остановить зажим стрельбы

ssx

Сообщения
295
Реакции
86
Всем привет! Трачу уже 5-й час на попытку сделать фикс для ботов jk_botti на сервере Half-Life (reHLDS)
Суть бага состоит в том что когда у ботов кончаются патроны они не отжимают стрельбу и не начинается перезарядка.
Всё чего удалось добиться кодом ниже, так это когда есть в запасе патроны то идёт перезарядка (без анимации), после перезарядки продолжение стрельбы.
Но вот RPG залипает.
Так же когда в запасе нет патронов то никак не смог добиться чтобы выключало зажим стрельбы и(или) переключало на другое оружие.

Подскажите, как правильно сделать фикс?

Код:
#include < amxmodx >
#include <hl>
#include <hamsandwich>
#include <engine>

//#pragma semicolon 1

#define PLUGIN "test"
#define VERSION "0.0.1"

//#define cm(%0)    ( sizeof(%0) - 1 )

//new const NO_AMMO_WEAPONS = 1<<HLW_CROWBAR | 1<<HLW_HORNETGUN | 1<<HLW_HANDGRENADE | 1<<HLW_TRIPMINE | 1<<HLW_SATCHEL | 1<<HLW_SNARK

public plugin_init()
{
    register_plugin( PLUGIN, VERSION, "tester" )
    register_event("CurWeapon", "Event_CurWeapon", "be", "3=0")
}

public Event_CurWeapon( id )
{
//    client_print(0,print_chat,"[DEBUG TEST 1] Event_CurWeapon 3=0")
//    if( is_user_alive(id) && is_user_bot(id) )
    if( is_user_alive(id) )
    {
        new iId = read_data(2);
        if(!hl_get_user_bpammo(id, iId))
        {
//            entity_set_int(id,EV_INT_button,entity_get_int(id,EV_INT_button) & ~IN_ATTACK)
//            entity_set_int(id,EV_INT_button,entity_get_int(id,EV_INT_button) & ~IN_ATTACK2)
            if ((pev(id, pev_button) & IN_ATTACK) != 0
            && (pev(id, pev_oldbuttons) & IN_ATTACK) != 0) {
            const m_bCanShoot = 876/4;
            set_pdata_int(id, m_bCanShoot, false);
            }
//            ExecuteHamB(Ham_Weapon_RetireWeapon, iId);
            client_print(0,print_chat,"[DEBUG TEST hl_get_user_bpammo] bpammo 0")
        }
        else
        {
            entity_set_int(id,EV_INT_button,IN_RELOAD)
            client_print(0,print_chat,"[DEBUG TEST hl_get_user_bpammo] IN_RELOAD")
        }

        
    }
}
 
Сообщения
857
Реакции
532
Помог
13 раз(а)
не знаю как халве это работает, но в каэс сделал бы так:
проверять что патронов нет, выставлять оффсет flNextAttack 0.0, ExecuteHamB(Ham_Weapon_Reload, pActiveItem);
 
  • Нравится
Реакции: ssx

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

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