📄 gamemissionroom.cpp
字号:
#include "StdAfx.h"
#include ".\gamemissionroom.h"
#include "Player.h"
#include "TriggerManager.h"
#include "Trigger.h"
#include "Map.h"
#include "Party.h"
__IMPL_GAMEZONEPOOL(GameMissionRoom)
GameMissionRoom::GameMissionRoom(void)
{
m_pPartyHashTable = new util::SolarHashTable<Party*>;
m_pPartyHashTable->Initialize( 1 );
}
GameMissionRoom::~GameMissionRoom(void)
{
SAFE_DELETE(m_pPartyHashTable);
}
VOID GameMissionRoom::Init( KEYTYPE Key, CODETYPE MapCode, const TCHAR * pszRoomTitle, const TCHAR * pszRoomPWD, const BASE_ROOMINFO * IN pRoomInfo )
{
GameRoom::Init( Key, MapCode, pszRoomTitle, pszRoomPWD, pRoomInfo );
GameZone::LoadMap();
}
VOID GameMissionRoom::Ready( Player * pPlayer, CODETYPE FieldCode, WzID AreaID )
{
DEBUG_CODE(
GameZone * pEnterZone = NULL;
CODETYPE EnterFieldCode = 0;
eZONE_STATE eRoomState = pPlayer->GetGameZone( pEnterZone, EnterFieldCode );
ASSERT( !(eRoomState & ePRS_AT_ZONE) );
);
pPlayer->SetGameZone( ePRS_BEFORE_ENTER_MISSION, this, FieldCode, AreaID );
}
BOOL GameMissionRoom::Join( Player * pPlayer, CODETYPE FieldCode, WzID AreaID )
{
DEBUG_CODE ( GameZone * pEnterZone = NULL; CODETYPE EnterFieldCode = 0;
eZONE_STATE eRoomState = pPlayer->GetGameZone( pEnterZone, EnterFieldCode );
ASSERT( (eRoomState & ePRS_BEFORE_ENTER_MISSION) );
);
pPlayer->SetGameZone( ePRS_AT_MISSION, this, FieldCode );
if( !GameRoom::Join( pPlayer, FieldCode, AreaID ) )
{
pPlayer->SetGameZone( ePRS_NOT_AT_ZONE, NULL, 0 );
// 固记狼 荐青沥焊甫 焊郴霖促!!
return FALSE;
}
//泅犁 努扼捞攫飘俊辑 贸府窍瘤 臼栏骨肺 林籍贸府
SendActionDoneTriggers<MSG_CG_TRIGGER_DONE_ACTION_INFO_CMD> msg;
Field * pField = GetMap()->GetFieldx( FieldCode );
pField->GetTriggerManager()->ForeachTrigger(msg);
msg.SendInfo(pPlayer);
// 家加等 Zone狼 颇萍俊 啊涝矫挪促.
Party *pParty = GetParty( 0 );
if( pParty )
{
pPlayer->JoinParty( pParty->GetPartyKey() );
}
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -