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

как можно проверить сколько игроков в регионе?
@fromgate, он имеет в виду узнать количество. То есть, использовать плейсхолдер, содержащий число игроков в регионе.
Флаг REGION_PLAYERS


Обновление:
0.9.5/16
- Активатор PVP_DEATH - теперь поддерживает "причину смерти". Сам активатор переименован и называется PLAYER_DEATH (по идее должна отработать замена, в крайнем случае придётся переименовать).
Поддерживаются следующие значения для определения причины: PVP (от рук игрока), PVE (от рук моба), OTHER (от других причин) и... ANY (любая из этих трёх).
В файле это отражается в виде параметра "death-cause".
Если причина смерти - PVE или PVP, то в активаторе создаются временные плейсхолдеры: %killer-type% и %killer-name%

У кого есть возможность - просьба проверить, чтобы какие-то недосмотры не проникли в релиз.
А как насчёт активатора респавна? К нему тоже нужно добавить "возрождение после иной смерти"
@fromgate, проверю ночью подверсию 16 :)
@fromgate, есть активаторы, которые переключают состояние таймера, который запускает EXEC для меня. Переключение работает отлично, однако, после перезагрузки через /ra reload, таймер перестаёт работать. Приходится перезапускать таймер вручную: введя команду триггера дважды (если переменная на момент перезагрузки равнялась 1). Как прикажите лечить?

Если запустить таймер навечно, а переключатель таймера заменить на проверку личной переменной у меня, которая будет свидетельствовать о том, запускать ли EXEC для меня или нет, то после перезагрузки таймер как работал, так и работает.
Код:
COMMAND:
  Fun-Command:
    override: true
    regex: false
    command: cmd:fun
    flags:
    - var_player_compare=id:Lyosha12-Own value:1
    actions:
    - execute=activator:Exec-Fun-Command-Trig
    - action_delayed=time:100ms action:{message %varp:Lyosha12-Fun% | 0 - Off | 1 - ON}
    reactions: []
EXEC:
  Exec-Fun-Command-Trig:
    flags:
    - var_player_compare=id:Lyosha12-Fun value:0
    actions:
    - timer_stop=timer:Timer-Fun-Command
    - var_player_set=id:Lyosha12-Fun value:1
    reactions:
    - timer_resume=timer:Timer-Fun-Command
    - var_player_set=id:Lyosha12-Fun value:0
  Exec-Fun-Command:
    flags:
    - var_player_compare=id:Lyosha12-Own value:1
    actions:
    - SOUND=type:AMBIENCE_CAVE volume:3 pitch:1 loc:%PLAYER_LOC%
    - action_delayed=time:50ms action:{SOUND type:AMBIENCE_CAVE volume:3 pitch:3 loc:%PLAYER_LOC%}
    - action_delayed=time:100ms action:{SOUND type:AMBIENCE_CAVE volume:3 pitch:3 loc:%PLAYER_LOC%}
    - action_delayed=time:150ms action:{SOUND type:AMBIENCE_CAVE volume:3 pitch:3 loc:%PLAYER_LOC%}
    - action_delayed=time:200ms action:{SOUND type:AMBIENCE_CAVE volume:3 pitch:3 loc:%PLAYER_LOC%}
    - action_delayed=time:250ms action:{SOUND type:AMBIENCE_CAVE volume:3 pitch:3 loc:%PLAYER_LOC%}
    - action_delayed=time:300ms action:{SOUND type:AMBIENCE_CAVE volume:3 pitch:3 loc:%PLAYER_LOC%}
    - action_delayed=time:350ms action:{SOUND type:AMBIENCE_CAVE volume:3 pitch:3 loc:%PLAYER_LOC%}
    - action_delayed=time:400ms action:{SOUND type:AMBIENCE_CAVE volume:3 pitch:3 loc:%PLAYER_LOC%}
    - action_delayed=time:450ms action:{SOUND type:AMBIENCE_CAVE volume:3 pitch:3 loc:%PLAYER_LOC%}
    - action_delayed=time:500ms action:{SOUND type:AMBIENCE_CAVE volume:3 pitch:3 loc:%PLAYER_LOC%}
    - action_delayed=time:550ms action:{SOUND type:AMBIENCE_CAVE volume:3 pitch:3 loc:%PLAYER_LOC%}
    - action_delayed=time:600ms action:{SOUND type:AMBIENCE_CAVE volume:3 pitch:3 loc:%PLAYER_LOC%}
    - action_delayed=time:650ms action:{SOUND type:AMBIENCE_CAVE volume:3 pitch:3 loc:%PLAYER_LOC%}
    - action_delayed=time:700ms action:{SOUND type:AMBIENCE_CAVE volume:3 pitch:3 loc:%PLAYER_LOC%}
    - action_delayed=time:750ms action:{SOUND type:AMBIENCE_CAVE volume:3 pitch:3 loc:%PLAYER_LOC%}
    - action_delayed=time:800ms action:{SOUND type:AMBIENCE_CAVE volume:3 pitch:3 loc:%PLAYER_LOC%}
    - action_delayed=time:850ms action:{SOUND type:AMBIENCE_CAVE volume:3 pitch:3 loc:%PLAYER_LOC%}
    - action_delayed=time:900ms action:{SOUND type:AMBIENCE_CAVE volume:3 pitch:3 loc:%PLAYER_LOC%}
    - action_delayed=time:950ms action:{SOUND type:AMBIENCE_CAVE volume:3 pitch:3 loc:%PLAYER_LOC%}
    - action_delayed=time:1000ms action:{SOUND type:AMBIENCE_CAVE volume:3 pitch:0 loc:%PLAYER_LOC%}
    reactions: []
