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 |
|
|
|