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

📄 monsterfunctionobject.h

📁 天之炼狱1服务器端源文件游戏服务端不完整
💻 H
字号:
//////////////////////////////////////////////////////////////////////////////// Filename    : MonsterFunctionObject.h// Written By  : excel96// Description ://////////////////////////////////////////////////////////////////////////////#ifndef __MONSTER_FUNCTION_OBJECT_H__#define __MONSTER_FUNCTION_OBJECT_H__#include "Zone.h"#include "Slayer.h"#include "Vampire.h"#include "Ousters.h"#include "Monster.h"////////////////////////////////////////////////////////////////////////////////// class StrongerSlayer, WeakerSlayer, StrongerVampire, WeakerVampire;//// 捞 努贰胶甸篮, 阁胶磐俊霸 enemy 甫 眠啊窍绰 Monster::addEnemy() 皋筋靛// 俊辑 粮狼 农府贸 概聪历俊辑 货 enemy 狼 利例茄 火涝 困摹甫 茫酒尘 锭// 荤侩窍绰 function object 肺辑 荤侩等促.//// ex> 泅犁 阁胶磐狼 AttackOrder啊 ATTACK_WEAKEST 扼绊 啊沥窍磊. 捞 // 阁胶磐狼 m_Enemies 绰 距茄 鉴辑措肺 沥纺登绢 乐阑 巴捞促. 老窜 // 泅犁狼 胶棋俊绰 轨颇捞绢 阁胶磐父 粮犁窍扁 锭巩俊, 捞 阁胶磐甸篮// 轨颇捞绢客 浇饭捞绢俊霸 傍拜阑 鞍捞 罐霸 登搁, 漂沥 惑炔俊辑绰// 浇饭捞绢甫 刚历 傍拜窍霸 等促. 蝶扼辑, 捞 m_Enemies 绰 菊率俊// 浇饭捞绢甸狼 OID啊 历厘登绢 乐栏哥, 缔率俊 轨颇捞绢甸狼 OID啊// 历厘登绢 乐促. //// 捞力 SkillDomainLevelSum == 5000 牢 浇饭捞绢啊 捞 阁胶磐甫 傍拜秦辑// 利栏肺 瘤沥瞪妨绊 窍绰 鉴埃捞 登菌促绊 摹磊. 捞 浇饭捞绢甫 利例茄// 困摹俊 火涝窍扁 困秦辑绰, 啊厘 距茄 浇饭捞绢狼 困摹甫 舅酒郴具 茄促.// (浇饭捞绢啊 绝促搁 弥檬狼 轨颇捞绢狼 困摹甫 舅酒郴具 茄促.)//// 捞凡 版快, STL狼 find_if 舅绊府硫阑 荤侩窍搁 内靛啊 埃窜秦 瘤绰单,// 咯扁狼 颇扼固磐肺 WeakerSlayer(5000) 阑 瘤沥秦林搁 舅酒辑 茫霸 等促.//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// class StrongerSlayer;// enemy list 绰 泅犁 距茄 鉴辑肺 沥纺登绢 乐促.// 蝶扼辑, operator()绰 浇饭捞绢啊 酒聪芭唱 磊脚焊促 碍茄 浇饭捞绢老 版快// true阑 府畔秦具 茄促. 弊贰辑, 弊 菊率 畴靛俊 眠啊窍搁 距茄 鉴辑甫 蜡瘤窍霸 等促.//////////////////////////////////////////////////////////////////////////////class StrongerSlayer {public:	StrongerSlayer (Zone* pZone , SkillLevel_t skillLevelSum) throw ()	{		m_pZone = pZone;		m_SkillDomainLevelSum = skillLevelSum;	}	bool operator () (ObjectID_t objectID) 	{		Assert(m_pZone != NULL);	// by sigi		Creature* pCreature = NULL;		try		{			pCreature = m_pZone->getCreature(objectID);		}		catch (NoSuchElementException& nsee)		{			//cout << nsee.toString() << endl;			pCreature = NULL;		}		if (pCreature == NULL) return false; // by sigi		if (! pCreature->isSlayer())			return true;		Slayer* pSlayer = dynamic_cast<Slayer*>(pCreature);		return pSlayer->getSkillDomainLevelSum() > m_SkillDomainLevelSum;	}private:	Zone*        m_pZone;	SkillLevel_t m_SkillDomainLevelSum;};//////////////////////////////////////////////////////////////////////////////// class WeakerSlayer;// enemy list 绰 泅犁 碍茄 鉴辑肺 沥纺登绢 乐促.// 蝶扼辑, 浇饭捞绢啊 酒聪芭唱 磊脚焊促 距茄 浇饭捞绢老 版快// true阑 府畔秦具 茄促. 弊贰辑, 弊 菊率 畴靛俊 眠啊窍搁// 碍茄 鉴辑甫 蜡瘤窍霸 等促.//////////////////////////////////////////////////////////////////////////////class WeakerSlayer {public :	// constructor	WeakerSlayer (Zone* pZone , SkillLevel_t skillLevelSum) throw ()	{		m_pZone = pZone;		m_SkillDomainLevelSum = skillLevelSum;	}	bool operator () (ObjectID_t objectID)	{		Assert(m_pZone != NULL);	// by sigi		Creature* pCreature = NULL;		try		{			pCreature = m_pZone->getCreature(objectID);		}		catch (NoSuchElementException& nsee)		{			//cout << nsee.toString() << endl;			pCreature = NULL;		}		if (pCreature == NULL) return false; // by sigi		if (! pCreature->isSlayer())			return true;		Slayer* pSlayer = dynamic_cast<Slayer*>(pCreature);		return pSlayer->getSkillDomainLevelSum() < m_SkillDomainLevelSum;	}private:	Zone*        m_pZone;	SkillLevel_t m_SkillDomainLevelSum;};//////////////////////////////////////////////////////////////////////////////// class StrongerVampire;// enemy list 绰 泅犁 距茄 鉴辑肺 沥纺登绢 乐促.// 蝶扼辑, 磊脚焊促 碍茄 轨颇捞绢老 版快俊父 true阑 府畔秦具 茄促. // 弊贰辑, 弊 菊率 畴靛俊 眠啊窍搁 距茄 鉴辑甫 蜡瘤窍霸 等促.//////////////////////////////////////////////////////////////////////////////class StrongerVampire {public:	StrongerVampire (Zone* pZone , Level_t level) throw ()	{		m_pZone = pZone;		m_Level = level;	}	bool operator () (ObjectID_t objectID) 	{		Assert(m_pZone != NULL);	// by sigi		Creature* pCreature = NULL;		try		{			pCreature = m_pZone->getCreature(objectID);		}		catch (NoSuchElementException& nsee)		{			//cout << nsee.toString() << endl;			pCreature = NULL;		}		if (pCreature == NULL) return false; // by sigi		if (! pCreature->isVampire())			return false;		Vampire* pVampire = dynamic_cast<Vampire*>(pCreature);		return pVampire->getLevel() > m_Level;	}private:	Zone*   m_pZone;	Level_t m_Level;};//////////////////////////////////////////////////////////////////////////////// class WeakerVampire;// enemy list 绰 泅犁 碍茄 鉴辑肺 沥纺登绢 乐促.// 蝶扼辑, 磊脚焊促 距茄 轨颇捞绢老 版快俊父 true阑 府畔秦具 茄促. // 弊贰辑, 弊 菊率 畴靛俊 眠啊窍搁 距茄 鉴辑甫 蜡瘤窍霸 等促.//////////////////////////////////////////////////////////////////////////////class WeakerVampire {public:	WeakerVampire (Zone* pZone , Level_t level) throw ()	{		m_pZone = pZone;		m_Level = level;	}	bool operator () (ObjectID_t objectID) 	{		Assert(m_pZone != NULL);	// by sigi		Creature* pCreature = NULL;		try		{			pCreature = m_pZone->getCreature(objectID);		}		catch (NoSuchElementException& nsee)		{			//cout << nsee.toString() << endl;			pCreature = NULL;		}		if (pCreature == NULL) return false; // by sigi		if (! pCreature->isVampire())			return false;		Vampire* pVampire = dynamic_cast<Vampire*>(pCreature);		return pVampire->getLevel() < m_Level;	}private:	Zone*   m_pZone;	Level_t m_Level;};class StrongerOusters {public:	StrongerOusters (Zone* pZone , Level_t level) throw ()	{		m_pZone = pZone;		m_Level = level;	}	bool operator () (ObjectID_t objectID) 	{		Assert(m_pZone != NULL);	// by sigi		Creature* pCreature = NULL;		try		{			pCreature = m_pZone->getCreature(objectID);		}		catch (NoSuchElementException& nsee)		{			//cout << nsee.toString() << endl;			pCreature = NULL;		}		if (pCreature == NULL) return false; // by sigi		if (! pCreature->isOusters())			return false;		Ousters* pOusters = dynamic_cast<Ousters*>(pCreature);		return pOusters->getLevel() > m_Level;	}private:	Zone*   m_pZone;	Level_t m_Level;};//////////////////////////////////////////////////////////////////////////////// class WeakerOusters;// enemy list 绰 泅犁 碍茄 鉴辑肺 沥纺登绢 乐促.// 蝶扼辑, 磊脚焊促 距茄 轨颇捞绢老 版快俊父 true阑 府畔秦具 茄促. // 弊贰辑, 弊 菊率 畴靛俊 眠啊窍搁 距茄 鉴辑甫 蜡瘤窍霸 等促.//////////////////////////////////////////////////////////////////////////////class WeakerOusters {public:	WeakerOusters (Zone* pZone , Level_t level) throw ()	{		m_pZone = pZone;		m_Level = level;	}	bool operator () (ObjectID_t objectID) 	{		Assert(m_pZone != NULL);	// by sigi		Creature* pCreature = NULL;		try		{			pCreature = m_pZone->getCreature(objectID);		}		catch (NoSuchElementException& nsee)		{			//cout << nsee.toString() << endl;			pCreature = NULL;		}		if (pCreature == NULL) return false; // by sigi		if (! pCreature->isOusters())			return false;		Ousters* pOusters = dynamic_cast<Ousters*>(pCreature);		return pOusters->getLevel() < m_Level;	}private:	Zone*   m_pZone;	Level_t m_Level;};//////////////////////////////////////////////////////////////////////////////// class StrongerMonster;// enemy list 绰 泅犁 距茄 鉴辑肺 沥纺登绢 乐促.// 蝶扼辑, 磊脚焊促 碍茄 轨颇捞绢老 版快俊父 true阑 府畔秦具 茄促. // 弊贰辑, 弊 菊率 畴靛俊 眠啊窍搁 距茄 鉴辑甫 蜡瘤窍霸 等促.//////////////////////////////////////////////////////////////////////////////class StrongerMonster {public:	StrongerMonster (Zone* pZone , Level_t level) throw ()	{		m_pZone = pZone;		m_Level = level;	}	bool operator () (ObjectID_t objectID) 	{		Assert(m_pZone != NULL);	// by sigi		Creature* pCreature = NULL;		try		{			pCreature = m_pZone->getCreature(objectID);		}		catch (NoSuchElementException& nsee)		{			//cout << nsee.toString() << endl;			pCreature = NULL;		}		if (pCreature == NULL) return false; // by sigi		if (! pCreature->isMonster())			return false;		Monster* pMonster = dynamic_cast<Monster*>(pCreature);		return pMonster->getLevel() > m_Level;	}private:	Zone*   m_pZone;	Level_t m_Level;};//////////////////////////////////////////////////////////////////////////////// class WeakerMonster;// enemy list 绰 泅犁 碍茄 鉴辑肺 沥纺登绢 乐促.// 蝶扼辑, 磊脚焊促 距茄 轨颇捞绢老 版快俊父 true阑 府畔秦具 茄促. // 弊贰辑, 弊 菊率 畴靛俊 眠啊窍搁 距茄 鉴辑甫 蜡瘤窍霸 等促.//////////////////////////////////////////////////////////////////////////////class WeakerMonster {public:	WeakerMonster (Zone* pZone , Level_t level) throw ()	{		m_pZone = pZone;		m_Level = level;	}	bool operator () (ObjectID_t objectID) 	{		Assert(m_pZone != NULL);	// by sigi		Creature* pCreature = NULL;		try		{			pCreature = m_pZone->getCreature(objectID);		}		catch (NoSuchElementException& nsee)		{			//cout << nsee.toString() << endl;			pCreature = NULL;		}		if (pCreature == NULL) return false; // by sigi		if (! pCreature->isMonster())			return false;		Monster* pMonster = dynamic_cast<Monster*>(pCreature);		return pMonster->getLevel() < m_Level;	}private:	Zone*   m_pZone;	Level_t m_Level;};#endif

⌨️ 快捷键说明

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