📄 hunting.cpp
字号:
#include "StdAfx.h"
#include ".\hunting.h"
#include "Player.h"
#include "PartyManager.h"
#include "Map.h"
__IMPL_ZONE_POOL(Hunting);
Hunting::Hunting(void)
{
}
Hunting::~Hunting(void)
{
}
BOOL Hunting::Init( KEYTYPE Key, CODETYPE MapCode, KEYTYPE LeaderPlayerKey, HUNTING_DESC & IN desc )
{
if( !Room::Init( Key, MapCode, LeaderPlayerKey ) ) return FALSE;
setType( eZONE_HUNTING );
memcpy( &m_RoomDesc, &desc, sizeof(HUNTING_DESC) );
// TEMP : 烙矫
// 内靛 荐沥捞 鞘夸茄 两摹救篮 内靛
// TAIYO
ASSERT( desc.m_byMonsterType < eBATTLE_MONSTER_DIFFICULT_MAX );
util::SolarHashTable<Field *> * pHash = GetMap()->GetFieldHashTable();
Field * pField = NULL;
pHash->SetFirst();
while( (pField = pHash->GetNext()) != NULL )
{
pField->InitRegenManager( desc.m_byMonsterType+1 );
}
return TRUE;
}
BOOL Hunting::readyPlayer( Player * pPlayer, CODETYPE FieldCode )
{
// 惑怕 眉农
if( !readyCheck( isLeaderPlayer( pPlayer->GetObjectKey() ) ) ) return FALSE;
DEBUG_CODE( Zone * pEnterZone = NULL;
CODETYPE EnterFieldCode = 0;
eZONE_STATE eRoomState = pPlayer->GetZone( &pEnterZone, EnterFieldCode );
if( eRoomState & ePRS_AT_ZONE )
return FALSE;);
pPlayer->SetZone( ePRS_BEFORE_ENTER_HUNTING, this, FieldCode );
return TRUE;
}
BOOL Hunting::joinPlayer( Player * pPlayer, CODETYPE FieldCode )
{
if( !joinCheck( isLeaderPlayer( pPlayer->GetObjectKey() ) ) ) return FALSE;
Zone * pEnterZone = NULL;
CODETYPE EnterFieldCode = 0;
eZONE_STATE eRoomState = pPlayer->GetZone( &pEnterZone, EnterFieldCode );
if( !(eRoomState & ePRS_BEFORE_ENTER_HUNTING) )
{
SASSERT( NULL, "蜡历狼 规惑怕啊 捞惑钦聪促.JoinPlayer() : 甸绢棵妨绰 规捞 清泼捞酒聪促." );
return FALSE;
}
pPlayer->SetZone( ePRS_AT_HUNTING, this, FieldCode );
addPlayer( pPlayer );
// 惑怕 函版
if( isLeaderPlayer( pPlayer->GetObjectKey() ) )
{
setState( eROOM_ACTIVE );
}
return TRUE;
}
BOOL Hunting::leavePlayer( Player * pPlayer )
{
if( !leaveCheck( isLeaderPlayer( pPlayer->GetObjectKey() ) ) ) return FALSE;
removePlayer( pPlayer->GetObjectKey() );
// 规厘捞 唱啊搁 困烙 贸府
if( isLeaderPlayer( pPlayer->GetObjectKey() ) )
{
if( getNumberOfPlayers() == 0 )
{
// 规颇鲍 惑怕
setState( eROOM_DEACTIVE );
}
else
{
delegateLeaderPlayer();
}
}
pPlayer->SetZone( ePRS_NOT_AT_ZONE, NULL, 0 );
return TRUE;
}
BOOL Hunting::Update( DWORD dwDeltaTick )
{
if( !Room::Update( dwDeltaTick ) )
return FALSE;
if( m_PlayerTimer.IsExpiredManual() )
{
if( getState() == eROOM_READY )
return FALSE;
}
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -