【阴暗森林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