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

Ничоси :D
Ну вот 5й пункт можно через команду консоли мутить)
 
Ничоси :D
Ну вот 5й пункт можно через команду консоли мутить)
И название региона ты узнаешь точно так же? Да, не спорю - можно. Но только именно в месте расположения игрока, а не в локации в принципе.
 
Последнее редактирование:
Если б я тебя еще понял, то ответил бы. А то не бум бум чёт(
 
@Lyosha12
Огромное спасибо, поймали серьёзный баг (п.1 в твоем сообщении).
Исправил. Срочно обновляйтесь.

v0.9.8
  • Added new activator - QUIT. This activator is initiating when player leaving the server.
  • Some bugs fixed.
https://www.spigotmc.org/resources/reactions.8754/
 
Обновились, спасибо.
Сталкивался тоже с багом (п.1 в сообщении Алексея), но думал, что то я криворукий такой.)
А таймер смотрел?
 
@fromgate, мечи в количестве трёх штук не удаляются, но выдаются:
Код:
BUTTON:
  Activator-ITEM_CLICK-1:
    world: world
    x: -452
    y: 5
    z: -1143
    flags: []
    actions:
    - MESSAGE=&r
    - MESSAGE=&c          [&e▼&c]&3-----------------------------------&c[&e▼&c]
    - MESSAGE=Здесь всё просто. Активатор запускается при клике ПКМ с требуемым предметом. Вам был выдан такой предмет. Кликните ПКМ, держа его в руке.
    - ITEM_REMOVE_INVENTORY=type:IRON_SWORD amount:100
    - ITEM_GIVE=type:267 amount:3

А так ничего не происходит. Не выдаётся и не удаляется:
Код:
BUTTON:
  Activator-ITEM_CLICK-1:
    world: world
    x: -452
    y: 5
    z: -1143
    flags: []
    actions:
    - MESSAGE=&r
    - MESSAGE=&c          [&e▼&c]&3-----------------------------------&c[&e▼&c]
    - MESSAGE=Здесь всё просто. Активатор запускается при клике ПКМ с требуемым предметом. Вам был выдан такой предмет. Кликните ПКМ, держа его в руке.
    - ITEM_REMOVE_INVENTORY=type:IRON_SWORD amount:3
    - ITEM_REMOVE_INVENTORY=type:IRON_SWORD amount:3
    - ITEM_REMOVE_INVENTORY=type:IRON_SWORD amount:3
    - ITEM_REMOVE_INVENTORY=type:IRON_SWORD amount:3
    - ITEM_REMOVE_INVENTORY=type:IRON_SWORD amount:3
    - ITEM_REMOVE_INVENTORY=type:IRON_SWORD amount:3
    - ITEM_REMOVE_INVENTORY=type:IRON_SWORD amount:3
    - ITEM_REMOVE_INVENTORY=type:IRON_SWORD amount:3
    - ITEM_REMOVE_INVENTORY=type:IRON_SWORD amount:3
    - ITEM_GIVE=type:267 amount:3

@fromgate, http://rubukkit.org/threads/avto-ot...m-zaprivachenom-uchastke.107434/#post-1215001 - Правда что ли? Фактически, все решения с регионами нельзя применять на "больших" серверах? //Спасибо за объяснение :)
И почему же нельзя занести значение плейсхолдера %sel% в переменную? .-.
upload_2015-7-24_6-16-59.png
http://reactions.fromgate.ru/mob_damage.htm - немного опечаток.
Ещё немного опечаток:
Убийство моба (MOB_KILL)


Активатор MOB_KILL выполняется когда игрок кликает правой кнопкой мыши по мобу. Можно при этом использовать имя для определения уникального моба. Если Вы используете какой-то плагин, который создает NPC на сервере, то можно использовать тип моба - PLAYER и его имя для привязки активатора к данному NPC.

И почему в MOB_KILL нет плейсхолдера величины нанесённого урона? Это же можно использовать как в экономике, так и в скиллах чего-либо!
А смысл в плейсхолдерах %mobdamager% и %mobkiller%? Они же, фактически, копируют плейсхолдер %player%. Или активаторы могут запускаться и для... Моба? Блока? Было бы неплохо, если я прав.

