• 首页
  • 旧站资料库

MOD SDK使用教程 PART2

Posted by on 08/13/2006
Posted in: 征服者资料库.

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"一句下面加入以下语句:
BuildCost="200"
BuildTime="2"
CommandPoints="100"
ProductionQueueType="INFANTRY"
UnitCategory="INFANTRY"
WeaponCategory="GUN"
前两句定义了单位的造价和建造时间。虽然CNC3不再使用CommandPoints了,但为了稳妥起见加入第3句。第4、5句则让游戏引擎知道,在步兵建造栏里建造该新单位。第6句说明了该单位的武器类型,注意不是它实际使用的武器。

将
EditorName="Viceroid"
TypeDescription="Type:Visceroid">
Name:Visceroid
修改为
EditorName=”sovietred”
TypeDescription=”Type:sovietred”>
Name:sovietred
这3句决定显示单位的名称、类型、技能等。我们将在下面涉及到与之相关的内容。

往下跳过 id="ModuleTag_AI"
AutoAcquireEnemiesWhenIdle="YES"
WanderDistance="100"
AttackAll="true"
Selectable="true">
CanAutoAcquireNonAutoAcquirable="true"
/>

将其替换为
id="ModuleTag_06"
AutoAcquireEnemiesWhenIdle="YES">
SympathyRange="100.0" />

这样这个废柴新单位sovietred总算长了点脑子,不会像原来那样到处乱爬了。

最后要修改的就是

Sound="ALI_Viceroid_SoundAttack"
AudioType="voiceAttack" />
Sound="ALI_Viceroid_SoundCreate"
AudioType="voiceCreated" />
Sound="ALI_Viceroid_SoundMove"
AudioType="voiceMove" />
Sound="ALI_Viceroid_SoundMove"
AudioType="voiceGuard" />
Sound="ALI_Viceroid_SoundSelect"
AudioType="voiceSelect" />

将其替换为

Sound="sovietredvoiceall"
AudioType="voiceAttack" />
Sound="sovietredvoiceall"
AudioType="voiceCreated" />
Sound="sovietredvoiceall"
AudioType="voiceMove" />
Sound="sovietredvoiceall"
AudioType="voiceGuard" />
Sound="sovietredvoiceall"
AudioType="voiceSelect" />

来给新单位加入语音。存盘并关闭sovietred.xml。

然后用写字板打开mod.str,新加入以下内容:
NAME:sovietred
“sovietred”
END
TYPE:sovietred
“Super suck Infantry. weak vs. Everything”
END
DESC:sovietred
“Abilities: \n牋牋牷None”
END
这样EditorName、TypeDescription、DisplayName就能找到对应的显示内容了。存盘并关闭mod.str。

用写字板打开SampleUpdatedLogicCommandSet.xml,在一句的上面新加入以下内容:
id="NODHandOfNODCommandSet">
Command_ConstructNODMilitantSquad
Command_ConstructNODMilitantRocketSquad
Command_ConstructNODSaboteur
Command_ConstructNODFanaticSquad
Command_ConstructNODBlackHandSquad
Command_ConstructNODShadowSquad
Command_ConstructNODCommando
Command_Constructsovietred
Command_TogglePower
Command_SelfRepair
Command_Sell
Command_SetDefaultBuilding
Command_SetRallyPoint_Infantry

让NOD之手的菜单里加入建造新单位的按钮。注意代码的位置,否则编译时会出错。

然后是加入建造新单位的按钮本身的代码,打开SampleUpdatedLogicCommand.xml,在一句的上面新加入以下内容:
Type="UNIT_BUILD"
id="Command_Constructsovietred">
sovietred

这样NODHandOfNODCommandSet就能找到Command_Constructsovietred这个按钮,并知道它是用来建造单位sovietred的。注意代码的位置,否则编译时会出错。

然后加入新的语音。打开SoundMod.xml,在一句的上面新加入以下内容:

Volume = "=$GDI_UNITRESPONSE_VOLUME + 0"
MinVolume = "=$GDI_UNITRESPONSE_MINVOLUME + 0"
Priority = "HIGH"
Type = "WORLD PLAYER VOICE"
SubmixSlider = "VOICE" >

sovietredvoice

从文末附带的源码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

Posts navigation

← Kucan在德国的幸福生活
C&C3-1.08补丁发布(更新下载) →
  • 文章搜索

  • Categories

    • MOD
    • Uncategorized
    • 光辉的Westwood时代
    • 征服者下载
    • 征服者汉化专区
    • 征服者资料库
    • 快报
    • 战锤40K
    • 文库
    • 游戏专题
    • 设计师专访
    • 长篇连载
  • Recent Comments

    • Tags

      Apoc John Hight westwood 命令与征服 命令与征服,泰伯利亚,EA
    • Meta

      • Log in
      • Entries RSS
      • Comments RSS
      • WordPress.org
    
    Proudly powered by WordPress Theme: Parament by Automattic.
    浙ICP备12009201号-3