void cmdSavePos(PCHAR szCmd) { CPlayerPed *pPlayer = pGame->FindPlayerPed(); FILE *fileOut; DWORD dwVehicleID; float fZAngle; if(!tSettings.bDebug) return; fileOut = fopen("savedpositions.txt","a"); if(!fileOut) { pChatWindow->AddDebugMessage("I can't open the savepositions.txt file for append."); return; } // incar savepos if(pPlayer->IsInVehicle()) { VEHICLE_TYPE *pVehicle = pPlayer->GetGtaVehicle(); dwVehicleID = GamePool_Vehicle_GetIndex(pVehicle); ScriptCommand(&get_car_z_angle,dwVehicleID,&fZAngle); fprintf(fileOut,"Vehicle = %u %.4f %.4f %.4f %.4f %u %u\n", pVehicle->entity.nModelIndex,pVehicle->entity.mat.vPos.X,pVehicle->entity.mat.vPos.Y,pVehicle->entity.mat.vPos.Z, fZAngle,pVehicle->byteColor1,pVehicle->byteColor2); fclose(fileOut); return; } // onfoot savepos PED_TYPE *pActor = pPlayer->GetGtaActor(); ScriptCommand(&get_player_z_angle,0,&fZAngle); fprintf(fileOut,"Class = 0 0 %.4f %.4f %.4f %.4f 0 0 0 0 0 0\n", pActor->entity.mat.vPos.X,pActor->entity.mat.vPos.Y,pActor->entity.mat.vPos.Z,fZAngle); fclose(fileOut); }
BYTE CPlayerPool::FindRemotePlayerIDFromGtaPtr(PED_TYPE * pActor) { CPlayerPed *pPlayerPed; BYTE bytePlayerID = 0; while(bytePlayerID < MAX_PLAYERS) { if(TRUE == m_bPlayerSlotState[bytePlayerID]) { pPlayerPed = m_pPlayers[bytePlayerID]->GetPlayerPed(); if(pPlayerPed) { PED_TYPE *pTestActor = pPlayerPed->GetGtaActor(); if((pTestActor != NULL) && (pActor == pTestActor)) // found it return (BYTE)m_pPlayers[bytePlayerID]->GetID(); } } bytePlayerID++; } return INVALID_PLAYER_ID; }