Представьте: скелет стреляет в крипера и вокруг скелета спавнятся ещё несколько скелетов! А вокруг крипера пара зомби! Если честно, то, увидев такое где-то, я бы не на шутку перепугался и удивился. Ведь такое мало где увидишь (или вообще нигде).
Из документации я всё-таки не понимаю, в чём отличие параметра item от флага item здесь: http://reactions.fromgate.ru/mob_damage.htm? И почему учитывается только стрельба из лука, а не все снаряды?
И почему при спавне мобов соответствующим действием у них головы вывернуты на 180 градусов?
Странный эффект:
Код:
MOB_DAMAGE:
  Activator-MOB_DAMAGE-Test:
    mob-type: 'Creeper'
    mob-name: '&4&n&o&lGrumm'
    flags: []
    actions:
    - MESSAGE=&r
    - MESSAGE=&c          [&e▼&c]&3-----------------------------------&c[&e▼&c]
    - MESSAGE=Пример активатора &bMOB_DAMAGE&r.
    - MESSAGE=&r
    - MESSAGE=Локация моба:&e %moblocation%
    - MESSAGE=Тип моба:&e %mobtype%
    - MESSAGE=Имя моба:&e %mobname%
    - MESSAGE=Имя атакующего:&e %mobdamager%
    - MESSAGE=Величина нанесённого урона мобу:&e %damage%
    reactions: []
upload_2015-7-24_8-7-25.png
И опять десятичный вид.
 
Последнее редактирование:
@fromgate, мечи в количестве трёх штук не удаляются, но выдаются:
С мечами буду разбираться вечером.

@fromgate, http://rubukkit.org/threads/avto-ot...m-zaprivachenom-uchastke.107434/#post-1215001 - Правда что ли? Фактически, все решения с регионами нельзя применять на "больших" серверах?

Ну вот смотри, сам WG применяет те же события, что и ReActions. Т.е. если у тебя WG стоит у тебя уже происходит перебор этих самых регионов.
ReActions делает тоже самое с оптимизацией по выбору регионов. Т.е. перебирает меньше чем сам WG.

Страшно тут не то, что проверяются эти события, а то что внутри этого события активатор может выполнять много действий. Допустим BLOCK_SET ни на что не повлияет особо, но если это BLOCK_FILL заливающий огромное количество блоков, то... сам понимаешь.

При разработке ReActions я допустил стратегический просчет - я не стал писать собственный менеджер для событий ReActions, а воспользовался тем, что есть в Bukkit. Это в общем нормально, но снижает мои возможностью по управлению этими событиями и действиями в них.
Т.е. грубо говоря, самый надежный способ был бы при выполнении активаторов формировать очередь действий и когда они съедают время текущего тика (до определенного предела, допустим заняли 25 мс.) то переносить их на следующий тик (естественно придётся пересмотреть ряд действий и выполнять их сразу: к примеру действия на отмену события - её нельзя переносить в следующий тик). При текущей системе это можно реализовать, но будет некрасиво. Поэтому сейчас я планомерно готовлюсь к такой переделке внутреннего движка.

И почему же нельзя занести значение плейсхолдера %sel% в переменную? .-.
Когда эти плейсхолдеры писались, /react set ещё не было ;) Они подставляются только внутри /react add. Можно будет и там сделать.

И почему в MOB_KILL нет плейсхолдера величины нанесённого урона? Это же можно использовать как в экономике, так и в скиллах чего-либо!
Если последний удар, то он может быть и 1 хр - тогда как у моба может быть и 1000 хп при старте.
Наверное имеет смысл писать максимально возможное количество жизней моба. Понятно, что если их было 1000, то это моб "круче" чемто тот у которого было 20.


А смысл в плейсхолдерах %mobdamager% и %mobkiller%? Они же, фактически, копируют плейсхолдер %player%. Или активаторы могут запускаться и для... Моба? Блока? Было бы неплохо, если я прав.
Нет, они фактически дублируют.

И почему учитывается только стрельба из лука, а не все снаряды?
Учитываются все, надо будет исправить описание.

И почему при спавне мобов соответствующим действием у них головы вывернуты на 180 градусов?
А чёрт его знает. Скорее всего надо им какой-то yaw/pitch задавать. Попробую.

Странный эффект:
Код:
MOB_DAMAGE:
  Activator-MOB_DAMAGE-Test:
    mob-type: 'Creeper'
    mob-name: '&4&n&o&lGrumm'
    flags: []
    actions:
    - MESSAGE=&r
    - MESSAGE=&c          [&e▼&c]&3-----------------------------------&c[&e▼&c]
    - MESSAGE=Пример активатора &bMOB_DAMAGE&r.
    - MESSAGE=&r
    - MESSAGE=Локация моба:&e %moblocation%
    - MESSAGE=Тип моба:&e %mobtype%
    - MESSAGE=Имя моба:&e %mobname%
    - MESSAGE=Имя атакующего:&e %mobdamager%
    - MESSAGE=Величина нанесённого урона мобу:&e %damage%
    reactions: []
