0
我在維護別人的Lua代碼,而Lua不是我的首選語言。這可能是一個完整的noob問題,但我似乎無法找到在谷歌或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是有條目的表(呃,我想.blax和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這真的應該是我做的第一件事,不是嗎?我已經用結果更新了問題。 – Schilcote