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

📄 playermanager.cpp

📁 奇迹世界 部分源代码奇迹世界 部分源代码奇迹世界 部分源代码
💻 CPP
字号:
#include "StdAfx.h"
#include <Macro.h>
#include "PlayerManager.h"
#include "player.h"
#include "ServerSession.h"
#include "ObjectFactory.h"
#include "StatusManager.h"

PlayerManager::PlayerManager()
{
	m_pPlayerList = new util::SolarHashTable<Player *>;
	m_pPlayerListForObjectKey = new util::SolarHashTable<Player *>;
	m_pPlayerList->Initialize( MAX_PLAYER_NUM );
	m_pPlayerListForObjectKey->Initialize( MAX_PLAYER_NUM );
}

PlayerManager::~PlayerManager()
{
	SAFE_DELETE( m_pPlayerList );
	SAFE_DELETE( m_pPlayerListForObjectKey );
}

DWORD PlayerManager::GetNumberOfPlayers()
{
	return m_pPlayerList->GetDataNum();
}

BOOL PlayerManager::AddPlayer( Player * pPlayer )
{
	// 敲饭捞绢狼 积己 林扁 矫累
	pPlayer->Init();
	//ASSERT( NULL == m_pPlayerList->GetData( pPlayer->GetUserKey() ) );
	m_pPlayerListForObjectKey->Add( pPlayer, pPlayer->GetObjectKey() );
	return m_pPlayerList->Add( pPlayer, pPlayer->GetUserKey() );
}

VOID PlayerManager::RemovePlayer( Player * pPlayer )
{
	pPlayer->Release();
	// 敲饭捞绢狼 积己 林扁 昏力
	SASSERT( NULL != m_pPlayerList->GetData( pPlayer->GetUserKey() ), "USERID啊 吝汗登菌嚼聪促." );
//	pPlayer->Destroy();
	m_pPlayerList->Remove( pPlayer->GetUserKey() );
	m_pPlayerListForObjectKey->Remove( pPlayer->GetObjectKey() );
}

Player* PlayerManager::FindPlayer( DWORD dwUserKey )
{
	return (Player*)m_pPlayerList->GetData( dwUserKey );
}
Player*	PlayerManager::FindPlayerForObjectKey( const DWORD dwObjectKey )
{
	return (Player*)m_pPlayerListForObjectKey->GetData( dwObjectKey );
}
Player* PlayerManager::FindPlayer( const char *pszUserName )
{
	Player * pPlayer = NULL;
	m_pPlayerList->SetFirst();
	while( ( pPlayer = m_pPlayerList->GetNext() ) != NULL )
	{
		if( strcmp( pPlayer->GetCharName(), pszUserName ) == 0 )
		{
			return pPlayer;
		}
	}

	return NULL;
}


VOID PlayerManager::RemoveAllPlayer()
{
	m_pPlayerList->RemoveAll();
	m_pPlayerListForObjectKey->RemoveAll();
}









⌨️ 快捷键说明

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