private void OnDeadExtraEffect(PoolObjHandle <ActorRoot> _attack) { if (_attack != 0) { BuffSkill skill = null; ResDT_SkillFunc outSkillFunc = null; for (int i = 0; i < _attack.handle.BuffHolderComp.SpawnedBuffList.Count; i++) { skill = _attack.handle.BuffHolderComp.SpawnedBuffList[i]; if ((skill != null) && skill.FindSkillFunc(0x21, out outSkillFunc)) { int inSkillCombineId = skill.GetSkillFuncParam(0x21, 0, false); int num3 = skill.GetSkillFuncParam(0x21, 1, false); int num4 = skill.GetSkillFuncParam(0x21, 2, false); int typeMask = skill.GetSkillFuncParam(0x21, 3, false); int typeSubMask = skill.GetSkillFuncParam(0x21, 4, false); if ((num4 == 1) && this.CheckTargetSubType(typeMask, typeSubMask, base.actorPtr)) { SkillUseParam inParam = new SkillUseParam(); inParam.SetOriginator(_attack); _attack.handle.SkillControl.SpawnBuff(_attack, ref inParam, inSkillCombineId, true); } } } } }
private void InitContext(Action _action) { PoolObjHandle <ActorRoot> actorHandle = _action.GetActorHandle(1); PoolObjHandle <ActorRoot> handle2 = _action.GetActorHandle(0); if ((actorHandle != 0) && (handle2 != 0)) { SkillUseContext refParamObject = _action.refParams.GetRefParamObject <SkillUseContext>("SkillContext"); BuffSkill skill = _action.refParams.GetRefParamObject <BuffSkill>("SkillObj"); ResDT_SkillFunc outSkillFunc = null; if ((skill != null) && skill.FindSkillFunc((int)this.SkillFuncType, out outSkillFunc)) { this.m_context.inTargetObj = actorHandle; this.m_context.inOriginator = handle2; this.m_context.inUseContext = refParamObject; this.m_context.inSkillFunc = outSkillFunc; this.m_context.LocalParams = new ResDT_IntParamArrayNode[6]; for (int i = 0; i < 6; i++) { this.m_context.LocalParams[i] = new ResDT_IntParamArrayNode(); this.m_context.LocalParams[i].iParam = 0; } this.m_context.inAction = _action; this.m_context.inBuffSkill = new PoolObjHandle <BuffSkill>(skill); this.m_context.inDoCount = 0; this.m_context.inOverlayCount = skill.GetOverlayCount(); this.m_context.inLastEffect = true; this.m_context.InitSkillFuncContext(); this.bInit = true; } } }
public int GetSoulExpAddRate(PoolObjHandle <ActorRoot> _target) { int num = 0; BuffSkill skill = null; ResDT_SkillFunc outSkillFunc = null; if (_target != 0) { for (int i = 0; i < this.SpawnedBuffList.Count; i++) { skill = this.SpawnedBuffList[i]; if ((skill != null) && skill.FindSkillFunc(0x31, out outSkillFunc)) { int typeMask = skill.GetSkillFuncParam(0x31, 0, false); int typeSubMask = skill.GetSkillFuncParam(0x31, 1, false); int num5 = skill.GetSkillFuncParam(0x31, 2, false); int num6 = skill.GetSkillFuncParam(0x31, 3, false); if (this.CheckTargetSubType(typeMask, typeSubMask, _target)) { bool flag = true; if (num6 > 0) { flag = this.CheckTargetFromEnemy(base.actorPtr, _target); } if (flag) { num += num5; } } } } } return(num); }
private void OnDeadExtraEffect(PoolObjHandle <ActorRoot> _attack) { if (!_attack) { return; } ResDT_SkillFunc skillFunc = null; for (int i = 0; i < _attack.get_handle().BuffHolderComp.SpawnedBuffList.get_Count(); i++) { BuffSkill buffSkill = _attack.get_handle().BuffHolderComp.SpawnedBuffList.get_Item(i); if (buffSkill != null && buffSkill.FindSkillFunc(33, out skillFunc)) { int skillFuncParam = buffSkill.GetSkillFuncParam(skillFunc, 0, false); int skillFuncParam2 = buffSkill.GetSkillFuncParam(skillFunc, 1, false); int skillFuncParam3 = buffSkill.GetSkillFuncParam(skillFunc, 2, false); int skillFuncParam4 = buffSkill.GetSkillFuncParam(skillFunc, 3, false); int skillFuncParam5 = buffSkill.GetSkillFuncParam(skillFunc, 4, false); if (skillFuncParam3 == 1 && this.CheckTargetSubType(skillFuncParam4, skillFuncParam5, this.actorPtr)) { SkillUseParam skillUseParam = default(SkillUseParam); skillUseParam.Init(); skillUseParam.SetOriginator(_attack); skillUseParam.bExposing = buffSkill.skillContext.bExposing; _attack.get_handle().SkillControl.SpawnBuff(_attack, ref skillUseParam, skillFuncParam, true); } } } }
public void OnDead(PoolObjHandle <ActorRoot> _attack) { if (this.clearRule != null) { this.clearRule.CheckBuffNoClear(RES_SKILLFUNC_CLEAR_RULE.RES_SKILLFUNC_CLEAR_DEAD); } BuffSkill inBuff = null; ResDT_SkillFunc outSkillFunc = null; for (int i = 0; i < this.SpawnedBuffList.Count; i++) { inBuff = this.SpawnedBuffList[i]; if ((inBuff != null) && inBuff.FindSkillFunc(0x20, out outSkillFunc)) { int reviveTime = inBuff.CustomParams[0]; int reviveLife = inBuff.CustomParams[1]; bool autoReset = inBuff.CustomParams[2] == 1; bool bBaseRevive = inBuff.CustomParams[3] == 0; bool bCDReset = inBuff.CustomParams[4] == 1; base.actor.ActorControl.SetReviveContext(reviveTime, reviveLife, autoReset, bBaseRevive, bCDReset); this.RemoveBuff(inBuff); } if ((((base.actor.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Hero) && (_attack != 0)) && ((_attack.handle.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Hero) && (inBuff != null))) && ((inBuff.cfgData != null) && (inBuff.cfgData.bIsInheritByKiller == 1))) { this.RemoveBuff(inBuff); SkillUseContext inContext = new SkillUseContext(); inContext.SetOriginator(_attack); _attack.handle.SkillControl.SpawnBuff(_attack, inContext, inBuff.SkillID, true); } } this.OnDeadExtraEffect(_attack); }
public int GetSoulExpAddRate(PoolObjHandle <ActorRoot> _target) { int num = 0; BuffSkill skill = null; ResDT_SkillFunc outSkillFunc = null; if (_target != 0) { for (int i = 0; i < this.SpawnedBuffList.Count; i++) { skill = this.SpawnedBuffList[i]; if ((skill != null) && skill.FindSkillFunc(0x31, out outSkillFunc)) { int typeMask = skill.CustomParams[0]; int typeSubMask = skill.CustomParams[1]; int num5 = skill.CustomParams[2]; if (this.CheckTargetSubType(typeMask, typeSubMask)) { num += num5; } } } } return(num); }
public int GetSkillFuncParam(int inSkillFuncType, int _index, bool _bGrow) { ResDT_SkillFunc resDT_SkillFunc = this.FindSkillFunc(inSkillFuncType); if (resDT_SkillFunc == null) { DebugHelper.Assert(false, "FindSkillFunc error: inSkillFuncType = {0}", new object[] { inSkillFuncType }); return(0); } if (_index < 0 || _index + 1 > 8) { DebugHelper.Assert(false, "GetSkillFuncParam: index = {0}", new object[] { _index }); } if (_bGrow) { int num = resDT_SkillFunc.astSkillFuncParam[_index].iParam; int iParam = resDT_SkillFunc.astSkillFuncGroup[_index].iParam; int num2 = iParam * (this.buffLevel - 1); num += num2; return(num * this.overlayCount); } return(resDT_SkillFunc.astSkillFuncParam[_index].iParam); }
private int OnConditionExtraHurt(BuffSkill _buffSkill, PoolObjHandle <ActorRoot> _attack) { int num = 0; ResDT_SkillFunc outSkillFunc = null; if ((_buffSkill != null) && _buffSkill.FindSkillFunc(0x2c, out outSkillFunc)) { int num2 = _buffSkill.CustomParams[0]; int num3 = _buffSkill.CustomParams[1]; int num4 = _buffSkill.CustomParams[2]; int num5 = _buffSkill.CustomParams[3]; bool flag = num2 == 1; int num6 = !flag ? base.actor.ValueComponent.actorHp : _attack.handle.ValueComponent.actorHp; int num7 = !flag ? base.actor.ValueComponent.mActorValue[RES_FUNCEFT_TYPE.RES_FUNCEFT_MAXHP].totalValue : _attack.handle.ValueComponent.mActorValue[RES_FUNCEFT_TYPE.RES_FUNCEFT_MAXHP].totalValue; int num8 = (num6 * 0x2710) / num7; if (num4 == 1) { if (num8 <= num3) { num = num5; } return(num); } if ((num4 == 4) && (num8 >= num3)) { num = num5; } } return(num); }
public int GetCoinAddRate(PoolObjHandle <ActorRoot> _target) { int num = 0; ResDT_SkillFunc skillFunc = null; if (!_target) { return(num); } for (int i = 0; i < this.SpawnedBuffList.get_Count(); i++) { BuffSkill buffSkill = this.SpawnedBuffList.get_Item(i); if (buffSkill != null && buffSkill.FindSkillFunc(71, out skillFunc)) { int skillFuncParam = buffSkill.GetSkillFuncParam(skillFunc, 0, false); int skillFuncParam2 = buffSkill.GetSkillFuncParam(skillFunc, 1, false); int skillFuncParam3 = buffSkill.GetSkillFuncParam(skillFunc, 2, false); int skillFuncParam4 = buffSkill.GetSkillFuncParam(skillFunc, 3, false); if (this.CheckTargetSubType(skillFuncParam, skillFuncParam2, _target)) { bool flag = true; if (skillFuncParam4 > 0) { flag = this.CheckTargetFromEnemy(this.actorPtr, _target); } if (flag) { num += skillFuncParam3; } } } } return(num); }
public void OnAssistEffect(ref PoolObjHandle <ActorRoot> deadActor) { ResDT_SkillFunc skillFunc = null; for (int i = 0; i < this.SpawnedBuffList.get_Count(); i++) { BuffSkill buffSkill = this.SpawnedBuffList.get_Item(i); if (buffSkill != null && buffSkill.FindSkillFunc(33, out skillFunc)) { int skillFuncParam = buffSkill.GetSkillFuncParam(skillFunc, 0, false); int skillFuncParam2 = buffSkill.GetSkillFuncParam(skillFunc, 1, false); int skillFuncParam3 = buffSkill.GetSkillFuncParam(skillFunc, 2, false); int skillFuncParam4 = buffSkill.GetSkillFuncParam(skillFunc, 3, false); int skillFuncParam5 = buffSkill.GetSkillFuncParam(skillFunc, 4, false); if (skillFuncParam3 == 2 && this.CheckTargetSubType(skillFuncParam4, skillFuncParam5, deadActor)) { SkillUseParam skillUseParam = default(SkillUseParam); skillUseParam.Init(); skillUseParam.SetOriginator(this.actorPtr); skillUseParam.bExposing = buffSkill.skillContext.bExposing; this.actor.SkillControl.SpawnBuff(this.actorPtr, ref skillUseParam, skillFuncParam, true); } } } }
private void OnDamageTriggerEffect(PoolObjHandle <ActorRoot> _selfActor, PoolObjHandle <ActorRoot> _attacker) { ResDT_SkillFunc skillFunc = null; if (!_selfActor || !_attacker || _attacker.get_handle().TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Organ) { return; } for (int i = 0; i < _selfActor.get_handle().BuffHolderComp.SpawnedBuffList.get_Count(); i++) { BuffSkill buffSkill = _selfActor.get_handle().BuffHolderComp.SpawnedBuffList.get_Item(i); if (buffSkill != null && buffSkill.FindSkillFunc(84, out skillFunc)) { int skillFuncParam = buffSkill.GetSkillFuncParam(skillFunc, 0, false); if (skillFuncParam > 0) { SkillUseParam skillUseParam = default(SkillUseParam); skillUseParam.Init(); skillUseParam.SetOriginator(_selfActor); skillUseParam.bExposing = buffSkill.skillContext.bExposing; _selfActor.get_handle().SkillControl.SpawnBuff(_attacker, ref skillUseParam, skillFuncParam, true); _selfActor.get_handle().BuffHolderComp.RemoveBuff(buffSkill); } } } }
private int OnConditionExtraHurt(BuffSkill _buffSkill, PoolObjHandle <ActorRoot> _attack) { int result = 0; ResDT_SkillFunc skillFunc = null; if (_buffSkill != null && _buffSkill.FindSkillFunc(44, out skillFunc)) { int skillFuncParam = _buffSkill.GetSkillFuncParam(skillFunc, 0, false); int skillFuncParam2 = _buffSkill.GetSkillFuncParam(skillFunc, 1, false); int skillFuncParam3 = _buffSkill.GetSkillFuncParam(skillFunc, 2, false); int skillFuncParam4 = _buffSkill.GetSkillFuncParam(skillFunc, 3, false); bool flag = skillFuncParam == 1; int num = (!flag) ? this.actor.ValueComponent.actorHp : _attack.get_handle().ValueComponent.actorHp; int num2 = (!flag) ? this.actor.ValueComponent.mActorValue[5].totalValue : _attack.get_handle().ValueComponent.mActorValue[5].totalValue; int num3 = num * 10000 / num2; if (skillFuncParam3 == 1) { if (num3 <= skillFuncParam2) { result = skillFuncParam4; } } else if (skillFuncParam3 == 4 && num3 >= skillFuncParam2) { result = skillFuncParam4; } } return(result); }
private void OnDeadExtraEffect(PoolObjHandle <ActorRoot> _attack) { BuffSkill skill = null; ResDT_SkillFunc outSkillFunc = null; if (_attack != 0) { for (int i = 0; i < _attack.handle.BuffHolderComp.SpawnedBuffList.Count; i++) { skill = _attack.handle.BuffHolderComp.SpawnedBuffList[i]; if ((skill != null) && skill.FindSkillFunc(0x21, out outSkillFunc)) { int inSkillCombineId = skill.CustomParams[0]; int num3 = skill.CustomParams[1]; int num4 = skill.CustomParams[2]; int typeMask = skill.CustomParams[3]; int typeSubMask = skill.CustomParams[4]; if ((num4 != 0) && this.CheckTargetSubType(typeMask, typeSubMask)) { SkillUseContext inContext = new SkillUseContext(); inContext.SetOriginator(_attack); _attack.handle.SkillControl.SpawnBuff(_attack, inContext, inSkillCombineId, true); } } } } }
public int OnHurtBounceDamage(ref HurtDataInfo hurt, int hp) { if (hp <= 0) { return(hp); } if (!hurt.atker || hurt.bBounceHurt) { return(hp); } ResDT_SkillFunc skillFunc = null; int num = hp; for (int i = 0; i < this.SpawnedBuffList.get_Count(); i++) { BuffSkill buffSkill = this.SpawnedBuffList.get_Item(i); if (buffSkill != null && buffSkill.FindSkillFunc(83, out skillFunc)) { int skillFuncParam = buffSkill.GetSkillFuncParam(skillFunc, 2, false); if ((skillFuncParam & 1 << (int)hurt.atker.get_handle().TheActorMeta.ActorType) <= 0) { int skillFuncParam2 = buffSkill.GetSkillFuncParam(skillFunc, 0, false); int skillFuncParam3 = buffSkill.GetSkillFuncParam(skillFunc, 1, false); int num2 = num * skillFuncParam2 / 10000; num -= num2; HurtDataInfo hurtDataInfo = default(HurtDataInfo); HurtAttackerInfo attackInfo = default(HurtAttackerInfo); attackInfo.Init(hurt.target, hurt.atker); hurtDataInfo.atker = hurt.target; hurtDataInfo.target = hurt.atker; hurtDataInfo.attackInfo = attackInfo; hurtDataInfo.atkSlot = SkillSlotType.SLOT_SKILL_VALID; hurtDataInfo.hurtType = (HurtTypeDef)skillFuncParam3; hurtDataInfo.extraHurtType = ExtraHurtTypeDef.ExtraHurt_Value; hurtDataInfo.hurtValue = num2; hurtDataInfo.adValue = 0; hurtDataInfo.apValue = 0; hurtDataInfo.hpValue = 0; hurtDataInfo.loseHpValue = 0; hurtDataInfo.iConditionType = 0; hurtDataInfo.iConditionParam = 0; hurtDataInfo.hurtCount = 0; hurtDataInfo.firstHemoFadeRate = 0; hurtDataInfo.followUpHemoFadeRate = 0; hurtDataInfo.iEffectCountInSingleTrigger = 0; hurtDataInfo.bExtraBuff = false; hurtDataInfo.gatherTime = 0; hurtDataInfo.bBounceHurt = true; hurtDataInfo.bLastHurt = false; hurtDataInfo.iAddTotalHurtValueRate = 0; hurtDataInfo.iAddTotalHurtValue = 0; hurtDataInfo.iEffectFadeRate = 10000; hurtDataInfo.iOverlayFadeRate = 10000; int num3 = hurt.atker.get_handle().HurtControl.TakeBouncesDamage(ref hurtDataInfo); } } } return(num); }
public void AddBuff(BuffSkill inBuff) { ResDT_SkillFunc outSkillFunc = null; if ((inBuff != null) && inBuff.FindSkillFunc(0x48, out outSkillFunc)) { this.extraHurtList.Add(new PoolObjHandle<BuffSkill>(inBuff)); } }
public void RemoveBuff(ref PoolObjHandle<BuffSkill> inBuff) { ResDT_SkillFunc outSkillFunc = null; if ((inBuff != 0) && inBuff.handle.FindSkillFunc(0x48, out outSkillFunc)) { this.extraHurtList.Remove(inBuff); } }
private void OnDamageExtraEffect(PoolObjHandle <ActorRoot> _attack, SkillSlotType _slotType) { BuffSkill inBuff = null; ResDT_SkillFunc outSkillFunc = null; if (_attack != 0) { for (int i = 0; i < _attack.handle.BuffHolderComp.SpawnedBuffList.Count; i++) { inBuff = _attack.handle.BuffHolderComp.SpawnedBuffList[i]; if ((inBuff != null) && inBuff.FindSkillFunc(0x21, out outSkillFunc)) { bool flag = false; bool flag2 = true; int inSkillCombineId = inBuff.CustomParams[0]; int num3 = inBuff.CustomParams[1]; int num4 = inBuff.CustomParams[2]; int typeMask = inBuff.CustomParams[3]; int typeSubMask = inBuff.CustomParams[4]; int num7 = inBuff.CustomParams[5]; if ((num4 == 0) && this.CheckTargetSubType(typeMask, typeSubMask)) { if (num3 == 0) { flag = true; } else if ((num3 & (((int)1) << _slotType)) > 0) { flag = true; } if (num7 > 0) { if ((Singleton <FrameSynchr> .GetInstance().LogicFrameTick - inBuff.controlTime) >= num7) { flag2 = true; } else { flag2 = false; } } if (flag && flag2) { SkillUseContext inContext = new SkillUseContext(); inContext.SetOriginator(_attack); _attack.handle.SkillControl.SpawnBuff(base.actorPtr, inContext, inSkillCombineId, true); inBuff.controlTime = Singleton <FrameSynchr> .GetInstance().LogicFrameTick; if (num7 == -1) { _attack.handle.BuffHolderComp.RemoveBuff(inBuff); } } } } } } }
public void RemoveBuff(ref PoolObjHandle <BuffSkill> inBuff) { ResDT_SkillFunc resDT_SkillFunc = null; if (inBuff && inBuff.handle.FindSkillFunc(72, out resDT_SkillFunc)) { this.extraHurtList.Remove(inBuff); } }
private int ResistDeadDamage(ref HurtDataInfo _hurt, int _hurtValue) { ResDT_SkillFunc skillFunc = null; if (this.buffHolder == null || this.buffHolder.actor == null) { return(_hurtValue); } ActorRoot actor = this.buffHolder.actor; for (int i = 0; i < actor.BuffHolderComp.SpawnedBuffList.get_Count(); i++) { BuffSkill buffSkill = actor.BuffHolderComp.SpawnedBuffList.get_Item(i); if (buffSkill != null && buffSkill.FindSkillFunc(54, out skillFunc)) { int skillFuncParam = buffSkill.GetSkillFuncParam(skillFunc, 0, false); if (buffSkill.GetSkillFuncParam(skillFunc, 1, false) == 0) { if (actor.ValueComponent.actorHp <= _hurtValue) { SkillUseParam skillUseParam = default(SkillUseParam); skillUseParam.SetOriginator(_hurt.atker); skillUseParam.bExposing = buffSkill.skillContext.bExposing; actor.SkillControl.SpawnBuff(actor.SelfPtr, ref skillUseParam, skillFuncParam, true); this.buffHolder.RemoveBuff(buffSkill); DefaultGameEventParam defaultGameEventParam = new DefaultGameEventParam(this.buffHolder.actorPtr, _hurt.atker); Singleton <GameEventSys> .get_instance().SendEvent <DefaultGameEventParam>(GameEventDef.Event_ActorImmuneDeadHurt, ref defaultGameEventParam); _hurtValue = 0; } } else { SkillUseParam skillUseParam2 = default(SkillUseParam); skillUseParam2.SetOriginator(_hurt.atker); skillUseParam2.bExposing = buffSkill.skillContext.bExposing; actor.SkillControl.SpawnBuff(actor.SelfPtr, ref skillUseParam2, skillFuncParam, true); this.buffHolder.RemoveBuff(buffSkill); _hurtValue = 0; } } if (_hurt.atkSlot == SkillSlotType.SLOT_SKILL_0 && buffSkill != null && buffSkill.FindSkillFunc(67, out skillFunc) && _hurt.atker && _hurt.atker.get_handle().TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Hero) { int skillFuncParam2 = buffSkill.GetSkillFuncParam(skillFunc, 0, false); int skillFuncParam3 = buffSkill.GetSkillFuncParam(skillFunc, 4, false); if (skillFuncParam2 == 1) { _hurtValue = _hurtValue * (10000 - skillFuncParam3) / 10000; } else if (skillFuncParam2 == 0) { _hurtValue -= skillFuncParam3; } } } return(_hurtValue); }
private int ResistDeadDamage(ref HurtDataInfo _hurt, int _hurtValue) { BuffSkill inBuff = null; ResDT_SkillFunc outSkillFunc = null; if ((this.buffHolder != null) && (this.buffHolder.actor != null)) { ActorRoot actor = this.buffHolder.actor; for (int i = 0; i < actor.BuffHolderComp.SpawnedBuffList.Count; i++) { inBuff = actor.BuffHolderComp.SpawnedBuffList[i]; if ((inBuff != null) && inBuff.FindSkillFunc(0x36, out outSkillFunc)) { int inSkillCombineId = inBuff.GetSkillFuncParam(0x36, 0, false); if (inBuff.GetSkillFuncParam(0x36, 1, false) == 0) { if (actor.ValueComponent.actorHp <= _hurtValue) { SkillUseParam inParam = new SkillUseParam(); inParam.SetOriginator(_hurt.atker); actor.SkillControl.SpawnBuff(actor.SelfPtr, ref inParam, inSkillCombineId, true); this.buffHolder.RemoveBuff(inBuff); DefaultGameEventParam prm = new DefaultGameEventParam(this.buffHolder.actorPtr, _hurt.atker); Singleton <GameEventSys> .instance.SendEvent <DefaultGameEventParam>(GameEventDef.Event_ActorImmuneDeadHurt, ref prm); _hurtValue = 0; } } else { SkillUseParam param3 = new SkillUseParam(); param3.SetOriginator(_hurt.atker); actor.SkillControl.SpawnBuff(actor.SelfPtr, ref param3, inSkillCombineId, true); this.buffHolder.RemoveBuff(inBuff); _hurtValue = 0; } } if ((((_hurt.atkSlot == SkillSlotType.SLOT_SKILL_0) && (inBuff != null)) && (inBuff.FindSkillFunc(0x43, out outSkillFunc) && (_hurt.atker != 0))) && (_hurt.atker.handle.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Hero)) { int num4 = inBuff.GetSkillFuncParam(0x43, 0, false); int num5 = inBuff.GetSkillFuncParam(0x43, 4, false); switch (num4) { case 1: _hurtValue = (_hurtValue * (0x2710 - num5)) / 0x2710; break; case 0: _hurtValue -= num5; break; } } } } return(_hurtValue); }
private int ResistDeadDamage(ref HurtDataInfo _hurt, int _hurtValue) { BuffSkill inBuff = null; ResDT_SkillFunc outSkillFunc = null; if ((this.buffHolder != null) && (this.buffHolder.actor != null)) { ActorRoot actor = this.buffHolder.actor; for (int i = 0; i < actor.BuffHolderComp.SpawnedBuffList.Count; i++) { inBuff = actor.BuffHolderComp.SpawnedBuffList[i]; if ((inBuff != null) && inBuff.FindSkillFunc(0x36, out outSkillFunc)) { int inSkillCombineId = inBuff.CustomParams[0]; if (inBuff.CustomParams[1] == 0) { if (actor.ValueComponent.actorHp <= _hurtValue) { SkillUseContext inContext = new SkillUseContext(); inContext.SetOriginator(_hurt.atker); actor.SkillControl.SpawnBuff(actor.SelfPtr, inContext, inSkillCombineId, true); this.buffHolder.RemoveBuff(inBuff); DefaultGameEventParam prm = new DefaultGameEventParam(this.buffHolder.actorPtr, _hurt.atker); Singleton <GameEventSys> .instance.SendEvent <DefaultGameEventParam>(GameEventDef.Event_ActorImmuneDeadHurt, ref prm); _hurtValue = 0; } } else { SkillUseContext context2 = new SkillUseContext(); context2.SetOriginator(_hurt.atker); actor.SkillControl.SpawnBuff(actor.SelfPtr, context2, inSkillCombineId, true); this.buffHolder.RemoveBuff(inBuff); _hurtValue = 0; } } if (((_hurt.atkSlot == SkillSlotType.SLOT_SKILL_0) && (inBuff != null)) && inBuff.FindSkillFunc(0x43, out outSkillFunc)) { int num4 = inBuff.CustomParams[0]; int num5 = inBuff.CustomParams[4]; switch (num4) { case 1: _hurtValue = (_hurtValue * (0x2710 - num5)) / 0x2710; break; case 0: _hurtValue -= num5; break; } } } } return(_hurtValue); }
public bool IsExistSkillFuncType(int inSkillFuncType) { ResDT_SkillFunc resDT_SkillFunc = null; for (int i = 0; i < this.SpawnedBuffList.get_Count(); i++) { BuffSkill buffSkill = this.SpawnedBuffList.get_Item(i); if (buffSkill != null && buffSkill.FindSkillFunc(inSkillFuncType, out resDT_SkillFunc)) { return(true); } } return(false); }
public void AnalyseSkillCombine(ref ActorPreloadTab loadInfo, int combineId) { if (combineId > 0) { ResSkillCombineCfgInfo dataByKey = GameDataMgr.skillCombineDatabin.GetDataByKey(combineId); if (dataByKey != null) { AssetLoadBase item = new AssetLoadBase { assetPath = StringHelper.UTF8BytesToString(ref dataByKey.szPrefab) }; string checkerKey = this.GetCheckerKey(item.assetPath, loadInfo.MarkID); if (!this.ageCheckerSet.ContainsKey(checkerKey)) { loadInfo.ageActions.Add(item); this.ageCheckerSet.Add(checkerKey, true); } if ((dataByKey.astSkillFuncInfo != null) && (dataByKey.astSkillFuncInfo.Length > 0)) { for (int i = 0; i < dataByKey.astSkillFuncInfo.Length; i++) { ResDT_SkillFunc func = dataByKey.astSkillFuncInfo[i]; if (((((func.dwSkillFuncType == 0x1c) || (func.dwSkillFuncType == 0x21)) || ((func.dwSkillFuncType == 0x36) || (func.dwSkillFuncType == 0x37))) && (((func.astSkillFuncParam != null) && (func.astSkillFuncParam.Length != 0)) && (func.astSkillFuncParam[0] != null))) && (func.astSkillFuncParam[0].iParam > 0)) { int iParam = func.astSkillFuncParam[0].iParam; if (func.dwSkillFuncType == 0x1c) { this.AnalyseSkillMark(ref loadInfo, iParam); } else if (func.dwSkillFuncType == 0x21) { if (combineId != iParam) { this.AnalyseSkillCombine(ref loadInfo, iParam); } } else if (func.dwSkillFuncType == 0x36) { this.AnalyseSkillCombine(ref loadInfo, iParam); } else if (func.dwSkillFuncType == 0x37) { this.AnalyseSkill(ref loadInfo, iParam); } } } } } } }
public bool IsExistSkillFuncType(int inSkillFuncType) { BuffSkill skill = null; ResDT_SkillFunc outSkillFunc = null; for (int i = 0; i < this.SpawnedBuffList.Count; i++) { skill = this.SpawnedBuffList[i]; if ((skill != null) && skill.FindSkillFunc(inSkillFuncType, out outSkillFunc)) { return(true); } } return(false); }
public bool FindSkillFunc(int inSkillFuncType, out ResDT_SkillFunc outSkillFunc) { outSkillFunc = null; if (this.cfgData != null) { for (int i = 0; i < 4; i++) { if (this.cfgData.astSkillFuncInfo[i].dwSkillFuncType == inSkillFuncType) { outSkillFunc = this.cfgData.astSkillFuncInfo[i]; return(true); } } } return(false); }
private int OnTargetExtraHurt(BuffSkill _buffSkill, PoolObjHandle <ActorRoot> _attack) { int num = 0; ResDT_SkillFunc outSkillFunc = null; if ((_buffSkill != null) && _buffSkill.FindSkillFunc(0x30, out outSkillFunc)) { int typeMask = _buffSkill.GetSkillFuncParam(0x30, 0, false); int typeSubMask = _buffSkill.GetSkillFuncParam(0x30, 1, false); int num4 = _buffSkill.GetSkillFuncParam(0x30, 2, false); if (this.CheckTargetSubType(typeMask, typeSubMask, base.actorPtr)) { num = num4; } } return(num); }
private int OnTargetExtraHurt(BuffSkill _buffSkill, PoolObjHandle <ActorRoot> _attack) { int result = 0; ResDT_SkillFunc skillFunc = null; if (_buffSkill != null && _buffSkill.FindSkillFunc(48, out skillFunc)) { int skillFuncParam = _buffSkill.GetSkillFuncParam(skillFunc, 0, false); int skillFuncParam2 = _buffSkill.GetSkillFuncParam(skillFunc, 1, false); int skillFuncParam3 = _buffSkill.GetSkillFuncParam(skillFunc, 2, false); if (this.CheckTargetSubType(skillFuncParam, skillFuncParam2, this.actorPtr)) { result = skillFuncParam3; } } return(result); }
private int OnTargetExtraHurt(BuffSkill _buffSkill, PoolObjHandle <ActorRoot> _attack) { int num = 0; ResDT_SkillFunc outSkillFunc = null; if ((_buffSkill != null) && _buffSkill.FindSkillFunc(0x30, out outSkillFunc)) { int typeMask = _buffSkill.CustomParams[0]; int typeSubMask = _buffSkill.CustomParams[1]; int num4 = _buffSkill.CustomParams[2]; if (this.CheckTargetSubType(typeMask, typeSubMask)) { num = num4; } } return(num); }
public void OnDamageExtraHurtFunc(ref HurtDataInfo _hurt, SkillSlotType _slotType) { ResDT_SkillFunc skillFunc = null; for (int i = 0; i < this.SpawnedBuffList.get_Count(); i++) { BuffSkill buffSkill = this.SpawnedBuffList.get_Item(i); if (buffSkill != null && buffSkill.FindSkillFunc(80, out skillFunc)) { SkillSlotType skillFuncParam = (SkillSlotType)buffSkill.GetSkillFuncParam(skillFunc, 0, false); if (_slotType == skillFuncParam) { int skillFuncParam2 = buffSkill.GetSkillFuncParam(skillFunc, 1, false); _hurt.iReduceDamage += skillFuncParam2; } } } }
private int OnControlExtraHurt(BuffSkill _buffSkill, PoolObjHandle <ActorRoot> _attack) { ResDT_SkillFunc outSkillFunc = null; if (((_buffSkill != null) && _buffSkill.FindSkillFunc(0x33, out outSkillFunc)) && (base.actor != null)) { BuffSkill skill = null; for (int i = 0; i < base.actor.BuffHolderComp.SpawnedBuffList.Count; i++) { skill = base.actor.BuffHolderComp.SpawnedBuffList[i]; if ((skill != null) && (skill.cfgData.dwEffectType == 2)) { return(_buffSkill.CustomParams[0]); } } } return(0); }