原创
附送「准星方块信息」,顺手解决「这东西砸了掉什么」。
萌新刚玩七日杀这个游戏,直接就是亡灵遗产起手,但存储和拆解物品获取内容这两块非常痛苦,于是写了这么个模组来让自己方便点。
当然,这个模组还是有局限性,后续会另外做一个完整的模组来独立存储……
给 Undead Legacy 加了一个「存储终端」方块。
放一个终端,把你基地里所有开过「广播存储」的箱子接进来,之后只开这一个界面就能浏览、取出、搜索、往里塞所有箱子里的东西 —— 就是《我的世界》应用能源 2(AE2)那个终端的感觉。
UL 本身没有数字存储网络,物品始终躺在实体箱子里。这个模组不改变这一点,只是把「翻 30 个箱子」变成「开一个窗口」。
-
可制作、可放置。打开后把广播范围内所有已广播容器的物品摊在一个界面里
-
按世界坐标稳定排序,同一个箱子里的东西永远在一起,不会每次开都乱跳
-
复用 UL 的「广播开 / 广播关」标记 —— 你原来怎么标箱子,这里就怎么用
-
UL 自带的「全部移入 / 只移可堆叠」直接可用
-
站在终端前,把一背包垃圾一键丢回网络
-
复用 UL 的搜索框(就是 UL 那个带放大镜的搜索格)
-
打
muzhi就能搜到「木质手柄」,不用切输入法打汉字 -
支持全拼(
muzhishoubing)、声母缩写(mzsb/mz)、部分音节(muzh) -
多音字任一读音都能命中(
hang→ 自行车,chong→ 重甲) -
覆盖三个搜索框:终端 / 普通箱子、背包、车辆 —— 它们是同一份代码,全都生效
-
合成窗口的配方搜索也支持拼音
木制 依然搜不到 木质,不会糊成别的字。-
便携物品,右键打开你绑定的那个存储网络
-
绑定方式:手持远程终端,对着终端方块按
E→ 菜单里选「同步远程终端」 -
绑定后任意距离都能访问(人在矿洞,家里的箱子照样翻)
-
绑定信息存在物品里,放箱子再拿出来、重进游戏都还在
-
没同步也能右键打开,只是网络范围退化成你当前位置的广播容器
-
终端界面右上方工具条最右侧有合成图标 → 点它
-
切到 UL 原本的合成界面,但材料直接从终端网络扣
-
UL 的「附近存储
{linkedStorageCount}」会显示终端网络的容器数 -
合成界面左下角有 「返回终端」 按钮,一键回终端界面
-
远程终端 + 终端内合成 = 站在几百米外用基地材料合成
准星对着方块时显示:
石制方块 需要: 镐 破坏掉落: 石块 ×1-2、铁矿 ×1 (50%) 采集加成: 铁矿 ×1
-
数据直接读运行时的掉落表,UL 改过的掉落表也会正确反映
-
显示位置在方块血条下方
-
三档模式:关闭 / 精简 / 完整 —— 在 ESC → 选项 → 视频 → UI 里切换
Mods/ └── ZZZ_ULVirtualTerminal/ ├── ModInfo.xml ├── ZZZ_ULVirtualTerminal.dll ← 编译产物,必须在模组根目录 ├── Config/ │ ├── blocks.xml │ ├── loot.xml ← 终端容器(必须叫 loot.xml) │ ├── items.xml │ ├── recipes.xml │ ├── Localization.txt │ ├── XUi/windows.xml │ ├── XUi/xui.xml │ └── XUi_Menu/windows.xml ├── UIAtlases/ItemIconAtlas/ ← 自绘图标 ├── ulvt_blockinfo.cfg ← 准星信息的显示模式(首次改设置后生成) └── Source/ ← 源码,游戏不会读
ZZZ_ 前缀不能改ZZZ_ 排在 UndeadLegacy 之后,XML patch 才能改到 UL 定义的东西。改名 = 模组失效。ModInfo.xml 里带了 SkipWithAntiCheat,开着 EAC 时会静默跳过(不报错,但也不生效)。Config/loot.xml 这个名字不能改loot.xml 的 <lootcontainers>,写进别的文件名会静默失效,然后终端窗口一开就崩。UL 工作台 3 级,配方自动解锁(不需要研究):
| 产物 | 材料 |
|---|---|
| 存储终端 | 锻钢 20 + 电子零件 40 + 机械零件 20 + 电子电路板 5 |
| 远程存储终端 | 锻钢 10 + 电子零件 30 + 电子电路板 4 + LCD 屏 2 + 微型芯片 3 |
giveself ulmStorageTerminal —— 本体这条命令对自定义方块会报 Unknown itemname given(它只查物品名字表,而方块名不在里面)。用 ulvtgive(本模组自带)或创造模式搜索。把要联网的箱子,一个个用 UL 的容器激活菜单选 「广播开」。
终端方块自己也有 200 格,用同一个菜单决定要不要并进网络。
对着终端按 E → 聚合界面。所有已广播容器里的东西都在这里。
手持「远程存储终端」,对着终端方块按 E → 选 「同步远程终端」。之后在任何地方右键就能开这个网络。
ulvtgive| 命令 | 作用 |
|---|---|
ulvtgive |
给 1 个终端方块 |
ulvtgive 5 |
给 5 个 |
ulvtgive remote |
给 1 个远程终端 |
ulvtgive remote 3 |
给 3 个远程终端 |
ulvtgive diag |
只打印诊断信息,不给东西 |
-
搜索框现在认拼音:
muzhi→ 木质手柄,mzsb→ 木质手柄,hang→ 自行车 -
覆盖终端 / 背包 / 车辆三个搜索框 + 合成窗口的配方搜索
-
中文原文匹配行为一点没变(
木制依然搜不到木质) -
实现上只替换了「怎么算匹配」这一步,UL 自己的搜索循环一行没动
-
修:放进去的物品要关掉终端再打开才看得到
-
修:终端里点 UL 的排序按钮没反应
-
两处根因都出在「写真实容器时没同步视图索引」+「跳过了基类的通知调用」
-
按钮改成运行时贴着 UL 的 ★ 收藏按钮摆,无论窗口怎么变都和 ★ 对齐
-
从配方网格里(会飘)→ 队列窗口标题行(稳但太靠下)→ 合成页表头行(终于对了)
-
根因:UL 有个负责放大战利品窗口的方法,它的 Harmony 补丁因为方法签名变了挂不上,窗口一直停在写死的
325×325 -
现在窗口打开后自己补一次尺寸计算,并把视图压缩成只含非空物品
-
修:准星方块信息跑到屏幕左下角压住血条(UL 那个窗口的锚点在左下角)
-
修:
ulvtgive只听到音效看不到东西(改成直接进背包)
ulvtgive 控制台命令-
本体
giveself给不了自定义方块,这个命令先走本体路径、失败回退到方块表
-
准星对着方块显示「需要什么工具 + 破坏/采集产物」
-
数据读运行时掉落表,UL 改过的表也准
-
三档模式在 ESC → 选项 → 视频 → UI 里切
-
修:合成界面左下角会冒一个半透明灰方块(「返回终端」按钮的点击区被撑大了)
-
修:方块与物品缺图标、远程终端顶着原版麻袋模型(现在都是自绘图标)
-
v0.3.0 有个致命配置错误会让游戏卡在加载界面,已修。装过 v0.3.0 的请务必替换 DLL
| 限制 | 说明 |
|---|---|
| 最多显示 488 条物品 | 受 UL 的网格渲染上限(62 行)限制,超出部分拿不到,日志会提示 |
| 视图是快照 | 打开那一刻拍一次。别处往箱子里塞的东西要关掉重开才看得到(走「终端 → 合成 → 返回终端」会自动重建) |
| 不能按列排序 | 聚合视图是动态生成的,「按列排序」不适用;界面内用 UL 自己的排序按钮 |
| 远程终端是点对点 | 一个远程终端只能绑一个终端方块,换网络要重新同步 |
| 终端被拆后绑定失效 | 远程终端仍会以旧坐标扫容器(日志有警告),重新同步即可 |
| 会话与合成窗口绑定 | 「终端 → 合成」期间会话存活,按 ESC 关掉合成窗口就结束 |
-
不修改 UL 的任何文件,全部通过 XML patch + Harmony 运行时补丁接入
-
不接管 UL 的容器窗口类,只在 UL 没 patch 的那一层换容器
-
不实现自己的取料 / 合成逻辑,完全复用 UL 的现成实现
-
准星方块信息只读数据、不碰游戏逻辑,理论上不会和别的模组冲突
-
UL 升级后如果日志里
Init OK, 12/12不是 12/12,看skip:警告就知道哪个切入点失效了
giveself ulmStorageTerminal 报 Unknown itemname given?ulvtgive 或创造模式。[ULVT] session: N item stack(s),N=0 说明那个网络里确实没东西(箱子没开广播)。[ULVT] pinyin table loaded: 3894 char(s) [ULVT] pinyin: 2 call site(s) redirected in ULM_StackSearch.SearchInventory [ULVT] pinyin: 4 call site(s) redirected in H_RecipeFilter.CheckMatch
少了说明 UL 改了方法签名,需要更新模组版本。
E → 同步。[ULVT],必须能看到 Init OK, 12/12 patch(es) applied.[ULVT] 那几行 + 截图 + 你装的其它模组列表。












鄂公网安备42011202002543号




哈哈,谢谢楼主了,我先试试看。
你还没有填写个人说明哦