關於這把槍的問題

Home Home
引用 | 編輯 mingjey2000
2019-05-22 20:11
樓主
推文 x0
這把槍是在外國網站找到的,是個很毒的一把槍,它連隊友都能毒死,
測試後算是一把完美的槍支,但它有個小小毛病,在第一次裝子彈後,只要每點擊一次發射,
它便會自動補一次子彈動作,但問題是明明子彈還很多,它根本不需要提前自動裝子彈吧,
所以想請大家幫幫忙,這個小小毛病要從哪一段程式去修正它!
"讓子彈用完才能自動補子彈"

本帖包含附件
檔名: zip zp-毒藥離子槍.rar   (2022-06-09 14:22 / 1008 KB)   下載次數:3


獻花 x0
引用 | 編輯 弒血
2019-05-22 20:45
1樓
  
下面是引用 mingjey2000 於 2019-05-22 20:11 發表的 關於這把槍的問題: 到引言文
這把槍是在外國網站找到的,是個很毒的一把槍,它連隊友都能毒死,
測試後算是一把完美的槍支,但它有個小小毛病,在第一次裝子彈後,只要每點擊一次發射,
它便會自動補一次子彈動作,但問題是明明子彈還很多,它根本不需要提前自動裝子彈吧,
所以想請大家幫幫忙,這個小小毛病要從哪一段程式去修正它!
"讓子彈用完才能自動補子彈"



269行後面沒有寫完..不曉得是不是這原因導致這把武器出問題


// 使用了武器射速參數 但是沒有記憶體位置標示
set_pdata_float( Player, 83, OFFSET_TIME_ATTACK )


//修改後
set_pdata_float( Player, 83, OFFSET_TIME_ATTACK, 5 )

獻花 x1
引用 | 編輯 mingjey2000
2019-05-22 22:20
2樓
  
弒血大大
這樣改還是一樣不行

獻花 x0
引用 | 編輯 弒血
2019-05-23 00:02
3樓
  
下面是引用 mingjey2000 於 2019-05-22 22:20 發表的 : 到引言文
弒血大大
這樣改還是一樣不行



問個問題 是一次性補滿 還是一次補一顆


因為 裡面語法是寫一次補滿整個彈匣的寫法


我在想是不是遇到霰彈本身問題


672行把判斷改一下試看看
if( fInReload && flNextAttack <= 0.0 )
修改成
if( fInReload && flNextAttack <= 0.0 && !iClip)

獻花 x1
引用 | 編輯 mingjey2000
2019-05-23 12:15
4樓
  
改成這指令後

if( fInReload && flNextAttack <= 0.0 && !iClip)
有時可正常,有時又會自動補一次子彈

原本45顆子彈,自動補彈後變回8顆,當子彈用完或是"手動裝彈"又變回45顆,每發射一下又自動補一次子彈,
它確實是散彈槍的寫法,也許只好從子彈數量設定成 8顆,讓它能配合(不超過8顆就不會出現提前自動補子彈動作)

132行
cvar_clip = register_cvar("zp_pl_clip", "45") // 子彈數
改成
cvar_clip = register_cvar("zp_pl_clip", "8") // 子彈數

獻花 x1
引用 | 編輯 弒血
2019-05-23 14:48
5樓
  
下面是引用 mingjey2000 於 2019-05-23 12:15 發表的 : 到引言文
改成這指令後

if( fInReload && flNextAttack <= 0.0 && !iClip)
有時可正常,有時又會自動補一次子彈

原本45顆子彈,自動補彈後變回8顆,當子彈用完或是"手動裝彈"又變回45顆,每發射一下又自動補一次子彈,
它確實是散彈槍的寫法,也許只好從子彈數量設定成 8顆,讓它能配合(不超過8顆就不會出現提前自動補子彈動作)

132行
cvar_clip = register_cvar("zp_pl_clip", "45") // 子彈數
改成
cvar_clip = register_cvar("zp_pl_clip", "8") // 子彈數



707行改這段看看



if (iClip >= iClipExtra)
return HAM_SUPERCEDE
修改後

if (iClip >= iClipExtra || iClip)
return HAM_SUPERCEDE


修改成如果clip內還有子彈就不能裝填看看


如果還是不行 那我建議 把m3改掉 換成別把步槍

獻花 x1
引用 | 編輯 mingjey2000
2019-05-23 16:43
6樓
  
假如真這麼做的話等於是強迫它把事情做完
當玩家想提前手動補個子彈,這時可能會認為案鍵是不是壞了...哈哈

您說把m3改成別把步槍?
我改改看

獻花 x1
引用 | 編輯 弒血
2019-05-23 16:55
7樓
  
下面是引用 mingjey2000 於 2019-05-23 16:43 發表的 : 到引言文
假如真這麼做的話等於是強迫它把事情做完
當玩家想提前手動補個子彈,這時可能會認為案鍵是不是壞了...哈哈

您說把m3改成別把步槍?
我改改看



很大的原因可能是M3本身就會自動一顆一顆換子彈
即有很大的因素衝突到一次換彈可能性
換成步槍就沒這問題了

獻花 x1
引用 | 編輯 mingjey2000
2019-05-23 17:15
8樓
  
我把m3霰彈槍改為M4A1步槍
並將子彈數改回45顆,裝彈後變成30顆(自動提前裝彈問題沒在發生過)
當我買了M4A1步槍使用,這時...子彈速度也變成毒藥離子槍速度(很慢)
飛出去的速度反成一個困擾



42行
#define CSW_WPN_POISON CSW_M4A1
46行
new const gWeapon[] = "weapon_m4a1"
160行
if (equal("events/m4a1.sc", name))
370行
if(equal(model, "models/w_m4a1.mdl"))

獻花 x1
引用 | 編輯 弒血
2019-05-23 17:58
9樓
  
下面是引用 mingjey2000 於 2019-05-23 17:15 發表的 : 到引言文
我把m3霰彈槍改為M4A1步槍
並將子彈數改回45顆,裝彈後變成30顆(自動提前裝彈問題沒在發生過)
當我買了M4A1步槍使用,這時...子彈速度也變成毒藥離子槍速度(很慢)
飛出去的速度反成一個困擾



42行
#define CSW_WPN_POISON CSW_M4A1
46行
new const gWeapon[] = "weapon_m4a1"
160行
if (equal("events/m4a1.sc", name))
370行
if(equal(model, "models/w_m4a1.mdl"))



看了全部內容 大概知道原因在哪


你那m4a1可能沒有關掉毒槍效果,關掉毒槍要丟棄武器


你嘗試切換武器 看看有沒有跳出毒槍的模組


此作者 並沒有用curweapon事件去做檢查手部武器模組


當下只有
178行的
public fw_item_addtoplayer(ent, id) //拾取道具時
跟 620行的
public fw_Item_Deploy_Post(weapon_ent) // 切換武器
才有給予毒槍模組


也有可能是 武器沒有正常顯示出毒槍模組 但是 效果依然存在導致 你看到是正常m4a1的外觀 但是實際上 毒槍效果依然存在

獻花 x1