少年修仙传客户端代码仓库
client_Zxw
2018-08-30 51fab14cee367849d673ccf9a0809c68cac843fc
Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
11个文件已修改
327 ■■■■ 已修改文件
Core/GameEngine/SnxxzGame.cs 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0419_tagPlayerReborn.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/AI/HeroAI_Auto.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/AI/HeroAI_KillUntilDie.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/HeroBehaviour.cs 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GA_Hero.cs 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/MapTransferUtility.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Stage/Dungeon/MapArea.cs 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Login/ServerBehaviour.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Skill/SkillModel.cs 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/WorldMap/MapModel.cs 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/SnxxzGame.cs
@@ -157,4 +157,90 @@
        }
    }
    public void MovingCamera(bool start, int type)
    {
        if (start)
        {
            StartCoroutine("Co_MovingCamera", type);
        }
        else
        {
            StopCoroutine("Co_MovingCamera");
        }
    }
    public void ResetCamera(bool start)
    {
        if (start)
        {
            StartCoroutine("Co_ResetCamera");
        }
        else
        {
            StopCoroutine("Co_ResetCamera");
        }
    }
    private IEnumerator Co_MovingCamera(int _type)
    {
        var _areaCamera = Config.Instance.Get<TableConfig.AreaCameraConfig>(_type);
        if (_areaCamera == null)
        {
            yield break;
        }
        CameraController.Instance.AcceptInput = true;
        CameraController.Instance.ZoomDamping = 0.5f;
        CameraController.Instance.RotationDamping = 0.5f;
        CameraController.Instance.sceneDistance = CameraController.Instance.Distance = _areaCamera.Distance * Constants.F_DELTA;
        CameraController.Instance.rotationX = _areaCamera.RotX * Constants.F_DELTA;
        CameraController.Instance.rotationY = _areaCamera.RotY * Constants.F_DELTA;
        float _time = 2f;
        while (_time > 0)
        {
            _time -= Time.deltaTime;
            yield return null;
        }
        CameraController.Instance.AcceptInput = false;
        CameraController.Instance.Distance = _areaCamera.Distance * Constants.F_DELTA;
        CameraController.Instance.rotationX = _areaCamera.RotX * Constants.F_DELTA;
        CameraController.Instance.rotationY = _areaCamera.RotY * Constants.F_DELTA;
        CameraController.Instance.ZoomDamping = 0.1f;
        CameraController.Instance.RotationDamping = 0.02f;
    }
    private IEnumerator Co_ResetCamera()
    {
        CameraController.Instance.AcceptInput = true;
        CameraController.Instance.ZoomDamping = 0.5f;
        CameraController.Instance.RotationDamping = 0.5f;
        CameraController.Instance.sceneDistance = CameraController.Instance.Distance = 9;
        CameraController.Instance.rotationX = -45;
        CameraController.Instance.rotationY = 40;
        float _time = 2f;
        while (_time > 0)
        {
            _time -= Time.deltaTime;
            yield return null;
        }
        CameraController.Instance.AcceptInput = false;
        CameraController.Instance.Distance = 9;
        CameraController.Instance.rotationX = -45;
        CameraController.Instance.rotationY = 40;
        CameraController.Instance.ZoomDamping = 0.1f;
        CameraController.Instance.RotationDamping = 0.02f;
    }
}
Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0419_tagPlayerReborn.cs
@@ -1,7 +1,7 @@
using Snxxz.UI;
using TableConfig;
using UnityEngine;
//04 19 玩家重生#tagPlayerReborn
//04 19 �������#tagPlayerReborn
@@ -50,19 +50,18 @@
                PlayerDatas.Instance.baseData.PosY = vNetData.PosY;
                _hero.LockTarget = null;
                // 副本中 或者 非副本中但是勾选了自动复活
                if (DungeonStage.CurrentMapType != MapType.OpenCountry
                 || (DungeonStage.CurrentMapType == MapType.OpenCountry
                  && HangUpSetModel.Instance.GetBool(HangUpAutoBoolType.isAutoReborn)))
                {
                    switch (vNetData.Type)
                    {
                        case 0:// 安全区复活
                        case 0:
                            _hero.Behaviour.StopHandupAI();
                            _hero.Behaviour.StopKillUntilDieAI();
                            break;
                        case 2:// 花钱复活
                        case 3:// 道具复活
                        case 2:
                        case 3:
                            if (DTC0609_tagPlayerDie.isAutoFight)
                            {
                                _hero.Behaviour.StartHandupAI();
Fight/Actor/AI/HeroAI_Auto.cs
@@ -258,7 +258,6 @@
                    }
                }
                break;
        }
