我对 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) -- set BS skill on UI
UI.setAttribute("model_WS", "text", WS) -- set WS skill on UI
UI.setAttribute("model_attacks", "text", Attack) -- set attacks skill on UI
end
getWeapons(attacker)
如果我删除具有的行(我将在接下来解释),该功能将按您预期的方式工作。它非常基本,它只是获取一个字符串,对其进行解析然后将其存储在stats
变量中。最后 3UI
行然后根据这些统计数据更新我的 UI 中的 3 个值。当我说这非常有效时,你必须相信我。
问题开始的地方是当我添加getWeapons(attacker)
上述内容时,它还会更新这些UI
值(实际上它会将它们重置为一些默认值)。但是,最后 3 行显然意味着要覆盖任何getWeapons(attacker)
集合。但事实并非如此。假设起始 UIBS
值为 1,getweapons()
将其更新为 2,然后将其UI.setAttribute("model_BS", "text", BS)
更新为 3;这正是我观察到的:它从 1 开始,然后(非常简短地)更新到 3,然后更新到 2。
就好像它以异步方式运行。有没有人见过这个或者可以建议我如何让 LUA等到函数getweapons()
完成?
编辑:我自己修复了它,我使用的是内置的等待功能......但看起来,它实际上并没有等待。我删除了它,现在它可以工作了。真的很奇怪,因为我必须首先添加它,因为 UI 更新不够快。