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

Build #126:
  • Добавлен активатор DAMAGE. Активатор срабатывает при уроне игрока любым способом.
  • Добавлен активатор DAMAGE_BY_BLOCK. Активатор срабатывает , когда игрок получает урон от блока (например, блок Магмы).
  • Добавлен активатор DAMAGE_BY_MOB. Активатор срабатывает, когда игрок получает урон от любой сущности. Этот активатор может отловить падающие сущности, которые наносят нулевой урон (падающие блоки песка, яйца, снежки и т.п.)
Хотел сделать один активатор урона, но это слишком громоздко получилось бы. Поэтому разбил на три активатора.

Неужто баг с меню не пофиксят, да NBT-теги не введут для предметов? :С
 
Upd. Есть баг: если оставить хотя бы одну клетку пустой, то при использовании Шифт+ЛКМ на предмете своего инвентаря, предмет попадает в меню, а в последствии можно брать все предметы оттуда. Ядро PaperSpgiot на 1.12, ReActions v0.10.1
Такого бага не обнаружил. Правда, ядро у меня Spigot. С Paper, я не тестировал.
 
Такого бага не обнаружил. Правда, ядро у меня Spigot. С Paper, я не тестировал.
Вероятно, вина ядра. Помнится, с Advanced Achievements похожая беда была.
Тогда ещё по поводу инвентаря - при использовании
Код:
INVENTORY_CLICK:
  try_ic:
    click-type: ANY
    action-type: ANY
    inventory-type: WORKBENCH
    slot-type: CRAFTING
    item: type:2
    actions:
    - message=you did it!
"you did it" выводится лишь в случае, когда вытаскиваешь предмет из верстака. По крайней мере при взаимодействии с инвентарем сундука все работает отлично, а вот тут - грустновато.
Может кто попробовать?
Если опять дело в PS, придется, видимо, переходить
 
"you did it" выводится лишь в случае, когда вытаскиваешь предмет из верстака
Потому что вы указали "slot-type: CRAFTING". Укажите "slot-type: ANY", тогда будет работать, как вам нужно.
 
Потому что вы указали "slot-type: CRAFTING". Укажите "slot-type: ANY", тогда будет работать, как вам нужно.
При указании ANY все равно можно перенести в окно крафта, через 1-9. А мне именно это и требуется заблокировать - перенос в окно крафта
 
При указании ANY все равно можно перенести в окно крафта, через 1-9. А мне именно это и требуется заблокировать - перенос в окно крафта
Дело в том, что под курсором может быть не ваш item во время нажатия клавиши цифры, поэтому активатор не срабатывает. Можно решить данную проблему путём добавления другого активатора, который запрещает использовать клавиши цифр для всех предметов.
Код:
  try_ic2:
    click-type: NUMBER_KEY
    action-type: ANY
    inventory-type: WORKBENCH
    slot-type: ANY
    actions:
    - message=you did it!
    - cancel_event=true
 
Кто пользовался плагином BossShopPro, а так же имел дело с GUI меню, которое можна настроить через reAct, скажите, является ли оно таким же многофункциональным и достаточным, что бы заменить им БоссШоп ??
 
подскажите, в чем может быть проблема - активатор MOB_CLICK срабатывает дважды. То есть я нажимаю на моба, и все действия прокручиваются два раза.
 
Build #128
  • Обновлён активатор INVENTORY_CLICK
  • Добавлена проверка клавиш цифр, соответствующие слотам на нижней панели инвентаря (key: ANY, 1..9)
  • Добавлены плейсхолдеры: %key%, %itemkey%
Как это работает, можно посмотреть с помощью этого активатора
Код:
INVENTORY_CLICK:
  ic_new:
    click-type: ANY
    action-type: ANY
    inventory-type: ANY
    slot-type: ANY
    key: ANY
    actions:
    - 'message=&aclick: &r%click%'
    - 'message=&baction: &r%action%'
    - 'message=&cinventory: &r%inventory%'
    - 'message=&dslot: &r%slot%'
    - 'message=&6item: &r%item%'
    - 'message=&6key: &r%key%'
    - 'message=&6itemkey: &r%itemkey%'