@@ -267,7 +266,7 @@
        {
            return;
        }
        if (m_DecideSkill != null)
        {
            _skill = m_DecideSkill;
@@ -280,8 +279,7 @@
        bool _forceMove = _skill.skillInfo.soFile != null && _skill.skillInfo.soFile.forceMove;
        if (!_forceMove && !IsSkillNeedMove(_skill.skillInfo.config.Tag,
                            (E_SkillType)_skill.skillInfo.config.SkillType))
        if (!_forceMove && !IsSkillNeedMove(_skill.skillInfo.config.Tag, (E_SkillType)_skill.skillInfo.config.SkillType))
        {
            _hero.Behaviour.DoAttack(_skill);
            m_DecideSkill = null;
@@ -361,14 +359,26 @@
            if (_hero.Behaviour.IsComAtk(_skill.id))
            {
                _hero.Behaviour.DoCommonAttack();
                m_DecideSkill = null;
                m_UserClickSkillID = -1;
                if (m_DecideSkill != null && m_DecideSkill.id == _skill.id)
                {
                    m_DecideSkill = null;
                }
                if (_skill.id == m_UserClickSkillID)
                {
                    m_UserClickSkillID = -1;
                }
            }
            else
            {
                _hero.Behaviour.DoAttack(_skill);
                m_DecideSkill = null;
                m_UserClickSkillID = -1;
                if (m_DecideSkill != null && m_DecideSkill.id == _skill.id)
                {
                    m_DecideSkill = null;
                }
                if (_skill.id == m_UserClickSkillID)
                {
                    m_UserClickSkillID = -1;
                }
            }
        }
Fight/Actor/AI/HeroAI_KillUntilDie.cs
@@ -113,7 +113,6 @@
            m_TargetID = 0;
            _hero.aiHandler.currentType = E_HeroAIType.None;
            _hero.StopRush();
            return;
        }
        // 攻击间隔中
@@ -174,10 +173,11 @@
        bool _forceMove = _skill.skillInfo.soFile != null && _skill.skillInfo.soFile.forceMove;
        if (!_forceMove
        if (_target == null ||
            (!_forceMove
         && !_hero.IsRushing // 不处于移动至目标
         && !IsSkillNeedMove(_skill.skillInfo.config.Tag,
                            (E_SkillType)_skill.skillInfo.config.SkillType))
                            (E_SkillType)_skill.skillInfo.config.SkillType)))
        {
            _hero.Behaviour.DoAttack(_skill);
            m_LimitOnce = true;
Fight/Actor/HeroBehaviour.cs
@@ -116,61 +116,6 @@
        m_WillUsedSkillID = skillID;
        GActorFight _fightTarget = m_Hero.LockTarget as GActorFight;
        if (_fightTarget != null)
        {
            m_Hero.SelectTarget = _fightTarget;
        }
        else
        {
            _fightTarget = m_Hero.SelectTarget as GActorFight;
            if (_fightTarget != null && _fightTarget.CanAtked())
            {
                m_Hero.LockTarget = m_Hero.SelectTarget;
            }
            else
            {
                float _range = m_Hero.JobSetup.SearchEnemyDist * Constants.F_DELTA;
                m_Hero.LockTarget = m_Hero.SelectTarget = GAMgr.Instance.FindAtkTarget(m_Hero.Pos, _range, 360);
            }
        }
        _fightTarget = m_Hero.SelectTarget as GActorFight;
        // 找不到可以攻击的目标, 这里直接释放技能
        if (_fightTarget == null
         || !_fightTarget.CanAtked()
         || (_skill.skillInfo.config.Skillactmark == GAStaticDefine.Act_Roll
          && !m_Hero.IsRushing))
        {
            bool _canCast = true;
            if (m_Hero.SkillMgr.CurCastSkill != null)
            {
                if (m_Hero.SkillMgr.CurCastSkill.SkillCompelete == false)
                {
                    _canCast = false;
                }
            }
            if (_canCast)
            {
                if (skillID >= 0 && !IsComAtk(skillID))
                {
                    DoAttack(_skill);
                }
                else
                {
                    DoCommonAttack();
                }
            }
            m_WillUsedSkillID = -1;
            return;
        }
        if (_skill.skillInfo.config.CastTime > 0)
        {
            _skill.CSkillPrepareEnd = false;
@@ -180,12 +125,15 @@
        {
            byte _type = (byte)E_HeroAIType.KillUntilDie;
            KillUntilDieData _data = m_Hero.aiHandler.aiData[_type] as KillUntilDieData;
            _data.targetServerInstID = m_Hero.SelectTarget.ServerInstID;
            if (m_Hero.SelectTarget != null)
            {
                _data.targetServerInstID = m_Hero.SelectTarget.ServerInstID;
            }
            _data.defaultSkillID = m_WillUsedSkillID;
            m_Hero.aiHandler.currentType = E_HeroAIType.KillUntilDie;
        }
        if(OnUserClickSkill != null)
        if (OnUserClickSkill != null)
        {
            OnUserClickSkill(m_WillUsedSkillID);
        }
Fight/GameActor/GA_Hero.cs
@@ -208,9 +208,16 @@
        {
            if (!aiHandler.IsAuto() && !BossShowModel.Instance.BossShowing)
            {
                if (Time.realtimeSinceStartup - forceAutoFightTime > 3)
                if (IsIdle())
                {
                    Behaviour.StartHandupAI();
                    if (Time.realtimeSinceStartup - forceAutoFightTime > 6)
                    {
                        Behaviour.StartHandupAI();
                    }
                }
                else
                {
                    forceAutoFightTime = Time.realtimeSinceStartup;
                }
            }
        }
Fight/MapTransferUtility.cs
@@ -287,13 +287,13 @@
                            {
                                //Debug.LogFormat(" |-- 不在同一分线: {0} != {1}", _lineID, PlayerDatas.Instance.baseData.FBID);
                                _forceTransfer = true;
                                npcID = 0;
                            }
                        }
                        else
                        {
                            Debug.LogErrorFormat("对应的地图ID: {0} 在配置中没有对应的分线id", _npcLocation.mapId);
                        }
                        npcID = 0;
                    }
                }