Эээ в чем эффект? Не понял.

И опять десятичный вид.

Тут он оправдан. В 1.5.2 - урон и жизнь - целые. В более поздних версиях - они дробные. Поэтому в ReActions "внутри" они дробные. А применяются - уже в зависимости от версий. Короче - это нормально.
 
Эээ в чем эффект? Не понял.
Форматирование имени моба перекидывается точно огонь на слова сзади о_О
Тут он оправдан. В 1.5.2 - урон и жизнь - целые. В более поздних версиях - они дробные. Поэтому в ReActions "внутри" они дробные. А применяются - уже в зависимости от версий. Короче - это нормально.
Однако, чисто ради эстетики можно было бы отсекать десятичный ноль. Ну смысла же нету в нём...
 
Форматирование имени моба перекидывается точно огонь на слова сзади о_О

Однако, чисто ради эстетики можно было бы отсекать десятичный ноль. Ну смысла же нету...
Ну ради эстетики, постараюсь сделать ;)
Про форматирование - я в шоке. Пагинатор что ли сума сходит. Посмотрю
 
Ещё кое-что заметил в MOB_DAMAGE: если атаковать множественными ударами, когда урон мобу не проходит, то активатор всё равно будет вызываться.
Если последний удар, то он может быть и 1 хр - тогда как у моба может быть и 1000 хп при старте.
Наверное имеет смысл писать максимально возможное количество жизней моба. Понятно, что если их было 1000, то это моб "круче" чемто тот у которого было 20.
Ээмм.. Вообще не в тему. Так будет ли ещё плейсхолдер качества последнего удара? (Кстати, вот и новая мини-игра, почти :D)
А можно сравнивать описание предмета от противного? Например, будет выдавать true, если именем предмета не является "Test-123". Очень полезная функция для каких-то наказаний. Или ловушек. Или есть такое регулярное выражение, которое при использовании делает описание антагонистическим? :D
Не работает вообще ;(
Код:
ITEM_CLICK:
  Parkour-Award-2:
    item: '1'
    flags: []
    actions:
    - message=1
    reactions: []
И это. Хотя выдаю предмет прямо копипастом из флага.
Код:
ITEM_CLICK:
  Parkour-Award-Elongacia:
    item: amount:1 regex:true name:{&aПожирающий элонгацию} type:POTION lore:{&7Акселерация (5:00)\n\n&6За победу в паркуре;\n&a(\w){1,15} &6- лучший игрок!}
    flags:
    - ITEM=amount:1 regex:false name:{&aПожирающий элонгацию} type:POTION lore:{&7Акселерация (5:00)\n\n&6За победу в паркуре;\n&a%player% &6- лучший игрок!}
    - '!REGION=world_the_end.parkour'
    - '!REGION=world_the_end.dropper'
    actions:
    - message=&aPsh-sh-sh!
    - POTION=type:JUMP time:5m level:2
    - POTION=type:FAST_DIGGING time:5m level:4
    - POTION=type:Speed time:5m level:2
    reactions: []

@fromgate, заметил в активаторе REGION опять ту же проблему: несколько активаций в секунду получается при перемещении по региону прыжками:
Код:
2015-07-25 02:57:24 [CLIENT] [INFO] [CHAT] Пример REGION. Повторных активаций: 52
2015-07-25 02:59:29 [CLIENT] [INFO] [CHAT] Перезагрузка произведена. Загружено 76 активаторов, 2
2015-07-25 02:59:29 [CLIENT] [INFO] [CHAT] локаций.
2015-07-25 02:59:30 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:30 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:30 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 1 Время: 07-30
2015-07-25 02:59:31 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:31 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:31 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 2 Время: 07-31
2015-07-25 02:59:32 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:32 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:32 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 3 Время: 07-32
2015-07-25 02:59:33 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:33 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:33 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 4 Время: 07-33
2015-07-25 02:59:34 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:34 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:34 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 5 Время: 07-34
2015-07-25 02:59:35 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:35 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:35 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 6 Время: 07-35
2015-07-25 02:59:36 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:36 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:36 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 7 Время: 07-36
2015-07-25 02:59:37 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:37 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:37 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 8 Время: 07-37
2015-07-25 02:59:38 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:38 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:38 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 9 Время: 07-38
2015-07-25 02:59:39 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:39 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:39 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 10 Время: 07-39
2015-07-25 02:59:40 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:40 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:40 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 11 Время: 07-40
2015-07-25 02:59:41 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:41 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:41 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 12 Время: 07-41
2015-07-25 02:59:42 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:42 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:42 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 13 Время: 07-42
2015-07-25 02:59:43 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:43 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:43 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 14 Время: 07-43
2015-07-25 02:59:43 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:43 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:43 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 15 Время: 07-43
2015-07-25 02:59:44 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:44 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:44 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 16 Время: 07-44
2015-07-25 02:59:44 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:44 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:44 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 17 Время: 07-44
2015-07-25 02:59:45 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:45 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:45 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 18 Время: 07-45
2015-07-25 02:59:45 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:45 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:45 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 19 Время: 07-45
2015-07-25 02:59:46 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:46 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:46 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 20 Время: 07-46
2015-07-25 02:59:46 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:46 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:46 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 21 Время: 07-46
2015-07-25 02:59:47 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:47 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:47 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 22 Время: 07-47
2015-07-25 02:59:47 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:47 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:47 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 23 Время: 07-47
2015-07-25 02:59:48 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:48 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:48 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 24 Время: 07-48
2015-07-25 02:59:48 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:48 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:48 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 25 Время: 07-48
2015-07-25 02:59:49 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:49 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:49 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 26 Время: 07-49
2015-07-25 02:59:49 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:49 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:49 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 27 Время: 07-49
2015-07-25 02:59:50 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:50 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:50 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 28 Время: 07-50
2015-07-25 02:59:50 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:50 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:50 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 29 Время: 07-50
2015-07-25 02:59:50 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:50 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:50 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 30 Время: 07-50
2015-07-25 02:59:51 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:51 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:51 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 31 Время: 07-51
2015-07-25 02:59:51 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:51 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:51 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 32 Время: 07-51
2015-07-25 02:59:51 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:51 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:51 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 33 Время: 07-51
2015-07-25 02:59:52 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:52 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:52 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 34 Время: 07-52
2015-07-25 02:59:52 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:52 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:52 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 35 Время: 07-52
2015-07-25 02:59:52 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:52 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:52 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 36 Время: 07-52
2015-07-25 02:59:53 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:53 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:53 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 37 Время: 07-53
2015-07-25 02:59:53 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:53 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:53 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 38 Время: 07-53
2015-07-25 02:59:53 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:53 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:53 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 39 Время: 07-53
2015-07-25 02:59:54 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:54 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:54 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 40 Время: 07-54
2015-07-25 02:59:54 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:54 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:54 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 41 Время: 07-54
2015-07-25 02:59:54 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:54 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:54 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 42 Время: 07-54
2015-07-25 02:59:55 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:55 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:55 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 43 Время: 07-55
2015-07-25 02:59:55 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:55 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:55 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 44 Время: 07-55
2015-07-25 02:59:55 [CLIENT] [INFO] [CHAT]
2015-07-25 02:59:55 [CLIENT] [INFO] [CHAT]           [?]-----------------------------------[?]
2015-07-25 02:59:55 [CLIENT] [INFO] [CHAT] Пример REGION. Активаций: 45 Время: 07-55

В MOB_DAMAGE предлагаю добавить плейсхолдер оставшихся жизней у моба. А так же их модификации в процессе.
 
Последнее редактирование:
@fromgate, прошу добавить в RGLEAVE срабатывание при смерти игрока и его спавне вне региона.
 
Не работает вообще ;(
Код:
ITEM_CLICK:
  Parkour-Award-2:
    item: '1'
    flags: []
    actions:
    - message=1
    reactions: []
Ага, действительно, на цифровое Id материала не реагировало. Исправил.


И это. Хотя выдаю предмет прямо копипастом из флага.
Код:
ITEM_CLICK:
  Parkour-Award-Elongacia:
    item: amount:1 regex:true name:{&aПожирающий элонгацию} type:POTION lore:{&7Акселерация (5:00)\n\n&6За победу в паркуре;\n&a(\w){1,15} &6- лучший игрок!}
    flags:
    - ITEM=amount:1 regex:false name:{&aПожирающий элонгацию} type:POTION lore:{&7Акселерация (5:00)\n\n&6За победу в паркуре;\n&a%player% &6- лучший игрок!}
    - '!REGION=world_the_end.parkour'
    - '!REGION=world_the_end.dropper'
    actions:
    - message=&aPsh-sh-sh!
    - POTION=type:JUMP time:5m level:2
    - POTION=type:FAST_DIGGING time:5m level:4
    - POTION=type:Speed time:5m level:2
    reactions: []

Это ж регулярка, а тут символы "(" и ")" служебные - их надо экранировать "\(" и "\)".

@fromgate, прошу добавить в RGLEAVE срабатывание при смерти игрока и его спавне вне региона.
О! Точно. Сделал.


0.9.8/3
- Исправлено: при сравнении предметов не распознавалось указание типа предмета числом.
- Исправлено: после возрождения игрока не срабатывали события связанные с регионами
- Изменение: теперь при сравнении предмета Lore рассматривается как одна строка (разделитель строк - сочетанием символов "\n"). Если используются регулярные выражения - не забывайте экранировать их ("\\n")
http://adf.ly/1K0nlW[/code][/QUOTE][/QUOTE]
 
Это ж регулярка, а тут символы "(" и ")" служебные - их надо экранировать "\(" и "\)".
О! Точно. Сделал.
Благодарю! :)
Изменение: теперь при сравнении предмета Lore рассматривается как одна строка (разделитель строк - сочетанием символов "\n"). Если используются регулярные выражения - не забывайте экранировать их ("\\n")
А можно пару примеров?
@fromgate, а есть плейсхолдер количества игроков в регионе, имеющих нужную мне переменную или другое значение?
 
А можно пару примеров?

Вот, на твоем тренировался:
Код:
ITEM_CLICK:
  Parkour-Award-2:
    item: type:1
    actions:
    - message=1
  Parkour-Award-Elongacia:
    item: amount:1 regex:true name:{&aПожирающий элонгацию} type:POTION lore:{&7Акселерация \(5:00\)\\n\\n&6За победу в паркуре;\\n&a(\w){1,15} &6- лучший игрок!}
    flags:
    - ITEM=amount:1 regex:false name:{&aПожирающий элонгацию} type:POTION lore:{&7Акселерация (5:00)\n\n&6За победу в паркуре;\n&a%player% &6- лучший игрок!}
    - '!REGION=world_the_end.parkour'
    - '!REGION=world_the_end.dropper'
    actions:
    - message=&aPsh-sh-sh!
    - POTION=type:JUMP time:5m level:2
    - POTION=type:FAST_DIGGING time:5m level:4
    - POTION=type:Speed time:5m level:2


@fromgate, а есть плейсхолдер количества игроков в регионе, имеющих нужную мне переменную или другое значение?
Нет, такого точно нет ;)
 
