using System; using System.Collections.Generic; using System.Linq; using System.Text; using Thousandto.Cfg.Data; using Thousandto.Code.Center; namespace Thousandto.Code.Logic { /// /// 角色设置 /// public class RoleSetting : SettingProcessBase { #region//成员变量 //设置自动释放xp技能的等级 private int _autoXpLevel = -1; public int AutoXPLevel { get { if (_autoXpLevel < 0) { var dg = DeclareGlobal.Get(1857); if(dg != null) int.TryParse(dg.Params, out _autoXpLevel); if (_autoXpLevel < 0) _autoXpLevel = 10; } return _autoXpLevel; } } //角色设置 private GameRoleSetting _roleSetting = new GameRoleSetting(); #endregion #region//属性 public ulong RoleID { get { return _roleSetting.RoleID; } set { if (_roleSetting.RoleID != value) { _roleSetting.SaveAll(); _roleSetting.RoleID = value; _roleSetting.ReadAll(); RefreshRoleToGameSetting(); } } } #endregion #region//继承父类函数,设置默认配置 protected override void OnRegisterSettingChangedHandler() { base.OnRegisterSettingChangedHandler(); AddSettingChangedHandler(GameSettingKeyCode.MandateUseXPSkill, OnMandateUseXPSkillChanged); AddSettingChangedHandler(GameSettingKeyCode.MandateUseXPSkill_LevelSet, OnMandateUseXPSkillLevelSetChanged); } protected override void OnUninitializeBefore() { _roleSetting.SaveAll(); base.OnUninitializeBefore(); } #endregion #region//公共函数 public void SaveData() { _roleSetting.SaveAll(); } public void OnRoleLevelChanged(int level) { if (level >= AutoXPLevel) { if (GameCenter.GameSetting.GetSetting(GameSettingKeyCode.MandateUseXPSkill_LevelSet) <= 0) { GameCenter.PushFixEvent(Global.LogicEventDefine.EID_EVENT_SETAUTOUSE_FLYSWORD_SKILL, true); GameCenter.GameSetting.SetSetting(GameSettingKeyCode.MandateUseXPSkill, 1); GameCenter.GameSetting.SetSetting(GameSettingKeyCode.MandateUseXPSkill_LevelSet, 1); GameCenter.LuaSystem.Adaptor.RestartMandate(); } } } #endregion #region //配置改变后的处理函数 //自动增加挂机时间 public void OnMandateUseXPSkillChanged(int value) { _roleSetting.Set((int)GameSettingKeyCode.MandateUseXPSkill, value, true, true); GameCenter.LuaSystem.Adaptor.RestartMandate(); } public void OnMandateUseXPSkillLevelSetChanged(int value) { _roleSetting.Set((int)GameSettingKeyCode.MandateUseXPSkill_LevelSet, value, true, true); } #endregion #region//从角色刷新到Game Setting中 private void RefreshRoleToGameSetting() { GameSettingCore.Set(GameSettingKeyCode.MandateUseXPSkill, _roleSetting.Get((int)GameSettingKeyCode.MandateUseXPSkill), true, false); GameSettingCore.Set(GameSettingKeyCode.MandateUseXPSkill_LevelSet, _roleSetting.Get((int)GameSettingKeyCode.MandateUseXPSkill_LevelSet), true, false); } #endregion } }