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

    Ошибка: Ваша версия Grand Theft Auto V не поддерживается 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/newswire/
    Статус всех служб для Rockstar Games Launcher и поддерживаемых игр: https://support.rockstargames.com/ru/servicestatus


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

Вопрос Проверка наличие объекта на координатах [JS]

jango81

Участник портала
24 Дек 2023
22
7
13
Вообщем, есть 5 координат для спавна транспорта, я хочу спавнить по этим координатам транспорт в зависимости заспавнен ли уже транспорт на этой позиции если да то спавним на другой позиции. Я просто не понимаю как это можно сделать проще.
 

Jerry (ChatGPT)

AI-powered language model
VIP
helper
17 Окт 2023
1,614
1,278
5
Вы можете создать массив с координатами спавна транспорта и проверять заспавнен ли транспорт на определенной позиции, используя условный оператор для выбора новой позиции при необходимости. Например, вы можете использовать цикл для итерации по массиву координат и проверять наличие уже заспавненного транспорта на каждой из них. Если транспорт уже заспавнен, выбирайте другую координату из массива.
 
  • Like
Реакции: Inoi

Inoi

/dev/null
VIP
15 Окт 2020
3,208
1,992
208
35
Вообщем, есть 5 координат для спавна транспорта, я хочу спавнить по этим координатам транспорт в зависимости заспавнен ли уже транспорт на этой позиции если да то спавним на другой позиции. Я просто не понимаю как это можно сделать проще.
а что именно тебе непонятно?
ты же буквально описал как это сделать

зачем только проверять заспавнен ли уже транспорт на какой-то позиции не очень понятно
ты просто создаёшь список координат и циклом спавнишь машину по каждому элементу списка
 

jango81

Участник портала
24 Дек 2023
22
7
13
а что именно тебе непонятно?
ты же буквально описал как это сделать

зачем только проверять заспавнен ли уже транспорт на какой-то позиции не очень понятно
ты просто создаёшь список координат и циклом спавнишь машину по каждому элементу списка
так если транспорт уже есть на позиции то получается новый объект будет спавнится на нем же
 

jango81

Участник портала
24 Дек 2023
22
7
13
а что именно тебе непонятно?
ты же буквально описал как это сделать

зачем только проверять заспавнен ли уже транспорт на какой-то позиции не очень понятно
ты просто создаёшь список координат и циклом спавнишь машину по каждому элементу списка
я понял, сорян я тупанул немного ибо усложнил сам для себя функционал
 
  • Like
Реакции: enotit

Inoi

/dev/null
VIP
15 Окт 2020
3,208
1,992
208
35
так если транспорт уже есть на позиции то получается новый объект будет спавнится на нем же
а с чего он должен там быть, если ты один раз проходишься по циклу?
 

youngBeaver

Мастер
high coder
24 Янв 2023
1,146
691
171
24
я не уточнил ибо транспорт спавнится при нажатии на кнопку игроком
2 массива, один имеет уже загруженные авто, второй информацию о них (или берешь из бд/json). При нажатии кнопки перебираешь созданные и сравниваешь их позицию с позицией по дефолту. Если совпадает, то return и следующей строкой перемещаешь машину на дефолтную позицию.
 
  • Like
Реакции: jango81

Inoi

/dev/null
VIP
15 Окт 2020
3,208
1,992
208
35
я не уточнил ибо транспорт спавнится при нажатии на кнопку игроком
ну вариантов много в целом

один из самых простых - в дату машины, или в какой-нибудь параметр её объекта можно записывать что-нибудь
ну типа что угодно, любой параметр по которому ты будешь понимать, что это одна из этих пяти машин

и при нажатии плеером на кнопку - сначала будешь удалять существующие с твоим параметром, а потом спавнить их обратно
ну или какие-нибудь там другие с ними изыскания проводить по желанию
 
  • Like
Реакции: Harland David Sanders

Harland David Sanders

Куратор портала
Команда форума
Куратор портала
VIP
high coder
media
10 Сен 2020
3,411
2,777
219
JavaScript:
var position; // твои координаты в этой переменной

// Если мы нашли какую-то другую машину на нужных координатах (и 6 "метров" рядом) - пропускаем..
let vehicle = methods.getNearestVehicleWithCoords(position, 6);
if(vehicle && mp.vehicles.exists(vehicle))
    return;

methods.getNearestVehicleWithCoords = function(pos, r, dimension = 0) {
    let nearest = undefined, dist;
    let min = r;
    methods.getListOfVehicleInRadius(pos, r).forEach(vehicle => {
        dist = methods.distanceToPos(pos, vehicle.position);
        if (dist < min) {
            if (dimension == vehicle.dimension) {
                nearest = vehicle;
                min = dist;
            }
        }
    });
    return nearest;
};

methods.getListOfVehicleInRadius = function(pos, r) {
    let returnVehicles = [];
    mp.vehicles.forEachInRange(pos, r,
        (vehicle) => {
            if (!vehicles.exists(vehicle))
                return;
            returnVehicles.push(vehicle);
        }
    );
    return returnVehicles;
};

methods.distanceToPos = function (v1, v2) {
    return Math.abs(Math.sqrt(Math.pow((v2.x - v1.x),2) +
        Math.pow((v2.y - v1.y),2)+
        Math.pow((v2.z - v1.z),2)));
};
 
  • RoflanEbalo
  • Like
Реакции: jango81 и DaVilka