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

Не совсем так. Активатор - он создается один раз. Переместил его в другую группу и забыл.
Переменные же появляются и исчезают. При каждом создании переменной нужно указывать группу.
В общем осуществимо, но по моему может привести к путанице. Подумаю.
Но в этом же переменные-константы полностью идентичны активаторам: я их создал, переместил в группу, задал значение и забыл. И что тут такого? Я же не предлагаю каждую переменную всегда держать в какой-то группе. Хотя и это можно было бы осуществить, будь какое-то действие (как, собственно, и с активаторами).

Активатор MESSAGE требует точного соответствия, а не частичного совпадения. Хотелось бы иметь параметр для управления этим явлением:
Код:
MESSAGE:
  MEssage-Test:
    mask: .*12
    type: REGEX
    source: CHAT_INTPUT
    flags: []
    actions:
    - message=+
    reactions:
    - message=-
upload_2015-7-26_10-58-41.png
Это наверное будут действия, плейсхолдерами такое мне кажется не придумать (или синтаксис будет такой - что с ума сойти)
Ну почему? Нужен предмет из параметра активатора item? Вот так можно было бы:
%item-lore-<порядковый-номер-слова>%
Нужен предмет из флага? Я предлагаю вот так:
%item-flag-<номер-флага-по-порядку-написания>-lore-<порядковый-номер-слова>%
При чём, флаги в FLAG_SET будут тоже считаться слева направо.
Активатор MESSAGE требует точного соответствия
И почему дважды действие срабатывает? о_О
 
Последнее редактирование:
@Lyosha12
CHAT_INTPUT - поэтому два раза. Если он не распознает источник, то работает как "ALL".

По поводу полного соответствия - он работает как regex. Т.е. вся строка должна быть им описана (если пользоваться тестером регулярок, то должна быть вся строка выделена)
Т.е. если там поставить .*12.* - то будут находиться вся строка в которой есть 12.
Если .*12 - то всё что заканчивается на 12.
regextest.png
 
