Перейти к содержанию
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  

 

 

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


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

3 часа назад, Lady_Lava сказал:

У нас же рп сервер, давайте просто назначим персонал в метро, пусть переключают всё сами

Такой подход планировался к грузовым ж/д - на каждой стрелке надо нажимать кнопочку )

 

В 7/20/2017 в 04:51, FoxSus сказал:

Там возможно ошибка в КБ, можете посмотреть какие команды прописаны в основных КБ на развязки номер 3 (Дося) мне до них самому не как не добраться(

Выбираю станцию назначения - "Спаун": тут не работает конкретная стрелка, в которой вписана эта команда

 

/execute @p[x=-40,y=33,z=-93,r=2,score_metro_st_l_0=0,score_metro_st_l_0_min=0,score_metro_st_l_1=2,score_metro_st_l_1_min=2,score_metro_st_l_2=2,score_metro_st_l_2_min=2,score_metro_st_l_3=1,score_metro_st_l_3_min=1] ~ ~ ~ setblock -40 33 -95 minecraft:rail 6

 

Короче, команда вообще ни о чём )))
должно быть 1333 - пофиксили )

 

16 часов назад, FoxSus сказал:

давайте хотя бы исправим "Г" хоть вагонетки на спаун поедут )

Эту комбинацию переделал, но она вроде работала, т.к. отвечала за другую стрелку.

 


 

@RedTeapot, а мы можем условиться, что твой алгоритм автоматической генерации команд маршрутизации - рабочий, но с мелкими нюансами?

Это я к тому, что - может, нагенерим команд + вобьём их, а конкретные косяки мозгом дошуршим по заявкам игроков о проблемах? :D

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


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

3 часа назад, Admin сказал:

@RedTeapot, а мы можем условиться, что твой алгоритм автоматической генерации команд маршрутизации - рабочий, но с мелкими нюансами?

 

Это я к тому, что - может, нагенерим команд + вобьём их, а конкретные косяки мозгом дошуршим по заявкам игроков о проблемах? :D

 

А шуршать не многовато придется?

 

Вообще, надо глянуть, сколько там есть косячных вариантов, как их можно сгруппировать и исправить (ручками).

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


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

В 2/25/2017 в 13:31, Admin сказал:

Вроде, выявили сложности и нашли решение:

  1. скорректировать исходные данные так, чтобы не было станций, въезд в которые только через другие квадранты = приписать их к квадранту въезда (вариация "дерева кривантов")
  2. обязательно проводить маршруты только внутри квадранта, если станции отправления и назначения в одном квадранте
  3. если пункт 2 невозможно выполнить - капнуть пару тоннелей по гос.зазказу, чтобы обязательно был хотя бы 1 маршрут внутри квадранта
    • сразу помечать маршруты, которые нужно построить, но внутри квадранта нет маршрута - только через други = поймём масштаб проблемы

 

13 минут назад, RedTeapot сказал:

А шуршать не многовато придется?

Вообще, надо глянуть, сколько там есть косячных вариантов, как их можно сгруппировать и исправить (ручками).

Вангую, что - пяток...

 + вроде, бы все эти косяки отмечены в листе "станции" - их 9: если применить мой корявый вариант и скорректировать исходные данные так, что эти станции находятся внутри нужного квадранта, то всё сгенерируется чётенько :D


 + если останутся косяки, то вообще пофиг - их точно пофиксим ручками )))
 

 


 

 

Ну, и вообще, суть предложения в том, чтобы уже взять - сгенерить эти команды и попробовать настроить развязку + протестировать.

Получится? Прекрасно!

Не получится? Допилить мозгом :)

 

Моя внутренняя ванга вангует, что >50% будут рабочими сразу )

 

P.S.: кстати, странно, что у нас ещё есть "сбрасывающие" кб, которые возвращают стрелку на исходное состояние по факту проезда вагонетки... Это как-то учитывается в авто-генерации команд?

Изменено пользователем Admin

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


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

В 21.07.2017 в 16:38, RedTeapot сказал:

 

А шуршать не многовато придется?

 

Вообще, надо глянуть, сколько там есть косячных вариантов, как их можно сгруппировать и исправить (ручками).

Может немножко сгенерируешь команд, подключим ещё несколько станций? И проверим что там и как (не хочу вспоминать перл)

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


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

3 минуты назад, FoxSus сказал:

Может немножко сгенерируешь команд, подключим ещё несколько станций? И проверим что там и как (не хочу вспоминать перл)

 

Хз, где ты перл нашел. Зачем генерировать "немножко команд", если ничего не работает? Может, на днях потрогаю это дело.

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


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

1 минуту назад, RedTeapot сказал:

 

