1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

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

Тема в разделе "Релизы плагинов", создана пользователем fromgate, 16 июл 2013.

  1. Max_ASimus

    Max_ASimus Старожил Пользователь

    Баллы:
    103
    Skype:
    max-s.company
    Имя в Minecraft:
    Mr_WonderMan
    Решил сделать систему подсчета выполненных целей. С помощью переменных сделал так, чтобы при первом входе в регион отображалось сообщение: "Задача обновлена. Исследуйте пещеру (%varp:E1_Point1_1%)"
    В результате переменная выводится в виде дробного числа (1.о, 2.0, 3.0 и т.д.), что выглядит некрасиво, в данном случае же дробь неуместна. Можно это как-то исправить и сделать отображение только целой части переменной?
     
  2. Автор темы
    fromgate

    fromgate Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    @Max_ASimus Вообще я при выводе целых переменных, вроде принудительно ".0" отсекал. Но возможно где-то забыл.
    Сейчас ничего советовать не буду, я взялся за переписывание плейсхолдеров. Постараюсь это там учесть.
     
  3. Max_ASimus

    Max_ASimus Старожил Пользователь

    Баллы:
    103
    Skype:
    max-s.company
    Имя в Minecraft:
    Mr_WonderMan
    @fromgate Ясно, спасибо. Я заметил, что у меня ".0" отсекается при выполнении VAR_SET и VAR_PLAYER_SET. Но мне нужно VAR_PLAYER_INC, а там ".0" присутствует.
     
  4. Lyosha12

    Lyosha12 Активный участник Пользователь

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Mob_Click. Тип - Player. Всё отлично работает.
     
  5. Автор темы
    fromgate

    fromgate Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Круто! :)
    О! Спасибо, учту.
    Как временный костыль - запишите результа VAR_INC посредством VAR_SET в другую переменную и выведите её ;)
     
  6. Korvinius

    Korvinius Активный участник Пользователь

    Баллы:
    88
    можно кусочек конфига посмотреть с этим активатором?
     
  7. Max_ASimus

    Max_ASimus Старожил Пользователь

    Баллы:
    103
    Skype:
    max-s.company
    Имя в Minecraft:
    Mr_WonderMan
    Тоже учту :).
    Пока доделывал систему - появился еще вопрос. При спавне моба можно указать параметр run (Т.е. запуск exec-активатора при смерти моба). Собственно, вопрос: Есть ли возможность каким-то образом указать там параметр Player, как при вызове exec-активатора с помощью действия? Т.е. можно сделать так, чтобы запускающийся активатор был привязан к определенному игроку?
     
  8. Lyosha12

    Lyosha12 Активный участник Пользователь

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Код:
      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
     
  9. Автор темы
    fromgate

    fromgate Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    @Lyosha12 это вылезло из какого-то другого места. Ошибка вызвана в ActionDelayed — выполнении отложенного действия
     
  10. Lyosha12

    Lyosha12 Активный участник Пользователь

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Может это из-за моих экспериментов с временем таймера? В принципе, скорее всего именно так. Потому, что при добавлении этой же конструкции вновь вроде всё нормально...
     
  11. Автор темы
    fromgate

    fromgate Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    @Lyosha12
    В общем, я ошибся (неудивительно уже спать жутко хотел ;)) - действительно вылетело из DELAY. Ошибка очень "специфична", т.е. вряд ли она будет повторяться ну очень часто. В следующем релизе она будет учтена.
     
  12. Korvinius

    Korvinius Активный участник Пользователь

    Баллы:
    88
    @Lyosha12 или @fromgate, подскажите, можно ли тогда в этом случае:
    получить в плейсхолдер ник игрока, по которому кликнули?
     
  13. Автор темы
    fromgate

    fromgate Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    @Korvinius
    Получить ник - нельзя (пока - надо будет добавить плейсхолдер).
    Но если настраивать сам активатор, то его можно привязать к мобу (ну или получается NPC) с определенным именем.
     
  14. Lyosha12

    Lyosha12 Активный участник Пользователь

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Почему же нельзя? Активатор выполняется для игрока, который кликнул на моба. Следовательно, можно и %player% вытащить от сюда. // Туплю. Клик же на игрока? Нельзя выполнить активатор для игрока, увы.
    Можно ли будет извлечь координаты телепортации игрока без самой телепортации? То есть, отменив её? Это задача, кажется, для активатора TELEPORT, который создавал бы плейсхолдер начала и возможного конца телепортации :)
     
  15. danil32662543

    danil32662543 Активный участник Пользователь

    Баллы:
    88
    Ребят,а этим плагином нельзя ли заменить авторизацию?)))
     
  16. Max_ASimus

    Max_ASimus Старожил Пользователь

    Баллы:
    103
    Skype:
    max-s.company
    Имя в Minecraft:
    Mr_WonderMan
    Можно почти все, что угодно :). Авторизация - не исключение, если постараться.
    Снова проблема.
    Конфиг такой:
    Код:
    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.
     
  17. danil32662543

    danil32662543 Активный участник Пользователь

    Баллы:
    88
    Умоляю скиньте простой пример...Тыкнул кнопку увидел текст и свой ник,как реализовать?
    Просто ,мне по примерам легче ориентироваться
    И как то же самое только кнопку меняем ,скажем на камень(stone)
     
  18. Korvinius

    Korvinius Активный участник Пользователь

    Баллы:
    88
    @danil32662543, мне кажется делать этим плагином авторизацию, это уже извращение, чем не устраивают плагины специально для авторизации написанные?
     
  19. danil32662543

    danil32662543 Активный участник Пользователь

    Баллы:
    88
    Мне было просто интересно возможно ли это ,как факт...(Что сказать,мсье знает толк в извращениях)
     
  20. Lyosha12

    Lyosha12 Активный участник Пользователь

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Вполне возможно. Сохранение координат входа\выхода, требование ввести команду для разморозки, телепорт на место спавна, если команда не введена. Вот только сессию не получится организовать, так как в ReActions нет действий с IP.
     

Поделиться этой страницей