| using System; | 
| using System.Collections.Generic; | 
| using System.Linq; | 
| using System.Text; | 
| using UnityEngine; | 
|   | 
|   | 
| public class SettingMgr : Singleton<SettingMgr> | 
|   | 
| { | 
|   | 
|     public string accountKey = ""; | 
|     public StringBuilder accountSetStr = new StringBuilder(); | 
|   | 
|     public Action LocalSaveOpenEvent; | 
|   | 
|     public void SetIsRecordData(string key,bool isClear = false) | 
|     { | 
|         if (isClear) | 
|         { | 
|             LocalSave.DeleteAll(); | 
|         } | 
|   | 
|         accountKey = key; | 
|   | 
|         if (!PlayerPrefs.HasKey(key)) | 
|         { | 
|             // #region 初始化挂机设置 | 
|             // HangUpSetModel.Instance.SetHpSet(60); | 
|             // HangUpSetModel.Instance.SetBoolSetStr(HangUpAutoBoolType.curFixedScreen,true); | 
|             // HangUpSetModel.Instance.SetBoolSetStr(HangUpAutoBoolType.curFollowScreen,false); | 
|             // HangUpSetModel.Instance.SetBoolSetStr(HangUpAutoBoolType.whiteEquip, true); | 
|             // HangUpSetModel.Instance.SetBoolSetStr(HangUpAutoBoolType.purpleEquip, true); | 
|             // HangUpSetModel.Instance.SetBoolSetStr(HangUpAutoBoolType.gem, true); | 
|             // HangUpSetModel.Instance.SetBoolSetStr(HangUpAutoBoolType.drug, true); | 
|             // HangUpSetModel.Instance.SetBoolSetStr(HangUpAutoBoolType.necklaces, true); | 
|             // HangUpSetModel.Instance.SetBoolSetStr(HangUpAutoBoolType.coins, true); | 
|             // HangUpSetModel.Instance.SetBoolSetStr(HangUpAutoBoolType.other, true); | 
|             // HangUpSetModel.Instance.SetBoolSetStr(HangUpAutoBoolType.isAutoDrop, true); | 
|             // HangUpSetModel.Instance.SetBoolSetStr(HangUpAutoBoolType.isAutoHangUp,true); | 
|             // HangUpSetModel.Instance.SetBoolSetStr(HangUpAutoBoolType.isAutoBuyDrug, true); | 
|             // HangUpSetModel.Instance.SetBoolSetStr(HangUpAutoBoolType.isAutoSell, true); | 
|             // HangUpSetModel.Instance.SetBoolSetStr(HangUpAutoBoolType.isAutoDevour, true); | 
|             // HangUpSetModel.Instance.SetBoolSetStr(HangUpAutoBoolType.isAutoReborn, false); | 
|             // #endregion | 
|   | 
|             #region 初始化系统设置 | 
|             //SystemSetting.Instance.SetSystemSettingSwitch(SystemSwitch.OtherPlayer, false); | 
|             //SystemSetting.Instance.SetSystemSettingSwitch(SystemSwitch.HideMonster, false); | 
|             #endregion | 
|   | 
|             // #region 初始化聊天设置 | 
|             // ChatSetting.Instance.SetBoolSetStr(ChatBoolType.ChannelSystem, false); | 
|             // ChatSetting.Instance.SetBoolSetStr(ChatBoolType.ChannelWorld, true); | 
|             // ChatSetting.Instance.SetBoolSetStr(ChatBoolType.ChannelATeam, true); | 
|             // ChatSetting.Instance.SetBoolSetStr(ChatBoolType.ChannelTeam, true); | 
|             // ChatSetting.Instance.SetBoolSetStr(ChatBoolType.ChannelBugle, true); | 
|             // ChatSetting.Instance.SetBoolSetStr(ChatBoolType.ChannelGrad, true); | 
|             // ChatSetting.Instance.SetBoolSetStr(ChatBoolType.ChannelArea, true); | 
|   | 
|             // ChatSetting.Instance.SetBoolSetStr(ChatBoolType.Voice1, true); | 
|             // ChatSetting.Instance.SetBoolSetStr(ChatBoolType.Voice2, false); | 
|             // ChatSetting.Instance.SetBoolSetStr(ChatBoolType.Voice3, false); | 
|   | 
|             // ChatSetting.Instance.SetBoolSetStr(ChatBoolType.GradVoiceWifi, true); | 
|             // ChatSetting.Instance.SetBoolSetStr(ChatBoolType.PrivateChatVoiceWifi, true); | 
|             // ChatSetting.Instance.SetBoolSetStr(ChatBoolType.TeamVoiceWifi, true); | 
|             // ChatSetting.Instance.SetBoolSetStr(ChatBoolType.WorldVoiceWifi, false); | 
|             // ChatSetting.Instance.SetBoolSetStr(ChatBoolType.AreaVoiceWifi, false); | 
|   | 
|             // ChatSetting.Instance.SetBoolSetStr(ChatBoolType.GradVoice4G, false); | 
|             // ChatSetting.Instance.SetBoolSetStr(ChatBoolType.PrivatChatVoice4G, true); | 
|             // ChatSetting.Instance.SetBoolSetStr(ChatBoolType.TeamVoice4G, false); | 
|             // ChatSetting.Instance.SetBoolSetStr(ChatBoolType.WorldVoice4G, false); | 
|             // ChatSetting.Instance.SetBoolSetStr(ChatBoolType.AreaVoice4G, false); | 
|             // #endregion | 
|         } | 
|   | 
|         // HangUpSetModel.Instance.GetLoginHpSet(); | 
|         // HangUpSetModel.Instance.GetLoginBoolSet(); | 
|         // ChatSetting.Instance.GetLoginBoolSet(); | 
|   | 
|         if (LocalSaveOpenEvent != null) | 
|             LocalSaveOpenEvent(); | 
|     } | 
|   | 
|     public void SetAccountSetStr(string key,string value) | 
|     { | 
|         accountSetStr.Length = 0; | 
|         if (!IsHaveKey(key,value)) | 
|         { | 
|             accountSetStr.Append(key + "_" + value + "|"); | 
|             LocalSave.SetString(accountKey, accountSetStr.ToString()); | 
|         } | 
|         else | 
|         { | 
|             LocalSave.SetString(accountKey, accountSetStr.ToString()); | 
|         } | 
|   | 
|     } | 
|   | 
|     private string[] infoKeyValue; | 
|     private string[] setInfos; | 
|     public bool IsHaveKey(string key,string value) | 
|     { | 
|         infoKeyValue = null; | 
|         setInfos = null; | 
|         accountSetStr.Append(LocalSave.GetString(accountKey)); | 
|         setInfos = LocalSave.GetString(accountKey).Split('|'); | 
|         int length = setInfos.Length; | 
|         int i = 0; | 
|         for (i = 0; i < length; i++) | 
|         { | 
|             if (setInfos[i].Length > 0) | 
|             { | 
|                 infoKeyValue = setInfos[i].Split('_'); | 
|                 if (infoKeyValue[0] == key) | 
|                 { | 
|                     string s = infoKeyValue[0] + "_" + value; | 
|                     accountSetStr = accountSetStr.Replace(setInfos[i], s); | 
|                     return true; | 
|                 } | 
|             } | 
|         } | 
|         return false; | 
|     } | 
|   | 
|     /// <summary> | 
|     /// 得到bool型设置的value值 | 
|     /// </summary> | 
|     /// <param name="key"></param> | 
|     /// <returns></returns> | 
|     public bool GetAccountSetBoolInfo(string key) | 
|     { | 
|         setInfos = null; | 
|         setInfos = LocalSave.GetString(accountKey).Split('|'); | 
|   | 
|         int length = setInfos.Length; | 
|         int i = 0; | 
|         for (i = 0; i < length; i++) | 
|         { | 
|             if (setInfos[i].Length > 0) | 
|             { | 
|                 infoKeyValue = setInfos[i].Split('_'); | 
|                 if (infoKeyValue[0] == key) | 
|                 { | 
|                     bool value; | 
|                     bool result = bool.TryParse(infoKeyValue[1].Trim(),out value); | 
|                     if(result) | 
|                     { | 
|                         return value; | 
|                     } | 
|                 } | 
|             } | 
|         } | 
|         return false; | 
|     } | 
|   | 
|     /// <summary> | 
|     /// 得到int型设置的value值 | 
|     /// </summary> | 
|     /// <param name="key"></param> | 
|     /// <returns></returns> | 
|     public int GetAccountSetIntInfo(string key) | 
|     { | 
|         setInfos = null; | 
|         setInfos = LocalSave.GetString(accountKey).Split('|'); | 
|         int length = setInfos.Length; | 
|         int i = 0; | 
|         for (i = 0; i < length; i++) | 
|         { | 
|             if (setInfos[i].Length > 0) | 
|             { | 
|                 infoKeyValue = setInfos[i].Split('_'); | 
|                 if (infoKeyValue[0] == key) | 
|                 { | 
|                     int value = 0; | 
|                     bool isChange = int.TryParse(infoKeyValue[1],out value); | 
|                     if(isChange) | 
|                     { | 
|                         return value; | 
|                     } | 
|                     else | 
|                     { | 
|                         return -1; | 
|                     } | 
|                 } | 
|             } | 
|         } | 
|         return -1; | 
|     } | 
|   | 
|     /// <summary> | 
|     /// 得到float型设置的value值 | 
|     /// </summary> | 
|     /// <param name="key"></param> | 
|     /// <returns></returns> | 
|   | 
|     public float GetAccountSetFloatInfo(string key,float _default=0f) | 
|     { | 
|         if (string.IsNullOrEmpty(accountKey)) return _default; | 
|   | 
|         setInfos = null; | 
|         setInfos = LocalSave.GetString(accountKey).Split('|'); | 
|         int length = setInfos.Length; | 
|         int i = 0; | 
|         for (i = 0; i < length; i++) | 
|         { | 
|             if (setInfos[i].Length > 0) | 
|             { | 
|                 infoKeyValue = setInfos[i].Split('_'); | 
|                 if (infoKeyValue[0] == key) | 
|                 { | 
|                     float value = 0; | 
|                     bool isChange = float.TryParse(infoKeyValue[1], out value); | 
|                     if (isChange) | 
|                     { | 
|                         return value; | 
|                     } | 
|                     else | 
|                     { | 
|                         return (float)_default; | 
|                     } | 
|                 } | 
|             } | 
|         } | 
|         return (float)_default; | 
|     } | 
|   | 
| } |