По поводу полного соответствия - он работает как regex. Т.е. вся строка должна быть им описана (если пользоваться тестером регулярок, то должна быть вся строка выделена)
Т.е. если там поставить .*12.* - то будут находиться вся строка в которой есть 12.
Если .*12 - то всё что заканчивается на 12.
И сделать параметр "хотя бы для n-нного совпадения" не представляется возможным?
И как всё-таки сделать инверсию в регулярном выражении? В инструкции к парсеру я нашёл пару примеров, но они не проходят проверку самим парсером (версия их что ли устарела?)
При каждом создании переменной нужно указывать группу.
А почему "нужно", если активаторы определяются в группу по-умолчанию сразу?
Действие сохранения\выдачи инвентаря по производительности абсолютно не будет отличаться от этого?
Код:
    - var_player_set=id:RF-LIMITED-In-Game value:1
    - var_player_set=id:RF-Items-Inventory-0 value:%PLAYER_INV:0%
    - var_player_set=id:RF-Items-Inventory-1 value:%PLAYER_INV:1%
    - var_player_set=id:RF-Items-Inventory-2 value:%PLAYER_INV:2%
    - var_player_set=id:RF-Items-Inventory-3 value:%PLAYER_INV:3%
    - var_player_set=id:RF-Items-Inventory-4 value:%PLAYER_INV:4%
    - var_player_set=id:RF-Items-Inventory-5 value:%PLAYER_INV:5%
    - var_player_set=id:RF-Items-Inventory-6 value:%PLAYER_INV:6%
    - var_player_set=id:RF-Items-Inventory-7 value:%PLAYER_INV:7%
    - var_player_set=id:RF-Items-Inventory-8 value:%PLAYER_INV:8%
    - var_player_set=id:RF-Items-Inventory-9 value:%PLAYER_INV:9%
    - var_player_set=id:RF-Items-Inventory-10 value:%PLAYER_INV:10%
    - var_player_set=id:RF-Items-Inventory-11 value:%PLAYER_INV:11%
    - var_player_set=id:RF-Items-Inventory-12 value:%PLAYER_INV:12%
    - var_player_set=id:RF-Items-Inventory-13 value:%PLAYER_INV:13%
    - var_player_set=id:RF-Items-Inventory-14 value:%PLAYER_INV:14%
    - var_player_set=id:RF-Items-Inventory-15 value:%PLAYER_INV:15%
    - var_player_set=id:RF-Items-Inventory-16 value:%PLAYER_INV:16%
    - var_player_set=id:RF-Items-Inventory-17 value:%PLAYER_INV:17%
    - var_player_set=id:RF-Items-Inventory-18 value:%PLAYER_INV:18%
    - var_player_set=id:RF-Items-Inventory-19 value:%PLAYER_INV:19%
    - var_player_set=id:RF-Items-Inventory-20 value:%PLAYER_INV:20%
    - var_player_set=id:RF-Items-Inventory-21 value:%PLAYER_INV:21%
    - var_player_set=id:RF-Items-Inventory-22 value:%PLAYER_INV:22%
    - var_player_set=id:RF-Items-Inventory-23 value:%PLAYER_INV:23%
    - var_player_set=id:RF-Items-Inventory-24 value:%PLAYER_INV:24%
    - var_player_set=id:RF-Items-Inventory-25 value:%PLAYER_INV:25%
    - var_player_set=id:RF-Items-Inventory-26 value:%PLAYER_INV:26%
    - var_player_set=id:RF-Items-Inventory-27 value:%PLAYER_INV:27%
    - var_player_set=id:RF-Items-Inventory-28 value:%PLAYER_INV:28%
    - var_player_set=id:RF-Items-Inventory-29 value:%PLAYER_INV:29%
    - var_player_set=id:RF-Items-Inventory-30 value:%PLAYER_INV:30%
    - var_player_set=id:RF-Items-Inventory-31 value:%PLAYER_INV:31%
    - var_player_set=id:RF-Items-Inventory-32 value:%PLAYER_INV:32%
    - var_player_set=id:RF-Items-Inventory-33 value:%PLAYER_INV:33%
    - var_player_set=id:RF-Items-Inventory-34 value:%PLAYER_INV:34%
    - var_player_set=id:RF-Items-Inventory-35 value:%PLAYER_INV:35%
    - var_player_set=id:RF-Items-Inventory-36 value:%PLAYER_INV:helmet%
    - var_player_set=id:RF-Items-Inventory-37 value:%PLAYER_INV:chestplate%
    - var_player_set=id:RF-Items-Inventory-38 value:%PLAYER_INV:leggings%
    - var_player_set=id:RF-Items-Inventory-39 value:%PLAYER_INV:boots%

@fromgate, мне пройтись по всей русской документации и поискать ошибки? Или Вы ещё не закончили её полностью?
@fromgate, а будет ли активатор, который предотвращает смерть игрока при нанесении ему критического урона? То есть активатор, который реагирует на нанесение игроку урона и, если его величина превышает оставшееся количество жизней (новый флаг?), то отменяет урон, а игрока "убивает", производя нужные мне действия без его фактической смерти.

Нужно это вот для чего: у некоторых слабый интернет или же компьютер, что не позволяет загружать чанки после смерти быстро (после телепортации на спавн и обратно). С помощью активатора "последнего удара" можно было бы свести все смерти к минимуму (или даже к нулю, если будет выбор всех возможных вариантов и подвариантов получения урона, а так же их совместного использования под предводительством логического элемента "и").
 
Последнее редактирование:
Окей... Но удаление не работает! ...
Код:
  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, таймер взбесился:
Код:
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 секунды, то будет видно, что проходит несколько десятков запусков...

Не могу повторить...


Код:
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)
Нашёл подозрительный участок кода. Переделал. Посмотрим как будет себя проявлять.
 
В общем нужно на выпивание/пожирание делать отдельный активатор.
Но Вы же говорили, что такого события нету. Получается, костыли на задержках?
Не могу повторить...
Ужасный флуд даже на локалке (0.9.8/3):
Код:
EXEC:
  EXEC-Timer-Variable:
    flags:
    - var_GREATER=id:Variable value:0
    - var_compare=id:Timer-on value:1
    actions:
    - message=1
    - var_dec=id:Variable
    - sign_set_line=loc:world,-452.0,5.0,-1179.0,0.0,0.0 line3:{Прошло %var:Variable% сек.}
    - sign_set_line=loc:world,-452.0,5.0,-1179.0,0.0,0.0 line4:{Таймер работает}
    reactions:
    - message=0
    - var_set=id:Variable value:60
    - sign_set_line=loc:world,-452.0,5.0,-1179.0,0.0,0.0 line3:{Пройдёт %var:Variable% сек.}
    - sign_set_line=loc:world,-452.0,5.0,-1179.0,0.0,0.0 line4:{Таймер выключен}