Вот, на твоем тренировался:
То есть, для распознавания описания как единой строки нужно экранировать символ переноса строки? И тогда он просто будет игнорироваться? Но я всё равно не понимаю.

Что нужно написать в lore, чтобы найти предмет, в описании которого на любой строке может быть число 123?
А теперь-то уж можно вытаскивать слова из описания в действия?
@fromgate, DELAY=id:Test set-time:5s не работает :(
Окей... Но удаление не работает! ...
Код:
  Parkour-Award-Elongacia:
    item: amount:1 regex:true name:{&aПожирающий элонгацию} type:POTION lore:{&7Акселерация \(5:00\)\\n\\n&6За победу в паркуре;\\n&a(\w){1,15} &6- лучший игрок!}
    flags:
    - ITEM=amount:1 regex:false name:{&aПожирающий элонгацию} type:POTION lore:{&7Акселерация (5:00)\n\n&6За победу в паркуре;\n&a%player% &6- лучший игрок!}
    actions:
    - ITEM_REMOVE_INVENTORY=amount:1 regex:false name:{&aПожирающий элонгацию} type:POTION lore:{&7Акселерация (5:00)\n\n&6За победу в паркуре;\n&a%player% &6- лучший игрок!}

@fromgate, а можно не устанавливать значение в переменную, а добавлять? Например: "var_add=id:Test value:{%var:Couner%, }". После в переменной должно лежать "1, 2, 3, 4, 5, 6, ". Однако, как убирать последние символы ", " ...придётся делать два активатора. Один добавляет до "5, ", а другой только "6".
@fromgate, активатор MESSAGE требует при использовании регулярных выражений полного соответствия. А можно ли запускать активатор только при частичном совпадении? То есть, нужно мне найти число 1. Я просто указываю в маске "1". И если число присутствует, то активатор запустится.

В придачу к этому нужно бы и плейсхолдер количества совпадение добавить.
@fromgate, таймер взбесился:
Код:
EXEC:
  RF-LIMITED-Time-To-Start-EXEC:
    flags:
    - var_GREATER=id:Amount-Places-In-Queue-LIMITED value:1
    actions:
    - execute=activator:RF-LIMITED-Time-To-Start player:null
    reactions: []
  RF-LIMITED-Time-To-Start:
    flags:
    - var_GREATER=id:RF-LIMITED-Time-To-Start value:0
    - var_GREATER=id:Amount-Places-In-Queue-LIMITED value:1
    actions:
    - var_dec=id:RF-LIMITED-Time-To-Start
    - 'sign_set_line=loc:world_the_end,1184.0,129.0,1145.0,0.0,0.0 line3:{через %var:RF-LIMITED-Time-To-Start% сек.}'
    - 'sign_set_line=loc:world_the_end,1184.0,129.0,1145.0,0.0,0.0 line4:{Приготовьтесь!}'
    reactions:
    - var_set=id:RF-LIMITED-Time-To-Start value:60
    - 'sign_set_line=loc:world_the_end,1184.0,129.0,1145.0,0.0,0.0 line3:{через %var:RF-LIMITED-Time-To-Start% сек.}'
    - 'sign_set_line=loc:world_the_end,1184.0,129.0,1145.0,0.0,0.0 line4:{Нужны игроки!}'
Код:
  Timer-RF-LIMITED-Time-To-Start-EXEC:
    time: 0/1 * * * * ?
    player: 'null'
    paused: 'false'
    activator: RF-LIMITED-Time-To-Start-EXEC
Если установить таймер на 3 секунды, то будет видно, что проходит несколько десятков запусков...
В параметре player при установке значения переменной и вызове таймера поддерживается "общий" формат селектора?
Решил в лог глянуть. Не знаю при каких обстоятельствах это происходило...
Код:
2015-07-26 00:42:43 [WARNING] [ReActions] Task #28727421 for ReActions v0.9.8/3 generated an exception
java.util.ConcurrentModificationException
    at java.util.HashMap$HashIterator.nextEntry(Unknown Source)
    at java.util.HashMap$KeyIterator.next(Unknown Source)
    at me.fromgate.reactions.util.waiter.ActionsWaiter.refresh(ActionsWaiter.java:78)
    at me.fromgate.reactions.util.waiter.Task$1.run(Task.java:63)
    at org.bukkit.craftbukkit.v1_5_R3.scheduler.CraftTask.run(CraftTask.java:58)
    at org.bukkit.craftbukkit.v1_5_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:344)
    at net.minecraft.server.v1_5_R3.MinecraftServer.r(MinecraftServer.java:509)
    at net.minecraft.server.v1_5_R3.DedicatedServer.r(DedicatedServer.java:227)
    at net.minecraft.server.v1_5_R3.MinecraftServer.q(MinecraftServer.java:472)
    at net.minecraft.server.v1_5_R3.MinecraftServer.run(MinecraftServer.java:404)
    at net.minecraft.server.v1_5_R3.ThreadServerApplication.run(SourceFile:573)

