Перейти к содержанию
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 часа назад, Admin сказал:

Возможно, это делается вручную (на глаз) и представлено в виде таблицы, ссылка на которую в первом посте.

 

Может, у @RedTeapot

 + в принципе, всё это работает на первых 6 станциях в нашем мире = можно его скачать даже самому через какие-то плагины )

не работает)))

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


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

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

не работает)))

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

Надо будет по максимум перевести на функции )

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

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


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

допустим все кнопки на пульте переведем на функции, диапазон для примера от 1-3

+1

scoreboard players add @p metro_st 1
scoreboard players set @p[score_metro_st_min=4] metro_st 1
scoreboard players tag @p add metro_needsInfo

-1

scoreboard players remove @p metro_st 1
scoreboard players set @p[score_metro_st=0] metro_st 3
scoreboard players tag @p add metro_needsInfo

дальше нужен контролер

/tellraw @a[score_metro_st=9,score_metro_st_min=9,tag=metro_needsInfo] ["",{"text":"9. Setup","color": "yellow","clickEvent": {"action": "open_url","value": "#"},"hoverEvent": {"action": "show_text","value": "Нажми, чтобы посмотреть станцию на карте"}}]

и на этом на https://github.com/VELLEVET/minecraft-metro/wiki провал ( что там должно быть?

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


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

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

 

Чё? :)

загрузил тестовый мир разобрался

уф, почти все вкурил... за исключением автоматической генерации команд для (КБ)

1. все станции надо приклеить к развязкам типа нужна станция 4 значит развязка  29 (запад). технически место нахождения станции абсолютно не нужно, главное с какой стороны на нее съезд. 

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

3. надо все запихнуть в функции что бы не плодить КБ  

 

PS ушел за толевом..

Кнопочки для метро:

https://drive.google.com/open?id=0B5bAAr_9t15aSWlPSmpIU1Zsc2c

Пример +1 станция:

scoreboard players add @p metro_st 1
scoreboard players set @p[score_metro_st_min=44] metro_st 0
scoreboard players tag @p add metro_needsInfo
scoreboard players tag @p add metro_needsUpdate

 

Самый главный скрипт: Start

Запускать "/gamerule gameLoopFunction metro:Start"