BUTTON:
  Timer-On:
    world: world
    x: -453
    y: 5
    z: -1180
    flags:
    - var_compare=id:Timer-on value:0
    - DELAY=id:Trigger
    actions:
    - DELAY=id:Trigger time:50ms
    - Message=Таймер &aвключен&r.
    - var_set=id:Timer-on value:1
    reactions: []
  Timer-Off:
    world: world
    x: -453
    y: 5
    z: -1180
    flags:
    - var_compare=id:Timer-on value:1
    - DELAY=id:Trigger
    actions:
    - Message=Таймер &cвыключен&r.
    - var_set=id:Timer-on value:0
    reactions: []
Код:
SERVER:
  Var-Timer:
    time: 0/1 * * * * ?
    player: Lyosha12
    paused: 'false'
    activator: EXEC-Timer-Variable

@fromgate, 85.198.181.210 - IP моей локальной сети, взгляните сами.
Тааак, а вот это уже подозрительно. Сделал копию сервера и на ней этот же таймер работает почти в два раза быстрее секунды, а не в 10, как это было двуми пробами выше...
Теперь я вообще ничего не понимаю... Запустил оригинальный сервер, от которого делал ту копию - таймер работает с секундным интервалом... Мистика...
Опять перезагрузил - три запуска за секунду...
По-моему, это зависит от TPS... Но не уверен. Лучше сами взгляните.
Без перезапуска сервера теперь 4 активации в секунду...
Ничего не делал - 5 запусков в секунду. Интересно... Оставлю-ка сервер на ночь.
 
Последнее редактирование:
Вроде нормально...
А вот и нет. Перезалил.

Короче была ошибка в команде /react reload (точнее не совсем в ней, но с этим связано). При перезагрузке таймер начинал отсчитываться дважды. Т.е. каждую секунду вызывался активатор столько раз сколько раз была запущена команда /react reload
 
