错误:尝试索引本地'self'(零值)

时间:2014-08-10 02:30:06

标签: lua garrys-mod

我正在关注Lua的教程,专门用于在游戏Garry的Mod中制作游戏模式。我已经看了一段时间了,我根本无法找到错误。

function ply:databaseFolders()
   return "server/example/players/" .. self:ShortSteamID() .. "/"    --ref. A
end


function ply:databasePath()
   return self:databaseFolders() .. "database.txt"    --ERROR line here, goes up
end


function ply:databaseExists()
   local f = file.Exists(self.databasePath(), "DATA")    --goes up here
   return f
end


function ply:databaseCheck()
   self.database = {}
   local f = self:databaseExists()     --goes up here
   ...
end


function GM:PlayerAuthed(ply, steamID, uniqueID)
   ply:databaseCheck()                                         --goes up here
   print("Player: " .. ply:Nick() .. " has gotten authed.")
end

代码摘要:我想在上面的目录中创建一个database.txt文件。

Edit1:当所有玩家离开游戏时,参考。到达了A,但目录中没有创建文件。

1 个答案:

答案 0 :(得分:2)

当您调用函数databasePath时,您没有使用OOP语法;因此self不会隐式传递给函数。从此以后,错误。更改以下内容:

function ply:databaseExists()
   local f = file.Exists(self:databasePath(), "DATA")
   -- notice the use of ---> : <--- here
   return f
end