【发布时间】:2014-02-06 22:22:09
【问题描述】:
我正在维护别人的 Lua 代码,而 Lua 不是我的首选语言。这可能是一个完整的菜鸟问题,但我似乎无法在 Google 或 SO 上找到答案......
以下代码
if !(v.LastHealth == v:Health()) then
local newColor = {}
newColor.r = v.orgColor.r - (v.orgColor.r - curColor.r) --This is the line the error occurs on
newColor.g = v.orgColor.g - (v.orgColor.g * clrPercent)
newColor.b = v.orgColor.b - (v.orgColor.b * clrPercent)
newColor.a = v.orgColor.a - (v.orgColor.a - curColor.a)
v:SetColor( newColor )
产生错误
attempt to perform arithmetic on field 'r' (a table value)
orgColor(也许,不完全确定——v.orgColor 可能是一个过时的东西)和 curColor 是有条目的表(呃。我认为。bla.x 与 Lua 中的 bla[x] 相同,对吧?) r、g、b 和 a。显然我不能对来自表格的东西进行数学运算?我应该在使用它们之前将所有这些值存储在局部变量中吗?这似乎不对。
编辑:
打印 v.orgColor 给出table: 0x40390080,我认为这意味着它存在并且是一个表格。奇怪的是,v.orgColor.r 给出了另一个表!这听起来像是原因。
【问题讨论】:
-
检查
v.orgColor和curColor表并确保它们确实有r键。也不是,bla.x和bla[x]不是一回事,但bla.x和bla["x"]是。 -
@ColonelThirtyTwo 那真的应该是我做的第一件事,不是吗?我已经用结果更新了问题。
标签: lua runtime-error