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

Плагин [MECH/FUN] ReActions - Что? Тогда? Иначе! [BukkitDev]

Тема в разделе "Релизы плагинов", создана пользователем fromgate, 16 июл 2013.

  1. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Легко:
    Для начала, делаем активатор, который запускает другие активаторы.
    Проверяем каждый новый активатор на соответствие глобальной переменной по арифметической прогрессии. Когда активатор выполняется, он добавляет к глобальной переменной одно значение. Когда будет новый цикл исполнения той группы активаторов, исполнится тот, значение переменной которого соответствует значению, которое установлено во флагах. Когда дойдёт до последнего - просто сбрасывать на то число, которое проверяется в первом активаторе.

    С задержками будет посложнее. Можно попробовать действие остановки таймера через несколько промежутков времени в активаторе, который идёт за требуемым.
    @fromgate
    Зачем делать акцент на версии, где я играю? Ведь, это же положительный опыт как для Вас, так и для других разработчиков. На версии 1.5.2 играет большинство игроков, которые просто не понимают как обновится. И это, пока что, лучшая аудитория для развития. Да и в чём проблема делать обновление и для старых версий, если наименования и значения событий не изменяются?
    А даже если и изменяются, почему бы не делать проверку на версию сервера, а далее уже использовать тот алгоритм, который поддерживает версия? Пусть это будет немного дольше, чем просто написать обнову, но за то Вы подаёте пример другим разработчикам, как действительно следует делать обновления.
    Сколько раз я находил хороший плагин, который просто не способен работать на старой версии из-за какого-то мелкого изменения типа новой точки? Казалось бы: один параметр, а использовать уже нельзя.

    Ну и плюс к крутости русской нации. Я не видел ни одного западного плагина, который бы смог заменить кучу других плагинов, стандартные возможности редстоуна и ещё улучшить их! Ваш плагин - лучшее для людей, которые умеют думать. Не останавливайтесь и покажите, что русские умеют не только бомбы делать :)
    27. В качестве локации можно указывать регион по координатам. Это хорошо. Ещё лучше, если можно было бы указывать регион, который будет "вычитаться" из начального. С помощью этого можно организовать мобов-боссов по всей карте без переписывания всего ядра! Это было бы реально круто :)
     
    Последнее редактирование: 7 дек 2014
  2. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    @Lyosha12
    Я заострил внимание на версии потому что было сказано следующее:
    По этой логике мне надо было просто сделать версию RA под 1.8, а всем кто хочет новый функционал - рекомендовать обновиться до 1.8. Выпускать отдельно версии плагина под 1.4.7 (на одном сервере под ReActions используют эту версию), под 1.5.2 и т.д. не хочется. Хочется чтобы одна версия работала под всеми более менее актуальными версиями сервера. А с этим, к сожалению, есть сложности. Так что возможно дальше "модульность" плагина будет расти.
     
  3. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    @fromgate, не сдавайтесь и идите к лучшему результату! :)
     
    Последнее редактирование: 7 дек 2014
  4. jwplaster

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

    Баллы:
    173
    Skype:
    jwplaster.smartworld
    Имя в Minecraft:
    QviNSteN
    @fromgate, как вариант:
    Делать обновления, но если версия не позволяет - просто блокировать доступ к новой части кода, чтобы не было ошибок. Это скомпилируется и запустится)
     
  5. mishkagrishka

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

    Баллы:
    78
    Мало тех, кто сидит на 1.8.
    Согласен, такой вариант всех устроит.

    Мне лично сейчас ReActions позволяет делать 99.9% того, что я придумываю :) И это радует.
     
  6. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    28. Возвращаемся к теме сохранения инвентаря. Расширение: переменный инвентарь!
    Суть так же, что и с переменными. Только гораздо круче. Действием предмет, что находится в руке, будет сохранятся в "личный инвентарь" игрока. Так можно делать до того момента, пока количество предметов не будет заполнять все 36 слотов инвентаря. Другим действием можно было бы выдавать весь этот комплект, что игрок сохранил. А так же возможность обнулять и удалять личные инвентари у всех или одного игрока.
    С "глобальными инвентарями" аналогично.
    Соответственно, если это "переменный инвентарь", то для каждого игрока он будет своим. И будет не один. :)

    Хранить это всё предлагаю в отдельной папке, где будет ещё 2 папки: личные и глобальные инвентари, в которых будут соответствующие файлы. И, может быть, потребуется функция совмещения разных инвентарей в одном файле.

    Данная структура будет наиболее удобная. Ну, можно и разделить просто на два файла. Но, тогда их размер будет расти даже не в геометрической, а в экспоненциальной прогрессии. И фиг их откроешь потом :D
    29. Всё чаще нужна "собирательная" функция переменных. То есть, нужно выполнить действие в активаторе, проверить активатором MESSAGE, что оно выполнено, задать переменную и вернуться к первому активатору.
    Знаю, что "вернуться к первому" нельзя, так как он уже отработал. Поэтому я просто его дублирую и проверяю результат на дубликате. Как следствие, нужна некая последовательность действий. Например: COMMAND-MESSAGE-COMMAND, чего добиться в одном конфиге нельзя.
     
  7. lero90

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

    Баллы:
    63
    А как спавнить мобов из модов?
     
  8. olegikoligik

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

    Баллы:
    88
    Я имел ввиду не совсем это. Просто не хотелось бы чтобы всё то время (которого по всей видимости - мало), которое вы можете потратить на улучшение плагина добавив новых активаторов или чего либо ещё, Вы тратили на его оптимизацию для старых версий, вместо того чтобы добавлять что-то новое. Этим я не хочу сказать что Вы что-то должны мне или кому то ещё. Вам решать чем заниматься в плагине и заниматься ли вообще.
    P.S. Не переходите пожалуйста на 1.8. Во-первых, себе работы добавите (вроде бы с кодом придётся поработать); во-вторых, 95% русского "трафика" сидит максимум на 1.7.9
     
  9. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Честно - не знаю. Я модами практически не пользовался, потому смутно там представляю как там всё работает. Подозреваю, что никак не получится...
    Моды командами спавнить мобов не позволяют? Можно было бы от имени консоли команду запускать.
     
  10. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    А можно ли будет создавать свои яйца призыва, используя неиспользуемые ID и имена яиц? Или же, пользоваться яйцами из EpicBoss? Например, спавнить босса в такой-то точке с параметрами из EpicBoss.
     
  11. TipoNakor

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

    Баллы:
    66
    Имя в Minecraft:
    TipoNakor
    Подскажите как можно сделать: когда игрок убивает 100 зомби у него будет получено достижение и будет написано только ему в чат, что он сделал достижение и в плагине chestcommands в отдельной вкладке меню достижений будет иконка, на которой будет написано вы еще не получили это достижение, для выполнения убейте 100 зомби и когда игрок убивает 100 зомби эта иконка поменяет название на выполнено и откроется новый товар в меню магазина, также в этом плагине chestcommands, подскажите как это осуществить ?
     
  12. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Никак. @fromgate,
    30. Активатор убийства мобов (не раз предлагали)
    31. Действие изменения конфигов других плагинов. Правда, вряд ли в chestcommands есть "личный инвентарь". Может, можно было бы организовать с помощью GUI и личных активаторов... Ну, Вы понимаете :D
     
    Последнее редактирование: 11 дек 2014
  13. TipoNakor

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

    Баллы:
    66
    Имя в Minecraft:
    TipoNakor
    Очень печально, а хотелось бы это всё сделать, придется доучивать Java и писать свой плагин
     
  14. olegikoligik

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

    Баллы:
    88
    С последней версией есть проблемы. Засыпает ошибками типа:
     
  15. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Версия WG какая? 0.9.4 по умолчанию работает с WG6.0. Выше написано как его запустить с WG5.x
     
    Последнее редактирование: 11 дек 2014
  16. olegikoligik

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

    Баллы:
    88
    А, всё отбой. Версия 5.9. Прошу прощения за свою невнимательность.
     
  17. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Новый ролик из серии "для самых маленьких", в смысле для начинающих ;)

     
  18. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Как всегда, @fromgate, упрощаете жизнь людям :)
    @fromgate, спасайте. Как-никогда нужно GUI-меню. Или я что-то не правильно писал, или несовместимость, как предполагали Вы. Ещё не проверили? :(
     
  19. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Дайте мне файлик где меню настроено. Я попробую разобраться.
     
  20. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Хорошо, сейчас быстренько создам ещё раз...
    Первый вариант:
    Код:
    EXEC:
      ExecTest:
        flags: []
        actions:
        - message=&7Тест 1
        reactions: []
    COMMAND:
      Test:
        command: cmd:test
        flags: []
        actions:
        - MENU_ITEM=size:9 title:{§0Магазин §5Quasar'a} slot1:Тест_1$3 exec1:ExecTest
        reactions: []
    Вариант с меню:
    Код:
    COMMAND:
      Test:
        command: cmd:test
        flags: []
        actions:
        - MENU_ITEM=menu:test
        reactions: []
    Само menu.yml
    Код:
    test:
      title: §0Магазин §5Qasar'a
      size: 9
      slot1:
        item: DIRT
        activator: ExecTest
    Оба не работают.
    32. Дополняю тему о активаторе, который бы срабатывал в определённом радиусе от точки. Можно сделать срабатывание относительно определённого блока в радиусе, по ID (и имени, если установленный блок сохраняет имя). Так же сделать три типа: нахождение в радиусе, вход в радиус и выход. (А активаторы региона можно было бы объединить в один, просто создав три подтипа).
    Ещё круче, если бы был и флаг такого активатора. Эдакий динамический радиус-регион.
     
    Последнее редактирование: 12 дек 2014

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