Перейти к содержанию
Admin

Заказ №30: "Маршрутизация метро"

Рекомендуемые сообщения

Основное направление разработки на данный момент:

Описание на GitHub | Вспомогательная таблица

 

 


 

 

Добавил новый заказ.
Планируется передать проработку маршрутов и написание конкретных команд - на аутсорс игрокам.

 

Оплата за схему развязок = 6 стеков изумрудных блоков

Оплата за подготовку отдельной развязки = 1 стек изумрудных блоков

 

Список станций тут.

 

В качестве награды, как минимум - CSLf8v7.png

 

Схема линий, станций и развязок:

efkBknA.jpg

 

 

Развязки, маршруты, команды:

Спойлер

 

При текущем подходе [для экономии командных блоков при проверке проезжающего игрока] используется "маршрут по умолчанию = на спаун": это означает, что все стрелки по умолчанию ведут на спаун.

Из-за этого необходимо выполнять сброс стрелки после проезда игрока.

 

 

При подготовке команд:

  • сначала идут команды в командных блоках: последовательность - сверху (от нажимных рельс) вниз
  • в конце должна быть команда сброса конкретной стрелки в исходное положение

 

Коды направлений рельс:

  • 0: Север-Юг (Юг-Север)
  • 1: Запад-Восток (Восток-Запад).
  • 6: Юг-Восток (Восток-Юг).
  • 7: Юг-Запад (Запад-Юг).
  • 8: Север-Запад (Запад-Север).
  • 9: Север-Восток (Восток-Север).

 

Последний вариант с деревом квадрантов

Спойлер

 

Про КБ выдачи названия станции в чат и ассоциации номер -> адрес в отдельную группу КБ  тут

Список развязок и станций с адресами  тут

Схема дерева квадрантов и станций и развязок на нем  тут

 

У нас 61 развязка и 43 станции (не считая новый спаун)

Глубина вложенности дерева - 5 уровней.

Но я немного читерил - те развязки, которые находятся близко, но у самой границы квадранта, я разносил в разные ячейки, дабы не увеличивать глубину дерева. 

 

C1Q34ep.png

Описание команд развязки тут

 

 

 

 

Старый вариант

Спойлер

 

 

1b8YBqs.jpg

 

Стрелка 1



/execute @p[r=20,score_MetroSt_min=2,score_MetroSt=2] ~ ~ ~ /setblock 44 33 -100 rail 0
/execute @p[r=20,score_MetroSt_min=7,score_MetroSt=15] ~ ~ ~ /setblock 44 33 -100 rail 0
/execute @p[r=20,score_MetroSt_min=24,score_MetroSt=26] ~ ~ ~ /setblock 44 33 -100 rail 0
/execute @p[r=20,score_MetroSt_min=32,score_MetroSt=42] ~ ~ ~ /setblock 44 33 -100 rail 0

/setblock 44 33 -100 rail 7 

Стрелка 3



/execute @p[r=20,score_MetroSt_min=1,score_MetroSt=43] ~ ~ ~ /setblock 41 33 -91 rail 9

/setblock 41 33 -91 rail 0 

 

Стрелка 2



/execute @p[r=20,score_MetroSt_min=1,score_MetroSt=1] ~ ~ ~ /setblock 41 33 -96 rail 8
/execute @p[r=20,score_MetroSt_min=3,score_MetroSt=6] ~ ~ ~ /setblock 41 33 -96 rail 8
/execute @p[r=20,score_MetroSt_min=16,score_MetroSt=23] ~ ~ ~ /setblock 41 33 -96 rail 8
/execute @p[r=20,score_MetroSt_min=27,score_MetroSt=31] ~ ~ ~ /setblock 41 33 -96 rail 8
/execute @p[r=20,score_MetroSt_min=43,score_MetroSt=43] ~ ~ ~ /setblock 41 33 -96 rail 8

/setblock 41 33 -96 rail 0  

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@EChris_, если будет время и желание, то можем вместе в игре потупить какую-нибудь косячную развязку - я покажу, как их проверять и фиксить.