function metro:st-0 if @a[score_metro_st=0,score_metro_st_min=0,tag=metro_needsInfo]
function metro:st-1 if @a[score_metro_st=1,score_metro_st_min=1,tag=metro_needsInfo]
function metro:st-2 if @a[score_metro_st=2,score_metro_st_min=2,tag=metro_needsInfo]
function metro:st-3 if @a[score_metro_st=3,score_metro_st_min=3,tag=metro_needsInfo]
function metro:st-4 if @a[score_metro_st=4,score_metro_st_min=4,tag=metro_needsInfo]
function metro:st-5 if @a[score_metro_st=5,score_metro_st_min=5,tag=metro_needsInfo]
function metro:st-6 if @a[score_metro_st=6,score_metro_st_min=6,tag=metro_needsInfo]
function metro:st-7 if @a[score_metro_st=7,score_metro_st_min=7,tag=metro_needsInfo]
function metro:st-8 if @a[score_metro_st=8,score_metro_st_min=8,tag=metro_needsInfo]
function metro:st-9 if @a[score_metro_st=9,score_metro_st_min=9,tag=metro_needsInfo]
function metro:st-10 if @a[score_metro_st=10,score_metro_st_min=10,tag=metro_needsInfo]
function metro:st-11 if @a[score_metro_st=11,score_metro_st_min=11,tag=metro_needsInfo]
function metro:st-12 if @a[score_metro_st=12,score_metro_st_min=12,tag=metro_needsInfo]
function metro:st-13 if @a[score_metro_st=13,score_metro_st_min=13,tag=metro_needsInfo]
function metro:st-14 if @a[score_metro_st=14,score_metro_st_min=14,tag=metro_needsInfo]
function metro:st-15 if @a[score_metro_st=15,score_metro_st_min=15,tag=metro_needsInfo]
function metro:st-16 if @a[score_metro_st=16,score_metro_st_min=16,tag=metro_needsInfo]
function metro:st-17 if @a[score_metro_st=17,score_metro_st_min=17,tag=metro_needsInfo]
function metro:st-18 if @a[score_metro_st=18,score_metro_st_min=18,tag=metro_needsInfo]
function metro:st-19 if @a[score_metro_st=19,score_metro_st_min=19,tag=metro_needsInfo]
function metro:st-20 if @a[score_metro_st=20,score_metro_st_min=20,tag=metro_needsInfo]
function metro:st-21 if @a[score_metro_st=21,score_metro_st_min=21,tag=metro_needsInfo]
function metro:st-22 if @a[score_metro_st=22,score_metro_st_min=22,tag=metro_needsInfo]
function metro:st-23 if @a[score_metro_st=23,score_metro_st_min=23,tag=metro_needsInfo]
function metro:st-24 if @a[score_metro_st=24,score_metro_st_min=24,tag=metro_needsInfo]
function metro:st-25 if @a[score_metro_st=25,score_metro_st_min=25,tag=metro_needsInfo]
function metro:st-26 if @a[score_metro_st=26,score_metro_st_min=26,tag=metro_needsInfo]
function metro:st-27 if @a[score_metro_st=27,score_metro_st_min=27,tag=metro_needsInfo]
function metro:st-28 if @a[score_metro_st=28,score_metro_st_min=28,tag=metro_needsInfo]
function metro:st-29 if @a[score_metro_st=29,score_metro_st_min=29,tag=metro_needsInfo]
function metro:st-30 if @a[score_metro_st=30,score_metro_st_min=30,tag=metro_needsInfo]
function metro:st-31 if @a[score_metro_st=31,score_metro_st_min=31,tag=metro_needsInfo]
function metro:st-32 if @a[score_metro_st=32,score_metro_st_min=32,tag=metro_needsInfo]
function metro:st-33 if @a[score_metro_st=33,score_metro_st_min=33,tag=metro_needsInfo]
function metro:st-34 if @a[score_metro_st=34,score_metro_st_min=34,tag=metro_needsInfo]
function metro:st-35 if @a[score_metro_st=35,score_metro_st_min=35,tag=metro_needsInfo]
function metro:st-36 if @a[score_metro_st=36,score_metro_st_min=36,tag=metro_needsInfo]
function metro:st-37 if @a[score_metro_st=37,score_metro_st_min=37,tag=metro_needsInfo]
function metro:st-38 if @a[score_metro_st=38,score_metro_st_min=38,tag=metro_needsInfo]
function metro:st-39 if @a[score_metro_st=39,score_metro_st_min=39,tag=metro_needsInfo]
function metro:st-40 if @a[score_metro_st=40,score_metro_st_min=40,tag=metro_needsInfo]
function metro:st-41 if @a[score_metro_st=41,score_metro_st_min=41,tag=metro_needsInfo]
function metro:st-42 if @a[score_metro_st=42,score_metro_st_min=42,tag=metro_needsInfo]
function metro:st-43 if @a[score_metro_st=43,score_metro_st_min=43,tag=metro_needsInfo]

 

Пример функции для станций

tellraw @a[score_metro_st=1,score_metro_st_min=1,tag=metro_needsInfo] ["",{"text":"1. Старый спаун","color": "yellow","clickEvent": {"action": "open_url","value": "#"},"hoverEvent": {"action": "show_text","value": "Нажми, чтобы посмотреть станцию на карте"}}]
scoreboard players set @a[score_metro_st=1,score_metro_st_min=1,tag=metro_needsUpdate] metro_st_l_0 0
scoreboard players set @a[score_metro_st=1,score_metro_st_min=1,tag=metro_needsUpdate] metro_st_l_1 0
scoreboard players tag @a[score_metro_st=1,score_metro_st_min=1,tag=metro_needsUpdate] remove metro_needsUpdate
scoreboard players tag @a[score_metro_st=1,score_metro_st_min=1,tag=metro_needsInfo] remove metro_needsInfo

 

Так как количества команд в КБ нас теперь не сильно волнует предлагаю, зациклить развязки то есть сделать так что бы пассажир катался по кругу пока не найдет свой съезд:

