Другое SAMPFUNCS | API C++

Smeruxa

Известный
1,294
680
GAME->GetCamera()->GetCam(GAME->GetCamera()->GetActiveCam())->GetDirection()
Оно возвращает не угол, а требует две координаты, а какие брать нужно?
Я такой код попробовал
C++:
CCam *camera = GAME->GetCamera()->GetCam(GAME->GetCamera()->GetActiveCam());
CVector camera_position = *camera->GetSource();
camera->GetDirection(camera_position.fX, camera_position.fY);
float angle = atan2(camera_position.fY, camera_position.fX);
PEDSELF->SetCurrentRotation(angle);
сделал, вращение камеры за игроком, кому нужно будет ->
C++:
CCam* camera = GAME->GetCamera()->GetCam(GAME->GetCamera()->GetActiveCam());
CVector camera_position = *camera->GetSource();
CVector camera_last = *camera->GetTargetHistoryPos();
CVector new_vector = { camera_last.fX - camera_position.fX, camera_last.fY - camera_position.fY, camera_position.fZ};
float angle = atan2(new_vector.fY, new_vector.fX) + (90 * (PI / 180));
float new_angle = atan2(sin(angle), cos(angle));
PEDSELF->SetCurrentRotation(new_angle);
 
Последнее редактирование:
  • Нравится
Реакции: Z3roKwq

Ya Zaregalsya

Известный
370
127
C++:
pVehicle->pGTAVehicle = GAME->GetPools()->AddVehicle(static_cast<eVehicleTypes>(pVehicle->modelId), NULL, NULL);
Крашит на некоторых моделях машин. Если 560 или 400, то всё ок, если 578, то краш. В чём может быть проблема?
 

Ya Zaregalsya

Известный
370
127
Как получить возвращаемое значение SF->getCLEO()->callOpcode() если это не буль?

C++:
pVehicle->pGTAVehicle = GAME->GetPools()->AddVehicle(static_cast<eVehicleTypes>(pVehicle->modelId), NULL, NULL);
Крашит на некоторых моделях машин. Если 560 или 400, то всё ок, если 578, то краш. В чём может быть проблема?
Забыл подгрузить модельку, теперь всё ок. Некоторые модели предзагружаются на старте игры, поэтому глюк может всплыть коварным образом:
C++:
SF->getSAMP()->registerChatCommand("spawnveh", [](std::string param)->void
            {
                int modelId = std::stoi(param);
                CVector spawnPos = DevKit::getActorPos(PLAYER_PED);
                if (!GAME->GetStreaming()->HasModelLoaded(modelId))
                {
                    GAME->GetStreaming()->RequestModel(modelId, 0);
                    GAME->GetStreaming()->LoadAllRequestedModels();
                }
                CVehicle* pVehicle = GAME->GetPools()->AddVehicle(static_cast<eVehicleTypes>(modelId), NULL, NULL);
                pVehicle->SetPosition(&spawnPos);
                GAME->GetWorld()->Add(pVehicle, CObject_Constructor);

            });
 
Последнее редактирование:

SiTrak

Известный
193
251
Как через синхру телепортировать к себе транспорт не занятый ?