MOD SDK使用教程 PART2
请参考文末附带的源码包中的XML源码来进行修改。
2.一些概念
打开MOD SDK目录,里面有几个子目录是比较重要的。Art和Audio是MOD要调用的模型和声音文件的存储地点。BuiltMods是编译MOD的暂存区域,编译完成的MOD也会在这里存储一个副本。CnC3Xml储存了游戏中单位和建筑等的原始数据。Mods在这篇教程中是最重要的,我们的MOD修改工作就在这里进行。
打开Mods目录。这里有一个SampleMod子目录。事实上SampleMod同时也就是我们要做的MOD的名称。再打开其中的DATA子目录,这里面就是需要我们修改的内容。
3.加入新单位
首先我们要建构新单位的XML。最简单的方法就是拷贝已有单位的XML,然后把它修改成我们需要的XML。在这里,我们用一个中立单位Viceroid来作为新单位的基础。回到MOD SDK目录,然后将\CnC3Xml\Neutral\Units目录下的Viceroid.xml文件拷贝到\MOD SDK\Mods\SampleMod\data目录中去,然后将它改名为新单位的名称sovietred.xml。注意XML的命名可以任意,只要能方便你自己识别,以及与CnC3Xml中原有XML不重名即可。
用文本编辑工具,比如WIN自带的写字板打开sovietred.xml。首先我们要修改的就是 将Side="Neutral"修改为Side="NOD",说明这个单位是NOD方的。 在TransportSlotCount="0"一句下面加入以下语句: 将 往下跳过 最后要修改的就是 然后用写字板打开mod.str,新加入以下内容: 用写字板打开SampleUpdatedLogicCommandSet.xml,在一句的上面新加入以下内容: 然后是加入建造新单位的按钮本身的代码,打开SampleUpdatedLogicCommand.xml,在一句的上面新加入以下内容: 然后加入新的语音。打开SoundMod.xml,在一句的上面新加入以下内容:
BuildCost="200"
BuildTime="2"
CommandPoints="100"
ProductionQueueType="INFANTRY"
UnitCategory="INFANTRY"
WeaponCategory="GUN"
前两句定义了单位的造价和建造时间。虽然CNC3不再使用CommandPoints了,但为了稳妥起见加入第3句。第4、5句则让游戏引擎知道,在步兵建造栏里建造该新单位。第6句说明了该单位的武器类型,注意不是它实际使用的武器。
EditorName="Viceroid"
TypeDescription="Type:Visceroid">
修改为
EditorName=”sovietred”
TypeDescription=”Type:sovietred”>
这3句决定显示单位的名称、类型、技能等。我们将在下面涉及到与之相关的内容。
AutoAcquireEnemiesWhenIdle="YES"
WanderDistance="100"
AttackAll="true"
Selectable="true">
/>
将其替换为
AutoAcquireEnemiesWhenIdle="YES">
这样这个废柴新单位sovietred总算长了点脑子,不会像原来那样到处乱爬了。
AudioType="voiceAttack" />
AudioType="voiceCreated" />
AudioType="voiceMove" />
AudioType="voiceGuard" />
AudioType="voiceSelect" />
将其替换为
AudioType="voiceAttack" />
AudioType="voiceCreated" />
AudioType="voiceMove" />
AudioType="voiceGuard" />
AudioType="voiceSelect" />
来给新单位加入语音。存盘并关闭sovietred.xml。
NAME:sovietred
“sovietred”
END
TYPE:sovietred
“Super suck Infantry. weak vs. Everything”
END
DESC:sovietred
“Abilities: \n牋牋牷None”
END
这样EditorName、TypeDescription、DisplayName就能找到对应的显示内容了。存盘并关闭mod.str。
让NOD之手的菜单里加入建造新单位的按钮。注意代码的位置,否则编译时会出错。
id="Command_Constructsovietred">
这样NODHandOfNODCommandSet就能找到Command_Constructsovietred这个按钮,并知道它是用来建造单位sovietred的。注意代码的位置,否则编译时会出错。
MinVolume = "=$GDI_UNITRESPONSE_MINVOLUME + 0"
Priority = "HIGH"
Type = "WORLD PLAYER VOICE"
SubmixSlider = "VOICE" >
从文末附带的源码ZIP包里解压出sovietred.wav,将它拷贝到\MOD SDK\Audio\Sounds目录下。
最重要的步骤,打开Mod.xml。这个文件定义了所有要编译的XML内容,它不能被删除或者改名。在
一句的上面,加入语句
这样编译时就会将新单位的代码也一起编译了。
最后,按照上一节中的方法,编译SampleMod,然后从控制板启动游戏。选择NOD方,然后我们就可以从NOD之手里建造这个废柴新单位了。
xml源码和要用到的WAV声音文件下载:
http://www.newlove.cn/upload/UPFILE/makefile/175/data.rar
