• Из-за обновления 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) последний раз были обновлены:

Вопрос Поворот объекта в сторону другого объекта

DaVilka

Старожил
BackEnd developer
16 Сен 2020
759
276
128
Есть два объекта в мире, один стоит на месте а другой перемещается, мне нужно повернуть первый объект в сторону второго. Можно как то вычислить углы xyz на которые надо повернуть обьект относительно координат перемещаемого объекта средствами рейджа?
 

Nevedimka

Активный участник
6 Янв 2021
156
38
83
Есть два объекта в мире, один стоит на месте а другой перемещается, мне нужно повернуть первый объект в сторону второго. Можно как то вычислить углы xyz на которые надо повернуть обьект относительно координат перемещаемого объекта средствами рейджа?
Ну вот так можно Rotation.Z вычислить
C#:
Vector3 dir = from - To;
double angle = -Math.Atan2(dir.X, dir.Y) * (180 / 3.1416f) + 180;
from - позиция объекта, который нужно повернуть
to - позиция объекта, к которому нужно повернуть первый объект
 

DaVilka

Старожил
BackEnd developer
16 Сен 2020
759
276
128
C#:
        public static Vector3 DirectionToRotation(Vector3 dir, float roll)
        {
            dir = dir.Normalized;
            Vector3 rotval = new Vector3();
            rotval.Z = ((float)Math.Atan2(dir.X, dir.Y)) * (180.0f / MathF.PI);
            Vector3 rotpos = new Vector3(dir.Z, new Vector3(dir.X, dir.Y, 0.0f).Length(), 0.0f).Normalized;
            rotval.X = ((float)Math.Atan2(rotpos.X, rotpos.Y)) * (180.0f / MathF.PI);
            rotval.Y = roll;
            return rotval;
        }
 
Реакции: Nevedimka

Nevedimka

Активный участник
6 Янв 2021
156
38
83
C#:
        public static Vector3 DirectionToRotation(Vector3 dir, float roll)
        {
            dir = dir.Normalized;
            Vector3 rotval = new Vector3();
            rotval.Z = ((float)Math.Atan2(dir.X, dir.Y)) * (180.0f / MathF.PI);
            Vector3 rotpos = new Vector3(dir.Z, new Vector3(dir.X, dir.Y, 0.0f).Length(), 0.0f).Normalized;
            rotval.X = ((float)Math.Atan2(rotpos.X, rotpos.Y)) * (180.0f / MathF.PI);
            rotval.Y = roll;
            return rotval;
        }
Ебать ты сверхразум
 

artemsiberian

Участник портала
22 Май 2021
59
10
50
Если эти объекты не являются человеком или машиной, запаришься находить их позицию, повернуть их друг к другу это 10 процентов дел)
я две ночи сижу уже, накостылял что то через рейкасты, пашет, но хотелось бы лучше, если кто шарит, как получить entity заспавненного object (не пед не авто) подскажите пожалуйста)
 

X-Clusiv

Модератор
Команда форума
Moderator
BackEnd developer
4 Окт 2020
708
319
161
30
Если эти объекты не являются человеком или машиной, запаришься находить их позицию, повернуть их друг к другу это 10 процентов дел)
я две ночи сижу уже, накостылял что то через рейкасты, пашет, но хотелось бы лучше, если кто шарит, как получить entity заспавненного object (не пед не авто) подскажите пожалуйста)
Код:
let entity = mp.objects.new('apa_prop_flag_portugal', player.position,
{
   rotation: player.rotation,
   alpha: 250,
   dimension: player.dimension
});
либо если знаете его id
Код:
let entity = mp.objects.at(id);
 
Реакции: artemsiberian

DaVilka

Старожил
BackEnd developer
16 Сен 2020
759
276
128
Если эти объекты не являются человеком или машиной, запаришься находить их позицию, повернуть их друг к другу это 10 процентов дел)
я две ночи сижу уже, накостылял что то через рейкасты, пашет, но хотелось бы лучше, если кто шарит, как получить entity заспавненного object (не пед не авто) подскажите пожалуйста)
Ну в моем случае я сам создавал координаты обьекта на основе положения камеры, и пересечения ею обьектов. Entity любого обьекта это Handle, я делаю все на c#, объекты создаю через RAGE.Game.Elements.MapObject mapobj = new ... а уже в самом обьекте есть Handle
 

DaVilka

Старожил
BackEnd developer
16 Сен 2020
759
276
128
Если эти объекты не являются человеком или машиной, запаришься находить их позицию, повернуть их друг к другу это 10 процентов дел)
я две ночи сижу уже, накостылял что то через рейкасты, пашет, но хотелось бы лучше, если кто шарит, как получить entity заспавненного object (не пед не авто) подскажите пожалуйста)
Да и RAGE.Game.CreateObject возвращает же его entity, если ты на c# делаеш
 
Реакции: artemsiberian

artemsiberian

Участник портала
22 Май 2021
59
10
50
Да и RAGE.Game.CreateObject возвращает же его entity, если ты на c# делаеш
Спасибо, да делаю на си шарп

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

p.s RAGE.Game.Elements.MapObject mapobj не могу найти документацию, что это?)
 

DaVilka

Старожил
BackEnd developer
16 Сен 2020
759
276
128
Спасибо, да делаю на си шарп

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

p.s RAGE.Game.Elements.MapObject mapobj не могу найти документацию, что это?)
1621946980234.png

1621947019912.png


Это MapObject, создание объект на карте )
 

DaVilka

Старожил
BackEnd developer
16 Сен 2020
759
276
128
Спасибо, да делаю на си шарп

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

p.s RAGE.Game.Elements.MapObject mapobj не могу найти документацию, что это?)
А как ты получаеш обьекты в радиусе?
 

artemsiberian

Участник портала
22 Май 2021
59
10
50
А как ты получаеш обьекты в радиусе?
Сейчас я кидаю рейкаст на объект, и рейкаст возвращает хендл, но если объект маленький сложно мышкой попасть) вот и спросил как получить объекты в радиусе по человечески без рейкастов
 

DaVilka

Старожил
BackEnd developer
16 Сен 2020
759
276
128

artemsiberian

Участник портала
22 Май 2021
59
10
50
Не, просто c# плохо документирован
Ну судя по всему разницы нет, что мап обжект использовать, что я в базу сохраняю,

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

artemsiberian

Участник портала
22 Май 2021
59
10
50
А на стороне сервера можно расчитать дистанцию между двумя объектами если известны X Y Z и того и другого?
 

X-Clusiv

Модератор
Команда форума
Moderator
BackEnd developer
4 Окт 2020
708
319
161
30
А на стороне сервера можно расчитать дистанцию между двумя объектами если известны X Y Z и того и другого?
Код:
getDistance = (x1,y1,z1,x2,y2,z2)=>{
 return Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2) + (z1 - z2) * (z1 - z2));

}
 
Реакции: artemsiberian

DaVilka

Старожил
BackEnd developer
16 Сен 2020
759
276
128
А на стороне сервера можно расчитать дистанцию между двумя объектами если известны X Y Z и того и другого?
Vector3.Distance, но не рекомендую выполнять ресурсоемкие мат вычисления со стороны сервера