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

По поводу первой ошибки, обратите внимание на синтаксис (я писал в сообщении выше):

/react add hal a DELAY_PLAYER id:<ИдКулдауна> delay:1h

Вы пишете - "time:1h"

Вообще это логично, поэтому в следующей версии сделаю поддержку и time и delay (они будут равнозначны).
(ссылка на девбилд с этими изменениями - ниже).


Вторая ошибка - тут хуже. Я случайно использовал процедуру парсинга координат из плагина PlayEffect, а не собственную от ReActions.
Поэтому если поставите PlayEffect - ошибка исчезнет.

Ну или ставьте версию:
https://dl.dropboxusercontent.com/u/64799811/ReActions/ReActions.jar

Там есть ряд изменений, о которых расскажу позже - надеюсь вечером подготовить новую версию, главное не использовать новый активатор VARIABLE (он пока не завершен).
@Korvinius ситуация с действием TP внутри события телепортации (при телепортации в/из региона) исправлена.

Активатор MESSAGE работает. Пример использования - в видео на предыдущей странице.

@Icar этот активатор может быть интересен Вам :)
 
По поводу первой ошибки, обратите внимание на синтаксис (я писал в сообщении выше):

/react add hal a DELAY_PLAYER id:<ИдКулдауна> delay:1h

Вы пишете - "time:1h"

Вообще это логично, поэтому в следующей версии сделаю поддержку и time и delay (они будут равнозначны).
(ссылка на девбилд с этими изменениями - ниже).


Вторая ошибка - тут хуже. Я случайно использовал процедуру парсинга координат из плагина PlayEffect, а не собственную от ReActions.
Поэтому если поставите PlayEffect - ошибка исчезнет.

Ну или ставьте версию:
https://dl.dropboxusercontent.com/u/64799811/ReActions/ReActions.jar

Там есть ряд изменений, о которых расскажу позже - надеюсь вечером подготовить новую версию, главное не использовать новый активатор VARIABLE (он пока не завершен).
@Korvinius ситуация с действием TP внутри события телепортации (при телепортации в/из региона) исправлена.

Активатор MESSAGE работает. Пример использования - в видео на предыдущей странице.

@Icar этот активатор может быть интересен Вам :)
О, все заработало. Больше спасибо. :)
Ошибка в дев билде плагина, вроде как хочет, чтобы я поставил Factions:
Код:
12:40:36 [SEVERE] Error occurred while enabling ReActions v0.9.2/3 (Is it up to date?)
java.lang.NoClassDefFoundError: com/massivecraft/factions/RelationParticipator
        at me.fromgate.reactions.ReActions.onEnable(ReActions.java:111)
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217)
        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:457)
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:381)
        at org.bukkit.craftbukkit.v1_6_R3.CraftServer.loadPlugin(CraftServer.java:284)
        at org.bukkit.craftbukkit.v1_6_R3.CraftServer.enablePlugins(CraftServer.java:266)
        at net.minecraft.server.v1_6_R3.MinecraftServer.l(MinecraftServer.java:315)
        at net.minecraft.server.v1_6_R3.MinecraftServer.f(MinecraftServer.java:292)
        at net.minecraft.server.v1_6_R3.MinecraftServer.a(MinecraftServer.java:252)
        at net.minecraft.server.v1_6_R3.DedicatedServer.init(DedicatedServer.java:152)
        at net.minecraft.server.v1_6_R3.MinecraftServer.run(MinecraftServer.java:393)
        at net.minecraft.server.v1_6_R3.ThreadServerApplication.run(SourceFile:583)
Caused by: java.lang.ClassNotFoundException: com.massivecraft.factions.RelationParticipator
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at org.bukkit.plugin.java.PluginClassLoader.findClass0(PluginClassLoader.java:80)
        at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:53)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        ... 12 more
 
Можете объяснить более понятно, как делать меню? Не понятен пункт с set.
 
Можете объяснить более понятно, как делать меню? Не понятен пункт с set.
Поддерживаю.
Также хотелось бы уточнить еще кое - что насчет меню:
У меня присутствует такой баг (Или фича, не знаю):
Каким бы ни был title (Заголовок) меню - он не отображается. Заголовок - всегда "ReActions menu"
 
Значит так:

