3DMGAME 3DM首页 新闻中心 前瞻 | 评测 游戏库 热门 | 最新 攻略中心 攻略 | 秘籍 下载中心 游戏 | 汉化 购买正版 论坛

注册 登录

QQ登录

只需一步,快速开始

查看: 18518|回复: 58
打印 上一主题 下一主题

[原创] 【国内首发】《命令与征服:典藏版》MOD的图文制作教程

  [复制链接]

17

主题

332

帖子

631

积分

超级玩家

Rank: 5Rank: 5

贡献度
65
金元
3607
积分
631
精华
1
注册时间
2006-5-14
跳转到指定楼层
主题
发表于 2020-6-9 19:15 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
这个东西之前就有在准备,不过看到某位大神先我一步发了视频版,嘿嘿。咱来个国内首发详细图文制作教程
我们先准备一些东西:
1.有一定储备的知识:具备一定的计算机编程语言知识,MOD的制作不只是随便修改一下代码就OK的。
2.Microsoft Visual Studio:要下载2017版本,2019版与官方提供的开源存在一定冲突。我在附件里会提供下载安装用的程序。
3.批量UTF8查找工具:我附件会提供一个,你们若是有更好的请自行准备。
4.《命令与征服》MOD开发用的开源代码:正版游戏安装目录中会有提供。

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



右边的安装详细信息里的建议都选上。里面有你对应系统的一些补丁、编程语言包之类的。
然后右下角点 安装 ,我因为已经装好了所以是“关闭”。

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

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




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




里面包含两个项目,分别对应的是《红色警戒》和《命令与征服》,请根据自己的目标来修改。我这里就以《命令与征服》中修改一个单位“jeep”车为例。点开 TiberianDawn 项目,
我们可以看到很多的文件,哪个文件才是我们要找的目标呢?




接下来我们就需要用到 批量UTF8查找工具 了,我附件有提供,如果你们有其他工具请注意,一定要使用支持UTF8的工具。MOD修改时需要用到游戏中的一些要素,我们就通过查找这些要素来定位要找的文件。
这里因为打算要修改的是游戏里单位的属性,我们已知的要素包含名字“jeep”和购买价格“COST”两个字符串,我们就搜索这两组字符串来找文件。
以我提供的修改器为例:




目录选择拷贝出去的目录中 tiberiandawn 目录,原字符串名改为 JEEP ,不区分大小写,选中 仅查找不替换 ,新字符串名留空,点执行会生成一个文本文档,不要关闭。
原字符串名改为 COST(购买价格)点执行又会生成一个文本文档。我们现在对比两份文档,可以看到这两种字符串在同一个文件中出现了:UDATA.CPP



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



我们看下下边的内容:
//符号左边边是源代码,右边是对该段代码的描述。

// 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 项目,弹出菜单后选择 生成




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


这里重说一下,如果你之前没有将系统修改为支持UTF8编码,就会提示:
warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失

生成成功后我们到源代码目录中的 bin 目录下的 Win32 目录中有4个文件,其中我们要用到的只有 TiberianDawn.dllTiberianDawn.pdb 两个文件。
MOD文件已经准备好了,现在建立一个目录 bbitt - TD Only (名字你自己决定,这里就以我准备的测试用MOD举例)。在bbitt - TD Only 目录下新建一个 DATA 目录。
将之前准备好的 TiberianDawn.dllTiberianDawn.pdb 两个文件复制进去。




然后回到 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放在度盘里了: https://pan.baidu.com/s/1M-OhWE4tYczgpEShmZ0y0w 提取码:
游客,如果您要查看本帖隐藏内容请回复

游客,如果您要查看本帖隐藏内容请回复



评分

1

查看全部评分

回复

使用道具 举报

0

主题

505

帖子

565

积分

高级玩家

Rank: 4

贡献度
0
金元
5647
积分
565
精华
0
注册时间
2011-11-5
舒服的沙发
发表于 2021-2-11 17:56 | 只看该作者
66666666666666666666666666
回复 支持 反对

使用道具 举报

0

主题

1058

帖子

1620

积分

游戏狂人

Rank: 6Rank: 6

贡献度
0
金元
16200
积分
1620
精华
0
注册时间
2011-12-31
QQ
硬硬的板凳
发表于 2021-3-1 20:18 | 只看该作者
这东西找了好久勒,谢谢!!
回复 支持 反对

使用道具 举报

0

主题

78

帖子

145

积分

中级玩家

Rank: 3Rank: 3

贡献度
0
金元
1446
积分
145
精华
0
注册时间
2014-6-13
冰凉的地板
发表于 2021-7-13 02:06 | 只看该作者
多谢学习中
回复 支持 反对

使用道具 举报

0

主题

782

帖子

1916

积分

游戏狂人

Rank: 6Rank: 6

贡献度
13
金元
18641
积分
1916
精华
0
注册时间
2017-3-11
5#
发表于 2021-7-15 00:11 | 只看该作者
看看隐藏内容是什么!谢谢!厉害了!先收藏,再回复!谢谢!
回复 支持 反对

使用道具 举报

0

主题

41

帖子

104

积分

中级玩家

Rank: 3Rank: 3

贡献度
0
金元
1041
积分
104
精华
0
注册时间
2015-8-14
6#
发表于 2021-11-28 21:29 | 只看该作者
感谢分享
回复 支持 反对

使用道具 举报

4

主题

951

帖子

888

积分

超级玩家

Rank: 5Rank: 5

贡献度
5
金元
8682
积分
888
精华
0
注册时间
2008-6-16
7#
发表于 2022-10-21 22:36 | 只看该作者
啊啊啊啊啊啊啊啊啊啊啊
回复 支持 反对

使用道具 举报

0

主题

400

帖子

513

积分

高级玩家

Rank: 4

贡献度
0
金元
5126
积分
513
精华
0
注册时间
2007-12-7
8#
发表于 2023-3-17 20:07 | 只看该作者
谢谢分享!
回复 支持 反对

使用道具 举报

0

主题

51

帖子

132

积分

中级玩家

Rank: 3Rank: 3

贡献度
0
金元
1322
积分
132
精华
0
注册时间
2017-5-12
9#
发表于 2024-12-14 15:08 | 只看该作者
111111111111111111111111111111111111
回复 支持 反对

使用道具 举报

0

主题

2175

帖子

2294

积分

游戏达人

Rank: 7Rank: 7Rank: 7

贡献度
0
金元
22935
积分
2294
精华
0
注册时间
2021-4-18
10#
发表于 2025-6-3 17:25 | 只看该作者
6666666666666666666666666
回复 支持 反对

使用道具 举报

1

主题

499

帖子

503

积分

高级玩家

Rank: 4

贡献度
16
金元
4392
积分
503
精华
0
注册时间
2004-1-5
11#
发表于 2025-6-9 18:06 | 只看该作者
谢谢分享
回复 支持 反对

使用道具 举报

1

主题

61

帖子

122

积分

中级玩家

Rank: 3Rank: 3

贡献度
0
金元
1215
积分
122
精华
0
注册时间
2014-3-12
12#
发表于 2025-8-24 21:55 | 只看该作者
大神啊
回复 支持 反对

使用道具 举报

0

主题

23

帖子

82

积分

初级玩家

Rank: 2

贡献度
0
金元
820
积分
82
精华
0
注册时间
2010-11-21
13#
发表于 2026-1-24 20:55 | 只看该作者
222222222222222222222222
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|3DMGAME ( 京ICP备14006952号-1  沪公网安备 31011202006753号

GMT+8, 2026-3-26 11:05 , Processed in 0.036443 second(s), 19 queries , Memcached On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表