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

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

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

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

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    @Korvinius
    http://reactions.fromgate.me/placeholders.htm

    Единственное, временные плейсхолдеры, вносимые разными активаторами и действиями приведены в описаниях соответствующих флагов, активаторов и действий
     
  2. pasha5018

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

    Баллы:
    76
    Имя в Minecraft:
    tdmackey
    Как только пытаюсь добавить параметры к предмету плагин перестает его выдать, я наверное что-то неправильно делаю?
    test2:
    world: world
    x: -150
    y: 64
    z: -61
    flags: []
    actions:
    - ITEM_GIVE=type:DIAMOND amount:3
    reactions: []
     
  3. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Версия плагина какая? Этот синткасис для последних версий (на BukkitDev её еще нет)?
     
  4. pasha5018

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

    Баллы:
    76
    Имя в Minecraft:
    tdmackey
    Спасибо поменял версию на более новую, все работает замечательно
    Хотел чтобы при нажатии на кнопку забиралось 128 предметов, это возможно или плагин считает предметы только в одном слоте?
     
  5. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Во всех
     
  6. pasha5018

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

    Баллы:
    76
    Имя в Minecraft:
    tdmackey
    Помогите. как сделать, чтобы кнопка 1 раз работала
    rg:
    world: world
    x: -150
    y: 64
    z: -61
    flags:
    - ITEM_INVENTORY=type:DOUBLE_PLANT amount:24 name:{&6Золотая монета}
    actions:
    - CMD_OP=rg addowner test1 %PLAYER_NAME%
    - ITEM_REMOVE_INVENTORY=type:DOUBLE_PLANT amount:24 name:{&6Золотая монета}
    - SIGN_SET_LINE=loc:world,-150,63,-61 line1:&aРегион продан игроку line2:&aигроку &6%PLAYER_NAME%
    reactions: []
     
  7. Korvinius

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

    Баллы:
    88
    поставь задержку на 100 лет :)
     
  8. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Переменную не проще?
     
  9. olegikoligik

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

    Баллы:
    88
    Если я правильно понял, это была шутка.
     
  10. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    @Lyosha12
    Это шикарная мысль, почему я сам не догадался сразу - вообще не понимаю. Сделано! ;)
     
  11. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Тогда поясните мне её, ибо понять свой юмор я не в состоянии.
    @fromgate, а как можно синхронизировать ReActions с днями? Например, нужно что-то менять каждый реальный день, но как узнать, когда день кончился? Если использовать таймер на переменной, то, во-первых, из-за лагов могут быть огромные сдвиги, а во-вторых, нельзя будет определить какой именно сейчас день недели...
     
  12. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    @Эээ... Таймеры? Крон-формат довольно гибкий (хоть у меня до сих пор в мозгах не уложился, и я всегда обращаюсь к документации):
    "0 15 10 * * ?" — это описывает время 10:15 каждого дня. Это самая лучшая "синхронизация".
    Вот тут примеры всяческие: http://quartz-scheduler.org/documentation/quartz-2.2.x/tutorials/crontrigger
     
  13. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    А относительно чего синхронизация происходит? Времени, которое установил хост где-то у себя, или Гринвича?
     
  14. pasha5018

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

    Баллы:
    76
    Имя в Minecraft:
    tdmackey
    [​IMG]Как насчет цветов этой непонятной штуки, они тоже поддерживаются?
     
  15. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    %PLAYER_ITEM_HAND%
     
  16. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    По идее - время хоста. У меня на локальной машине - это московское время.

    Поддерживается. Воспользуйся плейсхолдером, который подсказал @Lyosha12

    К примеру можно сделать такой активатор:
    Код:
    COMMAND:
      iteminfo:
        override: true
        regex: false
        command: cmd:iteminfo
        actions:
        - VAR_SET=id:iteminfo value:%PLAYER_ITEM_HAND%
        - MESSAGE=%PLAYER_ITEM_HAND%
    
    Взять любой предмет в руки и написать /iteminfo - в чате увидишь текст из которого можно потом получить обратно этот предмет, а в файле variables.yml в переменной iteminfo он сохранится (т.е. можно будет скопировать и вставить куда-то)

    Вот пример, такой же звёздочки для фейерверка, которая лежала у меня в сундуке с момента тестов: amount:1 data:0 type:FIREWORK_CHARGE firework-effects:{type:CREEPER flicker:false trail:false colors:195,84,205}
    Начал работу над переводом инструкции. Начало положено: http://reactions.fromgate.ru/
     
  17. Max_ASimus

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

    Баллы:
    103
    Skype:
    max-s.company
    Имя в Minecraft:
    Mr_WonderMan
    Отлично :)
     
  18. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    @fromgate, я уже говорил про радиусы когда-то. Но сейчас хочу опять поднять эту тему и усовершенствовать. Предлагаю создать гибрид FLAG_SET и нового формата описания сущностей.

    Итак... нужно сделать флаг, который бы проверял наличие игрока\моба\локации в радиусе от игрока\моба\локации. Синтаксис я представляю себе такой:
    Код:
    FLAG_RADIUS=<r:N-блоков> <spot:{player:{amount_spot_players:N [<max_rad_spot_player | max_rad_spot_mob>:N-блоков] players_spot_flags<1-N>:{FLAG1:{ARG1} FLAG2:{ARG2}}} | mob:{amount_spot_mob:N mob_spot_flags<1-N>:{FLAG1:{ARG1} FLAG2:{ARG2}}} | loc}> <PLAYER_rad | MOB_rad>:{<amount_rad_players | amount_rad_mobs>:N [<max_rad_rad_player | max_rad_rad_mob>:N-блоков] <FLAGS_rad_player<1-N> | FLAGS_rad_mob<1-N>>:{FLAG1:{ARG1} FLAG2:{ARG2}}}
    
    В такой громадной конструкции постарался уместить все нюансы. Разберём по частям:
    <r:N-блоков> - соответственно, радиус относительно мобов\игроков.

    Код:
    <spot:{player:{amount_spot_players:N [<max_rad_spot_player | max_rad_spot_mob>:N-блоков] players_spot_flags<1-N>:{FLAG1:{ARG1} FLAG2:{ARG2}}} | mob:{amount_spot_mob:N mob_spot_flags<1-N>:{FLAG1:{ARG1} FLAG2:{ARG2}}} | loc}>
    spot - относительно чего задаётся радиус.
    <player:{...} | mob:{...} | loc> - задать радиус относительно игрока\моба\локации.
    --- --- ---
    Код:
    player:{amount_spot_players:N players_spot_flags:{FLAG1:{ARG1} FLAG2:{ARG2}}}
    amount_spot_players - необходимое количество игроков в группе, относительно которых задаётся радиус.
    <max_rad_spot_player | max_rad_spot_mob>:N-блоков - максимальный радиус, когда игрок\моб становится членом группы.
    players_spot_flags - то, чему должны соответсвовать игрок(и), относительно которых задаётся радиус.

    mob:{amount_spot_mob:N mob_spot_flags:{FLAG1:{ARG1} FLAG2:{ARG2}}}
    amount_spot_mob - необходимое количество мобов в группе, относительно которых задаётся радиус.
    mob_spot_flags - то, чему должны соответсвовать моб(ы), относительно которых задаётся радиус.

    === === ===

    Код:
    <PLAYER_rad | MOB_rad:{<amount_rad_players | amount_rad_mobs>:N [<max_rad_rad_player | max_rad_rad_mob>:N-блоков] [FLAGS_rad_player<1-N> | FLAGS_rad_mob<1-N>:{mob_type:<...> hp:<...> effect:<...> equip:{...}}]}
    <PLAYER_rad | MOB_rad> - кого проверяем в радиусе: игроков или мобов?
    <amount_rad_players | amount_rad_mobs>:N - количество игроков\мобов, которых проверяем в данном радиусе.
    [<max_rad_rad_player | max_rad_rad_mob>:N-блоков] - максимальный радиус, когда игрок\моб становится членом группы. (Н-да, небольшой каламбур вышел в аргументе...)
    --- --- ---
    Код:
    [FLAGS_rad_player<1-N> | FLAGS_rad_mob<1-N>:{ [mob_type:<...> hp:<...> effect:<...> equip:{...}] FLAG1:{ARG1} FLAG2:{ARG2}}] 
    [FLAGS_rad_player<1-N> | FLAGS_rad_mob<1-N> - то, чему должны соответствовать проверяемые мобы\игроки.
    [mob_type:<...> hp:<...> effect:<...> equip:{...}] - флаги для мобов в радиусе.
    FLAG1:{ARG1} FLAG2:{ARG2} - флаги для игроков в радиусе.

    === === ===
    <1-N> - здесь я хотел сказать, что можно было бы указывать параметры отдельно для каждого члена группы. Например, нужно собрать группу из пяти типов: атакующий маг, копатель, танк, копейщик, лечащий маг. Используя формат FLAGS_rad_playerN:{...} можно было бы легко описать всех.

    Насчёт групп игроков\мобов: в них нужно определить геометрический центр формации и относительно него проверять, есть ли игроки\мобы в радиусе. Однако, если радиус проверки захватывает группу игроков\мобов, то под проверку группа подпадает только в случае, когда хотя бы один её член задевает радиус.

    Сами же "группы" предлагаю "составлять" так: берём одну особь и проверяем, нет ли в радиусе от неё другой особи. Если есть, то продолжаем проверку уже относительно второй особи в том же радиусе.
    Но нужно установить лимит. Например, максимальный геометрический радиус группы от центра не может быть больше 20 блоков. Это аргумент я уже описывал выше.

    Фууухх... Вроде, ничего не забыл. Так вот, поддаётся ли такое реализации?
     
  19. pasha5018

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

    Баллы:
    76
    Имя в Minecraft:
    tdmackey
    Активатор только в ручную можно убрать?
     
  20. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Нет, ещё и командой: /ra remove activator NAME
     

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