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

Сделай активатор по клику на нпс из citizens
 
Итак, наконец-то!

v0.9.5
  • Новый формат описания предметов. Старый частично поддерживается. Но скорее всего Вам придётся обновить в ваших активаторах всё что связано с предметами.
  • Новый активатор MOB_KILL
  • Библиотека для WorldGuard 5.x теперь встроена в плагин. Теперь нет нужды в использовании дополнительной библиотеки. Пожалуйста удалите папку ReActions/lib/
  • Новое действие ITEM_UNWEAR (снять предмет брони)
  • Все флаги и действия, связанные с переменными и задержками, теперь поддерживают параметр "player". Можно обращаться к переменным (задержкам) любых игроков.
  • Флаги DELAY и DELAY_PLAYER теперь могут обновлять значения задержек. Т.е. в большинстве случаев можно будет не использовать действия DELAY и DELAY_PLAYER.
  • Активатор COMMAND теперь поддерживает регулярные выражения и создает новые временные плейсхолдеры.
  • Команды создаваемые активатором COMMAND теперь поддерживают автозаполнение по кнопке "tab".
  • Активатор SIGN теперь поддерживает цветной текст на табличках.
  • Более простой способ создания активатора SIGN. Теперь можно направить прицел на табличку с текстом и написать команду: /react add SIGN <AtivatorId>.
  • Действия DAMAGE и HEAL теперь поддерживают параметр "игрок". Можно бить и лечить любых игроков.
  • Действие SOUND поддерживает координаты (параметр "loc") точки в которой будет проигрываться звук.
  • Активатор MOB_CLICK теперь использует новый формат описания мобов. Старый формат также поддерживается.
  • Функции связанные с плагином Factions теперь совместимы с новыми версиями Factions.
  • Пустые секции флагов, действий, реакций теперь не сохраняются в файлах активаторов. Можно включить старый способ сохранения в файле конфигурации (config.yml)
  • Добавлено множество временных плейсхолдеров (создаваемых активаторами, действиями, флагами)
http://dev.bukkit.org/media/files/885/923/ReActions.jar
Также у плагина появилась страничка на сайте spigot (буду благодарен за звёздочки ;)): https://www.spigotmc.org/resources/reactions.8754/
Отлично! Теперь в плане работы с сущностями ReActions круче Essentials! А с полной документацией я наконец-то закончу сервер-пример! Спасибо :)
 
Прекрасная новость! Спасибо. Но, судя по номеру - это не релиз?
 
Прекрасная новость! Спасибо. Но, судя по номеру - это не релиз?

Почему? Это релиз. Стабильная версия 0.9.5. Для версии 1.0.0 - у меня планы и мысли, не факт, что это будет скоро ;)

Отлично! Теперь в плане работы с сущностями ReActions круче Essentials! А с полной документацией я наконец-то закончу сервер-пример! Спасибо :)
Жду с нетерпением! :)
Сделай активатор по клику на нпс из citizens

Выше, @Lyosha12 давал шикарный совет. Активатор MOB_CLICK, параметры: тип моба - PLAYER, имя моба - имя NPC :)
Круто! Спасибо!!!
И сразу вопрос:

Если тип моба type: player, то в плейсхолдер %mobname% мы получим ник игрока?

Должно быть так, не пробовал.
 
Жду с нетерпением! :)
Я, конечно, дико извиняюсь, но мне придётся начать всё заново. Воспринимая лишь только теорию нельзя понять ничего. Пройдясь по всему туториалу, я мог понимать о чём пишу только основываясь на личном опыте. Так что, я сделаю вторую версию с возможностью "пощупать" каждую ниточку :)
А проблема с двоеточием в тексте решена? Кавычки убираются сами при перезагрузке конфига.
Неее, не решена... Вторая строка просто пропускается:
Код:
    - MESSAGE=При редактировании активаторов через конфиг следует помнить
    - MESSAGE=о причуде формата yml: пропустите пробел - конфиг сбросится.
Если честно, то при написании больших гайдов такая заморочка несколько утомляет. Ещё немного раздражает перенос строки при слишком большом количестве слов на ней.
Она переносится, задевая пробел перед первым словом. В итоге, весь текст далее смещается и приходится его распихивать по строкам вручную.

Помнится, в Java есть 2 способа выводить текст на экран: System.out.print() и System.out.println(). Второй тип ставит в начале строки символ её переноса и всё, что далее, пишется на новой строке. И, я так понимаю, в Minecraft перенос строк реализован вторым методом. Можно ли его подправить силами ReActions хотя бы в его собственных сообщениях?
 
Последнее редактирование:
@fromgate, а для чего после создания активатора появляется строка, где указано количество флагов, действий и противодействий? Разве они не должны равняться нулю по-умолчанию? Гораздо уместнее было бы выводить все аргументы, которые были использованы в создании. Уместнее и полезнее - можно сразу найти ошибку, а не лезть в кофниг.
@fromgate,
ошибки в /help. Зачем указывать частный случай создания активатора-кнопки?
 

