少年修仙传客户端代码仓库
client_Zxw
2018-08-25 eec5d6d844ddc23eca705ddf3dff9d4a2140f701
Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
28个文件已修改
474 ■■■■ 已修改文件
Core/GameEngine/Model/ConfigManager.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0428_tagPlayerRideHorse.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/H06_PlayerVsNPC/DTC0614_tagUseSkillPos.cs 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HB4_Fight/DTCB401_tagMCSkillHurtList.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/AI/HeroAI_Auto.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/AI/HeroAI_KillUntilDie.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/HeroBehaviour.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/Skill/AttackHandler.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/Skill/SoBodyControl.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/State/SMB/SMB_Base.cs 53 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GAStaticDefine.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GA_Hero.cs 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GActorFight.cs 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GActorPlayerBase.cs 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/PreFightMission.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/PreciousItemGetBehaviour.cs 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/NewBieGuidance/NewBieCenter.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/SystemSetting/SystemSetWin.cs 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Team/TeamPrepareWin.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/TreasureCyclicScroll.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/TreasureModel.cs 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Vip/VipRechargeWin.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Welfare/MultipleRealmPointModel.cs 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/WindowBase/WindowCenter.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/EnumHelper.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/MathUtility.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/ResolutionUtility.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/RuntimeLogUtility.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/ConfigManager.cs
@@ -478,6 +478,7 @@
    {
        if (isPlaying && _task.state == TaskState.ReadFileFailure)
        {
            Thread.Sleep(30);
            ReadFile(_task, OnEndReadFile<T>);
        }
        else
@@ -493,6 +494,7 @@
        if (isPlaying && _task.state == TaskState.ParseFailure)
        {
            Debug.LogFormat("配置表解析失败:{0}", _task.taskName);
            Thread.Sleep(30);
            ReadFile(_task, OnEndReadFile<T>);
        }
    }
Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0428_tagPlayerRideHorse.cs
@@ -2,7 +2,7 @@
using TableConfig;
using Snxxz.UI;
//04 28 玩家上马#tagPlayerRideHorse
//04 28 �������#tagPlayerRideHorse
@@ -32,7 +32,9 @@
                return;
            }
            if (_hero == null || _hero.MovingState == E_MovingState.Ride)
            if (_hero == null
             || _hero.MovingState == E_MovingState.Ride
             || _hero.IsPolyMorph)
            {
                return;
            }
Core/NetworkPackage/DTCFile/ServerPack/H06_PlayerVsNPC/DTC0614_tagUseSkillPos.cs
@@ -191,14 +191,21 @@
                        if (_attacker is GA_Player)
                        {
                            var _hero = _cTarget as GA_Hero;
                            if (PlayerDatas.Instance.extersion.bossState == 1)
                            {
                                GA_Hero _hero = PlayerDatas.Instance.hero;
                                if (_hero.SelectTarget == null
                                 || _hero.SelectTarget is GActorNpcFight)
                                {
                                    _hero.SelectTarget = _hero.LockTarget = _attacker;
                                }
                            }
                            if (_hero != null && _hero.MovingState == E_MovingState.Ride)
                            {
                                DTC0428_tagPlayerRideHorse.Send_tagPlayerRideHorse(false);
                                _hero.SwitchHorse(0);
                            }
                        }
                    }
@@ -282,7 +289,7 @@
                                if (AttackHandler.CheckPull(_attacker, _cTarget, 0))
                                {
                                    _cTarget.StartBeatBack(0, MathUtility.ForwardXZ(_cTarget.Pos, _attacker.Pos));
                                    _cTarget.StartBeatBack(_attacker.ServerInstID, 0, MathUtility.ForwardXZ(_cTarget.Pos, _attacker.Pos));
                                }
                            }
@@ -557,6 +564,16 @@
                {
                    GAMgr.Instance.OnPlayerSyncCountChange();
                }
                if (_attacker is GA_Player)
                {
                    var _hero = _cTarget as GA_Hero;
                    if (_hero != null && _hero.MovingState == E_MovingState.Ride)
                    {
                        DTC0428_tagPlayerRideHorse.Send_tagPlayerRideHorse(false);
                        _hero.SwitchHorse(0);
                    }
                }
            }
            else if (_attacker.ServerInstID == PlayerDatas.Instance.PlayerId)
            {
@@ -622,7 +639,7 @@
                    if (AttackHandler.CheckPull(_attacker, _cTarget, 0))
                    {
                        _cTarget.StartBeatBack(0, MathUtility.ForwardXZ(_cTarget.Pos, _attacker.Pos));
                        _cTarget.StartBeatBack(_attacker.ServerInstID, 0, MathUtility.ForwardXZ(_cTarget.Pos, _attacker.Pos));
                    }
                    if (_sTarget.HurtHP != 0)
Core/NetworkPackage/DTCFile/ServerPack/HB4_Fight/DTCB401_tagMCSkillHurtList.cs
@@ -217,7 +217,7 @@
                    if (AttackHandler.CheckPull(_attacker, _cTarget, 0))
                    {
                        _cTarget.StartBeatBack(0, MathUtility.ForwardXZ(_cTarget.Pos, _attacker.Pos));
                        _cTarget.StartBeatBack(_attacker.ServerInstID, 0, MathUtility.ForwardXZ(_cTarget.Pos, _attacker.Pos));
                    }
                    if (_sTarget.HurtHP != 0)
Fight/Actor/AI/HeroAI_Auto.cs
@@ -109,7 +109,7 @@
        UserInputHandler.OnCirclePanelTouched += OnActiveInterrupt;
        UserInputHandler.OnClickedFloor += OnClickFloor;
        GA_Hero.OnLockTargetChanged += OnLockTargetChanged;
        GA_Hero.OnUserClickSkill += OnUserClickSkill;
        HeroBehaviour.OnUserClickSkill += OnUserClickSkill;
        OnEnter();
    }