Не-а. После прогона схемы раза три с /ra reload таймер опять начал ускоряться, постепенно.
Код:
EXEC:
  RF-LIMITED-EXEC-Time-To-Start:
    flags: []
    actions:
    - execute=activator:RF-LIMITED-Time-To-Start
    - execute=activator:RF-LIMITED-Not-Needed-Number-Players
    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:{Приготовьтесь!}'
    - execute=activator:RF-LIMITED-Set-Time-To-Start
    reactions: []
  RF-LIMITED-Not-Needed-Number-Players:
    flags:
    - var_lower=id:Amount-Places-In-Queue-LIMITED value:2
    - var_lower=id:RF-LIMITED-Time-To-Start value:60
    actions:
    - 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:{Нужны игроки!}'
    - message=&7[&aRF&7] &bНет нужного количества игроков! region:world_the_end.rf-pvp-deny
    reactions: []
  RF-LIMITED-Set-Time-To-Start:
    flags:
    - var_compare=id:RF-LIMITED-Time-To-Start value:0
    actions:
    - 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:{Нужны игроки!}'
    - message=&7[&aRF&7] &bИгра началась! region:world_the_end.rf-pvp-deny
    - execute=activator:RF-LIMITED-PreLaunch-Procedures region:world_the_end.rf-pvp-deny
    reactions: []
  RF-LIMITED-PreLaunch-Procedures:
    flags:
    - var_player_compare=id:RF-LIMITED-Space-In-Queue value:Occupied
    actions:
    - var_player_set=id:RF-LIMITED-Space-In-Queue value:Not-Occupied
    - var_set=id:Amount-Places-In-Queue-LIMITED value:0
    - var_player_set=id:RF-LIMITED-In-Game value:1
    - var_player_set=id:RF-Items-Inventory-0 value:%PLAYER_INV:0%
    - var_player_set=id:RF-Items-Inventory-1 value:%PLAYER_INV:1%
    - var_player_set=id:RF-Items-Inventory-2 value:%PLAYER_INV:2%
    - var_player_set=id:RF-Items-Inventory-3 value:%PLAYER_INV:3%
    - var_player_set=id:RF-Items-Inventory-4 value:%PLAYER_INV:4%
    - var_player_set=id:RF-Items-Inventory-5 value:%PLAYER_INV:5%
    - var_player_set=id:RF-Items-Inventory-6 value:%PLAYER_INV:6%
    - var_player_set=id:RF-Items-Inventory-7 value:%PLAYER_INV:7%
    - var_player_set=id:RF-Items-Inventory-8 value:%PLAYER_INV:8%
    - var_player_set=id:RF-Items-Inventory-9 value:%PLAYER_INV:9%
    - var_player_set=id:RF-Items-Inventory-10 value:%PLAYER_INV:10%
    - var_player_set=id:RF-Items-Inventory-11 value:%PLAYER_INV:11%
    - var_player_set=id:RF-Items-Inventory-12 value:%PLAYER_INV:12%
    - var_player_set=id:RF-Items-Inventory-13 value:%PLAYER_INV:13%
    - var_player_set=id:RF-Items-Inventory-14 value:%PLAYER_INV:14%
    - var_player_set=id:RF-Items-Inventory-15 value:%PLAYER_INV:15%
    - var_player_set=id:RF-Items-Inventory-16 value:%PLAYER_INV:16%
    - var_player_set=id:RF-Items-Inventory-17 value:%PLAYER_INV:17%
    - var_player_set=id:RF-Items-Inventory-18 value:%PLAYER_INV:18%
    - var_player_set=id:RF-Items-Inventory-19 value:%PLAYER_INV:19%
    - var_player_set=id:RF-Items-Inventory-20 value:%PLAYER_INV:20%
    - var_player_set=id:RF-Items-Inventory-21 value:%PLAYER_INV:21%
    - var_player_set=id:RF-Items-Inventory-22 value:%PLAYER_INV:22%
    - var_player_set=id:RF-Items-Inventory-23 value:%PLAYER_INV:23%
    - var_player_set=id:RF-Items-Inventory-24 value:%PLAYER_INV:24%
    - var_player_set=id:RF-Items-Inventory-25 value:%PLAYER_INV:25%
    - var_player_set=id:RF-Items-Inventory-26 value:%PLAYER_INV:26%
    - var_player_set=id:RF-Items-Inventory-27 value:%PLAYER_INV:27%
    - var_player_set=id:RF-Items-Inventory-28 value:%PLAYER_INV:28%
    - var_player_set=id:RF-Items-Inventory-29 value:%PLAYER_INV:29%
    - var_player_set=id:RF-Items-Inventory-30 value:%PLAYER_INV:30%
    - var_player_set=id:RF-Items-Inventory-31 value:%PLAYER_INV:31%
    - var_player_set=id:RF-Items-Inventory-32 value:%PLAYER_INV:32%
    - var_player_set=id:RF-Items-Inventory-33 value:%PLAYER_INV:33%
    - var_player_set=id:RF-Items-Inventory-34 value:%PLAYER_INV:34%
    - var_player_set=id:RF-Items-Inventory-35 value:%PLAYER_INV:35%
    - var_player_set=id:RF-Items-Inventory-36 value:%PLAYER_INV:helmet%
    - var_player_set=id:RF-Items-Inventory-37 value:%PLAYER_INV:chestplate%
    - var_player_set=id:RF-Items-Inventory-38 value:%PLAYER_INV:leggings%
    - var_player_set=id:RF-Items-Inventory-39 value:%PLAYER_INV:boots%
    - cmd_console=ci %player% **
    - execute=activator:RF-Spawn-Loc-%random:1-4%
    - message=&7[&aRF&7] &aПокиньте зону старта за 30 секунд!
    reactions: []

Короче была ошибка в команде /react reload (точнее не совсем в ней, но с этим связано). При перезагрузке таймер начинал отсчитываться дважды. Т.е. каждую секунду вызывался активатор столько раз сколько раз была запущена команда /react reload
Весело :D
 
@Lyosha12
Особенно, если учесть, что я /react reload пользуюсь редко (обычно останавливаю/перезапускаю сервер), то это чудо, что я это заметил.
Хотя, думаю, что после этой фразы "Не-а. После прогона схемы раза три с /ra reload таймер опять начал ускоряться, постепенно." я бы догадался ;)
0.9.8/7
http://adf.ly/1K0nlW
- Добавлен активатор ITEM_CONSUME - пожирание предмета. Работает со всем предметами, которые можно пить или есть. Действие активатора можно отменить.

