LocalSaveProxy = class('LocalSaveProxy', pm.Proxy) LocalSaveProxy.Instance = nil; LocalSaveProxy.NAME = "LocalSaveProxy" LocalSaveProxy.SAVE_KEY = { DontShowAgain = "DontShowAgain", ExchangeSearchHistory = "ExchangeSearchHistory", PhotoFilterSetting = "PhotographPanelFilters_%d", LastTraceQuestId = "LastTraceQuestId", Setting = "Setting", MainViewChatTweenLevel = "MainViewChatTweenLevel", --主界面左下角聊天框大小 MainViewAutoAimMonster = "MainViewAutoAimMonster", --主界面右下角鎖定魔物 MainViewBooth = "MainViewBooth", --主界面擺攤 BossView_ShowMini = "BossView_ShowMini", SkipAnimation = "SkipAnimation", --跳過動畫 FashionPreviewTip_ShowOtherPart = "FashionPreviewTip_ShowOtherPart", FoodBuffOverrideNoticeShow = "FoodBuffOverrideNoticeShow" } function LocalSaveProxy:ctor(proxyName, data) self.proxyName = proxyName or LocalSaveProxy.NAME if(LocalSaveProxy.Instance == nil) then LocalSaveProxy.Instance = self end end --"不再提示類的數據解析.DontShowAgain儲存id,再由DontShowAgain_id為鍵值對應時間戳" function LocalSaveProxy:InitDontShowAgain() local serverTime = ServerTime.CurServerTime() if(self.dontShowAgains==nil and FunctionPlayerPrefs.Me():IsInited() and serverTime~=nil) then -- FunctionPlayerPrefs.Me():DeleteKey(LocalSaveProxy.SAVE_KEY.DontShowAgain) self.dontShowAgains = {} local dirty local str = FunctionPlayerPrefs.Me():GetString(LocalSaveProxy.SAVE_KEY.DontShowAgain,"") -- print(str) -- print(FunctionPlayerPrefs.Me().user) local t = loadstring("return {"..str.."}")() local id,timeStamp local ids = "" for i=1,#t do id = t[i] if(id~=nil and id~="") then str = FunctionPlayerPrefs.Me():GetString(LocalSaveProxy.SAVE_KEY.DontShowAgain.."_"..id,"") timeStamp = tonumber(str) if timeStamp and serverTime and (timeStamp==0 or timeStamp>serverTime) then self.dontShowAgains[id] = timeStamp -- print(id,timeStamp) ids = ids~="" and (ids..","..id) or id else dirty = true -- print("刪除",id,timeStamp) FunctionPlayerPrefs.Me():DeleteKey(LocalSaveProxy.SAVE_KEY.DontShowAgain.."_"..id) end end end self.dontShowAgains.ids = ids if(dirty) then --刪除過某個ID了 FunctionPlayerPrefs.Me():SetString(LocalSaveProxy.SAVE_KEY.DontShowAgain,self.dontShowAgains.ids) FunctionPlayerPrefs.Me():Save() end end end function LocalSaveProxy:AddDontShowAgain(id,days) local find = self:GetDontShowAgain(id) if(find==nil) then local timeStamp = (days~=0 and ServerTime.CurServerTime() + 24*3600*1000*days or 0) --ID目錄里加上 FunctionPlayerPrefs.Me():AppendString(LocalSaveProxy.SAVE_KEY.DontShowAgain,id,",") FunctionPlayerPrefs.Me():SetString(LocalSaveProxy.SAVE_KEY.DontShowAgain.."_"..id,timeStamp) FunctionPlayerPrefs.Me():Save() self.dontShowAgains[id] = timeStamp end end function LocalSaveProxy:GetDontShowAgain(id) return self.dontShowAgains and self.dontShowAgains[id] or nil end function LocalSaveProxy:InitExchangeSearchHistory() if FunctionPlayerPrefs.Me():IsInited() then self.exchangeSearchHistory = {} local str = FunctionPlayerPrefs.Me():GetString(LocalSaveProxy.SAVE_KEY.ExchangeSearchHistory , "") local history = string.split(str, "_") for i=1,#history do if history[i] ~= "" then table.insert(self.exchangeSearchHistory , tonumber(history[i]) ) end end -- print("LocalSaveProxy InitExchangeSearchHistory") -- TableUtil.Print(self.exchangeSearchHistory) end end function LocalSaveProxy:AddExchangeSearchHistory(itemId) -- print("LocalSaveProxy AddExchangeSearchHistory") if not self:IsInExchangeSearchHistory(itemId) then if #self.exchangeSearchHistory >= GameConfig.Exchange.MaxSearchLog then local offset = #self.exchangeSearchHistory - GameConfig.Exchange.MaxSearchLog + 1 for i = offset , 1 , -1 do table.remove(self.exchangeSearchHistory , i) end end table.insert(self.exchangeSearchHistory , itemId ) local str = tostring(self.exchangeSearchHistory[1]) for i=2,#self.exchangeSearchHistory do str = str.."_"..tostring(self.exchangeSearchHistory[i]) end FunctionPlayerPrefs.Me():SetString( LocalSaveProxy.SAVE_KEY.ExchangeSearchHistory , str) FunctionPlayerPrefs.Me():Save() end end function LocalSaveProxy:IsInExchangeSearchHistory(itemId) for i=1,#self.exchangeSearchHistory do if self.exchangeSearchHistory[i] == itemId then return true end end return false end function LocalSaveProxy:GetExchangeSearchHistory() if self.exchangeSearchHistory == nil then self:InitExchangeSearchHistory() end return self.exchangeSearchHistory end function LocalSaveProxy:savePhotoFilterSetting(list) local key = LocalSaveProxy.SAVE_KEY.PhotoFilterSetting for j=1,#list do local single = list[j] -- printRed("filtersid:",single.data.id,single:getIsSelect()) FunctionPlayerPrefs.Me():SetBool(string.format(key,single.id),single.isSelect) end FunctionPlayerPrefs.Me():Save() end function LocalSaveProxy:getPhotoFilterSetting(cells) local key = LocalSaveProxy.SAVE_KEY.PhotoFilterSetting local list = {} for j=1,#cells do local id = cells[j].data.id -- printRed("filtersid:",single.data.id,single:getIsSelect()) local bFilter = FunctionPlayerPrefs.Me():GetBool(string.format(key,id),true) list[id] = bFilter end return list end function LocalSaveProxy:getLastTraceQuestId() local key = LocalSaveProxy.SAVE_KEY.LastTraceQuestId return FunctionPlayerPrefs.Me():GetInt(key,-1) end function LocalSaveProxy:setLastTraceQuestId(value) if(value)then local key = LocalSaveProxy.SAVE_KEY.LastTraceQuestId FunctionPlayerPrefs.Me():SetInt(key,value) -- FunctionPlayerPrefs.Me():Save() end end function LocalSaveProxy:SaveSetting(setting) if not FunctionPlayerPrefs.Me():IsInited() then print("FunctionPlayerPrefs have not inited") return end FunctionPlayerPrefs.Me():DeleteKey(LocalSaveProxy.SAVE_KEY.Setting) for k,v in pairs(setting) do local str if type(v) == "table" then str = k.."={" if #v == 0 then str = str.."}" end for i=1,#v do if i ~= #v then str = str..v[i].."," else str = str..v[i].."}" end end else str = k.."="..tostring(v) end FunctionPlayerPrefs.Me():AppendString(LocalSaveProxy.SAVE_KEY.Setting , str ,",") end FunctionPlayerPrefs.Me():Save() end function LocalSaveProxy:LoadSetting() local str = FunctionPlayerPrefs.Me():GetString(LocalSaveProxy.SAVE_KEY.Setting,"") local t = loadstring("return {"..str.."}")() return t end function LocalSaveProxy:GetMainViewChatTweenLevel() local key = LocalSaveProxy.SAVE_KEY.MainViewChatTweenLevel return FunctionPlayerPrefs.Me():GetInt(key,2) end function LocalSaveProxy:SetMainViewChatTweenLevel(value) if value then local key = LocalSaveProxy.SAVE_KEY.MainViewChatTweenLevel FunctionPlayerPrefs.Me():SetInt(key,value) FunctionPlayerPrefs.Me():Save() end end function LocalSaveProxy:GetMainViewAutoAimMonster() local key = LocalSaveProxy.SAVE_KEY.MainViewAutoAimMonster return FunctionPlayerPrefs.Me():GetString(key,"") end function LocalSaveProxy:SetMainViewAutoAimMonster(value) if value then local key = LocalSaveProxy.SAVE_KEY.MainViewAutoAimMonster FunctionPlayerPrefs.Me():SetString(key,value) FunctionPlayerPrefs.Me():Save() end end function LocalSaveProxy:GetMainViewBooth() local key = LocalSaveProxy.SAVE_KEY.MainViewBooth return FunctionPlayerPrefs.Me():GetString(key, "") end -- 0關閉,1開啟 function LocalSaveProxy:SetMainViewBooth(value) if value then local sb = LuaStringBuilder.CreateAsTable() sb:Append(value) sb:Append("_") sb:Append(ServerTime.CurServerTime()) FunctionPlayerPrefs.Me():SetString(LocalSaveProxy.SAVE_KEY.MainViewBooth, sb:ToString()) FunctionPlayerPrefs.Me():Save() sb:Destroy() end end function LocalSaveProxy:SetBossView_ShowMini(value) FunctionPlayerPrefs.Me():SetBool(LocalSaveProxy.SAVE_KEY.BossView_ShowMini, value == true) FunctionPlayerPrefs.Me():Save() end function LocalSaveProxy:GetBossView_ShowMini() return FunctionPlayerPrefs.Me():GetBool(LocalSaveProxy.SAVE_KEY.BossView_ShowMini, true) end function LocalSaveProxy:SetSkipAnimation(type, value) if type then local key = LocalSaveProxy.SAVE_KEY.SkipAnimation.."_"..type FunctionPlayerPrefs.Me():SetBool(key, value) FunctionPlayerPrefs.Me():Save() end end function LocalSaveProxy:GetSkipAnimation(type) return FunctionPlayerPrefs.Me():GetBool(LocalSaveProxy.SAVE_KEY.SkipAnimation.."_"..type, false) end function LocalSaveProxy:SetFashionPreviewTip_ShowOtherPart(value) FunctionPlayerPrefs.Me():SetBool(LocalSaveProxy.SAVE_KEY.FashionPreviewTip_ShowOtherPart, value == true) FunctionPlayerPrefs.Me():Save() end function LocalSaveProxy:GetFashionPreviewTip_ShowOtherPart(value) return FunctionPlayerPrefs.Me():GetBool(LocalSaveProxy.SAVE_KEY.FashionPreviewTip_ShowOtherPart, true) end function LocalSaveProxy:SetFoodBuffOverrideNoticeShow(value) FunctionPlayerPrefs.Me():SetBool(LocalSaveProxy.SAVE_KEY.FoodBuffOverrideNoticeShow, value == true) FunctionPlayerPrefs.Me():Save() end function LocalSaveProxy:GetFoodBuffOverrideNoticeShow(value) return FunctionPlayerPrefs.Me():GetBool(LocalSaveProxy.SAVE_KEY.FoodBuffOverrideNoticeShow, true) end