PDA

View Full Version : [JX] [ Hỏi ] Cách gửi gói tin từ Bishop -> GameServer



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 !!

borntolead
02-05-14, 02:27 AM
cả forum không ai help được hả chày :(