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

Куда более конкретно? Есть возможность работать с CustomNPС используя ReActions? Например реализовать фазы боссов. Сделать переменную кол-ва хп у N npc и если она упадет ниже N, то NPC сменяется на другого.
 
Куда более конкретно? Есть возможность работать с CustomNPС используя ReActions? Например реализовать фазы боссов. Сделать переменную кол-ва хп у N npc и если она упадет ниже N, то NPC сменяется на другого.
Такого нету. Даже в боссах через ReActions.
 
Была бы поддержка стал бы изучать как дополнение к CustomNPC. Было бы неплохо..
Самое время приступить. ReActions, думаю, будет "полностью" завершён, когда можно будет на любое событие подписать активатор. Однако, нельзя забывать и про работу с другими плагинами :)
 
@Daniel576
CustomNPC вряд ли будет поддерживаться в ближайшее время. Это мод, а я к ним отношусь с предубеждением.
@fromgate, v/18 - Ноль реакции.
Код:
PLAYER_RESPAWN:
  Dropper-Death-LIMITED:
    cause: OTHER
    flags: []
    actions:
    - message=+
    reactions: []


Конкретнее?

Как тестировали? Смерть "от чего" приключалась?
 
@Daniel576
CustomNPC вряд ли будет поддерживаться в ближайшее время. Это мод, а я к ним отношусь с предубеждением.


Как тестировали? Смерть "от чего" приключалась?
Падение. Кстати, а почему бы не разделить на большее количество типов смертей? Лава, падение, удушье.. И лёгкая версия плагина 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: []

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

- 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.
Баг или фича? :)
Спасибо.
 
Воздух уберите. Думаю, что из-за него
 
Воздух уберите. Думаю, что из-за него
Переписал все заново - все заработало. Какая-то синтаксическая ошибка, видимо, глаз замылен. Воздух - не мешает. Спасибо большое.
 
@fromgate, есть разница в нагрузке между одним активатором COMMAND на регулярке и сотней COMMAND, выполняющих ту же функцию без регулярки?

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


Используя этот активатор, сами команды телепорта перестали работать, когда в 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: []
Перезалил новую версию. Возможно с ней будет лучше ;)

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

Ага, хорошая мысль. Туда же можно (в перспективе) добавить параметры на проверку нахождения игрока в кубоиде, регионе, фракции, городе и т.п.
%PLAYER_ITEM_HAND%
В конфиге больших изменений нет. Можешь удалить старый и перенастроить новый. Это минуты две.
@fromgate, поставил подверсию 17. Флаг (?i) не работает. С ним команда вообще не работает в любом регистре.

Не работает, что работало на таймере:

0.9.5/20
Исправил. Остался кусок кода от PVP_RESPAWN - в итоге PLAYER_RESPAWN срабатывало только при PVE и PVP
http://adf.ly/1K0nlW
 
Последнее редактирование:
Перезалил новую версию. Возможно с ней будет лучше ;)
Никак нет:
Код:
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: []

Ещё хотелось бы отключать для игрока возможность получения разнообразного урона. Действием, на время, навсегда, а так же способ отключить отключение урона :D
В плагине weed возможно отключать самые разнообразные типы урона. Это очень помогло бы, если только использовать это не рандомно, как там, а целенаправленно.
 
Последнее редактирование:
@Lyosha12
Отключение команды вроде исправил. Качать оттуда же.

По поводу урона. Оставлю для будущего. Это новые активаторы и дополнительная возня с типами уронов.
 
Отключение команды вроде исправил. Качать оттуда же.
Да, теперь нормально. Спасибо! :)
@fromgate, можно ли использовать глобальную переменную в действиях так, чтобы она могла создавать действия при запуске активатора? Я имею в виду вот что: при создании чек-поинтов нужно несколько десятков раз в разных активаторах прописывать одно и то же.

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

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


@fromgate, пишу в КБ (v.21): ra run activator:Activator-EXEC-6-Test player:{region:rg-test} - никакой реакции. Пишу только один параметр - есть реакция.
Исправил, перезалил
 
@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'и...
 
@Lyosha12
там сейчас переделано на селектор, радиус отдельно не распознается.
Т.е. фактически он видит радиус - 1.
При этом, если описать вот так: player:{loc:{loc:Локация radius:Радиус}} работать будет.
Но мне это не нравится, добавлю всё-таки возможность указывать радиус "выше".
Т.е. так: player:{loc:Локация radius:Радиус}

Кроме того, решил (давно хотел) трансформировать команду /react run в одну команду (старая останется для совместимости). Это будет команда /exec <ActivatorId> [player:<Player>] [delay:<Time>]
 
Кроме того, решил (давно хотел) трансформировать команду /react run в одну команду (старая останется для совместимости). Это будет команда /exec <ActivatorId> [player:<Player>] [delay:<Time>]
В принципе, следуя канонам жанра, все команды любых плагинов начинаются с их сокращённого названия. Я всё же против нарушения таких канонов, так как, во-первых, это означало бы принадлежность команды к какому-то плагину "exec", а, во-вторых, сбивало бы с толку тех, кто только начинает жизнь в майне. Впрочем, не мне решать :D
При этом, если описать вот так: player:{loc:{loc:Локация radius:Радиус}} работать будет.
Но мне это не нравится, добавлю всё-таки возможность указывать радиус "выше".
Так, значит, можно всё-таки указать несколько локаций одновременно? Это же хорошо! Не надо тогда ничего менять! :)
Но так не работает во втором случае :( (хотя, и не должно. Регион же не описывался как локация изначально...)
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}
Мы получаем "или". А как можно создать "и"?
 
@Lyosha12
Нет, несколько локаций указать нельзя. Если сделать loc:{region:<регион>} то возьмется какая-то случайная локация из указанного региона.

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

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