仙魔无双SDK
面向策划逻辑制作的游戏开发包
AOE范围逻辑

实现范围效果计算的高层逻辑 更多...

函数

int HealthRangeByTeam (FxCreature *pActor, unsigned long nSkillID, int nValue, unsigned long nRadius, int nThreatRate=100, bool bShared=false, unsigned long nRealAttackerID=0, bool bSkill=true)
 角色pActor对范围内的队友进行治疗。 更多...
 
int HealthRangeByTeam_Rate (FxCreature *pActor, unsigned long nSkillID, int nRate, unsigned long nRadius, int nThreatRate=100, unsigned long nRealAttackerID=0, bool bSkill=true)
 角色pActor对范围内的队友进行治疗,按比例恢复。 更多...
 
int HealthRange (FxCreature *pActor, unsigned long nSkillID, int nValue, unsigned long nRadius, int nMaxCount, int bTargetExclude=0, int bByTarget=0, int nThreatRate=100, bool bShared=false, unsigned long nRealAttackerID=0, bool bSkill=true)
 角色pActor以自身为圆心进行范围治疗。 更多...
 
int HealthRangeByRate (FxCreature *pActor, unsigned long nSkillID, int nRate, unsigned long nRadius, int nMaxCount, int bTargetExclude=1, int bByTarget=0, int nThreatRate=100, unsigned long nRealAttackerID=0, bool bSkill=true)
 角色pActor以自身为圆心进行范围治疗,对每个目标按其血量上限的比例进行恢复。 更多...
 
int AttackTargetNearby_Physic (FxCreature *pSrcActor, int nRadius, int nDamage, int nSpellDamage, int nDamageType, unsigned long nSkillID, int nMaxCount, bool bTargetExclude=false, bool bByTarget=false, unsigned long nRealAttackerID=0, bool bSkill=true, int nThreatRate=100, int nIgnoreDefence=0, int nMinRadius=0, unsigned long nEffectHeight=0xFFFFFFFF)
 角色pSrcActor对附近目标造成物理伤害,圆周 更多...
 
int AttackTargetNearby_Spell (FxCreature *pSrcActor, int nRadius, int nDamage, int nSpellDamage, int nDamageType, unsigned long nSkillID, int nMaxCount, bool bTargetExclude=false, bool bByTarget=false, unsigned long nRealAttackerID=0, bool bSkill=true, int nThreatRate=100, int nIgnoreDefence=0, int nMinRandius=0, unsigned long nEffectHeight=0xFFFFFFFF)
 角色pSrcActor对附近目标造成法术伤害,圆周 更多...
 
int AttackTargetRectangle_Physic (FxCreature *pSrcActor, int nLength, int nDamage, int nSpellDamage, int nDamageType, unsigned long nSkillID, int nMaxCount, bool bTargetExclude=false, int nThreatRate=100, unsigned long nRealAttackerID=0, bool bSkill=true, int nIgnoreDefence=0, int nWidth=200, bool bToTarget=true)
 角色pSrcActor对附近目标造成物理伤害,线状,矩形 更多...
 
int AttackTargetRectangle_Spell (FxCreature *pSrcActor, int nLength, int nDamage, int nSpellDamage, int nDamageType, unsigned long nSkillID, int nMaxCount, bool bTargetExclude=false, int nThreatRate=100, unsigned long nRealAttackerID=0, bool bSkill=true, int nIgnoreDefence=0, int nWidth=200, bool bToTarget=true)
 角色pSrcActor对附近目标造成法术伤害,线状,矩形 更多...
 
int AttackTargetSector_Spell (FxCreature *pSrcActor, int nRadius, int nRadian, int nDamage, int nSpellDamage, int nDamageType, unsigned long nSkillID, int nMaxCount, bool bTargetExclude=false, int nThreatRate=100, unsigned long nRealAttackerID=0, bool bSkill=true, int nIgnoreDefence=0)
 角色pSrcActor对附近目标造成法术伤害,扇形 更多...
 
