borntolead
30-04-14, 04:55 PM
bool CGamePlayer::_SyncRoleInfo_ToGameServer( const void *pData, size_t dataLength )
{
bool ok = false;
ASSERT( pData );
const TRoleData *pRoleData = ( const TRoleData * )( pData );
IGServer *pGServer = NULL;
if (pRoleData->BaseInfo.cUseRevive)
pGServer = CGameServer::QueryServer( pRoleData->BaseInfo.irevivalid );
else
pGServer = CGameServer::QueryServer( pRoleData->BaseInfo.ientergameid );
if ( pGServer )
{
ASSERT( pRoleData->BaseInfo.szName[0] != '\0' );
CGamePlayer::Add( ( const char * )pRoleData->BaseInfo.szName,
( IPlayer * )this );
pGServer->Attach( m_sAccountName.c_str() );
m_nAttachServerID = pGServer->GetID();
m_theDataQueue[enumOwnerPlayer].Empty();
ok = pGServer->DispatchTask( CGameServer::enumSyncRoleInfo, pData, dataLength, max(m_nExtPoint, 0));
m_nExtPoint = -1; //用完就清掉
}
return ok;
}
Tình hình tớ muốn gửi một gói tin từ Bishop->GameServer mà không cần biết pRoleData->BaseInfo.cUseRevive (theo như đọc ví dụ code có săn thì bắt buột phải có pRoleData->BaseInfo.irevivalid hoặc pRoleData->BaseInfo.ientergameid)
Vì tớ gặp một trường hợp rằng khi bị kẹt nhân vật thì có 2 tham số trên cũng như không thằng pGServer vẫn trả giá trị là NULL
không biết sư quynh sư tỷ nào biết cách gửi từ Bishop -> GameServer mà không cần tham số đó không help với !!
{
bool ok = false;
ASSERT( pData );
const TRoleData *pRoleData = ( const TRoleData * )( pData );
IGServer *pGServer = NULL;
if (pRoleData->BaseInfo.cUseRevive)
pGServer = CGameServer::QueryServer( pRoleData->BaseInfo.irevivalid );
else
pGServer = CGameServer::QueryServer( pRoleData->BaseInfo.ientergameid );
if ( pGServer )
{
ASSERT( pRoleData->BaseInfo.szName[0] != '\0' );
CGamePlayer::Add( ( const char * )pRoleData->BaseInfo.szName,
( IPlayer * )this );
pGServer->Attach( m_sAccountName.c_str() );
m_nAttachServerID = pGServer->GetID();
m_theDataQueue[enumOwnerPlayer].Empty();
ok = pGServer->DispatchTask( CGameServer::enumSyncRoleInfo, pData, dataLength, max(m_nExtPoint, 0));
m_nExtPoint = -1; //用完就清掉
}
return ok;
}
Tình hình tớ muốn gửi một gói tin từ Bishop->GameServer mà không cần biết pRoleData->BaseInfo.cUseRevive (theo như đọc ví dụ code có săn thì bắt buột phải có pRoleData->BaseInfo.irevivalid hoặc pRoleData->BaseInfo.ientergameid)
Vì tớ gặp một trường hợp rằng khi bị kẹt nhân vật thì có 2 tham số trên cũng như không thằng pGServer vẫn trả giá trị là NULL
không biết sư quynh sư tỷ nào biết cách gửi từ Bishop -> GameServer mà không cần tham số đó không help với !!