准备工作:
编写MOD所需的工具
编辑Lua文件的时候,建议用notepad++或者Vi/Vim(只有我这样的少数人用的编辑器)。
但是,如果您是程,您可能更喜欢使用为Lua设计的IDE。
当你需要编辑一个素材文件时(这个游戏中要求的素材文件格式是。tex),推荐使用帅马特制作的TexTool(请登录Klei论坛后下载,可以使用Steam登录)
需要编辑png文件时,请使用支持透明背景的图片编辑器;如果有闲钱,不妨买个Photoshop如果你这么穷,你得试试GIMP,一个免费的软件。
最后,我推荐你从Steam下载一个 # 39T Starve Mod工具,操作步骤如下:
MOD基本文件结构
在这里,我用Eyres1制造的Never death ice box(永久保鲜羊白勺冰箱)作为例子:
如上图所示,a必须有两个文件:
Modmain.lua:游戏加载你做的mod所需要的文件;
Modinfo.lua:存储mod的作者和版本等信息的文件。
接下来,让我们打开这两个文件看一看:
modinfo.lua
第一行描述了mod的名称,
mod的名称显示在 # 39;mods # 39屏幕。
name = quot永不灭亡冰箱 quot
第二行是作者留下的mod简介,
-对mod的描述。
描述= quot食物不 # 39;不要死在冰箱里。"
第三行记录了生产者的名字,
-谁写的这个超赞的mod?
作者= quot艾尔斯·瓦尔克里 quot
第四行是作者设置的mod版本号(注意mod版本号和游戏版本号不同)
-一个版本号,这样你就可以问别人他们是否在运行你的mod的旧版本。
版本= quot1 quot
第五行是这个mod对应的游戏API版本号(自己做mod的时候,记得每次游戏更新后都要检查自己的mod是否还能正常运行,试着调试一下,把这一行的值改一下,然后上传到创意工坊)
-这让其他玩家知道你的mod是否过期。
这通常需要更新每一次 # 39;这是新的游戏更新。
api_version = 10
第六行解释这个mod是否兼容Don # 39不要一起挨饿。
-兼容唐 # 39;不要一起挨饿
dst_compatible = true
第七行是向玩家说明这个mod和Don # 39t挨饿和巨人的统治是相容的(因为唐 # 39;不要一起挨饿,不要。T stairging和T stairging有很多相同的代码,所以人们经常把Don # 39不要挨饿的模和唐 # 39;t一起挨饿的适度交换)
-兼容基本游戏和巨人统治
dont _ starve _ compatible = true
巨人的统治兼容=真
这八行表示这个mod是否需要重启才能生效。
-某些mod可能会崩溃或无法正常工作,直到在启用/禁用mod后重新启动游戏
重启要求=假
第九行说明这个mod是否可以兼容其他mod。
-将此项设置为true以防止_ ANY _ other mods在启用时加载。
独立=假
modmain.lua
永不灭亡Icebox这个mod的modmain.lua里面只有一行代码,
调音。灭亡_冰箱_ MULT = 0;
它的作用是修改data\scripts\tuning.lua中调优对象灭亡_冰箱_MULT的成员,也就是修改冰盒在游戏中的保鲜时间。
所以要提供mod元信息,应该给modinfo.lua为了真正实现你的mod的功能,你应该在modmain.lua里面写代码
示例 middot如何制作一个新的角色模型首先,从Klei论坛[forums.kleientertainment.com]或Creative Workshop下载角色模型模板扩展样本角色。在此基础上,修改模板中的角色信息和剧本,就可以制作属于自己的专属定制mod啦~
字符模式的文件结构
如下图所示,一个角色mod通常不仅包括前面提到的modinfo.lua和modmain.lua,还包括anim、bigportraits、exported、images和scripts目录,以及modicon.png、modicon.tex和modicon.xml文件。
官方数字
首先,我们以官方人物威尔逊为例。我们一起来研究一下选择角色的界面:文字方面,有上图所示的三个方面,一是威尔逊的口号(引用),二是威尔逊的头衔(标题),三是威尔逊的描述,这些都来自文档。
唐 # 39;t一起挨饿\data\scripts\strings.lua
自建人物
现在将自建的角色mod导入mod目录,进入游戏建立本地服务器并激活mod。你可以看到这些文字和地图与字符模式中的文件之间的关系。
修改字符元信息
以Windows系统为例,打开Notepad++,按快捷键Ctrl+Shift+F,然后在mod目录中搜索esctemplate和ESCTEMPLATE并用你设计的角色名替换,比如nymphoenix和NYMPHOENIX(注意大小写)
如果您在Linux系统上使用Vim编辑文件,并且不知道如何搜索和替换给定目录中匹配某个字符串的所有文件。
find-type f-exec sed-e # 39;s/// # 39;{} +
然后用Notepad++打开modmain.lua,修改简介,标题,台词等。
编译完成的mod如果你的mod涉及到贴图,比如人物mod,武器mod等。,那么你需要把画图得到的png图像(如果你的源文件不是png格式而是其他格式,请先用Photoshop、GIMP或者你自己的支持透明的图像处理软件把图像格式转换成png格式)编译成tex映射文件。
首先,你需要确认你安装了Don # 39t饥饿模式工具目录位置:
打开突出显示的mod_tools目录,在那里可以找到以下可执行文件scml.exe。
然后需要调出Windows系统内置控制台cmd (Linux: Ctrl+Alt+T):
此时,将出现以下窗口:
你需要做的就是把下面命令中的字、词、词改成上面可执行文件scml.exe的路径,映射项目文件的路径(*。scml)和mod目录的路径,然后将它们复制并粘贴到控制台中,并按回车键运行。
" ltexec _ path gt"" ltproject _ path gt"" ltmod _ path gt"
(请保留上面命令中的双引号!)
如果你有多个。scml文件,猜猜怎么办?
清理并发布mod不扫房子为什么要扫天下?
一般来说,玩家在下载的时候都不希望看到自己想下载的巨大mod。我相信这是每个制作人的责任,就是在保证功能和性能的同时保持mod的紧凑性,也就是一个mod目录里不应该有无用的文件。
然后宝宝们要问了,你是怎么清理你的mod目录的?
首先你要备份好你现有的mod目录,也就是使用压缩/归档软件,比如7zip,对mod目录进行压缩归档,为了你的方便,在文件名后面加上版本号;
然后删除导出的目录;
然后删除mod目录中除了名为。lua和。tex,然后删除空目录。
文学的品质是历史,文学的品质是野性。
既然做了mod,怎么能不夸呢?下面介绍如何将mod发布到Steam创意工坊~
先从Steam开始 # 39t饥饿模式工具,选择上传工具,你会看到以下窗口。选择你需要上传的mod对应的游戏,即Don # 39不要挨饿,也不要挨饿。不要一起挨饿;
然后点击添加按钮,会弹出如下窗口。点击浏览按钮,选择要上传的mod的目录路径,选择要上传的mod类型,然后点击发布按钮进行发布;(其中,点击蓝框中的浏览按钮,设置创意工坊mod的预览图片)
然后你会看到,按照程序预设的指令,同意Steam创意工坊的条款,就大功告成了。
Lua编程Lua(请不要发 啊 ),一种轻量级、可嵌入的脚本语言,专为包括游戏、网站、图形处理等各种应用而设计。,已经在很多游戏中应用,比如Don # 39不要挨饿,不要。一起t,十字军国王二,欧罗巴普里斯四,死亡舞者墓穴等。
要阅读本章,你需要对计算机编程的概念有一个基本的了解。
首先把Lua的AST送给那些已经学会#编译原理的童鞋。
标识符
Lua中的标识符可以是以字母或下划线开头的任何东西,由字母([a-zA-Z])、数字([0-9])或下划线( # 39;_#39;).
LUA区分大小写,这意味着Lua和Lua是两个不同的标识符。
关键词/关键词
Lua总共提供了21个关键字,即:
Lua是一种区分大小写的语言:尽管和是保留字,而和是两种不同的合法标识符。
按照惯例,以下划线开头的标识符被保留为Lua内部变量。
其他符号:
+-*/^ = ~ = lt;
= gt= lt gt= = ( )
{ } [ ] ;: , ......
字符串
文字字符串可以通过匹配单引号或双引号来定义,并且可以包含以下C类转义序列:
另外,你也可以使用转义符 # 39;\ newline # 39代表;字符可以以 # 39;\ d # 39、#39;\ dd # 39或者 # 39;\ ddd # 39(其中字母D代表十进制数),用其对应的数值表示;Lua字符串可以包含任何8位字符,包括 # 39;[124]#39;。
Lua字符串也可以由一对方括号定义,如[[...]],这样字符串就可以跨行定义和嵌套。
数字常数
Lua的数值常数和C语言中的数值常数类似。以下是一些例子:
3 3.0 3.1416 314.16e-2 0.31416E1
给…作注解
Lua的注释以两个连续的连接器开始,即-。
类型
Lua是一种动态类型语言。这意味着变量没有类型,只有值有类型。
Lua中有八种基本类型:nil、boolean、number、string、function、user data、thread和table。其中,number是双精度浮点数,string是8位字符串。
分配
Lua和JavaScript一样,是一种松散类型的脚本语言;换句话说,与C/C++和Java等强类型定义语言要求必须声明变量不同,Lua在赋值时只需要变量名和变量值:
my _ var = quot喂 quot
短路评估/最小评估
因为Lua内核是用C语言写的,所以支持短路求值也就不足为奇了。
所谓的短路评估在下面的Lua代码中。
如果条件A和条件B和条件C,那么
,先计算condition_A的真值,如果condition_A为假,则跳出;否则,依次计算下一个布尔表达式的真值,直到计算出false或所有表达式。
桌子/桌子
Lua的设计者在语法中引入了表的概念来表示两种数据结构,数组和映射。
1.创建一个表。
您可以创建一个以字符串为关键字的表,即:
my_map = {苹果= 5,香蕉= 10,甜瓜= 9 }
或者类似数组的表,即:
my _ array = { quot汤姆 quot, quot杰克 quot, quot彼得 quot}
2.修改表中的数据。
如果您的表格由字符串键控,则您可以:
my_map.apple = 15
或者
我的地图[ quot;苹果 quot] = 17
如果您的表示由数字键入,则您可以:
my _ array[1]= quot;汤普森 quot
请注意,Lua中的数字键控表与C/C++中的数组不同,即my_array[0]的值是nil。
表格的遍历
以下语法遍历以字符串作为键的表:
对k,v成对(my_map)做
以数字为关键字的表格是:
对于I,v in ipairs(my_array) do
控制结构
挑选
如果exp那么
街区
elseif exp then
街区
其他
街区
目标
当兴循环
而exp会
街区
目标
直到型循环
重复
街区
直到exp
跳出循环
在循环结构中使用return和break跳出。
引用Lua相关:
Lua 5.1参考:http://www.lua.org/manual/5.1/
Lua 5.0参考:http://www.lua.org/ftp/refman-5.0.pdf
预编译的Lua库和可执行文件:http://luabinaries.sourceforge.net/download.html
与夏令时相关:
[指南]开始修改DST:http://forums . kleientertainment . com/topic/47353-Guide-Getting-started-with-modding-DST-and-some-general-tips-for-ds-as-well/
入门:指南、教程和示例:http://forums . kleientertainment . com/topic/28021-入门-指南-教程-和-示例/
唐 # 39;t挨饿模型:http://dontstarve.wikia.com/wiki/Mods
非官方API参考:http://dontstarveapi.com/
使用扩展的样本字符模板。指南- Klei娱乐论坛:http://Forums . kleientertainment . com/topic/46849-tutorial-using-extended-sample-character-template/
马特 # 39;s工具!-修改工具,教程 amp示例-Klei Entertainment:http://forums . kleientertainment . com/files/file/73-matts-tools/
更好的崩溃(RoG兼容)-游戏修改- Klei娱乐论坛:http://Forums . kleientertainment . com/files/file/514-更好的崩溃-rog兼容/