int AttackTargetSector_Physic (FxCreature *pSrcActor, int nRadius, int nRadian, int nDamage, int nPhysicDamage, int nDamageType, unsigned long nSkillID, int nMaxCount, bool bTargetExclude=false, int nThreatRate=100, unsigned long nRealAttackerID=0, bool bSkill=true, int nIgnoreDefence=0)
 角色pSrcActor对附近目标造成物理伤害,扇形 更多...
 
int DamageMultiTargets_Rate (FxCreature *pActor, const std::vector< FxCreature *> &vecCreature, unsigned long nSkillID, float fDamageRate, int nThreatRate=100, unsigned long nRealAttackerID=0, bool bSkill=true)
 角色pActor以自身为圆心进行范围治疗,对每个目标按其血量上限的比例进行恢复。 更多...
 
int AttackMultiTargets_Physic (FxCreature *pSrcActor, const std::vector< FxCreature *> &vecCreature, int nPhyDamage, int nPropertyDamage, int nPropertyType, int nSkillID, int nThreatRate=100, int nAttackerID=0, bool bSkill=true, int nIgnoreDefence=0, unsigned long nFakeAttackID=0, unsigned long nEffectHeight=0xFFFFFFFF)
 物理攻击多个角色,附带相同的伤害值 更多...
 
int AttackMultiTargets_Spell (FxCreature *pSrcActor, const std::vector< FxCreature *> &vecCreature, int nSpellDamage, int nPropertyDamage, int nPropertyType, int nSkillID, int nThreatRate=100, int nAttackerID=0, bool bSkill=true, int nIgnoreDefence=0)
 法术攻击多个角色,附带相同的伤害值 更多...
 
int HealthMultiTargets (FxCreature *pSrcActor, const std::vector< FxCreature *> &vecCreature, int nHealValue, int nSkillID, int nThreatRate, int nAttackerID, bool bSkill)
 角色pActor以自身为圆心进行范围治疗。 更多...
 

详细描述

实现范围效果计算的高层逻辑

函数说明

◆ AttackMultiTargets_Physic()

int AttackMultiTargets_Physic ( FxCreature *  pSrcActor,
const std::vector< FxCreature *> &  vecCreature,
int  nPhyDamage,
int  nPropertyDamage,
int  nPropertyType,
int  nSkillID,
int  nThreatRate = 100,
int  nAttackerID = 0,
bool  bSkill = true,
int  nIgnoreDefence = 0,
unsigned long  nFakeAttackID = 0,
unsigned long  nEffectHeight = 0xFFFFFFFF 
)

物理攻击多个角色,附带相同的伤害值

参数
pSrcActor[角色] 发动攻击的角色
vecCreature[数组] 多个被攻击对象
nPhyDamage[整数] 法术伤害
nPropertyDamage[整数] 属性伤害
nPropertyType[整数] 属性类型
nSkillID[整数] 技能ID
nThreatRate[整数] 仇恨率,默认100,意思是100%
nAttackerID[整数] 攻击者ID,默认0
bSkill[布尔] 是否是技能 true 是技能;false 不是技能。默认true,是技能
nIgnoreDefence[整数] 是否忽略防御,1 忽略防御属性;0 不忽略防御属性。默认0。
nFakeAttackID[整数] 表现的攻击者ID,用于做链状效果。默认0。
nEffectHeight[整数] 生效的高度差 -1: 使用默认的高度差,默认800; 0: 不做高度判定; 其他: 指定的高度差。默认-1.
返回
[整数] 忽略

◆ AttackMultiTargets_Spell()

int AttackMultiTargets_Spell ( FxCreature *  pSrcActor,
const std::vector< FxCreature *> &  vecCreature,
int  nSpellDamage,
int  nPropertyDamage,
int  nPropertyType,
int  nSkillID,
int  nThreatRate = 100,
int  nAttackerID = 0,
bool  bSkill = true,
int  nIgnoreDefence = 0 
)

法术攻击多个角色,附带相同的伤害值