Естьдва способа отобразить меню:
1. Неудобный, но зато в одну строчку. Описать полностью меню в действии MENU_ITEM.
Недостаток - длинная запись, при добавлении из командной строки вряд ли удастся добавить больше одного элемента.
Пример (из конфига):
- menu_item=size:9 title:{ReActions menu} slot1:Execute_exec1_activator$DIAMOND exec1:exec1 slot2:Execute_exec2_activator$DIAMOND exec2:exec2

Аналог команды: :
/react add <ИдАктиватора> a MENU_ITEM size:9 title:{ReActions menu} slot1:Execute_exec1_activator$DIAMOND exec1:exec1 slot2:Execute_exec2_activator$DIAMOND exec2:exec2

2. Более удобный - через отдельное меню. Пример описания меню (файл menu.yml):

Код:
testmenu:
  title: This is a test menu!
  size: 18
  slot1:
    item: '&6Выполнить активатор exec1$DIAMOND'
    activator: exec1
  slot3:
    item: DIRT
    activator: exec2

Это меню соответственно также открывается действием MENU_ITEM, но строка действия будет уже короче:

- MENU_ITEM=menu:test

Командами меню создается так:
/react add menu <ИдМеню> [Размер] [Заголовок меню]

Т.е. для нашего примера:
/react add testmenu 18 This is a test menu!

Затем в этом меню настраиваются элементы/слоты:
/react set id:<ИдМеню> <Параметр>:<Значение>, где <Параметр> это: size, title, item1, ..., itemN, activator1, ..., activatorN.

То есть, чтобы задать предмет в слоте 1 пишем:
/react set menu id:<ИдМеню> item1:{&6Выполнить активатор exec1$DIAMOND} activator1:exec1
/react set menu id:<ИдМеню> item3:DIRT activator3:exec2


На мой взгляд редактировать файл проще. Но если нет доступа к нему или лениво лезть по фтп (в общем у кого как ;)) то можно и командами.

Кстати, активатор может быть привязан и к пустому слоту ;)

Ну и соответственно есть команды :
  • /react remove menu <MenuId> — удалить меню
  • /react list menu [page] [mask] — отобразить список меню
  • /react info menu <MenuId>— отобразить подробную информацию по меню
 
Значит так:

Естьдва способа отобразить меню:
1. Неудобный, но зато в одну строчку. Описать полностью меню в действии MENU_ITEM.
Недостаток - длинная запись, при добавлении из командной строки вряд ли удастся добавить больше одного элемента.
Пример (из конфига):
- menu_item=size:9 title:{ReActions menu} slot1:Execute_exec1_activator$DIAMOND exec1:exec1 slot2:Execute_exec2_activator$DIAMOND exec2:exec2

Аналог команды: :
/react add <ИдАктиватора> a MENU_ITEM size:9 title:{ReActions menu} slot1:Execute_exec1_activator$DIAMOND exec1:exec1 slot2:Execute_exec2_activator$DIAMOND exec2:exec2

2. Более удобный - через отдельное меню. Пример описания меню (файл menu.yml):

Код:
testmenu:
  title: This is a test menu!
  size: 18
  slot1:
    item: '&6Выполнить активатор exec1$DIAMOND'
    activator: exec1
  slot3:
    item: DIRT
    activator: exec2

Это меню соответственно также открывается действием MENU_ITEM, но строка действия будет уже короче:

- MENU_ITEM=menu:test

Командами меню создается так:
/react add menu <ИдМеню> [Размер] [Заголовок меню]

Т.е. для нашего примера:
/react add testmenu 18 This is a test menu!

Затем в этом меню настраиваются элементы/слоты:
/react set id:<ИдМеню> <Параметр>:<Значение>, где <Параметр> это: size, title, item1, ..., itemN, activator1, ..., activatorN.

То есть, чтобы задать предмет в слоте 1 пишем:
/react set menu id:<ИдМеню> item1:{&6Выполнить активатор exec1$DIAMOND} activator1:exec1
/react set menu id:<ИдМеню> item3:DIRT activator3:exec2


На мой взгляд редактировать файл проще. Но если нет доступа к нему или лениво лезть по фтп (в общем у кого как ;)) то можно и командами.

Кстати, активатор может быть привязан и к пустому слоту ;)

Ну и соответственно есть команды :
  • /react remove menu <MenuId> — удалить меню
  • /react list menu [page] [mask] — отобразить список меню
  • /react info menu <MenuId>— отобразить подробную информацию по меню
