Glaster
Разработчик
Моделлер
Проверенный
- Сообщения
- 71
- Реакции
- 98
- Баллы
- 18
Всем привет!
Делаю плагин по смене режима работы и v_ модели для обычных ручных гранат для Half-Life. Предполагается, что происходить это по нажатию кнопки R. Казалось бы, отловить событие перезарядки и дело с концом, например, через
Есть какой-то способ реализовать указанный функционал без описанных недостатков?
Делаю плагин по смене режима работы и v_ модели для обычных ручных гранат для Half-Life. Предполагается, что происходить это по нажатию кнопки R. Казалось бы, отловить событие перезарядки и дело с концом, например, через
Ham_Weapon_Reload но для HLW_HANDGRENADE этот метод не работает. Можно пойти через FM_CmdStart, однако в таком случае смена режима будет срабатывать, даже если R зажата, из-за чего его смена превратится в рулетку.Есть какой-то способ реализовать указанный функционал без описанных недостатков?
Код:
public plugin_init(){
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
RegisterHam( Ham_Weapon_Reload , "weapon_handgrenade", "f_HamWeaponReload")
register_forward(FM_CmdStart, "fw_SwitchGrenadeMode");
}
public fw_SwitchGrenadeMode(id, UC_Handle, seed){
// РАБОТАЕТ, НО В РУКАХ У ИГРОКА ПРОИСХОДИТ ДИСКОТЕКА
if (!is_user_alive(id) || get_user_weapon(id) != HLW_HANDGRENADE)
return FMRES_IGNORED;
static buttons;
buttons = get_uc(UC_Handle, UC_Buttons);
if (buttons & IN_RELOAD) {
iPlayerGrenadeStates[id]++;
if (iPlayerGrenadeStates[id] > 4){
iPlayerGrenadeStates[id] = 0;
}
set_pev(id, pev_viewmodel2, szGrenadeModels[iPlayerGrenadeStates[id]]);
set_user_weaponanim(id, GRENADE_DRAW_ANIM);
}
return FMRES_IGNORED;
}
public f_HamWeaponReload(wid){
// НЕ РАБОТАЕТ!
client_print(0,print_chat,"Weapon id reload: %d",wid)
}