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

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

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

  1. Daniel576

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

    Баллы:
    88
    Куда более конкретно? Есть возможность работать с CustomNPС используя ReActions? Например реализовать фазы боссов. Сделать переменную кол-ва хп у N npc и если она упадет ниже N, то NPC сменяется на другого.
     
  2. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Такого нету. Даже в боссах через ReActions.
     
  3. Daniel576

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

    Баллы:
    88
    Была бы поддержка стал бы изучать как дополнение к CustomNPC. Было бы неплохо..
     
  4. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Самое время приступить. ReActions, думаю, будет "полностью" завершён, когда можно будет на любое событие подписать активатор. Однако, нельзя забывать и про работу с другими плагинами :)
     
  5. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    @Daniel576
    CustomNPC вряд ли будет поддерживаться в ближайшее время. Это мод, а я к ним отношусь с предубеждением.
    Как тестировали? Смерть "от чего" приключалась?
     
  6. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Падение. Кстати, а почему бы не разделить на большее количество типов смертей? Лава, падение, удушье.. И лёгкая версия плагина DeathMessage готова! Хотя, сравнивать ReActions с таким "популярным" плагином - грех :D
    @fromgate, я предлагаю включить в наборы предметов возможность выполнять действия. Для выдачи денег, вывода сообщения и т.д. Удобненько получилось бы.
    Хорошо было бы сделать возможность выбирать время проверки региона по формату CRON. А в конфиге указать только устанавливаемое значение по-умолчанию, если соответствующий параметр при создании активатора REGION не был задан.
    Действие REGION_CLEAR можно было бы разнообразить не только одним типом локации...
    Ещё хотелось бы отключать для игрока возможность получения разнообразного урона. Действием, на время, навсегда, а так же способ отключить отключение урона :D
    В общем, пробела не должно было быть:
    Код:
      Parkour-AntiTP-Command-TP|TP2P|TELEPORT|TPO-PLAYER:
        override: false
        regex: true
        command: (?i)(TP|TP2P|TELEPORT|TPO) \w+
        flags:
        - FLAG_SET=PERM:essentials.tp PERM:essentials.tpo
        actions:
        - var_set=id:Parkour-TP-Donater value:%player%
        - execute=activator:Exec-Parkour-AntiTP-Test-To_TP_Player player:%arg2%
        - message=%arg2%
        reactions: []
    

    @fromgate, есть разница в нагрузке между одним активатором COMMAND на регулярке и сотней COMMAND, выполняющих ту же функцию без регулярки?
    upload_2015-7-10_1-48-41.png
    Для создания импровизированных списков может потребоваться плейсхолдер количества действий\флагов\реакций в активаторе.
    А вот теперь целые значения выводятся целыми, спасибо! :)
    Используя этот активатор, сами команды телепорта перестали работать, когда в actions есть хоть одно действие, даже если нету cancel_event:
    Код:
    COMMAND:
      Parkour-AntiTP-Command-TP-TP2P-TELEPORT-TPO-PLAYER:
        override: false
        regex: true
        command: (?i)((TP|TP2P|TELEPORT|TPO) \w+)|(marry tp)
        flags:
        - FLAG_SET=PERM:essentials.tp PERM:essentials.tpo
        actions:
        - var_set=id:Parkour-TP-Donater value:%player%
        - execute=activator:Exec-Parkour-AntiTP-Test-To_TP_Player player:%arg1%
        reactions: []
    

    Появилась парочка идей, для которых нужен флаг локации игрока. То есть, находится ли игрок в заданной локации?
     
    Последнее редактирование: 10 июл 2015
  7. Astrogen

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

    Баллы:
    76
    Имя в Minecraft:
    Astrogen
    Строка такая

    - MOB_SPAWN=type:zombie name:{&6Черный житель} radius:3 helm:{type:LEATHER_HELMET color:BLACK} drop:set1:{item1:GOLDEN_APPLE chance:10} set2:{item1:322:1 chance:1} set3:{item1:APPLE chance:20} set4:{item1:EXP_BOTTLE chance:20} set5:{item1:AIR chance:49}


    Дроп должен быть такой: 10% - золотые яблоки, 1% - зачаренное яблоко, по 20% - яблоки и бутыли с опытом, остальное - пусто.
    По факту: сыпятся только золотые яблоки
    Spigot 1.8.7.
    Баг или фича? :)
    Спасибо.
     
  8. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    @Astrogen, в фигурные скобки возьми
     
  9. Astrogen

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

    Баллы:
    76
    Имя в Minecraft:
    Astrogen
    Делал уже. брал все, что за словом DROP: в фигурные скобки. Получил на выходе в дроп - мертвечину и постоянную ошибку в логи.
     
  10. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Воздух уберите. Думаю, что из-за него
     
  11. Astrogen

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

    Баллы:
    76
    Имя в Minecraft:
    Astrogen
    Переписал все заново - все заработало. Какая-то синтаксическая ошибка, видимо, глаз замылен. Воздух - не мешает. Спасибо большое.
     
  12. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Ну как бы разница есть. Только проерка команды осуществляется в момент её написания. Т.е. это не регулярное событие и разница в нагрузке ничтожна.


    Перезалил новую версию. Возможно с ней будет лучше ;)

    Ага, хорошая мысль. Туда же можно (в перспективе) добавить параметры на проверку нахождения игрока в кубоиде, регионе, фракции, городе и т.п.
    0.9.5/20
    Исправил. Остался кусок кода от PVP_RESPAWN - в итоге PLAYER_RESPAWN срабатывало только при PVE и PVP
    http://adf.ly/1K0nlW
     
    Последнее редактирование: 10 июл 2015
  13. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Никак нет:
    Код:
    COMMAND:
      Parkour-AntiTP-Command-TP-TP2P-TELEPORT-TPO-PLAYER:
        override: false
        regex: true
        command: (TP|TP2P|TELEPORT|TPO) \w+
        flags:
        - FLAG_SET=PERM:essentials.tp PERM:essentials.tpo
        actions:
        - message=Команда временно выключена. [Lyosha12]
        reactions: []
    

    В плагине weed возможно отключать самые разнообразные типы урона. Это очень помогло бы, если только использовать это не рандомно, как там, а целенаправленно.
     
    Последнее редактирование: 10 июл 2015
  14. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    @Lyosha12
    Отключение команды вроде исправил. Качать оттуда же.

    По поводу урона. Оставлю для будущего. Это новые активаторы и дополнительная возня с типами уронов.
     
  15. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Да, теперь нормально. Спасибо! :)
    @fromgate, можно ли использовать глобальную переменную в действиях так, чтобы она могла создавать действия при запуске активатора? Я имею в виду вот что: при создании чек-поинтов нужно несколько десятков раз в разных активаторах прописывать одно и то же.

    Можно ли ужать этот процесс и место, используя константу, в которой содержатся нужные строки? Так же, в случае ошибки, приходится исправлять всё вручную. А, используя константу, одна правка - и всё отлично.
    @fromgate, пишу в КБ (v.21): ra run activator:Activator-EXEC-6-Test player:{region:rg-test} - никакой реакции. Пишу только один параметр - есть реакция.
     
    Последнее редактирование: 11 июл 2015
  16. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Попробуй прописать команду в переменную и подставить вместо действия. Удалить её нельзя будет, но заменить на пустое - можно.

    Если переменные работают для подстановки параметров, то почему бы не сработать для всего действия.


    Исправил, перезалил
     
  17. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    @fromgate, локация есть, активатор есть
    Код:
      Activator-EXEC-7-Test:
        flags: []
        actions:
        - MESSAGE=&r
        - MESSAGE=&c          [&e▼&c]&3-----------------------------------&c[&e▼&c]
        - MESSAGE=Все примеры и способы указания на локацию можно посмотреть здесь:&e http://reactions.fromgate.ru/locationformat.htm
        - MESSAGE=&r
        - MESSAGE=Локации, способы их создания и указания мы рассмотрим уже в другом активаторе.
        - MESSAGE=&r
        - MESSAGE=Скажу только, что параметр запуска этого активатора - локация с радиусом - может быть указана без радиуса. С радиусом, как видите, локация (один куб ног игрока) расширяется до квадрата.
        - MESSAGE=&r
        - MESSAGE=Возвращайтесь к столбу и продолжим изучение &bEXEC&r'a.
        reactions: []
    
    Но команда из КБ не работает даже без селектора player:
    ra run activator:Activator-Exec-7-Test loc:Activator-Exec-7-Test radius:3

    А в папке активаторов создалась ещё одна с бекапом группы про EXEC'и...
     
  18. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    @Lyosha12
    там сейчас переделано на селектор, радиус отдельно не распознается.
    Т.е. фактически он видит радиус - 1.
    При этом, если описать вот так: player:{loc:{loc:Локация radius:Радиус}} работать будет.
    Но мне это не нравится, добавлю всё-таки возможность указывать радиус "выше".
    Т.е. так: player:{loc:Локация radius:Радиус}

    Кроме того, решил (давно хотел) трансформировать команду /react run в одну команду (старая останется для совместимости). Это будет команда /exec <ActivatorId> [player:<Player>] [delay:<Time>]
     
  19. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    В принципе, следуя канонам жанра, все команды любых плагинов начинаются с их сокращённого названия. Я всё же против нарушения таких канонов, так как, во-первых, это означало бы принадлежность команды к какому-то плагину "exec", а, во-вторых, сбивало бы с толку тех, кто только начинает жизнь в майне. Впрочем, не мне решать :D
    Так, значит, можно всё-таки указать несколько локаций одновременно? Это же хорошо! Не надо тогда ничего менять! :)
    Но так не работает во втором случае :( (хотя, и не должно. Регион же не описывался как локация изначально...)
    ra run activator:Activator-Exec-7-Test player:{loc:{loc:Activator-Exec-7-Test radius:3} loc:{region:rg-test}}
    Однако, написав так
    ra run activator:Activator-Exec-7-Test player:{loc:{loc:Activator-Exec-7-Test radius:3} region:rg-test}
    Мы получаем "или". А как можно создать "и"?
     
  20. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    @Lyosha12
    Нет, несколько локаций указать нельзя. Если сделать loc:{region:<регион>} то возьмется какая-то случайная локация из указанного региона.

    Залил девбилд с командой /exec и ловлей радиуса на более "высоком" уровне.

    Вообще селектор игроков как раз работает по принципу "и".
    Т.е. если указать:
    player:{player:fromgate loc:world,20,20,20 radius:10 region:rg-test}
    то это список будет включать игрока fromgate и всех остальных которые описаны названием региона и локацией с радиусом.
     

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