Код:
  Timer-Fun-Command:
    time: 0/1 * * * * ?
    player: Lyosha12
    paused: 'true'
    activator: Exec-Fun-Command
А вот с такими активаторами
Код:
  Fun-Command:
    override: true
    regex: false
    command: cmd:fun
    flags:
    - var_player_compare=id:Lyosha12-Own value:1
    actions:
    - execute=activator:Exec-Fun-Command-Trig
    - action_delayed=time:1000ms action:{message %varp:lyosha12-fun% | 0 - Off | 1 - ON}
    reactions: []
EXEC:
  Exec-Fun-Command-Trig:
    flags:
    - var_player_compare=id:Lyosha12-Fun value:0
    actions:
    - var_player_set=id:Lyosha12-Fun value:1
    reactions:
    - var_player_set=id:Lyosha12-Fun value:0
  Exec-Fun-Command:
    flags:
    - var_player_compare=id:Lyosha12-Fun value:1
    actions:
    - SOUND=type:AMBIENCE_CAVE volume:3 pitch:1 loc:%PLAYER_LOC%
    - action_delayed=time:50ms action:{SOUND type:AMBIENCE_CAVE volume:3 pitch:3 loc:%PLAYER_LOC%}
    - action_delayed=time:100ms action:{SOUND type:AMBIENCE_CAVE volume:3 pitch:3 loc:%PLAYER_LOC%}
    - action_delayed=time:150ms action:{SOUND type:AMBIENCE_CAVE volume:3 pitch:3 loc:%PLAYER_LOC%}
    - action_delayed=time:200ms action:{SOUND type:AMBIENCE_CAVE volume:3 pitch:3 loc:%PLAYER_LOC%}
    - action_delayed=time:250ms action:{SOUND type:AMBIENCE_CAVE volume:3 pitch:3 loc:%PLAYER_LOC%}
    - action_delayed=time:300ms action:{SOUND type:AMBIENCE_CAVE volume:3 pitch:3 loc:%PLAYER_LOC%}
    - action_delayed=time:350ms action:{SOUND type:AMBIENCE_CAVE volume:3 pitch:3 loc:%PLAYER_LOC%}
    - action_delayed=time:400ms action:{SOUND type:AMBIENCE_CAVE volume:3 pitch:3 loc:%PLAYER_LOC%}
    - action_delayed=time:450ms action:{SOUND type:AMBIENCE_CAVE volume:3 pitch:3 loc:%PLAYER_LOC%}
    - action_delayed=time:500ms action:{SOUND type:AMBIENCE_CAVE volume:3 pitch:3 loc:%PLAYER_LOC%}
    - action_delayed=time:550ms action:{SOUND type:AMBIENCE_CAVE volume:3 pitch:3 loc:%PLAYER_LOC%}
    - action_delayed=time:600ms action:{SOUND type:AMBIENCE_CAVE volume:3 pitch:3 loc:%PLAYER_LOC%}
    - action_delayed=time:650ms action:{SOUND type:AMBIENCE_CAVE volume:3 pitch:3 loc:%PLAYER_LOC%}
    - action_delayed=time:700ms action:{SOUND type:AMBIENCE_CAVE volume:3 pitch:3 loc:%PLAYER_LOC%}
    - action_delayed=time:750ms action:{SOUND type:AMBIENCE_CAVE volume:3 pitch:3 loc:%PLAYER_LOC%}
    - action_delayed=time:800ms action:{SOUND type:AMBIENCE_CAVE volume:3 pitch:3 loc:%PLAYER_LOC%}
    - action_delayed=time:850ms action:{SOUND type:AMBIENCE_CAVE volume:3 pitch:3 loc:%PLAYER_LOC%}
    - action_delayed=time:900ms action:{SOUND type:AMBIENCE_CAVE volume:3 pitch:3 loc:%PLAYER_LOC%}
    - action_delayed=time:950ms action:{SOUND type:AMBIENCE_CAVE volume:3 pitch:3 loc:%PLAYER_LOC%}
    - action_delayed=time:1000ms action:{SOUND type:AMBIENCE_CAVE volume:3 pitch:0 loc:%PLAYER_LOC%}
    reactions: []
