public static int OnDamageExtraEffect(ref HurtDataInfo _hurt, int _hurtValue) { SkillSlot skillSlot = null; if (!_hurt.atker || _hurt.atker.handle.ActorControl.IsDeadState) { return(_hurtValue); } BufferLogicEffect logicEffect = _hurt.atker.handle.BuffHolderComp.logicEffect; List <PoolObjHandle <BuffSkill> > list = logicEffect.GetExtraHurtList(); for (int i = 0; i < list.get_Count(); i++) { if (!_hurt.target) { return(_hurtValue); } BuffSkill buffSkill = list.get_Item(i); int skillFuncParam = buffSkill.GetSkillFuncParam(72, 0, false); if (_hurt.atkSlot == (SkillSlotType)skillFuncParam && _hurt.atker.handle.SkillControl.TryGetSkillSlot(_hurt.atkSlot, out skillSlot)) { int skillFuncParam2 = buffSkill.GetSkillFuncParam(72, 1, false); int skillFuncParam3 = buffSkill.GetSkillFuncParam(72, 2, false); int skillFuncParam4 = buffSkill.GetSkillFuncParam(72, 3, false); int skillFuncParam5 = buffSkill.GetSkillFuncParam(72, 4, false); logicEffect.SetSkillSlotUseTime(_hurt.atkSlot, skillFuncParam5); logicEffect.SetSkillSlotUseCount(_hurt.atkSlot, skillSlot.GetSkillUseCount()); return(logicEffect.DamageExtraEffect(ref _hurt, _hurtValue, skillFuncParam2, skillFuncParam3, skillFuncParam4)); } } return(_hurtValue); }
public static int OnDamageExtraEffect(ref HurtDataInfo _hurt, int _hurtValue) { BuffSkill skill = null; SkillSlot slot = null; BufferLogicEffect logicEffect = null; List<PoolObjHandle<BuffSkill>> extraHurtList = null; if ((_hurt.atker != 0) && !_hurt.atker.handle.ActorControl.IsDeadState) { logicEffect = _hurt.atker.handle.BuffHolderComp.logicEffect; extraHurtList = logicEffect.GetExtraHurtList(); for (int i = 0; i < extraHurtList.Count; i++) { if (_hurt.target == 0) { return _hurtValue; } skill = extraHurtList[i]; int num = skill.GetSkillFuncParam(0x48, 0, false); if ((_hurt.atkSlot == num) && _hurt.atker.handle.SkillControl.TryGetSkillSlot(_hurt.atkSlot, out slot)) { int num2 = skill.GetSkillFuncParam(0x48, 1, false); int num3 = skill.GetSkillFuncParam(0x48, 2, false); int num4 = skill.GetSkillFuncParam(0x48, 3, false); int num5 = skill.GetSkillFuncParam(0x48, 4, false); logicEffect.SetSkillSlotUseTime(_hurt.atkSlot, num5); logicEffect.SetSkillSlotUseCount(_hurt.atkSlot, slot.GetSkillUseCount()); return logicEffect.DamageExtraEffect(ref _hurt, _hurtValue, num2, num3, num4); } } } return _hurtValue; }
public void InitSkillSlotExtraHurt(SkillSlot _slot) { int slotType = (int) _slot.SlotType; uint skillUseCount = _slot.GetSkillUseCount(); if (this.extraHurtList.Count >= 1) { if (this.skillSlotHurt[slotType].skillUseCount >= uint.MaxValue) { this.skillSlotHurt[slotType].skillUseCount = 0; } if ((skillUseCount == (this.skillSlotHurt[slotType].skillUseCount + 1)) && ((Singleton<FrameSynchr>.GetInstance().LogicFrameTick - this.skillSlotHurt[slotType].recordTime) <= this.skillSlotHurt[slotType].cdTime)) { this.skillSlotHurt[slotType].curTotalHurt = this.skillSlotHurt[slotType].nextTotalHurt; this.skillSlotHurt[slotType].nextTotalHurt = 0; } else { this.skillSlotHurt[slotType].curTotalHurt = 0; this.skillSlotHurt[slotType].nextTotalHurt = 0; } } }
public void InitSkillSlotExtraHurt(SkillSlot _slot) { int slotType = (int)_slot.SlotType; uint skillUseCount = _slot.GetSkillUseCount(); if (this.extraHurtList.get_Count() < 1) { return; } if (this.skillSlotHurt[slotType].skillUseCount >= 4294967295u) { this.skillSlotHurt[slotType].skillUseCount = 0u; } if (skillUseCount == this.skillSlotHurt[slotType].skillUseCount + 1u && Singleton <FrameSynchr> .GetInstance().LogicFrameTick - this.skillSlotHurt[slotType].recordTime <= (ulong)((long)this.skillSlotHurt[slotType].cdTime)) { this.skillSlotHurt[slotType].curTotalHurt = this.skillSlotHurt[slotType].nextTotalHurt; this.skillSlotHurt[slotType].nextTotalHurt = 0; } else { this.skillSlotHurt[slotType].curTotalHurt = 0; this.skillSlotHurt[slotType].nextTotalHurt = 0; } }