This is a mobile optimized page that loads fast, if you want to load the real page, click this text.

Кастомная карта

Inoi

/dev/null
Команда форума
Moderator
VIP
15 Окт 2020
4,416
2,167
208
36
О, работает подсказка, даже тему мне предложила


Жаль, там слишком много вариантов решения.


Короче, парни, это, вопрос к профессионалам именно рейджа. (Два)

Работаю подсосом на проекте одном грядущем, и какие то тут вопросы возникают, на которые я не знаю ответа, потому что не сталкивался никогда
И как будто бы не гуглится ничего, и нейротяночки постоянно только про секс че то говорят

На проекте фулл кастомная карта
В game_resources\raw лежит вся эта хуйня нужная от моделлеров



По эскейпу, глобальная карта - отображается заебись, кастомная.
А вот на миникарте - стандартная.
Что не так? Это к моделлерам?


Вопрос номер два как раз как по ссылочке наверху
А кто-то когда-то вообще прикручивал кастомный жпс?

Смотрите, двигать точки в кодволкере мышкой мне впадлу.

Поэтому я собрал несколько "позиций" по точкам на карте, для примера - на всех перекрёстках.
Ну, сетку, типа.
Потом я определил соседей для каждого и создал жсон-граф с индексом узла и массивом индексов соседей.
Ну типа

Код:
{
  "0": [1, 2],
  "1": [0, 3],
  "2": [0, 4],
  "3": [1],
  "4": [2]
}

Ну и потом рёбра
Таким образом получился граф



(Это самый первый с шагом в 500, я просто вставил че под рукой - финальный граф с порогом дистанции в 150 и ручками соединёнными основными осями + с ограничением на количество веток)
Ну короче, их меньше в сто раз и нет диагональной хуйни.

Дальше есть вот такая штука

Реализуем алгоритм и отдавая ему свой позишен в игре + выходной позишен с вейпойнта на миникарте - получаем расчёт нужной траектории по заготовленному графу через типа "ноды".
Работает - заебись.

Но не рисует на миникарте.
Вообще нахуй никак.
Я могу отрисовать маршрут прямо в игре, стрелочки рисовать, любую хуйню, но не на миникарте вообще нет

Код:
const ROUTE_RENDER_NATIVE = 0x3dda37128dd1aca8;
const ROUTE_CLEAR_NATIVE = 0x67EEDEA1B9BAFD94;
const ROUTE_START_NATIVE = 0x3d3d15af7bcaaf83;
const ROUTE_ADD_NATIVE = 0xa905192a6781c41b;

function startGtaRoute(points) {
  mp.game.ui.setWaypointOff();
  // mp.game.invoke(ROUTE_RENDER_NATIVE, false);

  //mp.game.invoke(ROUTE_CLEAR_NATIVE);
  mp.game.invoke(ROUTE_START_NATIVE, ROUTE_COLOR, true, true);

  points.forEach((point) => {
    mp.game.invoke(ROUTE_ADD_NATIVE, point.x, point.y, point.z || 0);
  });

  mp.game.invoke(ROUTE_RENDER_NATIVE, true);
}

function clearGtaRoute() {
  // mp.game.invoke(ROUTE_RENDER_NATIVE, false);
  mp.game.invoke(ROUTE_CLEAR_NATIVE);
}


Я пробовал там эти true false бесконечные, пробовал так сяк переставлять, рендерить не рендерить, пробовал интервал, пробовал зачем-то активировать худ, потому что gpt так предложила


Код:
function startGtaRoute(points) {
  mp.game.ui.setWaypointOff();

  mp.game.invoke('0x5B440763A4C8D15B', 16); // SET_GPS_FLAGS(16)

  mp.game.invoke(ROUTE_CLEAR_NATIVE);

  setTimeout(() => {
    mp.game.invoke(ROUTE_START_NATIVE, ROUTE_COLOR, false, true);

    for (const point of points) {
      mp.game.invoke(ROUTE_ADD_NATIVE, point.x, point.y, point.z || 0);
    }

    mp.game.invoke(ROUTE_RENDER_NATIVE, true);
  }, 100);
}


Пробовал даже рендер, блять

С точками всё в порядке, с алгоритмом тоже - прям в игре всё рисуется.
На минимапе - хуй.

Вот короче два вопроса
Как впихнуть минимапу
И как впихнуть жпс

Просто это как будто бы возможно, ну типа


Да это файвм, да это луа, но это же нативки, какая нахуй разница
Дело всё таки в карте?

Она не будет рисовать без этих ебучих расставленных точек? Без навмешей?
Или проблема в том что ты че еблан рисуешь на стандартной минимапе нестандартный маршрут
А в чем тогда смысл ваще если жпс и так проложится тогда
 