Спасибо.
 
Не могу просмотреть список флагов и прочего:
5f7d52b268.png
 
Было бы хорошо сделать обыкновенный гайд по созданию магазина с помощью плагина, можно даже в текстовом варианте.
 
Снова здравствуйте, пытаюсь сделать лотерею,
Везде, где нужно (можно) подставлять в качестве параметра предмет, вы можете использовать следующую конструкцию:
[ИмяПредмета[Описание]]<ИДПредмета>[Количество][Цвет][Чары[Сила]][Шанс]
Что меня больше всего нужно это [Шанс], но, призы могут быть разные, как вещи, ресурсы, деньги, опыт, эффекты и т.д., в идеале это было бы очень удобно реализовать с помощью активаторов (EXEC), если бы к действию Выполнение активатора (EXECUTE), можно было прикрутить этот самый [Шанс]. Такое возможно или нет? Если нет, то возможно добавление этого в следующих версиях?
И еще одно,
Ношение предмета в руке (ITEM_HOLD)
/react add item_hold <Предмет>
команда например:
/react add item_hold diamond
не работает, отправляет к /ra help, что не правильно?
Такое возможно или нет?
хотя, я тут подумал, если активатор (EXEC) может иметь неограниченную степень вложенности, то наверное мою идею можно попробовать реализовать с помощью флагов CHANCE..
хотя, я тут подумал, если активатор (EXEC) может иметь неограниченную степень вложенности, то наверное мою идею можно попробовать реализовать с помощью флагов CHANCE..
:good: получилось!!!
@Korvinius
Значит так.
Набор флагов - это фактически такая конструкция:

EСЛИ условие1 И условие2 И.. условиеN

Кроме того, есть флаг... FLAG который возвращает true когда хоть один из флагов в конструкции отработал успешно. Т.е. по сути это конструкция:
FLAG (EСЛИ условие1 ИЛИ условие2 ИЛИ.. условиеN)

Подскажите пожалуйста как правильно использовать этот "флаг... FLAG", я что то в этой теме о нем ничего не нахожу :oops:
 
Ох.. надо мне всё же собраться с духом и навести порядок в документации..
В английском разделе это есть: http://dev.bukkit.org/bukkit-plugins/reactions/pages/main/flags/

FLAG_SET. Check all flags in the list and return true if any. Parameter: <[!]<flag1>=<value1> [!]<flag2>=<value2> ...>


Т.е. проверяет все флаги и возвращает true если хоть один отработал "положительно".
 
/react add item_hold <НазваниеАктиватора> <ОписаниеПредмета>

Думаю не хватает описания предмета
 
Значит так:

Естьдва способа отобразить меню:
1. Неудобный, но зато в одну строчку. Описать полностью меню в действии MENU_ITEM.
Недостаток - длинная запись, при добавлении из командной строки вряд ли удастся добавить больше одного элемента.
Пример (из конфига):
- menu_item=size:9 title:{ReActions menu} slot1:Execute_exec1_activator$DIAMOND exec1:exec1 slot2:Execute_exec2_activator$DIAMOND exec2:exec2

Аналог команды: :
/react add <ИдАктиватора> a MENU_ITEM size:9 title:{ReActions menu} slot1:Execute_exec1_activator$DIAMOND exec1:exec1 slot2:Execute_exec2_activator$DIAMOND exec2:exec2

2. Более удобный - через отдельное меню. Пример описания меню (файл menu.yml):

Код:
testmenu:
  title: This is a test menu!
  size: 18
  slot1:
    item: '&6Выполнить активатор exec1$DIAMOND'
    activator: exec1
  slot3:
    item: DIRT
    activator: exec2

Это меню соответственно также открывается действием MENU_ITEM, но строка действия будет уже короче:

- MENU_ITEM=menu:test

Командами меню создается так:
/react add menu <ИдМеню> [Размер] [Заголовок меню]

Т.е. для нашего примера:
/react add testmenu 18 This is a test menu!

Затем в этом меню настраиваются элементы/слоты:
/react set id:<ИдМеню> <Параметр>:<Значение>, где <Параметр> это: size, title, item1, ..., itemN, activator1, ..., activatorN.

То есть, чтобы задать предмет в слоте 1 пишем:
/react set menu id:<ИдМеню> item1:{&6Выполнить активатор exec1$DIAMOND} activator1:exec1
/react set menu id:<ИдМеню> item3:DIRT activator3:exec2


