【陰暗森林Mod製作】踩雷!程序員寫代碼不規範!


3樓貓 發佈時間:2025-02-12 01:33:45 作者:287數字歌 Language

我在Darkwood陰暗森林全成就之後意猶未盡,故打算給怪物增加血量,減少自己的輸出,給遊戲增加難度。

首先是使用BepInEx的插件框架製作mod,使用harmony補丁對遊戲本體進行修改,這樣不會損壞原文件。

【陰暗森林Mod製作】踩雷!程序員寫代碼不規範!-第0張

測試主角無敵代碼

就在我測試插件時成功修改主角成為【無限耐力】和【無敵不掉血】的超人之後,我對怪物如法炮製,把主角的無敵不掉血代碼複製過來,修改目標對象為怪物、傷害數值變為原來的一半。

【陰暗森林Mod製作】踩雷!程序員寫代碼不規範!-第1張

Character與Player都繼承於CharBase類

因為Player和Character都是繼承於CharBase的子類,並且其中的getHit函數的結構如出一轍,所以我下意識以為Player.getHit和Character.getHit函數里面的參數名稱都是相同的。(正常人都會做成相同的吧??)

就在我以為水到渠成的時候,意外出現了,harmony無論如何都找不到Character.getHit函數,我懷疑過harmony補丁的問題、懷疑過網上的教程、懷疑過我自己,但就是沒懷疑過遊戲開發者寫代碼不規範!!!

直到我折騰了整整一天之後,排除了所有的選項,剩下那個無論多不可能,它都必定是真相!

果然!

【陰暗森林Mod製作】踩雷!程序員寫代碼不規範!-第2張

一個小寫

【陰暗森林Mod製作】踩雷!程序員寫代碼不規範!-第3張

一個大寫Damage

媽的遊戲開發者把Player.getHit裡面的damage參數寫成小寫開頭,Character.getHit裡面的參數寫成Damage大寫開頭!!!

我人都傻了,折騰了一天原來是你在坑我呢!

【陰暗森林Mod製作】踩雷!程序員寫代碼不規範!-第4張

傷害減半代碼

修改成正確的代碼後,我的插件正常運行,根據我的邏輯,我對所有怪物的傷害減半!

————————————————————————————————

下面是測試內容:

【陰暗森林Mod製作】踩雷!程序員寫代碼不規範!-第5張

一隻小狗的血量是20血

【陰暗森林Mod製作】踩雷!程序員寫代碼不規範!-第6張

使用小刀中鍵三連擊(攻擊力減半)

【陰暗森林Mod製作】踩雷!程序員寫代碼不規範!-第7張

圖片為修改前傷害

使用小刀中鍵三連擊後,造成(4+4+4)/2=6點傷害,那麼這隻小狗應該還剩下20-6=14血,使用UnityExplorer查看小狗血量。

【陰暗森林Mod製作】踩雷!程序員寫代碼不規範!-第8張

是14血,修改成功!

(mod持續製作中……)


© 2022 3樓貓 下載APP 站點地圖 廣告合作:asmrly666@gmail.com