Реакции: Touch

UchihaMadara

Гений
VIP
FrontEnd developer
27 Окт 2020
985
357
141
Можешь рассказать о задаче, которую ты хочешь решить?
То есть, где будут использоваться эти маршруты? Чтобы понимать контекст лучше.
 

Inoi

/dev/null
Команда форума
Moderator
VIP
15 Окт 2020
4,416
2,167
208
36
Просто на карте рисовать маршрут, что на миникарте что по эскейпу.
У тебя карта не стандартная, а маршруты гта рисует как будто бы карта её родная.

Это решается либо вот этими навмешами и прочими штуками чисто внутри, либо вот я хочу попробовать рисовать из игры.
Но она не рисует.


С алгоритмом, со всей этой хуетой - всё в порядке, я могу рисовать себе дорожку "жпс" прямо в игре по ним




Но именно нативки для карты - просто не реагируют.
 
Реакции: Touch

Touch

Участник портала
28 Авг 2021
52
12
69
По миникарте: так делается, как и глобальная карта, кидаем файлы в папку, возможно, не кинул файлики, которые именно за миникарту отвечают (если никто до вечера не ответит-поможет), буду дома, покапаюсь и скину.

По жпс: на проектах с кастомной картой реализован кастом жпс, который берет кастомные ноды, которые ты делаешь сам на своей кастомной карте через Codewalker, после этого ты на стороне сервера или клиента (тут точно не могу подсказать, не кодер) делаешь систему, которая использует эти ноды для жпс.
 

Inoi

/dev/null
Команда форума
Moderator
VIP
15 Окт 2020
4,416
2,167
208
36
Этот варик я знаю да
Хотел как раз без него, просто рисовать так как мне хочется по координатам
 

Touch

Участник портала
28 Авг 2021
52
12
69
Посмотрел видео с FiveM, без впн не видно было. Красный маршрут, который он сделал, жпс же берет из путей стандартной игры.
 
Реакции: Inoi

UchihaMadara

Гений
VIP
FrontEnd developer
27 Окт 2020
985
357
141
const ROUTE_RENDER_NATIVE = 0x3dda37128dd1aca8;
Я почему-то думаю, что тут адрес неверный. Судя по тому, что я посмотрел, этот адрес не указывает ни на какую функцию в ГТА.

А вот адрес 0xc5239b40cad5176c указывает на SET_GPS_MULTI_ROUTE_RENDER
 

Inoi

/dev/null
Команда форума
Moderator
VIP
15 Окт 2020
4,416
2,167
208
36
Ну я отталкивался от https://docs.fivem.net/natives/?_0x3DDA37128DD1ACA8
Твоей нативки шо ты вытащил там вообще нет

 
Реакции: Touch

Inoi

/dev/null
Команда форума
Moderator
VIP
15 Окт 2020
4,416
2,167
208
36

Touch

Участник портала
28 Авг 2021
52
12
69
minimap_*_*.ytd за миникарту отвечает
minimap_sea_*_*.ytd за глобальную карту esc.
Посмотри все minimap_*_*.ytd, там изображение кастом карты, а не стандартной случаем, если кастом, то в папке попробуй оставить только файлы миникарты и глобальной карты esc.
 

Inoi

/dev/null
Команда форума
Moderator
VIP
15 Окт 2020
4,416
2,167
208
36
кароч нативка рейджа тоже нахуй послала
и вайнот тут ещё https://rage.mp/files/file/480-draw-zone/ накинул, я эти технологии попробовал
на кастомной че то тоже хуй
удивительно

ну это так чисто

мб я там уже запутался в своём говнокоде немного, надо будет сесть заново всё отрисовать ещё
пока на скорую руку чисто перед сном потестил
 

Touch

Участник портала
28 Авг 2021
52
12
69
Мне кажется, без nodes для вашей кастом карты ничего не получится, а если и получится, то будет косо-криво работать, у Рокстаров встречка, перекрёстки, трафик настроен через них. Как будто делать через Codewalker nodes и потом просто на стороне клиента-сервера подвязать, чтобы они использовались, проще, чем делать свой кастом жпс.

С миникартой все хорошо, получилось?
 

Inoi

/dev/null
Команда форума
Moderator
VIP
15 Окт 2020
4,416
2,167
208
36
миникарту пока не пробовал вообще честно говоря
потраю сегодня
 
Реакции: PercyBerkeley и Touch

aspidemon

Начинающий специалист
26 Сен 2022
185
57
85
Просто сделайте навмеш (не сложно и не настолько долго, делается буквально за два-три дня, зависит от масштабов карты) и все - не придумывайте велосипед заново