Хз, где ты перл нашел. Зачем генерировать "немножко команд", если ничего не работает? Может, на днях потрогаю это дело.

А на чем ты скрипт писал, на си? Потрогай простотинтерестно запустить систему.

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


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

Только что, FoxSus сказал:

А на чем ты скрипт писал, на си? Потрогай простотинтерестно запустить систему.

 

Python же. На мой взгляд, лучший вариант для подобного рода проектов.

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


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

А вагонетки в метро откуда берутся? 

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


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

Только что, FoxSus сказал:

А вагонетки в метро откуда берутся? 

 

Наверное, КБ спаунит

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


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

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

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


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

Немного пытаюсь повтыкать в эту тему. Есть еще идея - отказаться от адресов станций (определять станцию по адресу подключенной к ней развязке + ее номеру (на случай, если к одной развязке подключено две и более станции)). Возможно, это упростит задачу. Возможно, нет. Наверное, вдобавок к этому надо будет как-то умудриться искать пути в графе с учетом дерева квадрантов, но я пока слабо представляю. Ручками пофиксить проблемные места пока не очень выходит: в одном месте чинится, но ломается в другом.

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


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

15 минут назад, Admin сказал:

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

вот это выбесило вчера....

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


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

24 минуты назад, RedTeapot сказал:

Немного пытаюсь повтыкать в эту тему. Есть еще идея - отказаться от адресов станций (определять станцию по адресу подключенной к ней развязке + ее номеру (на случай, если к одной развязке подключено две и более станции)). Возможно, это упростит задачу. Возможно, нет. Наверное, вдобавок к этому надо будет как-то умудриться искать пути в графе с учетом дерева квадрантов, но я пока слабо представляю. Ручками пофиксить проблемные места пока не очень выходит: в одном месте чинится, но ломается в другом.

да я уже выше писал что адрес станции в общем то не нужен главная развязка и направления с езда с нее.

29 минут назад, Admin сказал:

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

а на фиг кактус просто /kill ее и все ) 

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


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

3 минуты назад, FoxSus сказал:

да я уже выше писал что адрес станции в общем то не нужен главная развязка и направления с езда с нее.

 

Если ты все знаешь, то можешь сам все и сделать.

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


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

Только что, RedTeapot сказал:

 

Если ты все знаешь, то можешь сам все и сделать.

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

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


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

56 минут назад, FoxSus сказал:

а на фиг кактус просто /kill ее и все ) 

В каком смысле нафиг? Кактус - не менее просто, чем kill.

Тот, кто делал метро в тот момент, решил сделать так, как есть сейчас.

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


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

33 минуты назад, Admin сказал:

В каком смысле нафиг? Кактус - не менее просто, чем kill.

Тот, кто делал метро в тот момент, решил сделать так, как есть сейчас.

c кактусом это более менее логично по меркам майна

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


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

Только что, Lady_Lava сказал:

c кактусом это более менее логично по меркам майна

Вот-вот - в идеале выдумывать какие-то такие штуки. В идеале...

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


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

1 минуту назад, Admin сказал:

Вот-вот - в идеале выдумывать какие-то такие штуки. В идеале...

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

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


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

1 минуту назад, Lady_Lava сказал:

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

 

А можно еще упороться: игрока высадить с помощью рельсы-активатора, а вагонетка пущай уезжает в технический тоннель высотой 1 блок, где с ней можно делать что угодно. Но зачем?

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


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

Только что, RedTeapot сказал:

 

А можно еще упороться: игрока высадить с помощью рельсы-активатора, а вагонетка пущай уезжает в технический тоннель высотой 1 блок, где с ней можно делать что угодно. Но зачем?

а разве раньше было не так? на моей памяти где-то так и было

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


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

Только что, Lady_Lava сказал:

а разве раньше было не так? на моей памяти где-то так и было

 

Кажется, раньше (=до, кажется, Redstone Update) не было рельсы-активатора. Да и, насколько помню, высаживать рельсина-активатор стала спустя несколько версий после добавления в игру.

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


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

Только что, RedTeapot сказал:

 

Кажется, раньше (=до, кажется, Redstone Update) не было рельсы-активатора. Да и, насколько помню, высаживать рельсина-активатор стала спустя несколько версий после добавления в игру.

нет, просто въезд в тоннель высотой 1 блок. игрок сам выходил

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


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

А вы это, новый спавн подключать-то будете? А то сейчас наделаете, а потом переделывать придется.

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


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

3 минуты назад, DirkTeN сказал:

А вы это, новый спавн подключать-то будете? А то сейчас наделаете, а потом переделывать придется.

 

Надеюсь, что выдуманная мною запара с деревьями и графами позволит как раз не переделывать все при добавлении станции. Иначе эта запара не нужна.

  • Плюс 1

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×