Browse Source

【BUG】MMO-21117: 随从改版后,受击触发类的妖灵技能都失效了

meijun 3 years ago
parent
commit
12ce4fc276

+ 4 - 3
XmdsServerCS/XmdsServerEdgeJS/Zone/ZoneServiceICE.cs

@@ -1445,9 +1445,10 @@ namespace XmdsServerEdgeJS.Zone
                                 {
                                 {
                                     totalDamage = insPlayer.Statistic.TotalDamage,
                                     totalDamage = insPlayer.Statistic.TotalDamage,
                                     totalHealing = insPlayer.Statistic.TotalHealing,
                                     totalHealing = insPlayer.Statistic.TotalHealing,
-                                    killPlayerCount = insPlayer.Statistic.KillPlayerCount,
+                                    //killPlayerCount = insPlayer.Statistic.KillPlayerCount,
-                                    killUnitCount = insPlayer.Statistic.KillUnitCount,
+                                    //killUnitCount = insPlayer.Statistic.KillUnitCount,
-                                    deadCount = insPlayer.Statistic.DeadCount
+                                    //deadCount = insPlayer.Statistic.DeadCount,
+                                    SelfDamage = insPlayer.Statistic.SelfDamage
                                 };
                                 };
                             }
                             }
                         });
                         });

+ 27 - 13
XmdsVSPlugins/XmdsCommonSkill/Plugin/PassiveSkills/PetEquip/Pet_80260.cs

@@ -2,6 +2,7 @@
 using CommonAI.Zone;
 using CommonAI.Zone;
 using CommonAI.Zone.Formula;
 using CommonAI.Zone.Formula;
 using CommonAI.Zone.Helper;
 using CommonAI.Zone.Helper;
+using CommonAI.Zone.Instance;
 using CommonLang;
 using CommonLang;
 using System;
 using System;
 using System.Collections.Generic;
 using System.Collections.Generic;
@@ -48,7 +49,8 @@ namespace XmdsCommonSkill.Plugin.PassiveSkills.Pet20200515
 			pack.BindTemplateAndDispose();
 			pack.BindTemplateAndDispose();
 			owner.RegistSendBuff(bt);
 			owner.RegistSendBuff(bt);
 
 
-			mUUID_1 = owner.RegistOnHitDamage(OnHandleHitDamage, skillInfo, true);
+			//mUUID_1 = owner.RegistOnHitDamage(OnHandleHitDamage, skillInfo, true);
+			mUUID_1 = owner.RegistShareMasterDmgEvent(OnShareMasterDmgEvent, skillInfo);
 		}
 		}
 
 
 		protected override void OnSkillDataChange(GameSkill gs, XmdsVirtual unit)
 		protected override void OnSkillDataChange(GameSkill gs, XmdsVirtual unit)
@@ -62,21 +64,33 @@ namespace XmdsCommonSkill.Plugin.PassiveSkills.Pet20200515
 
 
 		protected override void OnDispose(XmdsVirtual owner)
 		protected override void OnDispose(XmdsVirtual owner)
 		{
 		{
-			owner.UnRegistOnHitDamage(mUUID_1);
+			//owner.UnRegistOnHitDamage(mUUID_1);
+			owner.UnRegistShareMasterDmgEvent(mUUID_1);
 		}
 		}
 
 
