Beispiel #1
0
void CNetSends::PutPlayerInVehicle( unsigned char uc1, unsigned char uc2 )
{
	CPlayerPool* pPlayer = CPlayerPoolManager::Find( uc1 );
	if ( pPlayer )
	{
		CVehiclePool* pVehicle = CVehiclePoolManager::Find( uc2 );
		if ( pVehicle )
		{
			RakNet::BitStream bsSend;
			char szText[ 256 ] = { NULL };
			BYTE byteTextLen = 0;

			sprintf(szText, "9 %i %i", uc1, uc2);

			byteTextLen = strlen( szText );

			bsSend.Write( byteTextLen );
			bsSend.Write( szText, byteTextLen );

			pPlayer->SetEnterVehicleTime( RakNet::GetTime() );
			pPlayer->SetVehicle( uc2 );
			pPlayer->SetVehiclePassenger( 18 );

			CPlayerSendPackets::EnterVehicle( pPlayer->GetID(), pVehicle->GetID(), pVehicle->GetModel(), pVehicle->GetHealth(), 0 );
				
			CScripting::PushFunction( "onPlayerEnterVehicle" );
			CScripting::PushPlayerPointer( pPlayer );
			CScripting::PushVehiclePointer( pVehicle );
			CScripting::PushBool( false );
			CScripting::CallFunction();

			pVehicle->SetLastUsedTime( RakNet::GetTime() );
			pVehicle->SetBeenUsed( true );
			pVehicle->SetDriver( uc1 );

			NetInterface->RPC( "Set", &bsSend, HIGH_PRIORITY, RELIABLE, 0, UNASSIGNED_PLAYER_ID, TRUE, FALSE );
		}
	}
}