При указании ANY все равно можно перенести в окно крафта, через 1-9. А мне именно это и требуется заблокировать - перенос в окно крафта
Дело в том, что под курсором может быть не ваш item во время нажатия клавиши цифры, поэтому активатор не срабатывает. Можно решить данную проблему путём добавления другого активатора, который запрещает использовать клавиши цифр для всех предметов.
Код:
  try_ic2:
    click-type: NUMBER_KEY
    action-type: ANY
    inventory-type: WORKBENCH
    slot-type: ANY
    actions:
    - message=you did it!
    - cancel_event=true

Теперь не нужно добавлять дополнительный активатор запрета цифровых клавиш для всех предметов. Если в активаторе указан предмет, то он будет проверяться и в нижней панели инвентаря, когда нажата цифровая клавиша.
 
Помогите. Не совсем понимаю как и с чем работает флаг "COMPARE"
param:<Параметр> value1:<Значение1> vaule2:<Значение2>
Насколько я понимаю, <параметр> - это название, а значения - это флаги. Я прав? Если нет, то объясните, пожалуйста.
 
подскажите, в чем может быть проблема - активатор MOB_CLICK срабатывает дважды. То есть я нажимаю на моба, и все действия прокручиваются два раза.

Возможно, отрабатывают сразу 2 руки.
Добавьте флаг 'delay_player=id:fast_delay set-time:500ms', и проблемы не будет.



Build #128
  • Обновлён активатор INVENTORY_CLICK
  • Добавлена проверка клавиш цифр, соответствующие слотам на нижней панели инвентаря (key: ANY, 1..9)
  • Добавлены плейсхолдеры: %key%, %itemkey%
Как это работает, можно посмотреть с помощью этого активатора
Код:
INVENTORY_CLICK:
  ic_new:
    click-type: ANY
    action-type: ANY
    inventory-type: ANY
    slot-type: ANY
    key: ANY
    actions:
    - 'message=&aclick: &r%click%'
    - 'message=&baction: &r%action%'
    - 'message=&cinventory: &r%inventory%'
    - 'message=&dslot: &r%slot%'
    - 'message=&6item: &r%item%'
    - 'message=&6key: &r%key%'
    - 'message=&6itemkey: &r%itemkey%'



Теперь не нужно добавлять дополнительный активатор запрета цифровых клавиш для всех предметов. Если в активаторе указан предмет, то он будет проверяться и в нижней панели инвентаря, когда нажата цифровая клавиша.

Вот спасибо. То что нужно ;)



Помогите. Не совсем понимаю как и с чем работает флаг "COMPARE"
param:<Параметр> value1:<Значение1> vaule2:<Значение2>
Насколько я понимаю, <параметр> - это название, а значения - это флаги. Я прав? Если нет, то объясните, пожалуйста.

Это просто сравнение.
Если "param" совпадает с "value1" или "value2", то флаг отрабатывает. Можно сравнивать как числа, так и текст

Например, если сделать так 'compare=param:{36} value1:{36} value2:{143}' - вернёт true, т.е. флаг "действительный"

В значения можно запихнуть переменные, например 'compare=param:{%var:days%} value1:{%varp:player_day%} value2:{26}' - здесь, если переменная "days" равна "26", или персональной переменной "player_day", то флаг вернёт true.

Ну, и если ни одно из <значений> не совпадает с <параметром>, то выдает false, т.е. флаг "недействительный".
 
Возможно, отрабатывают сразу 2 руки.
Добавьте флаг 'delay_player=id:fast_delay set-time:500ms', и проблемы не будет.
я именно так и сделал уже, только 2сек поставил) Ну просто думал может как-то по-другому можно. Но все равно спасибо
 
Как настроить активатор "BLOCK_CLICK" на конкретный мир (Чтобы работал только в world_n)?
При условии, что конструкция активатора в этом роде:

Код:
BLOCK_CLICK:
  CHEST_OPEN:
    block-type: CHEST
    click-type: RIGHT
    flags:
    - ITEM=type:STICK
    actions:
    - MESSAGE=Сундук открыт
    reactions:
    - MESSAGE=Нужна палка, чтобы поддеть петли сундука.
    - CANCEL_EVENT=true
 
