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

@Korvinius
http://reactions.fromgate.me/placeholders.htm

Единственное, временные плейсхолдеры, вносимые разными активаторами и действиями приведены в описаниях соответствующих флагов, активаторов и действий
 
Как только пытаюсь добавить параметры к предмету плагин перестает его выдать, я наверное что-то неправильно делаю?
test2:
world: world
x: -150
y: 64
z: -61
flags: []
actions:
- ITEM_GIVE=type:DIAMOND amount:3
reactions: []
 
Версия плагина какая? Этот синткасис для последних версий (на BukkitDev её еще нет)?
 
Версия плагина какая? Этот синткасис для последних версий (на BukkitDev её еще нет)?
Спасибо поменял версию на более новую, все работает замечательно
Хотел чтобы при нажатии на кнопку забиралось 128 предметов, это возможно или плагин считает предметы только в одном слоте?
 
Спасибо поменял версию на более новую, все работает замечательно
Хотел чтобы при нажатии на кнопку забиралось 128 предметов, это возможно или плагин считает предметы только в одном слоте?
Во всех
 
Помогите. как сделать, чтобы кнопка 1 раз работала
rg:
world: world
x: -150
y: 64
z: -61
flags:
- ITEM_INVENTORY=type:DOUBLE_PLANT amount:24 name:{&6Золотая монета}
actions:
- CMD_OP=rg addowner test1 %PLAYER_NAME%
- ITEM_REMOVE_INVENTORY=type:DOUBLE_PLANT amount:24 name:{&6Золотая монета}
- SIGN_SET_LINE=loc:world,-150,63,-61 line1:&aРегион продан игроку line2:&aигроку &6%PLAYER_NAME%
reactions: []
 
@Lyosha12
Кстати, а можно добавить активатор SIGN, просто используя табличку перед носом, без указания нужных строк в команде?
Это шикарная мысль, почему я сам не догадался сразу - вообще не понимаю. Сделано! ;)
 
Если я правильно понял, это была шутка.
Тогда поясните мне её, ибо понять свой юмор я не в состоянии.
@fromgate, а как можно синхронизировать ReActions с днями? Например, нужно что-то менять каждый реальный день, но как узнать, когда день кончился? Если использовать таймер на переменной, то, во-первых, из-за лагов могут быть огромные сдвиги, а во-вторых, нельзя будет определить какой именно сейчас день недели...
 
@Эээ... Таймеры? Крон-формат довольно гибкий (хоть у меня до сих пор в мозгах не уложился, и я всегда обращаюсь к документации):
"0 15 10 * * ?" — это описывает время 10:15 каждого дня. Это самая лучшая "синхронизация".
Вот тут примеры всяческие: http://quartz-scheduler.org/documentation/quartz-2.2.x/tutorials/crontrigger
 
@Эээ... Таймеры? Крон-формат довольно гибкий (хоть у меня до сих пор в мозгах не уложился, и я всегда обращаюсь к документации):
"0 15 10 * * ?" — это описывает время 10:15 каждого дня. Это самая лучшая "синхронизация".
Вот тут примеры всяческие: http://quartz-scheduler.org/documentation/quartz-2.2.x/tutorials/crontrigger
А относительно чего синхронизация происходит? Времени, которое установил хост где-то у себя, или Гринвича?
 
1396788370.png
Как насчет цветов этой непонятной штуки, они тоже поддерживаются?
 
А относительно чего синхронизация происходит? Времени, которое установил хост где-то у себя, или Гринвича?

По идее - время хоста. У меня на локальной машине - это московское время.

1396788370.png
Как насчет цветов этой непонятной штуки, они тоже поддерживаются?

Поддерживается. Воспользуйся плейсхолдером, который подсказал @Lyosha12

К примеру можно сделать такой активатор:
Код:
COMMAND:
  iteminfo:
    override: true
    regex: false
    command: cmd:iteminfo
    actions:
    - VAR_SET=id:iteminfo value:%PLAYER_ITEM_HAND%
    - MESSAGE=%PLAYER_ITEM_HAND%
Взять любой предмет в руки и написать /iteminfo - в чате увидишь текст из которого можно потом получить обратно этот предмет, а в файле variables.yml в переменной iteminfo он сохранится (т.е. можно будет скопировать и вставить куда-то)

Вот пример, такой же звёздочки для фейерверка, которая лежала у меня в сундуке с момента тестов: amount:1 data:0 type:FIREWORK_CHARGE firework-effects:{type:CREEPER flicker:false trail:false colors:195,84,205}
Начал работу над переводом инструкции. Начало положено: http://reactions.fromgate.ru/
 
@fromgate, я уже говорил про радиусы когда-то. Но сейчас хочу опять поднять эту тему и усовершенствовать. Предлагаю создать гибрид FLAG_SET и нового формата описания сущностей.

