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

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

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

  1. maxdikiy

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

    Баллы:
    76
    Имя в Minecraft:
    maxdikiy
    Это как раз можно сделать. У нас имются координаты стреляющего %shooterloc% и координаты жертвы %targetloc%. Теперь мы просто узнаём расстояние до цели и направление этого вектора, а затем подбираем необходимую скорость для отдачи и результат вставляем в действие velocity.
    Чистая математика!

    Расстояние:
    S=SQRT((x2-x1)^2+(y2-y1)^2+(z2-z1)^2), где x1,y1,z1 - координаты стреляющего
    Направление единичного вектора:
    V=((x2-x1)/S, (y2-y1)/S,(z2-z1)/S) = V1(x,y,z)
    Теперь результат V вставляем в действие velocity с коэффициентом отдачи (k)

    - VELOCITY=vector:x*k,y*k,z*k

    Дерзайте!
     
  2. SOHIGH

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

    Баллы:
    76
    Вот что, что я делаю не так?
    Есть меню:
    Код:
        - 'MENU_ITEM=size:45 title:{Терминал} slot2:{name:{} lore{} } exec2:Exec_cancel slot23:{name:{&c❢ &4Информация} lore:{&7Текущий заработок:\n&b%varp:MoneyEarnedTick%&c$\n\n&7Ёмкость аккумуляторов:\n&b%PowerBank% &amAh\n\n&7Заряд:\n&b%varp:Power% &aКулон\n\n&7Потребляемая энергия:\n&b%varp:PowerNeed% &aКулон\n\n&7Статус:\n&r%varp:status%} type:323} exec23:_ slot1:{name:{&c&l↺ &9Скан} lore:{&7Купить\n&7Анти-сканирующее\n&7Устройство\n&7Цена: 5000$} type:166} exec1:_ slot9:{name:{&c&l℃ &4Перегрев} lore:{&7Потушить терминал\n&7Цена: 5000$} type:327} exec9:_ exec1:_ slot28:{name:{&c&l↯ &9Аккумуляторы} lore:{&7Купить дополнительный\n&7Аккумулятор} type:152} exec28:Exec_BuyPowerBankType slot37:{name:{&c&l↯ &9Заряд} lore:{&7Пополнить заряд\n&7Аккумуляторов} type:331} exec37:Exec_BuyPower slot45:{name:{&c&l$ &9Деньги} lore:{&7Забрать заработанные\n&7Деньги:\n&b%varp:MoneyEarned%&c$} type:265} exec45:Exec_MoneyEarned slot5:{name{&c↑ &9Улучшения} lore{&7Кликни, чтобы\n&7открыть список\n&7улучшений, которые\n&7возможно купить} type:384} exec5:Exec_buyupgrade'
    При клике на любой не занятый слот меня выкидывает с меню.
    Предпологаю, что тут нужно использовать активатор INVENTORY_CLICK, но как именно не понимаю.

    Пытался выполнять действие CANCEL_EVENT с помощью этого активатора, но, неверно.
    Код:
      Exec_cancel:
        actions:
        - CANCEL_EVENT=true


    И еще 1 вопрос:
    Как удалить глобальную переменную, значение которой является мой ник(%Player_name%)?
    Пытался так:
    Проверял у переменной свой ник, затем переменной присваивал значение.
    Код:
        - IF_ELSE=
            if:{%var:Terminal_143,64,53%==%Player_name%}
            then:run:actions:{
                action1:{VAR_SET=id:Terminal_143,64,53 value:0}
            }
            else:{}
            }
    Как оказалось - не работает.
     
    Последнее редактирование: 5 ноя 2017
  3. maxdikiy

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

    Баллы:
    76
    Имя в Minecraft:
    maxdikiy
    При выборе любого слота меню, инвентарь меню удаляется.
    Попробуйте ко всем не занятым слотам установить активатор, который создаёт это меню.
     
  4. maxdikiy

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

    Баллы:
    76
    Имя в Minecraft:
    maxdikiy
    Объекты в условии не определены. Используйте %ifelsedebug% для того, чтобы себя проверить.
    Вам нужно заключить всё в кавычки:
    Код:
    if:{"%var:Terminal_143,64,53%"=="%Player_name%"}
    А для того, чтобы удалить глобальную переменную нужно использовать действие VAR_CLEAR
     
  5. Lalki

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

    Баллы:
    66
    Разве активаторы работают на монстров?
     
  6. maxdikiy

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

    Баллы:
    76
    Имя в Minecraft:
    maxdikiy
    Я не обратил внимание, что вам нужно для монстров. Жертву-игрока откинет, а монстров - нет. Думаю, что отдачу можно будет сделать для всех.
     
  7. SOHIGH

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

    Баллы:
    76
    Каждый раз обращаясь в эту тему со своим вопросом - всегда получаю ответ, за что огромное всем спасибо, особенно @maxdikiy.

    Назрел у меня еще 1 вопрос :d
    Имею активатор:
    Код:
    EXEC:
      Exec_MoneyEarned_%var:Terminal_146,64,53%:
        flags:
        - VAR_PLAYER_GREATER=player:%var:Terminal_146,64,53% id:MoneyEarned value:0
        actions:
        - MESSAGE=&7Балланс счета &b0&c$&7. Выводить нечего.
        reactions:
        - MESSAGE=&7Вы сняли &b%varp:%var:Terminal_146,64,53%.MoneyEarned%&c$ &7с термилана игрока &b%var:Terminal_146,64,53%.
        - MONEY_GIVE=%varp:%var:Terminal_146,64,53%.MoneyEarned%
        - VAR_PLAYER_SET=player:%var:Terminal_146,64,53% id:MoneyEarned value:0
    При попытке перенести его в другой файл, для удобной работы с ним получаю это:
    upload_2017-10-31_23-29-37.png
    Пытаюсь перенести командой:
    /react group Exec_MoneyEarned_%var:Terminal_146,64,53% Terminal

    Можно-ли как-нибудь создать новый файл с несколькими активаторами?
     
  8. maxdikiy

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

    Баллы:
    76
    Имя в Minecraft:
    maxdikiy
    Это что такое? Название активатора?
    Это всё равно что (предположительно):
    Код:
    EXEC:
      Exec_MoneyEarned_%var:
        Terminal_146,64,53%:
          flags:
          - VAR_PLAYER_GREATER=player:%var:Terminal_146,64,53% id:MoneyEarned value:0
          actions:
          - MESSAGE=&7Балланс счета &b0&c$&7. Выводить нечего.
          reactions:
          - MESSAGE=&7Вы сняли &b%varp:%var:Terminal_146,64,53%.MoneyEarned%&c$ &7с термилана игрока &b%var:Terminal_146,64,53%.
          - MONEY_GIVE=%varp:%var:Terminal_146,64,53%.MoneyEarned%
          - VAR_PLAYER_SET=player:%var:Terminal_146,64,53% id:MoneyEarned value:0
    Возьмите в кавычки тогда: 'Exec_MoneyEarned_%var:Terminal_146,64,53%'
    Зачем так всё усложнять. Потом вы запутаетесь в будущем.
     
    Последнее редактирование: 31 окт 2017
  9. maxdikiy

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

    Баллы:
    76
    Имя в Minecraft:
    maxdikiy
    Build #162
    • Добавлена возможность отбрасывания существа-цели при выстреле с помощью действия SHOOT
    • Для этого необходимо к действию SHOOT добавить параметр knockbackTarget:<число>
    • <число> - устанавливает начальную скорость отбрасывания цели
    • Для активатора INVENTORY_CLICK добавлена проверка по имени инвентаря name:'' и добавлен плейсхолдер %name%
     
  10. Neosha

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

    Баллы:
    66
    Доброго времени суток @fromgate и @maxdikiy
    У меня проблема с плагином после обновления.
    Код:
    Could not pass event ProjectileHitEvent to ReActions v0.10.2
    org.bukkit.event.EventException
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) ~[survival.jar:git-Spigot-21fe707-e1ebe52]
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[survival.jar:git-Spigot-21fe707-e1ebe52]
            at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [survival.jar:git-Spigot-21fe707-e1ebe52]
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [survival.jar:git-Spigot-21fe707-e1ebe52]                                      at org.bukkit.craftbukkit.v1_8_R3.event.CraftEventFactory.callProjectileHitEvent(CraftEventFactory.java:760) [survival.jar:git-Spigot-21fe707-e1ebe52]
            at net.minecraft.server.v1_8_R3.EntityArrow.t_(EntityArrow.java:224) [survival.jar:git-Spigot-21fe707-e1ebe52]
            at net.minecraft.server.v1_8_R3.World.entityJoinedWorld(World.java:1607) [survival.jar:git-Spigot-21fe707-e1ebe52]
            at net.minecraft.server.v1_8_R3.World.g(World.java:1582) [survival.jar:git-Spigot-21fe707-e1ebe52]
            at net.minecraft.server.v1_8_R3.World.tickEntities(World.java:1425) [survival.jar:git-Spigot-21fe707-e1ebe52]
            at net.minecraft.server.v1_8_R3.WorldServer.tickEntities(WorldServer.java:597) [survival.jar:git-Spigot-21fe707-e1ebe52]
            at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:786) [survival.jar:git-Spigot-21fe707-e1ebe52]
            at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374) [survival.jar:git-Spigot-21fe707-e1ebe52]
            at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [survival.jar:git-Spigot-21fe707-e1ebe52]
            at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [survival.jar:git-Spigot-21fe707-e1ebe52]
            at java.lang.Thread.run(Thread.java:748) [?:1.8.0_131]
    Caused by: java.lang.NoSuchMethodError: org.bukkit.event.entity.ProjectileHitEvent.getHitEntity()Lorg/bukkit/entity/Entity;
            at me.fromgate.reactions.event.EventManager.raiseProjectileHitEvent(EventManager.java:573) ~[?:?]
            at me.fromgate.reactions.RAListener.onProjectileHitEvent(RAListener.java:325) ~[?:?]
            at sun.reflect.GeneratedMethodAccessor333.invoke(Unknown Source) ~[?:?]
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_131]
            at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_131]
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[survival.jar:git-Spigot-21fe707-e1ebe52]
            ... 14 more
    /version
    Код:
    [12:45:17 INFO]: This server is running CraftBukkit version git-Spigot-21fe707-e1ebe52 (MC: 1.8.8) (Implementing API version 1.8.8-R0.1-SNAPSHOT)
    [12:45:17 INFO]: You are 809 version(s) behind
    Логи запуска ReActions(отдельно выгружал и подгружал через ASW pmanager):
    Код:
    [12:46:19 INFO]: [ReActions] Enabling ReActions v0.10.2
    [12:46:20 INFO]: [ReActions] PlayEffect plugin is not found at your system
    [12:46:20 INFO]: [ReActions] If you need more effects please download PlayEffect from:
    [12:46:20 INFO]: [ReActions] http://dev.bukkit.org/bukkit-plugins/playeffect/
    [12:46:20 INFO]: [ReActions] ProtocolLib connected
    [12:46:20 INFO]: [ReActions] Vault connected
    [12:46:20 INFO]: [ReActions] WorldGuard 6.0.0-beta-03.1514- found. Bridge loaded: WGBridge 0.0.2/WG6x
    [12:46:20 INFO]: [ReActions] Failed to load delayed actions
    Активаторов и прочего ничего нету.
     
  11. maxdikiy

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

    Баллы:
    76
    Имя в Minecraft:
    maxdikiy
    Судя по листингу, у вас старая версия плагина. Скачайте последнюю версию здесь:

    Загрузить последнюю версию
     
    Последнее редактирование: 1 ноя 2017
  12. Neosha

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

    Баллы:
    66
    Хорошо, попробую. А на BukkitDev разве не последняя версия?
     
  13. SOHIGH

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

    Баллы:
    76
    Нет. Там редко последняя версия, т.к. на BukkitDev проверяют плагины, чтобы бекдоров не было.
     

    Вложения:

  14. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Совсем не по этой причине.
    Можно хоть каждый день туда выкладывать, просто это дополнительные телодвижения. Поэтому там выкладываются периодически.

    Актуальная версия на CircleCi.
     
  15. SOHIGH

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

    Баллы:
    76
    Хм, возможно, я что-то делаю не так, но у меня не работает add-vector:
    Код:
      'Create_Terminal':
        command: Terminal
        actions:
        - 'BLOCK_SET=block:84 loc:%PLAYER_LOC% add-vector:0,5,0'
    Блок устанавливается на %PLAYER_LOC%
     
  16. maxdikiy

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

    Баллы:
    76
    Имя в Minecraft:
    maxdikiy
    Попробуйте локацию поместить в фигурные скобки:
    Код:
    loc:{%PLAYER_LOC% add-vector:0,5,0}
     
  17. SOHIGH

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

    Баллы:
    76
    Да что за магия?
    Делал же так, ошибка в консоле была :/
     
  18. SOHIGH

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

    Баллы:
    76
    Ах, да.
    Ошибка в консоле при выполнении активатора:
    Ошибка:
    Код:
    [03:08:39] [Server thread/INFO]: SOHIGH issued server command: /Terminal
    [03:08:39] [Server thread/ERROR]: Could not pass event CommandEvent to ReActions v0.10.2
    org.bukkit.event.EventException: null
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[Spigot.jar:git-Spigot-596221b-9a1fc1e]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[Spigot.jar:git-Spigot-596221b-9a1fc1e]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:499) [Spigot.jar:git-Spigot-596221b-9a1fc1e]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:484) [Spigot.jar:git-Spigot-596221b-9a1fc1e]
        at me.fromgate.reactions.event.EventManager.raiseCommandEvent(EventManager.java:240) [ReActions-1.0-SNAPSHOT%20(1).jar:?]
        at me.fromgate.reactions.RAListener.onPlayerCommand(RAListener.java:405) [ReActions-1.0-SNAPSHOT%20(1).jar:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_144]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_144]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_144]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_144]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) [Spigot.jar:git-Spigot-596221b-9a1fc1e]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) [Spigot.jar:git-Spigot-596221b-9a1fc1e]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:499) [Spigot.jar:git-Spigot-596221b-9a1fc1e]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:484) [Spigot.jar:git-Spigot-596221b-9a1fc1e]
        at net.minecraft.server.v1_12_R1.PlayerConnection.handleCommand(PlayerConnection.java:1377) [Spigot.jar:git-Spigot-596221b-9a1fc1e]
        at net.minecraft.server.v1_12_R1.PlayerConnection.a(PlayerConnection.java:1220) [Spigot.jar:git-Spigot-596221b-9a1fc1e]
        at net.minecraft.server.v1_12_R1.PacketPlayInChat.a(PacketPlayInChat.java:45) [Spigot.jar:git-Spigot-596221b-9a1fc1e]
        at net.minecraft.server.v1_12_R1.PacketPlayInChat.a(PacketPlayInChat.java:1) [Spigot.jar:git-Spigot-596221b-9a1fc1e]
        at net.minecraft.server.v1_12_R1.PlayerConnectionUtils$1.run(SourceFile:13) [Spigot.jar:git-Spigot-596221b-9a1fc1e]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_144]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_144]
        at net.minecraft.server.v1_12_R1.SystemUtils.a(SourceFile:46) [Spigot.jar:git-Spigot-596221b-9a1fc1e]
        at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:747) [Spigot.jar:git-Spigot-596221b-9a1fc1e]
        at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:405) [Spigot.jar:git-Spigot-596221b-9a1fc1e]
        at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:678) [Spigot.jar:git-Spigot-596221b-9a1fc1e]
        at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:576) [Spigot.jar:git-Spigot-596221b-9a1fc1e]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_144]
    Caused by: java.util.ConcurrentModificationException
        at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901) ~[?:1.8.0_144]
        at java.util.ArrayList$Itr.next(ArrayList.java:851) ~[?:1.8.0_144]
        at me.fromgate.reactions.activators.Activators.activate(Activators.java:328) ~[?:?]
        at me.fromgate.reactions.RAListener.onCommandActivator(RAListener.java:547) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_144]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_144]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_144]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_144]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ~[Spigot.jar:git-Spigot-596221b-9a1fc1e]
        ... 26 more
    Активатор:
    Код:
      Create_Terminal:
        override: true
        regex: false
        command: Terminal
        actions:
        - VAR_TEMP_SET=id:index value:%CALC:%var:count%-1%
        - BLOCK_SET=block:84 loc:{%PLAYER_LOC% add-vector:0,-1,0}
        - CMD_OP=react add loc loc_terminal_%index%
        - CMD_OP=react add BLOCK_CLICK CLICK_%index% type:84 click:Right location:loc_terminal_%index%
        - CMD_OP=react group CLICK_%index% Terminal_%index%
        - VAR_INC=id:count value:1
     
  19. maxdikiy

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

    Баллы:
    76
    Имя в Minecraft:
    maxdikiy
    У вас есть несколько неверных моментов, чтобы всё заработало:
    1. необходимо определить %var:count% (последнее действие должно быть первым)
    2. Для активатора BLOCK_CLICK вместо location нужно указать loc (документацию уже поправил на этот счёт)
    3. Что касается исключения, то для тяжёлых задач, таких как создание активаторов через консоль, необходимо делать задержку.
    В общем, вот что у Вас должно получиться:
    Код:
    Create_Terminal:
        override: true
        regex: false
        command: Terminal
        actions:
        - VAR_INC=id:count value:1
        - VAR_SET=id:index value:%CALC:%var:count%-1%
        - BLOCK_SET=block:84 loc:{%PLAYER_LOC% add-vector:0,-1,0}
        - CMD_OP=react add loc loc_terminal_%var:index%
        - wait=time:100ms
        - CMD_OP=react add BLOCK_CLICK CLICK_%var:index% type:84 click:Right loc:loc_terminal_%var:index%
        - wait=time:100ms
        - CMD_OP=react group CLICK_%var:index% Terminal_%var:index%
        - VAR_CLEAR=id:index
    
    Вместо временной переменной %index% я намеренно создал глобальную переменную, т.к. из-за действий задержек временная переменная удаляется.
     
  20. Neosha

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

    Баллы:
    66
    А с него возможно ли скачивать? Не нашёл такой возможности. Я немного нубик, извините.
     

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