少年修仙传客户端代码仓库
client_linchunjie
2018-10-18 f93c57bfd57f97e78c3a00a29f302f5e8c83cdee
System/SystemSetting/SettingMgr.cs
@@ -1,230 +1,228 @@
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(80);
            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,false);
            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.SetSoundVolume(1);
            SystemSetting.Instance.SetSoundEffect(1);
            SystemSetting.Instance.SetSystemSettingSwitch(SystemSwitch.OtherPlayer, false);
            SystemSetting.Instance.SetSystemSettingSwitch(SystemSwitch.HideMonster, false);
            #endregion
            #region 初始化聊天设置
            ChatSetting.Instance.SetBoolSetStr(ChatBoolType.ChannelSystem, true);
            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;
    }
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(80);
            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,false);
            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, true);
            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;
    }
}