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

📄 questfunction.h

📁 国内著名网络游戏dragon的服务端完整源码 内附完整数据库结构
💻 H
📖 第 1 页 / 共 2 页
字号:

#ifndef		_QUEST_IN_MAP_
#define		_QUEST_IN_MAP_

#include <list>
#include <vector>
using namespace std;

enum SCRIPT
{
	SCRIPT_COUNTER_TYPE__NPCKILL = 0,
	SCRIPT_COUNTER_TYPE__ITEMCOUNT = 1,

	SCRIPT_COUNT_STOP = 0,
	SCRIPT_COUNT_START = 1,
	SCRIPT_COUNT_CHECK = 2,

	SCRIPT_END_SUC		=10,
	SCRIPT_END_FAL		=20,
};

class CRequital;

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//CScriptTimer	鸥捞赣甫 荤侩茄促 .

class CScriptTimer
{
	/*
	enum
	{
		MAX_TIMER_TIME	= 5 * 3600 * 1000,		//5矫埃捞 力茄捞促.
		MIN_SYNCH_TIME	= 2 * 1000,				//2檬捞窍促.
	};

  //档措眉 悼扁拳啊 鞘夸档 绝绰 窃荐瘤父 唱吝匡 积阿秦辑 悼扁拳甫 困茄 2啊瘤 窃荐甫 技泼且荐 乐霸 沁促.
*/
	
public:
	CScriptTimer(int id, char * name, DWORD dwTime, DWORD dwSynch):m_ID(id), m_dwTimerTime(dwTime), m_dwSynchTime(dwSynch)
	{	//< CSD-030509
		strcpy( m_szName, name); 
		m_bStart = false;
		m_dwOld= 0;
		m_dwSynch=0;
		memset(m_szMapFile, 0, sizeof(m_szMapFile));
		m_nPosX = 0;
		m_nPosY = 0;
	}	//> CSD-030509

	CScriptTimer()
	{	//< CSD-030509
		m_ID=0; 
		m_dwTimerTime=0; 
		m_dwSynchTime=0; 
		m_dwSpendTime=0; 
		m_bStart=false; 
		m_dwOld=0; 
		m_dwSynch=0;
		memset(m_szMapFile, 0, sizeof(m_szMapFile));
		m_nPosX = 0;
		m_nPosY = 0;
	}	//> CSD-030509

	~CScriptTimer(){}

private:
	DWORD	m_dwTimerTime;		//且寸等 鸥烙
	DWORD	m_dwSpendTime;		//荤侩等 矫埃. 悼扁拳甫 困秦
	bool	m_bStart;			//鸥捞赣啊 矫悼登菌绰啊?
	DWORD	m_dwSynchTime;		//倔付父狼 矫埃付促 悼扁拳 窍绰啊? 酒聪搁 捞 矫扁付促 绢恫 窃荐甫 角青且巴牢啊?

	void	(*m_func)();		//鸥捞赣 倒搁辑 龋免窍绰 窃荐
	void	(*m_syncFunc)();	//鸥捞赣 档吝俊 龋免窍绰 窃荐
	void	(*m_afterFunc)();	//鸥捞赣 场唱绊 龋免窍绰 窃荐	<-汲沥 救窃 唱吝俊 萍绢赣 馋唱搁 捞 窃荐甫 龋免窍霸 茄促.

	void	AfterTimer();//char* szMap, int x, int y);	//鸥捞赣啊 场捞 唱搁 官府 角青茄促?

	int		m_ID;				//cn蔼阑 历厘茄促.
	char	m_szName[31];			//父距阑 困秦 捞抚档 历厘茄促.
	char    m_szMapFile[30]; // CSD-030509
	int     m_nPosX;		 // CSD-030509
	int     m_nPosY;		 // CSD-030509

public:
	DWORD	m_dwOld;
	DWORD	m_dwSynch;

	void	SetID( const int iID){m_ID = iID;};						//鸥捞赣 id且寸
	void	SetName( const char* name );//{ strcpy(m_szName, name);};
	void	SetTimerTime( DWORD dwTime);				//鸥捞赣狼 矫埃阑 汲沥茄促. 
	void	SetSynchroneTime( DWORD dwSyncTime );		//悼扁拳 窍绰 矫埃阑 汲沥
	void	SetFunction( void(*func)(), void (*syncFunc)());
	void	SetAfterMap( const char* mapfile, const int& x, const int& y);	//鸥捞赣 馋唱备 角芹瞪 窃荐
	void	ClearTimer();								//鸥捞赣 蔼甸阑 傈何 0栏肺