@fromgate, появилась идея: нужно для разделить локальные и глобальные переменные на два файла для удобного хранения и изменения констант. А в основном файле будут только динамические данные игроков.
@fromgate, почему при телепорте в пределах одного мира скин игрока иногда появляется для наблюдателя телепортации после некоторого отдаления от конечной точки телепортации? И почему прорисовка скина мгновенна при телепортации из мира в мир? Можно ли это исправить в телепортах ReActions?
@fromgate, предлагаю добавить ещё пару плейсхолдеров. Для экономических махинаций необходим вывод названий регионов по номерам, которыми владеет игрок, а так же их количества в отдельные плейсхолдеры. Однако, именно для экономических махинаций нужно так же проверять личные переменные игроков, которые в данный момент оффлайн.
 
Последнее редактирование:
То есть, для распознавания описания как единой строки нужно экранировать символ переноса строки? И тогда он просто будет игнорироваться? Но я всё равно не понимаю.
Нет. Просто теперь перевод строки - это два символа в строке - символ "\" и символ "n". Чтобы в регулярном выражении "\" был воспринят именно как символ, а не как управляющий код, нужно указать "\\".

Что нужно написать в lore, чтобы найти предмет, в описании которого на любой строке может быть число 123?
Ну по идее так ".*123.*"


