Идея Система жд путей

  • Автор темы Автор темы tipson
  • Дата начала Дата начала

tipson

Старожил
Пользователь
Баллы
153
Имя в Minecraft
Tipson
О чем идет речь?
Идея в том что бы сделать авто поиск оптимального расстояния из пункта A в пункт В и все это при том,что железная дорога пересекается много раз

Как это работает?
Вы устанавливаете например табличками начало и конец пути то есть начало пункта А и конец пункта В заранее вводя название станции,а потом во время нахождения тела в тележки вы можете ввести команду /команда <пункт назначения>



Для чего это нужно?
Этот плагин требуется что бы сделать единую систему метро(связанных железной дорогой)
и для удобного перемещения по миру без варпов,спавнов и т.д
 
О чем идет речь?
Идея в том что бы сделать авто поиск оптимального расстояния из пункта A в пункт В и все это при том,что железная дорога пересекается много раз

Как это работает?
Вы устанавливаете например табличками начало и конец пути то есть начало пункта А и конец пункта В заранее вводя название станции,а потом во время нахождения тела в тележки вы можете ввести команду /команда <пункт назначения>



Для чего это нужно?
Этот плагин требуется что бы сделать единую систему метро(связанных железной дорогой)
и для удобного перемещения по миру без варпов,спавнов и т.д
Был похожий плагин. Там поезд вагонеток ездил по 1 маршруту, сам останавливался на остановках.
 
Самое главное то,что нужно из множества путей найти тот который тебе нужен.
 
Вы бы лучше сказали возможно ли сделать такой плагин?
 
На гринкубсе такое реализовано и сделать такой плагин не очень тяжело, больше возни с тем, что например если есть развилка из путей, как вагонетке выбирать именно тот путь, куда нужно, допустим если едет 2 человека сразу, то второй может случайно повернуть за тем, куда поехал первый и т.п. Много проблем.
 
На гринкубсе такое реализовано и сделать такой плагин не очень тяжело, больше возни с тем, что например если есть развилка из путей, как вагонетке выбирать именно тот путь, куда нужно
Например, ставить таблички рядом, с определённым текстом, или проверять на каком блоке стоит рельсо (развилки делать на определённых блоках).
допустим если едет 2 человека сразу, то второй может случайно повернуть за тем, куда поехал первый .
Интервал сделать,в 5 сек. Например:
Вася и Ваня одновременно подали заявку, Вася подал первым - едет сразу, Ваня через 5 сек. Пока проходили эти 5 сек ожидания подал заявку Эдик, он едет через 5 сек после отправки Вани.
 
Например, ставить таблички рядом, с определённым текстом, или проверять на каком блоке стоит рельсо (развилки делать на определённых блоках).
Интервал сделать,в 5 сек. Например:
Вася и Ваня одновременно подали заявку, Вася подал первым - едет сразу, Ваня через 5 сек. Пока проходили эти 5 сек ожидания подал заявку Эдик, он едет через 5 сек после отправки Вани.
Это для сервера нагрузочка... + по таймеру, при каждом отъезде игрока.
 
Тогда вот моя идея:
На остановке стоит табличка с названием остановки. От остановки отходит жд путь до других остановок, возможно даже с развилками.
Игрок нажатием на кнопку/табличку выбирает пункт назначения и едет садится в вагонетку.
Поиск остановок производится так: составляется цепочка из блоков рельс, и если на пути найдется остановка - она добавляется в список доступных и запоминается маршрут к ней.
Когда игрок сел в вагонетку, той придается скорость движения в нужную сторону.
Как быть с развилками: переключать, если игрок наехал на нее. В случае, если несколько игроков едут к развилке одновременно, один уступает дорогу.
Столкновения игнорировать. Пусть проезжают сквозь друг друга.
Если вдруг рельсы кончились или сломались - производим рассчет снова

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

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

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

Не обещаю, что возьмусь за ее реализацию.
 
вопрос теперь в реализации)))
 
Это для сервера нагрузочка... + по таймеру, при каждом отъезде игрока.
Да как минимум будут задержки чанков даже при маленьком онлайн. Но создай этот плагин и что будет если на сервере будет онлайн в 100 чел ? ну во первых сервер будет постоянно падать,во вторых будут задержки, будет и будет нереально лагать, ну в принципе если на машине 6 гб это не страшит, но будет производится существенная нагрузка на процессор.
 
Тогда вот моя идея:
На остановке стоит табличка с названием остановки. От остановки отходит жд путь до других остановок, возможно даже с развилками.
Игрок нажатием на кнопку/табличку выбирает пункт назначения и едет садится в вагонетку.
Поиск остановок производится так: составляется цепочка из блоков рельс, и если на пути найдется остановка - она добавляется в список доступных и запоминается маршрут к ней.
Когда игрок сел в вагонетку, той придается скорость движения в нужную сторону.
Как быть с развилками: переключать, если игрок наехал на нее. В случае, если несколько игроков едут к развилке одновременно, один уступает дорогу.
Столкновения игнорировать. Пусть проезжают сквозь друг друга.
Если вдруг рельсы кончились или сломались - производим рассчет снова

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

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

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

Не обещаю, что возьмусь за ее реализацию.
Было бы не плохо,если бы ты взялся
 
Назад
Верх