参数
pSrcActor[角色] 发动攻击的角色
vecCreature[数组] 多个被攻击对象
nSpellDamage[整数] 法术伤害
nPropertyDamage[整数] 属性伤害
nPropertyType[整数] 属性类型
nSkillID[整数] 技能ID
nThreatRate[整数] 仇恨率,默认100,意思是100%
nAttackerID[整数] 攻击者ID,默认0
bSkill[布尔] 是否是技能 true 是技能;false 不是技能。默认true,是技能
nIgnoreDefence[整数] 是否忽略防御,1 忽略防御属性;0 不忽略防御属性。默认0。
返回
[整数] 忽略

◆ AttackTargetNearby_Physic()

int AttackTargetNearby_Physic ( FxCreature *  pSrcActor,
int  nRadius,
int  nDamage,
int  nSpellDamage,
int  nDamageType,
unsigned long  nSkillID,
int  nMaxCount,
bool  bTargetExclude = false,
bool  bByTarget = false,
unsigned long  nRealAttackerID = 0,
bool  bSkill = true,
int  nThreatRate = 100,
int  nIgnoreDefence = 0,
int  nMinRadius = 0,
unsigned long  nEffectHeight = 0xFFFFFFFF 
)

角色pSrcActor对附近目标造成物理伤害,圆周

参数
pSrcActor[角色] 发动AOE的角色。
nRadius[整数] 半径
nDamage[整数] 伤害的数值
nSpellDamage[整数] 属性伤害的数值
nDamageType[整数] 属性伤害的类型
nSkillID[整数] 使用的技能ID
nMaxCount[整数] 最大攻击的个数,如果是-1,表示不限制
bTargetExclude[布尔] 是否排除当前目标,默认false,不排除
bByTarget[布尔] 默认false。如果是true,自己会在被AOE。
nRealAttackerID[整数] 真实的攻击者ID。形如烈焰风暴之类的,肯定是使用NPC挂接buff的形式来AOE,这时候这个nRealAttackerID表示,是谁真正在发动攻击。用于仇恨计算。
bSkill[布尔] 是否技能 1 技能 2 buff,默认技能
nThreatRate[整数] 仇恨
nIgnoreDefence[整数] 是否忽略防御,默认0
nMinRadius[整数] 最小半径,默认0,用于环机制
nEffectHeight[整数] 生效的高度差 -1: 使用默认的高度差,默认800; 0: 不做高度判定; 其他: 指定的高度差。默认-1.
返回
[整数] 忽略

◆ AttackTargetNearby_Spell()

int AttackTargetNearby_Spell ( FxCreature *  pSrcActor,
int  nRadius,
int  nDamage,
int  nSpellDamage,
int  nDamageType,
unsigned long  nSkillID,
int  nMaxCount,
bool  bTargetExclude = false,
bool  bByTarget = false,
unsigned long  nRealAttackerID = 0,
bool  bSkill = true,
int  nThreatRate = 100,
int  nIgnoreDefence = 0,
int  nMinRandius = 0,
unsigned long  nEffectHeight = 0xFFFFFFFF 
)

角色pSrcActor对附近目标造成法术伤害,圆周

参数
pSrcActor[角色] 发动AOE的角色。
nRadius[整数] 半径
nDamage[整数] 伤害的数值
nSpellDamage[整数] 属性伤害的数值
nDamageType[整数] 属性伤害的类型
nSkillID[整数] 使用的技能ID
nMaxCount[整数] 最大攻击的个数,如果是-1,表示不限制
bTargetExclude[布尔] 是否排除当前目标,默认false,不排除
bByTarget[布尔] 默认false。如果是true,自己会在被AOE。
nRealAttackerID[整数] 真实的攻击者ID。形如烈焰风暴之类的,肯定是使用NPC挂接buff的形式来AOE,这时候这个nRealAttackerID表示,是谁真正在发动攻击。用于仇恨计算。
bSkill[布尔] 是否技能 1 技能 2 buff,默认技能
nThreatRate[整数] 仇恨
nIgnoreDefence[整数] 是否忽略防御,默认0
nMinRandius[整数] 最小半径,默认0,用于环机制
nEffectHeight[整数] 生效的高度差 -1: 使用默认的高度差,默认800; 0: 不做高度判定; 其他: 指定的高度差。默认-1.
返回
[整数] 实际攻击到的个数

