📄 skillutil.h
字号:
//////////////////////////////////////////////////////////////////////////////// Filename : SkillUtil.h// Written by : excel96// Description : //////////////////////////////////////////////////////////////////////////////#ifndef __SKILLUTIL_H__#define __SKILLUTIL_H__#include "ModifyInfo.h"#include "Slayer.h"#include "Vampire.h"#include "Ousters.h"//////////////////////////////////////////////////////////////////////////////// 概农肺, 惑荐//////////////////////////////////////////////////////////////////////////////// decreaseMana甫 龋免沁阑 版快, // MP父 粹疽栏搁 CONSUME_MP甫, HP父 粹疽阑 版快俊绰 CONSUME_HP甫,// 笛 促 家葛登菌阑 版快俊绰, BOTH甫 府畔茄促.#define CONSUME_MP 0#define CONSUME_HP 1#define CONSUME_BOTH 2#define MAKEWORD(U,D) (WORD)((WORD)(U)<<8 |(WORD)(D))#define MAKEDWORD(U,D)(DWORD)((DWORD)(U)<<16 |(DWORD)(D))//#define VAMPIRE_MAX_LEVEL 150//////////////////////////////////////////////////////////////////////////////// forward declaration//////////////////////////////////////////////////////////////////////////////class Creature;class Monster;class SkillInfo;class SkillSlot;class VampireSkillSlot;class Item;class Zone;//////////////////////////////////////////////////////////////////////////////// 单固瘤 拌魂 窃荐//////////////////////////////////////////////////////////////////////////////// 傍拜磊客 乔傍拜磊 荤捞狼 颇扼固磐甫 拌魂秦 弥辆 单固瘤甫 魂免茄促.Damage_t computeDamage(Creature* pCreature, Creature* pTargetCreature);// 傍拜磊狼 鉴荐 单固瘤甫 拌魂茄促.Damage_t computePureDamage(Creature* pCreature);// 傍拜磊客 乔傍拜磊 荤捞狼 颇扼固磐甫 拌魂秦 弥辆 单固瘤甫 魂免茄促.// 困狼 窃荐客 鞍栏唱, 捞 窃荐甫 何甫 版快俊绰 郴何利栏肺 农府萍拿 洒飘客 包访等 何盒捞 贸府等促.Damage_t computeDamage(Creature* pCreature, Creature* pTargetCreature, int CriticalBonus, bool& bCritical);// 盔贰 单固瘤俊辑 橇肺咆记阑 力寇茄 弥辆 单固瘤甫 府畔茄促.double computeFinalDamage(Damage_t minDamage, Damage_t maxDamage, Damage_t realDamage, Protection_t Protection, bool bCritical);// 浇饭捞绢 傍拜磊客 乔傍拜磊 荤捞狼 单固瘤甫 拌魂茄促.Damage_t computeSlayerDamage(Slayer* pSlayer, Creature* pTargetCreature, bool bCritical);// 轨颇捞绢 傍拜磊客 乔傍拜磊 荤捞狼 单固瘤甫 拌魂茄促.Damage_t computeVampireDamage(Vampire* pVampire, Creature* pTargetCreature, bool bCritical);// 酒快胶磐胶 傍拜磊客 乔傍拜磊 荤捞狼 单固瘤甫 拌魂茄促.Damage_t computeOustersDamage(Ousters* pOusters, Creature* pTargetCreature, bool bCritical);// 阁胶磐 傍拜磊客 乔傍拜磊 荤捞狼 单固瘤甫 拌魂茄促.Damage_t computeMonsterDamage(Monster* pMonster, Creature* pTargetCreature, bool bCritical);// 浇饭捞绢 傍拜磊狼 鉴荐 单固瘤甫 拌魂茄促.Damage_t computePureSlayerDamage(Slayer* pSlayer);// 轨颇捞绢 傍拜磊狼 鉴荐 单固瘤甫 拌魂茄促.Damage_t computePureVampireDamage(Vampire* pVampire);// 酒快胶磐胶 傍拜磊狼 鉴荐 单固瘤甫 拌魂茄促.Damage_t computePureOustersDamage(Ousters* pOusters);// 阁胶磐 傍拜磊客 乔傍拜磊 荤捞狼 单固瘤甫 拌魂茄促.Damage_t computePureMonsterDamage(Monster* pMonster);// resistance甫 绊妨茄 付过 单固瘤甫 拌魂茄促.Damage_t computeMagicDamage(Creature* pTargetCreature, int Damage, SkillType_t SkillType, bool bVampire = false);// 府胶撇复阑 绊妨茄 酒快胶磐令 付过 单固瘤甫 拌魂茄促.Damage_t computeOustersMagicDamage(Ousters* pOusters, Creature* pTargetCreature, int Damage, SkillType_t SkillType);// 鸥百俊霸 固摹绰 篮 单固瘤甫 拌魂茄促.Damage_t computeSlayerSilverDamage(Creature* pCreature, int Damage, ModifyInfo* pMI);// Critical Magic 苞 鞍篮 菩矫宏 胶懦肺 牢茄 单固瘤 函拳客 农府萍拿 函拳甫 拌魂茄促.void computeCriticalBonus(Ousters* pOusters, SkillType_t skillType, Damage_t& Damage, bool& bCriticalHit);//////////////////////////////////////////////////////////////////////////////// 单固瘤 技泼, 郴备档 冻绢哆府扁 殿殿...//////////////////////////////////////////////////////////////////////////////// 流立利栏肺 单固瘤甫 技泼茄促.HP_t setDamage(Creature* pTargetCreature, Damage_t Damage, Creature* pAttacker, SkillType_t SkillType = 0, ModifyInfo* pMI = NULL, ModifyInfo* pAttackerMI = NULL, bool canKillTarget = true );// 酒捞袍 郴备档甫 冻绢哆赴促.void decreaseDurability(Creature* pCreature, Creature* pTargetCreature, WORD point, ModifyInfo*, ModifyInfo*);// 鸥百阑 嘎免 啊瓷己捞 乐绰啊?bool canHit(Creature* pAttacker, Creature* pDefender, SkillType_t SkillType, SkillLevel_t SkillLevel=0);//////////////////////////////////////////////////////////////////////////////// 付唱 包访 窃荐甸...//////////////////////////////////////////////////////////////////////////////// 牢飘俊 蝶扼 付唱 家葛樊捞 函窍绰 轨颇捞绢 付过狼 付唱 家葛樊阑 拌魂茄促.MP_t decreaseConsumeMP(Vampire* pVampire, SkillInfo* pSkillInfo);// 扁贱阑 荤侩窍扁 困茄 面盒茄 付唱甫 啊瘤绊 乐绰啊?bool hasEnoughMana(Creature* pCaster, int RequiredMP);// 付唱甫 临牢促.int decreaseMana(Creature* pCaster, int MP, ModifyInfo& modifyinfo);//////////////////////////////////////////////////////////////////////////////// 荤沥芭府, 瘤加矫埃, 矫埃眉农 殿狼 八刘 窃荐甸...//////////////////////////////////////////////////////////////////////////////// 浇饭捞绢侩 胶懦狼 荤沥芭府甫 备茄促.Range_t computeSkillRange(SkillSlot* pSkillSlot, SkillInfo* pSkillInfo);//(OX,OY)客(TX,TY) 荤捞狼 芭府甫 备茄促.Range_t getDistance(ZoneCoord_t OX, ZoneCoord_t OY, ZoneCoord_t TX, ZoneCoord_t TY);// 胶懦阑 镜 荐 乐绰 利寸茄 芭府牢啊甫 八刘bool verifyDistance(Creature* pCreature, ZoneCoord_t X, ZoneCoord_t Y, Range_t Distance);// 胶懦阑 镜 荐 乐绰 利寸茄 芭府牢啊甫 八刘bool verifyDistance(Creature* pCreature, Creature* pTargetCreature, Range_t Distance);// 浇饭捞绢侩 胶懦狼 角青 矫埃阑 八刘茄促.bool verifyRunTime(SkillSlot* pSkillSlot);// 轨颇捞绢侩 胶懦狼 角青 矫埃阑 八刘茄促.bool verifyRunTime(VampireSkillSlot* pSkillSlot);// 酒快胶磐胶侩 胶懦狼 角青 矫埃阑 八刘茄促.bool verifyRunTime(OustersSkillSlot* pSkillSlot);// 阿 粮狼 PK 沥氓俊 蝶扼, PK啊 登蠢衬 救 登蠢衬甫 沥茄促.bool verifyPK(Creature* pAttacker, Creature* pDefender);// 扁贱阑 荤侩且 荐 乐绰 粮牢啊?// (伎橇 扁贱老 版快, 粮 饭骇阑 眉农窍绰 窃荐促...)bool checkZoneLevelToUseSkill(Creature* pCaster);// X, Y俊 辑 乐绰 农府媚啊 烙狼狼 扁贱俊 康氢阑 罐绰瘤 眉农窍绰 窃荐促.bool checkZoneLevelToHitTarget(Creature* pTargetCreature);// 扁贱捞 剐府 傍拜牢啊? - 2003. 1. 1. Sequoia//bool isMeleeSkill(SkillType_t SkillType);// Magic 扁贱牢啊?//bool isMagicSkill(SkillType_t SkillType);// Physic 扁贱牢啊?//bool isPhysicSkill(SkillType_t SkillType);//////////////////////////////////////////////////////////////////////////////// 己氢 包访 窃荐甸...//////////////////////////////////////////////////////////////////////////////// 己氢阑 函版茄促.// 扁贱阑 荤侩窍芭唱, PK甫 且 锭 积扁绰 己氢 函拳甫 拌魂窍绰 窃荐促.void computeAlignmentChange(Creature* pTargetCreature, Damage_t Damage, Creature* pAttacker, ModifyInfo* pMI = NULL, ModifyInfo* pAttackerMI = NULL);// 浇饭捞绢 棺 轨颇捞绢啊 各阑 磷老 锭 己氢阑 距埃究 雀汗矫挪促.// 沥寸 规困 矫胶袍 鞍篮 巴苞绰 包访 绝捞, 弊成 鸥辆练阑 傍拜且 锭 // 距埃究 己氢阑 雀汗矫难林绰 窃荐捞促.void increaseAlignment(Creature* pCreature, Creature* pEnemy, ModifyInfo& mi);//////////////////////////////////////////////////////////////////////////////// 版氰摹 包访 窃荐甸...//////////////////////////////////////////////////////////////////////////////// 颇萍 包访 浇饭捞绢 版氰摹 拌魂 窃荐void shareAttrExp(Slayer* pSlayer, Damage_t Damage, BYTE STRMultiplier, BYTE DEXMultiplier, BYTE INTMultiplier, ModifyInfo &);// 颇萍 包访 轨颇捞绢 版氰摹 拌魂 窃荐void shareVampExp(Vampire*, Exp_t, ModifyInfo&);// 颇萍 包访 酒快胶磐胶 版氰摹 拌魂 窃荐void shareOustersExp(Ousters*, Exp_t, ModifyInfo&);// 浇饭捞绢 瓷仿摹(STR,DEX,INT) 版氰摹甫 拌魂茄促.void divideAttrExp(Slayer* pSlayer, Damage_t Damage, BYTE STRMultiplier, BYTE DEXMultiplier, BYTE INTMultiplier, ModifyInfo &, int numPartyMember=-1);// 浇饭捞绢 扁贱 版氰摹甫 拌魂茄促.void increaseSkillExp(Slayer* pSlayer, SkillDomainType_t DomainType, SkillSlot* pSkillSlot, SkillInfo* pSkillInfo, ModifyInfo&);// 浇饭捞绢 拌凯 版氰摹甫 拌魂茄促.bool increaseDomainExp(Slayer* pSlayer, SkillDomainType_t Domain, Exp_t Exp, ModifyInfo &);// 轨颇捞绢 版氰摹甫 拌魂茄促.void increaseVampExp(Vampire*, Exp_t, ModifyInfo&);// 酒快胶磐胶 版氰摹甫 拌魂茄促.void increaseOustersExp(Ousters*, Exp_t, ModifyInfo&);// 浇饭捞绢 棺 轨颇捞绢 疙己阑 拌魂茄促.void increaseFame(Creature* pAttackee, uint amount);// 磷看阑锭狼 贸府RankExp_t computeRankExp(int myLevel, int otherLevel);void affectKillCount(Creature* pAttacker, Creature* pDeadCreature);//////////////////////////////////////////////////////////////////////////////// 扁鸥 窃荐甸...//////////////////////////////////////////////////////////////////////////////// 芭府俊 蝶弗 SG, SR狼 焊呈胶甫 拌魂茄促.int computeArmsWeaponSplashSize(Item* pWeapon, int ox, int oy, int tx, int ty);int computeArmsWeaponDamageBonus(Item* pWeapon, int ox, int oy, int tx, int ty);int computeArmsWeaponToHitBonus(Item* pWeapon, int ox, int oy, int tx, int ty);// 瘤沥等 谅钎 林困狼 胶敲贰浆 单固瘤甫 嘎阑 农府媚甫 惶酒柯促. int getSplashVictims(Zone* pZone, int cx, int cy, Creature::CreatureClass CClass, list<Creature*>& creatureList, int splash);int getSplashVictims(Zone* pZone, int cx, int cy, Creature::CreatureClass CClass, list<Creature*>& creatureList, int splash, int range);int getSplashVictims(Zone* pZone, int cx, int cy, list<Creature*>& creatureList, int splash);// 饭骇诀 矫 HP客 MP甫 菜 盲况霖促.void healCreatureForLevelUp(Slayer* pSlayer, ModifyInfo& _ModifyInfo, SLAYER_RECORD* prev);void healCreatureForLevelUp(Vampire* pVampire, ModifyInfo& _ModifyInfo, VAMPIRE_RECORD* prev);void healCreatureForLevelUp(Ousters* pOusters, ModifyInfo& _ModifyInfo, OUSTERS_RECORD* prev);// 扁贱 角菩矫 菩哦阑 朝赴促.void executeSkillFailNormal(Creature* pCreature, SkillType_t SkillType, Creature* pTargetCreature, BYTE Grade = 0);void executeAbsorbSoulSkillFail(Creature* pCreature, SkillType_t SkillType, ObjectID_t TargetObjectID, bool bBroadcast, bool bSendTwice);void executeSkillFailNormalWithGun(Creature* pCreature, SkillType_t SkillType, Creature* pTargetCreature, BYTE RemainBullet);void executeSkillFailException(Creature* pCreature, SkillType_t SkillType, BYTE Grade = 0);void decreaseHP(Zone* pZone, Creature* pCreature, int Damage, ObjectID_t attackerObjectID=0);Dir_t getDirectionToPosition(int originX, int originY, int destX, int destY);Exp_t computeSkillPointBonus(SkillDomainType_t Domain, SkillLevel_t DomainLevel, Item* pWeapon, Exp_t Point);// 痢苞 痢荤捞甫 吧绢辑 哎 荐 乐绰啊? ( 农府媚肺 阜腮 版快绰 力寇 )bool isPassLine( Zone* pZone, ZoneCoord_t sX, ZoneCoord_t sY, ZoneCoord_t eX, ZoneCoord_t eY );// 滴 痢荤捞狼 柳急阑 捞风绰 痢甸阑 备茄促.void getLinePoint( ZoneCoord_t sX, ZoneCoord_t sY, ZoneCoord_t eX, ZoneCoord_t eY, list<TPOINT>& tpList );ElementalType getElementalTypeFromString( const string& type );Damage_t computeElementalCombatSkill( Ousters* pOusters, Creature* pTargetCreature, ModifyInfo& AttackerMI );#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -