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

Решил сделать систему подсчета выполненных целей. С помощью переменных сделал так, чтобы при первом входе в регион отображалось сообщение: "Задача обновлена. Исследуйте пещеру (%varp:E1_Point1_1%)"
В результате переменная выводится в виде дробного числа (1.о, 2.0, 3.0 и т.д.), что выглядит некрасиво, в данном случае же дробь неуместна. Можно это как-то исправить и сделать отображение только целой части переменной?
 
@Max_ASimus Вообще я при выводе целых переменных, вроде принудительно ".0" отсекал. Но возможно где-то забыл.
Сейчас ничего советовать не буду, я взялся за переписывание плейсхолдеров. Постараюсь это там учесть.
 
@fromgate Ясно, спасибо. Я заметил, что у меня ".0" отсекается при выполнении VAR_SET и VAR_PLAYER_SET. Но мне нужно VAR_PLAYER_INC, а там ".0" присутствует.
 
Mob_Click. Тип - Player. Всё отлично работает.
Круто! :)
@fromgate Ясно, спасибо. Я заметил, что у меня ".0" отсекается при выполнении VAR_SET и VAR_PLAYER_SET. Но мне нужно VAR_PLAYER_INC, а там ".0" присутствует.

О! Спасибо, учту.
Как временный костыль - запишите результа VAR_INC посредством VAR_SET в другую переменную и выведите её ;)
 
О! Спасибо, учту.
Как временный костыль - запишите результа VAR_INC посредством VAR_SET в другую переменную и выведите её ;)
Тоже учту :).
Пока доделывал систему - появился еще вопрос. При спавне моба можно указать параметр run (Т.е. запуск exec-активатора при смерти моба). Собственно, вопрос: Есть ли возможность каким-то образом указать там параметр Player, как при вызове exec-активатора с помощью действия? Т.е. можно сделать так, чтобы запускающийся активатор был привязан к определенному игроку?
 
можно кусочек конфига посмотреть с этим активатором?
Код:
  ShopQuasar:
    mob-type: player
    mob-name: Quasar
    flags: []
    actions:
    - cmd_console=chc open Shop3.yml %player%
    reactions: []
@fromgate, а как насчёт такой идеи? Указывая кубоид координат для активатора (кнопки, пластины и т.д.), он будет срабатывать тогда, когда требуемый предмет в этом регионе будет задействован. Проще говоря: я указываю диапазоны координат x, y, z, в которых работает активатор.

Например, "выделив" дом, можно было бы назначить всем люкам в нём действие отмены события. То есть, ни один люк не сдвинется с места (чисто для декора).
Оппа, дела... Работаю с этим:
Код:
SERVER:
  BroadCast:
    time: 0 0/1 * * * ?
    paused: 'false'
    activator: BroadCast
Код:
  BroadCast:
    flags:
    - DELAY=BroadCast
    actions:
    - DELAY=10m/BroadCast
    - 'CMD_CONSOLE=bc Проводится конкурс "Текиндер"! Условия, сроки и призы указаны здесь:&d http://vk.cc/3TI2fH &7(кликните)&a.'
    reactions: []
Как вдруг
Код:
2015-06-15 01:12:46 [SEVERE] Could not pass event ExecEvent to ReActions v0.9.4/5
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427)
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:30)
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:478)
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:463)
at me.fromgate.reactions.event.EventManager$1.run(EventManager.java:228)
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)
Caused by: java.lang.NullPointerException
at me.fromgate.reactions.actions.ActionDelay.execute(ActionDelay.java:41)
at me.fromgate.reactions.actions.Action.executeAction(Action.java:75)
at me.fromgate.reactions.actions.Actions.performAction(Actions.java:187)
at me.fromgate.reactions.actions.Actions.executeActivator(Actions.java:179)
at me.fromgate.reactions.activators.ExecActivator.activate(ExecActivator.java:28)
at me.fromgate.reactions.activators.Activator.executeActivator(Activator.java:274)
at me.fromgate.reactions.activators.Activators.activate(Activators.java:362)
at me.fromgate.reactions.RAListener.onRegionLeave(RAListener.java:373)
at sun.reflect.GeneratedMethodAccessor20.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425)
... 12 more
 
