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

По какой-то причине не работают плейсхолдеры задержки. Есть мысли?
Код:
EXEC:
  PresentCheck:
    flags:
    - delay_player=id:ClickDl_%blocklocation% set-time:24h
    actions:
    - message=&aОтлично кликнул, бро!
    reactions:
    - message=%delay-time%
    - message=&cВы не сможете кликнуть сюда ещё &e%delay-left-hms%&c!
 
По какой-то причине не работают плейсхолдеры задержки. Есть мысли?
Код:
EXEC:
  PresentCheck:
    flags:
    - delay_player=id:ClickDl_%blocklocation% set-time:24h
    actions:
    - message=&aОтлично кликнул, бро!
    reactions:
    - message=%delay-time%
    - message=&cВы не сможете кликнуть сюда ещё &e%delay-left-hms%&c!

Я так понял, это какой-то кулдаун на получение "подарка". И если вы используете локцию блока для имени задержки, значит их несколько. Действие EXECUTE не сохраняет временные плейсхолдеры, поэтому вам нужно в активаторе (если я правильно понял - BLOCK_CLICK) перед действием EXECUTE создать временную переменную, сохраняющую плейсхолдер с локацией блока:
Код:
- VAR_TEMP_SET=id:blocklocation value:%blocklocation%
- execute=activator:PresentCheck player:%player%

UPD: не актуально. Как оказалось, задержка просто ошибочно воспринимает символ "." (Точка)
 
Последнее редактирование:
@Dumzdeil Сам не пробовал, но может сработать (через PlaceholderAPI):
https://www.spigotmc.org/wiki/placeholderapi-placeholders/#player-placeholders
https://www.spigotmc.org/wiki/placeholderapi-plugin-placeholders-page-2/#worldguard
%player_world%.%worldguard_region_name%
Сначала нужно загрузить нужные модули через /papi ecloud (для WorldGuard, например).
Знаю про такое, но даже пытаться нет желания. Это не очень удобный способ. Почему бы просто не реализовать это внутри плагина? Я не нашел ни одного способа задать переменную с названием текущего региона (в рамках reactions и worldguard), а это очень бы пригодилось, особенно в связке [мир].регион

Поэтому и попросил реализовать(
 
Я так понял, это какой-то кулдаун на получение "подарка". И если вы используете локцию блока для имени задержки, значит их несколько. Действие EXECUTE не сохраняет временные плейсхолдеры, поэтому вам нужно в активаторе (если я правильно понял - BLOCK_CLICK) перед действием EXECUTE создать временную переменную, сохраняющую плейсхолдер с локацией блока:
Код:
- VAR_TEMP_SET=id:blocklocation value:%blocklocation%
- execute=activator:PresentCheck player:%player%

PresentCheck запускается из активатора BLOCK_CLICK - в нем содержится плейсхолдер blocklocation, и уже месяц-другой плейсхолдеры передаются в EXEC. В доказательство - сама задержка исправно работает. Так что увы, совет бесполезен.
 
Задержка работает, но плейсхолдеры же - нет. Я создал подобие вашего активатора с переходом в exec, и плейсхолдеры не раскрывались. А когда я сохранил локацию блока перед запуском exec - все раскрывалось... попробуйте. И еще, попробуйте в подобном активаторе с переходом в exec вывести через MESSAGE себе плейсхолдер из основного активатора. У меня не работает... возможно, потому что до сих пор стоит версия 0.10.2
Хмх.
Доступа ни к ПК, ни к серверу не было - попробую. Заранее благодарю, пожалуй.

UPD: Эффект тот же - плейсхолдер задержки не срабатывает
Код:
BLOCK_CLICK:
  PresentClick:
    block-type: CHEST
    click-type: ANY
    actions:
    - var_temp_set=id:blockloc value:%blocklocation%
    - execute=activator:PresentCheck
EXEC:
  PresentCheck:
    flags:
    - delay_player=id:NY_present_%blockloc% set-time:24h
    actions:
    - item_give=%var:fif2%
    reactions:
    - message=&cКаждый подарок можно открыть &eлишь раз в &n24 часа&c! Осталось %delay-left-hms%
 
Хмх.
Доступа ни к ПК, ни к серверу не было - попробую. Заранее благодарю, пожалуй.

UPD: Эффект тот же - плейсхолдер задержки не срабатывает
Код:
BLOCK_CLICK:
  PresentClick:
    block-type: CHEST
    click-type: ANY
    actions:
    - var_temp_set=id:blockloc value:%blocklocation%
    - execute=activator:PresentCheck
EXEC:
  PresentCheck:
    flags:
    - delay_player=id:NY_present_%blockloc% set-time:24h
    actions:
    - item_give=%var:fif2%
    reactions:
    - message=&cКаждый подарок можно открыть &eлишь раз в &n24 часа&c! Осталось %delay-left-hms%
Мы оба наделали ошибок))
Как оказалось, задержка как то ошибочно воспринимает символ "." (точка) Только что проверил в фиксированном имени задержки, и вот оно вылезло. Вот как раз и тема для обновления...
 
