命令与征服重制版MOD制作教程 官方源代码制作MOD指南

时间:2022-11-14 06:41

命令与征服重制版MOD制作教程,在本次重制版中我们可以通过官方公开的源代码进行MOD制作,下面就为大家分享具体的教程指南,希望能够帮助到大家。

MOD制作教程(更新中)

我们先准备一些东西:

1.有一定储备的知识:具备一定的计算机编程语言知识,MOD的制作不只是随便修改一下代码就OK的。

2.Microsoft Visual Studio:要下载2017版本,2019版与官方提供的开源存在一定冲突。我在附件里会提供下载安装用的程序。

3.批量UTF8查找工具:我附件会提供一个,你们若是有更好的请自行准备。

4.《命令与征服》MOD开发用的开源代码:正版游戏安装目录中会有提供。

现在开始教程:

一、下载安装 Microsoft Visual Studio 2017版,选择 使用C++桌面开发 其他用不到,就不要装了。

命令与征服重制版MOD制作教程 官方源代码制作MOD指南

右边的安装详细信息里的建议都选上。里面有你对应系统的一些补丁、编程语言包之类的。

然后右下角点 安装 ,我因为已经装好了所以是“关闭”。

注意:将你的系统设置为支持UTF8编码,如果不设置的话 Microsoft Visual Studio 会将源码程序中编码编译成其他编码,生成MOD的时候会报错。 WIN10请参考http://www.winwin7.com/JC/16635.html

二、我们找到游戏安装目录中的 SOURCECODE 目录(正版有,盗版有没有不知道),将其拷贝出来(存哪你自己决定,别问我)。这个目录就是官方提供的开源代码程序。

命令与征服重制版MOD制作教程 官方源代码制作MOD指南

用 Microsoft Visual Studio 打开你拷贝出去的目录中的 CnCRemastered.sln 文件(文件→打开→项目/解决方案),右边的解决方案资源管理器就会如图中所示加载完毕。

命令与征服重制版MOD制作教程 官方源代码制作MOD指南

里面包含两个项目,分别对应的是《红色警戒》和《命令与征服》,请根据自己的目标来修改。我这里就以《命令与征服》中修改一个单位“jeep”车为例。点开 TiberianDawn 项目,

我们可以看到很多的文件,哪个文件才是我们要找的目标呢?

命令与征服重制版MOD制作教程 官方源代码制作MOD指南

接下来我们就需要用到 批量UTF8查找工具 了,我附件有提供,如果你们有其他工具请注意,一定要使用支持UTF8的工具。MOD修改时需要用到游戏中的一些要素,我们就通过查找这些要素来定位要找的文件。

这里因为打算要修改的是游戏里单位的属性,我们已知的要素包含名字“jeep”和购买价格“COST”两个字符串,我们就搜索这两组字符串来找文件。

以我提供的修改器为例:

命令与征服重制版MOD制作教程 官方源代码制作MOD指南

目录选择拷贝出去的目录中 tiberiandawn 目录,原字符串名改为 JEEP ,不区分大小写,选中 仅查找不替换 ,新字符串名留空,点执行会生成一个文本文档,不要关闭。

将原字符串名改为 COST(购买价格),点执行又会生成一个文本文档。我们现在对比两份文档,可以看到这两种字符串在同一个文件中出现了:UDATA.CPP

命令与征服重制版MOD制作教程 官方源代码制作MOD指南

窗口切换到Microsoft Visual Studio ,找到之前打开的TiberianDawn 项目下 Source Files 目录中的 UDATA.CPP 文件并双击打开。按 Ctrl+F 弹出搜索框 输入 jeep 回车,就找到了我们要搜索的字符段。

命令与征服重制版MOD制作教程 官方源代码制作MOD指南

我们看下下边的内容:

//符号左边边是源代码,右边是对该段代码的描述。

// Jeep (hummer)