Вложения

  • Снимок.PNG
    Снимок.PNG
    85,1 КБ · Просмотры: 11
Должно быть так, не пробовал
отлично, эх, еще бы к активатору MOB_CLICK, добавить активатор MOB_DAMAGE, с сходными параметрами, а также возможностью усиливать/уменьшать/отменять наносимый урон ;)
 
Код:
  shoot: # настройка ломаемых или проницаемых блоков для действия SHOOT

break-block: GLASS,THIN_GLASS,STAINED_GLASS,STAINED_GLASS_PANE,GLOWSTONE,REDSTONE_LAMP_OFF,REDSTONE_LAMP_ON

penetrable: FENCE,FENCE_GATE,IRON_BARDING,IRON_FENCE,NETHER_FENCE
А не проще было бы указывать эти параметры в самом действии? Тогда можно было бы создать много типов оружия :)
Кстати, уже можно построить коробку вокруг игрока, используя %PLAYER_LOC% и аргумент add-vector в действии? Примерно так? block_set=block:98 loc:{%PLAYER_LOC% add-vector:0,2,0}
Код:
При выполнении активатора, сначала происходит проверка флагов и если хоть один флаг дал отрицательный результат при проверке, то выполняться будет набор действий, а не реакций.
Может, наоборот? http://reactions.fromgate.ru/flags.htm
Кстати, забыли упомянуть про возможность инвертировать флаги.
 
@fromgate, а для чего после создания активатора появляется строка, где указано количество флагов, действий и противодействий? Разве они не должны равняться нулю по-умолчанию? Гораздо уместнее было бы выводить все аргументы, которые были использованы в создании. Уместнее и полезнее - можно сразу найти ошибку, а не лезть в кофниг.
Да, до этого руки никак не доходят. Надо переделать метод строчного представления активатора.

А не проще было бы указывать эти параметры в самом действии? Тогда можно было бы создать много типов оружия :)
Рано или поздно так и будет. Я уже об этом думал неоднократно.

Кстати, уже можно построить коробку вокруг игрока, используя %PLAYER_LOC% и аргумент add-vector в действии? Примерно так? block_set=block:98 loc:{%PLAYER_LOC% add-vector:0,2,0}
Вполне. Только одним действием не обойтись - нужно "поблочно" всё выкладывать.

При выполнении активатора, сначала происходит проверка флагов и если хоть один флаг дал отрицательный результат при проверке, то выполняться будет набор действий, а не реакций.[/code]
Может, наоборот? http://reactions.fromgate.ru/flags.htm
http://reactions.fromgate.ru/flags.htm
О! Точно. Но это был такой марафон, что просто... щас исправим.

Кстати, забыли упомянуть про возможность инвертировать флаги.
и добавим ;)
 
Тут можно было бы добавить онлайн-проверку регулярного выражения, которую Вы однажды мне показали: http://regex101.com/ :)
@fromgate, почему-то не работает REGION:
Код:
  region-recheck-delay: 2
Код:
REGION:
  Activator-REGION-2:
    region: activator-region-2
    flags: []
    actions:
    - MESSAGE=&r
    - MESSAGE=&c[&e▼&c]&3------------------------------------------------&c[&e▼&c]
    - MESSAGE=Пример активатора &bREGION&r.
    reactions: []
Появляется лишь одна пустая строка в чате, а через время, продолжительное время (ну никак не две секунды) идёт повтор.
 
@Lyosha12
Скорее всего срабатывает защита от спама сообщениями. Очень старое "изобретение" - сделано, было чтобы игрока не засыпало однотипными сообщенями.
Попробуй вместо MESSAGE запускать команду /say - должно быть нормально.

Похоже пора заняться действием MESSAGE вполтную.
 
Попробуй вместо MESSAGE запускать команду /say - должно быть нормально.
Но say же говорит на весь сервер...
Похоже пора заняться действием MESSAGE вполтную.
Отправка сообщения игрокам в радиусе от точки\игрока\моба... Жду :)
Очень старое "изобретение" - сделано, было чтобы игрока не засыпало однотипными сообщенями.
Сообщениями о выполнении действия MESSAGE? (Если такое есть). Вообще, засыпать игрока сообщениями или нет - решает автор активатора. Это вполне можно сделать средствами ReActions.
 
Но say же говорит на весь сервер...
Я имел в виду для теста.

Отправка сообщения игрокам в радиусе от точки\игрока\моба... Жду :)
Добавлю. Вроде уже решил проблем с двоеточием.

Сообщениями о выполнении действия MESSAGE? (Если такое есть). Вообще, засыпать игрока сообщениями или нет - решает автор активатора. Это вполне можно сделать средствами ReActions.
Ну это уже история, я уже смутно помню. Ситуация была такая. Делался регион — телепорт, в котором находился игрок. Он туда заходил и ждал какое-то время. Соответственно, через минуту чат был засыпан мусором. Вот чтобы мусора не было, ряд сообщений обрезался. В принципе можно убрать, или вынести в параметр (тогда параметров в сообщении не было).
 
