|
@@ -107,6 +107,7 @@ namespace XmdsCommonServer.Plugin
|
|
|
{
|
|
|
public readonly IOnHit m_hit;
|
|
|
public readonly bool ListenAllSkill = false;
|
|
|
+ public int startDmgData;
|
|
|
|
|
|
public OnHitHandler(IOnHit hit, GameSkill skill, bool listenAll) : base(skill, listenAll)
|
|
|
{
|
|
@@ -1126,19 +1127,34 @@ namespace XmdsCommonServer.Plugin
|
|
|
XmdsAttackProperties atkProp = source.Attack.Properties as XmdsAttackProperties;
|
|
|
if (atkProp.SkillTemplateID != hitend.m_skill.SkillID)
|
|
|
{
|
|
|
+ hitend.startDmgData = 0;
|
|
|
continue;
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
+ }
|
|
|
+
|
|
|
damage = hitend.m_hit.Invoke(damage, target, this, source, ref result, damageType, hitend.m_skill, ref isEndDispatch);
|
|
|
+ hitend.startDmgData = (int)damage;
|
|
|
|
|
|
-
|
|
|
- JSGXmdsHackerModule.CheckAndPrintDmgWarn("HitOther", this, target, sourceDmg, damage, source);
|
|
|
- if (isEndDispatch)
|
|
|
+ if (isEndDispatch)
|
|
|
{
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ if(JSGXmdsHackerModule.CheckAndPrintDmgWarn("HitOther-", this, target, sourceDmg, damage, source))
|
|
|
+ {
|
|
|
+ int startDmg = (int)sourceDmg;
|
|
|
+ for (int i = mOnHitOtherLt.Count - 1; i >= 0; --i)
|
|
|
+ {
|
|
|
+ if(mOnHitOtherLt[i].startDmgData > 0 && startDmg != mOnHitOtherLt[i].startDmgData)
|
|
|
+ {
|
|
|
+ float rate = mOnHitOtherLt[i].startDmgData * 1.0f / startDmg;
|
|
|
+ log.Warn("伤害细则:" + mOnHitOtherLt[i].m_hit.Target + ", " + startDmg + " -> " + mOnHitOtherLt[i].startDmgData + ", 倍率:" + rate);
|
|
|
+ startDmg = mOnHitOtherLt[i].startDmgData;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
return damage;
|
|
|
}
|