c1_lua/lua/app/server/server_data_manager.lua
2023-04-07 22:23:00 +08:00

60 lines
1.4 KiB
Lua

local ServerGameData = require "app/server/server_game_data"
local ServerDataManager = {}
function ServerDataManager:init()
end
function ServerDataManager:saveData()
end
function ServerDataManager:randomReward(weightArr, callback)
local maxWeight = 0
for i, v in ipairs(weightArr) do
maxWeight = maxWeight + v
end
local randomWeight
if callback then
randomWeight = callback(1, maxWeight)
else
randomWeight = math.random(1, maxWeight)
end
local idx
for i, v in ipairs(weightArr) do
if randomWeight <= v then
idx = i
break
else
randomWeight = randomWeight - v
end
end
return idx
end
function ServerDataManager:dataOperate(behavior, params, callback)
local opFunc = ServerDataManager.OP_FUNC[behavior]
if opFunc then
opFunc(params, function(result)
if callback then
callback(result)
end
end)
else
Logger.logError("Undefined data operation function, please check :%s", behavior)
end
end
function ServerDataManager:onSyncData(params, callback)
-- 初始化本地数据
ServerGameData:initData()
local data = ServerGameData:getData()
if callback then
callback(data)
end
end
ServerDataManager.OP_FUNC = {
[GConst.ServerDataConst.DATA_OP_BEHAVIOR.SYNC_DATA] = function (...) ServerDataManager:onSyncData(...) end,
}
return ServerDataManager