本站单位与协议等翻译由局桑负责,相关数据基于1.12版本
欢迎加入红色警戒3Bwiki群:851351730 一起抓虫交流
如发现相关内容有问题请通过上述QQ群询问或通过别的方式寻找一下站长
RA3DIY---入门教程:初级教程
阅读
2022-05-06更新
最新编辑:陵点捌伍叁肆肆
阅读:
更新日期:2022-05-06
最新编辑:陵点捌伍叁肆肆
按右上角“WIKI功能→编辑”即可修改页面内容。
但是放在今天依然是一个好的入门教学
重新编写:牧星
下面的是最初级的添加单位和build mod的教程。高手们请指正纰漏之处。
启程
本教学将指导你来如何制作一个MOD,以及如何使用RA3 MODSDK-X。
第一步:
首先你要下载RA3 MOD SDK-X: 找个qq群加吧!比如781268915
有的学员用到这个 SDK-X时会出现“应用正常初始化(0xc0000135)失败”等之类的,
请到百度搜索并安装.net framework 2.0 ,XP用2.0的,Vist及WIN7可以使用更高的版本,
win8?你基本上不用DIY了,不解释哈。
第二步: samplemod例子文件下载:ps:同上,但是其实不太需要我感觉,有modsdk应该都塞给你了
第三步: 开始前,请记住,所有的代码符号都是在英文输入法中输入,不要用中文输入法输入这些符号。
在X:\RA3 MODSDK-X\Mods目录下,创建一个新的文件夹,命名为mymod,然后打开mymod文件夹,
并在里面创建一个名为data的文件夹。
到这里说明一下,RA3中的代码文件是XML格式的纯文本文件,
所有的单位都有不同的XML文件组成,如:单位模的设定、武器的设定等。
接下来我们就是要对XML文件进行修改,
打开X:\RA3 MODSDK-X\SageXml\Allied\Units目录,
复制单位文件AlliedAntiVehicleVehicleTech1,
把这个文件粘贴到你的mymod/data里,
把这个文件重名名为mytank,
用写字板、记事本或任何代码编辑器打开这个文件,
将滚动条拉至下列文本处:
<GameObject
id="AlliedAntiVehicleVehicleTech1"
inheritFrom="BaseVehicle"
SelectPortrait="Portrait_AlliedAntiVehicleVehicleTech1"
ButtonImage="Button_AlliedAntiVehicleVehicleTech1_on"
Side="Allies"
SubGroupPriority="425"
EditorSorting="UNIT"
HealthBoxHeightOffset="25"
BuildTime="10"
CommandSet="AlliedAntiVehicleVehicleTech1CommandSet"
KindOf="SELECTABLE CAN_ATTACK CAN_CAST_REFLECTIONS SCORE VEHICLE CAN_BE_FAVORITE_UNIT T2_UNIT"
WeaponCategory="CANNON"
VoicePriority="188"
EditorName="AlliedAntiVehicleVehicleTech1"
Description="Desc:AlliedAntiVehicleVehicleTech1"
TypeDescription="Type:AlliedAntiVehicleVehicleTech1"
UnitIntro="Allied_GuardianTank_UnitIntro">
<DisplayName
xai:joinAction="Replace" xmlns:xai="uri:ea.com:eala:asset:instance">Name:AlliedAntiVehicleVehicleTech1</DisplayName>
把下面例出的文本中的AlliedAntiVehicleVehicleTech1全部改为mytank
id=”AlliedAntiVehicleVehicleTech1”
------单位的名称
CommandSet="AlliedAntiVehicleVehicleTech1CommandSet"
-----这个嘛,就是和F技能关联的
EditorName="AlliedAntiVehicleVehicleTech1"
----游戏显示的名字
Description="Desc:AlliedAntiVehicleVehicleTech1"
-----游戏中单位的说明,什么这坦克吊爆了,什么来不来一发啊,牙没得啊之类的。
TypeDescription="Type:AlliedAntiVehicleVehicleTech1"
----游戏中单位类型注明,如防空AK君,对地ACU建筑,反RA3坦克等。
<DisplayName
xai:joinAction="Replace" xmlns:xai="uri:ea.com:eala:asset:instance">Name:AlliedAntiVehicleVehicleTech1</DisplayName>
-----这个也是显示名字,和第一个一样。
我们还需要两个附加文件LogicCommand 和 LogicCommandSet,
打开X:\RA3 MODSDK-X\SageXml\GlobalData文件夹,
复制LogicCommand 和 LogicCommandSet这两个文件到mymod/data文件夹中,
打开LogicCommand,我们可以看到和AlliedAntiVehicleVehicleTech1.XML文件的结构不同,
这里我随便讲解这个文件的代码结构方式,
我们以要改的这个AlliedAntiVehicleVehicleTech1单位为例子,下面的这段是它的代码:
AlliedAntiVehicleVehicleTech1原版代码
<LogicCommand
Type="UNIT_BUILD"
id="Command_ConstructAlliedAntiVehicleVehicleTech1">
<Object>AlliedAntiVehicleVehicleTech1</Object>
</LogicCommand>
我们可以看到开头和结尾都有一个相同的代码LogicCommand,
这就是一个完整的单位LogicCommand代码的结构方式,里面的内容就是定义单位用的了,
而且最后一个LogicCommand用 </ >这样的符号表示这段LogicCommand到这里结束。
这样就构成了一个完整的代码。另一个文件LogicCommandSet也是一样的结构。
这两个文件的内容,我们可以直接放在单位文件最后面也行,但为了方便日后的查看和修改,我们新建一个XML文件吧,
不会?那就复制一个LogicCommand.XML文件把里面的内容都删了,
把下面我提供的代码复制进去保存,也可以重新命名为CommandData或是你自己喜欢好记的名字。
CommandData的内容
<?xml version="1.0" encoding="utf-8"?>
<AssetDeclaration xmlns="uri:ea.com:eala:asset"> <Tags/>
<Includes/>
<!-- 新型超级吊爆坦克,无敌+吊爆,信不信由你,反正我信了-->
<LogicCommand
Type="UNIT_BUILD"
id="Command_Constructmytank">
<Object>mytank</Object>
< /LogicCommand>
<!-- 新型超级吊爆坦克代码结束-->
</AssetDeclaration>
中间是我们修改好的内容了。
什么,你只对中文的字体感兴趣,好吧,我就顺便说下吧,你们好烦的,没办法人气太旺了(哈哈哈哈哈哈!!),
我就解释下,在代码XML文件里,我们可以加些中文说明,便于日后的修改,
这个中文的标注你们也看到了,格试是,
开头要用了,
这个括号的意思就是让游戏不读取括号里的内容,我们还可以用于当有的代码不用时,又不想删掉,就用这两个符号括起来就行了。
还是那句话,要用英文输入法输入这些符号。
然后打开LogicCommandSet,找到 id=”AlliedWarFactoryCommandSet”>处,如下代码:
<LogicCommandSet
id="AlliedWarFactoryCommandSet">
<Cmd>Command_ConstructAlliedMiner</Cmd>
<Cmd>Command_ConstructAlliedAntiInfantryVehicle_Ground</Cmd>
<Cmd>Command_ConstructAlliedAntiAirVehicleTech1</Cmd>
<Cmd>Command_ConstructAlliedAntiVehicleVehicleTech1</Cmd>
<Cmd>Command_ConstructAlliedAntiStructureVehicle</Cmd>
<Cmd>Command_ConstructAlliedAntiVehicleVehicleTech3</Cmd>
<Cmd>Command_ConstructAlliedMCV</Cmd>
<!–
<Cmd>Command_UpgradeAlliedWarFactoryRepairBay</Cmd>
–>
</LogicCommandSet>
把上面的代码复制到我们的CommandData.XML文件里去,
就放在中文注明下面,或是上面的中文注明上,都可以。
这个地方是将单位注册到战车工厂的生产栏里,是不是对这个很感兴趣呢,
注意格式哈, <Cmd>Command_Constructmytank</Cmd>
注意到没有,中间的内容是我们之前定义的LogicCommand内容ID号:Command_Constructmytank。
我们要把上面这条内容放进战车工厂建造栏里去,安照排列的顺序,我们放最前头去,为什么?
因为我们的单位是最吊的,得在第一位,呵呵,你也可以入在最后,或是T3单位那几个一起,代码内容如下:
<LogicCommandSet
id="AlliedWarFactoryCommandSet">
<Cmd>Command_Constructmytank</Cmd>
<Cmd>Command_ConstructAlliedMiner</Cmd>
<Cmd>Command_ConstructAlliedAntiInfantryVehicle_Ground</Cmd>
<Cmd>Command_ConstructAlliedAntiAirVehicleTech1</Cmd>
<Cmd>Command_ConstructAlliedAntiVehicleVehicleTech1</Cmd>
<Cmd>Command_ConstructAlliedAntiStructureVehicle</Cmd>
<Cmd>Command_ConstructAlliedAntiVehicleVehicleTech3</Cmd>
<Cmd>Command_ConstructAlliedMCV</Cmd>
<!–
<Cmd>Command_UpgradeAlliedWarFactoryRepairBay</Cmd>
–>
</LogicCommandSet>
接下来我们要在LogicCommandSet找到下面这些代码:
<LogicCommandSet
id="AlliedAntiAirVehicleTech1CommandSet">
<Cmd>Command_Evacuate</Cmd>
<Cmd>Command_AttackMove</Cmd>
<Cmd>Command_MoveToPositionAndCollect</Cmd>
</LogicCommandSet>
修改ID号成以下内容:
<LogicCommandSet
id="mytankCommandSet">
<Cmd>Command_ToggleTargetPainter</Cmd>
<Cmd>Command_AttackMove</Cmd>
<Cmd>Command_MoveToPositionAndCollect</Cmd>
</LogicCommandSet>
把上面的代码复制到我们的CommandData.XML文件里去,就放在战车工厂建造栏代码后面吧。
通过上面的修改,我们把单位XML文件制作好了,现在把文件LogicCommand 和 LogicCommandSet文件删掉,
现在我们的DATA文件中只有两个文件:CommandData.XML和mytank.XML。
第四步: 现在要创建mod.xml文件,Mod.Xml文件作用是告诉游戏引擎把我们修改的那两文件添加到游戏中,因此每个mod都必需要这个文件。
打开例子samplemod文件夹(上面有下载),复制mod.xml文件到mymod/data中,打开并修改,
使其像下面一样,如果你没有例子samplemod文件夹,那就在SDK中随便复制一个XML文件,清空所有内容并重命名为MOD,
把下面的内容复制进去,即要让你的mod.xml的内容如下所示:
MOD.XML内容
<?xml version=”1.0″ encoding=”UTF-8″?>
<AssetDeclaration xmlns=”uri:ea.com:eala:asset” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance“>
<Tags></Tags>
<Includes>
<!-- 下面这三个是MOD文件的必须文件,不要删了。-->
<Include type=”reference” source=”DATA:static.xml” />
<Include type=”reference” source=”DATA:global.xml” />
<Include type=”reference” source=”DATA:audio.xml” />
<!--注册我们所修改的文件,注意路径要对上哈。-->
<Include type=”all” source=”DATA:mymod/Data/CommandData.xml”/>
<Include type=”all” source=”DATA:mymod/Data/mytank.xml”/>
</Includes>
</AssetDeclaration>
保存mod.xml文件。
建立MOD
要把上面修改好的文件打包进游戏,我们需要用到EA提供的RA3 MOD SDK工具,
本楼最前有链接,在这里,我再次重述一下,
RA3 MOD SDK工具只是一个打包工具,不是制作模或是图片的工具,就连代码也用不到它来修改,
它只是单纯的打包工具,现在这个工具最高版本就是我们前面的链接中提到的RA3 MOD SDK-X版,
这个RA3 MOD SDK-X版是中文免安装版,使有时本人建议把SDK文件夹放在磁盘符下,
如D:/下,不要放在中文文件夹里,是避免以后会因为一些中文字体文件夹而出现错误,
打开SDK文件夹,第一次使用请写下注册到电脑中.
找到并点击EALAModStudio.exe(RA3 MOD SDK 根目录下就有,如不能使用请看第一步的解决方法),会出现如下的框:
选项就不解释了,以后用到你们就清楚了。
在左上方的列表里选择你的mod的名字,
然后按图选择选项,点最下面 build mod 打包开始,
右边的build log会显示输出一系列编译信息,不管它,等待一段时间,
直到出现绿色的build completed提示,
这时,你的mod就可以使用了,你可以在RA3的控制面板的mod选项中看到它。
此教程重新编写了一次。真累,希望对小白们是个好的开始。
有的小白想更深入的修改单位的其它方面,请从这个入口进入你想要的地方
ps:目前这个入口还没完全搬完