• Из-за обновления GTA 5 (был добавлен новый патч) может временно не работать вход в RAGE Multiplayer.

    ERROR: Your game version is not supported by RAGE Multiplayer.

    Данная ошибка говорит о том, что GTA V обновилась до новой версии (GTA Online тоже). Вам необходимо обновить саму игру в главном меню вашего приложения (Steam / Epic Games / Rockstar Games).
    Если после этого RAGE:MP все равно не работает - вам нужно дождаться выхода патча для самого мультиплеера (обычно это занимает от нескольких часов до нескольких дней).

    Новости и апдейты Rockstar Games - https://www.rockstargames.com/ru/newswire/
    Статус всех служб для Rockstar Games Launcher и поддерживаемых игр: https://support.rockstargames.com/ru/servicestatus


    Grand Theft Auto 5 (+ GTA Online) последний раз были обновлены:

Вопрос Получение координат куда смотрит игрок

dereksjq

Участник портала
Автор темы
17 Июн 2023
64
10
20
С помощью чат-гпт сгенерировал код:
JavaScript:
const raycast = mp.raycasting.testPointToPoint;
function openCloseBrowser() {

  const hitData = raycast(player.position, player.getLookAtCoord(), player, -1);
 
  if (hitData && hitData.entity.type === "player") {
    const hitPlayer = hitData.entity;
    
    if (mp.keys.isDown(71)) { // 71 - G
        rpc.callServer("debug", `Игрок ${player.getVariable("firstName")} ${player.getVariable("lastName")} использовал открытие колеса взаимодействии на игроке ${hitPlayer.getVariable("firstName")} ${hitPlayer.getVariable("lastName")}`)
    }
  }
}

// Обработчик каждого кадра игры
mp.events.add("render", openCloseBrowser);
Но выдает ошибку, мол нет функции getLookAtCoord();. Ее и в правду нет, но в документации не нашел похожую. Подскажет кто, как реализовать получение координат, куда смотрит игрок?
 

Jerry (ChatGPT)

AI-powered language model
VIP
helper
17 Окт 2023
949
1,178
5
Функция getLookAtCoord() не существует в документации mp.Player. Однако, вы можете использовать функцию getDirection() для получения направления, в котором смотрит игрок, и затем вычислить координаты, используя эту информацию.

Вот измененный код, который может помочь вам реализовать получение координат, куда смотрит игрок:

JavaScript:
const raycast = mp.raycasting.testPointToPoint;

function openCloseBrowser() {
  const hitData = raycast(player.position, getPlayerLookAtCoord(), player, -1);

  if (hitData && hitData.entity.type === "player") {
    const hitPlayer = hitData.entity;

    if (mp.keys.isDown(71)) { // 71 - G
      rpc.callServer("debug", `Игрок ${player.getVariable("firstName")} ${player.getVariable("lastName")} использовал открытие колеса взаимодействии на игроке ${hitPlayer.getVariable("firstName")} ${hitPlayer.getVariable("lastName")}`);
    }
  }
}

function getPlayerLookAtCoord() {
  const rotation = player.getRotation(2); // Получаем поворот игрока
  
  const x = Math.sin(-rotation.z * Math.PI / 180.0) * Math.abs(Math.cos(rotation.x * Math.PI / 180.0));
  const y = Math.cos(-rotation.z * Math.PI / 180.0) * Math.abs(Math.cos(rotation.x * Math.PI / 180.0));
  const z = Math.sin(rotation.x * Math.PI / 180.0);

  const radius = 1.0;
  const offsetX = player.position.x + x * radius;
  const offsetY = player.position.y + y * radius;
  const offsetZ = player.position.z + z * radius;

  return new mp.Vector3(offsetX, offsetY, offsetZ);
}

// Обработчик каждого кадра игры
mp.events.add("render", openCloseBrowser);

В этой реализации мы используем функцию getPlayerLookAtCoord(), которая рассчитывает координаты, куда смотрит игрок, на основе его поворота. Затем мы передаем эти полученные координаты в функцию raycast(). Проверьте этот код и посмотрите, решит ли он вашу проблему.