家园3吧 关注:2,830贴子:12,628
  • 14回复贴,共1

【MOD】《家园:卡拉克沙漠》的mod制作方法

只看楼主收藏回复

吧主曾发过一贴,《【资源/DOK】《家园:卡拉克沙漠》地图包_GE1.3》,【制作mod的方法】也就在其中。
GE1.3本质上就是一个【目的在于平衡对战并提供更多地图】的【mod】——只不过对于对战的平衡文件,基本都需要在多人对战大厅中输入对应的命令,从对应网站下载并加载。
但是,这个GE1.3有一个恒定加载的mod,也就是fathership这个派系——进一步的,通过查看dll文件中的代码设置,可以发现,GE1.3预留了一个本地mod接口,也就是【非战役时恒定加载Managed文件夹下的fathership.json文件】!
于是,参考GE1.3已经提供的各种json文件,并结合本地加载fathership.json时在Data文件夹下生成的各种读取与运行记录文件,就可以相当自由度的制作mod!
但是,就目前来看,因为这种方法的本质是【覆盖】,所以【基本只能】【调整已有条目】而【不能】【新增条目】(比如可以调整某一技能,但不能新增某些技能,不过“0:”“1:”这样分条式的代码一般可以移除与新增),并且这种覆盖对少数条目存在问题。
但总之,【已经可以相当自由度的制作mod】!
注:.json文件可以用txt编辑,但我推荐用VScode编辑,最大的优势就是有【代码显示格式】,更方便的理解与编辑。
-------------------分割线-------------------
进一步的,想要知道【能调整的有哪些?】【输入的格式是怎样?】,【最靠谱的方法】是去【查看dll的subsystem模块】。
而【原设值为多少】与【覆盖情况】,加载fathership.json时在Data文件夹下会生成的各种读取与运行记录文件,查看即可。
注:个人使用的是Reflector,记得需要将Managed文件夹下【所有dll】导入,不然【代码体系不完整】。
-------------------分割线-------------------
其实,想要让fathership.json在战役中也加载,并不困难。
对dll文件进行代码查找,可以发现加载fathership.json部分有一个if判定语句,移除该判定语句即可在战役中正常加载。
注:个人使用的是Reflector的插件reflexil,只要把不通过判定的跳转改为紧接着下一行,就可以令该判定语句失效,从而始终加载fathership.json。
-------------------分割线-------------------
用以上方法,我自制了一个比较简单但比较有创新的mod,姑且称为【Wrath of Sajuuk(萨由克之怒)】又或者【Rachel & Orbital Weapon(瑞秋与天基武器)】。
分享(期限为永久):s/1bF6uOucs0Q2I8-KxRt62CQ,提取vov4。
注:首先需要下载并安装GE1.3,然后将fathership.json文件放到Managed文件夹内,这样mod就可以用了。如果想要在战役中使用mod,调整方法见上。
GE1.3是一个【目的在于平衡对战并提供更多地图】的【mod】,所以主要的调整在于【平衡性】,又或者是【趣味对战】——但我更倾向于【单机游玩,玩的舒服】。
所以,我做出了如下【主要调整】:
【遭遇战】:
①加入了【rachel】,通过基地行者的防空炮塔技能进行生产(技能不再产出防空炮塔,而是【rachel】)。
②【rachel】具有【全技能】,包括炸药包、维修光束、黑客入侵(初级)、EMP(初级)、侦察器、天基武器-窄、【天基武器-宽】。
注:其实,【天基武器】的【显现触发条件】【很繁琐(以至于到现在都没搞清楚)】,所以在代码上,直接采用了【取消所有显现触发条件(即直接显现)】——所幸【连带影响很小】,影响的基本就是【rachel】这个有一堆随剧情获取的技能的单位。
③对【天基武器-宽】进行以【一击必杀】为主要的调整:a.【伤害值】设置为【1E+300】:因为是【double类型数值】,所以这是允许的,但其实查看【覆盖情况文件】,发现【实际加载值】是【2147483648】,即【Int32上限+1】,但也足以对【范围内任何目标】【一击必杀】!b.【范围】调整至【3000】,并【取消友伤】【取消衰减】;c.【冷却调整至3s】,另,天基武器-窄也【冷却调整至3s】。
注:【Wrath of Sajuuk(萨由克之怒)】也就是对【调整后】的【天基武器-宽】的形容。
注:这种调整是【出于个人喜好】,我喜欢【从一开始就掌握胜利】的【安心感】与【一击必杀】的【畅快与强大(以及与之对应的特效的煊赫)】,因此,我对【天基武器-宽】做出了上述调整,并赋予其【Wrath of Sajuuk(萨由克之怒)】的名号。但是,我更多的是将【萨由克之怒】作为【仪式感】的【终极武器】,使用情况【只有两种】:【应对紧急情况(但尽可能避免用于该情况)】与【胜局已定的终焉一击】。
TIP:按alt可以开关【部分战术界面的信息化】,比如【战场迷雾是否以视觉效果显示】——【关闭战场迷雾的视觉效果】对于【全图施放】的【天基武器】而言,有助于【提高特效表现效果】。
注:【天基武器-宽】与天基武器-窄【共享冷却】,这是同样调整了天基武器-窄的【代码因素】——当然,作为【不同出力模式】,天基武器-窄的冷却【理应同步调整】,这是【剧情因素】。
④【rachel】的黑客入侵(包括升级前与升级后),改为【10s冷却,无资源消耗】。
注:这个其实主要是针对【战役】,【战役】【第九关-回音谷】特别适合抓船,而120s冷却太墨迹了。
⑤【联盟舰队】的【两项运载舰生产升级仅保留一项,并初始出现在科技栏】,【无资源消耗并耗时1s】,效果为【获得两条额外生产线与人口锁定125】。
注:【联盟舰队】的【人口信标】是一件非常违和的设计,对【移动舰队】根本不合理,简单的说,【战役】中根本没有人口信标——所以取消了。
【战役】
①【遭遇战】中的调整,无特殊说明即仍生效。
②【战役】中【rachel】本就【初始存在】,且此时的【防空炮塔】独立于【遭遇战】而不受调整影响。
③【战役】中【rachel】的技能【享受科技加成】,但【初始解锁(包括最后一关)】——除了【第四关】,【但很快就会随解锁技能,所有技能一同解锁】。
-------------------分割线-------------------
对于上述个人mod,经测试,【不会引起战役BUG】(但前提是不要乱用天基武器,尤其是对剧情目标,只有在已经接战或己方具有空军乃至目标已经接近被摧毁时才施放【萨由克之怒】灭杀)。
但其实,mod作用于战役,可能令战役【触发条件】产生BUG而导致【战役剧情不能正常触发】。
比如,如果将【视野】调整至全图(35000就足够了),会导致【第三关】卡死——【守护rachel剧情】无法正常触发倒计时。
事实上,【HW系列】的确有【很多触发】【依赖于视野】,所以想要将mod用于战役,【视野的调整】【需要谨慎】。
-------------------分割线-------------------
有一个问题是,【为什么要制作mod?】
对于我自己而言,就是【玩的舒服】,对于一个体系设计让我青睐有加的游戏,自然希望使之更加符合喜好——对于【家园正传】是如此,对于【卡拉克沙漠】亦是如此。
至于推己及人,我是不敢说的——一旦涉及到个人审美,那就千差万别了。
但我可以确定,【卡拉克沙漠】作为【前传】,同样有其【创新之处】与【独到的韵味】,具有【神似却又大不相同的作战体验】。
正是因此,我会对【卡拉克沙漠】的【mod制作】【始终念念不忘】,最终在机缘巧合下,通过GE1.3找到了方法。
我想,大概也会有其它人希望去尝试去体验【更符合审美的卡拉克沙漠】,又或是【不同的卡拉克沙漠】。
所以,我认为花费一些时间,记录这些文字,与他人分享,是有价值的。
-------------------☆完☆-------------------


IP属地:湖南1楼2021-12-19 22:01回复
    感谢楼主,你的贴子对我而言非常有用!


    IP属地:上海2楼2022-01-29 10:15
    回复
      2026-04-24 02:09:53
      广告
      不感兴趣
      开通SVIP免广告
      楼主,我想把遭遇战中的加奥森母舰换成战役中出现的那艘加奥森旗舰-萨尤克之手,要近防炮都能开火,你能帮我吗,我能支付报酬的


      IP属地:四川3楼2022-08-24 14:07
      收起回复
        楼主,fathership要如何在战役中生效?我想调整一下巡航导弹的威力。


        IP属地:四川来自Android客户端4楼2023-03-18 00:42
        收起回复
          大佬能不能给个改过的Assembly-CSharp 文件?
          想在战役中生效,
          貌似只有这个文件有fathership相关字符
          带M+数字的应该都是对应的关卡,感觉应该只改上面的

          上面的没搞懂应该怎么改。。。



          IP属地:江苏5楼2025-11-25 17:21
          回复