如何给MOD单位编写SORIAN AI支持

有些MOD, 单位很不错, 但是本身没有编写SORIAN AI支持的数据库, 导致AI无法建造。 这里简单说一下:


1. 在mods/MOD的名字/lua/CustomUnits这个路径里放上4个文件 (没有这个路径就自己创建一个嘛, 有些MOD是SCD格式, 得解压在后再建立这个路径):
A. AirUnits.lua (把空军单位放到这个数据库里面, 可以用记事本打开编辑的, 如果你没有空军就不要建立这个文件, 下同);
B. Buildings.lua (建筑物);
C. LandUnits.lua (陆军);
D. SeaUnits.lua (海军咯)。


2. 以陆军为例, 谈如何编写单位ID数据库:
把BlackOps Unleashed拿来做例子吧, 这个大家应该都很熟悉。LandUnits.lua打开就是这样:

UnitList = {
T1LandDFTank = {
UEF = {‘bel0109’, 50},
Cybran = {‘brl0110’, 50},
Aeon = {‘bal0110’, 50},
Seraphim = {‘bsl0106’, 50},
},
…(省略若干单位)…
T4LandExperimental1 = {
UEF = {‘bel0402’, 50},
Cybran = {‘brl0401’, 50},
Aeon = {‘bal0401’, 50},
Seraphim = {‘bsl0401’, 50},
},
…(省略若干单位)…
}

T4LandExperimental1表示陆军T4实验单位第1组 (如果你的MOD同一族有2个以上陆军T4单位, 那么得加到T4LandExperimental2, T4LandExperimental3去, 3组还不够?自己改编SORIAN AI去, 呵呵), 这里, UEF有bel0402, 这个ID代表UEF巨人, C的ID是brl0401, 代表蛇怪, A的bal0401是那个大萝卜漂浮攻击坦克, S的bsl0401也是个漂浮的攻击坦克。单位的ID得去mods/MOD的名字/units这个文件夹里面找, 比如units文件夹里面有个BRMT1BT, 里面有个文件叫BRMT1BT_unit.bp, 这个BRMT1BT就是这个单位的ID啦。

如果你的MOD T4单位里面某个族没有, 比如S族没有陆军T4, 那么就是这样啦:
T4LandExperimental1 = {
UEF = {‘bel0402’, 50},
Cybran = {‘brl0401’, 50},
Aeon = {‘bal0401’, 50},
},
删除就OK。50好像是代表建造的优先顺序, 可以不管的, 知道的大大补充下啊哈!


3. 最关键的, 你得知道这些“关键词”, SORIAN AI里面规定的, 你不能随便创建。
比如BlackOps Unleashed里面C、U、S三族有T4海军单位, 作者写成这样(或者制作者不想AI造这些东东):
T4ExperimentalSea = {
Seraphim = {‘bss0401’, 50}, S族的T4“无畏舰”?
UEF = {‘bes0402’, 50}, U族的
Cybran = {‘brs0402’, 50}, C族的
},
不过SORIAN AI对海军T4单位是这样定义的
‘T4SeaExperimental1’,
‘ues0401’, (U族的T4航空母舰, 我好想从来没有看到AI造这丫, 还有T2的质能转换, 小胖造兵, 谁看到过?)
},
所以, 如果你需要AI也会造BLKOPS的这3艘“无畏舰”, 得改成
T4SeaExperimental1 = {
Seraphim = {‘bss0401’, 50},
UEF = {‘bes0402’, 50},
Cybran = {‘brs0402’, 50},
},
很遗憾的是, 我从来没有看到AI会造T4海军单位, 包括FA本身的单位和MOD的单位, 或许是游戏时间不够长?

这些“关键词”, 可以去Sorian Ai/lua/BuildingTemplates.lua里面找, 大部分的建筑和T4单位都能找到。T1/T2/T3陆军空军海军单位的关键词可以参考BLKOPS里面的mods/BlackOpsUnleashed/lua/CustomUnits/4个对应文件。


4. 按如下格式编写单位ID数据库(4个文件回顾下以上第一点):
比如LandUnits.lua这个文件里面 (用记事本打开), 必须是这个格式:
UnitList = { 大括号开始
T1“关键词” = {
UEF = {‘单位ID’, 30/50/80/100都可以啦},
Cybran = {‘brl0110’, 50},
Aeon = {‘bal0110’, 50},
Seraphim = {‘bsl0106’, 50},
},
T4“关键词” = {
UEF = {‘bel0402’, 50},
Cybran = {‘brl0401’, 50},
Aeon = {‘bal0401’, 50},
Seraphim = {‘bsl0401’, 50},
},
等等, 每一组T1/2/3/4+关键词 = {},这些符号必须在英文输入状态下输入, 以保证逗号是, 而不是,没有测试过, 安全考虑。
}大括号结尾。 啰嗦啦!

写了这么多, 见笑了, 写得不好的地方, 大家请指出! 最后 祝大家MOD的开心!

cool LZ相当的不错

话说, 很少人想看这么枯燥的帖子吧, 给需要解决AI问题的新人, 我之前就找个类似帖子, 没有找到, 所以把它写出来。

谢谢楼主,学习了,再者给楼主一个小建议,可以去看看Total Mayhem这个MOD,这个MOD用上后,几乎所有的单位都见AI有造,
再者一些比较NB的一些AI地图中都会刷MOD单位,这个是地图AI的原因,还是MOD的原因?

TM这个MOD单位, 作者都加了AI支持, 这个我知道, AI地图我还没有玩过, 改天试试。“都会刷MOD单位”, 怎么个刷法? 凭空出现还是? 我打AI一般都是经济作弊, 比如ACU初始BUILD RATE = 90等, 一开始就快速建造基地, 自带资源也可以改多点, 还没有刷兵过呵呵。

感谢版主加精哈哈哈