Проверенный
Пользователь
- Сообщения
- 1,032
- Реакции
- 828
- Помог
- 10 раз(а)
У игрока имеется 3 HE, после броска первой гранаты, в руках висит вторая, а надо что бы висел
Первый способ, ловлю бросок гранаты, после задержки ловлю Ent оружеек в запасе и переключаю
Второй способ
В данном случае Ham сам переключает на следующие сильное оружие, но вопрос вот в чем, в Хотя первый способ можно было наверно еще подправить,
PRIMARY_WEAPON_SLOT
или PISTOL_SLOT
например, что является действием по умолчанию, когда в запасе 1 граната.Первый способ, ловлю бросок гранаты, после задержки ловлю Ent оружеек в запасе и переключаю
C++:
public hook_CBasePlayerThrowGrenade( const id )
{
set_task_ex( TASK_DELAY__SWITCH_WEAPONS, "task_ForceSwitchWeapons", id, .flags = SetTask_Once );
}
public task_ForceSwitchWeapons( id )
{
if( !is_user_alive( id ) )
{
return PLUGIN_CONTINUE;
}
new iWeaponEnt = get_member( id, m_rgpPlayerItems, PRIMARY_WEAPON_SLOT );
if( !is_entity( iWeaponEnt ) )
{
iWeaponEnt = get_member( id, m_rgpPlayerItems, PISTOL_SLOT );
if( !is_entity( iWeaponEnt ) )
{
iWeaponEnt = get_member( id, m_rgpPlayerItems, KNIFE_SLOT );
if( !is_entity( iWeaponEnt ) )
{
return PLUGIN_CONTINUE;
}
}
}
rg_switch_weapon( id, iWeaponEnt );
return PLUGIN_CONTINUE;
}
C++:
public hook_CBasePlayerThrowGrenade( const id, const iGrenadeEnt )
{
new aData[ 1 ]; aData[ 0 ] = iGrenadeEnt;
set_task_ex( TASK_DELAY__SWITCH_WEAPONS, "task_ForceSwitchWeapons", id, aData, sizeof( aData ), .flags = SetTask_Once );
}
public task_ForceSwitchWeapons( aData[ ], id )
{
if( !is_user_alive( id ) )
{
return PLUGIN_CONTINUE;
}
ExecuteHamB( Ham_Weapon_RetireWeapon, aData[ 0 ] );
return PLUGIN_CONTINUE;
}
ExecuteHamB( Ham_Weapon_RetireWeapon, aData[ 0 ] );
нету индекса игрока, кому переключать, не будет проблем что левым игрока переключит? )17 Мар 2020
rg_switch_weapon
вернет ведь ноль, если не удалось переключить