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

📄 mapgroup.h

📁 魔域源代码需要的可以学习一下真么这么麻烦啊
💻 H
📖 第 1 页 / 共 2 页
字号:

	virtual bool	SendSocketUserInfo	(PROCESS_ID idProcess, SOCKET_ID idSocket, UserInfoStruct* pInfo);
	virtual bool	SendObjInfo			(PROCESS_ID idProcess, OBJID idUser, INFO_ID nInfoMsgID, void* pInfo, int nSize);
	virtual bool	SetNpcProcessID		(OBJID idNpc, bool bAddNew);
	virtual bool	ChangeMapGroup		(PROCESS_ID idProcess, OBJID idUser, OBJID idMap, int nPosX, int nPosY);
	virtual bool	PrintText			(LPCTSTR szText);
	virtual bool	CloseSocket			(SOCKET_ID idSocket)			{ return m_pSocket->CloseSocket(idSocket); }
	virtual bool	CloseMapGroup		(SOCKET_ID idGmSocket);		// 关闭所有socket(除GM),禁止登录
	virtual bool	ChangeTeam			(int nAction, OBJID idTeam, OBJID idUser, int nData);			// 组队相关
	virtual void	RemoteCall			(REMOTE_CALL0* pInfo,bool bSendToLocal=false);
	virtual void	LevelUp				(OBJID idUser, int nLevel);
	virtual void	QueryFee			(OBJID idAccount);
	virtual void	ModifyNpc			(OBJID idNpc, LPCTSTR szField, LPCTSTR szData);
	virtual void	DelTransNpc			(OBJID idMaster, bool bBroadcast=true);
	virtual void	ChangeCode			(SOCKET_ID idSocket, DWORD dwCode);
	virtual void	SendRpc				(const CEventPack& pPack);

protected:
	PROCESS_ID		m_idProcess;
	ISocket*		m_pSocket;
	IDatabase*		m_pDb;
	IMessagePort*	m_pMsgPort;

	IRoleManager*	m_pRoleManager;
	IUserManager*	m_pUserManager;
	IMapManager*	m_pMapManager;
	INpcManager*	m_pNpcManager;
	CSynManager*	m_pSynManager;
	CLeaveWord*		m_pLeaveWord;
	CGameAction*	m_pGameAction;
	CMercenaryTask*	m_pMercenaryTask;
	CAnnounce*      m_pAnnounce;
//	CAutoPtr<CGameAction>		m_ptrGameAction;

protected: // GameDataDefault
	IRecordset*		GetMagicData()			{ ASSERT(m_pMagicDataDefault); return m_pMagicDataDefault; }
	IRecordset*		GetUserWeaponSkill()	{ ASSERT(m_pUserWeaponSkillDefault); return m_pUserWeaponSkillDefault; }
	IRecordset*		GetGameItemData()		{ ASSERT(m_pGameItemDataDefault); return m_pGameItemDataDefault; }
	IRecordset*		GetUserData()			{ ASSERT(m_pUserDataDefault); return m_pUserDataDefault; }
	IRecordset*		GetGameMapData()		{ ASSERT(m_pGameMapDataDefault); return m_pGameMapDataDefault; }
	IRecordset*		GetSynData()			{ ASSERT(m_pSynDataDefault); return m_pSynDataDefault; }
	IRecordset*		GetSynAttrData()		{ ASSERT(m_pSynAttrDataDefault); return m_pSynAttrDataDefault; }
	IRecordset*		GetPetData()			{ ASSERT(m_pPetDataDefault); return m_pPetDataDefault; }
	IRecordset*		GetDynaNpc()			{ ASSERT(m_pDynaNpcDataDefault); return m_pDynaNpcDataDefault; }
	IRecordset*		GetDynaMap()			{ ASSERT(m_pDynaMapDataDefault); return m_pDynaMapDataDefault; }
	IRecordset*		GetEudemonData()		{ ASSERT(m_pEudemonDataDefault); return m_pEudemonDataDefault; }
protected:
	IRecordset*			m_pMagicDataDefault;
	IRecordset*			m_pUserWeaponSkillDefault;
	IRecordset*			m_pGameItemDataDefault;
	IRecordset*			m_pUserDataDefault;
	IRecordset*			m_pGameMapDataDefault;
	IRecordset*			m_pSynDataDefault;
	IRecordset*			m_pSynAttrDataDefault;
	IRecordset*			m_pPetDataDefault;
	IRecordset*			m_pDynaNpcDataDefault;
	IRecordset*			m_pDynaMapDataDefault;
	IRecordset*			m_pEudemonDataDefault;
protected: // Syndicate
	virtual bool	CreateSyndicate		(const CreateSyndicateInfo* pInfo);
	virtual bool	DestroySyndicate	(OBJID idSyn, OBJID idTarget = ID_NONE);
	virtual bool	CombineSyndicate	(OBJID idSyn, OBJID idTarget);
	virtual bool	ChangeSyndicate		(const SynFuncInfo0* pFuncInfo);
	virtual void	SetMapSynID			(OBJID idMap, OBJID idSyn);

public: // static
	static void	AddMapGroup(PROCESS_ID idProcess) 
			{ if(idProcess>=m_setMapGroup.size())m_setMapGroup.resize(idProcess+1); }
	static int	IsValidMapGroupProcessID(PROCESS_ID idProcess)
			{ return idProcess >= MSGPORT_MAPGROUP_FIRST && idProcess < m_setMapGroup.size(); }

	static BOOL	CheckTime(const DWORD dwType, const char* pszParam);

private: // static
	typedef	vector<CMapGroup>	MAPGROUP_SET;
	static MAPGROUP_SET		m_setMapGroup;
	friend CMapGroup*	MapGroup(PROCESS_ID idProcess);		// 可存取以上静态对象

