我已经尝试了一个月来尝试使用这个模块从回调函数中返回一个值。
我正在覆盖GetPData
从本地 sql 数据库中检索数据的默认函数,但我想从 MySQL 数据库服务器中检索它。
这是原始功能:
--[[---------------------------------------------------------
GetPData
- Saves persist data for this player
-----------------------------------------------------------]]
function meta:GetPData( name, default )
name = Format( "%s[%s]", self:UniqueID(), name )
local val = sql.QueryValue( "SELECT value FROM playerpdata WHERE infoid = " .. SQLStr(name) .. " LIMIT 1" )
if ( val == nil ) then return default end
return val
end
这是我尝试过的代码:
function Player:GetPData(key, default)
testget(self,key,default,function(junk)
//LocalPlayer():ChatPrint("You have $" .. junk .. ".");
print(junk)
return junk
end)
end
function testget(self,key, default, callback)
local retVal = default
insertQ = PDataDB:query("SELECT `value` from `playerdata` WHERE `uniqueid`='" .. self:UniqueID() .. "' AND key` = '" .. key .. "';");
insertQ.onError = DBError
insertQ.onData = function(self, data)
retVal = data.value or default
print(retVal)
print("--------------------------------------------------------------------------------------------------------------")
insertQ.onSuccess = function(self)
print(retVal)
callback(retVal);
end
insertQ:start()
end
end
这是一款名为 garrys mod 的游戏。我需要在我的服务器上跟踪 xp。