我有一個相當簡單的嵌套表Aurora64.Chat
含有幾個功能(其中,主Aurora64
類別處初始化,但我在這裏插入它的完整性):我對這個函數及其調用的方法做了什麼不正確的操作?
Aurora64 = {};
Aurora64.Chat = {
entityId = 0;
Init = function()
local entity; --Big long table here.
if (g_gameRules.class == "InstantAction") then
g_gameRules.game:SetTeam(3, entity.id); --Spectator, aka neutral.
end
entityId = Entity.id;
self:LogToSystem("Created chat entity '" .. entity.name .. "' with ID '" .. entity.id .. "'. It is now available for use.");
end
LogToSystem = function(msg)
System.LogAlways("$1[Aurora 64]$2 " .. msg);
end
}
上述代碼失敗(checked with the Lua Demo)與下列:
輸入:14: '}' 預期的(關閉 '{' 在第3行)鄰近 'LogToSystem'
我已經TR它的功能及其用法(如果我刪除了函數和它的一次使用,代碼完美地編譯),並且我認爲這與我使用use of concatenation(事實並非如此)有關。
我在想我可能錯過了一件簡單的事,但我checked the documentation on functions和函數&其調用似乎寫得很好。
我究竟在做什麼錯在這裏?
也許,'self:LogToSystem'應該在'Aurora64.Chat'表之外? –
你對Lua表不熟悉吧?首先,你試圖在'Init'中包含'LogToSystem',這是不可能的,因爲它還沒有被聲明,甚至你將它聲明爲聊天表本身的一部分,而不是全局的。然後,你還試圖聲明'self:LogToSystem',可能認爲'self'是一種指向'Chat'本身的關鍵字。我看到你很困惑。嘗試解釋你想如何調用這些方法,我可能會幫助你。 – user6245072
你還不清楚你想用'entityId'和其他'entity.id'來做什麼。 – user6245072