◆ AttackTargetRectangle_Physic()

int AttackTargetRectangle_Physic ( FxCreature *  pSrcActor,
int  nLength,
int  nDamage,
int  nSpellDamage,
int  nDamageType,
unsigned long  nSkillID,
int  nMaxCount,
bool  bTargetExclude = false,
int  nThreatRate = 100,
unsigned long  nRealAttackerID = 0,
bool  bSkill = true,
int  nIgnoreDefence = 0,
int  nWidth = 200,
bool  bToTarget = true 
)

角色pSrcActor对附近目标造成物理伤害,线状,矩形

参数
pSrcActor[角色] 发动AOE的角色。
nLength[整数] 线性AOE的直线距离
nDamage[整数] 伤害的数值
nSpellDamage[整数] 属性伤害的数值
nDamageType[整数] 属性伤害的类型
nSkillID[整数] 使用的技能ID
nMaxCount[整数] 最大攻击的个数,如果是-1,表示不限制
bTargetExclude[布尔] 是否排除当前目标,默认false,不排除
nThreatRate[整数] 威胁值比例,默认100
nRealAttackerID[整数] 真实的攻击者ID,默认0
bSkill[布尔] 是否技能 1 技能 2 buff,默认技能
nIgnoreDefence[整数] 是否忽略防御,默认0
nWidth[整数] 宽度,默认200
bToTarget[布尔] 计算角度的时候是否瞄准目标。true: 瞄准目标。false: 不瞄准目标。默认true
返回
[整数] 忽略

◆ AttackTargetRectangle_Spell()

int AttackTargetRectangle_Spell ( FxCreature *  pSrcActor,
int  nLength,
int  nDamage,
int  nSpellDamage,
int  nDamageType,
unsigned long  nSkillID,
int  nMaxCount,
bool  bTargetExclude = false,
int  nThreatRate = 100,
unsigned long  nRealAttackerID = 0,
bool  bSkill = true,
int  nIgnoreDefence = 0,
int  nWidth = 200,
bool  bToTarget = true 
)

角色pSrcActor对附近目标造成法术伤害,线状,矩形

参数
pSrcActor[角色] 发动AOE的角色。
nLength[整数] 线性AOE的直线距离
nDamage[整数] 伤害的数值
nSpellDamage[整数] 属性伤害的数值
nDamageType[整数] 属性伤害的类型
nSkillID[整数] 使用的技能ID
nMaxCount[整数] 最大攻击的个数,如果是-1,表示不限制
bTargetExclude[布尔] 是否排除当前目标,默认false,不排除
nThreatRate[整数] 威胁值比例,默认100
nRealAttackerID[整数] 真实的攻击者ID,默认0
bSkill[布尔] 是否技能 1 技能 2 buff,默认技能
nIgnoreDefence[整数] 是否忽略防御,默认0
nWidth[整数] 宽度,默认200
bToTarget[布尔] 计算角度的时候是否瞄准目标。true: 瞄准目标。false: 不瞄准目标。默认true
返回
[整数] 忽略

◆ AttackTargetSector_Physic()

int AttackTargetSector_Physic ( FxCreature *  pSrcActor,
int  nRadius,
int  nRadian,
int  nDamage,
int  nPhysicDamage,
int  nDamageType,
unsigned long  nSkillID,
int  nMaxCount,
bool  bTargetExclude = false,
int  nThreatRate = 100,
unsigned long  nRealAttackerID = 0,
bool  bSkill = true,
int  nIgnoreDefence = 0 
)

角色pSrcActor对附近目标造成物理伤害,扇形

