下面是引用 husano896 于 2011-02-02 08:21 发表的 :
复制程式
plugin_init()
{
//这段需要用到 <amxmodx> 和 <hamsandwich>
RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_m4a1", "fw_WeapAttack2", 1)
}
public fw_WeapAttack2(weapon)
{
//需用到<fakemeta>
if (!pev_valid(weapon))
return HAM_IGNORED;
//需用到 <cstrike>
if (cs_get_weapon_silen(weapon))
{
cs_set_weapon_silen(weapon,0,0)
}
client_print(id,print_center,"M4A1禁止装消音器!")
return HAM_IGNORED;
}
以上为部分重要指令~
话说…那 client_print 后面的"id"没指定成功吧…而且这样写…
在「cs_get_weapon_silen」还没回传"true"之前还是会有装消音器的动作…
在装消音器的动作持续时无法开火…等于只是将装完消音后的M4A1强制变成没装消音而已…
这样还需要「set_pdata_float(id, 83, 0.0, 5)」和「pev_weaponanim」来DEBUG了…
以下写法…基本上不会有上述问题…请参考…
复制程式
#include <amxmodx>
#include <hamsandwich>
public plugin_init()
{
register_plugin("undefined", "1.0", "MyChat:a7811311622")
RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_m4a1", "fw_SecAttack")
}
public fw_SecAttack(weapon)
{
if (pev_valid(weapon)) return HAM_SUPERCEDE;
return HAM_IGNORED;
}
不过使用「return HAM_SUPERCEDE;」时可能会让V档执行前一个动作…
如果觉得不正常就要再用「pev_weaponanim」DEBUG了…