Параметры - это хорошо :)
 
@Lyosha12
0.9.5/1
https://dl.dropboxusercontent.com/u/64799811/ReActions/ReActions.jar

Здесь:
1. Исправлена ситуация с пропаданием части сообщения из-за запятой.
2. В действие MESSAGE добавлен параметр hide - в нём указывается время, в течение которого не отображать повторно точно такое же сообщение.
3. В действие MESSAGE добавлены параметры loc и radius. Если loc пропущен - берутся координаты игрока. Сделано, чтобы отображать сообщение игрокам расположенным в пределах указанного радиуса.
Это пока модификация только действия Message. В остальных случаях, пока, подобный метод выбора игроков не работает.
 
Здесь надо бы добавить фигурных побольше:
/react add COMMAND <ИмяАктиватора> command:{<КоманднаяСтрока>} override:<true/false> regex:<true/false>
@Lyosha12
0.9.5/1
https://dl.dropboxusercontent.com/u/64799811/ReActions/ReActions.jar

Здесь:
1. Исправлена ситуация с пропаданием части сообщения из-за запятой.
2. В действие MESSAGE добавлен параметр hide - в нём указывается время, в течение которого не отображать повторно точно такое же сообщение.
3. В действие MESSAGE добавлены параметры loc и radius. Если loc пропущен - берутся координаты игрока. Сделано, чтобы отображать сообщение игрокам расположенным в пределах указанного радиуса.
Это пока модификация только действия Message. В остальных случаях, пока, подобный метод выбора игроков не работает.
Быстро Вы ;D
@fromgate, почему количество аргументов 9, хотя их 10?
Код:
  Activator-COMMAND-5:
    override: false
    regex: true
    command: О плейсхолдерах(\s+\S+){3,}
    flags: []
    actions:
    - MESSAGE=&r
    - MESSAGE=&c[&e▼&c]&3------------------------------------------------&c[&e▼&c]
    - MESSAGE=Итак, чтобы узнать, какой аргумент ввёл игрок в команде,
    - MESSAGE=нужно в действиях указать &aплейсхолдер&r -
    - MESSAGE=&d%&darg&c<&3НомерНужногоАргумента&c>&d%
    - MESSAGE=Например, второй аргумент в данной команде был "&d%arg2%&r".
    - MESSAGE=А вот пятый, если он был:&r "&d%arg5%&r".
    - MESSAGE=&r
    - MESSAGE=Можно вывести все аргументы после конкретного:&d
    - MESSAGE=&d%&dargs&c<&3НомерНужногоАргумента&c>&d%&r.
    - MESSAGE=&r
    - MESSAGE=Пример. Это все аргументы, которые были после третьего,
    - MESSAGE=не включая третий аргумент:&r "&d%args3%&r"
    - MESSAGE=&r
    - MESSAGE=Можно вывести все аргументы, кроме команды - &d%&dargs%&r:&e
    - MESSAGE="&d%args%&r"
    - MESSAGE=&r
    - MESSAGE=Завершая тему плейсхолдеров в командах, можно узнать
    - MESSAGE=сколько аргументов было - &d%&dArgsCount%&r:&a %ArgsCount%
    reactions: []
upload_2015-6-29_1-28-20.png
@fromgate, а как насчёт отмены сообщения игрока через cancel_event в активаторе MESSAGE?
@Lyosha12
0.9.5/1
https://dl.dropboxusercontent.com/u/64799811/ReActions/ReActions.jar

Здесь:
1. Исправлена ситуация с пропаданием части сообщения из-за запятой.
2. В действие MESSAGE добавлен параметр hide - в нём указывается время, в течение которого не отображать повторно точно такое же сообщение.
3. В действие MESSAGE добавлены параметры loc и radius. Если loc пропущен - берутся координаты игрока. Сделано, чтобы отображать сообщение игрокам расположенным в пределах указанного радиуса.
Это пока модификация только действия Message. В остальных случаях, пока, подобный метод выбора игроков не работает.
Хм, теперь вообще ни одно сообщение не выводится...
@fromgate, а при делении с остатком можно вывести этот самый остаток в переменную?
У нас есть 10 переменных с предметами в них. Каким способом их можно выдать трём игрокам без остатка? При чём, располагаться они должны в случайном порядке.

На ум приходит только способ с плейсхолдером рандомного числа. Он генерирует число от одного до десяти десять раз, и номер того предмета, что выпадает, выдаётся трём игрокам "по кругу". Однако, как исключить возможность генерации одного и того же числа дважды и больше?
@fromgate, мне оставить место в туториале для активатора-смерти (обычной, от моба)? Или он будет добавлен ещё не скоро? Или Вы планируете переделать активаторы PVP_*, используя соответствующие параметры, указывающие на условия их запуска, как в случае с MESSAGE?
 
Хотел создать, настенные часы , сделал все как на туториале, а на этой команде ошибку выдало
/react add timer clock timer-type:server timer:0/1:*,*:*,*:? activator:clock
 
Назад
Верх