@@ -123,6 +123,11 @@
        }
        GA_Hero _hero = PlayerDatas.Instance.hero;
        if (_hero.IsPolyMorph)
        {
            return;
        }
        if (_hero.SelectTarget == _hero)
        {
@@ -216,7 +221,6 @@
                break;
            case 1:// 暂停状态
                if (m_NeedMoveToPos)
                {
                    if (StatusMgr.Instance.CanMove(PlayerDatas.Instance.PlayerId))
@@ -380,7 +384,7 @@
        }
        UserInputHandler.OnCirclePanelTouched -= OnActiveInterrupt;
        UserInputHandler.OnClickedFloor -= OnClickFloor;
        GA_Hero.OnUserClickSkill -= OnUserClickSkill;
        HeroBehaviour.OnUserClickSkill -= OnUserClickSkill;
        OnExit();
    }
Fight/Actor/AI/HeroAI_KillUntilDie.cs
@@ -57,7 +57,7 @@
        UserInputHandler.OnCirclePanelTouched += OnActiveInterrupt;
        UserInputHandler.OnClickedFloor += OnClickFloor;
        GA_Hero.OnUserClickSkill += OnUserClickSkill;
        HeroBehaviour.OnUserClickSkill += OnUserClickSkill;
        GA_Hero.OnLockTargetChanged += OnLockTargetChanged;
        HeroBehaviour.OnStartHandupAI += OnStartHandupAI;
        MapTransferUtility.s_OnHeroStartMoveToNPC += OnStartMoveToNpc;
@@ -258,7 +258,7 @@
    {
        UserInputHandler.OnCirclePanelTouched -= OnActiveInterrupt;
        UserInputHandler.OnClickedFloor -= OnClickFloor;
        GA_Hero.OnUserClickSkill -= OnUserClickSkill;
        HeroBehaviour.OnUserClickSkill -= OnUserClickSkill;
        GA_Hero.OnLockTargetChanged -= OnLockTargetChanged;
        HeroBehaviour.OnStartHandupAI -= OnStartHandupAI;
        MapTransferUtility.s_OnHeroStartMoveToNPC -= OnStartMoveToNpc;
Fight/Actor/HeroBehaviour.cs
@@ -17,6 +17,11 @@
    public static event UnityAction<int> onCastSkill;
    /// <summary>
    /// 当用户点击了技能按钮, 并切技能可以释放的时候调用
    /// </summary>
    public static event UnityAction<int> OnUserClickSkill;
    public enum E_BehaviourState
    {
        None,
@@ -75,6 +80,11 @@
         || MapArea.IsInMapArea(m_Hero.CurMapArea, MapArea.E_Type.RebornSafe))
        {
            SysNotifyMgr.Instance.ShowTip("NoFighting");
            return;
        }
        if (m_Hero.IsPolyMorph)
        {
            return;
        }
@@ -173,6 +183,11 @@
            _data.targetServerInstID = m_Hero.SelectTarget.ServerInstID;
            _data.defaultSkillID = m_WillUsedSkillID;
            m_Hero.aiHandler.currentType = E_HeroAIType.KillUntilDie;
        }
        if(OnUserClickSkill != null)
        {
            OnUserClickSkill(m_WillUsedSkillID);
        }
    }
@@ -724,6 +739,14 @@
                    // 人物, 非小怪不计算伤害,不生成客户端数据
                    if (_target.ActorType == GameObjType.gotPlayer)
                    {
                        GA_Player _player = _target as GA_Player;
                        if (_player != null)
                        {
                            if (_player.MovingState == E_MovingState.Ride)
                            {
                                _player.SwitchHorse(0);
                            }
                        }
                        continue;
                    }
