[前置] FWLib
本帖最后由 手电筒_FW 于 2026-11-5 13:14 编辑简介
主要为自己,以及一部分群友使用的前置MOD。发布到这里更多是为了留档或者方便下载?实时更新版本仍然是在交流群里。
既然是自2021年以后第二次发布该MOD,那版本号就叫做 2.0.0 好了。
*该前置MOD创作于2021年,其架构可能较为杂乱,因此请谨慎使用(可能是屎山留下了一堆BUG,我只能尽量保证现有功能不出什么问题)。并且其中的一部分功能可能与21年及之后几年内出现的一些MOD提供的功能存在重复,若出现类似情况还请不要进行诋毁。
主要内容
- 提供了许多包装好的工具类,以及如下等等等一些较为杂乱的功能。
- 提供了通过 json 文件生成星系的功能。
- 提供了实现彩色相位线圈的功能。
- 提供了自定义简易赏金的功能。
- 提供更改舰船槽位的功能。
反射
本MOD可绕过原版的反射限制,允许无限制地使用反射访问深层代码。但由于本MOD并未更改原版游戏文件,原版代码中被混淆的部分仍然存在,需要使用者自己进行逆向分析。
本人对其中一部分被混淆内容进行了逆向工程,并将这些内容包装成了方法。这些功能能够实现一些使用常规方法无法实现的效果,例如我在B站上发布过的镜像翻转舰船、彩色相位线圈、修改舰船槽位、炮塔转接头等较为新奇的功能。
使用与警告
*本MOD提供的功能只在需要时才会出现,因此携带此MOD通常不会影响到正常游戏。
但是,本MOD不能在加入生涯后被移除,因为一些内容会被计入存档(例如自定义星系或赏金等)。
*本MOD并不强制要求依赖控制台,但在控制台启用的情况下会添加一些命令,如果使用的控制台版本过旧,可能会在启动游戏时报错。
一些使用此MOD制作的彩色相位线圈,这些舰船的右键防御系统仍然还是原版的相位隐形,只是贴图被替换成了彩色的。
大佬可以修一下精英怪双倍空间站导致出现双倍星系的bug吗
馋这个好久了 非常有趣工具,使群友大脑旋转! 强强 草,光看名字我还以为是和什么“虚无主义平衡”类似的整蛊mod,废物前置,前置了一些完全没用的api.jpg{:5_124:} 好强 这个能解决我的那个简易涂装修改在修改涂装后必须要刷新一下的问题嘛?看上去好像有点相关,我给自己搓了一个改舰船武器位那个扇形射界的船插mod,安装上后也还是要按R刷新,虽然都不影响功能但是难受…… 大就是好 发表于 2026-9-19 12:51
这个能解决我的那个简易涂装修改在修改涂装后必须要刷新一下的问题嘛?看上去好像有点相关,我给自己搓了一 ...
可以的,提供了通过代码立刻刷新舰船面板的方式。
对于武器射界,其实已经提供了一个简易的修改射界的方式,只需要
stats.getDynamic().getMod(FWIDS.MOD_TURRET_ARC).modifyFlat(id, TURRET_ARC_BONUS);
就可以简单修改炮塔射界,并且和其它使用此前置的MOD的修改不冲突。
炮塔射界是MOD_TURRET_ARC,挂载点射界是MOD_HARDPOINT_ARC 手电筒_FW 发表于 2026-9-19 12:55
可以的,提供了通过代码立刻刷新舰船面板的方式。
对于武器射界,其实已经提供了一个简易的修改射界的方 ...
谢谢,我看看怎么接入前置 作者大大你好!感謝你製作了 FWLib 這麼好用的 Mod
我剛發現當我使用 Fast Rendering(Genir 製作的那個快速渲染補丁)的 fr.bat 方式開啟遊戲時,如果勾選了 FWLib 模組,遊戲一啟動就會直接 Crash 閃退。
我另外做過乾淨測試,發現只要用 fr.bat(Fast Rendering)啟動,且只單獨開啟 FWLib 這一個模組,一樣會百分百報同一個錯誤。
但如果我不用快速渲染,直接用正常方法(原版 exe/bat)啟動遊戲,FWLib 就能完全正常執行。
我自己看了一下 Log,似乎是因為 Fast Rendering 介入後,導致 FWLib 在執行 changePhaseClock 的時候找不到變數(報了 NoSuchFieldException: do.super)。
以下是完整的 Error Log,貼上來給大大參考看看:
13781 ERROR com.fs.starfarer.combat.CombatMain- java.lang.NoSuchFieldException: do.super
java.lang.NoSuchFieldException: do.super
at fw.lib.calllib.CallUtils.setField(Native Method)
at fw.lib.util.LoadingUtils.changePhaseClock(LoadingUtils.java:110)
at fw.lib.util.LoadingUtils.init(LoadingUtils.java:57)
at fw.lib.FWModPlugin.checkOnApplicationLoad(FWModPlugin.java:38)
at fw.lib.FWModPlugin.onApplicationLoad(FWModPlugin.java:29)
at com.genir.renderer.overrides.loading.ResourceLoader.initEpilogue(ResourceLoader.java:170)
at com.genir.renderer.overrides.loading.ResourceLoader.init(ResourceLoader.java:76)
at com.fs.starfarer.loading.ResourceLoaderState.init(Unknown Source)
at com.fs.state.AppDriver.begin(Unknown Source)
at com.fs.starfarer.combat.CombatMain.main(Unknown Source)
at com.fs.starfarer.StarfarerLauncher.o00000(Unknown Source)
at com.fs.starfarer.StarfarerLauncher$1.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
看來是 FWLib 與 Fast Rendering 之間有底層衝突,等大大有空的時候再看看怎麼修復,辛苦啦! 本帖最后由 手电筒_FW 于 2026-9-19 14:41 编辑
Aibcowniomw 发表于 2026-9-19 14:15
作者大大你好!感謝你製作了 FWLib 這麼好用的 Mod
我剛發現當我使用 Fast Rendering(Genir 製作的那個 ...
我的介绍里已经说过了,由于Alex不愿公开他的代码,想要实现一些高级效果就必须想办法解决绕过反射限制和对混淆代码进行逆向这两件事。所以,由于没有一个统一的标准,各个mod之间解决的方法不尽相同,那这也就意味这会产生冲突。正如介绍所说,FWLib建立在原版的混淆代码上,无需对原版文件打补丁或者文件替换,所以这估计代表着给原版文件打了补丁的那些mod:Fast Render,MixinLib,Nanoforge恐怕都无法兼容。 好吧,我尝试接入后让AI过一遍说没区别因为它说它的写法几乎和你的前置一模一样……,还是感谢分享,我去试试其他的 手电筒_FW 发表于 2026-9-19 14:40
我的介绍里已经说过了,由于Alex不愿公开他的代码,想要实现一些高级效果就必须想办法解决绕过反射限制和 ...
明白了,謝謝
页:
[1]