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

📄 objectmonster.h

📁 真正的传奇源代码
💻 H
字号:

#define _MONSTER_SANDMOB		3		// 籍厘牢
#define _MONSTER_ROCKMAN		4		// 荤鲍
#define _MONSTER_RON			9		// 沸
#define _MONSTER_MINORNUMA		18		// 穿付
#define _ANIMAL_DEER			21		// 荤娇
#define _MONSTER_OMA			23		// 坷付
#define _MONSTER_OMAKNIGHT		25		// 坷付傈荤
#define _MONSTER_OMAWARRIOR		27		// 坷付侩荤
#define _MONSTER_SPITSPIDER		30		// 魔芭固
#define _MONSTER_STICK			39		// 侥牢檬
#define _MONSTER_DUALAXE		42		// 街档尝秦榜
#define _MONSTER_THONEDARK		74		// 促农
#define _MONSTER_LIGHTZOMBI		78		// 扼捞飘醋 粱厚
#define _MONSTER_WHITESKELETON	94		// 归榜
#define _MONSTER_BEEQUEEN		124		// 厚阜盔面
#define _MONSTER_BEE			125		// 厚阜面
#define _MONSTER_MAGUNGSA		143		// 付泵荤
#define _MONSTER_SCULTURE1		145		// 林付脚厘
#define _MONSTER_SCULTURE2		148		// 林付脚厘
#define _MONSTER_SCULTUREKING	152		// 林付空
#define _MONSTER_ELFMONSTER		161		// 脚荐
#define _MONSTER_ELFWARRIOR		162		// 脚荐 函脚饶

#define LA_UNDEAD				1

class CHolySeizeInfo
{
public:
	CEvent*					Event[8];
	CWHList<CCharObject*>	SeizeList;
	DWORD					dwOpenTime;
	DWORD					dwSeizeTime;
};

class CMonsterObject : public CNPCObject
{
public:
	int								m_nRace;

	DWORD							m_dwNextWalkTime;

	DWORD							m_dwHitTime;
	DWORD							m_dwNextHitTime;
	DWORD							m_dwThinkTime;
	DWORD							m_dwSearchEnemyTime;
	
	int								m_nTargetX;
	int								m_nTargetY;
	BYTE							m_btTargetDir;

	DWORD							m_dwRunAwayTime;
	DWORD							m_dwRunAwayStart;

	DWORD							m_dwExpHitTime;
	DWORD							m_dwLastHitTime;

	DWORD							m_nFindPathTime;

	BOOL							m_fDupMode;
	BOOL							m_fRunAwayMode;
	BOOL							m_fNoAttackMode;
	BOOL							m_fHasMission;

	int								m_nMissionX;
	int								m_nMissionY;

	int								m_nFightExp;

	WORD							m_wEscape;

	BYTE							m_btLifeAttrib;

	BOOL							m_fBoHolySeize;
	DWORD							m_dwHolySeizeStart;
	DWORD							m_dwHolySeizeTime;

	DWORD							m_dwGold;
	CWHList<_LPTGENERALITEMRCD>		m_xTGenItemRcd;
	CWHList<_LPTUSERITEMRCD>		m_xTItemRcd;
			
public:
	CMonsterObject();

	BOOL	Think();
	BOOL	Attack();
	BOOL	IsFrontObject(CCharObject* pCharObject);
	void	Struck(CCharObject* pHitter);
	void	SetLastHiter(CCharObject* pHitter);
	void	GotoTargetXY();

	BOOL	TargetInAttackRange();
	BOOL	TargetInSpitRange(int& nTargetDir);
	
	void	Wondering();
	void	MonsterNormalAttack();

	CMonsterObject*	MakeClone(int nMonRace);

	void	MakeHolySeize(DWORD dwHTime);
	void	BreakHolySeize();

	void	ComeOut();
	void	ComeDown();
	BOOL	CheckComeOut(int nValue);

	void	Initialize();

	void	InheritedRun();

	void	KickException();
	void	Die();

	void	ScatterBagItems();

	void	MakeGenItem(_LPTGENERALITEMRCD lptGenItemRcd);
	void	MonGetRandomItems();

