📄 playermanager.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 + -