|
- local PlayerInfoManager = class("PlayerInfoManager")
-
- function PlayerInfoManager:ctor()
-
-
- --[[
- playerInfoList =
- {
- [uid] = {name = "zhangsan", sex = 0, head = "http://www.dingdingqipai.com/head.png"},
- [uid] = {name = "zhangsan", sex = 0, head = "http://www.dingdingqipai.com/head.png"},
- [uid] = {name = "zhangsan", sex = 0, head = "http://www.dingdingqipai.com/head.png"},
- }
- --]]
- self.playerInfoList = {}
- self.fileName = "PlayerInfoManager";
-
- self.waitingSave = false
- self.handlerWaitingSave = nil
-
- -- 初始化
- self:loadPlayerInfoList()
- end
-
- -- 所有子游戏战绩里面的玩家信息都要保存在这里共用
- function PlayerInfoManager:addPlayerInfo(uid, name, head, sex)
- if not uid then
- return
- end
- local playerInfo =
- {
- name = name or "",
- head = head or "",
- sex = sex or 0,
- }
- self.playerInfoList[tostring(uid)] = playerInfo;
-
- self:savePlayerInfoList();
- end
-
- -- 通过ID获取玩家信息
- function PlayerInfoManager:getPlayerInfo(uid)
- if self.playerInfoList and uid then
- return self.playerInfoList[tostring(uid)]
- end
- return nil
- end
-
- function PlayerInfoManager:loadPlayerInfoList()
- local jsonString = loadStringFromFile(self.fileName)
- if jsonString then
- self.playerInfoList = json.decode(jsonString) or {}
- end
- end
-
- function PlayerInfoManager:savePlayerInfoList()
- if self.waitingSave then
- return
- end
- self.waitingSave = true
- self.handlerWaitingSave = cc.Director:getInstance():getScheduler():scheduleScriptFunc(function()
- if self.handlerWaitingSave then
- cc.Director:getInstance():getScheduler():unscheduleScriptEntry(self.handlerWaitingSave)
- end
- self.waitingSave = false;
- local jsonString = json.encode(self.playerInfoList)
- saveStringToFile(jsonString, self.fileName)
- end,1.0,false)
-
- end
-
- return PlayerInfoManager
|