| Core/GameEngine/SnxxzGame.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0419_tagPlayerReborn.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Fight/Actor/AI/HeroAI_Auto.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Fight/Actor/AI/HeroAI_KillUntilDie.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Fight/Actor/HeroBehaviour.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Fight/GameActor/GA_Hero.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Fight/MapTransferUtility.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Fight/Stage/Dungeon/MapArea.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Login/ServerBehaviour.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Skill/SkillModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/WorldMap/MapModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | 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); }