@Lyosha12
Вот так легко ITEM_CLICK превращается в ITEM_CONSUME:
Код:
ITEM_CONSUME:
  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


Но Вы же говорили, что такого события нету. Получается, костыли на задержках?
Когда я его пробовал в последний раз - работало очень криво. В соседней теме проверили - говорят, щас всё нормально. Я проверил - на 1.8.7 - всё ок.
Вполне возможно, что тогда я сидел на каком-то дев.билде, в котором это было криво. Так что тоже проверь.
В крайнем случае - можно отменять это событие и через один тик изымать предмет из рук.
 
Вот один предмет:
Код:
BUTTON:                                                                                                                                                                                      
  button-centurion:                                                                                                                                                                          
    world: millennium                                                                                                                                                                        
    x: 37463                                                                                                                                                                                 
    y: 71                                                                                                                                                                                    
    z: -38603                                                                                                                                                                                
    flags:                                                                                                                                                                                   
    - PERM=artefactum-centurion                                                                                                                                                              
    actions:                                                                                                                                                                                 
    - execute=activator:centurion                                                                                                                                                            
    reactions:                                                                                                                                                                               
    - message=&2[&5Оружейник&2] &3- &4Невозможно получить &4Центурион, &4нет прав!                                                                                                           
EXEC:                                                                                                                                                                                        
  centurion:                                                                                                                                                                                 
    flags:                                                                                                                                                                                   
    - DELAY_PLAYER=id:centurion10x set-time:604800                                                                                                                                           
    actions:                                                                                                                                                                                 
    - item_give=name:{&4Центурион} lore:{Меч выкован в Риме!} type:DIAMOND_SWORD enchantments:DAMAGE_ALL:10;KNOCKBACK:3;FIRE_ASPECT:5;DAMAGE_UNDEAD:3;DURABILITY:5                           
    reactions:                                                                                                                                                                               
    - message=&2[&5Оружейник&2] &3- &4Невозможно получить &4Центурион, &4не прошла неделя!                                                                                                   
ITEM_HOLD:                                                                                                                                                                                   
  hold-centurion:                                                                                                                                                                            
    item: 'name:{&4Центурион} lore:{Меч выкован в Риме.*} type:DIAMOND_SWORD'                                                                                                                
    flags:                                                                                                                                                                                   
    - PERM=artefactum-centurion                                                                                                                                                              
    reactions:                                                                                                                                                                               
    - POTION=type:WITHER level:10 time:10                                                                                                                                                    
    - item_remove_inventory=name:{&4Центурион} lore:{Меч выкован.*} type:DIAMOND_SWORD                                                                                                       
    - cmd_op=shock %player%                                                                                                                                                                  
ITEM_CLICK:                                                                                                                                                                                  
  shock-centurion:                                                                                                                                                                           
    item: 'name:{&4Центурион} lore:{Меч.*} type:DIAMOND_SWORD'                                                                                                                               
    flags:                                                                                                                                                                                   
    - DELAY_PLAYER=id:shock-centurion set-time:10                                                                                                                                            
    actions:                                                                                                                                                                                 
    - cmd_op=shock
Все как бы и работает, но в консоли после перезагрузки вижу это:
[23:14:51 INFO]: [ReActions] Failed to parse item: name:{Центурион} lore:{Меч.*} type: DIAMOND_SWORD
и так с многими предметами, здесь специально взял по разному проверку Lore, чтобы понять на что конкретно ругается.
 
@fromgate, не по порядку:
YAML:
EXEC:
  RF-LIMITED-EXEC-Time-To-Start:
    flags: []
    actions:
    - execute=activator:RF-LIMITED-Time-To-Start
    - execute=activator:RF-LIMITED-Not-Needed-Number-Players
    - execute=activator:RF-LIMITED-Game-During region:world_the_end.RF-During
    - execute=activator:RF-LIMITED-Set-0-Players-In-Game
    - execute=activator:RF-LIMITED-Amount-Players-In-Game region:world_the_end.RF-During
    - execute=activator:RF-LIMITED-Set-Amount-Players-In-Game-Sign
    reactions: []

