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

注册 登录

QQ登录

只需一步,快速开始

查看: 11801|回复: 4
打印 上一主题 下一主题

[MOD制作教程] 《火星求生》MOD基础开发修改教程

  [复制链接]

47

主题

764

帖子

1万

积分

版主

Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18

贡献度
1303
金元
142501
积分
19492
精华
3
注册时间
2013-11-16

3DM MOD站(白银)

跳转到指定楼层
主题
发表于 2018-7-11 14:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
未整理版本就是说我想到哪里写到哪里,等最后写完了在一起整理。主要是通过分析我自己的MOD来说明MOD怎么开发。也欢迎各位随时补足本文的不足之处,共同完善。注意,这里一些设计图形,视频,音频,UI界面等的一般玩家自己用不到的不做说明。因为涉及太多内容,这里仅仅说明最基础的。


一 ,准备工具
我的MOD:http://bbs.3dmgame.com/thread-5720803-1-1.html(用来做示例)
游戏LUA代码反编译:http://bbs.3dmgame.com/thread-5721523-1-1.html(查找以及分析相关游戏代码常量,类型,模板等)
文本编辑器:推荐EDITPLUS,UE之类的(用来编辑mod, 使用文件夹搜索功能快速查找LUA代码)
文本汉化包:可以直接下载http://bbs.3dmgame.com/thread-5720803-1-1.html里面的那个game_b.7z, 2.0的汉化包(简单查找变量的方法就是在这里找到对应的英文原文,然后在lua代码反编译里面搜索)
官方MOD编辑器:游戏目录下ModTools目录下的MOD官方修改器以及文档(文档很重要)


二,MOD类型
MOD类型实际上粗略的可以分为两种,分别是辅助MOD,以及功能MOD两种。
辅助MOD,指的是通过MOD编辑器或者直接写MOD文件实现的MOD,由于是调用MOD系统自己提供可允许修改变量以及可修改模板来制作的MOD,
所以原则上只是辅助修改游戏某个建筑与某个属性的属性值或者根据模板创建新的建筑或者技术或者其他对象。这样的一般系统兼容性会比较好,就算游戏更新升级,也会有比较好的兼容性。
功能性MOD,指的是通过写LUA代码实现某一个功能或者覆盖游戏本身的代码实现或者修改某一功能,这样的MOD不单单是可以修改游戏中的某种属性或者数值,
更多的是修改了游戏本身的机制与逻辑。这样的MOD对游戏侵入性比较强,虽然实现的功能可以做到五花八门,但是一旦游戏出现更新就有可能不能使用了。


三,MOD的结构
本游戏中的Mods被编辑并存储在%AppData%/Surviving Mars/Mods文件夹下,比如系统盘(比如C):\\Users\\Administrator\\AppData\\Roaming\\Surviving Mars\\Mods
当通过Steam Workshop发布时,相同的文件夹进入系统Steam文件夹。
这个文件夹中,并且其中每个目录代表一个MOD.
每个MOD文件夹中存储这MOD文件,具体文件类型为:
MOD文件夹根目录下:
1. metadata.lua 这个顾名思义就是一个元数据定义文件,定义MOD的名称,版本,创建者,说明以及这个mod中包含的外部文件引入(比如代码,比如实体等)
2. items.lua 具体的ModItem存放文件,ModItem包含几种类型:
     有带有实体的ModItem,一般用于新定义的包含视觉效果的对象
     基于模板继承的ModItem, 一般用于生成基于现有存在对象模板的新建筑,技术或者其他。(比如很多现在的自定义建筑,自定义技术,自定义赞助者等)都是基于模板ModItem修改的。
     基于模板属性的ModItem,一般用于修改某个现有模板属性
     带有Lua代码的ModItem,可以对某个对象重新定义他的Lua代码部分,或者增加lua代码。最简单的例子就是自定义赞助商的时候,可以直接定义game_apply属性里面的Lua代码实现赞助商初始化
     
3.UI文件夹,Entities文件夹是用来存放UI相关以及实体类相关的文件,图片,模型等的文件夹,因为这设计内容比较多,这里不做说明
4.Code文件夹,存放其他的LUA代码的文件夹,可以通过在Metadata.lua以及Items.lua中引入到游戏自动执行。


四,如何创建一个MOD创建一个MOD有两种方式,一种就是直接通过游戏自带的MOD编辑器创建,另外一种就是直接使用文本编辑器创建mod所需要的lua文件。


两种方式各有不同的适用范围与特点。其中通过游戏MOD编辑器创建MOD适合于对LUA脚本不熟悉或者对游戏不熟悉的新手使用。
因为大部分的常量以及编辑器所需要的模板属性都已经内置了,并且大部分内容还有汉化。所以如果仅仅只是为了修改游戏的建筑或者技术或者赞助商,指挥官等的一些属性,
那么使用游戏内置的MOD编辑器是最方便的,而且最不容易出错。因为编辑器貌似自带一个检查机制,会保存的时候检查属性是否正确匹配。


