⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 skillhandler.h

📁 天之炼狱1服务器端源文件游戏服务端不完整
💻 H
字号:
//////////////////////////////////////////////////////////////////////////////// Filename    : SkillHandler.h // Written by  : elca@ewestsoft.com// Description : //////////////////////////////////////////////////////////////////////////////#ifndef __SKILL_HANDLER_H__#define __SKILL_HANDLER_H__#include "Skill.h"#include "SkillInfo.h"#include "Slayer.h"#include "Vampire.h"#include "Ousters.h"#include "Monster.h"#include "Item.h"#include "ModifyInfo.h"#include "HitRoll.h"#include "SkillUtil.h"#include "ZoneUtil.h"#include "GamePlayer.h"#include "Thread.h"#include <algorithm>//////////////////////////////////////////////////////////////////////////////// 概农肺, 惑荐, 窃荐 庆歹//////////////////////////////////////////////////////////////////////////////#define MAKEWORD(U,D) (WORD)((WORD)(U)<<8  |(WORD)(D))#define MAKEDWORD(U,D)(DWORD)((DWORD)(U)<<16 |(DWORD)(D))void getExplosionTypeXYOffset(int, int, const int*&, const int*&, int&); //////////////////////////////////////////////////////////////////////////////// class SkillInput & SkillOutput//////////////////////////////////////////////////////////////////////////////class SkillInput{public:	enum TargetType	{		TARGET_SELF = 0,		TARGET_OTHER,		TARGET_MAX	};	enum TargetRace	{		TARGET_PC = 0,		TARGET_MONSTER	};public:	SkillInput() {}	SkillInput(Slayer* pSlayer, SkillSlot* pSkillSlot);	SkillInput(Vampire* pVampire);	SkillInput(Ousters* pOusters, OustersSkillSlot* pOustersSkillSlot);	SkillInput(Monster* pMonster);public:	int             SkillLevel;	int             DomainLevel;	int				STR;	int				DEX;	int             INTE;	int             TargetType;	int             Range;	Item::ItemClass IClass;	int             PartySize;};class SkillOutput{public:	SkillOutput()	{		Damage   = 0;		Duration = 0;		Tick     = 0;		ToHit    = 0;		Range    = 0;		Delay    = 0;	}public:	int Damage;    // 单固瘤 肚绰 瓤苞摹	int Duration;  // 瘤加 矫埃阑 啊瘤绰 扁贱老 版快, 瘤加 矫埃	int Tick;      // 老沥 林扁付促 康氢阑 林绰 扁贱老 版快, 弊 老沥 林扁	int ToHit;     // 单固瘤客 窃膊 疙吝伏档 鞍捞 函拳矫虐绰 扁贱老 版快.	int Range;     // 槛访档, INT 殿俊 蝶扼 康氢 裹困啊 函窍绰 扁贱老 版快.	int Delay;     // 促澜栏肺 扁贱阑 镜 荐 乐绰 矫埃};//////////////////////////////////////////////////////////////////////////////// class SkillHandler//////////////////////////////////////////////////////////////////////////////class SkillHandler {///// constructor & destructor /////public:	SkillHandler() throw() {}	virtual ~SkillHandler() throw() {}///// method header for overriding /////public:	virtual void execute(Slayer* pSlayer, ObjectID_t ObjectID) throw(Error);	virtual void execute(Vampire* pVampire, ObjectID_t ObjectID) throw(Error);	virtual void execute(Vampire* pVampire) throw(Error);	virtual void execute(Ousters* pOusters, ObjectID_t ObjectID) throw(Error);	virtual void execute(Ousters* pOusters) throw(Error);	// Skill To Self	virtual void execute(Slayer* pSlayer, SkillSlot* pSkillSlot, CEffectID_t CEffectID) throw(Error);	virtual void execute(Vampire* pVampire, VampireSkillSlot* pVampireSkillSlot, CEffectID_t CEffectID) throw(Error);	virtual void execute(Ousters* pOusters, OustersSkillSlot* pOustersSkillSlot, CEffectID_t CEffectID) throw(Error);	// Skill To Object	virtual void execute(Creature* pCreature, ObjectID_t ObjectID, SkillSlot* pSkillSlot, CEffectID_t CEffectID, SkillType_t SkillType) throw(Error);	virtual void execute(Slayer* pSlayer,     ObjectID_t ObjectID, SkillSlot*  pSkillSlot, CEffectID_t CEffectID) throw(Error);	virtual void execute(Vampire* pVampire,   ObjectID_t ObjectID, VampireSkillSlot* pSkillSlot, CEffectID_t CEffectID) throw(Error);	virtual void execute(Ousters* pOusters,   ObjectID_t ObjectID, OustersSkillSlot* pSkillSlot, CEffectID_t CEffectID) throw(Error);	// Skill To Tile	virtual void execute(Slayer* pSlayer, ZoneCoord_t X, ZoneCoord_t Y, SkillSlot* pSkillSlot, CEffectID_t CEffectID) throw(Error);	virtual void execute(Vampire* pVampire, ZoneCoord_t X, ZoneCoord_t Y, VampireSkillSlot* pVampireSkillSlot, CEffectID_t CEffectID) throw(Error);	virtual void execute(Ousters* pOusters, ZoneCoord_t X, ZoneCoord_t Y, OustersSkillSlot* pOustersSkillSlot, CEffectID_t CEffectID) throw(Error);	// Skill To Inventory	virtual void execute(Slayer* pSlayer, ObjectID_t TargetObjectID, CoordInven_t X, CoordInven_t Y, CoordInven_t TargetX, CoordInven_t TargetY, SkillSlot* pSkillSlot) throw(Error);	virtual void execute(Vampire* pVampire, ObjectID_t TargetObjectID, CoordInven_t X, CoordInven_t Y, CoordInven_t TargetX, CoordInven_t TargetY, VampireSkillSlot* pVampireSkillSlot) throw(Error);	virtual void execute(Ousters* pOusters, ObjectID_t TargetObjectID, CoordInven_t X, CoordInven_t Y, CoordInven_t TargetX, CoordInven_t TargetY, OustersSkillSlot* pOustersSkillSlot) throw(Error);	// Throw Holy Water侩...	virtual void execute(Slayer* pSlayer, ObjectID_t TargetObjectID, ObjectID_t ItemObjectID, CoordInven_t X, CoordInven_t Y) throw(Error);	// Absorb Soul 侩	virtual void execute(Ousters* pOusters, ObjectID_t TargetObjectID, ZoneCoord_t TargetZoneX, ZoneCoord_t TargetZoneY, ObjectID_t InvenObjectID, CoordInven_t X, CoordInven_t Y, CoordInven_t TargetX, CoordInven_t TargetY) throw(Error);	// Target捞 捞抚栏肺 侥喊登绰 版快	// ex) SoulChain . 	virtual void execute(PlayerCreature* pPC, const string& TargetName, SkillSlot* pSkillSlot, CEffectID_t CEffectID) throw(Error);	virtual void execute(Slayer* pSlayer, const string& TargetName, SkillSlot* pSkillSlot, CEffectID_t CEffectID) throw(Error);	virtual void execute(Vampire* pVampire, const string& TargetName, VampireSkillSlot* pVampireSkillSlot, CEffectID_t CEffectID) throw(Error);	virtual void execute(Ousters* pOusters, const string& TargetName, OustersSkillSlot* pOustersSkillSlot, CEffectID_t CEffectID) throw(Error);	virtual void execute(Monster* pMonster) throw(Error);	virtual void execute(Monster* pMonster, Creature* pEnemy) throw(Error);	virtual void execute(Monster* pMonster, ZoneCoord_t x, ZoneCoord_t y) throw(Error);	virtual void computeOutput(const SkillInput& input, SkillOutput& output) = 0;///// identity methods /////public:	virtual string getSkillHandlerName() const throw() = 0;	virtual SkillType_t getSkillType() const throw() = 0;};#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -