太空工程师吧 关注:36,713贴子:508,366
  • 9回复贴,共1

[Mod]当你受够了WeaponCore的屎山代码于是决定手搓一个武器框架

只看楼主收藏回复

没错,我手搓了半个WeaponCore


IP属地:美国1楼2024-10-28 08:44回复

    工坊链接


    IP属地:美国2楼2024-10-28 08:48
    回复
      啊?牛波一


      IP属地:浙江3楼2024-10-28 09:21
      回复
        这个mod最早可以追溯到21年的时候。当时我突发奇想,自学了三分钟线性代数之后做了一个可以反射的光束武器(要知道当时连战斗更新都没出来,更别提23年才加入的跳弹机制了,所以整个反射光束的代码完全是靠我自己寻思出来的)。自娱自乐了一段时间之后听别人说WeaponCore框架可以做出来类似的效果,而且由于WeaponCore不支持使用原版武器系统(我之前这个其实是改的室内炮塔),遂开始制作适配WeaponCore的版本
        但是做一半我突然发现:反射?WeaponCore哪有反射,这框架连跳弹都做不出来
        不过无所谓,WeaponCore做不出来不代表我做不出来
        22年8月份左右我开始着手准备为WeaponCore编写跳弹和光束反射相关的程序(不得不说这玩意是真屎山,稍微动一个变量能影响至少10个不同的地方,还有喜闻乐见的if嵌套,而且连个null检测都没有),初步测试取得了还不错的效果。但是准备提交的时候WeaponCore的(前)作者表示:这玩意太复杂了,加进去不知道会出现什么样的效果,所以暂时不考虑
        当时我还没反应过来,后来一想他可能指的是WeaponCore本身而不是我这个反射光束代码。毕竟上面说过了,这玩意本身就是个巨大的屎山(甚至他自己都不敢大改,只能做点小修小补,我这玩意真实装了估计能直接把WeaponCore给炸了)
        不过他倒是提到了另一种方法:使用WeaponCore提供的api来实现这种效果,只需要在"击中方块之后生成一个飞向反射方向的射弹",不就是跳弹了?
        想法是好的,但是恕我直言,当时WeaponCore的api就是一坨
        Mod用的api给你分成三个文件,并且连文档甚至注释都不给你
        没办法,只能对着代码和函数名来猜测那些玩意的作用是啥
        结果我看完之后发现:好家伙,我要的是一个都没有
        不过无所谓,WeaponCore做不出来不代表我做不出来
        打开CoreSystemsApiBase.cs,加入IsWeaponShooting、GetShotsFired和GetMuzzleInfo,保存,提交,合并分支一气呵成
        从此WeaponCore终于结束了"封闭生态",武器开火事件终于能被其他mod脚本读取了
        不过此时我的目标已经从"做出一个适配WeaponCore的反射光束"变成了"做出一个适配WeaponCore的一整套光束武器框架系统"
        但"喜闻乐见"的是,写着写着我硬盘炸了
        WC,我****
        没办法,只能一切从头再来。不过由于之前事先给我的mod做了个备份所以不至于产生太严重的损失
        之后的事情就不需要说了,在损失了一块硬盘和一台电脑,耗时3年零不知道几个月之后,我终于硬生生把这东西给搓出来了
        (另外上面那个链接其实是我自己做的一个用了这个框架的mod,而不是这个框架本身)


        IP属地:美国4楼2024-10-28 09:42
        回复
          另外由于这个mod是给牢外做的(才不是因为我懒),所以暂时没有中文本地化。不过要做也很简单就是了(别忘了我之前可是做过SE的自动汉化补丁的)


          IP属地:美国5楼2024-10-28 09:46
          回复
            真大佬


            IP属地:江苏来自Android客户端6楼2024-10-30 21:28
            回复
              牛皮


              IP属地:广东来自Android客户端7楼2024-11-02 11:56
              回复
                大佬


                IP属地:广东来自Android客户端8楼2024-11-04 09:07
                回复
                  这mod代码还有嵌套的if语句?


                  IP属地:北京来自Android客户端9楼2024-11-04 13:29
                  回复
                    这个可以自己修改参数吗?


                    IP属地:浙江来自Android客户端10楼2025-02-04 00:56
                    回复