	virtual BOOL	IsProperTarget(CCharObject* pCharObject);

	virtual void	Operate();
	virtual BOOL	AttackTarget();
	virtual BOOL	WalkTo(int nDir);
	virtual void	SearchViewRange();
	virtual void	Run();
	virtual WORD	GetThisCharColor();
	virtual void	GetCharName(char *pszCharName);
};

class CGenneralMonObject : public CMonsterObject
{
public:
	virtual void	Run();
};

class CAnimalObject : public CMonsterObject
{
public:
	BOOL			m_fSkeleton;

	int				m_nMeatQuality;
	int				m_nBodyLeathery;
};

// 催
class CChickenObject : public CAnimalObject
{
public:
	CChickenObject();

	virtual void	Run();
};

// 林付脚厘, 林付龋过
class CScultureObject : public CMonsterObject
{
public:
	CScultureObject();

	void			MeltStone();
	void			MeltStoneAll();

	virtual void	Run();
};

// 林付空
class CScultureKingObject : public CMonsterObject
{
protected:
	CWHList<CMonsterObject*>	m_SlaveObjectList;
	int							m_nDangerLevel;

public:
	CScultureKingObject();

	void			MeltStone();
	void			CallSlave();

	virtual void	Run();
};

// 厚阜盔面
class CBeeQueen : public CMonsterObject
{
protected:
	CWHList<CMonsterObject*>	m_SlaveObjectList;

public:
	CBeeQueen();

	void			CallSlave();
	void			MakeChildBee();

	virtual void	Operate();
	virtual void	Run();
};

// 街档尝秦榜, 付泵荤
class CDualAxeObject : public CMonsterObject
{
protected:
	int m_nChainShot;
	int m_nChainShotCount;
	
public:
	CDualAxeObject(int nChainShotCount = 2);

	void			FlyAxeAttack(CCharObject* pTargetObject);

	virtual BOOL	AttackTarget();
	virtual void	Run();
};

// 扼捞飘葫 粱厚
class CLightingZombiObject : public CMonsterObject
{	   	
public:
	CLightingZombiObject()
	{
		m_dwSearchTick	= 1500 + rand() % 1500;
	}

	void			LightingAttack(int nDir);

	virtual void	Run();
};

// 沸
class CRonObject : public CGenneralMonObject
{
public:
	void			AroundAttack();

	virtual void	Run();
};

// 窍鞭 穿付
class CMinorNumaObject : public CMonsterObject
{
public:
	virtual void	Run();
};

// 坷付 矫府令
class COmaObject : public CMonsterObject
{
public:
	virtual void	Run();
};

// 侥牢檬
class CStickObject : public CMonsterObject
{
public:
	CStickObject();

	virtual void	Run();
};


// 葛贰 鲍拱 (荤鲍)
class CSandMobObject : public CMonsterObject
{
public:
	DWORD	m_dwAppearStart;

	CSandMobObject();

	virtual void	Run();
};

// 籍厘牢
class CRockManObject : public CMonsterObject
{
public:
	CRockManObject();

	virtual void	Run();
};

// 归榜
class CWhiteSkeleton : public CGenneralMonObject
{
protected:
	BOOL			m_fIsFirst;

public:
	CWhiteSkeleton();

	void	ResetSkeleton();

	virtual void	Run();
};

// 魔芭固
class CSpitSpiderMonster : public CGenneralMonObject
{
public:
	CSpitSpiderMonster();

	void	SpitAttack(int nDir);

	virtual BOOL AttackTarget();
};

// 脚荐 函脚傈
class CElfMonster : public CMonsterObject
{
protected:
	BOOL			m_fIsFirst;

public:
	CElfMonster();

	void	AppearNow();
	void	ResetElfMon();

	virtual void	Run();
};

// 脚荐 函脚饶
class CElfWarriorMonster : public CSpitSpiderMonster
{
protected:
	BOOL			m_fIsFirst;

public:
	CElfWarriorMonster();

	void	AppearNow();
	void	ResetElfMon();

	virtual void	Run();
};

⌨️ 快捷键说明

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