И тем же таймером при перезагрузке воспроизведение звуков не прекращается.

И ещё странная хрень: когда Exec-Fun-Command выполняется, в это время должно произойти действие action_delayed, что выведет состояние переменной. Однако, действие выводит совершенно противоположный результат.

Могу с уверенностью сказать, что сначала действие обрабатывается, а его результат уже выводится через указанный интервал времени. Следовательно, вывести значение переменной таким способом, как я хочу, получится только через EXEC с задержкой вызова\action_delated.
 
Последнее редактирование:
Удивительно, но моя проблема опять решилась установкой ReActions 0.9.3...
Видимо эта версия не хочет отпускать меня.Хотя меня в принципе то в ней абсолютно все устраивает, за исключением отсутствия %CALC% разумеется.
 
Установка личной переменной из глобальной не работает:
Код:
    - var_set=id:Admin-Mute value:1 player:%word2%
С var_player_set всё отлично.
 
@Lyosha12
По поводу таймеров, вроде исправил. В следующем апдейте должны будут работать как надо.

Могу с уверенностью сказать, что сначала действие обрабатывается, а его результат уже выводится через указанный интервал времени. Следовательно, вывести значение переменной таким способом, как я хочу, получится только через EXEC с задержкой вызова\action_delated.

Тут ты абсолютно прав. "вычисление" переменных и плейхолдеров происходит перед выполнением действия. Которым в этом случае является "ACTION_DELAYED".

VAR_SET проверю.
 
@fromgate, как при поиске команды с помощью регулярки игнорировать тип буквы, чтобы и прописные, и заглавные были равноправны?
 
@Lyosha12
В начале регулярного выражения ставим "(?i)", а дальше - всё остальное как обычно
 
И всё то, что на сайте https://regex101.com/ после "/..." в ReActions - "(?...)"?
Вот так? Ничего из пробелов не забыл? :D
command: (?i) (TP|TP2P|TELEPORT|TPO) \w+

Да, вроде похоже.