Итак... нужно сделать флаг, который бы проверял наличие игрока\моба\локации в радиусе от игрока\моба\локации. Синтаксис я представляю себе такой:
Код:
FLAG_RADIUS=<r:N-блоков> <spot:{player:{amount_spot_players:N [<max_rad_spot_player | max_rad_spot_mob>:N-блоков] players_spot_flags<1-N>:{FLAG1:{ARG1} FLAG2:{ARG2}}} | mob:{amount_spot_mob:N mob_spot_flags<1-N>:{FLAG1:{ARG1} FLAG2:{ARG2}}} | loc}> <PLAYER_rad | MOB_rad>:{<amount_rad_players | amount_rad_mobs>:N [<max_rad_rad_player | max_rad_rad_mob>:N-блоков] <FLAGS_rad_player<1-N> | FLAGS_rad_mob<1-N>>:{FLAG1:{ARG1} FLAG2:{ARG2}}}
В такой громадной конструкции постарался уместить все нюансы. Разберём по частям:
<r:N-блоков> - соответственно, радиус относительно мобов\игроков.

Код:
<spot:{player:{amount_spot_players:N [<max_rad_spot_player | max_rad_spot_mob>:N-блоков] players_spot_flags<1-N>:{FLAG1:{ARG1} FLAG2:{ARG2}}} | mob:{amount_spot_mob:N mob_spot_flags<1-N>:{FLAG1:{ARG1} FLAG2:{ARG2}}} | loc}>

spot - относительно чего задаётся радиус.
<player:{...} | mob:{...} | loc> - задать радиус относительно игрока\моба\локации.
--- --- ---
Код:
player:{amount_spot_players:N players_spot_flags:{FLAG1:{ARG1} FLAG2:{ARG2}}}
amount_spot_players - необходимое количество игроков в группе, относительно которых задаётся радиус.
<max_rad_spot_player | max_rad_spot_mob>:N-блоков - максимальный радиус, когда игрок\моб становится членом группы.
players_spot_flags - то, чему должны соответсвовать игрок(и), относительно которых задаётся радиус.

mob:{amount_spot_mob:N mob_spot_flags:{FLAG1:{ARG1} FLAG2:{ARG2}}}
amount_spot_mob - необходимое количество мобов в группе, относительно которых задаётся радиус.
mob_spot_flags - то, чему должны соответсвовать моб(ы), относительно которых задаётся радиус.

=== === ===

Код:
<PLAYER_rad | MOB_rad:{<amount_rad_players | amount_rad_mobs>:N [<max_rad_rad_player | max_rad_rad_mob>:N-блоков] [FLAGS_rad_player<1-N> | FLAGS_rad_mob<1-N>:{mob_type:<...> hp:<...> effect:<...> equip:{...}}]}

<PLAYER_rad | MOB_rad> - кого проверяем в радиусе: игроков или мобов?
<amount_rad_players | amount_rad_mobs>:N - количество игроков\мобов, которых проверяем в данном радиусе.
[<max_rad_rad_player | max_rad_rad_mob>:N-блоков] - максимальный радиус, когда игрок\моб становится членом группы. (Н-да, небольшой каламбур вышел в аргументе...)
--- --- ---
Код:
[FLAGS_rad_player<1-N> | FLAGS_rad_mob<1-N>:{ [mob_type:<...> hp:<...> effect:<...> equip:{...}] FLAG1:{ARG1} FLAG2:{ARG2}}]

[FLAGS_rad_player<1-N> | FLAGS_rad_mob<1-N> - то, чему должны соответствовать проверяемые мобы\игроки.
[mob_type:<...> hp:<...> effect:<...> equip:{...}] - флаги для мобов в радиусе.
FLAG1:{ARG1} FLAG2:{ARG2} - флаги для игроков в радиусе.

=== === ===
<1-N> - здесь я хотел сказать, что можно было бы указывать параметры отдельно для каждого члена группы. Например, нужно собрать группу из пяти типов: атакующий маг, копатель, танк, копейщик, лечащий маг. Используя формат FLAGS_rad_playerN:{...} можно было бы легко описать всех.

Насчёт групп игроков\мобов: в них нужно определить геометрический центр формации и относительно него проверять, есть ли игроки\мобы в радиусе. Однако, если радиус проверки захватывает группу игроков\мобов, то под проверку группа подпадает только в случае, когда хотя бы один её член задевает радиус.

Сами же "группы" предлагаю "составлять" так: берём одну особь и проверяем, нет ли в радиусе от неё другой особи. Если есть, то продолжаем проверку уже относительно второй особи в том же радиусе.
Но нужно установить лимит. Например, максимальный геометрический радиус группы от центра не может быть больше 20 блоков. Это аргумент я уже описывал выше.

Фууухх... Вроде, ничего не забыл. Так вот, поддаётся ли такое реализации?
 
Активатор только в ручную можно убрать?
 
Назад
Верх