Fight/Actor/Skill/AttackHandler.cs
@@ -122,7 +122,7 @@
            if (CheckPull(attacker, target, soConfig.bodyControlId))
            {
                target.StartBeatBack(soConfig.bodyControlId, MathUtility.ForwardXZ(target.Pos, attacker.Pos));
                target.StartBeatBack(attacker.ServerInstID, soConfig.bodyControlId, MathUtility.ForwardXZ(target.Pos, attacker.Pos));
            }
        }
@@ -1080,7 +1080,7 @@
            // 攻击者是玩家
            if (attacker.ActorType == GameObjType.gotPlayer)
            {
                return false;
                return _bodyControl.useForPlayer && target.CanPushedBack();
            }
            else if (attacker.ActorType == GameObjType.gotNPC)
            {
Fight/Actor/Skill/SoBodyControl.cs
@@ -7,4 +7,14 @@
    [Tooltip("表现的时间")]
    public float duration;// 移动时间
    [Tooltip("是否对玩家类型生效")]
    public bool useForPlayer = false;
    [Tooltip("是推还是拉, 打钩是推,不打钩是拉")]
    public bool pushOrPull = true;
    [Tooltip(@"限制位置, 以释放者为中心的偏移
               可以为负值")]
    public float limitDistance = 100;
}
Fight/Actor/State/SMB/SMB_Base.cs
@@ -91,6 +91,7 @@
    protected void AddToNpcPosList(GActorFight attacker, GActorFight target, int bodyControlId, Vector3 direction, List<NPCPos> npcPosList)
    {
        // Debug.LogFormat("{0} attack {1} ==================== 0", attacker.GetType().ToString(), target.GetType().ToString());
        if (PreFightMission.Instance.IsFinished() == false)
        {
            return;
@@ -103,10 +104,20 @@
        SoBodyControl _bodyControl = ScriptableObjectLoader.LoadSoBodyControl(bodyControlId);
        if (!_bodyControl.pushOrPull)
        {
            direction = -direction;
        }
        float _distance = _bodyControl.curve.keys[_bodyControl.curve.length - 1].time;
        Vector3 _checkPos = target.Pos;
        Vector3 _pullPosition = _checkPos + direction * _distance;
        if (!_bodyControl.pushOrPull)
        {
            _pullPosition = attacker.Pos + MathUtility.ForwardXZ(target.Pos, attacker.Pos) * 0.5f;
        }
        _checkPos.y = 0;
        _pullPosition.y = 0;
@@ -117,24 +128,36 @@
            _pullPosition = _hit.position;
        }
        // 只认主角导致的推逻辑. 如果是其他人的退不认
        if (target is GActorNpcFight)
        {
            if (attacker is GA_Player)
            {
                return;
            }
        }
        if (GActor.TryGetValidPos(_pullPosition, ref _checkPos))
        {
            if (target.ActorType == GameObjType.gotPlayer)
            {
                GActorPlayerBase _player = target as GActorPlayerBase;
                //Debug.Log("--------------------------- 8");
                if (_player.MovingState != E_MovingState.Ride)
                if (target is GA_Hero)
                {
                    //Debug.Log("--------------------------- 9");
                    CB402_tagCMNPCBeatBack _beatBack = new CB402_tagCMNPCBeatBack();
                    _beatBack.ObjType = (byte)GameObjType.gotPlayer;
                    _beatBack.Count = 1;
                    _beatBack.NPCPosList = new CB402_tagCMNPCBeatBack.tagCMNPCPos[1];
                    _beatBack.NPCPosList[0] = new CB402_tagCMNPCBeatBack.tagCMNPCPos();
                    _beatBack.NPCPosList[0].ObjID = (uint)target.ServerInstID;
                    _beatBack.NPCPosList[0].PosX = (ushort)(_checkPos.x * 2f + GA_Hero.MapOffset.x);
                    _beatBack.NPCPosList[0].PosY = (ushort)(_checkPos.z * 2f + GA_Hero.MapOffset.x);
                    GameNetSystem.Instance.SendInfo(_beatBack);
                    GActorPlayerBase _player = target as GActorPlayerBase;
                    //Debug.Log("--------------------------- 8");
                    if (_player.MovingState != E_MovingState.Ride)
                    {
                        // Debug.LogFormat("{0} attack {1} ==================== 9", attacker.GetType().ToString(), target.GetType().ToString());
                        CB402_tagCMNPCBeatBack _beatBack = new CB402_tagCMNPCBeatBack();
                        _beatBack.ObjType = (byte)GameObjType.gotPlayer;
                        _beatBack.Count = 1;
                        _beatBack.NPCPosList = new CB402_tagCMNPCBeatBack.tagCMNPCPos[1];
                        _beatBack.NPCPosList[0] = new CB402_tagCMNPCBeatBack.tagCMNPCPos();
                        _beatBack.NPCPosList[0].ObjID = (uint)target.ServerInstID;
                        _beatBack.NPCPosList[0].PosX = (ushort)(_checkPos.x * 2f + GA_Hero.MapOffset.x);
                        _beatBack.NPCPosList[0].PosY = (ushort)(_checkPos.z * 2f + GA_Hero.MapOffset.z);
                        GameNetSystem.Instance.SendInfo(_beatBack);
                    }
                }
                //else
                //{
@@ -146,8 +169,8 @@
                NPCPos _npcPos = new NPCPos
                {
                    objId = (int)target.ServerInstID,
                    posX = (int)(_checkPos.x * 2f),
                    posY = (int)(_checkPos.z * 2f)
                    posX = (int)(_checkPos.x * 2f + GA_Hero.MapOffset.x),
                    posY = (int)(_checkPos.z * 2f + GA_Hero.MapOffset.z)
                };
                npcPosList.Add(_npcPos);
            }
Fight/GameActor/GAStaticDefine.cs
@@ -389,8 +389,12 @@
                }
            }
            //Debug.LogFormat("{0} 攻击 {1}, 境界: {2} <=> {3}, 是否产生了压制: {4}",
            //    caster.ServerInstID, target.ServerInstID, _casterRealm, _targetRealm, _casterRealm > _targetRealm);
            if (attackType == (int)HurtAttackType.Suppress)
            {
                _casterRealm = 1;
                _targetRealm = 0;
                _pattern = (PopUpNum.Pattern)(((int)HurtAttackType.Normal - 1) * 3);
            }
            var popupInfo = new PopUpNum.PopupInfo()
            {
Fight/GameActor/GA_Hero.cs
@@ -24,10 +24,6 @@
    /// 当切换锁定目标的时候, 为空的时候id=0
    /// </summary>
    public static event UnityAction<uint> OnLockTargetChanged;
    /// <summary>
    /// 当用户点击了技能按钮, 并切技能可以释放的时候调用
    /// </summary>
    public static event UnityAction<int> OnUserClickSkill;
    public static event UnityAction<uint, string> OnKillPlayer;
    private GameObject m_Light;
@@ -506,7 +502,8 @@
            && !IsDaZuo()
            && State != E_ActorState.Roll
            && !s_MapSwitching
            && !heavenBattleModel.IsBattlePrepare;
            && !heavenBattleModel.IsBattlePrepare
            && !m_Beating;
    }
    public bool CanCastSkill()
@@ -519,7 +516,8 @@
            && State != E_ActorState.Roll
            && State != E_ActorState.Mocked
            && !s_MapSwitching
            && !heavenBattleModel.IsBattlePrepare;
            && !heavenBattleModel.IsBattlePrepare
            && !m_Beating;
    }
    public void StopAll()
@@ -719,11 +717,6 @@
        }
        Behaviour.StartKillUntilDieAI();
        if (OnUserClickSkill != null)
        {
            OnUserClickSkill(0);
        }
    }
    public void CastSkill(int skillID)