Спойлер

kOjHPf3.png

 

Сини блоки:

Север: 

/setblock ~ ~1 ~2 minecraft:rail 1

Восток:

/setblock ~-2 ~1 ~ minecraft:rail 10

Юг:

/setblock ~ ~1 ~-2 minecraft:rail 1

Запад:

/setblock ~2 ~1 ~ minecraft:rail 10

 

Дальше начинается самое сложное )

1.       У каждой развязки есть свой адрес (5 знаков от 0 до 3) например 23120

2.       Таким образом получается что развязка должна знать что у нее находиться рядом (пример)

Таблица:

Уровни/наппр.

север

восток

юг

Запод

0

L0-1

-

-

L0-3

1

L0-1

L1-1

L1-3

L0-3

2

L1-0

L2-1

L2-3

L0-3

3

L1-0

L2-1

L3-3

L2-0

4

L3-1

L4-1

L4-3

L3-3

 

Итого:

Развязка Север:

/execute @e[r=2,score_metro_st_l_0_min=1,score_metro_st_l_0=1,score_metro_st_l_1_min=0,score_metro_st_l_1=0,score_metro_st_l_3_min=1,score_metro_st_l_3=1] ~ ~ ~ setblock ~-2 ~1 ~ minecraft:rail 9

Это для четырех сторонних перекрестков.
минус:

у него нет информации о диагоналях  

Если пути в соседний квадрат нету его необходимо переназначить 

Может на проблему стоит взглянуть не со стороны станций а со стороны перегонов?

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


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

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

ф, почти все вкурил... за исключением автоматической генерации команд для (КБ)

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

 


 

Вопросики:

  1. В твоём варианте надо всё переделать? Хотя, переход на скрипты напрашивается сам )
  2. Насколько сложно продумывается настройка каждой развязки?
  3. Легко ли добавить новую станцию и чтобы на неё можно было поехать с любой станции? Основная суть идеи Чайника в том, чтобы при добавлении новой станции не переделывать каждую развязку, а только настроить одну новую (застопорились на автоматической генерации команд).

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


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

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

Вопросики:

  1. В твоём варианте надо всё переделать? Хотя, переход на скрипты напрашивается сам )
  2. Насколько сложно продумывается настройка каждой развязки?
  3. Легко ли добавить новую станцию и чтобы на неё можно было поехать с любой станции? Основная суть идеи Чайника в том, чтобы при добавлении новой станции не переделывать каждую развязку, а только настроить одну новую (застопорились на автоматической генерации команд).

Ответики:

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

2. Довольно сложно так как каждая развязка должна знать не только о там что находиться с ней рядом, но и иметь информацию о весе квадратах L0 и о ближайших квадратах своего уровня в котором она находиться, то есть l0-4, l1-4, l2-4, и т.д. 

3. Легко так как согласно п.2, все развязки знают верхний уровень и свои нижние подуровни, настраивать будет необходимо только ближайшую. 

 

Да тут сложно с авто генерацией команд так как не в каждом квадрате есть развязка и не в каждый квадрат ведет прямая дорого в некоторые квадраты вьезд например через другую сторону. Боюсь здесь получиться сложная модель с своими поправками и исключениями. 

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


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

@FoxSus
То есть, в принципе, ты хочешь сказать, что твоя система такая же универсальная, как у Чайника + такая же сложная (сложно продумывать настройку развязки)...
Но тогда в чём её отличия и преимущества? :)

 

 * не что надо сделать, а чем это лучше уже действующей системы на первых 6 станциях? По сути, мы лишь не хотели вручную мозговать каждую развязку + раньше не было скриптов.

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


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

@Admin

Я разве сказал что я придумал что то новое?

Я перевел ряд КБ на функции и добавил относительные координаты, суть маршрутизации осталось.

PS. сейчас не работает не одна станция! я так понимаю что не работает сам контролер.

PSS. а понимаю как хотел сделать авто генерацию Чайник, но пока в голову не приходит как сделать что бы не было ошибок. 

 

