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

  • Автор темы Автор темы tipson
  • Дата начала Дата начала
Опять велосипедоизобретатели... вы просто повсюду...
Если смотреть на это как на плагин - реализовано более-менее в FalseBook\CraftBook.
Отдельного внимания по этому поводу заслуживает мод для MCPC_Bukkit Railcraft
Извините где вы видели в выше перечисленном автоматический поиск оптимального расстояния до определенной точки?
 
во около полугода назад искал тоже самое только чтобы кнопкой нажал,
какую станцию надо,
выехала вагонетка простояла 10 сек и поехала в определенную станцию
Ребят, элементарно.

Ставим раилкрафт, если расстояние больше 3-5 чанков от игрока(Ну я не знаю сколько там в среднем от игрока подгружается), то ещё можно присобачить тележку с якорем, а в идеале и увеличить число тележек в сцепке, затем, на станциях делаем так:

Ставим в начале пути, на который должен прибывать состав нажимной релься, под самими рельсями ведём какой нибудь редстоун провод, тобишь, вовремя проезда состава - подаётся сигнал, ведём его прям под рельсями, на репиторы, там выставляем нужно нам число. (Два повторителя с задержкой в 0.4с и один в 0.2 = получим секунду, либо в случае если есть RP2, можно реализовать либо репитарами от туда, либо схемой с таймером и тумблером), после чего, пока сигнал ещё идёт, состав наезжает на де-активированный ускоряющий рельс - останавливается, через n времени, наш сигнал проходит и подаёт сигнал на ускоряющий рельс - состав трогается.
Стоит учесть ещё две вещи:
1. Если вам нужно что бы состав простоял 10 секунд, берите чуть больше ибо какое-то кол-во времени он ещё будет в пути после активации рельса.
2. В идеале, сигнал на второй рельс нужно сделать более продолжительным, ибо есть вероятность того что часть вагонеток уйдёт, а на последней он де-активируется и состав остановиться, хотя вероятность крайне мала.
 
Извините где вы видели в выше перечисленном автоматический поиск оптимального расстояния до определенной точки?
Есть ещё такая мысль... В майне 1.4.5 вещам можно давать свои названия, что если допустим брать книжку, называть её именем станции, класть впереди идущую вагонетку, с сундуком, а по пути расставлять детекторы с фильтрами. Вроде как такое делать можно. Тобишь если в вагонетке лежит книжка с название "Нижняя залупка", то при проезде детектора, в котором стоит одноимённый фильтр, будет срабатывать стрелка и состав будет благополучно уезжать в нижнюю залупку.
PS: Так же, стоит ставить задержку сигнала, что бы весь состав успевал проходить, до того как стрелка вернётся в исходное положение.
 
редстоун вполне справляется с таким родом задач в RailCraft, ну а если делать это на уровне плагина с высокоуровневым AI... вы хоть представляете количество расчётов которое будет нужно например для определения между 4 полосами и определения дорожек между ними? А-ля добро пожаловать в кружок анонимных писателей на ассемблере.

Возьму тот же пример из расчета банального патчфайндинга(поиска пути) для сервера Lineage - нечто схожее там является функцией модуля геодаты и просчитывается гигабайтами файлов с огромной нагрузкой - всё это пишется там далеко не первый год и люди платят за качественную гео там тысячи рублей. Масштаб майнкрафта конечно не тот как на Java платформе Lineage, но всё же.
О да, теперь рассчет наикратчайшего пути называется высокоуровневым AI.
Насчет Lineage ничего не знаю, но в других играх это делается очень быстро и без какой-либо нагрузки.
Для RTS поле делится на мелкую сетку, а дальше обычно путь ищется волновым алгоритмом (он прост как три копейки)
Для 3D движков рассчет проводится по другим алгоритмам, но частично все пути уже заложены в карту.
Все алгоритмы придуманы не криворукими школьниками и очень хорошо оптимизированы. Применить их конкретно к задаче поиска жд путей никто не мешает. Разве что потребуется перенести нужный алгоритм на Java и применить к игровым элементам.
Или думаете, что настоящий плагин должен содержать всего пару строчек кода? Зря, зря, зря.. В руках разработчика находится весь JDK, который можно применять в полную силу. Стоит сперва применить свой мозг, прежде чем так слепо оценивать масштабы рассчетов. JRE - вполне гибкий, оптимизированный и быстродействующий инструмент. Возьмем, к примеру PathFinder, который уже реализован в майнкрафте. Зомби быстро рассчитывают, как найти игрока. А алгоритм там очень сложный, ибо рассчитывается разная высота, препятствия (лава, двери, заборы, огонь). Сервер виснет, когда зомби энгрится?
Теперь по делу:
Волновой алгоритм рассчитан на поиск пути в графе с ребрами единичной длины. По поводу быстродействия..
Вот что будет, если рассчитывать путь между точками, разделенными стенкой:
Astar_progress_animation.gif

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

Я поддерживаю разработку подобных плагинов, особенно, если они open-source. Даже, если аналогичный плагин уже существует - это не значит, что работа не принесет пользы. Если плагин доработать с умом (например, сделать приват жд и остановок, встроить Vault API и может даже алгоритм авто-прокладки дороги) - он разнесет в клочья всех конкурентов.

