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

📄 gamevillage.cpp

📁 奇迹世界 部分源代码奇迹世界 部分源代码奇迹世界 部分源代码
💻 CPP
字号:
#include "StdAfx.h"
#include ".\gamevillage.h"
#include "Player.h"
#include "Map.h"

__IMPL_GAMEZONEPOOL(GameVillage)
GameVillage::GameVillage(void)
{
}

GameVillage::~GameVillage(void)
{
}
VOID GameVillage::Init( KEYTYPE Key, CODETYPE MapCode, const TCHAR * pszRoomTitle, const TCHAR * pszRoomPWD, const BASE_ROOMINFO * IN pRoomInfo )
{
	GameZone::Init( Key, MapCode );
	
	GameZone::LoadMap( -1 );		//< 葛电 甘 肺爹
}

VOID GameVillage::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_VILLAGE, this, FieldCode, AreaID );
}

BOOL GameVillage::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_VILLAGE) );
	);

	pPlayer->SetGameZone( ePRS_AT_VILLAGE, this, FieldCode );

	Field* pField = GetMap()->GetFieldx( FieldCode );
	DEBUG_CODE( if( !pField ) { ASSERT( !"甸绢棵妨绰 镑俊 鞘靛啊 绝促" ); SUNLOG( eFULL_LOG, "[GameVillage::Join] 甸绢棵妨绰 镑俊 鞘靛啊 绝促."); return FALSE; } );

	WzVector wzVec = pPlayer->GetStartVector(pField);
	
	if( FALSE == pField->EnterField( pPlayer, &wzVec ) )
	{
		SUNLOG( eCRITICAL_LOG, "[GameVillage::Join] EnterField Error!!! ObjectKey[%d]", pPlayer->GetObjectKey());
		SASSERT( NULL, "[坷幅]:EnterField坷幅!!" );
		pPlayer->SetGameZone( ePRS_NOT_AT_ZONE, NULL, 0 );
		return FALSE;
	}

	pPlayer->SaveStartLocation();

	ASSERT( m_PlayerHash.GetData(pPlayer->GetObjectKey()) == NULL );
	m_PlayerHash.Add( pPlayer, pPlayer->GetObjectKey() );

	return TRUE;
}

⌨️ 快捷键说明

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