public:

//	MYHEAP_DECLARATION(s_heap)
};

//////////////////////////////////////////////////////////////////////
#define		PID	m_idProcess
extern CMapGroup*	MapGroup(PROCESS_ID idProcess);
inline CMapGroup*	MapGroup(PROCESS_ID idProcess){ CHECKF(CMapGroup::IsValidMapGroupProcessID(idProcess)); return &CMapGroup::m_setMapGroup[idProcess]; }
// 用法:MapGroup(PID)->UserManager()->GetUser(idUser);

//////////////////////////////////////////////////////////////////////
#define	Database()			(::MapGroup(PID)->GetDatabase())
#define	RoleManager()		(::MapGroup(PID)->GetRoleManager())
#define	UserManager()		(::MapGroup(PID)->GetUserManager())
#define	MapManager()		(::MapGroup(PID)->GetMapManager())
#define	NpcManager()		(::MapGroup(PID)->GetNpcManager())
#define	GameDataDefault()	(::MapGroup(PID)->QueryDataDefault())
#define	SynManager()		(::MapGroup(PID)->GetSynManager())
#define	LeaveWord()			(::MapGroup(PID)->GetLeaveWord())
#define	GameAction()		(::MapGroup(PID)->GetGameAction())
#define MercenaryTask()		(::MapGroup(PID)->GetMercenaryTask())
#define Announce()          (::MapGroup(PID)->GetAnnounce())

//////////////////////////////////////////////////////////////////////
inline IDatabase*		_Database(PROCESS_ID PID)			{ return ::MapGroup(PID)->GetDatabase(); }
inline IRoleManager*	_RoleManager(PROCESS_ID PID)		{ return ::MapGroup(PID)->GetRoleManager(); }
inline IUserManager*	_UserManager(PROCESS_ID PID)		{ return ::MapGroup(PID)->GetUserManager(); }
inline IMapManager*		_MapManager(PROCESS_ID PID)			{ return ::MapGroup(PID)->GetMapManager(); }
inline INpcManager*		_NpcManager(PROCESS_ID PID)			{ return ::MapGroup(PID)->GetNpcManager(); }
inline IDataDefault*	_GameDataDefault(PROCESS_ID PID)	{ return ::MapGroup(PID)->QueryDataDefault(); }
inline CSynManager*		_SynManager(PROCESS_ID PID)			{ return ::MapGroup(PID)->GetSynManager(); }
inline CLeaveWord*		_LeaveWord(PROCESS_ID PID)			{ return ::MapGroup(PID)->GetLeaveWord(); }
inline CAnnounce*       _Announce(PROCESS_ID PID)			{ return ::MapGroup(PID)->GetAnnounce();}
inline CGameAction*		_GameAction(PROCESS_ID PID)			{ return ::MapGroup(PID)->GetGameAction(); }
inline CMercenaryTask*	_MercenaryTask(PROCESS_ID PID)		{ return ::MapGroup(PID)->GetMercenaryTask(); }

//////////////////////////////////////////////////////////////////////
inline OBJID			GetServerID()			{ extern DWORD	g_dwServerID; return g_dwServerID; }
inline CItemType*		ItemType()				{ extern CItemType* g_pItemType; CHECKF(g_pItemType); return g_pItemType; }

// add by zlong 2003-11-15
inline CDropRuleMap*	DropRuleMap()			{ extern CDropRuleMap* g_pDropRuleMap; CHECKF(g_pDropRuleMap); return g_pDropRuleMap; }

inline ITaskSet*		TaskSet()				{ extern ITaskSet* g_setTask; CHECKF(g_setTask); return g_setTask; }
inline IActionSet*		ActionSet()				{ extern IActionSet* g_setAction; CHECKF(g_setAction); return g_setAction; }
inline ILevupexpSet*	LevupexpSet()			{ extern ILevupexpSet* g_setLevupexp; CHECKF(g_setLevupexp); return g_setLevupexp; }
inline IAddPointSet*	AddPointSet()			{ extern IAddPointSet* g_setAddPoint; CHECKF(g_setAddPoint); return g_setAddPoint; }
inline IMagicTypeSet*	MagicTypeSet()			{ extern IMagicTypeSet* g_setMagicType; CHECKF(g_setMagicType); return g_setMagicType; }
inline IMagicTypeSet*	AutoMagicTypeSet()		{ extern IMagicTypeSet* g_setAutoMagicType; CHECKF(g_setAutoMagicType); return g_setAutoMagicType; }
inline IMagicTrackSet*	MagicTrackSet()			{ extern IMagicTrackSet* g_setMagicTrack; CHECKF(g_setMagicTrack); return g_setMagicTrack; }
inline ITrapTypeSet*	TrapTypeSet()			{ extern ITrapTypeSet* g_setTrapType; CHECKF(g_setTrapType); return g_setTrapType; }
inline IMonsterTypeSet*	MonsterType()			{ extern IMonsterTypeSet* g_setMonsterType; CHECKF(g_setMonsterType); return g_setMonsterType; }
inline IRebirthSet*		RebirthSet()			{ extern IRebirthSet* g_setRebirth; CHECKF(g_setRebirth); return g_setRebirth; }
inline CItemAddition*	ItemAddition()			{ extern CItemAddition* g_pItemAddition; CHECKF(g_pItemAddition); return g_pItemAddition; }

//////////////////////////////////////////////////////////////////////
#define	g_db			(*Database())			// 兼容于旧代码
#define	g_UserManager	(*UserManager())		// 兼容于旧代码



#endif // !defined(AFX_MAPGROUP_H__70A5EB1D_66D5_4DF0_BE98_F7E3498FFC72__INCLUDED_)

⌨️ 快捷键说明

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