@Admin а можно мне посмотреть команды в КБ на развязки 3, что та она сильно глючит (

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


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

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

PS. сейчас не работает не одна станция! я так понимаю что не работает сам контролер.

Внимание всем!!
Метро работало всегда все 4 года - с лета 2013 года!!!
Кроме редких оговоренных отдельно на форуме случаев!!! :)

Запомните - всегда работало и сейчас работает!
Прям только что проверили и разбирались.

 

Но есть одно но!!!

Когда кто-то узнаёт, что метро не работает, никто не сообщает об этом на форуме в теме метро!
Я все 4 года очень пристально слежу за метро и все косяки быстро исправляю! 6 центральных станций работали всегда! Просто не все знали, что станцию... надо выбирать... представляете?
Не все знали, что работают только 6 станций...

Иногда, действительно, встречаются глюки, но мы их быстро решали.

 

Сегодня выяснилось, что метро не работает с начала июня... из-за того, что его просто не подключили во время переноса ЦНС...
Подключили, восстановили кучу поломок - по большей части проверили.

 

Спойлер

как только не ковыряют...

 

lSaoiBC.png

 

В 7/15/2017 в 15:48, Lady_Lava сказал:

не работает)))

сорри - подумал, что ты о ссылках на таблицы, про которые мы говорили...

 

 

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


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

оно к спауну, на моей памяти, меня ни разу не вернуло. вместо него возило к досе всегда и там у подъёма крутилось в кругу.

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


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

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

оно к спауну, на моей памяти, меня ни разу не вернуло. вместо него возило к досе всегда и там у подъёма крутилось в кругу.

Возможно, что-то не учли...
Надо будет потестить отдельно...

Когда проектировал и настраивал я с... не помню, с кем - то там маршрут по умолчанию всегда был на спаун.

Возможно, в новой системе что-то не так. Конкретно дорогу на спаун сегодня не тестил. @Rock_tea, можешь глянуть?

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


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

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

Возможно, что-то не учли...
Надо будет потестить отдельно...

Когда проектировал и настраивал я с... не помню, с кем - то там маршрут по умолчанию всегда был на спаун.

Возможно, в новой системе что-то не так. Конкретно дорогу на спаун сегодня не тестил. @Rock_tea, можешь глянуть?

это до июня было. я с тех пор в метро была только на лодке (долгая история)

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


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

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

 

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


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

Кажется, я писал, что метро накрылось. Вообще, да, у как минимум одной развязки сбита маршрутизация. И как раз из-за той самой проблемы, из-за которой до сих пор так ничего не переделано.

 

(На всякий случай, напоминание, как это было: для proof-of-concept я разводил эти 6 станций ручками, без помощи скриптов. После я попробовал применить скрипт маршрутизации, но, как видим, не прокатило. Вроде, я говорил, что все сломано. Если не говорил - побейте тапком)

 

До сих пор у меня еще не решен вопрос о том, работоспособна ли моя идея в принципе. Пока упираемся в образование петель (вагонетка едет с одной развязки на другую и обратно, так до бесконечности). Были идеи по изменению алгоритма маршрутизации, но до реализации пока руки не дошли.

 

P. S. А деление на пульт/контроллер/КБ в развязках и так был реализовано. Только еще до введения функций: в помещении ЦНС стоит огромный массив из примерно 44 * 4 КБ.

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


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

@RedTeapot я так понял что при создании скрипта ты наткнулся на проблему кратчайших маршрутизации? Может стоит рассмотреть создание  маршрутов спомощью Графоф а именно алгоритма Дейкстры?

или подумать как можно добавить "вес" разным маршрутам 

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


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

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

@RedTeapot я так понял что при создании скрипта ты наткнулся на проблему кратчайших маршрутизации? Может стоит рассмотреть создание  маршрутов спомощью Графоф а именно алгоритма Дейкстры?

или подумать как можно добавить "вес" разным маршрутам 

 

Эх, если б все было так просто... У нас уже есть графы и кратчайшие пути от всех станций ко всем (без весов - просто по наименьшему числу промежуточных узлов). Беда возникает при попытке провернуть маршрутизацию в одном графе (схема метро), руководствуясь другим графом (дерево квадрантов). Ранее в этом же топике, кажется, я описывал суть проблемы.

 

