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

📄 systemavailabilitiesmanager.h

📁 天之炼狱1服务器端源文件游戏服务端不完整
💻 H
字号:
#ifndef __SYSTEM_AVAILABILITIES_MANAGER_H__#define __SYSTEM_AVAILABILITIES_MANAGER_H__#include <bitset>#include "Types.h"#include "Exception.h"#include "Gpackets/GCSystemAvailabilities.h"#ifdef __CHINA_SERVER__#define SYSTEM_ASSERT(KIND) SystemAvailabilitiesManager::AssertAvailable(SystemAvailabilitiesManager::KIND,\		string() + __PRETTY_FUNCTION__ + " : 肋给等 努扼捞攫飘甫 荤侩沁芭唱 努扼捞攫飘客 辑滚狼 沥焊啊 嘎瘤 臼嚼聪促.")#define SYSTEM_RETURN_IF_NOT(KIND) \		if ( !SystemAvailabilitiesManager::getInstance()->isAvailable(SystemAvailabilitiesManager::KIND) ) \		{ filelog( "SystemAvailabilities.log", \		(string() + __PRETTY_FUNCTION__ + " : 肋给等 努扼捞攫飘甫 荤侩沁芭唱 努扼捞攫飘客 辑滚狼 沥焊啊 嘎瘤 臼嚼聪促.").c_str() ); \		return; }#define SEND_SYSTEM_AVAILABILITIES(PLAYER) PLAYER->sendPacket( SystemAvailabilitiesManager::getInstance()->getAvailabilitiesPacket() )#else#define SYSTEM_ASSERT(X) (void)(0)#define SYSTEM_RETURN_IF_NOT(X) (void)(0)#define SEND_SYSTEM_AVAILABILITIES(X) (void)(0)#endifconst int OpenDegreeID = 999;const int SkillLimitID = 888;class SystemAvailabilitiesManager{public:	enum SystemKind	{		SYSTEM_PARTY,		SYSTEM_GAMBLE,		SYSTEM_RANK_BONUS,		SYSTEM_ENCHANT,		SYSTEM_GUILD,		SYSTEM_MASTER_LAIR,		SYSTEM_PK_ZONE,		SYSTEM_MARKET,		SYSTEM_GRAND_MASTER_EFFECT,		SYSTEM_COUPLE,		SYSTEM_HOLY_LAND_WAR,		SYSTEM_GUILD_WAR,		SYSTEM_RACE_WAR,		SYSTEM_FLAG_WAR,		SYSTEM_MAX	};	void load() throw(Error);	bool isAvailable( SystemKind kind ) const { return m_SystemFlags.test(kind); }	void setAvailable( SystemKind kind, bool avail = true ) {		m_SystemFlags.set(kind,avail);		m_bEdited = true;	}	Packet* getAvailabilitiesPacket() const	{		if ( m_bEdited ) 		{			if ( m_pAvailabilitiesPacket == NULL ) m_pAvailabilitiesPacket = new GCSystemAvailabilities();			m_pAvailabilitiesPacket->setFlag( (DWORD)m_SystemFlags.to_ulong() );			m_pAvailabilitiesPacket->setOpenDegree( m_ZoneOpenDegree );			m_pAvailabilitiesPacket->setSkillLimit( m_SkillLevelLimit );			m_bEdited = false;		}		return m_pAvailabilitiesPacket;	}	// 教臂沛捞寸	static SystemAvailabilitiesManager* getInstance()	{		static SystemAvailabilitiesManager theInstance;		return &theInstance;	}	static void AssertAvailable( SystemKind kind, const string& msg ) throw (DisconnectException)	{		if ( getInstance()->isAvailable( kind ) ) return;		filelog( "SystemAvailabilities.log", msg.c_str() );		throw DisconnectException( msg );	}	int getZoneOpenDegree() const { return m_ZoneOpenDegree; }	int getSkillLevelLimit() const { return m_SkillLevelLimit; }private:	bitset<SYSTEM_MAX>	m_SystemFlags;	mutable GCSystemAvailabilities* m_pAvailabilitiesPacket;	mutable bool m_bEdited;	int m_ZoneOpenDegree;	int m_SkillLevelLimit;	SystemAvailabilitiesManager() { m_SystemFlags.reset(); m_pAvailabilitiesPacket = NULL; m_bEdited = true; }};#endif// __SYSTEM_AVAILABILITIES_MANAGER_H__

⌨️ 快捷键说明

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