网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
可签
7
级以上的吧
50
个
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
12月25日
漏签
0
天
starbound吧
关注:
85,409
贴子:
923,264
看贴
图片
吧主推荐
玩乐
首页
上一页
1
2
3
4
下一页
尾页
58
回复贴,共
4
页
,跳到
页
确定
<返回starbound吧
>0< 加载中...
回复:Starbound Lua入门教程
只看楼主
收藏
回复
你怎么了说话啊
电子骑士
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
你可以尝试传送到一个星球,再看看log会发现又打印出一条,其实这就是init函数的调用规则了,当冲刺科技这个实体初始化的时候,init函数会被lua引擎自动调用,所谓冲刺科技初始化你可以把他看做是人物初始化,因为科技是安装在人物上面的。人物在传送进世界时都会出初始化一次,离开这个世界时会被销毁也就是uninit,至于update呢,你可以试试自己加一条 sb.logInfo函数到update函数中看看log的情况。
IP属地:上海
17楼
2020-05-10 19:55
回复
收起回复
o虫
企鹅技工
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
IP属地:英国
来自
iPhone客户端
18楼
2020-05-10 20:21
回复
收起回复
2025-12-25 22:27:08
广告
不感兴趣
开通SVIP免广告
你怎么了说话啊
电子骑士
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
第三篇:Lua mod编写(上)
IP属地:上海
19楼
2020-05-11 22:43
回复
收起回复
你怎么了说话啊
电子骑士
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
之前我们分析了dash这个科技的lua脚本,得出一个结论,当玩家进入一个世界时(dash实体初始化),init函数会被调用一次,玩家离开世界时(dash实体被销毁),而update函数其实是无时无刻在被脚本引擎调用。其实也很好理解,就算再简单的游戏,无论是怪还是玩家,只要是动态的,我们都必须不停的刷新他的动画状态,一旦他的位置或者图像发生变化,我们需要重新设置,不然他就是静止的了,这就是update函数。
IP属地:上海
20楼
2020-05-11 22:44
回复
收起回复
你怎么了说话啊
电子骑士
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
对于新手来说,完全编写一个新的科技mod困难度是非常大的,我们可以借用原版的科技添加自己的逻辑代码来实现我们一开始定的目标。如何借用呢,我们已经分析了dash.lua中函数的调用规则了,所以我们可以把自己写的代码挂接到dash.lua上。具体方法:在mods文件夹建立以下结构。
IP属地:上海
21楼
2020-05-11 22:44
回复
收起回复
你怎么了说话啊
电子骑士
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
这是标准的patch结构,相信你已经很熟悉了,我们对dash.tech 这个json文件进行patch,给dash.tech的scripts属性值增加一个demo.lua。
IP属地:上海
22楼
2020-05-11 22:45
回复(1)
收起回复
你怎么了说话啊
电子骑士
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
在demo.lua中写入以下代码
IP属地:上海
23楼
2020-05-11 22:46
回复
收起回复
你怎么了说话啊
电子骑士
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
这就是一个最简单的lua类型Mod了,在打开游戏后,你会发现效果和我们刚开始前直接改动源文件一样。简单的看一下这段代码,当我们在 dash.tech 中的scripts属性中加入了demo.lua后,科技实体在加载dash.lua时也会加载demo.lua。demo.lua做的事很简单,把原来dash.lua中的init,update、uninit函数都先保存到变量ini、upd、uni中,自己定义了init()、update()、uninit()这些由脚本引擎自动调用的函数,相当于覆盖了原来dash.lua的这些函数。
IP属地:上海
24楼
2020-05-11 22:46
回复
收起回复
2025-12-25 22:21:08
广告
不感兴趣
开通SVIP免广告
你怎么了说话啊
电子骑士
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
那之后脚本引擎就会调用demo.lua中的init、update、uninit函数了。但是我们需要同时调用一下原来dash.lua的这些函数,不然dash这个科技原来自己的功能就没有了,所以会有这样一个架构,这也是一个通用的挂接型模板。那么下面的事就很简单了,你可以在你自己写的demo.lua中随意发挥了。
IP属地:上海
25楼
2020-05-11 22:46
回复
收起回复
你怎么了说话啊
电子骑士
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
第四篇:Lua mod编写(下)
IP属地:上海
26楼
2020-05-11 23:17
回复
收起回复
你怎么了说话啊
电子骑士
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
为了实现瞬移到光标位置,我们要来查文档了,看看有没有设置玩家位置的函数。定位到actormovementcontroller这个文档,可以看到有一个函数“mcontroller.setPosition”,这个就可以设置当前实体的位置了,可能是玩家也以是monster、npc。看你把这个函数用在哪里了。这里我们用在科技实体上当然是设置的玩家的位置了。有人可能会问你怎么找的这些函数,官方提供了很多函数,这需要你经常去翻这些文档,每条函数的下面都写了他的作用。这个函数接收一个位置参数,但是这个参数类型是Vec2F,这是什么类型?并不是lua的基础类型。
IP属地:上海
27楼
2020-05-11 23:18
回复
收起回复
你怎么了说话啊
电子骑士
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
你可以用FileLocator去搜索解包文件中的lua文件,肯定有Lua文件用到这个函数,然后看看他的参数怎么定义的。这里我就直接说吧,Vec2F其实就是个两元素的数组。比如mcontroller.setPosition({200,300}),这句话就可以把你设置到你当前世界的(200,300)坐标。下面就是把这句话加到我们的demo.lua中,先加到init中,看看有没有效果。
IP属地:上海
28楼
2020-05-11 23:18
回复
收起回复
你怎么了说话啊
电子骑士
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
这里教大家一个快速调试的办法,在游戏中用/reload就能让游戏重新加载修改后的文件。可以看到我一用/reload结束,人物就被设置到200,300这个位置了(使用指令/debug可以看到调试信息),调试的时候最好,把这个坐标改一改,这个坐标可能是个虚空。
IP属地:上海
29楼
2020-05-11 23:20
回复
收起回复
你怎么了说话啊
电子骑士
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
当然这个函数放在init中只是为了测试而已,我们的目标是按下键盘的G后把自己瞬移到光标位置。在update中加入以下代码。
IP属地:上海
30楼
2020-05-11 23:21
回复
收起回复
2025-12-25 22:15:08
广告
不感兴趣
开通SVIP免广告
你怎么了说话啊
电子骑士
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
args.moves['special2'] 其实就是获取当前的键盘G键按下信息,关于args的结构如下:
IP属地:上海
31楼
2020-05-11 23:22
回复
收起回复
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧热议榜
1
断臂男网恋踩坑,女方骗钱跑路
1737150
2
国漫剑来竟抄袭,粉丝怒喷没骨气
1564405
3
鸣潮3.0吧友体验实况
1189636
4
过洋节=不爱国?吧友激情开辩
917784
5
相声大师润美,平安夜远程爱国
716404
6
自怜自艾?985学子自述跌落斩杀线
634125
7
私发黄片给女友,男子被罚3k行拘
563136
8
南博前院长落马,涉盗卖走私文物
405513
9
六冠王knight,自称仍是迷路少年
391094
10
离婚女搞百合,带6娃办订婚宴
383145
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示