Если кто-то возьмется за такой плагин - я готов помочь в разработке с методами оптимизации. Сам браться в ближайшее время не буду - ибо на мне весят еще 2 других незаконченных плагина.
 
а нельзя составить схему для плагина из развилок и станций. указать, что с чем соединено и там же указать длину этого пути. потом искать кратчайшее расстояние от а до б по алгоритму дейкстры, а на развилках направлять вагонетку не по положению рельс, а так, как нам надо. останется построить метро и вбить все в базу.
 
а нельзя составить схему для плагина из развилок и станций. указать, что с чем соединено и там же указать длину этого пути. потом искать кратчайшее расстояние от а до б по алгоритму дейкстры, а на развилках направлять вагонетку не по положению рельс, а так, как нам надо. останется построить метро и вбить все в базу.
Вы предлагаете сразу вбить в базу путь от точки до точки?
 
Вы предлагаете сразу вбить в базу путь от точки до точки?
нет, вбить все ключевые точки и то, как они соединяются. а когда надо ехать, то ищется
кратчайшее расстояние от а до б по алгоритму дейкстры
можно, как на гринкубсе, просто писать, куда ехать и просто ехать на вагонетке. а на ключевых точках сервак будет вычислять, куда повернуть, по тому же алгоритму.
 
Можете ли вы это сделать?
 
О чем идет речь?
Идея в том что бы сделать авто поиск оптимального расстояния из пункта A в пункт В и все это при том,что железная дорога пересекается много раз

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



Для чего это нужно?
Этот плагин требуется что бы сделать единую систему метро(связанных железной дорогой)
и для удобного перемещения по миру без варпов,спавнов и т.д
Хах на сервере GreenCubes Такая фича. Там пишешь /go станция бьёшь табло появляется вагонетка садишся и едешь!
 
Хах на сервере GreenCubes Такая фича. Там пишешь /go станция бьёшь табло появляется вагонетка садишся и едешь!
Ну не слышал о таком,точнее слышал,но не играл.Факт остаётся фактом такого плагина в паблике нету...
Возрождение идеи!
 
Можно сделать вот так: Есть 9 станций (пример), соединенных непрерывным путем, но на повороте на каждую станцию есть развилки. На каждой станции есть табло с 8-ю табличками, на них название остальных 8 станций. По клике на табличку на рельсе с поворотом на соответствующую станцию подается сигнал. Т.е. железная дорога свернет на нужную нам станцию и мы доедем без проблем. Также мы можем сделать систему со спавном вагонетки в определенное время.
Также метро можно сделать с плагином ReAction. В определенное время спавнится вагон. Если ты встанешь на рельсы, то тебя убъет.
fromgate сказал(а):
Всё достаточно просто.

1. Создаешь регион WorldGuard, допустим car1
2. Создаешь активатор REGION:
/react add region cartp1 car1
3. Перемещаешься в точку, в которую нужно телепортироваться. Привязываешь к региону shiptp1 действие:
/react add cartp1 a tp loc:%here%

Всё. Теперь если игрок зайдёт в регион его сразу телепортирует.
Но можно расширить.
Допустим, нужно сделать платный телепорт. Цена - 3 алмаза и его нужно держать в руках:

4. Создаем флаг проверяющий есть ли в руках алмаз:
/react add cartp1 f item DIAMOND*3
5. Создаем действие на изъятие алмазов
/react add cartp1 a item_remove DIAMOND*3
6. Пишем сообщение о том, что нужны алмазы для поездки (если в руках их нет). Добавляем противодействие - message
/react add shiptp1 a message &4Бензин нынче дорог! Проезд стоит три алмаза!

А если мы хотим сделать отправление в определенное время?
7. Добавляем ещё один флаг - проверку времени:
/react add cartp1 f time 10,11,12,13,14,15
8. Добавляем сообщение /react add cartp1 a message &4Бензин нынче дорог! Проезд стоит три алмаза! Время отправления %time%. Текущее время %curtime%
9. Убираем предыдущий вариант сообщения
/react remove cartp1 f 1

Вообще удобнее редактировать файл activators.yml и потом перегружать его командой /react reload
 
как по мне, самый оптимальный вариант создания метро, как на ГК, описание того, как там создаётся метро - https://forum.greencubes.org/viewtopic.php?f=195&t=20590 <-- никакой рекламы, не подумайте.
и таки да, было-бы великолепно, если кто-то сделает такой плагин. уверен, пару людей (например, я) подарят автору денежек в качестве "спасибо за труд!".
 
Последнее редактирование:
@Benseeley, поддерживаю, в долгу не останемся...
Будем ждать такого человека...
 
Benseeley, прав, но как это реализовать? На ГК не за день делалось, наверное.
 
Benseeley, прав, но как это реализовать? На ГК не за день делалось, наверное.
ага... большую часть метрострой продумывал систему, далее за месяц с обновлениями администрация всё добавила. ИМХО, из этой системы лучше взять только способ построения метро, и то немного переделать, дабы не нарушать авторское право (а нарушать его - ужасно).
 
ага... большую часть метрострой продумывал систему, далее за месяц с обновлениями администрация всё добавила. ИМХО, из этой системы лучше взять только способ построения метро, и то немного переделать, дабы не нарушать авторское право (а нарушать его - ужасно).
Да. Вообще самолеты круче, поймут те кто с ГК 👍
 
Назад
Верх