Skip to content

UncivCN 新特性

本文逐项介绍 UncivCN 分支相对上游新增的功能。括号内为引入版本。

Lua 模组系统(4.20.8.2 起,持续增强)

模组可以挂载 Lua 脚本,实现远超纯 JSON 的复杂逻辑:

  • 触发方式TriggerLuaFunction unique(建筑/科技/政策/时代/事件/单位/全局词条)与游戏生命周期钩子(<upon turn start> 等)
  • ctx 上下文对象:脚本内可访问 civ(文明)、city(城市)、unit(单位)、tile(地块)、game(全局)等 API,另有 ctx.parameter(Countable 解析)、ctx.store(持久化存储)、ctx.count / ctx.evaluateConditional
  • 安全保障:加固的沙箱(无 io/os/luajava/package 逃逸路径,移除 string.dump)+ 每次脚本加载与函数调用的指令预算,死循环无法卡死游戏
  • 错误报告:运行时错误向玩家弹出时带脚本名与行号;AI 回合触发的错误记入模组检查器,不再丢失
  • 工具链:游戏内模组检查器与 mod-ci 命令行检查 Lua 语法、函数引用与 API 拼写(带建议);自动生成的 EmmyLua 类型定义(docs/Modders/lua-api.lua)为 LuaLS 系编辑器提供自动补全与悬停文档;起步模板(docs/Modders/examples/LuaStarterMod/)几分钟即可上手;另有 game.findTiles 等便捷 API

完整教程见 Lua 脚本

镜像与环形地图(4.20.7.3 / 4.20.7.4 / 4.21.0 起)

  • 三种镜像地图模式:创建游戏时可选,镜像模式下资源也对称分布(4.20.7.4)
  • 环形地图:地图首尾相接,取消旋转对称地图对半径的奇偶限制(4.20.17.2)

单位钉 / 地图钉(4.20.17.2)

在世界屏幕右下角小地图左侧新增两个独立开关:

  • 单位钉:开启后可点击任意单位(含他国单位)添加备注,备注显示在单位兵棋正下方;再次点击可编辑或删除;同一地块多单位时弹出选择列表
  • 地图钉:可点击任意地块(含无单位地块)添加备注,显示在地块上,优先级高于食物/产能/金币等产出图标

编辑方式(4.21.6.1)——无需开关,普通点击永不被劫持:

  • 手机:长按地块/单位编辑其备注(未选中单位时;已选中单位时长按仍为移动单位,行为不变)
  • 桌面:Alt+点击地块/单位编辑其备注
  • 开关仍保留作为备选:开启后普通点击即编辑(兼容旧习惯)

显示(4.21.6.1):备注气泡截断为 8 字符,不再遮挡地图;点击气泡可查看全文并支持编辑/删除(手机无悬停,以点击替代)。地块笔记开关改用星标图标,两个开关在桌面端悬停有文字提示。

备注数据保存在 {存档名}_notes 文件中。

地块归属 tile-claim(4.21.0 合并上游前自研,持续维护)

城市可对周边地块宣称归属(Claim)并交换地块,相关功能随上游演进持续适配。 自 4.21.6.1 起,内置基础规则集(Vanilla / Gods & Kings)不再默认启用该特性——由模组通过 ModOptions 的 "Allow cities to claim tiles" unique 自行声明启用(如 CoeHarMod)。

人口自动锁定按钮(4.21.0.1)

城市屏幕右下角新增 自动锁定 按钮,可永久切换「不锁人口 / 锁人口」两种工作地块分配策略,替代原版每次手动锁定的快捷方式。

随机数读档可变性(4.21.0.1)

单机模式下读档后随机数序列可变(不再固定),4.21.0.1 起该功能联机时不可用,保证多人对局公平性。

新建游戏设置导出 / 导入剪贴板(4.21.5.1)

新建游戏时可将当前全部设置复制到剪贴板,或从剪贴板粘贴恢复,方便分享开局配置。

轮询联机(4.20.8.1)

在动态回合基础上新增轮询联机模式:同一回合拆分为固定时长的时间片,玩家间按时间片轮流传递存档,将等待上限从「对手想多久就多久」压缩为数秒。

  • 创建游戏时勾选 Online Multiplayer 后可选 Polling interval(Off / 5s / 10s / 15s / 20s / 30s)
  • 可查看其他玩家的在线状态(4.20.8.4)

完整机制见 轮询联机机制

默认服务器(4.21.0.1)

联机默认服务器改为 http://sp.unciv.cn:30123

游戏版本兼容性隔离(4.20.17.2)

旧版客户端无法加载新版存档,避免版本混用导致的存档损坏。

MergeAction 扩展 JSON 系统(4.20.7.3)

在原版基础上扩展 _mergeAction(字段级合并)能力,模组可增量修改规则集对象而不必整对象替换。 另有多个新增 Countables 参数类型、Amount 参数兼容 Countables(4.20.8.2)。

教程见 UncivCN 扩展 JSON - MergeAction 教程

模组版本要求(4.21.6.1)

模组可在 ModOptions.json 中声明版本号与兼容性要求,仅以警告方式检查(不阻止):

  • modVersion:格式 n.n.n,不填默认 0.0.1,显示在模组管理器中
  • recommendedGameVersion:本模组版本针对制作的精确游戏版本(如 4.21.7.1);直接显示在已安装模组列表中,游戏版本不符时给出警告
  • modDependencies:依赖模组及其推荐精确版本;依赖缺失或版本不一致时给出警告

警告出现在模组管理器(警告标记 + 信息面板)、新建游戏模组选择、以及模组检查器(选项 → 定位模组错误)中。

对玩家:警告仅表示模组在当前游戏版本或当前模组组合下可能无法按预期工作——模组仍可使用。 模组作者:完整的版本格式细节与示例见 ModOptions.json 版本要求

历史:自带 UCCC 模组(4.21.0.1 → 4.21.5.1 撤销)

4.21.0.1 曾随游戏本体打包 UCCC 模组;4.21.5.1 起撤销该改动,游戏本体不再打包任何模组,模组需另行下载。