А теперь-то уж можно вытаскивать слова из описания в действия?
ЭЭЭэээ? Не понял.

@fromgate, DELAY=id:Test set-time:5s не работает :(
Я надеюсь речь идёт о последних девбилдах и о флагах?
Ибо вот:

Покажи сам активатор, будут воспроизводить.

Окей... Но удаление не работает! ...
Код:
  Parkour-Award-Elongacia:
    item: amount:1 regex:true name:{&aПожирающий элонгацию} type:POTION lore:{&7Акселерация \(5:00\)\\n\\n&6За победу в паркуре;\\n&a(\w){1,15} &6- лучший игрок!}
    flags:
    - ITEM=amount:1 regex:false name:{&aПожирающий элонгацию} type:POTION lore:{&7Акселерация (5:00)\n\n&6За победу в паркуре;\n&a%player% &6- лучший игрок!}
    actions:
    - ITEM_REMOVE_INVENTORY=amount:1 regex:false name:{&aПожирающий элонгацию} type:POTION lore:{&7Акселерация (5:00)\n\n&6За победу в паркуре;\n&a%player% &6- лучший игрок!}
Хммм... буду сегодня пробовать.


@fromgate, а можно не устанавливать значение в переменную, а добавлять? Например: "var_add=id:Test value:{%var:Couner%, }". После в переменной должно лежать "1, 2, 3, 4, 5, 6, ". Однако, как убирать последние символы ", " ...придётся делать два активатора. Один добавляет до "5, ", а другой только "6".
Я понял, по сути это расширенная работа со строками. Я уже давно об этом думал, но пока ничего толкового и удобного для описания не придумал.


@fromgate, активатор MESSAGE требует при использовании регулярных выражений полного соответствия. А можно ли запускать активатор только при частичном совпадении? То есть, нужно мне найти число 1. Я просто указываю в маске "1". И если число присутствует, то активатор запустится.

В придачу к этому нужно бы и плейсхолдер количества совпадение добавить.

Нужно не точное совпадение, что бы сообщение

@fromgate, таймер взбесился:
Код:
EXEC:
  RF-LIMITED-Time-To-Start-EXEC:
    flags:
    - var_GREATER=id:Amount-Places-In-Queue-LIMITED value:1
    actions:
    - execute=activator:RF-LIMITED-Time-To-Start player:null
    reactions: []
  RF-LIMITED-Time-To-Start:
    flags:
    - var_GREATER=id:RF-LIMITED-Time-To-Start value:0
    - var_GREATER=id:Amount-Places-In-Queue-LIMITED value:1
    actions:
    - var_dec=id:RF-LIMITED-Time-To-Start
    - 'sign_set_line=loc:world_the_end,1184.0,129.0,1145.0,0.0,0.0 line3:{через %var:RF-LIMITED-Time-To-Start% сек.}'
    - 'sign_set_line=loc:world_the_end,1184.0,129.0,1145.0,0.0,0.0 line4:{Приготовьтесь!}'
    reactions:
    - var_set=id:RF-LIMITED-Time-To-Start value:60
    - 'sign_set_line=loc:world_the_end,1184.0,129.0,1145.0,0.0,0.0 line3:{через %var:RF-LIMITED-Time-To-Start% сек.}'
    - 'sign_set_line=loc:world_the_end,1184.0,129.0,1145.0,0.0,0.0 line4:{Нужны игроки!}'
Код:
  Timer-RF-LIMITED-Time-To-Start-EXEC:
    time: 0/1 * * * * ?
    player: 'null'
    paused: 'false'
    activator: RF-LIMITED-Time-To-Start-EXEC
Если установить таймер на 3 секунды, то будет видно, что проходит несколько десятков запусков...

Что ж.. погоняю тоже.

В параметре player при установке значения переменной и вызове таймера поддерживается "общий" формат селектора?
Да, стандартный.


@fromgate, появилась идея: нужно для разделить локальные и глобальные переменные на два файла для удобного хранения и изменения констант. А в основном файле будут только динамические данные игроков.
Разделить глобальный и персональные переменные - несложно. А вот выделять дополнительные файлы для разных случаев использования переменной - это будет усложнение синтаксиса.
Кстати, как-то рассуждали, как лучше сделать (в случае раздела файла), оставить формат:
игрок.переменная: значение
или же лучше сделать
перменная.игрок: значение

В первом случае (используется сейчас) сразу видно всё что установлено игроку.
Во втором случае - смотришь на переменную и у какого игрока какое значение ей соответствует.

@fromgate, почему при телепорте в пределах одного мира скин игрока иногда появляется для наблюдателя телепортации после некоторого отдаления от конечной точки телепортации? И почему прорисовка скина мгновенна при телепортации из мира в мир? Можно ли это исправить в телепортах ReActions?
Я думаю это всё особенности клиента. Плагином на это не повлиять.

@fromgate, предлагаю добавить ещё пару плейсхолдеров. Для экономических махинаций необходим вывод названий регионов по номерам, которыми владеет игрок, а так же их количества в отдельные плейсхолдеры. Однако, именно для экономических махинаций нужно так же проверять личные переменные игроков, которые в данный момент оффлайн.

Напиши пожалуйста в тикеты, а то забудется.
 
ЭЭЭэээ? Не понял.
Чтобы из строки описания предмета или его имени можно было вытащить слово плейсхолдером аналогично активаторам COMMAND и MESSAGE.
Я надеюсь речь идёт о последних девбилдах и о флагах?
Да... Проверил в лоб - работает. Извиняюсь за ложный баг-репорт. И буду впредь всегда предоставлять пруфы :(
Да, стандартный.
Но в таймере не работает указание на регион:
Код:
SERVER:
  Timer-Test:
    time: 0/4 * * * * ?
    player: 'region:world_the_end.rf'
    paused: 'false'
    activator: Test
Код:
SERVER:
  Timer-Test:
    time: 0/4 * * * * ?
    player: {region:world_the_end.rf}
    paused: 'false'
    activator: Test
Код:
EXEC:
  Test:
    flags:
    - DELAY=id:Test set-time:1s
    actions:
    - Message=Test
    reactions: []
Нужно не точное совпадение, что бы сообщение
Но тогда есть ли плейсхолдер, который выдаёт это самое единственное (или n-нное) совпадение?
Кстати, как-то рассуждали, как лучше сделать (в случае раздела файла), оставить формат:
игрок.переменная: значение
или же лучше сделать
перменная.игрок: значение

В первом случае (используется сейчас) сразу видно всё что установлено игроку.
Во втором случае - смотришь на переменную и у какого игрока какое значение ей соответствует.
Если так подумать, то тот разговор я заводил только из-за сложного поиска одной переменной у одного игрока среди десятков разных (и в разных регистрах). И ещё потому, что использовать конструкцию "игрок-переменная" мне казалось эффективнее (тогда). Сейчас же я как-то потерял ту свою мысль.
Разделить глобальный и персональные переменные - несложно. А вот выделять дополнительные файлы для разных случаев использования переменной - это будет усложнение синтаксиса.
Но ведь достаточно сделать группировку аналогичную активаторам. При чём, глобальные переменные тоже могут быть не константами. Из-за чего нужно несколько файлов для них и динамических глобальных переменных. И в каком смысле Вы использовали слово "синтаксис"? Неужто только добавление пары команд для перемещения переменных?
 
Но ведь достаточно сделать группировку аналогичную активаторам. При чём, глобальные переменные тоже могут быть не константами. Из-за чего нужно несколько файлов для них и динамических глобальных переменных. И в каком смысле Вы использовали слово "синтаксис"? Неужто только добавление пары команд для перемещения переменных?
Не совсем так. Активатор - он создается один раз. Переместил его в другую группу и забыл.
Переменные же появляются и исчезают. При каждом создании переменной нужно указывать группу.
В общем осуществимо, но по моему может привести к путанице. Подумаю.
Чтобы из строки описания предмета или его имени можно было вытащить слово плейсхолдером аналогично активаторам COMMAND и MESSAGE.
Пока ничего такого нет. Но надо придумать.
Это наверное будут действия, плейсхолдерами такое мне кажется не придумать (или синтаксис будет такой - что с ума сойти), которые записывают какой-то элемент предмета (причем предметом может быть, как предмет в руке таки текстовый предмет в переменную).
И действие для обратной манипуляции. Т.е. к примеру изменить название предмета или добавить ему зелье.
Но это ещё надо обдумать...
 
Назад
Верх