z2352671213
|
分享:
▼
x0
|
[1.6][插件] 请问大大如何用AMXX修改武器开枪的声音
是这样的。 我想把黄金AK47开枪的声音改成M3霰弹枪开枪的声音。 于是我在插件里这么写道(只是sma的一部分): 复制程式
new const Fire_Sounds[][] = { "weapons/m3-1.wav" }
public plugin_init()
{
RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_ak47", "fw_scar_PrimaryAttack_Post", 1)
}
public fw_scar_PrimaryAttack_Post(Weapon)
{
new id = get_pdata_cbase(Weapon, 41, 4)
new szClip, szAmmo
get_user_weapon(id, szClip, szAmmo)
if(!is_user_alive(id))
return
if(g_HasAk[id] == true) //如果玩家持有黄金AK,g_HasAk[玩家索引] 就是true。
{
if (!g_clip_ammo[id])
return
emit_sound(id, CHAN_WEAPON, Fire_Sounds[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
}
}
public plugin_precache()
{
for(new i = 0; i < sizeof Fire_Sounds; i++)
precache_sound(Fire_Sounds[i])
}
然而,我进入游戏,用黄金AK47开枪,发现声音还是AK47的声音,完全没有变成M3的声音,请问大大们,这是为什么呢?或者,请问大大们,如何才能用AMXX修改武器(如AK)开枪的声音呢?
|
|
x0
[楼 主]
From:欧洲 | Posted:2016-08-04 21:17 |
|
|
弑血
|
分享:
▲
▼
下面是引用 z2352671213 于 2016-08-05 14:21 发表的 :
天哪。谢谢大大! 我在alliedmodders上找了超多方法,全都没用,最后还是大大你的方法有用!
请问大大有重写弹孔的方法吗(虽然我已经加上激光特效所以无需弹孔也可以…… 复制程式
static Float:aimOrigin[3]; //设法取得最终子弹座标..这边看你要用traceattack去弄 还是..什么方法取
engfunc(EngFunc_MessageBegin, MSG_BROADCAST, SVC_TEMPENTITY, aimOrigin, 0)
write_byte(TE_WORLDDECAL)
engfunc(EngFunc_WriteCoord,aimOrigin[0])
engfunc(EngFunc_WriteCoord,aimOrigin[1])
engfunc(EngFunc_WriteCoord,aimOrigin[2])
write_byte(random_num(41, 45)) //HL弹孔特有的spr排列 41-45是弹孔
message_end()
engfunc(EngFunc_MessageBegin, MSG_BROADCAST, SVC_TEMPENTITY, aimOrigin, 0)
write_byte(TE_GUNSHOTDECAL)
engfunc(EngFunc_WriteCoord,aimOrigin[0])
engfunc(EngFunc_WriteCoord,aimOrigin[1])
engfunc(EngFunc_WriteCoord,aimOrigin[2])
write_short(attacker) //使用者
write_byte(random_num(41, 45)) // HL弹孔特有的spr排列 41-45是弹孔
message_end()
|
|
x0
[3 楼]
From:台湾中华电信股份有限公司 | Posted:2016-08-05 19:16 |
|
|
弑血
|
分享:
▲
▼
[hide=5] 下面是引用 z2352671213 于 2016-08-05 22:59 发表的 :
大大,那个能把声音和弹孔都阻绝的东西,没办法阻绝子弹伤害。虽然开枪没有弹孔,但是被准星瞄准的人还是会受到子弹伤害,有没有办法把子弹伤害也隔绝掉。(像dias写的plasma gun那种枪那样,就把子弹伤害隔绝了,但是我没看懂他是怎么做到的。我试过 RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage"),但是这东西有时候会不起作用……他用的也不是注册ham_takadamage的方法)。 复制程式
//这个虽然注册再控制台有效,不过也是对玩家有用BOT是不行的..
RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
要用这段:↓
// 开场游戏登入时UI开始选单,选人物UI前的设定
public client_putinserver(id)
{
static classname[32], bool:debug
pev(id, pev_classname, classname, charsmax(classname))
if(!equal(classname,"player") && !debug)
{
//主要是让非player以外的id套用此task..因为bot不接受player字串? 不知道为啥...
set_task(1.0,"_Debug", id)
//这边主要是阻绝效果 不要让他set_task过多..
debug = true
}
}
//非玩家的ID注册完毕后..就可以执行fw_TakeDamage这段..
public _Debug(id)
RegisterHamFromEntity(Ham_TakeDamage, id, "fw_TakeDamage")
[ 此文章被s8720419在2016-08-05 23:18重新编辑 ]
|
|
x0
[5 楼]
From:台湾中华电信股份有限公司 | Posted:2016-08-05 23:11 |
|
|
弑血
|
分享:
▲
▼
|
|
x0
[7 楼]
From:台湾中华电信股份有限公司 | Posted:2016-08-06 23:15 |
|
|
弑血
|
分享:
▲
|
|
x0
[9 楼]
From:台湾中华电信股份有限公司 | Posted:2016-08-07 00:21 |
|
|
|