私は(メインAurora64
クラスが別の場所で初期化されますが、私は完全を期すためにそれをここに挿入されている)の機能のカップルを含む非常に単純なネストされたテーブルAurora64.Chat
を持っている:この関数とその呼び出しに対する私のアプローチが間違っていますか?
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: '}'
'LogToSystem' の近くに(3行目で '{' 閉じるために)予想私はTRを有していますLogToSystem
の関数とその使用法を確認しました(関数を削除して使用するとコードが完全にコンパイルされます)、私はuse of concatenation(これはそうではありません)を使用していると考えました。
私は単純なことを忘れていたかもしれないと思っていますが、私はchecked the documentation on functionsとその機能は&です。その呼び出しは正しく書かれているようです。
私は正確にここで間違っていますか?あなたはLogToSystem
の前にカンマが含まれていない、あなたは(明示的なパラメータとしてself
を追加することで)少し異なるそれを定義する必要があり
'self:LogToSystem'は' Aurora64.Chat'テーブルの外にあるはずですか? –
あなたはルアのテーブルに慣れていないのですか?まず、 'Init'に' LogToSystem'をインクルードしようとしています。なぜなら、まだ宣言されていないし、チャットテーブル自体の一部として宣言していてグローバルではないからです。次に、 'self:LogToSystem'を宣言しようとしています。おそらく、' self'は 'Chat'自体を参照する一種のキーワードであると考えています。私はあなたが混乱しているのを見ます。それらのメソッドを呼び出す方法を説明し、おそらくあなたを助けることができます。 – user6245072
'entityId'や他の' entity.id'で何をしようとしているのかも不明です。 – user6245072