参数
pSrcActor[角色] 发动AOE的角色。
nRadius[整数] 扇形的半径
nRadian[整数] 扇形的角度:半圆180这种
nDamage[整数] 伤害的数值
nPhysicDamage[整数] 属性伤害的数值
nDamageType[整数] 属性伤害的类型
nSkillID[整数] 使用的技能ID
nMaxCount[整数] 最大攻击的个数,如果是-1,表示不限制
bTargetExclude[布尔] 是否排除当前目标,默认false,不排除
nThreatRate[整数] 威胁值比例,默认100
nRealAttackerID[整数] 真实的攻击者ID,默认0
bSkill[布尔] 是否技能 1 技能 2 buff,默认技能
nIgnoreDefence[整数] 是否忽略防御,默认0
返回
[整数] 忽略

◆ AttackTargetSector_Spell()

int AttackTargetSector_Spell ( FxCreature *  pSrcActor,
int  nRadius,
int  nRadian,
int  nDamage,
int  nSpellDamage,
int  nDamageType,
unsigned long  nSkillID,
int  nMaxCount,
bool  bTargetExclude = false,
int  nThreatRate = 100,
unsigned long  nRealAttackerID = 0,
bool  bSkill = true,
int  nIgnoreDefence = 0 
)

角色pSrcActor对附近目标造成法术伤害,扇形

参数
pSrcActor[角色] 发动AOE的角色。
nRadius[整数] 扇形的半径
nRadian[整数] 扇形的角度:半圆180这种
nDamage[整数] 伤害的数值
nSpellDamage[整数] 属性伤害的数值
nDamageType[整数] 属性伤害的类型
nSkillID[整数] 使用的技能ID
nMaxCount[整数] 最大攻击的个数,如果是-1,表示不限制
bTargetExclude[布尔] 是否排除当前目标,默认false,不排除
nThreatRate[整数] 威胁值比例,默认100
nRealAttackerID[整数] 真实的攻击者ID,默认0
bSkill[布尔] 是否技能 1 技能 2 buff,默认技能
nIgnoreDefence[整数] 是否忽略防御,默认0
返回
[整数] 忽略

◆ DamageMultiTargets_Rate()

int DamageMultiTargets_Rate ( FxCreature *  pActor,
const std::vector< FxCreature *> &  vecCreature,
unsigned long  nSkillID,
float  fDamageRate,
int  nThreatRate = 100,
unsigned long  nRealAttackerID = 0,
bool  bSkill = true 
)

角色pActor以自身为圆心进行范围治疗,对每个目标按其血量上限的比例进行恢复。

参数
pActor[角色] 发动攻击的角色
vecCreature[数组] 多个被攻击对象
nSkillID[整数] 使用的技能ID。
fDamageRate[浮点] 伤害比例(按最大HP扣HP)
nThreatRate[整数] 范围内治疗目标个数的上限,如果是-1,表示不设限。
nRealAttackerID[整数] 真实攻击者的ID,用于区域AOE
bSkill[布尔] 是否技能 1 技能 2 buff,默认技能
返回
[整数] 忽略。

◆ HealthMultiTargets()

int HealthMultiTargets ( FxCreature *  pSrcActor,
const std::vector< FxCreature *> &  vecCreature,
int  nHealValue,
int  nSkillID,
int  nThreatRate,
int  nAttackerID,
bool  bSkill 
)

角色pActor以自身为圆心进行范围治疗。

参数
pSrcActor[角色] 要进行范围治疗的角色。
vecCreature[数组] 多个被治疗的对象
nHealValue[整数] 医疗效果值。
nSkillID[整数] 技能ID
nThreatRate[整数] 仇恨率,默认100,意思是100%
nAttackerID[整数] 攻击者ID,默认0
bSkill[布尔] 是否是技能 true 是技能;false 不是技能。默认true,是技能
返回
[整数] 忽略

◆ HealthRange()

int HealthRange ( FxCreature *  pActor,
unsigned long  nSkillID,
int  nValue,
unsigned long  nRadius,
int  nMaxCount,
int  bTargetExclude = 0,
int  bByTarget = 0,
int  nThreatRate = 100,
bool  bShared = false,
unsigned long  nRealAttackerID = 0,
bool  bSkill = true 
)