@@ -788,11 +781,6 @@
        }
        Behaviour.StartKillUntilDieAI(skillID);
        if (OnUserClickSkill != null)
        {
            OnUserClickSkill(skillID);
        }
    }
    #endregion
Fight/GameActor/GActorFight.cs
@@ -181,14 +181,26 @@
    private float m_BeatStartTime;
    protected bool m_Beating;
    private Vector3 m_BeatDirection;
    private bool m_PushOrPull;
    private uint m_AttackerSID;
    private float m_LimitDistance;
    public void StartBeatBack(int configID, Vector3 direction)
    public void StartBeatBack(uint attacker, int configID, Vector3 direction)
    {
        SoBodyControl _config = ScriptableObjectLoader.LoadSoBodyControl(configID);
        if (_config == null || _config.curve == null)
        {
            return;
        }
        m_AttackerSID = attacker;
        m_LimitDistance = _config.limitDistance;
        m_PushOrPull = _config.pushOrPull;
        if (!m_PushOrPull)
        {
            direction = -direction;
        }
        m_BeatDirection = direction;
@@ -237,6 +249,36 @@
        Vector3 _pos = m_StartBeatPos + _h + _v;
        Vector3 _end = _pos;
        GActor _attacker = GAMgr.Instance.GetBySID(m_AttackerSID);
        float _dis = MathUtility.DistanceSqrtXZ(_attacker.Pos, _end);
        if (m_PushOrPull)
        {
            if (MathUtility.DistanceSqrtXZ(_attacker.Pos, _end) > m_LimitDistance * m_LimitDistance)
            {
                _end = _attacker.Pos + m_BeatDirection * m_LimitDistance;
            }
        }
        else
        {
            Vector3 _limPos = _attacker.Pos;
            _limPos.y = 0;
            _limPos = _limPos - m_BeatDirection * m_LimitDistance;
            Vector3 _dir2 = (_end - _limPos).normalized;
            bool _isOp = MathUtility.OppositeDir(-m_BeatDirection, _dir2);
            bool _isLimDis = MathUtility.DistanceSqrtXZ(_attacker.Pos, _end) < m_LimitDistance * m_LimitDistance;
            if (_isOp
             || _isLimDis)
            {
                _end = _attacker.Pos - m_BeatDirection * m_LimitDistance;
                needSyncGroundHeight = true;
                m_Beating = false;
            }
        }
        Vector3 _position = m_StartBeatPos;
        _position.y = 0;
        _end.y = 0;
Fight/GameActor/GActorPlayerBase.cs
@@ -39,6 +39,7 @@
    protected HeadUpName m_HeadUpName = null;
    private int m_HorseActionType = 0;
    public int nextComAtkIndex = -1;
    public JobSetupConfig JobSetup { get; protected set; }
@@ -62,8 +63,6 @@
        }
    }
    public int nextComAtkIndex = -1;
    public void SwitchHeadNameBindNode(bool castingSkill)
    {
        // 角色被隐藏状态下不执行头顶名称切换逻辑
@@ -82,6 +81,87 @@
            {
                m_HeadUpName.target = MP_Name;
            }
        }
    }
    public bool IsPolyMorph { get; private set; }
    private GameObject m_SheepModel;
    private bool m_SheepIsDefaultNpc;
    public virtual void Polymorph(bool doOrNo)
    {
        IsPolyMorph = doOrNo;
        if (IsPolyMorph)
        {
            ChangeBinderToRoot();
            // 正在骑乘状态下
            if (MovingState == E_MovingState.Ride)
            {
                m_HorseModel.transform.position = Constants.Special_Hide_Position;
                SwitchHorse(0);
                DTC0428_tagPlayerRideHorse.Send_tagPlayerRideHorse(false);
            }
            else
            {
                m_ClothesModel.transform.position = Constants.Special_Hide_Position;
            }
            m_SheepIsDefaultNpc = false;
            var _p = InstanceResourcesLoader.LoadNpc(10101001);
            if (_p == null)
            {
                _p = InstanceResourcesLoader.LoadDefaultFightNPC();
                m_SheepIsDefaultNpc = true;
            }
            m_SheepModel = GameObjectPoolManager.Instance.RequestGameObject(_p);
            m_SheepModel.transform.SetParent(m_Root);
            var _a = m_SheepModel.GetComponent<Animator>();
            if (_a)
            {
                _a.enabled = true;
                _a.SetInteger(GAStaticDefine.Param_ActorInstID, (int)ClientInstID);
                m_ClothesAnimator.enabled = false;
                m_ClothesAnimator = _a;
            }
            if (ShowOrHide)
            {
                m_SheepModel.transform.localPosition = Vector3.zero;
            }
            else
            {
                m_SheepModel.transform.localPosition = Constants.Special_Hide_Position;
            }
            m_SheepModel.transform.localRotation = Quaternion.identity;
        }
        else
        {
            if (m_SheepModel)
            {
                if (m_SheepIsDefaultNpc)
                {
                    GameObjectPoolManager.Instance.ReleaseDefaultFightNPC(m_SheepModel);
                }
                else
                {
                    var _prefab = InstanceResourcesLoader.LoadNpc(10101001);
                    GameObjectPoolManager.Instance.ReleaseGameObject(_prefab, m_SheepModel);
                }
            }
            m_SheepModel = null;
            m_ClothesModel.transform.localPosition = Vector3.zero;
            ChangeBinderToClothes();
            m_ClothesAnimator = m_ClothesModel.GetComponent<Animator>();
            m_ClothesAnimator.enabled = true;
            m_ClothesAnimator.SetInteger(GAStaticDefine.Param_ActorInstID, (int)ClientInstID);
            m_ClothesAnimator.SetInteger(GAStaticDefine.Param_MoveState, (int)E_MovingState.Normal);
        }
    }