Fight/Stage/Dungeon/MapArea.cs
@@ -81,9 +81,9 @@
    {
        if (_type >= 3000)
        {
            StopCoroutine("MovingCamera");
            StopCoroutine("ResetCamera");
            StartCoroutine("MovingCamera");
            SnxxzGame.Instance.MovingCamera(false, _type);
            SnxxzGame.Instance.ResetCamera(false);
            SnxxzGame.Instance.MovingCamera(true, _type);
        }
        if (PlayerDatas.Instance.hero != null)
@@ -105,8 +105,8 @@
    {
        if (_type >= 3000)
        {
            StopCoroutine("MovingCamera");
            StartCoroutine("ResetCamera");
            SnxxzGame.Instance.MovingCamera(false, _type);
            SnxxzGame.Instance.ResetCamera(true);
        }
        if (PlayerDatas.Instance.hero != null)
@@ -125,68 +125,6 @@
        }
    }
    private IEnumerator MovingCamera()
    {
        AreaCameraConfig _areaCamera = Config.Instance.Get<AreaCameraConfig>(_type);
        if (_areaCamera == null)
        {
            yield break;
        }
        CameraController.Instance.AcceptInput = true;
        CameraController.Instance.ZoomDamping = 0.5f;
        CameraController.Instance.RotationDamping = 0.5f;
        CameraController.Instance.sceneDistance = CameraController.Instance.Distance = _areaCamera.Distance * Constants.F_DELTA;
        CameraController.Instance.rotationX = _areaCamera.RotX * Constants.F_DELTA;
        CameraController.Instance.rotationY = _areaCamera.RotY * Constants.F_DELTA;
        float _time = 2f;
        while (_time > 0)
        {
            _time -= Time.deltaTime;
            yield return null;
        }
        CameraController.Instance.AcceptInput = false;
        CameraController.Instance.Distance = _areaCamera.Distance * Constants.F_DELTA;
        CameraController.Instance.rotationX = _areaCamera.RotX * Constants.F_DELTA;
        CameraController.Instance.rotationY = _areaCamera.RotY * Constants.F_DELTA;
        CameraController.Instance.ZoomDamping = 0.1f;
        CameraController.Instance.RotationDamping = 0.02f;
    }
    private IEnumerator ResetCamera()
    {
        CameraController.Instance.AcceptInput = true;
        CameraController.Instance.ZoomDamping = 0.5f;
        CameraController.Instance.RotationDamping = 0.5f;
        CameraController.Instance.sceneDistance = CameraController.Instance.Distance = 9;
        CameraController.Instance.rotationX = -45;
        CameraController.Instance.rotationY = 40;
        float _time = 2f;
        while (_time > 0)
        {
            _time -= Time.deltaTime;
            yield return null;
        }
        CameraController.Instance.AcceptInput = false;
        CameraController.Instance.Distance = 9;
        CameraController.Instance.rotationX = -45;
        CameraController.Instance.rotationY = 40;
        CameraController.Instance.ZoomDamping = 0.1f;
        CameraController.Instance.RotationDamping = 0.02f;
    }
#if UNITY_EDITOR
    private void OnDrawGizmos()
