#
| 文件
| 改动
| 备份 / 回滚
|
1
| mods/ChineseInputFix/mod_info.json
| jars 增加 lib/jna-5.14.0.jar(612→637 B)
| backup_cif/
|
2
| Miko_Simple.txt
| -classpath 加 jna;新增 -Dfossic.ime.enabled=false(3149→3219 B)
| backup_cif/
|
3
| starsector-core/fs.common_obf.jar
| com/fs/util/C.class setter 末尾补 putfield C.String(310034→308093 B)
| backup_modfilter/fs.common_obf.jar.orig
|
4
| saves/common/LunaSettings/*.json.data
| 144 个缓存全量重建(去向:各 mod 自己的 CSV)
| LunaSettings_snapshot_before_rebuild/(144 文件)
|
5
| 3 个 mod 的 LunaSettings.csv
| Float→Double、补引号、去前导空格
| backup_csvfix/ + fix_csv_types.py --restore
|
6
| mods/shaderLib/jars/Graphics.jar
| ① TextureData.class 1 字节 ② 重编译 ShaderModPlugin.class
| backup_autogen/Graphics.jar.orig(原始)、.before_onGameLoad(仅补丁①)
|
7
| mods/shaderLib/cache/
| 17496 张法线贴图 / 613 MB
| 旧缓存 cache_probe_bak/(4930 文件)
|
8
| mods/shaderLib 设置
| autoGenNormals 由 false 改为 true
| toggle_autogen.py --off + probe_autogen_backup/
|
9
| mods/jc_sf/jars/jc_asm.jar
| 已撤销。补丁是为 2.2 的缺陷打的;2.2 修好后自检能正常通过,jar 已还原成原始文件(1779610 B,md5 998ceb48be83)
| backup_jc_sf/
|
10
| 5 个 armaa_blinker_*.wpn
| 贴图路径从旧版改到实际位置
| fix_armaa_blinker.py --restore
|
11
| 若干 weapon_data.csv / ship_data.csv
| #标题,数据 拆成两行,共 27 项
| fix_hash_rows.py --restore + backup_hashrows2/
|
12
| mods/ORK/sounds/sfx_wpn_energy/melta_fire.ogg
| Ogg-FLAC → Vorbis(424798→61089 B)
| backup_ork/melta_fire.ogg.orig
|
13
| mods/ORK/sounds/sfx_wpn_energy/bt_holy_aura_charge.ogg
| 0 字节空文件 → 0.2 s 静音 Vorbis
| 原本就是空文件,删掉即恢复
|
14
| mods/nexerelin/data/strings/strings.json
| 取消注释 tooltip_followersDiplomacy 并补中文
| backup_ork/nexerelin_strings.json.orig
|
15
| mods/EVEOverviewCommand/data/config/LunaSettings.csv
| 补 68 个漏配的 Keycode 字段(16 槽位 × 4 + 全体开/关 × 4),11373→18355 B
| backup_eve/LunaSettings.csv.orig + fix_eve_keybinds_csv.py --restore
|
16
| mods/Narcissu/data/config/LunaSettings.csv
| 补 12 个 cpi_large_* 字段(15963→19157 B),消除每局 3084 条 not found in JSONObject
| backup_narcissu/LunaSettings.csv.orig + fix_narcissu_large_csv.py --restore
|
17
| 48 个 .wpn + 3 个 .proj
| 文件名改成 spec 内部 id,修 shaderLib Failed to find JSON(98 → 0)
| backup_wpn_rename/manifest.json(51 条)+ fix_wpn_filenames.py --restore
|
18
| mods/PAGSM/data/strings/strings.json、mods/pigeonpun_bionicalteration/data/strings/strings.json
| 补 11 个缺失的文案 key,消除启动期 Missing string(11 → 0)
| backup_strings/(2 个文件)+ fix_missing_strings.py --restore
|
19
| bionicalteration.jar ×2、TraverserDesignBureau3.jar
| 4 条伪 ERROR 的日志调用精准降级为 INFO(2.14;ERROR 100 → 96)
| backup_pseudo/ + fix_pseudo_errors.py --restore
|
20
| starsector-core/starfarer_obf.jar
| com/fs/starfarer/campaign/ui/class.class → sizeChanged(FF)V 补 instanceof CampaignPlanet 保护,防 OpenCoreTab 的 ClassCastException(2.21;37421→37434 B)
| backup_core_ui_cast/ + patch_core_ui_cast.py --restore
|
当前关键文件指纹(用于确认改动仍在位):脚本
| 作用
|
patch_mod_filter.py
| fs.common_obf.jar 的 com/fs/util/C setter(2.2)
|
patch_shaderlib_autogen.py
| Graphics.jar 的 TextureData 1 字节(2.5 改动①)
|
patch_jc_sf.py
| 已废弃,仅作历史记录。jc_sf 已还原原始 jar,不要再跑 --apply
|
fix_csv_types.py
| 3 个 LunaSettings.csv(2.4)
|
fix_hash_rows.py
| # 吞行拆行(2.7)
|
fix_armaa_blinker.py
| blinker .wpn 路径(2.7)
|
rebuild_luna_caches.py
| 144 个 LunaSettings 缓存重建(2.3)
|
toggle_autogen.py
| 切换 autoGenNormals(--off / --on)
|
fix_eve_keybinds_csv.py
| 给 EVEOverviewCommand 补 72 行键位声明(2.9)
|
fix_narcissu_large_csv.py
| 给 Narcissu 补 12 个 cpi_large_*(2.10)
|
fix_wpn_filenames.py
| .wpn/部分 .proj 文件名改成内部 id(2.11,幂等;已改 51 个)
|
fix_missing_strings.py
| 补 2 个 mod 的缺失文案 key(2.12;自带重复键自检)
|
fix_pseudo_errors.py
| 4 条伪 ERROR 降级为 INFO(2.14;--apply / --restore / --verify,幂等)
|
find_pseudo_error.py
| 全库按 UTF-8 + GBK 搜日志字符串来自哪个 jar(2.14 定位用)
|
check_save_finite.py
| 存档非有限数体检 / 急救(2.20);默认只读,--fix 先备份;--dir 可测样本
|
PatchCoreUICast.java
| 两遍式 ASM:给 core sizeChanged(FF)V 的 pc-only 颜色分支补 instanceof 保护(2.21)
|
check_core_ui_patch.py
| 逐方法 javap 等价性证明:只有 sizeChanged 多 5 条指令、无新常量(2.21)
|
patch_core_ui_cast.py
| 把补丁装进 starfarer_obf.jar;--apply/--verify/--restore,幂等,3127 条目逐个校验
|
check_save_market_entities.py
| 只读体检:pc-only 市场的 primaryEntity 是否为 Plnt,找出潜在 CCE 站点(2.21)
|
PatchReflector.java / ReflectorSanitizer.java
| ASM 给反射阵列 3 个轨道参数加有限性保护;用 aitweaks/jars/asm-9.1.jar 编译
|
apply_reflector_patch.py
| 把补丁 + helper 装进 TASC jar;--apply/--verify/--restore,幂等
|
fix_exotica_refit.py
| 修 refit Fatal(2.18):常量池 #748 改译文 + as UIComponentAPI 强转改 null-safe;--apply/--verify/--restore,幂等
|
VerifyOnly.java
| 独立 JVM 里 defineClass + resolveClass 强制跑字节码校验器,不启动游戏、不 kill 任何进程
|
inspect_refit_constpool.py
| dump 两个 Exotica jar 的 Utf8 常量,定位按钮文字(探查用)
|
audit_pseudo_run.py
| 两次运行日志的 WARN/ERROR 模板差集,判断「新增告警」是否只是读档重跑
|
backup_armaa_upgrade.py
| 升级前全量备份 mods/armaa + saves(逐文件 md5 清单,2.15)
|
compare_armaa_3way.py / compare_armaa_detail.py / inspect_armaa_upgrade.py / inspect_jar_merge.py / inspect_cn_jar_core.py
| 3.3.6 EN / 3.3.6 CN / 3.3.8 EN 三路对比与 jar 分析(只读,2.15)
|
build_armaa_338.py
| 在工作区组装 3.3.8 汉化移植版(含 CSV 列级合并、字体、strings 并集、wpn 改名)
|
merge_armaa_strings.py
| 补回汉化 strings.json 丢掉的两个配置分类(启动崩溃修复)
|
apply_armaa_338.py
| 原子替换 mods/armaa(备份校验 → 改名 → 复制 → 逐文件 md5 → 失败回滚)
|
inspect_cn_strings.py / armaa_cn_literals.json / ARMAA_CN_STRINGS.txt
| 三份 jar 的字符串常量池差集分析(2.16)
|
compare_logic_armaa.py / armaa_logic_compare.json
| javap opcode 序列比较,判断 class 逻辑是否跨版本改变(2.16)
|
armaa_cn_string_map.json
| 25 对英文→中文映射(人工核对,2.16)
|
patch_armaa_cn_strings.py
| 常量池 Utf8 原地替换(--apply / --restore / --verify,幂等,2.16)
|
patch_eve_keys.py
| 已废弃。键位字段已在 CSV 里声明,LunaLib 会自己生成缓存 key,不要再跑
|
目录
| 内容
| 回滚方式
|
backup_modfilter/
| fs.common_obf.jar.orig
| 拷回 starsector-core/
|
backup_autogen/
| Graphics.jar.orig(原始)、.before_onGameLoad(仅改动①)、shaderLib.json.data、hash_after_full.data
| 拷回
|
backup_jc_sf/
| jc_asm.jar.orig(= 当前正在使用的原始文件)
| 一般不需要;已还原
|
backup_cif/
| CIF mod_info.json、Miko_Simple.txt
| 拷回
|
backup_csvfix/
| 3 个 LunaSettings.csv
| fix_csv_types.py --restore
|
backup_hashrows/ + backup_hashrows2/
| 第一批 7 个 / 其余 csv
| 见 2.7
|
backup_armaabl/
| 5 个 blinker .wpn + armaa csv
| fix_armaa_blinker.py --restore
|
backup_ork/
| melta_fire.ogg.orig、nexerelin_strings.json.orig
| 拷回
|
backup_eve/
| LunaSettings.csv.orig(11373 B)、EVEOverviewCommand.json.data.before_csvfix
| fix_eve_keybinds_csv.py --restore;缓存可删(会从 CSV 重建)
|
backup_narcissu/
| LunaSettings.csv.orig(15963 B)
| fix_narcissu_large_csv.py --restore
|
backup_wpn_rename/
| manifest.json(51 条:48 wpn + 3 proj)
| fix_wpn_filenames.py --restore
|
backup_strings/
| PAGSM__strings.json、pigeonpun_bionicalteration__strings.json
| fix_missing_strings.py --restore
|
backup_pseudo/
| 3 个原 jar(2 份 bionicalteration 共用一份)+ manifest.json
| fix_pseudo_errors.py --restore
|
backup_reflector/
| TASC 原 jar(313646 B / md5 153741ac…)+ manifest.json
| apply_reflector_patch.py --restore(2.20)
|
backup_save_before_reflector/
| 当前生涯档 2 文件 / 43 MB + 逐文件 md5 manifest.json
| 整目录拷回 saves/(2.20)
|
backup_save_finite/
| check_save_finite.py --fix 自动生成的存档备份
| 按时间戳目录取回
|
backup_exotica_refit/
| Exotica-Technologies.jar.before_refit_fix(1003974 B)+ manifest.json
| fix_exotica_refit.py --restore(2.18)
|
backup_armaa_upgrade/
| armaa_336_cn/(2069 文件)、saves_before_338/(172 文件)、manifest.json
| 把 armaa_336_cn 拷回 mods/armaa(2.15)
|
backup_cn_strings/
| armaa.jar.before_cn_strings(1667803 B / 748d494c)+ manifest.json
| patch_armaa_cn_strings.py --restore(2.16)
|
backup_core_ui_cast/
| starfarer_obf.jar.before_cast_guard(6997855 B / 77157b3b…)、CoreUIClass.orig.class、manifest.json
| patch_core_ui_cast.py --restore(2.21)
|
probe_autogen_backup/
| shaderLib.json.data(autoGenNormals=false 原状)
| 拷回
|
LunaSettings_snapshot_before_rebuild/
| 144 个 .json.data 改前快照(700 KB)
| 整目录拷回
|
mods/shaderLib/cache_probe_bak/
| 旧法线贴图缓存 4930 文件 / 410 MB
| 确认新缓存稳定后可删
|