| Core/NetworkPackage/ClientPack/ClientToMapServer/CB4_Fight/CB40D_tagCMYinji.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Core/NetworkPackage/ClientPack/ClientToMapServer/CB4_Fight/CB40D_tagCMYinji.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Fight/Actor/HeroBehaviour.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Fight/Actor/Skill/AttackHandler.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Core/NetworkPackage/ClientPack/ClientToMapServer/CB4_Fight/CB40D_tagCMYinji.cs
New file @@ -0,0 +1,20 @@ // B4 0D 战斗印记 #tagCMYinji public class CB40D_tagCMYinji : GameNetPackBasic { public byte Count; public byte Type; // 0 加,1减 public CB40D_tagCMYinji() { combineCmd = (ushort)0x03FE; _cmd = (ushort)0xB40D; } public override void WriteToBytes() { WriteBytes(Count, NetDataType.BYTE); WriteBytes(Type, NetDataType.BYTE); } } Core/NetworkPackage/ClientPack/ClientToMapServer/CB4_Fight/CB40D_tagCMYinji.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: ad79c40cfec9a9f4281f96a1d17947aa timeCreated: 1561174277 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Fight/Actor/HeroBehaviour.cs
@@ -905,6 +905,8 @@ } } HandleExpertSkillWhenCast(skill.id); if (skill.hitClientBattleTargetList.Count > 0) { GActorFight _target = null; @@ -1198,18 +1200,57 @@ return true; } private void HandleExpertSkillWhenCast(int skillID) { int _expertSkillId = 0; if (tsModel.TryGetExpertSkill(skillID, out _expertSkillId)) { var _skillInfo = SkillHelper.Instance.Get(_expertSkillId); SkillHelper.EffectValue _effectValue; if (_skillInfo.config.SkillType == (int)E_SkillType.Passive || _skillInfo.config.SkillType == (int)E_SkillType.PassiveControlBuff) { if (_skillInfo.effectValue.TryGetValue(4085, out _effectValue)) { var _b40d = new CB40D_tagCMYinji(); _b40d.Count = (byte)_effectValue.value1; _b40d.Type = 0; GameNetSystem.Instance.SendInfo(_b40d); } if (_skillInfo.effectValue.TryGetValue(4092, out _effectValue)) { var _b40d = new CB40D_tagCMYinji(); _b40d.Count = (byte)_effectValue.value1; _b40d.Type = 1; GameNetSystem.Instance.SendInfo(_b40d); } } else if (_skillInfo.config.SkillType == (int)E_SkillType.PassiveGainBuff) { if (_skillInfo.effectValue.TryGetValue(4091, out _effectValue)) { var _b40d = new CB40D_tagCMYinji(); _b40d.Count = (byte)_effectValue.value1; _b40d.Type = 0; GameNetSystem.Instance.SendInfo(_b40d); } } } } private void HandleExpertSkill(int skillID, uint aSid, uint tSid) { // if (!ClientSceneManager.Instance.IsClientFightMode) // { // return; // } // 增加一些buff效果 int _expertSkillId = 0; if (tsModel.TryGetExpertSkill(skillID, out _expertSkillId)) { var _skillInfo = SkillHelper.Instance.Get(_expertSkillId); if (_skillInfo.config.SkillType != (int)E_SkillType.PassiveSustainedReduction/* 非被动减益buff */) { return; } SkillHelper.EffectValue _effectValue; // 不满足概率 @@ -1221,7 +1262,10 @@ } } StatusMgr.Instance.AddClientBuff(tSid, _expertSkillId, aSid, 0, _skillInfo.config.LastTime6); if (_skillInfo.config.SkillType == (int)E_SkillType.PassiveSustainedReduction) { StatusMgr.Instance.AddClientBuff(tSid, _expertSkillId, aSid, 0, _skillInfo.config.LastTime6); } } } } Fight/Actor/Skill/AttackHandler.cs
@@ -1,4 +1,5 @@ using System.Collections.Generic; using Snxxz.UI; using UnityEngine; public static class AttackHandler @@ -7,6 +8,16 @@ /// 攻击者服务器id, 被击者服务器id, 攻击类型, 伤害 /// </summary> public static UnityEngine.Events.UnityAction<uint, uint, byte, uint> OnAttackTarget; private static TreasureSkillModel m_tsModel; private static TreasureSkillModel TsSkillModel { get { return m_tsModel ?? (m_tsModel = ModelCenter.Instance.GetModel<TreasureSkillModel>()); } } public static void HandlerAttackTarget(GActorFight attacker, GActorFight target, @@ -354,6 +365,18 @@ ref uint hurtValue, ref byte attackType) { SkillHelper.SkillInfo _exceptSkill = null; if (attacker is GA_Hero) { int _exceptSkillId = 0; if (TsSkillModel.TryGetExpertSkill(skill.skillInfo.config.SkillID, out _exceptSkillId)) { _exceptSkill = SkillHelper.Instance.Get(_exceptSkillId); } } int _hitRate = 1; int _missRate = 0; @@ -520,7 +543,7 @@ if (attacker.ServerInstID == PlayerDatas.Instance.PlayerId) { _isZhongJi = IsZhongji(target); _isZhongJi = IsZhongji(skill.id, target); } } @@ -868,6 +891,14 @@ { attackType = (byte)HurtAttackType.Normal; } if (_exceptSkill != null && _exceptSkill.effectValue.ContainsKey(4092)) { if (PlayerDatas.Instance.baseData.yinjiCount > 0) { attackType = (byte)HurtAttackType.Yinji; } } } private static bool IsMiss(int hit, int miss) @@ -875,7 +906,7 @@ return hit * 1f / (hit + miss) - Random.Range(0f, 1f) < 0; } private static bool IsZhongji(GActorFight target) private static bool IsZhongji(int skillId, GActorFight target) { var _hero = PlayerDatas.Instance.hero; if (_hero == null @@ -884,7 +915,21 @@ return false; } SkillHelper.EffectValue _effectValue; SkillHelper.SkillInfo _skillInfo; int _rate = 0; int _exceptSkillId = 0; if (TsSkillModel.TryGetExpertSkill(skillId, out _exceptSkillId)) { var _esSkillInfo = SkillHelper.Instance.Get(_exceptSkillId); if (_esSkillInfo.effectValue.TryGetValue(4081, out _effectValue)) { _rate += _effectValue.value1; } } var _dict = StatusMgr.Instance.ZhongJiDict; foreach (var _info in _dict.Values) { @@ -900,9 +945,6 @@ _rate += _info.rate; } } SkillHelper.EffectValue _effectValue; SkillHelper.SkillInfo _skillInfo; if (_hero.SkillMgr.TryGetPassiveEffectValue(4081, out _effectValue, out _skillInfo)) { if (_effectValue.value2 == 1) @@ -962,6 +1004,7 @@ { SkillHelper.EffectValue _effectValue; SkillHelper.SkillInfo _skillInfo; #region 伤害增加 if (skillInfo.effectValue.TryGetValue(1062, out _effectValue)) @@ -1074,6 +1117,7 @@ _needCount = PlayerDatas.Instance.baseData.yinjiCount > _needCount ? _needCount : PlayerDatas.Instance.baseData.yinjiCount; _aAtkSkillPer += _per * _needCount; Debug.LogFormat("11111111111111111111"); } }