static UnitTypeClass const UnitJeep(

UNIT_JEEP,

TXT_JEEP, // NAME: Text name of this unit type. 这个单位类型的名字

"JEEP", // NAME: Text name of this unit type. 这个单位类型的名字(和上一个有什么区别不知道,没做测试)

ANIM_FRAG1, // EXPLOSION: Type of explosion when destroyed. 摧毁时的爆炸类型

2, // Build level. 建造、制造等级

STRUCTF_NONE, // Building prerequisite. 建造、制造先决条件

true, // Can this be a goodie surprise from a crate? 这个是否能从“板条箱”中得到(游戏里拾取箱子)

true, // Is a leader type? 是否是领航类型

false, // Only has eight facings? 是否只有8个朝向?(应该是车辆朝的方向:上、下、左、右、左上、右上、左下、右下)

false, // Always use the given name for the vehicle? 始终使用车辆的给定名称?

false, // Is this a typical transport vehicle? 这是典型的运输工具吗?

false, // Can it be crushed by a heavy vehicle? 能被重型车压碎吗?

false, // Can this unit squash infantry? 这个单位能压制步兵吗?

false, // Does this unit harvest Tiberium? 这个单位能运送泰伯利亚矿石吗?

false, // Is invisible to radar? 这个单位在雷达上隐形吗?

true, // Is selectable by player? 这个单位能否被玩家选中?

true, // Can it be a target for attack or move? 是否是可以被移动或攻击的目标

false, // Is it insignificant (won't be announced)? 是否无关紧要

false, // Is it immune to normal combat damage? 对正常战斗伤害免疫吗?

true, // Is it equipped with a combat turret? 它装备了战斗炮塔吗?

false, // Fires multiple shots in quick succession? 快速射击是否连续射出多发子弹?

true, // Can it be repaired in a repair facility? 它能在修理厂修理吗?

true, // Can the player construct or order this unit? player可以建造或命令这个单元吗?

true, // Is there a crew inside? 里面有人吗?(有人的话击毁后可以掉出小兵)

false, // Does it have a rotating radar dish? 它有旋转的雷达天线吗?

false, // Is there an associated firing animation? 是否存在关联的射击动画?

false, // Must the turret be in a locked down position while moving? 移动时炮塔是否锁定不动?

true, // Does it lay tracks while moving? 它在移动时会留下痕迹吗?

false, // Is this a gigundo-rotund-enormous unit? 是一个 gigundo-圆形-巨大 单元吗?(不懂)

false, // Is the unit's art as "chunky" cardinal facing only? (不懂)

false, // Is the unit capable of cloaking? 这个单位能隐形吗?

false, // Does the unit have a constant animation? 该单元是否具有常量动画?

-1, // AMMO: Number of shots it has (default). 弹药量 -1是无限

150, // STRENGTH: Strength (in damage points). 装甲强度(俗称血量)

2, // SIGHTRANGE: Range of sighting. 视线范围

1, // COST: Cost to build (Credits). 价格(我这里改成1是因为测试MOD用)

5, // SCENARIO: Starting availability scenario. 可用性开始场景(不明白用法)

80,41, // RISK/RWRD: Risk/reward rating values. 风险与回报评级值(不太懂用法)

HOUSEF_MULTI1|

HOUSEF_MULTI2|

HOUSEF_MULTI3|

HOUSEF_MULTI4|

HOUSEF_MULTI5|

HOUSEF_MULTI6|

HOUSEF_JP|

HOUSEF_GOOD, // OWNABLE: Ownable by house (bit field).

WEAPON_M60MG,WEAPON_NONE, 第一武器 ,第二武器

ARMOR_ALUMINUM, // ARMOR: Armor type 装甲类型 ALUMINUM 是铝

SPEED_WHEEL, // MOVE: Locomotion type. 移动类型 WHEEL轮式

MPH_MEDIUM_FAST, // SPEED: Miles per hour. 速度(英里每小时) 格式不太懂,这个应该是个变量可以参考其他单位

10, // ROT: Rate of turn (degrees per tick). 炮塔转动速度

0, // Turret center offset along body centerline. 炮塔中心沿着身体中心线偏移(使用方法不明)

MISSION_HUNT // ORDERS: Default order to give new unit. 订单:给予新单位的默认订单。(用法不明)

);

根据自己的目的进行修改代码。(我这里只是修改了价格为1)

三、当你把所有要修改的修改完成后我们接下来生成MOD文件

鼠标右键点击 Microsoft Visual Studio 的窗口中右边解决方案资源管理器中 TiberianDawn 项目,弹出菜单后选择 生成

命令与征服重制版MOD制作教程 官方源代码制作MOD指南

生成时会在下边的输出窗口有各种提示,如果有错误会提示哪里有错误,请根据提示修正问题。如果正常生成完成就会提示 生成: 成功 xx 个,失败 0 个,最新 0 个,跳过 0 个

命令与征服重制版MOD制作教程 官方源代码制作MOD指南

这里重说一下,如果你之前没有将系统修改为支持UTF8编码,就会提示:

warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失

生成成功后我们到源代码目录中的 bin 目录下的 Win32 目录中有4个文件,其中我们要用到的只有 TiberianDawn.dll 和 TiberianDawn.pdb 两个文件。

MOD文件已经准备好了,现在建立一个目录 bbitt - TD Only (名字你自己决定,这里就以我准备的测试用MOD举例)。在bbitt - TD Only 目录下新建一个 DATA 目录。

将之前准备好的 TiberianDawn.dll 和 TiberianDawn.pdb 两个文件复制进去。

命令与征服重制版MOD制作教程 官方源代码制作MOD指南

然后回到 bbitt - TD Only 目录下新建一个文本文档,内容为:

{

"name": "bbitt - TD Only", MOD名字 bbitt - TD Only ,我怕识别不了就和目录名字相同

"description": "Changes Hummer cost = 1", MOD简介 Changes Hummer cost = 1 改变hummer的价额为1

"author": "bbitt", 作者

"load_order": 1, 加载顺序

"version_low": 0, 版本低

"version_high": 1, 版本高,与版本低之间貌似一个设为1,另一个必须设为0

"game_type": "TD" 游戏类型:泰伯利亚黎明

}

内容填好后将其重命名为 ccmod.json 注意扩展名,可不是 ccmod.json.txt 。

这样MOD目录就OK了。我们现在需要的就是将其放在游戏专门的MODS目录中。具体位置是在 文档>CnCRemastered>Mods>Tiberian_Dawn 目录中。

好了我们测试一下,看看我们的MOD是否能加载,是否有效果。进入游戏、选项、模组,OK,我们的MOD已经刷新出来了。选中然后点确定,会重启游戏。

命令与征服重制版MOD制作教程 官方源代码制作MOD指南

重启后模组就加载好了,测试一下,完美!

命令与征服重制版MOD制作教程 官方源代码制作MOD指南

标签:
随便看看
本类推荐
本类排行
热门标签

我国国家通讯社行不行啊细狗新年贺词祝福语2023年祝福语新年新年贺词新年贺词祝福语居家抗病毒小药箱除夕高速免费吗2022年除夕高速免费吗春联春联句子大全春联句子大全七字年夜饭十二道菜年夜饭十二道菜单年夜饭吃什么年夜饭吃什么菜吃年夜饭的寓意年夜饭黑芝麻菊花茶晒菊花茶腌腊肉送妈妈生日礼物汉白玉送闺蜜水钻送女人礼物爸爸生日送礼物送老公