Удивительно, но моя проблема опять решилась установкой ReActions 0.9.3...
Видимо эта версия не хочет отпускать меня.Хотя меня в принципе то в ней абсолютно все устраивает, за исключением отсутствия %CALC% разумеется.

Я так понимаю, у Вас ряд переменных был создан в 0.9.3, а ряд в 0.9.4. В 0.9.4 - они приводились к нижнему регистру. В текущих версиях регистр в названии переменных уже абсолютно безразличен.

0.9.5/17
  • Исправление инициализации таймеров после /react reload
  • Исправление VAR_SET (не работала с игроками)
http://adf.ly/1K0nlW
 
http://reactions.fromgate.ru/message-action.htm
MESSAGE world:World.Neather Это сообщение увидят все в мире Neather
command: (?i) (TP|TP2P|TELEPORT|TPO) \w+
Код:
  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=+
    reactions:
    - message=-
Вообще не работает. Убираю "(?i)" и пишу с заглавной буквы - работает. Может сделать отдельный параметр для флагов в регулярках?
 
У меня вообще команды с заглавной буквы не работают. Причем любые, не только "потроганные" ReActions

А пока вот такие изменения:
0.9.5/18
- Активатор PVP_RESPAWN переименован в PLAYER_RESPAWN
Параметр - тип смерти (такой же как в PLAYER_DEATH)
В файле активаторов это: cause: <PVP|PVE|OTHER|ANY>
Плейсхолдеры:
%cause%, %killer-type%, %killer-name%
- Плейсхолдер %cause% добавлен в PLAYER_DEATH

http://adf.ly/1K0nlW
 
У меня вообще команды с заглавной буквы не работают. Причем любые, не только "потроганные" ReActions

А пока вот такие изменения:
0.9.5/18
- Активатор PVP_RESPAWN переименован в PLAYER_RESPAWN
Параметр - тип смерти (такой же как в PLAYER_DEATH)
В файле активаторов это: cause: <PVP|PVE|OTHER|ANY>
Плейсхолдеры:
%cause%, %killer-type%, %killer-name%
- Плейсхолдер %cause% добавлен в PLAYER_DEATH

http://adf.ly/1K0nlW
Отлично, спасибо!
У меня вообще команды с заглавной буквы не работают.
Почему тогда у меня это вызывает проблему? :confused:
 
Почему тогда у меня это вызывает проблему? :confused:

Черт ёго знает. Я сегодня утром переделал несколько своих команд, поставили им префикс (?i) - все работали.
Но при этом, если пишу команду большими буквами - отлуп. Причем именно от баккита (или от кого-то ещё), но не от ReActions.
 
Черт ёго знает. Я сегодня утром переделал несколько своих команд, поставили им префикс (?i) - все работали.
Но при этом, если пишу команду большими буквами - отлуп. Причем именно от баккита (или от кого-то ещё), но не от ReActions.
Но ведь в конструкции cmd:* arg1:* регистр не учитывается... Нельзя ли это сделать по-умолчанию и для регулярок?
 
Товарищи, наверняка где-то было, но в треде не нашел - где взять правильные ID ITEM'ов? хочется уже начать оперировать ими, а не номерами, ибо номера, похоже уходят на свалку истории. И еще вопрос: в конфиге сервера при переходе на последнюю версию 0.9.4 - можно просто поменять все, что связано с ITEMами, или TP и LOC теперь тоже работают по-иному?
 
Товарищи, наверняка где-то было, но в треде не нашел - где взять правильные ID ITEM'ов? хочется уже начать оперировать ими, а не номерами, ибо номера, похоже уходят на свалку истории. И еще вопрос: в конфиге сервера при переходе на последнюю версию 0.9.4 - можно просто поменять все, что связано с ITEMами, или TP и LOC теперь тоже работают по-иному?
%PLAYER_ITEM_HAND%
В конфиге больших изменений нет. Можешь удалить старый и перенастроить новый. Это минуты две.
@fromgate, поставил подверсию 17. Флаг (?i) не работает. С ним команда вообще не работает в любом регистре.
0.9.5/18
- Активатор PVP_RESPAWN переименован в PLAYER_RESPAWN
Параметр - тип смерти (такой же как в PLAYER_DEATH)
В файле активаторов это: cause: <PVP|PVE|OTHER|ANY>
Плейсхолдеры:
%cause%, %killer-type%, %killer-name%
- Плейсхолдер %cause% добавлен в PLAYER_DEATH

