| Core/NetworkPackage/DTCFile/ServerPack/H06_PlayerVsNPC/DTC0614_tagUseSkillPos.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Fight/Actor/AI/HeroAI_Base.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Fight/Actor/AI/HeroAI_KillUntilDie.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Fight/Actor/HeroBehaviour.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Fight/Actor/Skill/AttackHandler.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Fight/Actor/State/SMB/STM_BaseAttack.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Fight/Actor/Status/StatusMgr.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Fight/Actor/Status/Status_Base.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Fight/GameActor/GA_Hero.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Fight/Stage/Dungeon/MapTransfer.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/CrossServerOneVsOne/FightingPKWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/CrossServerOneVsOneClient/ClientCrossServerOneVsOne.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/MainWin/MainWinSkillController.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Core/NetworkPackage/DTCFile/ServerPack/H06_PlayerVsNPC/DTC0614_tagUseSkillPos.cs
@@ -237,8 +237,7 @@ // 处理攻击模板为传递类型的子弹 if (_skill.skillInfo.config.AtkType == (int)E_AtkType.Transmit) { SoFlyObject _soFile = ScriptableObjectLoader.LoadSoFlyObject(50900); SoFlyObject _soFile = ScriptableObjectLoader.LoadSoFlyObject(_skill.id); FlyObject.InitInfo _initInfo = new FlyObject.InitInfo { casterServerObjID = vNetData.ObjID, Fight/Actor/AI/HeroAI_Base.cs
@@ -7,6 +7,15 @@ public abstract class HeroAI_Base { private TreasureSkillModel m_TreasureSkillModel; private TreasureSkillModel treasureSkillModel { get { return m_TreasureSkillModel ?? (m_TreasureSkillModel = ModelCenter.Instance.GetModel<TreasureSkillModel>()); } } public static byte stopReason = 0; private SkillModel m_SkillModel; @@ -88,8 +97,26 @@ if (_skill != null && _skill.skillInfo != null && _skill.skillInfo.config != null) { int _expertSkill = 0; bool _forceCast = false; if (treasureSkillModel.TryGetExpertSkill(_skill.id, out _expertSkill)) { int _level = 0; if (treasureSkillModel.TryGetExpertActiveLevel(_expertSkill, out _level)) { _expertSkill += (_level - 1); } SkillHelper.EffectValue _effectValue; var _skillInfo = SkillHelper.Instance.Get(_expertSkill); if (_skillInfo.effectValue.TryGetValue(4093, out _effectValue)) { _forceCast = true; } } // 判断是否是被封禁的技能 if (!StatusMgr.Instance.CanAttack(_hero.ServerInstID, _skill.skillInfo.config)) if (!StatusMgr.Instance.CanAttack(_hero.ServerInstID, _skill.skillInfo.config) && !_forceCast) { return _skill; } @@ -141,12 +168,6 @@ } if (StatusMgr.Instance.IsExist(_hero.ServerInstID, skillID)) { return false; } // 判断是否是被封禁的技能 if (!StatusMgr.Instance.CanAttack(_hero.ServerInstID, _skill.skillInfo.config)) { return false; } Fight/Actor/AI/HeroAI_KillUntilDie.cs
@@ -102,8 +102,7 @@ GA_Hero _hero = PlayerDatas.Instance.hero; if (_hero == null || _hero.ActorInfo.serverDie || !_hero.CanCastSkill() || !_hero.CanCommonAtk()) || !_hero.CanCastSkill()) { return; } @@ -175,6 +174,14 @@ return; } if (_skill.skillInfo.config.FuncType == 8) { if (!_hero.CanCommonAtk()) { return; } } bool _forceMove = _skill.skillInfo.soFile != null && _skill.skillInfo.soFile.forceMove; if (_target == null || Fight/Actor/HeroBehaviour.cs
@@ -114,7 +114,24 @@ Skill _skill = m_Hero.SkillMgr.Get(skillID); if (!StatusMgr.Instance.CanAttack(m_Hero.ServerInstID, _skill.skillInfo.config)) int _expertSkill = 0; bool _forceCast = false; if (tsModel.TryGetExpertSkill(skillID, out _expertSkill)) { int _level = 0; if (tsModel.TryGetExpertActiveLevel(_expertSkill, out _level)) { _expertSkill += (_level - 1); } SkillHelper.EffectValue _effectValue; var _skillInfo = SkillHelper.Instance.Get(_expertSkill); if (_skillInfo.effectValue.TryGetValue(4093, out _effectValue)) { _forceCast = true; } } if ((!StatusMgr.Instance.CanAttack(m_Hero.ServerInstID, _skill.skillInfo.config) || m_Hero.IsStun()) && !_forceCast) { return; } Fight/Actor/Skill/AttackHandler.cs
@@ -594,7 +594,7 @@ } #region 4094,4507 增加暴击概率 if (attacker.SkillMgr.TryGetPassiveEffectValue(4094, out _effectValue, out _skillInfo)) if (_exceptSkill != null && _exceptSkill.effectValue.TryGetValue(4094, out _effectValue)) { bool _vaild = true; if (_effectValue.value2 != 0) @@ -724,7 +724,8 @@ #endif #region 4528,4083 增加重击伤害 if (skill.skillInfo.effectValue.TryGetValue(4528, out _effectValue)) if (StatusMgr.Instance.TryGetSkillEffectValue(attacker.ServerInstID, 4528, out _effectValue)) { bool _vaild = true; if (_effectValue.value2 == 1) @@ -752,28 +753,39 @@ } } if (attacker.SkillMgr.TryGetPassiveEffectValue(4075, out _effectValue, out _skillInfo)) if (_exceptSkill != null) { float _val = (PlayerDatas.Instance.extersion.battleValEx1 - 10000) * _effectValue.value1; _superHitAdd += _val; } if (attacker.SkillMgr.TryGetPassiveEffectValue(4083, out _effectValue, out _skillInfo)) { bool _vaild = true; if (_effectValue.value2 == 1) if (_exceptSkill.effectValue.TryGetValue(4083, out _effectValue)) { if (attacker.SelectTarget == null || attacker.SelectTarget.ServerInstID != target.ServerInstID) bool _vaild = true; if (_effectValue.value2 == 1) { _vaild = false; if (attacker.SelectTarget == null || attacker.SelectTarget.ServerInstID != target.ServerInstID) { _vaild = false; } } if (_vaild) { _superHitAdd += _effectValue.value1; } } if (_vaild) if (_exceptSkill.effectValue.TryGetValue(4030, out _effectValue)) { _superHitAdd += _effectValue.value1; _superHit += _effectValue.value1; } if (_exceptSkill.effectValue.TryGetValue(4075, out _effectValue)) { float _val = (PlayerDatas.Instance.extersion.battleValEx1 - 10000) * _effectValue.value1; _superHitAdd += _val; } } #endregion } @@ -892,11 +904,14 @@ attackType = (byte)HurtAttackType.Normal; } if (_exceptSkill != null && _exceptSkill.effectValue.ContainsKey(4092)) if (ClientSceneManager.Instance.IsClientFightMode) { if (PlayerDatas.Instance.baseData.yinjiCount > 0) if (_exceptSkill != null && _exceptSkill.effectValue.ContainsKey(4092)) { attackType = (byte)HurtAttackType.Yinji; if (PlayerDatas.Instance.baseData.yinjiCount > 0) { attackType = (byte)HurtAttackType.Yinji; } } } } @@ -1002,8 +1017,21 @@ ref int _aDamagePVE, bool _isCrit) { SkillHelper.EffectValue _effectValue; SkillHelper.SkillInfo _skillInfo; SkillHelper.SkillInfo _exceptSkill = null; if (attacker is GA_Hero) { int _exceptSkillId = 0; if (TsSkillModel.TryGetExpertSkill(skillInfo.config.SkillID, out _exceptSkillId)) { _exceptSkill = SkillHelper.Instance.Get(_exceptSkillId); } } #region 伤害增加 @@ -1029,12 +1057,12 @@ if (attacker is GA_Hero) { if (attacker.SkillMgr.TryGetPassiveEffectValue(4102, out _effectValue, out _skillInfo)) if (_exceptSkill != null && _exceptSkill.effectValue.TryGetValue(4102, out _effectValue)) { int _val = _effectValue.value1; int _needCount = _effectValue.value2; bool _valid = true; if (attacker.SkillMgr.TryGetPassiveEffectValue(4092, out _effectValue, out _skillInfo)) if (_exceptSkill.effectValue.TryGetValue(4092, out _effectValue)) { if (_effectValue.value2 == 0) { @@ -1061,7 +1089,7 @@ } } if (attacker.SkillMgr.TryGetPassiveEffectValue(4086, out _effectValue, out _skillInfo)) if (_exceptSkill != null && _exceptSkill.effectValue.TryGetValue(4086, out _effectValue)) { bool _vaild = true; if (_effectValue.value3 == 1) @@ -1081,7 +1109,7 @@ } } if (attacker.SkillMgr.TryGetPassiveEffectValue(4087, out _effectValue, out _skillInfo)) if (_exceptSkill != null && _exceptSkill.effectValue.TryGetValue(4087, out _effectValue)) { if (PlayerDatas.Instance.baseData.yinjiCount > _effectValue.value2) { @@ -1089,12 +1117,12 @@ } } if (attacker.SkillMgr.TryGetPassiveEffectValue(4088, out _effectValue, out _skillInfo)) if (_exceptSkill != null && _exceptSkill.effectValue.TryGetValue(4088, out _effectValue)) { int _per = _effectValue.value1; int _needCount = _effectValue.value2; bool _valid = true; if (attacker.SkillMgr.TryGetPassiveEffectValue(4092, out _effectValue, out _skillInfo)) if (_exceptSkill != null && _exceptSkill.effectValue.TryGetValue(4092, out _effectValue)) { if (_effectValue.value2 == 0) { @@ -1117,11 +1145,10 @@ _needCount = PlayerDatas.Instance.baseData.yinjiCount > _needCount ? _needCount : PlayerDatas.Instance.baseData.yinjiCount; _aAtkSkillPer += _per * _needCount; Debug.LogFormat("11111111111111111111"); } } if (attacker.SkillMgr.TryGetPassiveEffectValue(4015, out _effectValue, out _skillInfo)) if (_exceptSkill != null && _exceptSkill.effectValue.TryGetValue(4015, out _effectValue)) { if (target.ActorInfo.status4012.ContainsKey((byte)_effectValue.value2)) { @@ -1154,7 +1181,7 @@ } } if (attacker.SkillMgr.TryGetPassiveEffectValue(4098, out _effectValue, out _skillInfo)) if (_exceptSkill != null && _exceptSkill.effectValue.TryGetValue(4098, out _effectValue)) { var _skillInfo1 = SkillHelper.Instance.Get(_effectValue.value2); if (_skillInfo1 != null) @@ -1173,7 +1200,7 @@ } } if (attacker.SkillMgr.TryGetPassiveEffectValue(4096, out _effectValue, out _skillInfo)) if (_exceptSkill != null && _exceptSkill.effectValue.TryGetValue(4096, out _effectValue)) { if (StatusMgr.Instance.IsExist(target.ServerInstID, _effectValue.value3)) { @@ -1184,7 +1211,7 @@ } // 4005 概率增加攻击(技能)伤害万分率 if (attacker.SkillMgr.TryGetPassiveEffectValue(4005, out _effectValue, out _skillInfo)) if (_exceptSkill != null && _exceptSkill.effectValue.TryGetValue(4005, out _effectValue)) { if (Random.Range(0, 10000) < _effectValue.value2) { @@ -1199,7 +1226,7 @@ } // 4035 增加技能伤害万分率 if (attacker.SkillMgr.TryGetPassiveEffectValue(4035, out _effectValue, out _skillInfo)) if (_exceptSkill != null && _exceptSkill.effectValue.TryGetValue(4035, out _effectValue)) { bool _isValid = true; var _mapConfig = MapConfig.Get(PlayerDatas.Instance.baseData.MapID); Fight/Actor/State/SMB/STM_BaseAttack.cs
@@ -396,6 +396,10 @@ { PlayerDatas.Instance.FightRefreshPlayerHp((uint)_target.ActorInfo.SyncServerHp); } else { _target.ActorInfo.ResetHp((int)_target.ActorInfo.SyncServerHp, (short)_target.ActorInfo.SyncServerHpEx); } } // 延迟死亡 Fight/Actor/Status/StatusMgr.cs
@@ -652,18 +652,6 @@ public bool CanAttack(uint sid, SkillConfig _config) { var _actorFight = GAMgr.Instance.GetBySID(sid) as GActorFight; SkillHelper.EffectValue _effectValue; SkillHelper.SkillInfo _skillInfo; if (_actorFight.SkillMgr.TryGetPassiveEffectValue(4093, out _effectValue, out _skillInfo)) { if (_skillInfo.config.ExAttr1 == _config.SkillID) { return true; } } List<Status_Base> _list = null; if (m_StatusDict.TryGetValue(sid, out _list)) { Fight/Actor/Status/Status_Base.cs
@@ -134,9 +134,37 @@ } } } var _info = SkillHelper.Instance.Get(SkillID); SkillHelper.EffectValue _effectValue; if (_info.effectValue.TryGetValue(1090, out _effectValue)) { if (m_Effect) { var _atker = GAMgr.Instance.GetBySID(CasterSid); var _self = GAMgr.Instance.GetBySID(Sid); if (_atker != null && _self != null) { var _ctrl = m_Effect.AddMissingComponent<FoTransmitController>(); _ctrl.start = _atker.MP_Hit; _ctrl.end = _self.MP_Hit; _ctrl.transmit = m_Effect; _ctrl.enabled = true; m_Effect.transform.position = _ctrl.start.position; m_Effect.transform.LookAt(_self.MP_Hit); if (_ctrl.start && _ctrl.end) { m_Effect.transform.localScale = new Vector3(1, 1, Vector3.Distance(_ctrl.end.position, _ctrl.start.position)); } } } } } public abstract void Update(); public virtual void Update() { } public virtual bool IsComplete() { return false; @@ -157,6 +185,11 @@ { m_Effect.m_OnFinished -= OnEffectOver; SFXPlayUtility.Instance.Release(m_Effect); var _ctrl = m_Effect.GetComponent<FoTransmitController>(); if (_ctrl) { _ctrl.enabled = false; } m_Effect = null; } Fight/GameActor/GA_Hero.cs
@@ -811,7 +811,6 @@ { return !MapArea.IsInMapArea(CurMapArea, MapArea.E_Type.Safe) && !MapArea.IsInMapArea(CurMapArea, MapArea.E_Type.RebornSafe) && !IsStun() && !IsHurt() && !IsDaZuo() && State != E_ActorState.Roll Fight/Stage/Dungeon/MapTransfer.cs
@@ -116,6 +116,8 @@ yield break; } _hero.InitBornPos((ushort)transportModel.OutPosX, (ushort)transportModel.OutPosY); _hero.StopPathFind(); MapTransferUtility.Instance.Clear(); MapTransferUtility.Send_WorldTransfer(PlayerDatas.Instance.baseData.MapID, new Vector3(transportModel.OutPosX, 0, transportModel.OutPosY), MapTransferType.BigMapTransport); } } System/CrossServerOneVsOne/FightingPKWin.cs
@@ -6,7 +6,6 @@ using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; @@ -263,15 +262,15 @@ { if (positionType == 1) { m_RoleInformation2.SetShieldNumber(CrossServerLogin.Instance.oneVsOnePlayerData.MaxProDef, 0); m_RoleInformation2.SetShieldNumber(CrossServerLogin.Instance.oneVsOnePlayerData.MaxProDef, shieldNow); } else { m_RoleInformation1.SetShieldNumber(CrossServerLogin.Instance.oneVsOnePlayerData.MaxProDef, 0); m_RoleInformation1.SetShieldNumber(CrossServerLogin.Instance.oneVsOnePlayerData.MaxProDef, shieldNow); } } // DebugEx.LogError("输出玩家的ID" + playerID+"输出当前护盾值"+ shieldNow); } private void OnHeroHandupAIStopPassive() { //if (!m_AutoImg.activeSelf) @@ -279,6 +278,7 @@ // m_AutoImg.SetActive(true); //} } void OnHeroHandupAIStarted() { //if (m_AutoImg.activeSelf) @@ -556,6 +556,7 @@ m_RoleInformation1.BuffNumber.text = _OpponentBuffSortList.Count.ToString(); } } private void PlaceOfBirth(int type)//关于出生点设置位置信息 { if (type == 1)//左 @@ -573,7 +574,8 @@ string OpponentName = UIHelper.ServerStringTrim(CrossServerLogin.Instance.oneVsOnePlayerData.opponentName); m_RoleInformation2.SetHeroLvAndName((int)CrossServerLogin.Instance.oneVsOnePlayerData.opponentLevel, OpponentName); m_RoleInformation2.SetHeroHP(CrossServerLogin.Instance.oneVsOnePlayerData.opponentMaxHp, CrossServerLogin.Instance.oneVsOnePlayerData.opponentMaxHp); m_RoleInformation2.SetShieldNumber(100, 100); m_RoleInformation2.SetShieldNumber(100, 0); } else//右 { @@ -590,7 +592,7 @@ string OpponentName = UIHelper.ServerStringTrim(CrossServerLogin.Instance.oneVsOnePlayerData.opponentName); m_RoleInformation1.SetHeroLvAndName((int)CrossServerLogin.Instance.oneVsOnePlayerData.opponentLevel, OpponentName); m_RoleInformation1.SetHeroHP(CrossServerLogin.Instance.oneVsOnePlayerData.opponentMaxHp, CrossServerLogin.Instance.oneVsOnePlayerData.opponentMaxHp); m_RoleInformation1.SetShieldNumber(100, 100); m_RoleInformation1.SetShieldNumber(100, 0); } } System/CrossServerOneVsOneClient/ClientCrossServerOneVsOne.cs
@@ -151,7 +151,7 @@ var exceptedLevel = PlayerDatas.Instance.baseData.LV - UnityEngine.Random.Range(1, 5); opponent.LV = (ushort)(Mathf.Clamp(exceptedLevel, FuncOpenLVConfig.Get(157).LimitLV, 999)); opponent.MaxProDef = 0; opponent.MaxProDef = 100; opponent.MaxHP = (uint)(PlayerDatas.Instance.extersion.MaxHP * UnityEngine.Random.Range(0.7f, 0.95f)); package.MatchPlayer = new HC001_tagGCCrossRealmPKMatchOK.tagGCCrossRealmPKMatchPlayer[] { opponent }; System/MainWin/MainWinSkillController.cs
@@ -228,6 +228,28 @@ var forbid = !StatusMgr.Instance.CanCastSkill(PlayerDatas.Instance.baseData.PlayerID); for (int i = 0; i <= 8; i++) { if (placeSkillMap.ContainsKey(i)) { int _skillId = placeSkillMap[i]; var _tsModel = ModelCenter.Instance.GetModel<TreasureSkillModel>(); if (_tsModel.TryGetExpertSkill(_skillId, out _skillId)) { int _level = 0; if (_tsModel.TryGetExpertActiveLevel(_skillId, out _level)) { _skillId += (_level - 1); } var _skillInfo = SkillHelper.Instance.Get(_skillId); SkillHelper.EffectValue _effectValue; if (_skillInfo.effectValue.TryGetValue(4093, out _effectValue)) { if (forbid) { continue; } } } } var skillForbid = GetSkillForbid(i); skillForbid.value = forbid; }