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; 
 | 
    } 
 | 
  
 | 
} 
 |