422 lines
18 KiB
C++
422 lines
18 KiB
C++
#pragma once
|
||
class CAnimal;
|
||
|
||
//这个类是技能的目标选择条件的类,为了不把技能的类扩大很多,把目标选择方面的
|
||
//代码放在这里,主要是判断技能是否生效
|
||
|
||
class CSkillCondition
|
||
{
|
||
public:
|
||
//目标选择的条件
|
||
typedef bool (CSkillCondition::*TargetSelCondition)(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value );
|
||
|
||
//技能的训练和使用的条件
|
||
typedef INT_PTR (CSkillCondition::*SkillUseTrainCondition)(CAnimal *pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume );
|
||
|
||
|
||
/*
|
||
* Comments: 检测条件是否满足
|
||
* Param CAnimal * pSrcEntity: 施法者
|
||
* Param CAnimal * pTargetEntity:被施法者
|
||
* Param TARGETSELCONDITION & value: 技能的配置值
|
||
* bool needConsume: 是否要消耗,如果是,那么就消耗,否则不消耗
|
||
* @Return bool: 如果能够选中就返回true,否则返回false
|
||
*/
|
||
bool Check( CAnimal * pSrcEntity,CAnimal *pTargetEntity,TARGETSELCONDITION &value);
|
||
|
||
|
||
/*
|
||
* Comments:检测玩家的使用和训练的条件
|
||
* Param CActor * pActor:玩家的指针
|
||
* Param SKILLTRAINSPELLCONDITION & contition: 条件
|
||
* @Return INT_PTR:返回错误码
|
||
*/
|
||
INT_PTR CheckUseTrainContion(CAnimal * pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume );
|
||
|
||
/*
|
||
* Comments:检测玩家的技能施法条件
|
||
* Param CActor * pActor:玩家的指针
|
||
* Param SKILLTRAINSPELLCONDITION & contition: 条件
|
||
* @Return INT_PTR:返回错误码
|
||
*/
|
||
INT_PTR CheckSpellContion(CAnimal * pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume);
|
||
|
||
/*
|
||
* Comments:检测玩家的技能升级条件
|
||
* Param CActor * pActor:玩家的指针
|
||
* Param SKILLTRAINSPELLCONDITION & contition: 条件
|
||
* @Return INT_PTR:返回错误码
|
||
*/
|
||
INT_PTR CheckUpGradeContion(CAnimal * pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume);
|
||
|
||
//错误的id
|
||
inline bool IsError(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value)
|
||
{
|
||
return false;
|
||
}
|
||
|
||
|
||
//目标为敌人
|
||
inline bool IsEnermy(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//目标为友方
|
||
inline bool IsFriendly(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//目标为自己
|
||
inline bool IsSelf(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//目标为队伍成员
|
||
inline bool IsTeammate(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//目标为怪物
|
||
inline bool IsMonster(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//目标为玩家
|
||
inline bool IsActor(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//标等级 >= value,
|
||
inline bool LevelAbove(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//目标等级 <= value
|
||
inline bool LevelBelow(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//pk值低于数值,整数
|
||
inline bool PkBelow(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//pk值高于数值 ,整数
|
||
inline bool PkAbove(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//随机概率,5000表示百分之50概率,单位万分之1
|
||
inline bool Probalility(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//死亡
|
||
inline bool IsDeath(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//可攻击
|
||
inline bool CanAttack(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//就是自己的等级减目标的等级小于等于这个数值
|
||
|
||
inline bool LevelDisBelow(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
|
||
bool CircleDisBelow(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
bool RevertCircleDisBelow(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//就是目标的等级减自己的等级小于等于这个数值
|
||
inline bool RevertLevelDisBelow (CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//和目标的距离大于这个值
|
||
inline bool DistanceLarge(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//目标存在buff
|
||
// value1=buff类型 , value2 =buff的组
|
||
inline bool WithBuff(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//目标不存在buff
|
||
inline bool WithoutBuff(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
// 驯服成功
|
||
inline bool TrainOk(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//体力高于百分比,整数,用万分数表示,6000表示60%
|
||
inline bool HpAbove(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//体力低于百分比,整数,用万分数表示,6000表示60%
|
||
inline bool HpBelow(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//活力高于百分比,整数,用万分数表示,6000表示60%
|
||
inline bool MpAbove(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
// 活力低于百分比 ,整数,用万分数表示,6000表示60%
|
||
inline bool MpBelow (CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
// 帮派相同,value as bool
|
||
inline bool SameGuild (CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//需要面向目标
|
||
inline bool FaceTarget(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//和目标的方向一致
|
||
inline bool TargetOneDir(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//是特定id的怪物
|
||
inline bool IsSpecialMonster(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
|
||
//自身的hp比率高于一定的比率
|
||
inline bool SelfHpRateAbove(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//自身的hp比率低于一定的比例
|
||
inline bool SelfHpRateBelow(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//阵营相同
|
||
inline bool SelSameCamp(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//和自己是结拜的关系
|
||
inline bool SelfIsBrother(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//是自己的主人
|
||
inline bool IsMaster(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
|
||
//是特定种类的怪物
|
||
inline bool IsSpecialTypeMonster(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
|
||
|
||
|
||
|
||
|
||
//最大魔法攻击>= 一个值
|
||
inline bool IsMagicAttackMaxAbove(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//最大魔法攻击< 一个值
|
||
inline bool IsMagicAttackMaxBelow(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
|
||
//最大道术攻击>= 一个值
|
||
inline bool IsWizardAttackMaxAbove(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//最大道术攻击< 一个值
|
||
inline bool IsWizardAttackMaxBelow(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//自身的材料的id
|
||
inline bool IsSelfMetiralItemId(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//是否装备了指定的武器
|
||
inline bool IsSpeciaWeapon(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//目标是否是沙巴克成员
|
||
inline bool IsSbkMember(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//在副本里,并且副本id为
|
||
inline bool FbId(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//自身是怪物,并且怪物的id=value
|
||
inline bool SelfSpecialMonster(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//模型的id=value
|
||
inline bool IsModelId(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//场景里是否存在怪物
|
||
inline bool SceneHasMonster(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//场景不存在怪物
|
||
inline bool SceneWithoutMonster(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
|
||
//自己的等级 <= value
|
||
inline bool SelfLevelBelow(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//己的等级 > value
|
||
inline bool SelfLevelAbove(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
|
||
//自身的场景的id
|
||
inline bool SelfSceneId(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//场景怪物数目<=value
|
||
inline bool SceneMonsterCount(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
|
||
//已经召唤出来的宠物的数目
|
||
inline bool MobPetCount(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
|
||
//实体类型
|
||
inline bool EntityType(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//实体类型
|
||
inline bool EntityVocation(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
|
||
//是否有特定的装备
|
||
inline bool HasSpecialEquip(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//目标转数 > value,
|
||
inline bool CircleAbove(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//目标转数 <= value
|
||
inline bool CircleBelow(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//自己身上有buff
|
||
inline bool SelfWithBuff(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//自己身上没有buff
|
||
inline bool SelfWithoutBuff(CAnimal * pSrcEntity,CAnimal *pTargetEntity,GAMEATTRVALUE &value);
|
||
|
||
//自己的宠物
|
||
inline bool SelfJobPet(CAnimal * pSrcEntity, CAnimal * pTargetEntity, GAMEATTRVALUE & value);
|
||
|
||
//自己的转数比目标转数
|
||
inline bool SelfCircleBelow(CAnimal * pSrcEntity, CAnimal * pTargetEntity, GAMEATTRVALUE & value);
|
||
|
||
//目标转数比自己的转数
|
||
inline bool RevertCircleBelow(CAnimal * pSrcEntity, CAnimal * pTargetEntity, GAMEATTRVALUE & value);
|
||
|
||
//判断怪物升级的等级数
|
||
inline bool MonsterLevelUpCheck(CAnimal * pSrcEntity, CAnimal * pTargetEntity, GAMEATTRVALUE & value);
|
||
|
||
//判断场景是否有归属于自己的宠物
|
||
inline bool ScenceHasSelfPet(CAnimal * pSrcEntity, CAnimal * pTargetEntity, GAMEATTRVALUE & value);
|
||
|
||
//判断自己技能等级是否大于等于目标人物等级
|
||
inline bool SelfSkillLevelAndTargetLevelAbove(CAnimal * pSrcEntity, CAnimal * pTargetEntity, GAMEATTRVALUE & value);
|
||
|
||
//判断自己技能等级是否小于目标人物等级
|
||
inline bool SelfSkillLevelAndTargetLevelBelow(CAnimal * pSrcEntity, CAnimal * pTargetEntity, GAMEATTRVALUE & value);
|
||
|
||
////////////////////////////////技能的升级和训练的条件
|
||
|
||
|
||
//没有条件
|
||
inline INT_PTR UtConditionNone(CAnimal *pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume);
|
||
|
||
|
||
//等级必须大于等于一定的级别
|
||
inline INT_PTR UtConditionLevel(CAnimal *pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume );
|
||
|
||
//金钱
|
||
inline INT_PTR UtConditionCoin(CAnimal *pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume );
|
||
|
||
inline INT_PTR UtConditionFlyShoes(CAnimal *pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition ,bool needConsume);
|
||
|
||
//物品
|
||
inline INT_PTR UtConditionItem(CAnimal *pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume);
|
||
|
||
//经验
|
||
inline INT_PTR UtConditionExp(CAnimal *pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume);
|
||
|
||
//内功等级
|
||
inline INT_PTR UtConditionInternalWorkLevel(CAnimal *pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume);
|
||
|
||
//修为
|
||
inline INT_PTR UtConditionXiuwei(CAnimal *pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume );
|
||
|
||
|
||
//职业
|
||
inline INT_PTR UtConditionVocation(CAnimal *pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume );
|
||
|
||
//HP是否足够
|
||
inline INT_PTR UtConditionHp(CAnimal *pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume );
|
||
|
||
//MP
|
||
inline INT_PTR UtConditionMp(CAnimal *pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume );
|
||
|
||
//目标存在
|
||
inline INT_PTR UtConditionTargetExist(CAnimal *pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume );
|
||
|
||
//宠物id=value的数量<param
|
||
inline INT_PTR UtConditionPetCount(CAnimal *pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume );
|
||
|
||
//存在buff
|
||
inline INT_PTR UtConditionWithBuff(CAnimal *pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume);
|
||
|
||
//不存在buff
|
||
inline INT_PTR UtConditionWithoutBuff(CAnimal *pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume );
|
||
|
||
|
||
//和目标的距离必须小于
|
||
inline INT_PTR UtConditionTargetDistance(CAnimal *pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume );
|
||
|
||
//和目标能否重合
|
||
inline INT_PTR UtConditionTargetSamePosition(CAnimal *pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume );
|
||
|
||
|
||
//需要面向目标
|
||
inline INT_PTR UtConditionFaceTarget(CAnimal *pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume);
|
||
|
||
//需要和目标的方向
|
||
inline INT_PTR UtConditionOneDirTarget(CAnimal *pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume );
|
||
|
||
//自身的血的百分比必须低于一定的值
|
||
inline INT_PTR UtConditionHpRateBelow(CAnimal *pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume );
|
||
|
||
//自身的血的百分比必须高于一定的值
|
||
inline INT_PTR UtConditionHpRateAbove(CAnimal *pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume );
|
||
|
||
//需要特定的目标
|
||
inline INT_PTR UtConditionSpecialTarget (CAnimal *pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume);
|
||
|
||
//目标可攻击
|
||
inline INT_PTR UtConditionTargetCanAttack (CAnimal *pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume);
|
||
|
||
//体力
|
||
inline INT_PTR UtConditionJumpPower(CAnimal *pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume);
|
||
|
||
//绑定银两
|
||
inline INT_PTR UtConditionBindCoin(CAnimal *pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume);
|
||
|
||
//阵营的称号
|
||
inline INT_PTR UtConditionCampTitle(CAnimal *pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume);
|
||
|
||
//结拜的数目
|
||
inline INT_PTR UtConditionBrotherCount(CAnimal *pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume);
|
||
|
||
//与目标Y轴的绝对的距离
|
||
inline INT_PTR UtConditionYAbsDis(CAnimal *pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume);
|
||
|
||
//队伍里的在线的结拜好友的数量 >= value,不包括自己
|
||
inline INT_PTR UtConditionTeamBrotherCount(CAnimal *pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume);
|
||
|
||
//消耗基础蓝的万分比 value表示基础蓝的万分比,比如8500表示85%,玩家的基础蓝表示等级带来的MaxMp,不包括buff,装备等附加的
|
||
inline INT_PTR UtConditionBaseMaxMpRate(CAnimal *pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume);
|
||
|
||
//消耗基础血的万分比 value表示基础血的万分比,比如8500表示85%,玩家的基础血表示等级带来的MaxHp,不包括buff,装备等附加的
|
||
inline INT_PTR UtConditionBaseMaxHpRate(CAnimal *pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume);
|
||
|
||
|
||
//在与玩家的战斗状态,value 1表示是 0表示否
|
||
inline INT_PTR UtConditionBattleState(CAnimal *pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume);
|
||
|
||
//需要帮派贡献
|
||
inline INT_PTR UtConditionGuildContr(CAnimal *pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume);
|
||
|
||
//需要帮派对应的技能等级达到
|
||
inline INT_PTR UtConditionGuildSkillLevel(CAnimal *pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume);
|
||
|
||
//Xp值的消耗
|
||
inline INT_PTR UtConditionXpValue(CAnimal *pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume);
|
||
|
||
//材料的耐久
|
||
inline INT_PTR UtConditionMatiralDura(CAnimal *pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume);
|
||
|
||
//消耗怒气值
|
||
inline INT_PTR UtConditionAngerValue(CAnimal *pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume);
|
||
|
||
//需要装备有挖矿工具
|
||
inline INT_PTR UtConditionDigTool(CAnimal *pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume);
|
||
|
||
//需要在特定区域才可以使用
|
||
inline INT_PTR UtConditionAreaProp(CAnimal *pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume);
|
||
|
||
//至少需要转生才可学习
|
||
inline INT_PTR UtConditionCircle(CAnimal * pActor, INT_PTR nSkillID, SKILLTRAINSPELLCONDITION &condition, bool needConsume);
|
||
|
||
//与目标线距离
|
||
inline INT_PTR UtConditionLineDistance(CAnimal *pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume );
|
||
|
||
|
||
//有目标并且目标的距离>=value
|
||
inline INT_PTR UtConditionTargetDistanceAbove(CAnimal *pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume );
|
||
|
||
//需要当前职业宠物数量>=value
|
||
inline INT_PTR UtConditionHasJobPetCount(CAnimal *pActor,INT_PTR nSkillID,SKILLTRAINSPELLCONDITION &contition,bool needConsume );
|
||
|
||
//需要行会主殿等级
|
||
inline INT_PTR UtConditionGuildMainHall(CAnimal * pActor, INT_PTR nSkillId,SKILLTRAINSPELLCONDITION &contition ,bool needConsume);
|
||
|
||
//需要行会科技等级
|
||
inline INT_PTR UtConditionGuildTech(CAnimal * pActor, INT_PTR nSkillId,SKILLTRAINSPELLCONDITION &contition ,bool needConsume);
|
||
protected:
|
||
static const TargetSelCondition Handlers[]; //目标的选择条件
|
||
|
||
static const SkillUseTrainCondition UseTrainHandlers[]; //使用和升级的条件
|
||
|
||
static const SkillUseTrainCondition SpellHandlers[]; //施法条件
|
||
static const SkillUseTrainCondition UpgradeHandlers[]; //升级条件
|
||
|
||
|
||
};
|