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

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

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

  1. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Или чтобы он был владельцем региона, в котором находится табличка. Однако вопрос о наложении регионов, когда в одном игрок владелец, а в другом - нет, лично для меня остаётся открытым.
     
  2. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Вроде получилось побороть.

    @Lyosha12
    На видео - твой активатор. Я в него только вывод времени для контроля добавил.



    v0.9.8
    1. Добавлен новый активатор QUIT. Этот активатор выполняется когда игрок покидает серверы.
    2. Исправлено несколько ошибок.
    https://www.spigotmc.org/resources/reactions.8754/
     
    Последнее редактирование: 20 июл 2015
  3. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Да, вот теперь, похоже, таймер работает исправно. Благодарю.
    @fromgate, ещё интересная штука с ITEM_GIVE: я задаю выдачу рандомного количества предметов - от нуля и далее. И если попадается именно этот ноль, то предмет-то выдаётся, но он "дюпнутый". Можно поправить? :D
     
  4. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Прикольно, поправлю.
     
  5. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    @fromgate, а почему нет сравнения предметов по зачарованию? :(
    И можно ли применять регулярные выражения в описании зачарований?
     
  6. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Если честно, то потому что когда я писал тот код с предметами он меня откровенно достал. Я его раз пять с нуля переписывал.
    Буду ещё дорабатывать.

    Регулярные выражения в описании зачарования имеют смысл, когда они вообще будут проверятся, а при создании предмета - как их применишь-то. Тут точность нужна.
     
  7. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Я и не говорю про создание :)
    @fromgate, прошу добавить флаг для проверки присутствия блока в локации, которую можно было бы изменять с помощью add-vector.
    Я вдохновился этой статьёй и решил сделать такой же генератор лабиринта. Алгоритм на ReActions уже построен. Осталось дождаться флага "TEST_BLOCK=loc:локация add-vector" :)
    CHANCE <Вероятность%> "Бросить" кости с определенным шансом

    Я бы переименовал в "Установить вероятность успешного отрабатывания флага" http://reactions.fromgate.ru/flags.htm
    Насчёт флагов REGION MEMBER и OWNER. Там нужно прямо указать регион. Такой метод можно было бы использовать только в какой-либо мини-игре, где названия всех регионов уже известны. Но возможности этой проверки так и не реализованы в полной мере.

    Я имею в виду, что проверка должна быть не только по заданному региону, а по локации в принципе. Но тут же всплывает недавний вопрос про наложение регионов с владельцем и без него. Можно сделать параметр для этих флагов, который бы выдавал false, если хоть в одном регионе игрок не состоит. И наоборот - true, если хоть в одном состоит.

    Так же необходимо бы извлекать и название региона из проверки с помощью плейсхолдера. Может из накладывающихся регионов это сделать проблематично (на что нужен ещё один параметр, который выдаёт false, если в накладывающихся регионах игрок владелец), но из одиночного так точно можно.

    Вслед за плейсхолдером, содержащим название региона, нужно добавить действие исключения и добавления игрока в регион: регион может не находится в стандартном мире, и команду /wg addmember %region-OWNER|MEMBER-name% -w world не удастся симулировать из-за невозможности вывести мир в отдельный плейхолдер после проверки.
     
  8. Sanya007vuch

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

    Баллы:
    68
    в 0.9.8 таймер фиксанули?
    а то я как-то провтыкал этот момент и не совсем понял
     
  9. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Что значит "фикснули"? Таймер работает нормально, ещё черт знает с каких времен.
     
  10. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    @fromgate, предлагаю добавить флаг проверки завершённости работы SCL.
     
  11. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Идея неплохая. Но только после того как полностью перепишу ScLoad. Очень надеюсь, что когда-то до него дойдут руки.
     
  12. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    И активатор ломания блока тоже необходим... С плейсхолдером координат сломанного блока, его типа, мета-данных.
    И нужен ещё флаг для проверки эффектов на игроке.
    @fromgate, так в какой же последовательности расположились номера слотов в плейсхолдере %PLAYER_INV:<Слот>%?
    @fromgate, можно попросить добавить плейсхолдеры каждой координаты отдельно и возможность их модификации с помощью add-vector? Это нужно много где, например:
    upload_2015-7-21_23-58-59.png
    @fromgate, появилась интересная заминка. Я проверяю наличие игрока в регионе, когда он уже умер - исчез с поля для всех. Но активатор всё равно считает его присутствующим там - он ещё не нажал кнопку RESPAWN. Нужно создать ещё один параметр для селектора, который бы исключал умерших игроков из требуемой выборки - death-players:<true | false>.

    Да, скажете Вы, можно задавать игроку переменную при смерти, которая бы означала его гибель. А в нужном активаторе установить флаг, который бы отсеивал таких игроков. Однако, до этого не каждый додумается. И пройдёт ещё больше времени, когда индивидуум осознает, что же это за баг, который не позволяет завершить игру.

    + В активатор PLAYER_RESPAWN нужно бы добавить параметр наряду с причиной, который бы задавал точку, в которой игрок мог умереть - локацию. Если смерть была вне локации, то активатор не запустится.
    Почему бы не добавить в death-cause подпараметр - от которого моба умер игрок? Или же, от какого игрока у мер игрок? Говоря "от какого", я подразумеваю, что в подпараметре нужно будет указывать флаги, которым игрок-убийца должен соответствовать...

    Аналогичный подпараметр нужно было бы добавить и в PVP_KILL. Там он будет характеризовать конкретную жертву, от которой должен запускаться активатор.
    @fromgate, а можно ли в действии спавна крипера указать чёрный и белый списки блоков, которые не может и может уничтожить его взрыв? Аналогично и с драконом края (конечно, флаги WG должны быть приоритетнее).

    Эндермену же можно было бы задать пределы, в которых он может телепортироваться - локацию. Можно было бы сделать параметр, установивт значение которого на false, эндермен не реагировал бы на игрока при взгляде на него (отдельный подпараметр), нанесения ему время (тоже отдельный подпараметр).
    Скелету добавить параметр скорости стрельбы.
    Курице - с каким промежутком нести яйца.
    Корове - как часто с неё можно собирать молоко, в каком количестве, какой период "пополнения запасов".
    Свинозомби - быть ли агрессивно настроенным сразу.
    Чешуйнице - разрешение замещать блоки.
    Жителю - кастомизация товаров, управление возможностью генерировать новые товары по мере продажи последнего в списке, возможность задавать свои "скрытые товары", возможность отключать лимит, который не позволяет покупать больше товаров, пока не купишь хотя бы один раз последний.

    Всем мобам - получать ли повреждения от падения, удушья в блоке, под водой, горения в огне и так далее.
    Мирным - реагировать ли на изменение своего здоровья в меньшую сторону.
    И можно попросить сделать действие, которое насильно нажимает кнопку RESPAWN для игрока? Да, есть несколько плагинов, позволяющие сделать это. Но в них нельзя поставить ограничитель - когда не нужно нажимать кнопку за игрока.

    Например, когда в Essentials параметр, отвечающий за спавн игрока в своём доме (у кровати), выставлен в true (игрок при смерти спавнится в доме), крайне не желательно нажимать кнопку респавна, если рядом есть тот, кто его убил.

    Из-за такого сценария я хотел бы использовать это только в специализированных зонах, но, как я говорил, другие плагины такого не позволяют - работают всегда и везде.
    А можно проиграть звук с пластинки?
    Проблема:
    Код:
    ITEM_CLICK:
      Parkour-Award-Elongacia:
        item: amount:1 regex:false name:{&aПожирающий элонгацию} data:0 potion-effects:Slow:2:1m type:POTION lore:{&7Акселерация (5:00)\n\n&6За победу в паркуре;\n&a%player% &6- лучший игрок!}
    
    Реагирует на любой предмет... В количестве двух штук... То же самое и с ITEM_HOLD. Беру любой предмет в количестве двух штук - накладываются все эффекты от уже созданных призов.
    Тот же самый активатор с эффектами брони. Надел два блока - всё сбилось:
    upload_2015-7-22_21-12-49.png
    Код:
    ITEM_WEAR:
      Parkour-Award-Diamond-Armour:
        item: amount:1 regex:true type:DIAMOND_HELMET lore:{&6За победу в паркуре;\n&a(\w){1,15} &6- лучший игрок!}
        flags:
        - ITEM_WEAR=amount:1 regex:false type:DIAMOND_HELMET lore:{&6За победу в паркуре;\n&a%player% &6- лучший игрок!}
        - ITEM_WEAR=amount:1 regex:false type:DIAMOND_CHESTPLATE lore:{&6За победу в паркуре;\n&a%player% &6- лучший игрок!}
        - ITEM_WEAR=amount:1 regex:false type:DIAMOND_LEGGINGS lore:{&6За победу в паркуре;\n&a%player% &6- лучший игрок!}
        - ITEM_WEAR=amount:1 regex:false type:DIAMOND_BOOTS lore:{&6За победу в паркуре;\n&a%player% &6- лучший игрок!}
        - '!REGION=world_the_end.parkour'
        - '!REGION=world_the_end.dropper'
        actions:
        - POTION=type:DAMAGE_RESISTANCE time:10 level:3
        - POTION=type:SPEED time:10 level:2
        - POTION=type:JUMP time:10 level:2
        - POTION=type:REGENERATION time:10 level:3
        reactions: []

    @fromgate, желательно было бы добавить и автоподстановку аргументов в командах, если таковые заданы.
    @fromgate, ещё одному человеку нужен флаг проверки общего числа занятых ячеек в инвентаре: http://rubukkit.org/threads/kak-zap...-u-tebja-ne-xvataet-mesta-v-inventare.107105/
     
    Последнее редактирование: 22 июл 2015
  13. rukaban96

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

    Баллы:
    76
    Может это только у меня такое , но цветовой &c в действии сообщения не работает . 1.5.2 .спигот.
     
  14. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    @rukaban96
    Там точно не русская «с» стоит?
     
  15. rukaban96

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

    Баллы:
    76
    Да, мой косяк , спасибо
     
  16. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
  17. Sanya007vuch

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

    Баллы:
    68
    Столкнулся с проблемой:
    время таймера: time: '10 0/1 * * * ?' (должен каждые 1 минуту 10 секунд выполнять действие, например, писать сообщение.
    За это время действие успевает выполниться 7-10 раз. Т.е. я получаю 7-10 спамов сообщения.
    Как решить это?
     
  18. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/entity/CreatureType.html
    Гляну вечером.
     
  19. Sanya007vuch

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

    Баллы:
    68
  20. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    @fromgate
    1. Баг. Активатор срабатывает на все предметы в количестве двух штук и более (кроме тех, которые имеют своё имя):
    Код:
    ITEM_CLICK:
      Activator-ITEM_CLICK-2:
        item: type:IRON_SWORD amount:1
    
    2. Описание флага CHANCE не очень понятно. Я бы написал так: "Задаёт шанс положительной отработки флага"
    http://reactions.fromgate.ru/flags.htm

    3. Прошу добавить флаг проверки блок(а|ов) в локации.

    4. Прошу добавить возможность проверять игрока на факт владения регионом с помощью локации.

    В дополнение нужен будет параметр "что делать при наложении двух и более регионов, если игрок владеет хотя бы одним из них?" Если значение этого параметра false, то игнорировать наложение - выдавать true при хотя бы одном регионе, которым владеет игрок в заданной локации.

    Аналогично нужен плейсхолдер, содержащий название регионов, которыми владеет и не владеет игрок в данной локации.

    5. Прошу реализовать действие добавления\исключения игрока из региона, который будет подставляется с помощью плейсхолдера.

    6. Прошу добавить активатор, реагирующий на разрушение блока; создающий плейсхолдеры координат разрушенного блока и его описания.

    7. Прошу добавить плейсхолдеры каждой из трёх координат.

    8. Прошу добавить в плейсхолдер CALC возможность выводить остаток при делении.

    9. Во флаг проверки количества игроков в регионе, селектор игроков прошу добавить параметр, исключающих мёртвых игроков, которые ещё не нажали кнопку RESPAWN.

    10. В PLAYER_RESPAWN прошу добавить параметр-локацию, в которой мог умереть игрок, чтобы активатор успешно запустился.

    11. В параметр death-cause активаторов PLAYER_DEATH и PLAYER_RESPAWN прошу добавить необязательный подпараметр - тип убийцы, ник убийцы.

    12. Прошу добавить в действие спавна мобов такие подпараметры:

    1) Криперу и эндердракону: возможность указать маску списка блоков, которые будут затронуты взрывом (по аналогии с маской кистей WorldEdit).
    2) Эндермену: предел-локацию, где возможно его перемещение.
    3) Скелету: скорость стрельбы.
    4) Курице: промежуток производства яиц.
    5) Корове: интервал "пополнения" запасов молока; количество возможных доек.
    5) Свинозомби: агрессивен ли по-умолчанию?
    6) Чешуйнице: разрешено ли замещать блоки?
    7) Жителю: возможность задавать кастомные товары; генерировать ли новые товары по мере продажи последнего в списке; возможность задавать кастомные товары, которые будут появляться по мере продажи последнего в списке; возможность отключения лимита покупок на один товар.
    8) Всем мобам: получать ли повреждения от разных видов урона.
    9) Мирным мобам: реагировать ли на изменение своего здоровья в меньшую сторону.

    13. Прошу добавить действие эмулирования нажатия кнопки RESPAWN.

    14. Прошу добавить в действие проигрывания звуков возможность воспроизводить мелодии с пластинок.

    15. Прошу добавить автоподстановку аргументов в команду, если таковые заданы маской.

    16. Прошу добавить флаг проверки количества занятых ячеек в инвентаре или возможность заносить это количество в переменную.
     
    Последнее редактирование: 23 июл 2015

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