Мы оба наделали ошибок))
Как оказалось, задержка как то ошибочно воспринимает символ "." (точка) Только что проверил в фиксированном имени задержки, и вот оно вылезло. Вот как раз и тема для обновления...
О как. Забавно. Думаю, через REGEX просто записывать X_Y_Z тогда, пока не фикс не выйдет.
Спасибо за обнаружение проблемки :)
 
Здравствуйте, я тут обнаружил одну проблему, у меня сервер на версии 1.8.8. Поставил плагин версии 1.10.1 и вдруг оказывается, что при клике одного игрока по другому (ПКМ) происходит следующее:
Код:
[00:40:05] [Server thread/INFO]: Given Wither (ID 20) * 6 to Nerfior for 20 seconds                                                                                                            
[00:40:05] [Server thread/INFO]: Given Wither (ID 20) * 6 to Nerfior for 20 seconds
На версии 1.10.0 аналогичная ситуация, а на 0.9.10 никаких проблем, все нормально, перекопал все свои активаторы, даже не представляю из какого он это иссушение вытягивает, а жаль, хотелось бы использовать более новые возможности плагина :(
 
Последнее редактирование:
Здравствуйте, я тут обнаружил одну проблему
Сори, ложная тревога, активатор таки есть, я его пытался делать еще на более старых версиях, MOB_CLICK type:рlayer, он тогда не работал я и забыл о нем, а сейчас вдруг проявил себя))) затерялся гад среди сотен других активаторов...
 
У меня вопрос, можно ли занести в переменную количество игроков в определнном регионе?
 
Баг: Если выстрелить из лука со второй руки, то активатор MOB_DAMAGE с item: type:bow, то активтор не срабатывает
 
Мне нужно реализовать систему уровней. это будет выглядеть так:
игрок прыгает в портал, попадает на первый уровень. проходит его, попадает на начало второго и делает телепорт на спавн, а после обратно вернулся к прохождению и прыгнув в тот же портал мне нужно чтоб он попал в начало второго уровня тобишь на тот до которого он дошел Может кто-то подсказать как это реализовать?
 
Мне нужно реализовать систему уровней. это будет выглядеть так:
игрок прыгает в портал, попадает на первый уровень. проходит его, попадает на начало второго и делает телепорт на спавн, а после обратно вернулся к прохождению и прыгнув в тот же портал мне нужно чтоб он попал в начало второго уровня тобишь на тот до которого он дошел Может кто-то подсказать как это реализовать?
При прохождении уровня записывать номер текущего уровня(то бишь на котором он сейчас) в персональную переменную. Когда игрок заходит в портал - считывается переменная и игрока телепортирует на уровень. Если переменной нету - кидать на первый уровень. Если нужен готовый код - могу ближе к вечеру или завтра только скинуть, сейчас времени к сожалению нету, Новый Год всё-таки...
 
