Не поможет.
Уже пробовал, но никакого эффекта не дало :)для того оружия, у которого не должно быть secondaryattack этот оффсет включает такую возможность. Скорее всего может и отключить, но это не точно/**
* CCSPlayerWeapon API Members
*/
enum CCSPlayerWeapon_Members
{
/*
* Description: Can the weapon have secondary attack
* Member type: bool
* Get params: get_member(index, member);
* Set params: set_member(index, member, bool:value);
*/
m_Weapon_bHasSecondaryAttack = BEGIN_MEMBER_REGION(csplayerweapon),
};
Аналогично. Я даже добавлял различные хуки и блоки, но код становился куда более костыльный и смахивал на сверхмощный быдлокод. Да и с ним все равно криво работало.Блокировать SecondaryAttack через Ham?
#include <amxmodx>
#include <hamsandwich>
public plugin_init() {
RegisterHam(Ham_SecondaryAttack, "weapon_m4a1", "HookSecondaryAttack", 0);
RegisterHam(Ham_SecondaryAttack, "weapon_ucp", "HookSecondaryAttack", 0);
}
public HookSecondaryAttack() {
return HAM_SUPERCEDE;
}
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>
const m_pPlayer = 41;
const XO_CBASEPLAYERWEAPON = 4;
public plugin_init() {
RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_usp", "HookSecondaryAttack", 0);
}
public HookSecondaryAttack(weapon) {
new id = get_pdata_cbase(weapon, m_pPlayer, XO_CBASEPLAYERWEAPON);
set_pev(id, pev_weaponanim, 8);
message_begin(MSG_ONE, SVC_WEAPONANIM, .player = id);
write_byte(8);
write_byte(0);
message_end();
cs_set_weapon_silen(weapon, 0, 0);
return HAM_SUPERCEDE;
}
set_member(weapon, m_Weapon_flNextSecondaryAttack, get_gametime() + 9999.0);