Помогите. Не совсем понимаю как и с чем работает флаг "COMPARE"
param:<Параметр> value1:<Значение1> vaule2:<Значение2>
Насколько я понимаю, <параметр> - это название, а значения - это флаги. Я прав? Если нет, то объясните, пожалуйста.
флаг сравнивает параметр с значениями, например параметре пишешь что то, а в значения переменную, если хоть одно значение совпадает с параметром активатор срабатывает
 
Как настроить активатор "BLOCK_CLICK" на конкретный мир (Чтобы работал только в world_n)?
При условии, что конструкция активатора в этом роде:
Воспользуйтесь флагом WORLD. Получится что-то подобное:
Код:
BLOCK_CLICK:
  CHEST_OPEN:
   block-type: CHEST
   click-type: RIGHT
   flags:
   - ITEM=type:STICK
   - WORLD=world_n
   actions:
   - MESSAGE=Сундук открыт
   reactions:
   - if_else=if:{%WORLD_FLAG%==world_n}
                  then:run:actions:{
                      action1:{MESSAGE=Нужна палка, чтобы поддеть петли сундука.}
                      action2:{CANCEL_EVENT=true}
                  }
                  else:{}

Я не проверял. Думаю, вы сумеете настроить под себя. Есть ещё способ с двумя активаторами, но и этого должно хватить.
 
Привет всем. Можно ли как-то реализовать "карабкание" по стенам?
 
Возможно, отрабатывают сразу 2 руки.
Добавьте флаг 'delay_player=id:fast_delay set-time:500ms', и проблемы не будет.





Вот спасибо. То что нужно ;)





Это просто сравнение.
Если "param" совпадает с "value1" или "value2", то флаг отрабатывает. Можно сравнивать как числа, так и текст

Например, если сделать так 'compare=param:{36} value1:{36} value2:{143}' - вернёт true, т.е. флаг "действительный"

В значения можно запихнуть переменные, например 'compare=param:{%var:days%} value1:{%varp:player_day%} value2:{26}' - здесь, если переменная "days" равна "26", или персональной переменной "player_day", то флаг вернёт true.

Ну, и если ни одно из <значений> не совпадает с <параметром>, то выдает false, т.е. флаг "недействительный".
Спасибо
 
Привет! Нужна система "подтверждения". Например, игрок хочет поучаствовать в казино, нажимает на табличку и появляется что-то типо этого: "Вы точно хотите испытать удачу? Если да, то напишите "Да" В чат."
Применил бы такое во многом, вот только как реализовать - не знаю. Ищу помощи.

Так же вариант - нажать "Да" на сообщении в чате.
 
Привет всем. Можно ли как-то реализовать "карабкание" по стенам?

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



Привет! Нужна система "подтверждения". Например, игрок хочет поучаствовать в казино, нажимает на табличку и появляется что-то типо этого: "Вы точно хотите испытать удачу? Если да, то напишите "Да" В чат."
Применил бы такое во многом, вот только как реализовать - не знаю. Ищу помощи.

Так же вариант - нажать "Да" на сообщении в чате.

Вариант с чатом.
Код:
SIGN:
  CasinoSign:
    sign-mask:
    - ''
    - 'Участие в'
    - 'казино'
    - ''
    click-type: RIGHT
    flags:
    - delay_player=id:casino_ask set-time:20s
    actions:
    - message=                &f&lВы точно хотите испытать удачу?
    - message= &7Напишите &a&lДа &7если согласны начать игру &o(20 секунд)
MESSAGE:
  CasinoAccept:
    mask: 'Да'
    type: START
    source: CHAT_INPUT
    flags:
    - delay_player=id:casino_ask
    actions:
    - delay_player=id:casino_ask time:0
    - Игрок согласен
    - Делай тут свои штуки

В варианте с нажиманием, вместо message нужно от лица игрока(cmd_op) или консоли(cmd_console) отправлять игроку JSON-сообщение(/tellraw %player_name% ...) с клик-ивентом, запускающим команду. И придется либо вновь использовать активатор MESSAGE, либо уже COMMAND
 
Назад
Верх