public static bool OnSkillFuncProtect(ref SSkillFuncContext inContext) { if (inContext.inStage == ESkillFuncStage.Enter) { int skillFuncProtectValue = SkillFuncHurtDelegator.GetSkillFuncProtectValue(ref inContext); int skillFuncParam = inContext.GetSkillFuncParam(0, false); int skillFuncParam2 = inContext.GetSkillFuncParam(5, false); int skillFuncParam3 = inContext.GetSkillFuncParam(6, false); if (skillFuncParam == 1) { inContext.inBuffSkill.get_handle().CustomParams[0] += skillFuncProtectValue; SkillFuncHurtDelegator.SendProtectEvent(ref inContext, 0, skillFuncProtectValue); } else if (skillFuncParam == 2) { inContext.inBuffSkill.get_handle().CustomParams[1] += skillFuncProtectValue; SkillFuncHurtDelegator.SendProtectEvent(ref inContext, 1, skillFuncProtectValue); } else if (skillFuncParam == 3) { inContext.inBuffSkill.get_handle().CustomParams[2] += skillFuncProtectValue; SkillFuncHurtDelegator.SendProtectEvent(ref inContext, 2, skillFuncProtectValue); } else if (skillFuncParam == 4) { inContext.inBuffSkill.get_handle().CustomParams[3] += skillFuncProtectValue; SkillFuncHurtDelegator.SendProtectEvent(ref inContext, 3, skillFuncProtectValue); } inContext.inBuffSkill.get_handle().CustomParams[4] = skillFuncParam2; inContext.inBuffSkill.get_handle().CustomParams[5] = skillFuncParam3; inContext.inBuffSkill.get_handle().SlotType = inContext.inUseContext.SlotType; return(true); } return(false); }
public static bool OnSkillFuncDisableSkill(ref SSkillFuncContext inContext) { PoolObjHandle <ActorRoot> inTargetObj = inContext.inTargetObj; if (inTargetObj != 0) { if (inContext.inStage == ESkillFuncStage.Enter) { for (int i = 0; i < 7; i++) { if (inContext.GetSkillFuncParam(i, false) == 1) { inTargetObj.handle.ActorControl.AddDisableSkillFlag((SkillSlotType)i); } } } else if (inContext.inStage == ESkillFuncStage.Leave) { for (int j = 0; j < 7; j++) { if (inContext.GetSkillFuncParam(j, false) == 1) { inTargetObj.handle.ActorControl.RmvDisableSkillFlag((SkillSlotType)j); } } } } return(true); }
public static bool OnSkillFuncProtect(ref SSkillFuncContext inContext) { if (inContext.inStage != ESkillFuncStage.Enter) { return(false); } int skillFuncProtectValue = GetSkillFuncProtectValue(ref inContext); int skillFuncParam = inContext.GetSkillFuncParam(0, false); int num3 = inContext.GetSkillFuncParam(5, false); switch (skillFuncParam) { case 1: inContext.inBuffSkill.handle.CustomParams[0] += skillFuncProtectValue; SendProtectEvent(ref inContext, 0, skillFuncProtectValue); break; case 2: inContext.inBuffSkill.handle.CustomParams[1] += skillFuncProtectValue; SendProtectEvent(ref inContext, 1, skillFuncProtectValue); break; case 3: inContext.inBuffSkill.handle.CustomParams[2] += skillFuncProtectValue; SendProtectEvent(ref inContext, 2, skillFuncProtectValue); break; } inContext.inBuffSkill.handle.CustomParams[3] = num3; return(true); }
public static bool OnSkillFuncChangeMgcEffect(ref SSkillFuncContext inContext) { if (inContext.inStage == ESkillFuncStage.Enter) { int skillFuncParam = inContext.GetSkillFuncParam(0, false); int num2 = inContext.GetSkillFuncParam(2, false); int num3 = inContext.GetSkillFuncParam(4, false); ValueDataInfo info1 = inContext.inTargetObj.handle.ValueComponent.mActorValue[RES_FUNCEFT_TYPE.RES_FUNCEFT_PHYATKPT]; info1.totalEftRatioByMgc += num2; ValueDataInfo info2 = inContext.inTargetObj.handle.ValueComponent.mActorValue[RES_FUNCEFT_TYPE.RES_FUNCEFT_MAXHP]; info2.totalEftRatioByMgc += num3; HeroWrapper actorControl = inContext.inTargetObj.handle.ActorControl as HeroWrapper; if (actorControl != null) { actorControl.OnApChangeByMgcEffect(); inContext.inTargetObj.handle.ValueComponent.mActorValue[RES_FUNCEFT_TYPE.RES_FUNCEFT_MGCATKPT].ChangeEvent -= new ValueChangeDelegate(actorControl.OnApChangeByMgcEffect); inContext.inTargetObj.handle.ValueComponent.mActorValue[RES_FUNCEFT_TYPE.RES_FUNCEFT_MGCATKPT].ChangeEvent += new ValueChangeDelegate(actorControl.OnApChangeByMgcEffect); } } else if (inContext.inStage == ESkillFuncStage.Leave) { int num4 = inContext.GetSkillFuncParam(2, false); int num5 = inContext.GetSkillFuncParam(4, false); ValueDataInfo info3 = inContext.inTargetObj.handle.ValueComponent.mActorValue[RES_FUNCEFT_TYPE.RES_FUNCEFT_PHYATKPT]; info3.totalEftRatioByMgc -= num4; ValueDataInfo info4 = inContext.inTargetObj.handle.ValueComponent.mActorValue[RES_FUNCEFT_TYPE.RES_FUNCEFT_MAXHP]; info4.totalEftRatioByMgc -= num5; HeroWrapper wrapper2 = inContext.inTargetObj.handle.ActorControl as HeroWrapper; if (wrapper2 != null) { inContext.inTargetObj.handle.ValueComponent.mActorValue[RES_FUNCEFT_TYPE.RES_FUNCEFT_MGCATKPT].ChangeEvent -= new ValueChangeDelegate(wrapper2.OnApChangeByMgcEffect); } } return(true); }
public static bool OnSkillFuncChangeMgcEffect(ref SSkillFuncContext inContext) { if (inContext.inStage == ESkillFuncStage.Enter) { int skillFuncParam = inContext.GetSkillFuncParam(0, false); int skillFuncParam2 = inContext.GetSkillFuncParam(2, false); int skillFuncParam3 = inContext.GetSkillFuncParam(4, false); inContext.inTargetObj.get_handle().ValueComponent.mActorValue[1].totalEftRatioByMgc += skillFuncParam2; inContext.inTargetObj.get_handle().ValueComponent.mActorValue[5].totalEftRatioByMgc += skillFuncParam3; if (inContext.inTargetObj && inContext.inTargetObj.get_handle().ValueComponent != null) { ValueProperty valueComponent = inContext.inTargetObj.get_handle().ValueComponent; valueComponent.OnValuePropertyChangeByMgcEffect(); inContext.inTargetObj.get_handle().ValueComponent.mActorValue[2].ChangeEvent -= new ValueChangeDelegate(valueComponent.OnValuePropertyChangeByMgcEffect); inContext.inTargetObj.get_handle().ValueComponent.mActorValue[2].ChangeEvent += new ValueChangeDelegate(valueComponent.OnValuePropertyChangeByMgcEffect); } } else if (inContext.inStage == ESkillFuncStage.Leave) { int skillFuncParam4 = inContext.GetSkillFuncParam(2, false); int skillFuncParam5 = inContext.GetSkillFuncParam(4, false); inContext.inTargetObj.get_handle().ValueComponent.mActorValue[1].totalEftRatioByMgc -= skillFuncParam4; inContext.inTargetObj.get_handle().ValueComponent.mActorValue[5].totalEftRatioByMgc -= skillFuncParam5; if (inContext.inTargetObj && inContext.inTargetObj.get_handle().ValueComponent != null) { ValueProperty valueComponent2 = inContext.inTargetObj.get_handle().ValueComponent; inContext.inTargetObj.get_handle().ValueComponent.mActorValue[2].ChangeEvent -= new ValueChangeDelegate(valueComponent2.OnValuePropertyChangeByMgcEffect); } } return(true); }
public static bool OnSkillFuncAddMark(ref SSkillFuncContext inContext) { if (inContext.inStage == ESkillFuncStage.Enter) { PoolObjHandle <ActorRoot> inTargetObj = inContext.inTargetObj; if (inTargetObj) { uint markType = 1u; if (inContext.inBuffSkill && inContext.inBuffSkill.get_handle().cfgData != null) { markType = (uint)inContext.inBuffSkill.get_handle().cfgData.bEffectType; } int skillFuncParam = inContext.GetSkillFuncParam(0, false); if (inContext.GetSkillFuncParam(1, false) == 0) { inTargetObj.get_handle().BuffHolderComp.markRule.AddBufferMark(inContext.inOriginator, skillFuncParam, markType, inContext.inUseContext); } else { inTargetObj.get_handle().BuffHolderComp.markRule.ClearBufferMark(inContext.inOriginator, skillFuncParam); } } return(true); } return(false); }
public static bool OnSkillFuncHpCondition(ref SSkillFuncContext inContext) { int num = 0; int skillFuncParam = inContext.GetSkillFuncParam(1, false); if ((skillFuncParam < 0) || (skillFuncParam >= 0x24)) { return(false); } RES_FUNCEFT_TYPE res_funceft_type = (RES_FUNCEFT_TYPE)skillFuncParam; PoolObjHandle <ActorRoot> inTargetObj = inContext.inTargetObj; if (inTargetObj == 0) { return(false); } int num3 = inContext.GetSkillFuncParam(2, false); if (inContext.inStage != ESkillFuncStage.Leave) { int actorHp = inTargetObj.handle.ValueComponent.actorHp; int totalValue = inTargetObj.handle.ValueComponent.mActorValue[RES_FUNCEFT_TYPE.RES_FUNCEFT_MAXHP].totalValue; int num6 = 0x2710 - ((actorHp * 0x2710) / totalValue); int num7 = inContext.GetSkillFuncParam(3, false); int num8 = inContext.GetSkillFuncParam(0, false); if (num8 == 0) { return(false); } int num9 = (num6 * num7) / num8; int iParam = inContext.LocalParams[0].iParam; if (num3 == 1) { num = (int)(inTargetObj.handle.ValueComponent.mActorValue[res_funceft_type] >> iParam); num = (int)(inTargetObj.handle.ValueComponent.mActorValue[res_funceft_type] << num9); } else { num = ((int)inTargetObj.handle.ValueComponent.mActorValue[res_funceft_type]) - iParam; num = ((int)inTargetObj.handle.ValueComponent.mActorValue[res_funceft_type]) + num9; } inContext.LocalParams[0].iParam = num9; } else if (inContext.inStage == ESkillFuncStage.Leave) { int num11 = inContext.LocalParams[0].iParam; if (num3 == 1) { num = (int)(inTargetObj.handle.ValueComponent.mActorValue[res_funceft_type] >> num11); } else { num = ((int)inTargetObj.handle.ValueComponent.mActorValue[res_funceft_type]) - num11; } } return(true); }
public static bool OnSkillFuncHpCondition(ref SSkillFuncContext inContext) { ValueDataInfo info; int skillFuncParam = inContext.GetSkillFuncParam(1, false); if ((skillFuncParam < 0) || (skillFuncParam >= 0x24)) { return(false); } RES_FUNCEFT_TYPE res_funceft_type = (RES_FUNCEFT_TYPE)skillFuncParam; PoolObjHandle <ActorRoot> inTargetObj = inContext.inTargetObj; if (inTargetObj == 0) { return(false); } int num2 = inContext.GetSkillFuncParam(2, false); if (inContext.inStage != ESkillFuncStage.Leave) { int actorHp = inTargetObj.handle.ValueComponent.actorHp; int totalValue = inTargetObj.handle.ValueComponent.mActorValue[RES_FUNCEFT_TYPE.RES_FUNCEFT_MAXHP].totalValue; int num5 = 0x2710 - ((actorHp * 0x2710) / totalValue); int num6 = inContext.GetSkillFuncParam(3, true); int num7 = inContext.GetSkillFuncParam(0, false); if (num7 == 0) { return(false); } int num8 = (num5 * num6) / num7; int iParam = inContext.LocalParams[0].iParam; if (num2 == 1) { info = inTargetObj.handle.ValueComponent.mActorValue[res_funceft_type] >> iParam; info = inTargetObj.handle.ValueComponent.mActorValue[res_funceft_type] << num8; } else { info = inTargetObj.handle.ValueComponent.mActorValue[res_funceft_type] - iParam; info = inTargetObj.handle.ValueComponent.mActorValue[res_funceft_type] + num8; } inContext.LocalParams[0].iParam = num8; } else if (inContext.inStage == ESkillFuncStage.Leave) { int num10 = inContext.LocalParams[0].iParam; if (num2 == 1) { info = inTargetObj.handle.ValueComponent.mActorValue[res_funceft_type] >> num10; } else { info = inTargetObj.handle.ValueComponent.mActorValue[res_funceft_type] - num10; } } return(true); }
public static bool OnSkillFuncHpCondition(ref SSkillFuncContext inContext) { int skillFuncParam = inContext.GetSkillFuncParam(1, false); if (skillFuncParam < 0 || skillFuncParam >= 37) { return(false); } RES_FUNCEFT_TYPE key = (RES_FUNCEFT_TYPE)skillFuncParam; PoolObjHandle <ActorRoot> inTargetObj = inContext.inTargetObj; if (!inTargetObj) { return(false); } int skillFuncParam2 = inContext.GetSkillFuncParam(2, false); if (inContext.inStage != ESkillFuncStage.Leave) { int actorHp = inTargetObj.handle.ValueComponent.actorHp; int totalValue = inTargetObj.handle.ValueComponent.mActorValue[RES_FUNCEFT_TYPE.RES_FUNCEFT_MAXHP].totalValue; int num = 10000 - actorHp * 10000 / totalValue; int skillFuncParam3 = inContext.GetSkillFuncParam(3, true); int skillFuncParam4 = inContext.GetSkillFuncParam(0, false); if (skillFuncParam4 == 0) { return(false); } int num2 = num * skillFuncParam3 / skillFuncParam4; int iParam = inContext.LocalParams[0].iParam; if (skillFuncParam2 == 1) { ValueDataInfo valueDataInfo = inTargetObj.handle.ValueComponent.mActorValue[key] >> iParam; valueDataInfo = inTargetObj.handle.ValueComponent.mActorValue[key] << num2; } else { ValueDataInfo valueDataInfo2 = inTargetObj.handle.ValueComponent.mActorValue[key] - iParam; valueDataInfo2 = inTargetObj.handle.ValueComponent.mActorValue[key] + num2; } inContext.LocalParams[0].iParam = num2; } else if (inContext.inStage == ESkillFuncStage.Leave) { int iParam2 = inContext.LocalParams[0].iParam; if (skillFuncParam2 == 1) { ValueDataInfo valueDataInfo3 = inTargetObj.handle.ValueComponent.mActorValue[key] >> iParam2; } else { ValueDataInfo valueDataInfo4 = inTargetObj.handle.ValueComponent.mActorValue[key] - iParam2; } } return(true); }
private static int GetChangeValueProperty(ActorRoot targetActor, ref SSkillFuncContext inContext) { int num = inContext.GetSkillFuncParam(1, true); int skillFuncParam = inContext.GetSkillFuncParam(2, true); int skillFuncParam2 = inContext.GetSkillFuncParam(3, true); ESkillFuncMode skillFuncParam3 = (ESkillFuncMode)inContext.GetSkillFuncParam(4, false); int skillFuncParam4 = inContext.GetSkillFuncParam(5, true); num += skillFuncParam * targetActor.ValueComponent.mActorValue[1].totalValue / 10000 + skillFuncParam2 * targetActor.ValueComponent.mActorValue[2].totalValue / 10000; if (skillFuncParam3 == ESkillFuncMode.SkillFuncMode_Constant) { return(num); } int num2 = (int)inContext.inSkillFunc.dwSkillFuncFreq; if (skillFuncParam4 <= 0) { DebugHelper.Assert(false, "ESkillFuncMode LastTime error!"); return(num); } if (num2 <= 0) { num2 = 30; } int num3 = skillFuncParam4 / num2; if (num3 <= 0) { return(num); } if (skillFuncParam3 == ESkillFuncMode.SkillFuncMode_Fade) { if (inContext.inDoCount == 1) { return(num); } if (inContext.inDoCount - 1 <= num3) { return(-num / num3); } return(0); } else { if (inContext.inDoCount == 1) { return(0); } if (inContext.inDoCount - 1 <= num3) { return(num / num3); } return(0); } }
public static bool OnSkillFuncDecHurtRate(ref SSkillFuncContext inContext) { if (inContext.inStage == ESkillFuncStage.Enter) { int skillFuncParam = inContext.GetSkillFuncParam(0, false); int num2 = inContext.GetSkillFuncParam(4, false); inContext.inBuffSkill.handle.CustomParams[0] = skillFuncParam; inContext.inBuffSkill.handle.CustomParams[4] = num2; } return(true); }
public static bool OnSkillFuncImmuneHurt(ref SSkillFuncContext inContext) { if ((inContext.inStage == ESkillFuncStage.Enter) && (inContext.inTargetObj != 0)) { int skillFuncParam = inContext.GetSkillFuncParam(1, false); int num2 = inContext.GetSkillFuncParam(2, false); inContext.inBuffSkill.handle.CustomParams[3] = skillFuncParam; inContext.inBuffSkill.handle.CustomParams[4] = num2; } return(true); }
public static bool OnSkillFuncChangeSkill(ref SSkillFuncContext inContext) { PoolObjHandle <ActorRoot> inTargetObj = inContext.inTargetObj; if (inTargetObj != 0) { int num = 0; int skillFuncParam = 0; int num3 = 0; bool flag = false; BuffChangeSkillRule changeSkillRule = null; if (inContext.inStage == ESkillFuncStage.Enter) { skillFuncParam = inContext.GetSkillFuncParam(0, false); num = inContext.GetSkillFuncParam(1, false); num3 = inContext.GetSkillFuncParam(2, false); flag = inContext.GetSkillFuncParam(3, false) == 1; inContext.LocalParams[0].iParam = skillFuncParam; if (inTargetObj.handle.BuffHolderComp != null) { changeSkillRule = inTargetObj.handle.BuffHolderComp.changeSkillRule; if (changeSkillRule != null) { changeSkillRule.ChangeSkillSlot((SkillSlotType)skillFuncParam, num, num3); } } if (flag && (skillFuncParam == 0)) { inTargetObj.handle.SkillControl.bImmediateAttack = flag; } } else if (inContext.inStage == ESkillFuncStage.Leave) { skillFuncParam = inContext.LocalParams[0].iParam; flag = inContext.GetSkillFuncParam(3, false) == 1; if (inTargetObj.handle.BuffHolderComp != null) { changeSkillRule = inTargetObj.handle.BuffHolderComp.changeSkillRule; if (changeSkillRule != null) { changeSkillRule.RecoverSkillSlot((SkillSlotType)skillFuncParam); } if (flag && (skillFuncParam == 0)) { inTargetObj.handle.SkillControl.bImmediateAttack = false; inTargetObj.handle.ActorControl.CancelCommonAttackMode(); } } } } return(true); }
public static bool OnSkillFuncTargetExtraHurt(ref SSkillFuncContext inContext) { if (inContext.inStage == ESkillFuncStage.Enter) { int skillFuncParam = inContext.GetSkillFuncParam(0, false); int num2 = inContext.GetSkillFuncParam(1, false); int num3 = inContext.GetSkillFuncParam(2, false); inContext.inBuffSkill.handle.CustomParams[0] = skillFuncParam; inContext.inBuffSkill.handle.CustomParams[1] = num2; inContext.inBuffSkill.handle.CustomParams[2] = num3; return(true); } return(true); }
public static bool OnSkillFuncChangeMgcRate(ref SSkillFuncContext inContext) { if (inContext.inStage == ESkillFuncStage.Enter) { int skillFuncParam = inContext.GetSkillFuncParam(3, false); int num = inContext.inTargetObj.get_handle().ValueComponent.mActorValue[2].totalEftRatio += skillFuncParam; } else if (inContext.inStage == ESkillFuncStage.Leave) { int skillFuncParam2 = inContext.GetSkillFuncParam(3, false); int num = inContext.inTargetObj.get_handle().ValueComponent.mActorValue[2].totalEftRatio -= skillFuncParam2; } return(true); }
public static bool OnSkillFuncChangeVision(ref SSkillFuncContext inContext) { int skillFuncParam = inContext.GetSkillFuncParam(1, false); int skillFuncParam2 = inContext.GetSkillFuncParam(2, false); if (inContext.inStage == ESkillFuncStage.Enter) { inContext.inTargetObj.get_handle().HorizonMarker.SightRadius += skillFuncParam; } else if (inContext.inStage == ESkillFuncStage.Leave) { inContext.inTargetObj.get_handle().HorizonMarker.SightRadius -= skillFuncParam; } return(true); }
private static int GetChangeValueProperty(ActorRoot targetActor, ref SSkillFuncContext inContext) { int skillFuncParam = inContext.GetSkillFuncParam(1, true); int num2 = inContext.GetSkillFuncParam(2, true); int num3 = inContext.GetSkillFuncParam(3, true); ESkillFuncMode mode = (ESkillFuncMode)inContext.GetSkillFuncParam(4, false); int num4 = inContext.GetSkillFuncParam(5, true); skillFuncParam += ((num2 * targetActor.ValueComponent.mActorValue[RES_FUNCEFT_TYPE.RES_FUNCEFT_PHYATKPT].totalValue) / 0x2710) + ((num3 * targetActor.ValueComponent.mActorValue[RES_FUNCEFT_TYPE.RES_FUNCEFT_MGCATKPT].totalValue) / 0x2710); if (mode == ESkillFuncMode.SkillFuncMode_Constant) { return(skillFuncParam); } int num5 = 0; int dwSkillFuncFreq = (int)inContext.inSkillFunc.dwSkillFuncFreq; if (num4 <= 0) { DebugHelper.Assert(false, "ESkillFuncMode LastTime error!"); return(skillFuncParam); } if (dwSkillFuncFreq <= 0) { dwSkillFuncFreq = 30; } num5 = num4 / dwSkillFuncFreq; if (num5 <= 0) { return(skillFuncParam); } if (mode == ESkillFuncMode.SkillFuncMode_Fade) { if (inContext.inDoCount == 1) { return(skillFuncParam); } if ((inContext.inDoCount - 1) <= num5) { return(-skillFuncParam / num5); } return(0); } if ((inContext.inDoCount != 1) && ((inContext.inDoCount - 1) <= num5)) { return(skillFuncParam / num5); } return(0); }
public static bool OnSkillFuncChangeMgcRate(ref SSkillFuncContext inContext) { if (inContext.inStage == ESkillFuncStage.Enter) { int skillFuncParam = inContext.GetSkillFuncParam(3, false); ValueDataInfo info1 = inContext.inTargetObj.handle.ValueComponent.mActorValue[RES_FUNCEFT_TYPE.RES_FUNCEFT_MGCATKPT]; int num2 = info1.totalEftRatio += skillFuncParam; } else if (inContext.inStage == ESkillFuncStage.Leave) { int num3 = inContext.GetSkillFuncParam(3, false); ValueDataInfo info2 = inContext.inTargetObj.handle.ValueComponent.mActorValue[RES_FUNCEFT_TYPE.RES_FUNCEFT_MGCATKPT]; int num4 = info2.totalEftRatio -= num3; } return(true); }
public static bool OnSkillFuncImmuneNegativeSkillEffect(ref SSkillFuncContext inContext) { if (inContext.inStage == ESkillFuncStage.Enter) { PoolObjHandle <ActorRoot> inTargetObj = inContext.inTargetObj; if (inTargetObj) { inTargetObj.get_handle().ActorControl.AddNoAbilityFlag(ObjAbilityType.ObjAbility_ImmuneNegative); if (inContext.GetSkillFuncParam(0, false) == 1) { int num = 2; num += 4; inTargetObj.get_handle().BuffHolderComp.ClearEffectTypeBuff(num); } } } else if (inContext.inStage == ESkillFuncStage.Leave) { PoolObjHandle <ActorRoot> inTargetObj2 = inContext.inTargetObj; if (inTargetObj2) { inTargetObj2.get_handle().ActorControl.RmvNoAbilityFlag(ObjAbilityType.ObjAbility_ImmuneNegative); } } return(true); }
private static void OnSkillFuncChangeValueProperty(ref SSkillFuncContext inContext, RES_FUNCEFT_TYPE _defType, bool _bAddValue) { PoolObjHandle <ActorRoot> inTargetObj = inContext.inTargetObj; if (inTargetObj != 0) { int num = 0; int changeValueProperty = GetChangeValueProperty((ActorRoot)inTargetObj, ref inContext); int skillFuncParam = inContext.GetSkillFuncParam(0, false); if (inContext.inStage != ESkillFuncStage.Leave) { if (_bAddValue) { if (skillFuncParam == 0) { num = ((int)inTargetObj.handle.ValueComponent.mActorValue[_defType]) + changeValueProperty; } else { num = (int)(inTargetObj.handle.ValueComponent.mActorValue[_defType] << changeValueProperty); } ResDT_IntParamArrayNode node1 = inContext.LocalParams[0]; node1.iParam += changeValueProperty; } else { if (skillFuncParam == 0) { num = ((int)inTargetObj.handle.ValueComponent.mActorValue[_defType]) - changeValueProperty; } else { num = (int)(inTargetObj.handle.ValueComponent.mActorValue[_defType] >> changeValueProperty); } ResDT_IntParamArrayNode node2 = inContext.LocalParams[0]; node2.iParam += changeValueProperty; } } else if (_bAddValue) { if (skillFuncParam == 0) { num = ((int)inTargetObj.handle.ValueComponent.mActorValue[_defType]) - inContext.LocalParams[0].iParam; } else { num = (int)(inTargetObj.handle.ValueComponent.mActorValue[_defType] >> inContext.LocalParams[0].iParam); } } else if (skillFuncParam == 0) { num = ((int)inTargetObj.handle.ValueComponent.mActorValue[_defType]) + inContext.LocalParams[0].iParam; } else { num = (int)(inTargetObj.handle.ValueComponent.mActorValue[_defType] << inContext.LocalParams[0].iParam); } } }
public static bool OnSkillFuncRecoveryEffect(ref SSkillFuncContext inContext) { if (inContext.inStage == ESkillFuncStage.Enter) { int skillFuncParam = inContext.GetSkillFuncParam(0, false); int num2 = inContext.GetSkillFuncParam(1, false); int num3 = inContext.GetSkillFuncParam(2, false); int num4 = inContext.GetSkillFuncParam(3, false); int num5 = inContext.GetSkillFuncParam(4, false); inContext.inBuffSkill.handle.CustomParams[0] = skillFuncParam; inContext.inBuffSkill.handle.CustomParams[1] = num2; inContext.inBuffSkill.handle.CustomParams[2] = num3; inContext.inBuffSkill.handle.CustomParams[3] = num4; inContext.inBuffSkill.handle.CustomParams[4] = num5; } return(true); }
private static int GetSkillFuncProtectValue(ref SSkillFuncContext inContext) { int num = 0; if (inContext.inStage == ESkillFuncStage.Enter) { PoolObjHandle <ActorRoot> inTargetObj = inContext.inTargetObj; PoolObjHandle <ActorRoot> inOriginator = inContext.inOriginator; if ((inTargetObj != 0) && (inOriginator != 0)) { HurtDataInfo info; inContext.inCustomData = new HurtAttackerInfo(); inContext.inCustomData.Init(inOriginator, inTargetObj); info.atker = inOriginator; info.atkerName = inOriginator.handle.name; info.target = inTargetObj; info.attackInfo = inContext.inCustomData; info.atkSlot = inContext.inUseContext.SlotType; info.hurtType = HurtTypeDef.PhysHurt; info.extraHurtType = ExtraHurtTypeDef.ExtraHurt_Value; info.hurtValue = inContext.GetSkillFuncParam(1, true); info.adValue = inContext.GetSkillFuncParam(2, true); info.apValue = inContext.GetSkillFuncParam(3, true); info.hpValue = inContext.GetSkillFuncParam(4, true); info.loseHpValue = 0; info.hurtCount = inContext.inDoCount; info.hemoFadeRate = 0x2710; info.bExtraBuff = false; info.gatherTime = inContext.inUseContext.GatherTime; info.bBounceHurt = false; info.bLastHurt = inContext.inLastEffect; info.iAddTotalHurtType = 0; info.iAddTotalHurtValue = 0; info.iCanSkillCrit = inContext.inBuffSkill.handle.cfgData.iCanSkillCrit; info.iDamageLimit = inContext.inBuffSkill.handle.cfgData.iDamageLimit; info.iMonsterDamageLimit = inContext.inBuffSkill.handle.cfgData.iMonsterDamageLimit; info.iLongRangeReduction = inContext.inBuffSkill.handle.cfgData.iLongRangeReduction; info.iEffectiveTargetType = inContext.inBuffSkill.handle.cfgData.iEffectiveTargetType; info.iOverlayFadeRate = 0x2710; info.iEffectFadeRate = 0x2710; info.iReduceDamage = 0; num = inTargetObj.handle.ActorControl.actor.HurtControl.CommonDamagePart(ref info); } } return(num); }
public static bool OnSkillFuncCommonAtkWithMagicHurt(ref SSkillFuncContext inContext) { if (inContext.inStage == ESkillFuncStage.Enter) { int skillFuncParam = inContext.GetSkillFuncParam(0, false); int num2 = inContext.GetSkillFuncParam(1, false); int num3 = inContext.GetSkillFuncParam(2, false); int num4 = inContext.GetSkillFuncParam(3, false); inContext.inBuffSkill.handle.CustomParams[0] = skillFuncParam; inContext.inBuffSkill.handle.CustomParams[1] = num2; inContext.inBuffSkill.handle.CustomParams[2] = num3; inContext.inBuffSkill.handle.CustomParams[3] = num4; } else if (inContext.inStage == ESkillFuncStage.Leave) { } return(false); }
private static void OnSkillFuncChangeValueProperty(ref SSkillFuncContext inContext, RES_FUNCEFT_TYPE _defType, bool _bAddValue) { PoolObjHandle <ActorRoot> inTargetObj = inContext.inTargetObj; if (inTargetObj != 0) { ValueDataInfo info; int changeValueProperty = GetChangeValueProperty((ActorRoot)inTargetObj, ref inContext); int skillFuncParam = inContext.GetSkillFuncParam(0, false); if (inContext.inStage != ESkillFuncStage.Leave) { if (_bAddValue) { if (skillFuncParam == 0) { info = inTargetObj.handle.ValueComponent.mActorValue[_defType] + changeValueProperty; } else { info = inTargetObj.handle.ValueComponent.mActorValue[_defType] << changeValueProperty; } inContext.LocalParams[0].iParam += changeValueProperty; } else { if (skillFuncParam == 0) { info = inTargetObj.handle.ValueComponent.mActorValue[_defType] - changeValueProperty; } else { info = inTargetObj.handle.ValueComponent.mActorValue[_defType] >> changeValueProperty; } inContext.LocalParams[0].iParam += changeValueProperty; } } else if (_bAddValue) { if (skillFuncParam == 0) { info = inTargetObj.handle.ValueComponent.mActorValue[_defType] - inContext.LocalParams[0].iParam; } else { info = inTargetObj.handle.ValueComponent.mActorValue[_defType] >> inContext.LocalParams[0].iParam; } } else if (skillFuncParam == 0) { info = inTargetObj.handle.ValueComponent.mActorValue[_defType] + inContext.LocalParams[0].iParam; } else { info = inTargetObj.handle.ValueComponent.mActorValue[_defType] << inContext.LocalParams[0].iParam; } } }
public static bool OnSkillFuncRecoveryEffect(ref SSkillFuncContext inContext) { PoolObjHandle <ActorRoot> inTargetObj = inContext.inTargetObj; if (!inTargetObj) { return(false); } int skillFuncParam = inContext.GetSkillFuncParam(0, false); int skillFuncParam2 = inContext.GetSkillFuncParam(1, false); int skillFuncParam3 = inContext.GetSkillFuncParam(4, false); if (inContext.inStage == ESkillFuncStage.Enter) { if (skillFuncParam == 0) { ValueDataInfo valueDataInfo = inTargetObj.handle.ValueComponent.mActorValue[RES_FUNCEFT_TYPE.RES_FUNCEFT_PHYVAMP] + skillFuncParam3; valueDataInfo = inTargetObj.handle.ValueComponent.mActorValue[RES_FUNCEFT_TYPE.RES_FUNCEFT_MGCVAMP] + skillFuncParam3; valueDataInfo = inTargetObj.handle.ValueComponent.mActorValue[RES_FUNCEFT_TYPE.RES_PROPERTY_RECOVERYGAINEFFECT] + skillFuncParam2; } else { ValueDataInfo valueDataInfo2 = inTargetObj.handle.ValueComponent.mActorValue[RES_FUNCEFT_TYPE.RES_FUNCEFT_PHYVAMP] << skillFuncParam3; valueDataInfo2 = inTargetObj.handle.ValueComponent.mActorValue[RES_FUNCEFT_TYPE.RES_FUNCEFT_MGCVAMP] << skillFuncParam3; valueDataInfo2 = inTargetObj.handle.ValueComponent.mActorValue[RES_FUNCEFT_TYPE.RES_PROPERTY_RECOVERYGAINEFFECT] << skillFuncParam2; } } else if (inContext.inStage == ESkillFuncStage.Leave) { if (skillFuncParam == 0) { ValueDataInfo valueDataInfo3 = inTargetObj.handle.ValueComponent.mActorValue[RES_FUNCEFT_TYPE.RES_FUNCEFT_PHYVAMP] - skillFuncParam3; valueDataInfo3 = inTargetObj.handle.ValueComponent.mActorValue[RES_FUNCEFT_TYPE.RES_FUNCEFT_MGCVAMP] - skillFuncParam3; valueDataInfo3 = inTargetObj.handle.ValueComponent.mActorValue[RES_FUNCEFT_TYPE.RES_PROPERTY_RECOVERYGAINEFFECT] - skillFuncParam2; } else { ValueDataInfo valueDataInfo4 = inTargetObj.handle.ValueComponent.mActorValue[RES_FUNCEFT_TYPE.RES_FUNCEFT_PHYVAMP] >> skillFuncParam3; valueDataInfo4 = inTargetObj.handle.ValueComponent.mActorValue[RES_FUNCEFT_TYPE.RES_FUNCEFT_MGCVAMP] >> skillFuncParam3; valueDataInfo4 = inTargetObj.handle.ValueComponent.mActorValue[RES_FUNCEFT_TYPE.RES_PROPERTY_RECOVERYGAINEFFECT] >> skillFuncParam2; } } return(true); }
public static bool OnSkillFuncRecoveryEffect(ref SSkillFuncContext inContext) { PoolObjHandle <ActorRoot> inTargetObj = inContext.inTargetObj; if (!inTargetObj) { return(false); } int skillFuncParam = inContext.GetSkillFuncParam(0, false); int skillFuncParam2 = inContext.GetSkillFuncParam(1, false); int skillFuncParam3 = inContext.GetSkillFuncParam(4, false); if (inContext.inStage == ESkillFuncStage.Enter) { if (skillFuncParam == 0) { ValueDataInfo valueDataInfo = inTargetObj.get_handle().ValueComponent.mActorValue[9] + skillFuncParam3; valueDataInfo = inTargetObj.get_handle().ValueComponent.mActorValue[10] + skillFuncParam3; valueDataInfo = inTargetObj.get_handle().ValueComponent.mActorValue[36] + skillFuncParam2; } else { ValueDataInfo valueDataInfo = inTargetObj.get_handle().ValueComponent.mActorValue[9] << skillFuncParam3; valueDataInfo = inTargetObj.get_handle().ValueComponent.mActorValue[10] << skillFuncParam3; valueDataInfo = inTargetObj.get_handle().ValueComponent.mActorValue[36] << skillFuncParam2; } } else if (inContext.inStage == ESkillFuncStage.Leave) { if (skillFuncParam == 0) { ValueDataInfo valueDataInfo = inTargetObj.get_handle().ValueComponent.mActorValue[9] - skillFuncParam3; valueDataInfo = inTargetObj.get_handle().ValueComponent.mActorValue[10] - skillFuncParam3; valueDataInfo = inTargetObj.get_handle().ValueComponent.mActorValue[36] - skillFuncParam2; } else { ValueDataInfo valueDataInfo = inTargetObj.get_handle().ValueComponent.mActorValue[9] >> skillFuncParam3; valueDataInfo = inTargetObj.get_handle().ValueComponent.mActorValue[10] >> skillFuncParam3; valueDataInfo = inTargetObj.get_handle().ValueComponent.mActorValue[36] >> skillFuncParam2; } } return(true); }
public static bool OnSkillFuncControlExtraEffect(ref SSkillFuncContext inContext) { if (inContext.inStage == ESkillFuncStage.Enter) { int skillFuncParam = inContext.GetSkillFuncParam(0, false); inContext.inBuffSkill.handle.CustomParams[0] = skillFuncParam; return(true); } return(true); }
public static bool OnSkillFuncDecreaseReviveTime(ref SSkillFuncContext inContext) { PoolObjHandle <ActorRoot> inTargetObj = inContext.inTargetObj; if (inTargetObj && inContext.inStage == ESkillFuncStage.Enter) { int skillFuncParam = inContext.GetSkillFuncParam(0, false); int skillFuncParam2 = inContext.GetSkillFuncParam(1, false); if (skillFuncParam == 0) { inTargetObj.handle.ActorControl.ReviveCooldown -= skillFuncParam2; } else if (skillFuncParam == 1) { inTargetObj.handle.ActorControl.ReviveCooldown -= (int)((long)(skillFuncParam2 * inTargetObj.handle.ActorControl.CfgReviveCD) / 10000L); } } return(true); }
public static bool OnSkillFuncTriggerMark(ref SSkillFuncContext inContext) { if (inContext.inStage == ESkillFuncStage.Enter) { PoolObjHandle <ActorRoot> inTargetObj = inContext.inTargetObj; if (inTargetObj) { int skillFuncParam = inContext.GetSkillFuncParam(0, false); inTargetObj.get_handle().BuffHolderComp.markRule.TriggerBufferMark(inContext.inOriginator, skillFuncParam, inContext.inUseContext); int skillFuncParam2 = inContext.GetSkillFuncParam(1, false); if (skillFuncParam2 != 0) { inTargetObj.get_handle().BuffHolderComp.RemoveBuff(skillFuncParam2); } } return(true); } return(false); }
public static bool OnSkillFuncTriggerMark(ref SSkillFuncContext inContext) { if (inContext.inStage != ESkillFuncStage.Enter) { return(false); } PoolObjHandle <ActorRoot> inTargetObj = inContext.inTargetObj; if (inTargetObj != 0) { int skillFuncParam = inContext.GetSkillFuncParam(0, false); inTargetObj.handle.BuffHolderComp.markRule.TriggerBufferMark(inContext.inOriginator, skillFuncParam); int inSkillCombineId = inContext.GetSkillFuncParam(1, false); if (inSkillCombineId != 0) { inTargetObj.handle.BuffHolderComp.RemoveBuff(inSkillCombineId); } } return(true); }