Это относительно не сложно: просто надо в голове вкурить дерево квадрантов, направления, слои, маршруты и пофиксить пару циферок 😄

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 часов назад, Admin сказал:

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

Впринципе, можно будет.

 

6 часов назад, Admin сказал:

относительно не сложно

😄 Ага, относительно 😉 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Достижения

В 01.05.2018 в 14:56, Admin сказал:

42 → 33

  • на 29 развязке кружит

@RedTeapot, можно твою консультацию?
Взялся я тут за развязки...

Итак, берём 29-ую развязку.
В случае моего маршрута из цитаты мы приезжаем сверху - на третью стрелку, которая норм отрабатывает. И вторая тоже норм кружит )

Проблема, имхо, в стрелке №1.
 

Спойлер

 

uVO8Zdy.png

 


Вот команды из кб и значения моих переменных:

Спойлер

 

Стрелка №1

/execute @p[x=-650,y=33,z=-461,r=2,score_metro_st_l_0_min=1,score_metro_st_l_0=3] ~ ~ ~ setblock -648 33 -461 minecraft:rail 1

/execute @p[x=-650,y=33,z=-461,r=2,score_metro_st_l_0_min=0,score_metro_st_l_0=0,score_metro_st_l_1_min=2,score_metro_st_l_1=2,score_metro_st_l_2_min=2,score_metro_st_l_2=2] ~ ~ ~ setblock -648 33 -461 minecraft:rail 1

/execute @p[x=-650,y=33,z=-461,r=2,score_metro_st_l_0_min=0,score_metro_st_l_0=0,score_metro_st_l_1_min=2,score_metro_st_l_1=2,score_metro_st_l_2_min=3,score_metro_st_l_2=3,score_metro_st_l_3_min=2,score_metro_st_l_3=2] ~ ~ ~ setblock -648 33 -461 minecraft:rail 1

/execute @p[x=-650,y=33,z=-461,r=2,score_metro_st_l_0_min=0,score_metro_st_l_0=0,score_metro_st_l_1_min=2,score_metro_st_l_1=2,score_metro_st_l_2_min=3,score_metro_st_l_2=3,score_metro_st_l_3_min=1,score_metro_st_l_3=1,score_metro_st_l_4_min=1,score_metro_st_l_4=1] ~ ~ ~ setblock -648 33 -461 minecraft:rail 1

 

Стрелка №2

/execute @p[x=-650,y=33,z=-464,r=2,score_metro_st_l_0_min=0,score_metro_st_l_0=0,score_metro_st_l_1_min=0,score_metro_st_l_1=1] ~ ~ ~ setblock -652 33 -464 minecraft:rail 9

/execute @p[x=-650,y=33,z=-464,r=2,score_metro_st_l_0_min=0,score_metro_st_l_0=0,score_metro_st_l_1_min=3,score_metro_st_l_1=3] ~ ~ ~ setblock -652 33 -464 minecraft:rail 9

/execute @p[x=-650,y=33,z=-464,r=2,score_metro_st_l_0_min=0,score_metro_st_l_0=0,score_metro_st_l_1_min=2,score_metro_st_l_1=2,score_metro_st_l_2_min=0,score_metro_st_l_2=1] ~ ~ ~ setblock -652 33 -464 minecraft:rail 9

 

Стрелка №3

/execute @p[x=-657,y=33,z=-464,r=2,score_metro_st_l_0_min=0,score_metro_st_l_0=0,score_metro_st_l_1_min=2,score_metro_st_l_1=2,score_metro_st_l_2_min=3,score_metro_st_l_2=3,score_metro_st_l_3_min=0,score_metro_st_l_3=0] ~ ~ ~ setblock -659 33 -464 minecraft:rail 1

 

Значения переменных

metro_st_l_0 = 2

metro_st_l_1 = 2

metro_st_l_2 = 3

metro_st_l_3 = 0

metro_st_l_4 = 3

 

 

 

Вангую, что проблема в кб с командой, которая в спойлере выделена красным цветом:

  • /execute @p[x=-650,y=33,z=-461,r=2,score_metro_st_l_0_min=1,score_metro_st_l_0=3] ~ ~ ~ setblock -648 33 -461 minecraft:rail 1

 