-		private float OnHandleHitDamage(float damage, XmdsVirtual hitted, XmdsVirtual attacker, AttackSource source,
+		//private float OnHandleHitDamage(float damage, XmdsVirtual hitted, XmdsVirtual attacker, AttackSource source,
-			ref XmdsVirtual.AtkResult result, DamageType damageType, GameSkill skill, ref bool isEndDispatch)
+		//	ref XmdsVirtual.AtkResult result, DamageType damageType, GameSkill skill, ref bool isEndDispatch)
-		{
+		//{
-			if (damage > 0 && base.IsTrigger(hitted, skill.SkillLevel))
+		//	if (damage > 0 && base.IsTrigger(hitted, skill.SkillLevel))
-			{
+		//	{
-				hitted.mUnit.Parent.unitLaunchSpell(XmdsSkillType.none, hitted.mUnit, mBindSpell,
+		//		hitted.mUnit.Parent.unitLaunchSpell(XmdsSkillType.none, hitted.mUnit, mBindSpell,
-					hitted.mUnit.X, hitted.mUnit.Y, hitted.mUnit.ID);
+		//			hitted.mUnit.X, hitted.mUnit.Y, hitted.mUnit.ID);
 
 
-				hitted.mUnit.AddBuff(Buff_ID);
+		//		hitted.mUnit.AddBuff(Buff_ID);
-			}
+		//	}
-			return damage;
+		//	return damage;
-		}
+		//}
+
+		private int OnShareMasterDmgEvent(int hp, InstanceUnit sender, InstanceUnit unit, GameSkill skill, ref bool isEndDispatch)
+        {
+            if (hp > 0 && base.IsTrigger((XmdsVirtual)unit.Virtual, skill.SkillLevel))
+            {
+				unit.Parent.unitLaunchSpell(XmdsSkillType.none, unit, mBindSpell, unit.X, unit.Y, unit.ID);
+				unit.AddBuff(Buff_ID);
+            }
+
+            return hp;
+        }
 
 
 		protected override void OnInitConfig(GameSkill skillInfo)
 		protected override void OnInitConfig(GameSkill skillInfo)
 		{
 		{

+ 21 - 9
XmdsVSPlugins/XmdsCommonSkill/Plugin/PassiveSkills/PetEquip/Pet_80270.cs

@@ -2,6 +2,7 @@
 using CommonAI.Zone;
 using CommonAI.Zone;
 using CommonAI.Zone.Formula;
 using CommonAI.Zone.Formula;
 using CommonAI.Zone.Helper;
 using CommonAI.Zone.Helper;
+using CommonAI.Zone.Instance;
 using CommonLang;
 using CommonLang;
 using System;
 using System;
 using System.Collections.Generic;
 using System.Collections.Generic;
@@ -38,26 +39,37 @@ namespace XmdsCommonSkill.Plugin.PassiveSkills.Pet20200515
 
 
 		protected override void OnInit(GameSkill skillInfo, XmdsVirtual owner)
 		protected override void OnInit(GameSkill skillInfo, XmdsVirtual owner)
 		{
 		{
-			mUUID_1 = owner.RegistOnHitDamage(OnHandleHitDamage, skillInfo, true);
+			//mUUID_1 = owner.RegistOnHitDamage(OnHandleHitDamage, skillInfo, true);
+			mUUID_1 = owner.RegistShareMasterDmgEvent(OnShareMasterDmgEvent, skillInfo);
 			mUUID_2 = owner.RegistCalDamage(OnCallDamageProcess, skillInfo, false);
 			mUUID_2 = owner.RegistCalDamage(OnCallDamageProcess, skillInfo, false);
 		}
 		}
 
 
 		protected override void OnDispose(XmdsVirtual owner)
 		protected override void OnDispose(XmdsVirtual owner)
 		{
 		{
-			owner.UnRegistOnHitDamage(mUUID_1);
+			//owner.UnRegistOnHitDamage(mUUID_1);
+			owner.UnRegistShareMasterDmgEvent(mUUID_1);
 			owner.UnRegistCalDamage(mUUID_2);
 			owner.UnRegistCalDamage(mUUID_2);
 		}
 		}
 
 
-		private float OnHandleHitDamage(float damage, XmdsVirtual hitted, XmdsVirtual attacker, AttackSource source,
+		//private float OnHandleHitDamage(float damage, XmdsVirtual hitted, XmdsVirtual attacker, AttackSource source,
-			ref XmdsVirtual.AtkResult result, DamageType damageType, GameSkill skill, ref bool isEndDispatch)
+		//	ref XmdsVirtual.AtkResult result, DamageType damageType, GameSkill skill, ref bool isEndDispatch)
+		//{
+		//	if (damage > 0 && base.IsTrigger(attacker, skill.SkillLevel))
+		//	{
+		//		hitted.mUnit.Parent.unitLaunchSpell(XmdsSkillType.none, hitted.mUnit, mBindSpell,
+		//			hitted.mUnit.X, hitted.mUnit.Y, hitted.mUnit.ID);
+		//	}
+
+		//	return damage;
+		//}
+
+		private int OnShareMasterDmgEvent(int hp, InstanceUnit sender, InstanceUnit unit, GameSkill skill, ref bool isEndDispatch)
 		{
 		{
-			if (damage > 0 && base.IsTrigger(attacker, skill.SkillLevel))
+			if (hp > 0 && base.IsTrigger((XmdsVirtual)unit.Virtual, skill.SkillLevel))
 			{
 			{
-				hitted.mUnit.Parent.unitLaunchSpell(XmdsSkillType.none, hitted.mUnit, mBindSpell,
+				unit.Parent.unitLaunchSpell(XmdsSkillType.none, unit, mBindSpell, unit.X, unit.Y, unit.ID);
-					hitted.mUnit.X, hitted.mUnit.Y, hitted.mUnit.ID);
 			}
 			}
-
+			return hp;
-			return damage;
 		}
 		}
 
 
 		public virtual bool OnCallDamageProcess(XmdsVirtual attacker, XmdsVirtual hitter, AttackSource source, GameSkill gs,
 		public virtual bool OnCallDamageProcess(XmdsVirtual attacker, XmdsVirtual hitter, AttackSource source, GameSkill gs,

+ 23 - 11
XmdsVSPlugins/XmdsCommonSkill/Plugin/PassiveSkills/PetEquip/Pet_80300.cs

@@ -2,6 +2,7 @@
 using CommonAI.Zone;
 using CommonAI.Zone;
 using CommonAI.Zone.Formula;
 using CommonAI.Zone.Formula;
 using CommonAI.Zone.Helper;
 using CommonAI.Zone.Helper;
+using CommonAI.Zone.Instance;
 using CommonLang;
 using CommonLang;
 using System;
 using System;
 using System.Collections.Generic;
 using System.Collections.Generic;
@@ -38,29 +39,40 @@ namespace XmdsCommonSkill.Plugin.PassiveSkills.Pet20200515
 
 
 		protected override void OnInit(GameSkill skillInfo, XmdsVirtual owner)
 		protected override void OnInit(GameSkill skillInfo, XmdsVirtual owner)
 		{
 		{
-			mUUID_1 = owner.RegistOnHitDamage(OnHandleHitDamage, skillInfo, true);
+			//mUUID_1 = owner.RegistOnHitDamage(OnHandleHitDamage, skillInfo, true);
+			mUUID_1 = owner.RegistShareMasterDmgEvent(OnShareMasterDmgEvent, skillInfo);
 			mUUID_2 = owner.RegistCalDamage(OnCallDamageProcess, skillInfo, false);
 			mUUID_2 = owner.RegistCalDamage(OnCallDamageProcess, skillInfo, false);
 		}
 		}
 
 
 		protected override void OnDispose(XmdsVirtual owner)
 		protected override void OnDispose(XmdsVirtual owner)
 		{
 		{
-			owner.UnRegistOnHitDamage(mUUID_1);
+			//owner.UnRegistOnHitDamage(mUUID_1);
+			owner.UnRegistShareMasterDmgEvent(mUUID_1);
 			owner.UnRegistCalDamage(mUUID_2);
 			owner.UnRegistCalDamage(mUUID_2);
 		}
 		}
 
 
-		private float OnHandleHitDamage(float damage, XmdsVirtual hitted, XmdsVirtual attacker, AttackSource source,
+		//private float OnHandleHitDamage(float damage, XmdsVirtual hitted, XmdsVirtual attacker, AttackSource source,
-			ref XmdsVirtual.AtkResult result, DamageType damageType, GameSkill skill, ref bool isEndDispatch)
+		//	ref XmdsVirtual.AtkResult result, DamageType damageType, GameSkill skill, ref bool isEndDispatch)
+		//{
+		//	if (damage > 0 && base.IsTrigger(attacker, skill.SkillLevel))
+		//	{
+		//		hitted.mUnit.Parent.unitLaunchSpell(XmdsSkillType.none, hitted.mUnit, mBindSpell,
+		//			hitted.mUnit.X, hitted.mUnit.Y, hitted.mUnit.ID);
+		//	}
+
+		//	return damage;
+		//}
+
+		private int OnShareMasterDmgEvent(int hp, InstanceUnit sender, InstanceUnit unit, GameSkill skill, ref bool isEndDispatch)
 		{
 		{
-			if (damage > 0 && base.IsTrigger(attacker, skill.SkillLevel))
+            if (hp > 0 && base.IsTrigger((XmdsVirtual)unit.Virtual, skill.SkillLevel))
-			{
+            {
-				hitted.mUnit.Parent.unitLaunchSpell(XmdsSkillType.none, hitted.mUnit, mBindSpell,
+				unit.Parent.unitLaunchSpell(XmdsSkillType.none, unit, mBindSpell, unit.X, unit.Y, unit.ID);
-					hitted.mUnit.X, hitted.mUnit.Y, hitted.mUnit.ID);
+            }
-			}
 
 
-			return damage;
+            return hp;
 		}
 		}
 
 
-
 		public virtual bool OnCallDamageProcess(XmdsVirtual attacker, XmdsVirtual hitter, AttackSource source, GameSkill gs,
 		public virtual bool OnCallDamageProcess(XmdsVirtual attacker, XmdsVirtual hitter, AttackSource source, GameSkill gs,
 			ref XmdsCommonServer.Plugin.XmdsVirtual.AtkResult result, ref int damage)
 			ref XmdsCommonServer.Plugin.XmdsVirtual.AtkResult result, ref int damage)
 		{
 		{

+ 23 - 11
XmdsVSPlugins/XmdsCommonSkill/Plugin/PassiveSkills/PetEquip/Pet_80310.cs

@@ -2,6 +2,7 @@
 using CommonAI.Zone;
 using CommonAI.Zone;
 using CommonAI.Zone.Formula;
 using CommonAI.Zone.Formula;
 using CommonAI.Zone.Helper;
 using CommonAI.Zone.Helper;
+using CommonAI.Zone.Instance;
 using CommonLang;
 using CommonLang;
 using System;
 using System;
 using System.Collections.Generic;
 using System.Collections.Generic;
@@ -37,29 +38,40 @@ namespace XmdsCommonSkill.Plugin.PassiveSkills.Pet20200515
 
 
 		protected override void OnInit(GameSkill skillInfo, XmdsVirtual owner)
 		protected override void OnInit(GameSkill skillInfo, XmdsVirtual owner)
 		{
 		{
-			mUUID_1 = owner.RegistOnHitDamage(OnHandleHitDamage, skillInfo, true);
+			//mUUID_1 = owner.RegistOnHitDamage(OnHandleHitDamage, skillInfo, true);
+			mUUID_1 = owner.RegistShareMasterDmgEvent(OnShareMasterDmgEvent, skillInfo);
 			mUUID_2 = owner.RegistCalDamage(OnCallDamageProcess, skillInfo, false);
 			mUUID_2 = owner.RegistCalDamage(OnCallDamageProcess, skillInfo, false);
 		}
 		}
 
 
 		protected override void OnDispose(XmdsVirtual owner)
 		protected override void OnDispose(XmdsVirtual owner)
 		{
 		{
-			owner.UnRegistOnHitDamage(mUUID_1);
+			//owner.UnRegistOnHitDamage(mUUID_1);
+			owner.UnRegistShareMasterDmgEvent(mUUID_1);
 			owner.UnRegistCalDamage(mUUID_2);
 			owner.UnRegistCalDamage(mUUID_2);
 		}
 		}
 
 
-		private float OnHandleHitDamage(float damage, XmdsVirtual hitted, XmdsVirtual attacker, AttackSource source,
+		//private float OnHandleHitDamage(float damage, XmdsVirtual hitted, XmdsVirtual attacker, AttackSource source,
-			ref XmdsVirtual.AtkResult result, DamageType damageType, GameSkill skill, ref bool isEndDispatch)
+		//	ref XmdsVirtual.AtkResult result, DamageType damageType, GameSkill skill, ref bool isEndDispatch)
+		//{
+		//	if (damage > 0 && base.IsTrigger(attacker, skill.SkillLevel))
+		//	{
+		//		hitted.mUnit.Parent.unitLaunchSpell(XmdsSkillType.none, hitted.mUnit, mBindSpell,
+		//			hitted.mUnit.X, hitted.mUnit.Y, hitted.mUnit.ID);
+		//	}
+
+		//	return damage;
+		//}
+
+		private int OnShareMasterDmgEvent(int hp, InstanceUnit sender, InstanceUnit unit, GameSkill skill, ref bool isEndDispatch)
 		{
 		{
-			if (damage > 0 && base.IsTrigger(attacker, skill.SkillLevel))
+            if (hp > 0 && base.IsTrigger((XmdsVirtual)unit.Virtual, skill.SkillLevel))
-			{
+            {
-				hitted.mUnit.Parent.unitLaunchSpell(XmdsSkillType.none, hitted.mUnit, mBindSpell,
+				unit.Parent.unitLaunchSpell(XmdsSkillType.none, unit, mBindSpell, unit.X, unit.Y, unit.ID);
-					hitted.mUnit.X, hitted.mUnit.Y, hitted.mUnit.ID);
+            }
-			}
 
 
-			return damage;
+            return hp;
 		}
 		}
 
 
-
 		public virtual bool OnCallDamageProcess(XmdsVirtual attacker, XmdsVirtual hitter, AttackSource source, GameSkill gs,
 		public virtual bool OnCallDamageProcess(XmdsVirtual attacker, XmdsVirtual hitter, AttackSource source, GameSkill gs,
 			ref XmdsCommonServer.Plugin.XmdsVirtual.AtkResult result, ref int damage)
 			ref XmdsCommonServer.Plugin.XmdsVirtual.AtkResult result, ref int damage)
 		{
 		{

+ 21 - 10
XmdsVSPlugins/XmdsCommonSkill/Plugin/PassiveSkills/PetEquip/Pet_80330.cs

@@ -2,6 +2,7 @@
 using CommonAI.Zone;
 using CommonAI.Zone;
 using CommonAI.Zone.Formula;
 using CommonAI.Zone.Formula;
 using CommonAI.Zone.Helper;
 using CommonAI.Zone.Helper;
+using CommonAI.Zone.Instance;
 using CommonLang;
 using CommonLang;
 using System;
 using System;
 using System.Collections.Generic;
 using System.Collections.Generic;
@@ -39,29 +40,39 @@ namespace XmdsCommonSkill.Plugin.PassiveSkills.Pet20200515
 
 
 		protected override void OnInit(GameSkill skillInfo, XmdsVirtual owner)
 		protected override void OnInit(GameSkill skillInfo, XmdsVirtual owner)
 		{
 		{
-			mUUID_1 = owner.RegistOnHitDamage(OnHandleHitDamage, skillInfo, true);
+			//mUUID_1 = owner.RegistOnHitDamage(OnHandleHitDamage, skillInfo, true);
+			mUUID_1 = owner.RegistShareMasterDmgEvent(OnShareMasterDmgEvent, skillInfo);
 			mUUID_2 = owner.RegistCalDamage(OnCallDamageProcess, skillInfo, false);
 			mUUID_2 = owner.RegistCalDamage(OnCallDamageProcess, skillInfo, false);
 		}
 		}
 
 
 		protected override void OnDispose(XmdsVirtual owner)
 		protected override void OnDispose(XmdsVirtual owner)
 		{
 		{
-			owner.UnRegistOnHitDamage(mUUID_1);
+			//owner.UnRegistOnHitDamage(mUUID_1);
+			owner.UnRegistShareMasterDmgEvent(mUUID_1);
 			owner.UnRegistCalDamage(mUUID_2);
 			owner.UnRegistCalDamage(mUUID_2);
 		}
 		}
 
 
-		private float OnHandleHitDamage(float damage, XmdsVirtual hitted, XmdsVirtual attacker, AttackSource source,
+		//private float OnHandleHitDamage(float damage, XmdsVirtual hitted, XmdsVirtual attacker, AttackSource source,
-			ref XmdsVirtual.AtkResult result, DamageType damageType, GameSkill skill, ref bool isEndDispatch)
+		//	ref XmdsVirtual.AtkResult result, DamageType damageType, GameSkill skill, ref bool isEndDispatch)
+		//{
+		//	if (damage > 0 && base.IsTrigger(attacker, skill.SkillLevel))
+		//	{
+		//		hitted.mUnit.Parent.unitLaunchSpell(XmdsSkillType.none, hitted.mUnit, mBindSpell,
+		//			hitted.mUnit.X, hitted.mUnit.Y, hitted.mUnit.ID);
+		//	}
+
+		//	return damage;
+		//}
+
+		private int OnShareMasterDmgEvent(int hp, InstanceUnit sender, InstanceUnit unit, GameSkill skill, ref bool isEndDispatch)
 		{
 		{
-			if (damage > 0 && base.IsTrigger(attacker, skill.SkillLevel))
+			if (hp > 0 && base.IsTrigger((XmdsVirtual)unit.Virtual, skill.SkillLevel))
 			{
 			{
-				hitted.mUnit.Parent.unitLaunchSpell(XmdsSkillType.none, hitted.mUnit, mBindSpell,
+				unit.Parent.unitLaunchSpell(XmdsSkillType.none, unit, mBindSpell, unit.X, unit.Y, unit.ID);
-					hitted.mUnit.X, hitted.mUnit.Y, hitted.mUnit.ID);
 			}
 			}
-
+			return hp;
-			return damage;
 		}
 		}
 
 
-
 		public virtual bool OnCallDamageProcess(XmdsVirtual attacker, XmdsVirtual hitter, AttackSource source, GameSkill gs,
 		public virtual bool OnCallDamageProcess(XmdsVirtual attacker, XmdsVirtual hitter, AttackSource source, GameSkill gs,
 			ref XmdsCommonServer.Plugin.XmdsVirtual.AtkResult result, ref int damage)
 			ref XmdsCommonServer.Plugin.XmdsVirtual.AtkResult result, ref int damage)
 		{
 		{