# Игра запущена?
  RF-LIMITED-Game-During:
    flags:
    - var_player_compare=id:RF-LIMITED-In-Game value:1
    - DELAY=id:Slow-Test-Game-During set-time:100ms
    actions:
    - var_set=id:RF-LIMITED-During value:1
    - message=Игра запущена region:world_the_end.rf
    reactions:
    - var_set=id:RF-LIMITED-During value:0

# Подсчёт игроков в игре
  RF-LIMITED-Set-0-Players-In-Game:
    flags:
    - var_compare=id:RF-LIMITED-During value:1
    actions:
    - var_set=id:RF-Amount-Player-In-Game value:0
    - message=Обнуление количества игроков region:world_the_end.rf
    reactions: []
  RF-LIMITED-Amount-Players-In-Game:
    flags:
    - var_player_compare=id:RF-LIMITED-In-Game value:1
    actions:
    - var_inc=id:RF-Amount-Player-In-Game
    - message=Подсчёт количества игроков region:world_the_end.rf
    reactions: []
  RF-LIMITED-Set-Amount-Players-In-Game-Sign:
    flags:
    - var_compare=id:RF-LIMITED-During value:1
    actions:
    - message=Установка количества игроков на табличку region:world_the_end.rf
    - 'sign_set_line=loc:world_the_end,1184.0,129.0,1145.0,0.0,0.0 line1:{Игра уже}'
    - 'sign_set_line=loc:world_the_end,1184.0,129.0,1145.0,0.0,0.0 line2:{запущена, ждите}'
    - 'sign_set_line=loc:world_the_end,1184.0,129.0,1145.0,0.0,0.0 line3:{её окончания.}'
    - 'sign_set_line=loc:world_the_end,1184.0,129.0,1145.0,0.0,0.0 line4:{Игроков: &l%var:RF-Amount-Player-In-Game%}'
    reactions: []
upload_2015-7-27_0-26-59.png
 
@Korvinius
Это не баг, это фича ;-) Появляется, когда в активаторе сравнение идет по регулярному выражению. Ни на что не влияет. Уберу потом.

@Lyosha12 я уже сплю. Завтра посмотрю
 