	DWORD	GetCurretTimerTime() const { return m_dwTimerTime;};			//泅犁 巢篮 矫埃阑 舅酒夯促.
	DWORD	GetCurretSynchTime() const { return m_dwSynchTime;};		//汲沥茄 悼扁拳 矫埃阑 舅酒夯促.
	DWORD	GetSpendTime() const { return m_dwSpendTime;};
	int		GetConnectionID() const { return m_ID;};						//EventPc蔼阑 逞变促.
	char*	GetName() { return m_szName;};

	bool	IsRunning();				//柳青吝牢啊?
	bool	IsStart() const { return m_bStart;};

	void	SendSCRIPT_TIEMER( DWORD dwSpendTime , int iType);		//教农恆 嘎眠扁 困茄 菩哦阑 焊辰促.
	bool	ConfirmSyncTimer( DWORD dwTimer);						//教农 嘎免锭 鸥捞赣啊 利例窍霸 刘啊沁绰啊?

	bool	StartTimer( bool bOnlyServer = false);				//矫埃捞 汲沥登绢 乐栏搁 m_bStart = true茄促. 概俺函荐啊 true捞搁 辑滚父 捣促.
	void	RunTimer();					//拌斤秦辑 角青
	void	EndTimer( int iFlag);		//iflag ==0 己傍, ==1 角菩

	void	Log_UserInfo(const int nCn);	// 030617 kyo
};
//CScriptTimer
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//CScriptCounter
class CScriptCounter
{
public:
	CScriptCounter(){ClearCounter();};
	~CScriptCounter(){};

private:
	int		m_iSpeciesNum;		//墨款磐且波 锅龋
	int		m_iSpeciesType;		//绢恫吧 墨款磐且鳖?
	int		m_iSpeciesMuch;		//割俺甫 墨款磐且鳖?
	bool	m_bStart;
	int		m_iCounter;			//泅犁 割俺牢唱?
	int		m_ID;
	char	m_szName[31];

public:
	void	SetSpeciesNum	( const int& iNum )		{ m_iSpeciesNum = iNum; };
	void	SetSpeciesType	( const int& iType )	{ m_iSpeciesType= iType; };
	void	SetSpeciesMuch	( const int& iMuch )	{ m_iSpeciesMuch= iMuch; };
	void	SetConnectionID ( const int& iID )		{ m_ID = iID;};
	void	SetName			( const char* szName)	{ strcpy( m_szName, szName); };
	void	SetCounter		( const int& iCounter)	{ m_iCounter = iCounter;};	

	int		GetSpeciesNum() const { return m_iSpeciesNum; };
	int		GetSpeciesType() const { return m_iSpeciesType; };
	int		GetSpeciesMuch() const { return m_iSpeciesMuch; };
	int		GetCounter() const { return m_iCounter; };
	int		GetConnectionID() const { return m_ID; };
	char*	GetName() { return m_szName; };

	bool	IsStart() const { return m_bStart; };
	void	ClearCounter();

	void	SendSCRIPT_COUNTER( int iType);
	void	RecvSCRIPT_COUNTER();

	bool	StartCounter();
	void	RunCounter( int iNum );		//汲沥摹鳖瘤 
	void	EndCounter();		// 馋唱蝶绊 菩哦父 焊晨.. 墨款磐绰 鸥捞赣啊 磷阑锭, 胶农赋飘肺 磷老锭 狼 版快俊父 肛冕促
	void	AddCounter();		//npc瘤扁扁俊辑 荤侩登绰 芭. 刘啊矫付唱 菩哦焊晨
};

//CScriptCounter
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
class CSpellMove
{
public:
	CSpellMove(){};
	CSpellMove(int id, string spells){ m_ID = id; m_szSpell = spells;};
	~CSpellMove(){};
	string		m_szSpell;
	int			m_ID;
	
	int			GetId() const {return m_ID;};
};

class CBossTimer
{

	typedef list<int>::iterator	ITOR_INT;
public:
	enum{
		TYPE_BOSS_ONLY = 0,
		TYPE_BOSS_GROUP = 1,
		TYPE_BOSS_OUT	=2,
	};

	CBossTimer();
	~CBossTimer();
	CScriptTimer m_cBossTimer;
	list<int>	m_lUserCn;
	int			m_nBossID,m_iBossSprNo;
	DWORD		m_dwBossTimer;
	int			m_nFlag;	// 焊胶甫 茄付府父 且搏瘤 窜眉肺且搏瘤. 031029 kyo 
	
	bool AddUser(const int nCn);
	bool DeleteUser(const int nCn);
	int GetUserSize() const {return m_lUserCn.size();}
	void RemoveBossNpc();		//焊胶 磷烙

⌨️ 快捷键说明

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