При прохождении уровня записывать номер текущего уровня(то бишь на котором он сейчас) в персональную переменную. Когда игрок заходит в портал - считывается переменная и игрока телепортирует на уровень. Если переменной нету - кидать на первый уровень. Если нужен готовый код - могу ближе к вечеру или завтра только скинуть, сейчас времени к сожалению нету, Новый Год всё-таки...
Спасибо большое, был бы очень благодарен если скинешь код, с наступающим
 
Спасибо большое, был бы очень благодарен если скинешь код, с наступающим
Код:
REGION_ENTER:
  portalStart:
    region: portalStart
    flags:
    - var_player_exist=id:portalTp
    actions:
    - message=&9Телепорт> &fПеремещаем вас на последний чекпоинт...
    - tp=loc:portalStart%varp:portalTp%
    reactions:
    - message=&9Телепорт> &fПеремещаем вас на первый участок...
    - tp=loc:portalStart1
  portalEnd1:
    region: portalEnd1
    actions:
    - message=&9Телепорт> &fЭтот чекпоинт успешно пройден!
    - tp=loc:portalStart2
    - var_player_set=id:portalTp value:2
  portalEnd2:
    region: portalEnd2
    actions:
    - message=&9Телепорт> &fЭтот чекпоинт успешно пройден!
    - tp=loc:portalStart3
    - var_player_set=id:portalTp value:3
  portalEnd3:
    region: portalEnd3
    actions:
    - message=&9Телепорт> &fЭтот чекпоинт успешно пройден!
    - tp=loc:portalStart4
    - var_player_set=id:portalTp value:4
  portalEnd4:
    region: portalEnd4
    actions:
    - message=&9Телепорт> &fЭтот чекпоинт успешно пройден!
    - tp=loc:portalStart5
    - var_player_set=id:portalTp value:5
portalStart - регион, при вхождении в который игрок телепортируется либо на первую локацию, либо на чекпоинт
portalEnd№ - при вхождении игрок телепортируется на следующую локацию, а её номер сохраняется в персональной переменной
И не забыть сделать все локации - portalStart1, portalStart2 и т.д.
Надеюсь, сможете под себя адаптировать скрипт :0
 
Последнее редактирование:
Код:
REGION_ENTER:
  portalStart:
    region: portalStart
    flags:
    - var_player_exist=id:portalTp
    actions:
    - message=&9Телепорт> &fПеремещаем вас на последний чекпоинт...
    - tp=loc:portalStart%varp:portalTp%
    reactions:
    - message=&9Телепорт> &fПеремещаем вас на первый участок...
    - tp=loc:portalStart1
  portalEnd1:
    region: portalEnd1
    actions:
    - message=&9Телепорт> &fЭтот чекпоинт успешно пройден!
    - tp=loc:portalStart2
    - var_player_set=id:portalTp value:2
  portalEnd2:
    region: portalEnd2
    actions:
    - message=&9Телепорт> &fЭтот чекпоинт успешно пройден!
    - tp=loc:portalStart3
    - var_player_set=id:portalTp value:3
  portalEnd3:
    region: portalEnd3
    actions:
    - message=&9Телепорт> &fЭтот чекпоинт успешно пройден!
    - tp=loc:portalStart4
    - var_player_set=id:portalTp value:4
  portalEnd4:
    region: portalEnd4
    actions:
    - message=&9Телепорт> &fЭтот чекпоинт успешно пройден!
    - tp=loc:portalStart5
    - var_player_set=id:portalTp value:5
portalStart - регион, при вхождении в который игрок телепортируется либо на первую локацию, либо на чекпоинт
portalEnd№ - при вхождении игрок телепортируется на следующую локацию, а её номер сохраняется в персональной переменной
И не забыть сделать все локации - portalStart1, portalStart2 и т.д.
Надеюсь, сможете под себя адаптировать скрипт :0
Оу, спасибо вам большое
 
Баг: Если выстрелить из лука со второй руки, то активатор MOB_DAMAGE с item: type:bow, то активтор не срабатывает
Насколько я знаю, Item_click и тому подобные активаторы тоже не работают с второй рукой
 
Хочу спросить очень простую вещь но я почему-то не могу сделать ) Вообщем мне нужна команда на действие которая бы отключала флай при срабатывание активатора
 
Назад
Верх