@fromgate, по причине того, что WG иногда меняет регистр регионов, я прошу модифицировать все указания на регион, чтобы регистр букв игнорировался.
@fromgate, а как можно предотвратить появление слота 40? (Когда игрок держит мышкой предмет в инвентаре). Его же никак не удалить и не сохранить? Насильно закрывать инвентарь игрока перед телепортом в зону игры?
@fromgate, при указании локации точка-радиус игрока должно разворачивать в любую сторону при телепорте? При больших расстояниях локации - да, это приемлемо и нужно. Но можно ли добавить параметр для точного соответствия повороту тела?
@fromgate, а был же вроде как параметр, который позволяет запускать exec несколько раз из одного действия?
@fromgate, действие установки голода игроку обсуждалось ещё в прошлом году :D
@fromgate, сохранив вещи последовательно и выдав последовательно, они перемешиваются. Повторив операцию, всё возвращается в норму:
Код:
  RF-LIMITED-PreLaunch-Procedures:
    flags:
    - var_player_compare=id:RF-LIMITED-Space-In-Queue value:Occupied
    actions:
    - var_player_set=id:RF-LIMITED-Space-In-Queue value:Not-Occupied
    - var_set=id:RF-LIMITED-Amount-Places-In-Queue value:0
    - var_player_set=id:RF-LIMITED-In-Game value:1
    - var_set=id:RF-LIMITED-During value:1
    - var_inc=id:RF-Amount-Player-In-Game
    - var_player_set=id:RF-Items-Inventory-0 value:%PLAYER_INV:0%
    - var_player_set=id:RF-Items-Inventory-1 value:%PLAYER_INV:1%
    - var_player_set=id:RF-Items-Inventory-2 value:%PLAYER_INV:2%
    - var_player_set=id:RF-Items-Inventory-3 value:%PLAYER_INV:3%
    - var_player_set=id:RF-Items-Inventory-4 value:%PLAYER_INV:4%
    - var_player_set=id:RF-Items-Inventory-5 value:%PLAYER_INV:5%
    - var_player_set=id:RF-Items-Inventory-6 value:%PLAYER_INV:6%
    - var_player_set=id:RF-Items-Inventory-7 value:%PLAYER_INV:7%
    - var_player_set=id:RF-Items-Inventory-8 value:%PLAYER_INV:8%
    - var_player_set=id:RF-Items-Inventory-9 value:%PLAYER_INV:9%
    - var_player_set=id:RF-Items-Inventory-10 value:%PLAYER_INV:10%
    - var_player_set=id:RF-Items-Inventory-11 value:%PLAYER_INV:11%
    - var_player_set=id:RF-Items-Inventory-12 value:%PLAYER_INV:12%
    - var_player_set=id:RF-Items-Inventory-13 value:%PLAYER_INV:13%
    - var_player_set=id:RF-Items-Inventory-14 value:%PLAYER_INV:14%
    - var_player_set=id:RF-Items-Inventory-15 value:%PLAYER_INV:15%
    - var_player_set=id:RF-Items-Inventory-16 value:%PLAYER_INV:16%
    - var_player_set=id:RF-Items-Inventory-17 value:%PLAYER_INV:17%
    - var_player_set=id:RF-Items-Inventory-18 value:%PLAYER_INV:18%
    - var_player_set=id:RF-Items-Inventory-19 value:%PLAYER_INV:19%
    - var_player_set=id:RF-Items-Inventory-20 value:%PLAYER_INV:20%
    - var_player_set=id:RF-Items-Inventory-21 value:%PLAYER_INV:21%
    - var_player_set=id:RF-Items-Inventory-22 value:%PLAYER_INV:22%
    - var_player_set=id:RF-Items-Inventory-23 value:%PLAYER_INV:23%
    - var_player_set=id:RF-Items-Inventory-24 value:%PLAYER_INV:24%
    - var_player_set=id:RF-Items-Inventory-25 value:%PLAYER_INV:25%
    - var_player_set=id:RF-Items-Inventory-26 value:%PLAYER_INV:26%
    - var_player_set=id:RF-Items-Inventory-27 value:%PLAYER_INV:27%
    - var_player_set=id:RF-Items-Inventory-28 value:%PLAYER_INV:28%
    - var_player_set=id:RF-Items-Inventory-29 value:%PLAYER_INV:29%
    - var_player_set=id:RF-Items-Inventory-30 value:%PLAYER_INV:30%
    - var_player_set=id:RF-Items-Inventory-31 value:%PLAYER_INV:31%
    - var_player_set=id:RF-Items-Inventory-32 value:%PLAYER_INV:32%
    - var_player_set=id:RF-Items-Inventory-33 value:%PLAYER_INV:33%
    - var_player_set=id:RF-Items-Inventory-34 value:%PLAYER_INV:34%
    - var_player_set=id:RF-Items-Inventory-35 value:%PLAYER_INV:35%
    - var_player_set=id:RF-Items-Inventory-36 value:%PLAYER_INV:helmet%
    - var_player_set=id:RF-Items-Inventory-37 value:%PLAYER_INV:chestplate%
    - var_player_set=id:RF-Items-Inventory-38 value:%PLAYER_INV:leggings%
    - var_player_set=id:RF-Items-Inventory-39 value:%PLAYER_INV:boots%
    - cmd_console=ci %player% **
    - potion_clear=all
    - heal=player:%player%
    - TP=loc:RF-Spawn-Loc-%random:1-4% radius:2
    reactions: []