На мой взгляд редактировать файл проще. Но если нет доступа к нему или лениво лезть по фтп (в общем у кого как ;)) то можно и командами.

Кстати, активатор может быть привязан и к пустому слоту ;)

Ну и соответственно есть команды :
  • /react remove menu <MenuId> — удалить меню
  • /react list menu [page] [mask] — отобразить список меню
  • /react info menu <MenuId>— отобразить подробную информацию по меню
Есть ли возможность изменять описание предмета из меню? Если да, то как это будет выглядеть в самом конфиге (menu.yml)?
 
Подскажите пожалуйста. Возможно ли этим плагином ограничить количесвто выдаваемого опыта? К примеру игрок(пермиум) выдал себе 99999999 опыта а плагин увидев это сбрасывает опыт до 999.
 
Подскажите пожалуйста. Возможно ли этим плагином ограничить количесвто выдаваемого опыта? К примеру игрок(пермиум) выдал себе 99999999 опыта а плагин увидев это сбрасывает опыт до 999.
можно создать активатор на команду, где передать количество выдаваемого опыта в переменную, сравнивать эту переменную с нужным значением, если оно меньше или равно граничного, выполнять команду, а если больше, тогда можно отменить выполнение команды или заменить количество выдаваемого опыта на нужное.
Даже можно разрешить игроку выполнять эту команду не чаще чем один раз в 24 часа.

Я правильно описал способ надеюсь?
Меня снова интересует парочка вопросов, есть такой активатор:
COMMAND:
give-the-dorans:
command: give-the-dorans
flags:
- PERM=artefactum-dorans
- DELAY=give-the-dorans
- ITEM=&6Боевой_топор_&3Дорана$279
actions:
- DELAY=86400/give-the-dorans
- item_remove_inventory=&6Боевой_топор_&3Дорана$279
- cmd_console=pex user %player% remove artefactum
- cmd_console=pex user %player% remove artefactum-dorans
- cmd_console=pex user %arg1% add artefactum
- cmd_console=pex user %arg1% add artefactum-dorans
reactions:
- message=&2[&5Оружейник&2] &3- &4У Вас нет прав на эту команду в данное время
здесь, значение DELAY устанавливает ограничение на выполнение команды (/give-the-dorans ник_игрока) только один раз в 24 часа, для всех. Если заменить флаг DELAY на DELAY_PLAYER, то ограничение на выполнение команды установится для игрока ее выполнившего команду: %player%, что абсолютно не нужно, можно каким то способом установить это ограничение для игрока относительно которого выполняется команда: %arg1%, то есть, чтобы не было возможности непрерывно передавать эти пермишены, а только 1 раз в 24 часа, в каждом отдельно взятом случае?
И второй вопрос:
EXEC:
art-delay:
flags:
- DELAY_PLAYER=art-delay
actions:
- DELAY_PLAYER=86400/art-delay
- execute=activator:art-thunderer
reactions:
- message=&2[&5Оружейник&2] &3- &4Не истекло время задержки в 24 часа!
Возможно ли со всего этого вытащить, например в качестве плейсхолдера информацию об остатке времени задержки и вставить её сюда:
- message=&2[&5Оружейник&2] &3- &4Не истекло время задержки, осталось %placeholders% !
чтобы игроки могли видеть остаток времени.

Чем больше познаю этот плагин, тем больше восхищаюсь его возможностями!!!
 
можно создать активатор на команду, где передать количество выдаваемого опыта в переменную, сравнивать эту переменную с нужным значением, если оно меньше или равно граничного, выполнять команду, а если больше, тогда можно отменить выполнение команды или заменить количество выдаваемого опыта на нужное.
Даже можно разрешить игроку выполнять эту команду не чаще чем один раз в 24 часа.

Я правильно описал способ надеюсь?


примерно да. я прост ноль в этом плагине. буду разбираться
 
примерно да. я прост ноль в этом плагине. буду разбираться
есть более простой способ, все сделать так, как нужно, отберите у своих премиумов права на эту команду, и с помощью RA создайте им специальную команду, которая будет выдавать фиксированное количество опыта в определенный промежуток времени, это будет во много раз проще, чем тот способ, который я описывал выше.
 
Назад
Верх