参考学习资料 AI 制作 夏湾的教程.docVIP

  • 0
  • 0
  • 约1.54千字
  • 约 2页
  • 2026-01-28 发布于广西
  • 举报

当你学到本教程的时候,你应该对前3个教程有了初步的了解,你现在已经具备了制作简单的武器的本领,下面开始更深层次的探索。

如果你想要真正写好饥荒mod,并在未来突破官方代码的束缚,建议你去把那两部分的lua教学看完。

首先来介绍一下容易让人迷惑的inst和self

inst其实是一个表(table),代表这“种”物品,里面包含有很多的数据,

如果你已经看过lua教学你在调试的时候可以试着在代码中加入

fork,vinpairs(inst)do --遍历此表

print(k,v) --输出key(索引)和value(数据)

end

来打印出来(游戏中按~键在控制台查看结果,如果足够熟练,你也可以把inst换成已知的表)

其次是self,这个是lua语法中自带的,表示表自身,不过components里面的self的用法有些不同,应该官方来了个Class。据我理解,self那一堆组成了一个表,举个例子: 在scripts/components/health.lua中有

关于你怎么节约你打代码时间的

首先你要学会做笔记,就像我自己记得那样。等你用到的时候自己copy过去就能节约很多时间,还能保证正确性,不过前提是你能看得懂那些代码是什么意思,完全照抄是没有意义的,只有看得懂,会自己用才是自己的。

其次,写代码时,你可以自己建个空文件从头开始,你也可以用模板以及你之前写过的成品,甚至是各大参考代码。不过后者比较省时点

关于引用表里的数据时的.[]:分别是什么意思

例如有个表

mytable=

{ 1, --英文逗号忘了!!

name=“夏湾”,

id=10086,

myfunction=Getmytable --functionname表示一个函数的名字

}

.是引用的最常见方法,不过只有当key是字符串时才能这样用,本例中

mytable.namemytable.idmytable.myfunction都可以这么来引用,他们也等于

mytable[“name”]mytable[“id”]mytable[“myfunction”]

[]是最全的引用方法,用法是mytable[key],没有等号的默认key从1开始编号,详细去看lua教程

:冒号,这玩意经常用来定义定义表的函数

例如localfunctionmytable:Getmytable(key)其实有两个参数,一个是mytable,另一个是key。在这个函数中可以用self表示mytable,self.name-等价-mytable.name。同时在另一个lua中你也可以用mytable:Getmytable(key)来直接引用这个函数,因为加了local,所以另一个lua不能直接Getmytable(tablename,key)

这玩意等价于localfunctionGetmytable(tablename,key)

localself=tablename

...

end然后在tablename里面加入这个函数

看log(报错或者在控制台里的都在log里)

C:\Users\Administrator\Documents\Klei\DoNotStarveTogetherRail\client_log.txt

没开洞穴↑

开了洞穴↓

C:\Users\Administrator\Documents\Klei\DoNotStarveTogetherRail\76561197974833431\Cluster_4\Master\server_log.txt

文档评论(0)

1亿VIP精品文档

相关文档