Но я вообще не понимаю, как мне фиксить эту команду, чтобы ничего не сломать )))
Можешь направить меня в правильное русло? 🙂

 

  1. По каким критериям мы генерим такое условие - для чего?
  2. Вряд ли же будет достаточно - просто исключить двойку?
    • или всё же что-то подобное и надо сделать, например, тупо оставив только единицу?

 


 


UPD:

Тупняк - похоже тупо r=2 не добивало до игрока - поменял на r=5 😄
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 01.05.2018 в 14:56, Admin сказал:
  • 29 → 42
  • 42 → 33
    • на 29 развязке кружит
  • 33 → 27
    • на 28 развязке кружит

 

В 01.05.2018 в 15:06, RedTeapot сказал:

Итак.

24 -> 33, кружит на развязке 29 (не выпускает с нее никуда).

1 -> 38, кружит на развязке 38 (не выпускает).

 

Починил:

  • на 29-ой развязке не добивало условие r=2 - заменил на r=5 (на некоторых других тоже)
    • ещё Чайник предположил, что проблема не в r=2, а в неверном центре координат = можно будет слетать проверить (но имхо, там реально один из кб тупо далеко; хоть и не тот, который не срабатывал)
  • на 28-ой развязке было неверное условие для первого уровня квадрантов
  • на 38-ой равязке не было минуса перед координатой Z, но там дальше ещё косяки по маршруту (Чайник, ты после глюка не поехал дальше?)
    • убрал пару лишних разгонных рельс без питания на развязках
    • добавил отсутствующие рельсы в некоторых местах
    • сейчас затык на 48-ой развязке и там сложно... такое ощущение, что для станции указано неверно место назначения (первый квадрант вместо нулевого) = я пока такое не умею фиксить... @RedTeapot, можешь глянуть (если есть возможность)?

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мысли от мистера Чайника на будущее - вдруг, до новых веток доберёмся...

 

Цитата

Случайно про метро мысля пришла. Вроде, так я еще не пробовал: найти кратчайший путь до станции B, пройтись по промежуточным развязкам и в каждой прописать, в каком направлении находится следующая развязка данного пути. Повторить для всех станций. Потом эти прописанные пути сгруппировать, насколько это возможно. Правда, хз, не увеличит ли это количество КБ на развязках до небес

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, пишу на будущее для себя.

Перебираем все станции. Для станции A перебираем все станции (получаем пары станций A-B). Находим кратчайший путь от A до B, пусть он состоит из развязок c1...cn. Для развязки ci сохраняем направление на развязку c(i+1) и станцию B.

Далее пробегаемся по развязкам и схлопываем все направления в адреса квадрантов.

  • Алмазик 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@Admin

Рад что метро не заглохло без меня.

За физическое его создание как руководителю проекта прошу начислить мне оплату.

Считаю что работа моя была выполнена в полном обьеме.

Физическое создание плюс КБ с техническими помещениями и вписание команд сгенерированных на тот момент это то за что я брался и что сделал.

   Ahnaton.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Достижения

В 13.12.2018 в 18:13, Ahnaton сказал:

@Admin

Рад что метро не заглохло без меня.

За физическое его создание как руководителю проекта прошу начислить мне оплату.

Считаю что работа моя была выполнена в полном обьеме.

Физическое создание плюс КБ с техническими помещениями и вписание команд сгенерированных на тот момент это то за что я брался и что сделал.

   Ahnaton.

 

В 13.12.2018 в 20:05, Admin сказал:

Надо эта... Найти размер оплаты, который мы оговаривали.

 

Размер оплаты мы не оговаривали. Прошу его назначить и выплатить. )))) 

@Admin @Lady_Lava

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Достижения

1 час назад, Ahnaton сказал:

 

 

Размер оплаты мы не оговаривали. Прошу его назначить и выплатить. )))) 

@Admin @Lady_Lava

140'000, не меньше

Изменено пользователем SadWise
  • Минус 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Достижения

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×