@@ -974,8 +1054,11 @@
            }
            if (ShowOrHide)
            {
                m_ClothesModel.transform.localPosition = Vector3.zero;
                m_ClothesModel.transform.localRotation = Quaternion.identity;
                if (!IsPolyMorph)
                {
                    m_ClothesModel.transform.localPosition = Vector3.zero;
                    m_ClothesModel.transform.localRotation = Quaternion.identity;
                }
            }
            else
            {
@@ -987,12 +1070,18 @@
            if (m_WingModel)
            {
                MovingState = E_MovingState.Fly;
                m_ClothesAnimator.SetInteger(GAStaticDefine.Param_MoveState, (int)E_MovingState.Fly);
                if (!IsPolyMorph)
                {
                    m_ClothesAnimator.SetInteger(GAStaticDefine.Param_MoveState, (int)E_MovingState.Fly);
                }
            }
            else
            {
                MovingState = E_MovingState.Normal;
                m_ClothesAnimator.SetInteger(GAStaticDefine.Param_MoveState, (int)E_MovingState.Normal);
                if (!IsPolyMorph)
                {
                    m_ClothesAnimator.SetInteger(GAStaticDefine.Param_MoveState, (int)E_MovingState.Normal);
                }
            }
            SwitchHeadNameBindNode(false);
Fight/PreFightMission.cs
@@ -902,7 +902,7 @@
             _model2.clickClosed = false;
             m_AfterAttackType = E_AfterAttackType.RefreshRock;
             GA_Hero.OnUserClickSkill += OnCastSkill;
             HeroBehaviour.OnUserClickSkill += OnCastSkill;
             _model2.onClose = null;
@@ -1135,7 +1135,7 @@
    private void OnCastSkill(int skillID)
    {
        GA_Hero.OnUserClickSkill -= OnCastSkill;
        HeroBehaviour.OnUserClickSkill -= OnCastSkill;
        if (m_AfterAttackType == E_AfterAttackType.RefreshRock)
        {
System/KnapSack/PreciousItemGetBehaviour.cs
@@ -43,7 +43,6 @@
        public void ShowItem()
        {
            m_PreciousItem.gameObject.SetActive(false);
            if (model.currentShowItem != default(PreciousItemGetModel.PreciousItem))
            {
                var itemModel = playerPack.GetItemModelByGUID(model.currentShowItem.guid);
@@ -62,6 +61,14 @@
                        m_PreciousItem.gameObject.SetActive(true);
                    }
                }
                else
                {
                    m_PreciousItem.gameObject.SetActive(false);
                }
            }
            else
            {
                m_PreciousItem.gameObject.SetActive(false);
            }
            model.isGetNewItem = false;
        }
System/NewBieGuidance/NewBieCenter.cs
@@ -193,7 +193,10 @@
            currentGuide = 0;
            WindowCenter.Instance.CloseImmediately<NewBieWin>();
            completeGuidesBuf.Add(guideRecord);
            if (!completeGuidesBuf.Contains(guideRecord))
            {
                completeGuidesBuf.Add(guideRecord);
            }
            var send = new CA222_tagCMSetGuideOK();
            send.GuideIndex = (byte)_id;
System/SystemSetting/SystemSetWin.cs
@@ -193,16 +193,14 @@
        private void SwitchGameFrame()
        {
            var gameFrame = SystemSetting.Instance.GetGameFrame();
            switch (gameFrame)
            if (gameFrame==GameFrame.HalfFrame)
            {
                case GameFrame.HalfFrame:
                    SystemSetting.Instance.SetGameFrame(GameFrame.FullFrame);
                    break;
                case GameFrame.FullFrame:
                    SystemSetting.Instance.SetGameFrame(GameFrame.HalfFrame);
                    break;
                default:
                    break;
                SystemSetting.Instance.SetGameFrame(GameFrame.FullFrame);
            }
            else
            {
                SystemSetting.Instance.SetGameFrame(GameFrame.HalfFrame);
            }
        }
System/Team/TeamPrepareWin.cs
@@ -34,6 +34,7 @@
        bool rejectManual = false;
        TeamModel model { get { return ModelCenter.Instance.GetModel<TeamModel>(); } }
        #region Built-in
        protected override void BindController()
        {
@@ -48,6 +49,11 @@
        protected override void OnPreOpen()
        {
            if (NewBieCenter.Instance.inGuiding)
            {
                NewBieCenter.Instance.FinishNewBieGuide(NewBieCenter.Instance.currentGuide);
            }
            rejectManual = false;
            if (!model.myTeam.iamCaptainer)
            {
@@ -187,7 +193,7 @@
        IEnumerator Co_DelayCloseWin()
        {
            yield return null;
            WindowCenter.Instance.Open<TeamPrepareWin>();
            WindowCenter.Instance.Close<TeamPrepareWin>();
        }
    }
System/Treasure/TreasureCyclicScroll.cs
@@ -136,9 +136,15 @@
                    achievementBehaviour.linerMove.from = achievementBehaviour.rectTransform.anchoredPosition;
                    var toY = achievementBehaviour.rectTransform.anchoredPosition.y + cellSize.y + spacing.y;
                    achievementBehaviour.linerMove.to = achievementBehaviour.rectTransform.anchoredPosition.SetY(toY);
                    achievementBehaviour.linerMove.duration = relocationTime;
                    achievementBehaviour.linerMove.Begin();
                    if (achievementBehaviour.linerMove.gameObject.activeInHierarchy)
                    {
                        achievementBehaviour.linerMove.Begin();
                    }
                    else
                    {
                        achievementBehaviour.linerMove.Stop();
                    }
                }
            }
        }
