想让你的金字塔效果人人都有?想让纪念碑也能增加建造者次数?今天,我们就用三分钟的时间,带你走进《文明6》Mod制作的大门,用最简单的SQL语句实现你的第一个游戏修改器!
目录
[第一步:谁拥有修改器? → BuildingModifiers表](#第一步:谁拥有修改器? → BuildingModifiers表)
[第二步:改什么? → Modifiers表](#第二步:改什么? → Modifiers表)
[第三步:改多少? → ModifierArguments表](#第三步:改多少? → ModifierArguments表)
[八、工具推荐:DB Browser for SQLite](#八、工具推荐:DB Browser for SQLite)
一、写在前面:为什么需要Mod?
《文明6》是一款深度策略游戏,但再好的游戏玩久了也会觉得"套路固定"。Mod(游戏模组)就是打破这种固定性的最佳工具。你可以:
-
增强弱势文明,创造新的平衡
-
添加新功能,如让所有纪念碑附带金字塔效果
-
自定义游戏规则,创造属于自己的玩法
今天,我们将制作一个简单的Mod:让纪念碑也像金字塔一样,增加建造者使用次数。
二、SQL基础:其实只有三个单词
不要被"SQL"吓到!对于Mod制作,我们只需要学会三个英文单词:
sql
INSERT INTO VALUES
这是什么意思? 让我用一个例子说明:
假设有一个"成绩表",我们想添加学生数据:
| 学号 | 姓名 | 分数 |
|---|---|---|
| 001 | 小明 | 95 |
| 002 | 小红 | 88 |
用SQL语句添加第一条记录:
sql
INSERT INTO 成绩表 (学号, 姓名, 分数) VALUES ('001', '小明', 95);
翻译成人话就是:"插入到成绩表中,在(学号、姓名、分数)这些列,填入值(001、小明、95)"。
一次添加多条记录:
sql
INSERT INTO 成绩表 (学号, 姓名, 分数)
VALUES
('001', '小明', 95),
('002', '小红', 88);
这就够了! 文明6的Mod制作,本质上就是往游戏的各种"表格"里"插入数据"。
三、认识修改器的"三要素"
每个修改器都有三个核心部分,我称之为"三要素":
| 要素 | 作用 | 例子(金字塔) |
|---|---|---|
| 发起者(Owner) | 谁拥有这个效果 | 金字塔(Wonder) |
| 修改类型(ModifierType) | 要改什么 | 增加建造者使用次数 |
| 修改参数(ModifierArgument) | 改多少 | 增加1次 |
用金字塔举例:
-
发起者:金字塔
-
修改类型 :
MODIFIER_PLAYER_UNITS_ADJUST_BUILDER_CHARGES -
修改参数 :
Amount = 1
四、实战:给纪念碑添加建造者次数
我们的目标:让每个纪念碑都给所属城市+1建造者使用次数。
第一步:谁拥有修改器? → BuildingModifiers表
纪念碑是建筑(Building),所以我们要在BuildingModifiers表中添加记录:
sql
-- 第一步:告诉游戏“纪念碑拥有一个修改器”
INSERT INTO BuildingModifiers (BuildingType, ModifierId)
VALUES ('BUILDING_MONUMENT', 'MONUMENT_EXTRA_BUILDER_CHARGE');
解释:
-
BuildingType:建筑类型,固定值BUILDING_MONUMENT -
ModifierId:修改器名称,可以自己取 ,我取为MONUMENT_EXTRA_BUILDER_CHARGE
第二步:改什么? → Modifiers表
sql
-- 第二步:定义这个修改器的类型
INSERT INTO Modifiers (ModifierId, ModifierType)
VALUES ('MONUMENT_EXTRA_BUILDER_CHARGE', 'MODIFIER_PLAYER_ADJUST_BUILDER_CHARGES');
解释:
-
ModifierId:和上一步的名字保持一致 -
ModifierType:修改器类型,这里使用游戏自带的"增加建造者次数"
第三步:改多少? → ModifierArguments表
sql
-- 第三步:设置修改的具体数值
INSERT INTO ModifierArguments (ModifierId, Name, Value)
VALUES ('MONUMENT_EXTRA_BUILDER_CHARGE', 'Amount', 1);
解释:
-
ModifierId:还是同一个名字 -
Name:参数名称,这里是Amount -
Value:参数值,这里填1(增加1次)
五、完整的SQL文件
把上面的三段代码合并,保存为.sql文件(例如MonumentExtraBuilder.sql):
sql
-- 文明6 Mod:纪念碑增加建造者使用次数
-- 作者:[你的名字]
-- 创建日期:2024年1月
-- 第一步:纪念碑拥有此修改器
INSERT INTO BuildingModifiers (BuildingType, ModifierId)
VALUES ('BUILDING_MONUMENT', 'MONUMENT_EXTRA_BUILDER_CHARGE');
-- 第二步:定义修改器类型
INSERT INTO Modifiers (ModifierId, ModifierType)
VALUES ('MONUMENT_EXTRA_BUILDER_CHARGE', 'MODIFIER_PLAYER_ADJUST_BUILDER_CHARGES');
-- 第三步:设置修改参数
INSERT INTO ModifierArguments (ModifierId, Name, Value)
VALUES ('MONUMENT_EXTRA_BUILDER_CHARGE', 'Amount', 1);
六、如何安装这个Mod?
-
创建Mod文件夹结构:
text
你的Mod名称/ ├── YourMod.modinfo └── Data/ └── MonumentExtraBuilder.sql -
创建.modinfo文件(这是Mod的配置文件):
xml
<?xml version="1.0" encoding="utf-8"?>
<Mod id="你的ModID" version="1.0">
<Properties>
<Name>纪念碑额外建造者</Name>
<Description>让纪念碑增加建造者使用次数</Description>
<Teaser>金字塔效果人人有!</Teaser>
<Authors>你的名字</Authors>
</Properties>
<Components>
<UpdateDatabase id="Monument_Update">
<File>Data/MonumentExtraBuilder.sql</File>
</UpdateDatabase>
</Components>
</Mod>
-
放入游戏目录:
- 将整个文件夹放入:
文档/My Games/Sid Meier's Civilization VI/Mods/
- 将整个文件夹放入:
-
在游戏中启用:
- 启动文明6 → 额外内容 → Mods → 勾选你的Mod → 开始游戏
七、验证效果
-
开局建造纪念碑
-
生产一个建造者
-
查看建造者使用次数:原本3次,现在应该有4次!
成功!你的第一个Mod生效了!
八、工具推荐:DB Browser for SQLite
想了解更多可以用的ModifierType和参数吗?推荐使用免费工具DB Browser for SQLite:
-
下载地址:sqlitebrowser.org
-
打开游戏数据库文件(通常在游戏安装目录的
Base/Assets/Gameplay/Data下) -
查看
Modifiers和ModifierArguments表,学习官方是如何设置修改器的
九、注意事项
-
ModifierId必须唯一:在整个Mod中不要重复
-
表名和列名大小写敏感:严格按照教程中的写法
-
先备份存档:Mod可能不兼容已有存档
-
一次改一点:不要一开始就大改,从小功能开始
十、接下来可以尝试...
成功制作第一个Mod后,你可以尝试:
-
修改其他建筑(如粮仓、图书馆)
-
调整参数值(把
1改成2试试) -
尝试其他修改类型(如增加生产力、文化值等)
总结
制作文明6 Mod并不复杂,核心就是理解三要素模型:
-
谁拥有(Owner) → 在对应的XxxModifiers表中添加
-
改什么(Type) → 在Modifiers表中定义类型
-
改多少(Argument) → 在ModifierArguments表中设置参数
记住这个模型,你就能制作出各种各样的游戏修改器了!

以上代码是唯一证实可行的。
下一篇预告:在下一篇文章中,我将介绍如何使用可视化工具快速生成Mod代码,让你制作Mod的效率提升10倍!同时会讲解如何让Mod只对人类玩家生效,不影响AI平衡性。
如果你成功制作了第一个Mod,欢迎分享你的成果!
