《饥荒》MOD怎么制作及发布?Steam游戏库中有MOD制作工具,并允许玩家发布属于自己的MOD,今天小编带来“NecroKaiser”分享的《饥荒》MOD制作及发布图文教程,具体怎么实现一起来看吧。
准备工作:编写MOD所需要的工具
编辑Lua文件时,推荐使用notepad++[notepad-plus-plus.org],或者Vi/Vim(少数像我这样的人才会用的编辑器)。
最后推荐你从Steam下载一个Don't Starve Mod工具,操作步骤如下:
一个MOD的基本文件结构
这里我用由Eyres1制作的Never Perish Icebox(永久保鲜羊大白勺冰箱)来作为例子:
如上图所示,一个必须具有两个文件:
modmain.lua:游戏载入你制作的mod所需要的文件;
modinfo.lua:储存mod的作者、版本等信息的文件。
modinfo.lua
第一行描述了该mod的名称
The name of the mod displayed in the 'mods' screen.
name = "Never Perish Icebox"
第二行是作者留下的对该mod的简介
A description of the mod.
description = "Food doesn't perish in the Icebox."
第三行记录了制作者的名讳
Who wrote this awesome mod?
author = "Eyres Valkrie"
第四行是作者设置的mod版本号(注意,mod版本号跟游戏版本号是两码事)
A version number so you can ask people if they are running an old version of your mod.
version = "1"
第五行是本mod对应的游戏API版本号(当你自己制作了一个mod以后,记得在每次游戏更新后检查自己mod是否依然能够正常运行,努力debug,并更改这一行的数值,然后上传到创意工坊)
This lets other players know if your mod is out of date. This typically needs to be updated every time there's a new game update.
api_version = 10
第六行说明本mod是否兼容 Don't Starve Together。
Compatible with Don't Starve Together
dst_compatible = true
第七行是向玩家说明本mod是否和 Don't Starve 和 Reign of Giants 兼容(因为Don't Starve Together和Don't Starve两者有大量相同代码,所以经常有人把Don't Starve的mod和Don't Starve Together的mod交换使用)
Compatible with both the base game and reign of giants
donttarve_compatible = true
reign_of_giants_compatible = true
这八行说明本mod是否需要重启生效
Some mods may crash or not work correctly until the game is restarted after the mod is enabled/disabled
restart_required = false
第九行说明本mod是否能够兼容其他mod
Set this to true to prevent _ANY_ other mods from loading while this mod is enabled.
standalone = false
modmain.lua
Never Perish Icebox这个mod的modmain.lua中只有一行代码
TUNING.PERISH_FRIDGE_MULT = 0;
它的作用是修改datascriptstuning.lua中TUNING对象的成员PERISH_FRIDGE_MULT,也就是修改游戏中Icebox的保鲜时间长度。
由此可见,要提供mod元信息,你就应该给modinfo.lua;而为了真正实现你的mod的功能,你则应该在modmain.lua 中编写代码。
饥荒联机版 | |||
最新版下载 | 全版本下载 | 攻略教程大全 | 最新版联机教程 |
饥荒新手攻略 | ||||
食谱大全 | BOSS打法 | 安家位置 | 联机教程 | 全人物详解 |
各季节必备物品 | 武器装备介绍 | 快速砍树方法 | 查看版本方法 | 所有材料介绍 |
饥荒热门攻略 | ||||
击杀生物宝典 | 利用巨鹿方法 | 洞穴怪物详解 | 冒险速通攻略 | 脑残值补充方法 |
陷阱布置技巧 | 牦牛详细介绍 | 坎普斯背包出处 | 危险生物排名 | 新手百日入门 |
正版资料整理 | 装备道具汇总 | 蜘蛛巢穴养殖心得 | 存档位置介绍 | 增加生存时间方法 |
范例:如何制作一个新的人物mod
人物mod的文件结构
如下图所示,一个人物mod通常除了包括前面提到的modinfo.lua和modmain.lua以外,还包括anim、bigportraits、exported、images和scripts目录,以及modicon.jpg、modicon.tex和modicon.xml文件。
官方人物
首先以官方人物Wilson为例,我们一起来研究一下选择角色界面:
就文本方面,有如上图所示的三个方面,其一是Wilson的口号(Quote),其二是Wilson的头衔(Title),其三是Wilson的简介(Description),全部都来自文件
Don't Starve Togetherdatascriptsstrings.lua
自建人物
现在将自建人物mod导入mod目录下,进入游戏建立本地服务器并激活mod,可以看出这些文本和贴图跟人物mod中文件之间的关系。
修改人物元信息
以Windows系统为例,打开Notepad++,按下快捷键Ctrl + Shift + F,进而在mod目录中搜索esctemplate和ESCTEMPLATE并分别替换为你设计的人物的名称,例如nymphoenix和NYMPHOENIX(注意大小写)
如果你是在Linux系统上使用Vim编辑文件,又不知道怎么搜索并替换给定目录下所有文件中的符合某字符串
find -type f -exec sed -e 's///' {} +
然后用Notepad++打开 modmain.lua,修改其中人物简介、称号和台词等。
编译已完成的mod
如果你的mod涉及贴图,例如人物mod、武器mod等,那么你就需要把绘图得到的图片(如果你的源文件不是格式而是其他其他格式,请先使用Photoshop、GIMP或者你自己选择的支持透明度的图像处理软件将图片格式转为格式),编译为tex贴图文件。
首先你需要确认自己安装Don't Starve Mod Tools的目录位置:
打开其中高亮的mod_tools目录,你可以在其中找到下面需要用到的可执行文件scml.exe。
然后你需要调出Windows系统内置控制台cmd:
这时候会出现如下的窗口:
你需要做的就是把下面命令中的字样、字样和字样分别改为上述可执行文件scml.exe的路径,你制作的mod中贴图项目文件(*.scml)路径和你的mod目录的路径,然后复制粘贴到控制台中,按下回车键(Enter)运行即可。
"" "" ""
(请保留上面命令中的双引号!)
如果你有多个.scml文件,你猜猜要怎么做?
整理并发布你的MOD
一屋不扫何以扫天下
一般来说,玩家在下载mod的时候都不希望看见自己要下载的mod奇大无比。我相信这是每一个制作者的责任,即保证功能与性能的同时,保持mod的紧凑度,也就是说,一个mod目录不应该有无用文件存在。
那么宝贝儿们就要问了,自己的mod目录要怎样清理呢?
首先,你应该备份自己现有的mod目录,即用压缩/存档软件,如7zip[www.7-zip.org],对mod目录进行压缩存档,并在文件名后附加版本号,方便自己查阅;之后删除exported目录;
然后将mod目录里除了后缀名为.lua和.tex的文件全部删除,再删除空目录。
文胜质则史,质胜文则野
既然你都已经把mod制作出来了,不矜夸一番怎么可以?下面就教你如何将mod发布到Steam创意工坊~
首先从Steam启动Don't Starve Mod Tools,选择上传工具,你会看见以下窗口,选择你需要上传mod对应的游戏,即Don't Starve或Don't Starve Together;
然后点击Add按钮,会弹出以下窗口,点击Browse按钮,选择要上传的mod目录路径,并选择要上传的mod的种类,再点击publish按钮发布;(其中,点击蓝色框出的Browse按钮,设定创意工坊mod预览图片)
接着你会看见,按照程序预设的指示操作,同意Steam创意工坊的条款就大功告成了。
Lua编程
Lua(请不要念成“撸啊”),一款被设计成可用于包括游戏、网站和图形处理等多方面等各类应用的轻量级可嵌入的脚本语言,在很多游戏游戏中得到应用,例如:Don't Starve,Don't Starve Together,Crusader Kings II,Europa Universalis IV,Crypt of the NecroDancer,等等。
要阅读本章的内容,你需要对计算机编程的概念有基本的了解。
首先为那些已经学习过#编译原理的童鞋献上Lua的AST
标识符/Identifiers
Lua中的标识符,可以是任何以字母或下划线开始,由字母([a-zA-Z])、数字([0-9])或下划线('_')构成的字符串。
Lua对大小写敏感,也就是说Lua跟LUA是不同的两个标识符。
关键字/Key words
Lua提供了共计21个关键字,即:
andbreakdoelseelseif
endfalseforfunctionif
inlocalnilnotor
repeatreturnthentrueuntilwhile
其他符号
+ - * / ^ =
~= <= >= < > ==
( ) { } [ ]
; : , . .. ...
赋值Assignment
Lua,正如JavaScript一样,是一种类型松散(loose typing)的脚本语言;换言之,与C/C++和Java等强类型定义语言中要求声明(declare)变量时必须选择变量的类型不同,Lua赋值时只需要变量名和变量值:
my_var = "hello"
短路求值/Minimal evaluation
由于Lua内核是基于C语言编写的,支持短路求值自然不足为奇。
所谓短路求值,即在以下Lua代码
if condition_A and condition_B and condition_C then
中,首先计算condition_A的真值,若condition_A为假(false),则跳出;否则依次计算下一个布尔表达式的真值,直到出现假或者全部表达式都计算完毕为止。
表/Table
Lua的设计者在其语法中引入了表的概念,用以表示中的数组(Array)和图(Map)两种数据结构。
1.创建一个表
你可以创建一个以字符串为键(Key)的表,即:
my_map = { apple = 5, banana = 10, melon = 9 }
或者一个类似数组的表,即:
my_array = { "Tom", "Jack", "Peter" }
2.修改表中的数据
如果你的表是以字符串为键的,那么你可以:
my_map.apple = 15或者my_map["apple"] = 17
如果你的表示以数字为键的,那么你可以:
my_array[1] = "Tompson"
请注意,Lua中以数字为键的表跟C/C++中数组不同,也就是my_array[0]的值是 nil。
表的遍历
以字符串为键的表通过以下语法进行遍历:
for k, v in pairs(my_map) do
而以数字为键的表则是:
for i, v in ipairs(my_array) do
控制结构
1.选择
if exp then
block
elseif exp then
block
else
block
end
2.当型循环
while exp do
block
end
3.直到型循环
repeat
block
until exp
4.从循环中跳出
在循环结构中使用return和break可以跳出。
看了上文九游小编带来的饥荒MOD制作方法,你是否了解了相关内容信息,知道了呢!更多最新最好玩的手机游戏就来九游下载吧!
同类推荐:《我的世界移动版》世界上第一款沙盒游戏
《我的世界移动版》被称为是世界上第一款沙盘游戏,游戏的世界看起来一点都不精彩,但是这是一个自由的世界,在这个世界中,你能够创造任何东西,包括游戏中的环境,在这里,你就是上帝. 有人说,在这款游戏中,你只需要从事两种操作:建设和破坏.你能够利用游戏中提供给你的各种基石来创造各种东西,发挥你的想象力,你能够建造房屋,构建城堡甚至是城市. 游戏特色: 随机的世界; 能够构建任何东西,只要你能想象得到; 一共有36种不同的基块; 可以与朋友一通过无线局域网络联机. 注:该版本各机型通用.
如转载涉及版权等问题,请作者与我司联系,我司将在第一时间删除或支付稿酬。
全部评论