@Lyosha12 это вылезло из какого-то другого места. Ошибка вызвана в ActionDelayed — выполнении отложенного действия
 
@Lyosha12 это вылезло из какого-то другого места. Ошибка вызвана в ActionDelayed — выполнении отложенного действия
Может это из-за моих экспериментов с временем таймера? В принципе, скорее всего именно так. Потому, что при добавлении этой же конструкции вновь вроде всё нормально...
 
@Lyosha12
В общем, я ошибся (неудивительно уже спать жутко хотел ;)) - действительно вылетело из DELAY. Ошибка очень "специфична", т.е. вряд ли она будет повторяться ну очень часто. В следующем релизе она будет учтена.
 
@Korvinius
Получить ник - нельзя (пока - надо будет добавить плейсхолдер).
Но если настраивать сам активатор, то его можно привязать к мобу (ну или получается NPC) с определенным именем.
 
@Korvinius
Получить ник - нельзя (пока - надо будет добавить плейсхолдер).
Но если настраивать сам активатор, то его можно привязать к мобу (ну или получается NPC) с определенным именем.
Почему же нельзя? Активатор выполняется для игрока, который кликнул на моба. Следовательно, можно и %player% вытащить от сюда. // Туплю. Клик же на игрока? Нельзя выполнить активатор для игрока, увы.
Можно ли будет извлечь координаты телепортации игрока без самой телепортации? То есть, отменив её? Это задача, кажется, для активатора TELEPORT, который создавал бы плейсхолдер начала и возможного конца телепортации :)
 
Ребят,а этим плагином нельзя ли заменить авторизацию?)))
 
Ребят,а этим плагином нельзя ли заменить авторизацию?)))
Можно почти все, что угодно :). Авторизация - не исключение, если постараться.
Снова проблема.
Конфиг такой:
Код:
REGION:
  e1_mkill_1:
    region: e1_mkill_1
    flags:
    - VAR_COMPARE=id:e1_point1_2 value:30
    actions:
    - VAR_SET=id:e1_list_point1_2 value:{&2&l✓&8Расчистите пещеру от монстров. &2&l- Выполнено}
    - MESSAGE=player:%player% &f
    - MESSAGE=player:%player% ---------------
    - MESSAGE=player:%player% &6&lТекущие цели
    - MESSAGE=player:%player% %varp:e1_list_point1_1%
    - MESSAGE=player:%player% %var:e1_list_point1_2%
    - MESSAGE=player:%player% %var:e1_list_point1_3%
    - MESSAGE=player:%player% ---------------
    - MESSAGE=player:%player% &f
    - VAR_INC=id:e1_point1_3 value:1
    - VAR_INC=id:e1_point1_2 value:1
    - EXECUTE=activator:e1_point1_3 delay:10s player:%player%
    reactions: []
Собственно, активатор выполняется, но не полностью =\.
Вместо всех сообщений в чате появляется только пустая строка (Видимо, только первая строка с сообщением - &f). При этом все переменные обновляются и остальное работает нормально. В конфиге плагина:
Код:
region-recheck-delay: 20
Что делать? По моим "Подсчетам" все должно работать...
UPD. И правда, почему-то отображало только первую строчку сообщения. Проблема решилась введением нового активатора, в который я вписал все сообщение, и вызова этого активатора командой EXECUTE.
 
Умоляю скиньте простой пример...Тыкнул кнопку увидел текст и свой ник,как реализовать?
Просто ,мне по примерам легче ориентироваться
И как то же самое только кнопку меняем ,скажем на камень(stone)
 
@danil32662543, мне кажется делать этим плагином авторизацию, это уже извращение, чем не устраивают плагины специально для авторизации написанные?
 
@danil32662543, мне кажется делать этим плагином авторизацию, это уже извращение, чем не устраивают плагины специально для авторизации написанные?
Мне было просто интересно возможно ли это ,как факт...(Что сказать,мсье знает толк в извращениях)
 
Мне было просто интересно возможно ли это ,как факт...(Что сказать,мсье знает толк в извращениях)
Вполне возможно. Сохранение координат входа\выхода, требование ввести команду для разморозки, телепорт на место спавна, если команда не введена. Вот только сессию не получится организовать, так как в ReActions нет действий с IP.
 
Назад
Верх