System/Treasure/TreasureModel.cs
@@ -245,6 +245,7 @@
            FuncOpen.Instance.OnFuncStateChangeEvent += OnFunctionStateChange;
            packageModel.RefreshItemCountAct += OnPackageItemChange;
            WindowCenter.Instance.windowAfterOpenEvent += OnWindowOpen;
            NewBieCenter.Instance.guideCompletedEvent += GuideComplete;
        }
        public override void UnInit()
@@ -252,6 +253,7 @@
            achievementModel.achievementProgressUpdateEvent -= OnAchievementProgressUpdate;
            achievementModel.achievementAwardableEvent -= OnAchievementAwardable;
            achievementModel.achievementCompletedEvent -= OnAchievementCompleted;
            NewBieCenter.Instance.guideCompletedEvent -= GuideComplete;
            DTC0721_tagMakeItemAnswer.MakeItemAnswerEvent -= OnGetSkillLevelUpResult;
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= OnTreasurePotentialSPChange;
@@ -392,7 +394,7 @@
            LocalSave.SetInt(StringUtility.Contact(_playerId, _type, "_TreasureUnlockShow"), _id);
        }
        public void SetTreasureStageShow(int _id,int _stage)
        public void SetTreasureStageShow(int _id, int _stage)
        {
            LocalSave.SetInt(StringUtility.Contact(PlayerDatas.Instance.baseData.PlayerID,
                "_TreasureStageShow_", _id), _stage);
@@ -525,17 +527,7 @@
                            newGotTreasureId = id;
                            treasureEntranceShowId = id;
                            var mapConfig = Config.Instance.Get<MapConfig>(PlayerDatas.Instance.baseData.MapID);
                            if (mapConfig.MapFBType == (int)MapType.OpenCountry)
                            {
                                if (WindowCenter.Instance.CheckOpen<MainInterfaceWin>())
                                {
                                    if (PreFightMission.Instance.IsFinished())
                                    {
                                        WindowCenter.Instance.Open<TreasureNewGotWin>();
                                    }
                                }
                            }
                            OpenTreasureNewGot();
                        }
                        if (treasureCollectingShowId == id)
