local ServerBaseData = class("ServerBaseData") function ServerBaseData:ctor(...) self.data = {} -- self.data.__parent = self -- local innerData = nil -- innerData = { -- __index = function (t, key) -- return innerData[key] -- end, -- __newindex = function (t, key, value) -- innerData[key] = value -- end -- } -- setmetatable(self.data, innerData) end function ServerBaseData:init() end function ServerBaseData:loadLocalData() local data = LocalData:getString("ServerData_" .. self.__cname, "") local dataObj = nil if data and data ~= "" then dataObj = json.decode(data) end self:init(dataObj) end function ServerBaseData:loadNewPlayerData() self:init() end function ServerBaseData:getCloneData() local cloneData = {} local function _copy(object) if type(object) ~= "table" then return object elseif cloneData[object] then return cloneData[object] end local newObject = {} cloneData[object] = newObject for key, value in pairs(object) do newObject[_copy(key)] = _copy(value) end return newObject end return _copy(self.data) end function ServerBaseData:clone() end return ServerBaseData