Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Dismiss Notice

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

Discussion in 'Запросы на разработку плагинов' started by tipson, Nov 13, 2012.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Trophy Points:
    153
    Skype:
    T-oleg98
    Имя в Minecraft:
    Tipson
  7. Code

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

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

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

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

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

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

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

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

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

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

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

    Trophy Points:
    153
    Skype:
    T-oleg98
    Имя в Minecraft:
    Tipson
    Чуть чуть печально
     
  13. Автор темы
    tipson

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Trophy Points:
    63
    Skype:
    talk_jkor
    Имя в Minecraft:
    jkor_
    Да. Вообще самолеты круче, поймут те кто с ГК :good:
     
    Benseeley and smilesdc like this.

Share This Page