// SetPlayerPos void Script_SetPos(RakNet::BitStream *bitStream, Packet *packet) { CPlayerPed *pPlayer = pGame->FindPlayerPed(); Vector3 playerPos; bitStream->Read((char *)&playerPos, sizeof(Vector3)); pPlayer->Teleport(playerPos.X, playerPos.Y, playerPos.Z); }
BOOL CLocalPlayer::SpawnPlayer(PLAYER_SPAWN_INFO * pSpawnInfo) { CPlayerPed *pGamePlayer = pGame->FindPlayerPed(); if(!pGamePlayer) return FALSE; if(pGamePlayer) { pGamePlayer->RestartIfWastedAt(&pSpawnInfo->vecPos, pSpawnInfo->fRotation); m_pPlayerPed = pGamePlayer; // Set skin stuff.. logic is because of temperament if(pGamePlayer->GetModelIndex() != pSpawnInfo->byteSkin && (pSpawnInfo->byteSkin < 107)) { if(!pGame->IsModelLoaded(pSpawnInfo->byteSkin)) { pGame->RequestModel(pSpawnInfo->byteSkin); pGame->LoadRequestedModels(); while(!pGame->IsModelLoaded(pSpawnInfo->byteSkin)) { Sleep(1); } } pGamePlayer->SetModel(pSpawnInfo->byteSkin); } pGamePlayer->ClearAllWeapons(); if(pSpawnInfo->iSpawnWeapons[3] != -1) { pGamePlayer->GiveWeapon(pSpawnInfo->iSpawnWeapons[3], pSpawnInfo->iSpawnWeaponsAmmo[3]); } if(pSpawnInfo->iSpawnWeapons[2] != -1) { pGamePlayer->GiveWeapon(pSpawnInfo->iSpawnWeapons[2], pSpawnInfo->iSpawnWeaponsAmmo[2]); } if(pSpawnInfo->iSpawnWeapons[1] != -1) { pGamePlayer->GiveWeapon(pSpawnInfo->iSpawnWeapons[1], pSpawnInfo->iSpawnWeaponsAmmo[1]); } pGamePlayer->Teleport(pSpawnInfo->vecPos.X, pSpawnInfo->vecPos.Y, pSpawnInfo->vecPos.Z); pGamePlayer->SetRotation(pSpawnInfo->fRotation); pGamePlayer->SetInitialState(); m_bIsWasted = FALSE; m_bIsActive = TRUE; } // Let the rest of the network know we're spawning. RakNet::BitStream bsSendSpawn; pNetowkManager->GetRPC4()->Call("Spawn",&bsSendSpawn,HIGH_PRIORITY,RELIABLE_SEQUENCED,0,UNASSIGNED_SYSTEM_ADDRESS,TRUE); return TRUE; }
void CSpawnSelection::HandleClassSelectionOutcome(PLAYER_SPAWN_INFO *pSpawnInfo, BOOL bOutcome) { CPlayerPed *pGamePlayer = pGame->FindPlayerPed(); if(bOutcome) { if(pGamePlayer) { pGamePlayer->ClearAllWeapons(); pGamePlayer->Teleport(pNetowkManager->m_vecInitPlayerPos.X, pNetowkManager->m_vecInitPlayerPos.Y, pNetowkManager->m_vecInitPlayerPos.Z); pGamePlayer->SetRotation(0.0f); pGamePlayer->SetModel(pSpawnInfo->byteSkin); if(pSpawnInfo->iSpawnWeapons[0] != (-1)) { pGamePlayer->GiveWeapon(pSpawnInfo->iSpawnWeapons[0],pSpawnInfo->iSpawnWeaponsAmmo[0]); } } m_bClearedToSpawn = TRUE; } }