LUA执行代码顺序错误-可能与桌面模拟器有关
2022-2-22 12:49:3
收藏:0
阅读:951
评论:1
我对LUA还比较新,并且还在学习。到目前为止,我还没有遇到任何异步功能,但我的代码似乎表现出这种行为。这真的很奇怪。我有以下功能:
function chgAttacker(attacker)
local stats = getModelstats(attacker)
Attacker = stats
local WS = stripTextFormatting(stats[2])
local BS = stripTextFormatting(stats[3])
local Attack = stats[7]
local weaponStrength, armorPen = getWeapons(attacker)
UI.setAttribute("model_BS", "text", BS) -- 在UI上设置BS技能
UI.setAttribute("model_WS", "text", WS) -- 在UI上设置WS技能
UI.setAttribute("model_attacks", "text", Attack) -- 在UI上设置攻击技能
end
如果我删除具有getWeapons(attacker)
行的函数,函数将像您预期的那样工作(这是我接下来将要解释的)。它非常基本,只是获取一个字符串,解析它,然后将其存储在stats
变量中。最后3行UI
随后会根据这些状态更新我的UI中的3个值。当我说这个完美时,你必须相信我。
问题开始出现在我添加getWeapons(attacker)
之上时,它也更新这些UI
值(实际上它将其重置为某些默认值)。但是,最后的3行明显是要覆盖getWeapons(attacker)
所设置的任何内容。但是,它没有。假设起始UI BS
值为1,并且 getweapons()
将其更新为2,则UI.setAttribute("model_BS", "text", BS)
将其更新为3;这正是我观察到的:它从1开始,然后(非常简要地)更新为3,然后更新为2。
就像它是以异步方式运行一样。有人以前见过这种情况吗,或者可以建议我如何使LUA“等待”,直到getweapons()
函数完成吗?
编辑:我自己修复了它,我正在使用内置的等待函数...但似乎它实际上并没有等待。我删除了这个函数现在它可以工作了。真的很奇怪,因为我必须首先添加它,因为UI无法快速更新。
原文链接 https://stackoverflow.com/questions/71219540
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
- 如何编写 Lua 模式将字符串(嵌套数组)转换为真正的数组?
- 如何创建一个 lua 脚本以针对特定键为 fluentbit 进行限流
- 如何在Lua中将变量从Lua推送到C ++
问题在于我在
targetweapons()
中(未显示)使用了Tabletop模拟器功能wait
。下面是如何使用它的示例:Wait.frames( function() print("Hello!") end, 2 )
我将其设置为2个滴答,是为了其他原因 - 当更新UI时,至少需要一个滴答,因此我需要上述等待。但是,这具有使其表现为异步调用的不利影响。在删除后,它按预期工作了。