В целом, петли возникают тогда, когда кратчайший путь до станции назначения от развязки 1 (например) проходит через развязку 2, а от развязки 2 - через развязку 1. Тогда вагонетка начинает кататься туда-сюда, никуда не выбираясь.

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


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

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

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

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

 

Суть проблемы в том, чтобы не кодить каждую развязку ручками и допускать кучу ошибок из-за человеческого фактора, а генерить конкретные команды для конкретных кб автоматически.
Именно этим мы занимаемся вторую половину года работы над этой идеей :D

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

 

 


 

 

Естественно, вбивать команды и ставить кб нужно будет ручками для каждой развязки.

Хотя, можно покурить мкросы и закодить последовательность действий для однотипных развязок - на основе сгенерированных команд :D

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

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


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

Команды из кб, которые показывал @FoxSus
 

Спойлер

/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

Спойлер

/execute @p[x=-41,y=33,z=-99,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=2,score_metro_st_l_3_min=2] ~ ~ ~ setblock -43 33 -99 minecraft:rail 9

Спойлер

/execute @p[x=-47,y=33,z=-98,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_min=0,score_metro_st_l_2=1] ~ ~ ~ setblock -47 33 -96 minecraft:rail 8

Спойлер

/execute @p[x=-46,y=33,z=-92,r=2,score_metro_st_l_0_min=2,score_metro_st_l_0=3] ~ ~ ~ setblock -44 33 -92 minecraft:rail 7

 

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


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

@Lady_Lava Спасибо!

@RedTeapot А что это за плита под развилкой №3?

Спойлер

8AICxN8.png

 

Вот такая "Г" на 1.12 не работает:

Спойлер

jCmsrUs.png

Подскажи пожалуйста команды верные стоят в КБ (те которые сгенерировал скрипт? 

9 часов назад, RedTeapot сказал:

В целом, петли возникают тогда, когда кратчайший путь до станции назначения от развязки 1 (например) проходит через развязку 2, а от развязки 2 - через развязку 1. Тогда вагонетка начинает кататься туда-сюда, никуда не выбираясь.

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

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

1. да не важно где находиться станция ее можно прилепить с стороне развязки

2. само собой

3. при исполнении п.1 само самой отпадает 

 

Но суть не в этом а в маршрутах "В целом, петли возникают тогда, когда кратчайший путь до станции назначения от развязки 1 (например) проходит через развязку 2, а от развязки 2 - через развязку 1. Тогда вагонетка начинает кататься туда-сюда, никуда не выбираясь."

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


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

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

@RedTeapot А что это за плита под развилкой №3?

Вангую, что это некая предыдущая версия маршрутизации 2-летней давности от @StPlotnik (могу ошибаться).

 

 

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


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

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

Вангую, что это некая предыдущая версия маршрутизации 2-летней давности от @StPlotnik (могу ошибаться).

 

 

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

Добавлено:

Нужно скопировать команды и параметры КБ и выстроить их в линии (вниз).

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

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


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

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

Сколько всего археологический слоев там можно найти? ))

Под основными тоннелями - есть два технических тоннеля и гигантские помещения для дешифрации сигнала на развязках 2012-2014 годов, когда метро работало на двоичной системе кодирования сигнала :) 

 

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

 

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

Нужно скопировать команды и параметры КБ и выстроить их в линии (вниз).

Постараюсь найти время зайти и переделать.

Или @Rock_tea or @Lady_Lava помогут )

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


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

Про команды в КБ уже понятия не имею.

 

И @Admin был в принципе прав. То, что он написал, напрямую относится к этим петлям. Это исходит из реализации алгоритма маршрутизации, который лежит на GitHub.

 

И, в принципе, меня не интересовали/не интересуют пока конкретные команды и то, как они будут вбиты в КБ. На данном этапе речь все еще идет о теории. Как я уже несколько раз говорил, я все еще не уверен, что это вообще возможно (и не имеет ограничений/мы под эти ограничения не попадаем). Натыкать КБ, когда готова теория (= можно без проблем генерировать команды для каждой развязки) - не вопрос.

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


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

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

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×