System/Login/ServerBehaviour.cs
@@ -69,11 +69,13 @@
            if (_serverData.level > 0)
            {
                m_RoleName.gameObject.SetActive(true);
                m_RoleLevel.gameObject.SetActive(true);
                m_RoleLevel.text = Language.Get("Z1024", _serverData.level);
            }
            else
            {
                m_RoleName.gameObject.SetActive(false);
                m_RoleLevel.gameObject.SetActive(false);
            }
            m_Select.RemoveAllListeners();
System/Skill/SkillModel.cs
@@ -47,6 +47,8 @@
        public Dictionary<int, Dictionary<int, List<SkillConfig>>> skillActDict { get; private set; }
        public List<int> betterPassSkills { get; private set; }
        public bool jumpToPass { get; set; }
        public int minTaskHole { get; private set; }
        public int maxTaskHole { get; private set; }
        void ParseConfig()
        {
            for (int i = 1; i <= 3; i++)
@@ -71,6 +73,14 @@
                    PassSkillLimit limit = JsonMapper.ToObject<PassSkillLimit>(jsonData[key].ToJson());
                    limit.hole = int.Parse(key);
                    passSkillLimits.Add(limit);
                    if (minTaskHole == 0 && limit.OpenSkillSlots > 0)
                    {
                        minTaskHole = limit.OpenSkillSlots;
                    }
                    if (limit.OpenSkillSlots > maxTaskHole)
                    {
                        maxTaskHole = limit.OpenSkillSlots;
                    }
                }
                passEquipCnt = int.Parse(funcCfg.Numerical2);
                taskHoleDict = ConfigParse.GetDic<int, int>(funcCfg.Numerical4);
@@ -290,7 +300,7 @@
        public event Action taskUnlockUpdate;
        public int taskHoleCondition { get; private set; }
        public uint taskHoleCondition { get; private set; }
        public const string TASKHOLEKEY = "OpenSkillSlots";
@@ -305,9 +315,10 @@
            if (task._DicTaskInformation.ContainsKey(1)
                && task._DicTaskInformation[1].ContainsKey(TASKHOLEKEY))
            {
                var value = 0;
                int.TryParse(task._DicTaskInformation[1][TASKHOLEKEY], out value);
                return value >= condition;
                uint value = 0;
                uint.TryParse(task._DicTaskInformation[1][TASKHOLEKEY], out value);
                return MathUtility.GetBitValue(value, (ushort)condition);
                //return value >= condition;
            }
            return false;
        }
@@ -319,11 +330,18 @@
                var dict = _Dic[1];
                if (dict.ContainsKey(TASKHOLEKEY))
                {
                    var result = 0;
                    int.TryParse(dict[TASKHOLEKEY], out result);
                    if (result != taskHoleCondition && playerLoginOk)
                    uint result = 0;
                    uint.TryParse(dict[TASKHOLEKEY], out result);
                    if (playerLoginOk)
                    {
                        UnlockPassHole = result;
                        for (int k = minTaskHole; k <= maxTaskHole; k++)
                        {
                            if (!MathUtility.GetBitValue(taskHoleCondition, (ushort)k)
                                && MathUtility.GetBitValue(result, (ushort)k))
                            {
                                UnlockPassHole = k;
                            }
                        }
                        if (taskUnlockUpdate != null)
                        {
                            taskUnlockUpdate();
System/WorldMap/MapModel.cs
@@ -190,7 +190,7 @@
            if (mapLines.ContainsKey(_mapId))
            {
                sortedMapLines.AddRange(mapLines[_mapId]);
                CheckActivityLine();
                CheckActivityLine(_mapId);
                sortedMapLines.Sort(SortMaplines);
                return sortedMapLines;
            }
@@ -200,18 +200,25 @@
            }
        }
        void CheckActivityLine()
        void CheckActivityLine(int _mapId)
        {
            var activityLine = 0;
            fairyGrabBossModel.TryGetFairyGrabBossLine(out activityLine);
            if (activityLine != 0 && !fairyGrabBossModel.InActivityTime
                && PlayerDatas.Instance.baseData.FBID != activityLine)
            if (activityLine != 0)
            {
                var index = sortedMapLines.FindIndex((x) =>
                {
                    return activityLine + 1 == x.lineIndex;
                });
                if (index != -1)
                if (fairyGrabBossModel.InActivityTime ||
                    PlayerDatas.Instance.baseData.FBID == activityLine)
                {
                    if (index == -1)
                    {
                        sortedMapLines.Add(new MapLine(_mapId, activityLine + 1, 0, 0));
                    }
                }
                else if (index != -1)
                {
                    sortedMapLines.RemoveAt(index);
                }