Код:
REGION_ENTER:
  RF-LIMITED-Fall-Out-Of-Game:
    region: world_the_end.rf-leave-floor
    flags:
    - var_player_compare=id:RF-LIMITED-In-Game value:1
    actions:
    - var_player_set=id:RF-LIMITED-In-Game value:0
    - cmd_console=ci %player% **
    - message=&7[&aRF&7] &bВы проиграли
    - TP=loc:RF-Leave-Of-Game
    - message=&7[&aRF&7] &e%player% &bвыбыл. region:world_the_end.rf-during
    - var_dec=id:RF-Amount-Player-In-Game
    - item_give=%varp:RF-Items-Inventory-0%
    - item_give=%varp:RF-Items-Inventory-1%
    - item_give=%varp:RF-Items-Inventory-2%
    - item_give=%varp:RF-Items-Inventory-3%
    - item_give=%varp:RF-Items-Inventory-4%
    - item_give=%varp:RF-Items-Inventory-5%
    - item_give=%varp:RF-Items-Inventory-6%
    - item_give=%varp:RF-Items-Inventory-7%
    - item_give=%varp:RF-Items-Inventory-8%
    - item_give=%varp:RF-Items-Inventory-9%
    - item_give=%varp:RF-Items-Inventory-10%
    - item_give=%varp:RF-Items-Inventory-11%
    - item_give=%varp:RF-Items-Inventory-12%
    - item_give=%varp:RF-Items-Inventory-13%
    - item_give=%varp:RF-Items-Inventory-14%
    - item_give=%varp:RF-Items-Inventory-15%
    - item_give=%varp:RF-Items-Inventory-16%
    - item_give=%varp:RF-Items-Inventory-17%
    - item_give=%varp:RF-Items-Inventory-18%
    - item_give=%varp:RF-Items-Inventory-19%
    - item_give=%varp:RF-Items-Inventory-20%
    - item_give=%varp:RF-Items-Inventory-21%
    - item_give=%varp:RF-Items-Inventory-22%
    - item_give=%varp:RF-Items-Inventory-23%
    - item_give=%varp:RF-Items-Inventory-24%
    - item_give=%varp:RF-Items-Inventory-25%
    - item_give=%varp:RF-Items-Inventory-26%
    - item_give=%varp:RF-Items-Inventory-27%
    - item_give=%varp:RF-Items-Inventory-28%
    - item_give=%varp:RF-Items-Inventory-29%
    - item_give=%varp:RF-Items-Inventory-30%
    - item_give=%varp:RF-Items-Inventory-31%
    - item_give=%varp:RF-Items-Inventory-32%
    - item_give=%varp:RF-Items-Inventory-33%
    - item_give=%varp:RF-Items-Inventory-34%
    - item_give=%varp:RF-Items-Inventory-35%
    - item_wear=slot:auto %varp:RF-Items-Inventory-36%
    - item_wear=slot:auto %varp:RF-Items-Inventory-37%
    - item_wear=slot:auto %varp:RF-Items-Inventory-38%
    - item_wear=slot:auto %varp:RF-Items-Inventory-39%
    - execute=activator:RF-LIMITED-Close-Round
    reactions: []

@fromgate, только что обнаружилось, что флаг WG invincible allow фиксит не все виды урона: если падать на край блока, соседний блок которого выше или ниже конечной точки приземления, то можно умереть. Вся надежда на Вас, действие отмены любого урона и активатор приземления (если такой возможен: например, регистрировать вычисление урона после падения).
@fromgate, активатор получения урона игроку может же и прорываться сквозь флаг WG invincible allow, используя действие cancel true, как в случае с приватом дверей, нанося игрок игроку в регионе с этим флагом?
 
Последнее редактирование:
@Lyosha12
Эээ.. А что за слот 40. Расскажи подробнее - я не в курсе.
@fromgate, активатор получения урона игроку может же и прорываться сквозь флаг WG invincible allow, используя действие cancel true, как в случае с приватом дверей, нанося игрок игроку в регионе с этим флагом?
По идее - да. Тип урона будет OTHER
 
Эээ.. А что за слот 40. Расскажи подробнее - я не в курсе.
Ну, слотов же 39 от нулевого? А сороковой - это когда игрок держит предмет мышкой в инвентаре. Я это раньше убирал, телепортируя игрока в другой мир и обратно, чтобы окно инвентаря закрылось.
Тип урона будет OTHER
А почему не PvP? Получается, применение события насильно в этом случае - просто действие damage?
 
Слоты от 0 до 35 - (это нижняя строка + инветарь
а плагин сочетается с модом custom npc?
Специально - не буду добавлять. В ближайшее время точно. Но как объект для клика по мобу, можно попробовать использовать. За результат не ручаюсь. Но NPC из Citizens вроде как распознаются (сам не пробовал ;))
 
Слоты от 0 до 35 - (это нижняя строка + инветарь
Я же в общем говорю. И всё-таки, будет действие закрытия инвентаря насильно?
@fromgate, сообщение вообще не выводится с hide:
Код:
    - message=hide:5s region:world_the_end.rf-time-out &7[&aRF&7] &bНаходясь здесь, вы будете исключены через &c%var:RF-LIMITED-Time-Out-To-Jump-From-Start% &bсек.

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

Если это делать на активаторах, то выходит более шестнадцати штук только на 4 варианта. И с ужасной логикой - надо все варианты расстановки перебрать.
@fromgate, почему нету флага "онлайн ли игрок"?
 
Назад
Верх