本WIKI由陵点捌伍于2020年12月22日申请开通,编辑权限开放,建议收藏。
本站单位与协议等翻译由局桑负责,相关数据基于1.12版本
欢迎加入红色警戒3Bwiki群:图标动员兵.png851351730 一起抓虫交流
如发现相关内容有问题请通过上述QQ群询问或通过别的方式寻找一下站长
全站通知:

RA3DIY---入门教程:初级教程

阅读

    

2022-05-06更新

    

最新编辑:陵点捌伍叁肆肆

阅读:

  

更新日期:2022-05-06

  

最新编辑:陵点捌伍叁肆肆

来自红警3WIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索
页面贡献者 :
陵点捌伍

Welcome Back,Commander! 如果是第一次来,按"Ctrl+D"可以收藏随时查看更新~觉得WIKI好玩的话,请推荐给朋友哦Ciallo~(∠・ω< )⌒★
按右上角“WIKI功能→编辑”即可修改页面内容。
注意!本文最后由 牧星 于 2012-8-23 22:07 编辑,
但是放在今天依然是一个好的入门教学


牧星.png

重新编写:牧星


下面的是最初级的添加单位和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>

-----这个也是显示名字,和第一个一样。

我们还需要两个附加文件LogicCommandLogicCommandSet

打开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 根目录下就有,如不能使用请看第一步的解决方法),会出现如下的框: Sdk界面.png

选项就不解释了,以后用到你们就清楚了。

在左上方的列表里选择你的mod的名字,

然后按图选择选项,点最下面 build mod 打包开始,

右边的build log会显示输出一系列编译信息,不管它,等待一段时间,

直到出现绿色的build completed提示,

这时,你的mod就可以使用了,你可以在RA3的控制面板的mod选项中看到它。

此教程重新编写了一次。真累,希望对小白们是个好的开始。

有的小白想更深入的修改单位的其它方面,请从这个入口进入你想要的地方

ps:目前这个入口还没完全搬完