http://adf.ly/1K0nlW
Не работает, что работало на таймере:
Код:
PLAYER_RESPAWN:
  Dropper-Respawn:
    cause: OTHER
    flags:
    - '!var_player_compare=id:Dropper-LVL value:-1'
    - var_player_compare=id:Dropper-Game_Type value:LIMITED
    - '!REGION=world_the_end.dropper'
    - var_player_EXIST=id:Dropper-LVL
    actions:
    - Message=&6[&3Dropper&6] &7Вы прошли &e%CALC:%varp:Dropper-LVL%+1-1% &7из &c50 &7уровней.
    - Message=&6[&3Dropper&6] &7Приз выдаётся после прохождения всех уровней.
    - var_set=id:Dropper-Top-LIMITED-RIVAL-Name value:%player%
    - var_set=id:Dropper-Top-LIMITED-RIVAL-Score value:%CALC:%varp:Dropper-LVL%+1-1%
    - execute=activator:Dropper-Check-Achiv-LIMITED player:%player%
    - var_player_set=id:Dropper-LVL value:-1
    - var_player_set=id:Dropper-Game_Type value:0
    - action_delayed=time:500ms action:{TP loc:world_the_end,1077.554,249.0,1009.498,-270.718,2.249}
   reactions: []

Ссылка на 17 версию.
Не помешал бы флаг проверки наличия у игрока эффекта.
 
Товарищи, наверняка где-то было, но в треде не нашел - где взять правильные ID ITEM'ов? хочется уже начать оперировать ими, а не номерами, ибо номера, похоже уходят на свалку истории. И еще вопрос: в конфиге сервера при переходе на последнюю версию 0.9.4 - можно просто поменять все, что связано с ITEMами, или TP и LOC теперь тоже работают по-иному?

Для последнего спигота - смотреть тут: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html
Если версия более старая, то там может быть что-то чего нет.
Ну или как посоветовал @Lyosha12 - сделай простенький активатор на вывод плейсхолдера %PLAYER_ITEM_HAND%

TP и LOC остались прежними. С предметами - их надо переписать. На мой взгляд новый формат более логичный и более понятный.

@Lyosha12 версию обновил. Ссылка та же.
Про "(?i)" ещё раз перепроверю. Но это ж.. регулярка, её не я придумал ;)
Можешь написать маску в активаторе и как набираешь саму команду? Буду пробовать.

- '!REGION=world_the_end.dropper' -- это где? Где возрождается или где умирает?
 
- '!REGION=world_the_end.dropper' -- это где? Где возрождается или где умирает?
Место смерти. Если игрок не находится на ивенте, но у него есть очки, значения которых существуют только на ивенте, то выполнять действия.
Можешь написать маску в активаторе и как набираешь саму команду? Буду пробовать.
command: (?i) (TP|TP2P|TELEPORT|TPO) \w+
/TP Lyosha12
 
Для последнего спигота - смотреть тут: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html
Если версия более старая, то там может быть что-то чего нет.
Ну или как посоветовал @Lyosha12 - сделай простенький активатор на вывод плейсхолдера %PLAYER_ITEM_HAND%

TP и LOC остались прежними. С предметами - их надо переписать. На мой взгляд новый формат более логичный и более понятный.
Большое спасибо :) Как раз решил обновиться до spigot 1.8.7
 
@fromgate ReActoins можно использовать в связке с CustomNPC? Хотелось бы.
 
Назад
Верх