local LocalData ={} local PlayerPrefs = CS.UnityEngine.PlayerPrefs local LOCAL_DATA_KEY = { SDK_UID = "SDK_UID", AUDIO_MUSIC_VOLUME = "AUDIO_MUSIC_VOLUME", AUDIO_EFFECT_VOLUME = "AUDIO_EFFECT_VOLUME", SELECTED_LANGUAGE = "SELECTED_LANGUAGE", GM_SHOW_FLOATING_ICON = "GM_SHOW_FLOATING_ICON", MESSAGE_BOX_SHOW_TODAY = "MESSAGE_BOX_SHOW_TODAY", GAME_QUALITY_LEVEL = "GAME_QUALITY_LEVEL", -- 游戏设置品质等级 LAST_LOGIN_URL = "LAST_LOGIN_URL", LAST_LOGIN_NAME = "LAST_LOGIN_NAME", LAST_LOGIN_IP = "LAST_LOGIN_IP", ACCOUNT_INFO = "ACCOUNT_INFO", SDK_LOGIN_TYPE = "SDK_LOGIN_TYPE", NEED_UPDATE = "NEED_UPDATE", -- 需要更新 IOS_ORDER_ID = "IOS_ORDER_ID", IOS_PAY_INFO = "IOS_PAY_INFO", SHAKE_MODE = "SHAKE_MODE", -- 震动模式 SAVE_POWER_MODE = "SAVE_POWER_MODE", -- 省电模式 LAST_MAIL_ID = "LAST_MAIL_ID", IS_NEW_PLAYER = "IS_NEW_PLAYER", DISTINCT_ID = "DISTINCT_ID", LAST_LOGIN_TIME = "LAST_LOGIN_TIME", } LocalData.KEYS = LOCAL_DATA_KEY function LocalData:save() if EDITOR_MODE then Logger.logHighlight("save data") end if self.dirty then self.dirty = false PlayerPrefs.Save() end end function LocalData:setString(key, value) self.dirty = true PlayerPrefs.SetString(key, value) end function LocalData:getString(key, defaultValue) if defaultValue then return PlayerPrefs.GetString(key, defaultValue) else return PlayerPrefs.GetString(key) end end function LocalData:setInt(key, value) self.dirty = true PlayerPrefs.SetInt(key, value) end function LocalData:getInt(key, defaultValue) if defaultValue then return PlayerPrefs.GetInt(key, defaultValue) else return PlayerPrefs.GetInt(key) end end function LocalData:setFloat(key, value) self.dirty = true PlayerPrefs.SetFloat(key, value) end function LocalData:getFloat(key, defaultValue) if defaultValue then return PlayerPrefs.GetFloat(key, defaultValue) else return PlayerPrefs.GetFloat(key) end end function LocalData:hasKey(key) return PlayerPrefs.HasKey(key) end function LocalData:delKey(key) self.dirty = true PlayerPrefs.DeleteKey(key) end -- 跟角色挂钩的唯一id function LocalData:getRoleKey(key) local uid = DataManager.PlayerData:getUid() if uid == "" then Logger.logError("check roleid error!") end return key .. uid end --------------Implement----------------- function LocalData:getAudioMusicVolume() return self:getFloat(LOCAL_DATA_KEY.AUDIO_MUSIC_VOLUME, 1) end function LocalData:setAudioMusicVolume(value) self:setFloat(LOCAL_DATA_KEY.AUDIO_MUSIC_VOLUME, value) end function LocalData:getAudioEffectVolume() return self:getFloat(LOCAL_DATA_KEY.AUDIO_EFFECT_VOLUME, 1) end function LocalData:setAudioEffectVolume(value) self:setFloat(LOCAL_DATA_KEY.AUDIO_EFFECT_VOLUME, value) end function LocalData:getSelectedLanguage() return self:getString(LOCAL_DATA_KEY.SELECTED_LANGUAGE, "") end function LocalData:setSelectedLanguage(value) self:setString(LOCAL_DATA_KEY.SELECTED_LANGUAGE, value) end function LocalData:getGMShowFloatingIcon() return self:getInt(LOCAL_DATA_KEY.GM_SHOW_FLOATING_ICON, 0) == 1 end function LocalData:setGMShowFloatingIcon(value) self:setInt(LOCAL_DATA_KEY.GM_SHOW_FLOATING_ICON, value) end function LocalData:getMessageBoxShowTodayTime(key) return self:getInt(LOCAL_DATA_KEY.MESSAGE_BOX_SHOW_TODAY .. key, 0) end function LocalData:setMessageBoxShowTodayTime(key, value) self:setInt(LOCAL_DATA_KEY.MESSAGE_BOX_SHOW_TODAY .. key, value) end function LocalData:getGameQualityLevel() return self:getInt(LOCAL_DATA_KEY.GAME_QUALITY_LEVEL, 0) end function LocalData:setGameQualityLevel(level) self:setInt(LOCAL_DATA_KEY.GAME_QUALITY_LEVEL, level) end function LocalData:setTodayFirst(new) self.isTodayFirst = new end function LocalData:getTodayFirst() return self.isTodayFirst or false end function LocalData:setNeedUpdate(value) value = value or "0.0.0" self:setString(LOCAL_DATA_KEY.NEED_UPDATE, value) end function LocalData:getNeedUpdate() self:getString(LOCAL_DATA_KEY.NEED_UPDATE, "0.0.0") end function LocalData:setIosPayInfo(iosPayInfo) iosPayInfo = iosPayInfo or {} local str = json.encode(iosPayInfo) self:setString(LOCAL_DATA_KEY.IOS_PAY_INFO, str) end function LocalData:getIosPayInfo() local str = self:getString(LOCAL_DATA_KEY.IOS_PAY_INFO, "") if str == nil or str == "" then return {} else local iosPayInfo = json.decode(str) if iosPayInfo then return iosPayInfo else return {} end end end function LocalData:setIosOrders(iosOrders) iosOrders = iosOrders or {} local str = json.encode(iosOrders) self:setString(LOCAL_DATA_KEY.IOS_ORDER_ID, str) end function LocalData:getIosOrders() local str = self:getString(LOCAL_DATA_KEY.IOS_ORDER_ID, "") if str == nil or str == "" then return {} else local iosOrders = json.decode(str) if iosOrders then return iosOrders else return {} end end end function LocalData:setLastLoginName(name) name = name or "" self:setString(LOCAL_DATA_KEY.LAST_LOGIN_NAME, name) end function LocalData:getLastLoginName() return self:getString(LOCAL_DATA_KEY.LAST_LOGIN_NAME, "") end function LocalData:setShakeMode(value) -- 0-close 1-open self:setInt(self:getString(LOCAL_DATA_KEY.SHAKE_MODE), value) end function LocalData:getShakeMode() self:getInt(self:getString(LOCAL_DATA_KEY.SHAKE_MODE), 1) end function LocalData:setSavePowerMode(value) -- 0-close 1-open self:setInt(self:getString(LOCAL_DATA_KEY.SAVE_POWER_MODE), value) end function LocalData:getSavePowerMode() self:getInt(self:getString(LOCAL_DATA_KEY.SAVE_POWER_MODE), 1) end function LocalData:getLastMailId() return self:getInt(LOCAL_DATA_KEY.LAST_MAIL_ID, 0) end function LocalData:setLastMailId(id) if not id then return end self:setInt(LOCAL_DATA_KEY.LAST_MAIL_ID, id) end function LocalData:getAccountInfo() local info = json.decode(self:getString(LOCAL_DATA_KEY.ACCOUNT_INFO, "{}")) return info end function LocalData:setAccountInfo(info) if not info then return end local str = json.encode(info) self:setString(LOCAL_DATA_KEY.ACCOUNT_INFO, str) end function LocalData:setLastLoginIp(ip) ip = ip or "" self:setString(LOCAL_DATA_KEY.LAST_LOGIN_IP, ip) end function LocalData:getLastLoginIp() return self:getString(LOCAL_DATA_KEY.LAST_LOGIN_IP, "") end function LocalData:getIsNewPlayer() return self:getInt(LOCAL_DATA_KEY.IS_NEW_PLAYER, 0) == 0 end function LocalData:setNotNewPlayer() return self:setInt(LOCAL_DATA_KEY.IS_NEW_PLAYER, 1) end function LocalData:setDistinctId(id) self:setString(LOCAL_DATA_KEY.DISTINCT_ID, id or "") end function LocalData:getDistinctId() return self:getString(LOCAL_DATA_KEY.DISTINCT_ID, "") end function LocalData:setLastLoginTime() end return LocalData