角色pActor以自身为圆心进行范围治疗。

参数
pActor[角色] 要进行范围治疗的角色。
nSkillID[整数] 使用的技能ID。
nValue[整数] 进行范围治疗的数值。
nRadius[整数] 进行范围治疗的半径。
nMaxCount[整数] 范围内治疗目标个数的上限,如果是-1,表示不设限。
bTargetExclude[整数] 是否把当前选择的目标排除,默认0。需要排除目标的只有木系天赋4062静气这个场合,所以只有这里需要时1。
bByTarget[整数] 暂时保留,应该是前期设计的遗留功能。
nThreatRate[整数] 范围内治疗目标个数的上限,如果是-1,表示不设限。
bShared[布尔] 进行范围治疗的数值。
nRealAttackerID[整数] 真实攻击者的ID,用于区域AOE
bSkill[布尔] 是否技能 1 技能 2 buff,默认技能
返回
[整数] 忽略
注解
buff_3120.lua 3120 神水决・祈雨

◆ HealthRangeByRate()

int HealthRangeByRate ( FxCreature *  pActor,
unsigned long  nSkillID,
int  nRate,
unsigned long  nRadius,
int  nMaxCount,
int  bTargetExclude = 1,
int  bByTarget = 0,
int  nThreatRate = 100,
unsigned long  nRealAttackerID = 0,
bool  bSkill = true 
)

角色pActor以自身为圆心进行范围治疗,对每个目标按其血量上限的比例进行恢复。

参数
pActor[角色] 要进行范围治疗的角色。
nSkillID[整数] 使用的技能ID。
nRate[整数] 进行范围治疗所恢复的比例。
nRadius[整数] 进行范围治疗的半径。
nMaxCount[整数] 范围内治疗目标个数的上限,如果是-1,表示不设限。
bTargetExclude[整数] 是否把当前选择的目标排除,默认0。需要排除目标的只有木系天赋4062静气这个场合,所以只有这里需要时1。
bByTarget[整数] 暂时保留,应该是前期设计的遗留功能。
nThreatRate[整数] 范围内治疗目标个数的上限,如果是-1,表示不设限。
nRealAttackerID[整数] 真实攻击者的ID,用于区域AOE
bSkill[布尔] 是否技能 1 技能 2 buff,默认技能
返回
[整数] 忽略
注解
buff_3103.lua 神水决・轮回

◆ HealthRangeByTeam()

int HealthRangeByTeam ( FxCreature *  pActor,
unsigned long  nSkillID,
int  nValue,
unsigned long  nRadius,
int  nThreatRate = 100,
bool  bShared = false,
unsigned long  nRealAttackerID = 0,
bool  bSkill = true 
)

角色pActor对范围内的队友进行治疗。

参数
pActor[角色] 要治疗队友的角色。
nSkillID[整数] 使用的技能ID。
nValue[整数] 治疗的数值。
nRadius[整数] 群体治疗的半径
nThreatRate[整数] 仇恨比率,默认100%
bShared[布尔] 是否均摊这一次治疗的数值
nRealAttackerID[整数] 真实攻击者的ID,用于区域AOE
bSkill[布尔] 是否技能 1 技能 2 buff,默认技能
返回
[整数] 忽略

◆ HealthRangeByTeam_Rate()

int HealthRangeByTeam_Rate ( FxCreature *  pActor,
unsigned long  nSkillID,
int  nRate,
unsigned long  nRadius,
int  nThreatRate = 100,
unsigned long  nRealAttackerID = 0,
bool  bSkill = true 
)

角色pActor对范围内的队友进行治疗,按比例恢复。

参数
pActor[角色] 要治疗队友的角色。
nSkillID[整数] 使用的技能ID。
nRate[整数] 治疗的百分比。
nRadius[整数] 群体治疗的半径
nThreatRate[整数] 仇恨比率,默认100%
nRealAttackerID[整数] 真实攻击者的ID,用于区域AOE
bSkill[布尔] 是否技能 1 技能 2 buff,默认技能
返回
[整数] 忽略