同时Mod编辑器还适合一般玩家使用,因为mod数值很变态, 那么你只需要自己代开mod编辑器编辑这个mod,基本上大部分的mod的数值自己就可以修改了。
不用在继续求人。


当然,内置MOD编辑器也不仅仅是适合于新手或者简单修改属性使用,对于老手或者想要做功能性MOD的朋友来说Mod编辑器一样是必不可少的。
因为首先生成一个MOD,你可以自己直接编写metadata.lua文件,但是如果用mod编辑器直接创建一个新mod,那就比较省了这个步骤了。
很多人都是直接在mod编辑器里面定义好mod的信息以及添加好需要的实体或者Code文件,之后在直接使用文本编辑器编辑的。这样会节省不少时间。
另外更重要是mod编辑器有检查错误以及格式化代码的作用。当你新写了一个mod或者修改了一个mod,进入mod编辑器后,右侧的message窗口会显示加载的脚本是否有错误。
另外发布mod之前使用mod编辑器在保存一下,你会发现所有的文件代码被格式化整整齐齐了。。强迫症福音。


另外一种方式就是直接编写lua脚本了,这其实没什么好说的,当你做过或者修改过一个mod,也就清楚了。另外最好学习下基本的lua语言的语法,毕竟这个mod都是lua所写。


如果使用MOD编辑器创建的mod会自动的保存在%AppData%/Surviving Mars/Mods目录下,而我们自己脱离mod编辑器手动创建mod也必须要放到这个目录下才能在游戏中的mod管理器中看到。


五,如何调试mod
调试一个mod首先肯定要在游戏里面进入mod编辑器,否则你还调试什么啊。
其次在调试具体功能之前,先要注意看下mod编辑器右侧的message窗口是否会有错误信息。如果有错误信息,那么肯定出错。
第三,您可以在mod编辑器模式下的游戏里面测试你的功能是否达到mod的要求。如果不起作用或者出现问题,请%AppData%/Surviving Mars/logs目录下找到最新的日志文件,查看下。
因为错误信息会显示在日志文件中,由于是lua脚本开发的游戏,所以相应的日志文件记录的会更详细到哪一个文件,哪一行代码出错。
第四,调试时候虽然可以发现问题直接在mod编辑器内编辑完点击测试,让游戏重新加载修改后的代码。但是有时候还是需要重启游戏才能看到新的执行效果。
第二部分:MOD编辑器使用

第三部分:创建一个自定义赞助商

第四部分,如何获取属性值或者参数


第五部分 创造功能性MOD


第六部分 AllTech_BaseTech mod分析


第七部分 分析AllTech_Build代码第八部分 分析AllTech_Crops代码,自己创建植物或建筑


第9部分 分析AllTech_DeepTech代码,修改现成的科技与修改建筑对象代码

第10部分 分析AllTech_NativeCheats_FULL代码,实现自己功能逻辑
第十一部分 如何扩展游戏内对象的功能与逻辑(创建一个提供12项服务的建筑)


















来源: MOD基础开发修改教程(妈妈再也不担心下载的MOD太bt了)3月25更新
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏8
回复

使用道具 举报

18

主题

1万

帖子

5万

积分

游戏圣者

Trainer Tester

Rank: 12Rank: 12Rank: 12

贡献度
355
金元
513128
积分
52753
精华
2
注册时间
2009-7-6

玛丽·萝丝~端午节专属勋章3DM MOD站(白银)

舒服的沙发
发表于 2021-4-13 23:23 | 只看该作者
路过,呢,,,
回复 支持 反对

使用道具 举报

0

主题

164

帖子

181

积分

中级玩家

Rank: 3Rank: 3

贡献度
0
金元
1805
积分
181
精华
0
注册时间
2017-12-7
硬硬的板凳
发表于 2021-4-29 12:06 | 只看该作者
有点厉害
回复 支持 1 反对 0

使用道具 举报

3

主题

1万

帖子

1万

积分

骨灰玩家

Rank: 10Rank: 10Rank: 10

贡献度
1
金元
186719
积分
18676
精华
0
注册时间
2016-4-26
冰凉的地板
发表于 2021-11-3 06:45 | 只看该作者
666666666666666666
回复 支持 反对

使用道具 举报

3

主题

1万

帖子

1万

积分

骨灰玩家

Rank: 10Rank: 10Rank: 10

贡献度
1
金元
186719
积分
18676
精华
0
注册时间
2016-4-26
5#
发表于 2021-12-16 17:18 | 只看该作者
6666666666666
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 15:23 , Processed in 0.124543 second(s), 22 queries , Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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