@@ -845,13 +837,7 @@
        {
            if (_window is MainInterfaceWin)
            {
                if (newGotTreasureId != 0)
                {
                    if (PreFightMission.Instance.IsFinished())
                    {
                        WindowCenter.Instance.Open<TreasureNewGotWin>();
                    }
                }
                SnxxzGame.Instance.StartCoroutine(Co_OpenTreasureNewGot());
                if (needDisplayReguluLevelUp)
                {
                    CheckReguluPop();
@@ -859,6 +845,44 @@
            }
        }
        void GuideComplete(int _id)
        {
            SnxxzGame.Instance.StartCoroutine(Co_OpenTreasureNewGot());
        }
        IEnumerator Co_OpenTreasureNewGot()
        {
            yield return WaitingForSecondConst.WaitMS600;
            OpenTreasureNewGot();
        }
        public void CheckOpenTreasureNewGot()
        {
            SnxxzGame.Instance.StartCoroutine(Co_OpenTreasureNewGot());
        }
        private void OpenTreasureNewGot()
        {
            if (!(StageManager.Instance.CurrentStage is DungeonStage) || !serverInited)
            {
                return;
            }
            if (!PreFightMission.Instance.IsFinished() || newGotTreasureId == 0
                || NewBieCenter.Instance.inGuiding || !WindowCenter.Instance.CheckOpen<MainInterfaceWin>()
                || WindowCenter.Instance.ExitAnyFullScreenOrMaskWinLEqual(WindowType.Base)
                || WindowCenter.Instance.CheckOpen<TreasureNewGotWin>())
            {
                return;
            }
            var dungeonModel = ModelCenter.Instance.GetModel<DungeonModel>();
            var mapId = dungeonModel.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
            if (mapId == 41110)
            {
                return;
            }
            WindowCenter.Instance.Open<TreasureNewGotWin>();
        }
        private void UpdateSkillLevelUpRedpoint(int _treasureId)
        {
            if (treasures.ContainsKey(_treasureId))
System/Vip/VipRechargeWin.cs
@@ -133,6 +133,7 @@
            if (!WindowJumpMgr.Instance.IsJumpState)
            {
                WindowCenter.Instance.Open<MainInterfaceWin>();
                ModelCenter.Instance.GetModel<TreasureModel>().CheckOpenTreasureNewGot();
            }
        }
        #endregion
System/Welfare/MultipleRealmPointModel.cs
@@ -6,7 +6,7 @@
    public class MultipleRealmPointModel : Model, IBeforePlayerDataInitialize, IAfterPlayerDataInitialize, IPlayerLoginOk, IOpenServerActivity
    {
        public Redpoint multipleRed = new Redpoint(MainRedDot.REDPOINT_OPENSERVER, 20908);
        public string LocalRecord_Key = "MultipleRealmRecord";
        public string LocalRecord_Key;
        bool isNewDay = false;
        public event Action<int> onStateUpate;
@@ -14,7 +14,7 @@
        public override void Init()
        {
            OpenServerActivityCenter.Instance.Register(8, this);
            //StageManager.Instance.onStageLoadFinish += CheckReconnect;
        }
        public void OnBeforePlayerDataInitialize()
@@ -29,19 +29,19 @@
        public void OnPlayerLoginOk()
        {
            LocalRecord_Key = StringUtility.Contact(LocalRecord_Key, PlayerDatas.Instance.baseData.PlayerID);
            CheckShowRed();
            LocalRecord_Key = StringUtility.Contact("MultipleRealmRecord", PlayerDatas.Instance.baseData.PlayerID);
            OperationTimeHepler.Instance.operationStartEvent -= RefreshOperationState;
            OperationTimeHepler.Instance.operationStartEvent += RefreshOperationState;
            OperationTimeHepler.Instance.operationEndEvent -= RefreshOperationState;
            OperationTimeHepler.Instance.operationEndEvent += RefreshOperationState;
            OperationTimeHepler.Instance.operationServerCloseEvent -= RefreshOperationClose;
            OperationTimeHepler.Instance.operationServerCloseEvent += RefreshOperationClose;
            CheckShowRed();
        }
        public override void UnInit()
        {
            StageManager.Instance.onStageLoadFinish -= CheckReconnect;
        }
        public bool IsOpen
@@ -61,6 +61,15 @@
                return multipleRed.state == RedPointState.Simple;
            }
        }
        private void CheckReconnect()
        {
            if (!(StageManager.Instance.CurrentStage is DungeonStage))
            {
                CheckShowRed();
            }
        }
        private void RefreshOperationClose(Operation type)
        {
@@ -89,16 +98,20 @@
            if(!isNewDay)
            {
                if (!PlayerPrefs.HasKey(LocalRecord_Key))
                {
                    DebugEx.Log("设置记录时间:" + TimeUtility.ServerNow.Day);
                    LocalSave.SetInt(LocalRecord_Key, TimeUtility.ServerNow.Day);
                    isNewDay = true;
                }
                else
                {
                    DebugEx.Log("得到记录时间:" + LocalSave.GetInt(LocalRecord_Key));
                    if (TimeUtility.ServerNow.Day != LocalSave.GetInt(LocalRecord_Key))
                    {
                        isNewDay = true;
                        DebugEx.Log("设置记录时间:" + TimeUtility.ServerNow.Day);
                        LocalSave.SetInt(LocalRecord_Key, TimeUtility.ServerNow.Day);
                    }
                }
System/WindowBase/WindowCenter.cs
@@ -13,7 +13,8 @@
        public event Action<Window> jumpWindowCloseEvent;
        List<string> closeAllIgnoreWindows = new List<string>() {
            "MessageWin", "NewBieWin", "NewItemGetWin", "AttributePromoteShowWin" ,"DungeonBeginCoolDownWin","DungeonFightWin","StatusTipWin"
            ,"ScrollTipWin","MarqueeWin","ExperienceOpenWin","TrumpetWin","BattlePrepareCoolDownWin","DungeonGradeWin","BattleHintWin"
            ,"ScrollTipWin","MarqueeWin","ExperienceOpenWin","TrumpetWin","BattlePrepareCoolDownWin","DungeonGradeWin","BattleHintWin",
            "TreasureDungeonMissionHintWin",
        };
        UIRoot m_UIRoot;
Utility/EnumHelper.cs
@@ -1292,7 +1292,9 @@
    /** 闪避 */
    Miss,
    /** 免疫 */
    Immune
    Immune,
    /** 压制 */
    Suppress
}
public enum E_PlayerState
Utility/MathUtility.cs
@@ -154,6 +154,21 @@
        return (target - self).normalized;
    }
    public static bool IsSameDir(Vector3 vec1, Vector3 vec2)
    {
        vec1.y = 0;
        vec2.y = 0;
        return Vector3.Dot(vec1, vec2) > 0;
    }
    public static bool OppositeDir(Vector3 vec1, Vector3 vec2)
    {
        vec1.y = 0;
        vec2.y = 0;
        return Vector3.Dot(vec1, vec2) < 0;
    }
    public static int Power(int a, int e)
    {
        int value = 1;
Utility/ResolutionUtility.cs
@@ -20,7 +20,7 @@
                currentResolution = ConvertResolution(new Vector2(1280, 720));
                break;
            case GameQuality.Medium:
                currentResolution = ConvertResolution(new Vector2(1280, 720));
                currentResolution = ConvertResolution(new Vector2(1920, 1080));
                break;
            case GameQuality.High:
                currentResolution = ConvertResolution(new Vector2(1920, 1080));
Utility/RuntimeLogUtility.cs
@@ -223,7 +223,7 @@
        if (GUILayout.Button("酷酷酷"))
        {
            PlayerDatas.Instance.hero.Polymorph(!PlayerDatas.Instance.hero.IsPolyMorph);
        }
        if (GUILayout.Button("直接重连"))