void CDPAccountClient::SendRoute( DWORD dwIdofServer, u_long uIdofMulti, DPID idFrom ) { BEFORESENDSOLE( ar, PACKETTYPE_ROUTE, idFrom ); ar << dwIdofServer; ar << uIdofMulti; SEND( ar, this, DPID_SERVERPLAYER ); }
void CDPAccountClient::SendAddAccount( char* lpAddr, LPCTSTR lpszAccount, BYTE cbAccountFlag, DPID idFrom, int fCheck ) #endif // __GPAUTH_02 { BEFORESENDSOLE( ar, PACKETTYPE_ADD_ACCOUNT, idFrom ); ar.WriteString( lpAddr ); ar.WriteString( lpszAccount ); ar << cbAccountFlag; #ifdef __BILLING0712 ar << fCheck; #endif//__BILLING0712 #ifdef __GPAUTH_02 BOOL bGPotatoAuth = ::GetLanguage() == LANG_GER || ::GetLanguage() == LANG_FRE; if( bGPotatoAuth ) ar.WriteString( szCheck ); #endif // __GPAUTH_02 #ifdef __EUROPE_0514 ar.WriteString( szBak ); #endif // __EUROPE_0514 #if __VER >= 14 // __PCBANG ar << dwPCBangClass; #endif // __PCBANG SEND( ar, this, DPID_SERVERPLAYER ); }
void CDPClient::OnQueryDestroyPlayer( CAr & ar, DPID dpid, LPVOID lpBuffer, u_long uBufSize ) { DWORD dwSerial; ar >> dwSerial; u_long idPlayer; ar >> idPlayer; CMclAutoLock Lock( CPlayerMng::Instance()->m_AddRemoveLock ); CPlayer* pPlayer = CPlayerMng::Instance()->GetPlayerBySerial( dwSerial ); if( pPlayer ) { // 성공적으로 찾았으니까 접속을 끊는다. g_DPCacheSrvr.DestroyPlayer( pPlayer->GetNetworkId() ); // 소켓연결이 끊기고, PACKETTYPE_LEAVE가 월드서버로 간다. #ifdef __MA_VER11_07 // cache 서버에서 loginserver로 유저접속끊낌을 알려주는 부분 g_DPCoreClient.SendDestroyPlayer( pPlayer );// coresvr를 통해 loginsvr 에도 끊낌을 알려준다 #endif // __MA_VER11_07 // cache 서버에서 loginserver로 유저접속끊낌을 알려주는 부분 return; } WriteError( "OnQueryDestroyPlayer - idPlayer:%d GetPlayer return NULL.", idPlayer ); // 찾지 못해도, 끊었다고 알려준다. BEFORESENDSOLE( out, PACKETTYPE_LEAVE, DPID_UNKNOWN ); out << idPlayer; LPBYTE lpBuf = out.GetBuffer( &nBufSize ); g_DPClientArray.SendToServer( dpid, lpBuf, nBufSize ); }
void CDPLoginClient::SendCreatePlayer(BYTE nSlot, LPCSTR lpszPlayer/*, LPDWORD adwEquipment*/, BYTE nFace, BYTE nCostume, BYTE nSkinSet, BYTE nHairMesh, DWORD dwHairColor, BYTE nSex, BYTE nJob, BYTE nHeadMesh ) #endif // __2ND_PASSWORD_SYSTEM { BEFORESENDSOLE( ar, PACKETTYPE_CREATE_PLAYER, DPID_UNKNOWN ); #ifdef __GPAUTH_01 ar.WriteString( g_Neuz.m_bGPotatoAuth?g_Neuz.m_szGPotatoNo: g_Neuz.m_szAccount ); #else // __GPAUTH_01 ar.WriteString( g_Neuz.m_szAccount ); #endif // __GPAUTH_01 ar.WriteString( g_Neuz.m_szPassword ); ar << nSlot; if( strlen( lpszPlayer ) > 16 ) Error( "CDPLoginClient::SendCreatePlayer에서 이상 캐릭터 명 E: %s", lpszPlayer ); ar.WriteString( lpszPlayer ); if( strlen( lpszPlayer ) > 16 ) Error( "CDPLoginClient::SendCreatePlayer에서 이상 캐릭터 명 F: %s", lpszPlayer ); // ar.Write( adwEquipment, sizeof(DWORD) * MAX_HUMAN_PARTS ); ar << nFace << nCostume << nSkinSet << nHairMesh; ar << dwHairColor; ar << nSex << nJob << nHeadMesh; #if __VER >= 15 // __2ND_PASSWORD_SYSTEM ar << nBankPW; #endif // __2ND_PASSWORD_SYSTEM ar << g_Neuz.m_dwAuthKey; SEND( ar, this, DPID_SERVERPLAYER ); }
void CDPLoginSrvr::SendFail( long lError, const char* lpszAccount ) { BEFORESENDSOLE( ar, PACKETTYPE_FAIL, DPID_UNKNOWN ); ar << lError; ar.WriteString( lpszAccount ); SEND( ar, this, DPID_ALLPLAYERS ); }
void CDPLoginSrvr::SendCloseExistingConnection( const char* lpszAccount, LONG lError ) { BEFORESENDSOLE( ar, PACKETTYPE_CLOSE_EXISTING_CONNECTION, DPID_UNKNOWN ); ar.WriteString( lpszAccount ); ar << lError; SEND( ar, this, DPID_ALLPLAYERS ); }
void CDPLoginSrvr::SendLoginProtect( const char* lpszAccount, const char* lpszPlayer, u_long idPlayer, BOOL bLogin, DPID dpId ) { BEFORESENDSOLE( ar, PACKETTYPE_LOGIN_PROTECT_CERT, dpId ); ar.WriteString( lpszAccount ); ar.WriteString( lpszPlayer ); ar << idPlayer << bLogin; SEND( ar, this, DPID_ALLPLAYERS ); }
void CDPLoginClient::SendGetPlayerList( DWORD dwID, LPCSTR lpszAccount, LPCSTR lpszpw ) { BEFORESENDSOLE( ar, PACKETTYPE_GETPLAYERLIST, DPID_UNKNOWN ); ar.WriteString( ::GetProtocolVersion() ); ar << g_Neuz.m_dwAuthKey; ar.WriteString( lpszAccount ); ar.WriteString( lpszpw ); ar << dwID; SEND( ar, this, DPID_SERVERPLAYER ); }
void CDPClient::SendJoin( CPlayer* pPlayer ) { BEFORESENDSOLE( ar, PACKETTYPE_JOIN, pPlayer->GetSerial() ); ar << pPlayer->GetAuthKey(); ar << pPlayer->GetPlayerId(); ar << pPlayer->GetSlot(); ar << pPlayer->GetNetworkId(); ar.WriteString( pPlayer->GetAccount() ); ar.WriteString( pPlayer->GetPass() ); ar.WriteString( pPlayer->GetAddr() ); SEND( ar, this, DPID_SERVERPLAYER ); }
void CDPLoginClient::SendPreJoin( const TCHAR* lpszAccount, u_long idPlayer, const TCHAR* lpszPlayer, int nSlot ) #endif // __2ND_PASSWORD_SYSTEM { m_nSlot = nSlot; BEFORESENDSOLE( ar, PACKETTYPE_PRE_JOIN, DPID_UNKNOWN ); // ar << g_Neuz.m_dwAuthKey; ar.WriteString( lpszAccount ); ar << idPlayer; ar.WriteString( lpszPlayer ); #if __VER >= 15 // __2ND_PASSWORD_SYSTEM ar << nSecretNum; #endif // __2ND_PASSWORD_SYSTEM SEND( ar, this, DPID_SERVERPLAYER ); }
void CDPCoreClient::SendAddPlayer( CPlayer* pPlayer, CRTMessenger & rtmessenger ) { BEFORESENDSOLE( ar, PACKETTYPE_JOIN, pPlayer->GetSerial() ); ar << pPlayer->GetAuthKey(); ar << pPlayer->GetPlayerId(); ar << pPlayer->GetNetworkId(); ar << pPlayer->GetParty(); ar << pPlayer->GetGuild(); ar << pPlayer->GetWar(); ar << pPlayer->GetChannel(); rtmessenger.Serialize( ar ); ar.WriteString( pPlayer->GetPlayer() ); ar.WriteString( pPlayer->GetAddr() ); SEND( ar, this, DPID_SERVERPLAYER ); }
void CDPLoginClient::SendDeletePlayer( BYTE nSlot, LPCTSTR szNo ) { BEFORESENDSOLE( ar, PACKETTYPE_DEL_PLAYER, DPID_UNKNOWN ); #ifdef __GPAUTH_01 ar.WriteString( g_Neuz.m_bGPotatoAuth? g_Neuz.m_szGPotatoNo: g_Neuz.m_szAccount ); #else // __GPAUTH_01 ar.WriteString( g_Neuz.m_szAccount ); #endif // __GPAUTH_01 ar.WriteString( g_Neuz.m_szPassword ); ar.WriteString( g_Neuz.GetDeleteKey( szNo ) ); ar << g_Neuz.m_apPlayer[nSlot]->m_idPlayer; ar << g_Neuz.m_dwAuthKey; #ifdef __RT_1025 ar << g_Neuz.m_aRTMessenger[nSlot].size(); for( CRTMessenger::iterator it=g_Neuz.m_aRTMessenger[nSlot].begin(); it!=g_Neuz.m_aRTMessenger[nSlot].end(); it++ ) { u_long uTemp = it->first; ar << it->first; } #endif // __RT_1025 SEND( ar, this, DPID_SERVERPLAYER ); }
void CDPLoginClient::QueryTickCount( void ) { BEFORESENDSOLE( ar, PACKETTYPE_QUERYTICKCOUNT, DPID_UNKNOWN ); ar << (DWORD)timeGetTime(); SEND( ar, this, DPID_SERVERPLAYER ); }
void CDPCoreClient::SendDestroyPlayer( CPlayer* pPlayer ) { BEFORESENDSOLE( ar, PACKETTYPE_DESTROY_PLAYER, pPlayer->GetSerial() ); SEND( ar, this, DPID_SERVERPLAYER ); }
void CDPAccountClient::SendRemoveAccount( DPID idFrom ) { BEFORESENDSOLE( ar, PACKETTYPE_REMOVE_ACCOUNT, idFrom ); SEND( ar, this, DPID_SERVERPLAYER ); }
void CDPAccountClient::SendCloseExistingConnection( const char* lpszAccount ) { BEFORESENDSOLE( ar, PACKETTYPE_CLOSE_EXISTING_CONNECTION, DPID_UNKNOWN ); ar.WriteString( lpszAccount ); SEND( ar, this, DPID_SERVERPLAYER ); }
void CDPAccountClient::SendPing( DPID idFrom ) { BEFORESENDSOLE( ar, PACKETTYPE_PING, idFrom ); SEND( ar, this, DPID_SERVERPLAYER ); }
void CDPLoginSrvr::SendOneHourNotify( const char* lpszAccount) { BEFORESENDSOLE( ar, PACKETTYPE_ONE_HOUR_NOTIFY, DPID_UNKNOWN ); ar.WriteString( lpszAccount ); SEND( ar, this, DPID_ALLPLAYERS ); }
void CDPLoginSrvr::SendError( LONG lError, DPID dpid ) { BEFORESENDSOLE( ar, PACKETTYPE_ERROR, dpid ); ar << lError; SEND( ar, this, DPID_ALLPLAYERS ); }