Хостинг серверов Minecraft playvds.com
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

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

Тема в разделе "Запросы на разработку плагинов", создана пользователем tipson, 13 ноя 2012.

  1. Автор темы
    tipson

    tipson Старожил Пользователь

    Баллы:
    153
    Skype:
    T-oleg98
    Имя в Minecraft:
    Tipson
    Извините где вы видели в выше перечисленном автоматический поиск оптимального расстояния до определенной точки?
     
  2. Хостинг MineCraft
    <
  3. 512GHz

    512GHz Старожил Пользователь

    Баллы:
    123
    Ребят, элементарно.

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

    Ставим в начале пути, на который должен прибывать состав нажимной релься, под самими рельсями ведём какой нибудь редстоун провод, тобишь, вовремя проезда состава - подаётся сигнал, ведём его прям под рельсями, на репиторы, там выставляем нужно нам число. (Два повторителя с задержкой в 0.4с и один в 0.2 = получим секунду, либо в случае если есть RP2, можно реализовать либо репитарами от туда, либо схемой с таймером и тумблером), после чего, пока сигнал ещё идёт, состав наезжает на де-активированный ускоряющий рельс - останавливается, через n времени, наш сигнал проходит и подаёт сигнал на ускоряющий рельс - состав трогается.
    Стоит учесть ещё две вещи:
    1. Если вам нужно что бы состав простоял 10 секунд, берите чуть больше ибо какое-то кол-во времени он ещё будет в пути после активации рельса.
    2. В идеале, сигнал на второй рельс нужно сделать более продолжительным, ибо есть вероятность того что часть вагонеток уйдёт, а на последней он де-активируется и состав остановиться, хотя вероятность крайне мала.
     
  4. 512GHz

    512GHz Старожил Пользователь

    Баллы:
    123
    Есть ещё такая мысль... В майне 1.4.5 вещам можно давать свои названия, что если допустим брать книжку, называть её именем станции, класть впереди идущую вагонетку, с сундуком, а по пути расставлять детекторы с фильтрами. Вроде как такое делать можно. Тобишь если в вагонетке лежит книжка с название "Нижняя залупка", то при проезде детектора, в котором стоит одноимённый фильтр, будет срабатывать стрелка и состав будет благополучно уезжать в нижнюю залупку.
    PS: Так же, стоит ставить задержку сигнала, что бы весь состав успевал проходить, до того как стрелка вернётся в исходное положение.
     
  5. DPOH-VAR

    DPOH-VAR Старожил Пользователь

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

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

    Если кто-то возьмется за такой плагин - я готов помочь в разработке с методами оптимизации. Сам браться в ближайшее время не буду - ибо на мне весят еще 2 других незаконченных плагина.
     
    Gentalion, arhin, Dr.Death и 3 другим нравится это.
  6. Автор темы
    tipson

    tipson Старожил Пользователь

    Баллы:
    153
    Skype:
    T-oleg98
    Имя в Minecraft:
    Tipson
  7. Code

    Code Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    _Gizmo
    а нельзя составить схему для плагина из развилок и станций. указать, что с чем соединено и там же указать длину этого пути. потом искать кратчайшее расстояние от а до б по алгоритму дейкстры, а на развилках направлять вагонетку не по положению рельс, а так, как нам надо. останется построить метро и вбить все в базу.
     
    slavik123123123 и tipson нравится это.
  8. Автор темы
    tipson

    tipson Старожил Пользователь

    Баллы:
    153
    Skype:
    T-oleg98
    Имя в Minecraft:
    Tipson
    Вы предлагаете сразу вбить в базу путь от точки до точки?
     
  9. Code

    Code Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    _Gizmo
    нет, вбить все ключевые точки и то, как они соединяются. а когда надо ехать, то ищется
    можно, как на гринкубсе, просто писать, куда ехать и просто ехать на вагонетке. а на ключевых точках сервак будет вычислять, куда повернуть, по тому же алгоритму.
     
  10. Автор темы
    tipson

    tipson Старожил Пользователь

    Баллы:
    153
    Skype:
    T-oleg98
    Имя в Minecraft:
    Tipson
    Можете ли вы это сделать?
     
  11. Code

    Code Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    _Gizmo
    могу ли я? возможно, если возьмусь, получится. но у меня не так много времени, и я просто не хочу)
     
  12. Автор темы
    tipson

    tipson Старожил Пользователь

    Баллы:
    153
    Skype:
    T-oleg98
    Имя в Minecraft:
    Tipson
    Чуть чуть печально
     
    ВремяПриключений, arhin и Alastar нравится это.
  13. Автор темы
    tipson

    tipson Старожил Пользователь

    Баллы:
    153
    Skype:
    T-oleg98
    Имя в Minecraft:
    Tipson
    Хотя нет это самая печальная новость за эту неделю...
     
  14. NERONEKITKA

    NERONEKITKA Активный участник

    Баллы:
    68
    Имя в Minecraft:
    ZCFC
    Хах на сервере GreenCubes Такая фича. Там пишешь /go станция бьёшь табло появляется вагонетка садишся и едешь!
     
  15. Автор темы
    tipson

    tipson Старожил Пользователь

    Баллы:
    153
    Skype:
    T-oleg98
    Имя в Minecraft:
    Tipson
    Ну не слышал о таком,точнее слышал,но не играл.Факт остаётся фактом такого плагина в паблике нету...[DOUBLEPOST=1385128387,1358418384][/DOUBLEPOST]Возрождение идеи!
     
  16. FedorNogopletov

    FedorNogopletov Старожил Пользователь

    Баллы:
    173
    Можно сделать вот так: Есть 9 станций (пример), соединенных непрерывным путем, но на повороте на каждую станцию есть развилки. На каждой станции есть табло с 8-ю табличками, на них название остальных 8 станций. По клике на табличку на рельсе с поворотом на соответствующую станцию подается сигнал. Т.е. железная дорога свернет на нужную нам станцию и мы доедем без проблем. Также мы можем сделать систему со спавном вагонетки в определенное время.
    Также метро можно сделать с плагином ReAction. В определенное время спавнится вагон. Если ты встанешь на рельсы, то тебя убъет.
     
    tipson нравится это.
  17. Benseeley

    Benseeley Старожил Пользователь

    Баллы:
    123
    как по мне, самый оптимальный вариант создания метро, как на ГК, описание того, как там создаётся метро - https://forum.greencubes.org/viewtopic.php?f=195&t=20590 <-- никакой рекламы, не подумайте.[DOUBLEPOST=1385284500,1385284370][/DOUBLEPOST]и таки да, было-бы великолепно, если кто-то сделает такой плагин. уверен, пару людей (например, я) подарят автору денежек в качестве "спасибо за труд!".
     
    Последнее редактирование: 24 ноя 2013
    JKor и tipson нравится это.
  18. Автор темы
    tipson

    tipson Старожил Пользователь

    Баллы:
    153
    Skype:
    T-oleg98
    Имя в Minecraft:
    Tipson
    @Benseeley, поддерживаю, в долгу не останемся...[DOUBLEPOST=1385284934,1385284859][/DOUBLEPOST]Будем ждать такого человека...
     
    Сникерсни нравится это.
  19. JKor

    JKor Активный участник Пользователь

    Баллы:
    63
    Skype:
    talk_jkor
    Имя в Minecraft:
    jkor_
    Benseeley, прав, но как это реализовать? На ГК не за день делалось, наверное.
     
  20. Benseeley

    Benseeley Старожил Пользователь

    Баллы:
    123
    ага... большую часть метрострой продумывал систему, далее за месяц с обновлениями администрация всё добавила. ИМХО, из этой системы лучше взять только способ построения метро, и то немного переделать, дабы не нарушать авторское право (а нарушать его - ужасно).
     
  21. JKor

    JKor Активный участник Пользователь

    Баллы:
    63
    Skype:
    talk_jkor
    Имя в Minecraft:
    jkor_
    Да. Вообще самолеты круче, поймут те кто с ГК :good:
     
    Benseeley и smilesdc нравится это.

Поделиться этой страницей