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

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

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

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

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Ага, только я там как-то не по-русски написал. Исправил ;)
    По поводу параметров (id/eff) я проверю. Должно быть eff (возможно, что id там идёт как дублирующий параметр - я не помню уже). У меня часто идёт такая недокументированная дубликация. К примеру, назвал сначала параметр item, а потом переименовал его в block (это актуально как раз для некоторых эффектов из PlayEffect), и в итоге работают оба (чтобы те у кого он уже назван item не сильно меня ругали).

    Пожалуйста. Мне оно самому очень понравилось. И чего я его раньше не сделал не знаю... ;)

    Обязательно можно. Иначе смысла в поддержке MySQL практически бы не было.
     
  2. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Проверка в активаторе ITEM_WEAR происходит только при любых действиях игрока. Если же он просто стоит на месте, то и проверки нет. Можно сделать на этот случай соответствующий параметр?
     
  3. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Должно работать точно также как REGION, по моему там одна и та же функция используется. Проверю.
     
  4. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    С REGION абсолютно аналогично. Активатор действует, если игрок двигается. Хотя, не всегда. На локалке работает нормально - секунда в секунду, вне зависимости от позиции.
     
  5. Entergro

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

    Баллы:
    78
    @fromgate ,спасибо.А как сделать чтобы при MONEY_GIVE не было сообщения ;)
     
  6. Korvinius

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

    Баллы:
    88
    Начал постепенню миграцию на новую версию плагина, не могу понять в чем ошибка:
    Код:
    ITEM_CLICK:                                                                                                                                                                                   
      click-bow_ironwood:                                                                                                                                                                         
        item: 'name:{&6Лук &2из Железного Дерева} lore:{Индивидуальный артефакт} type:BOW'                                                                                                        
        flags:                                                                                                                                                                                    
        - PERM=artefactum-bow_ironwood                                                                                                                                                                                                                                                                                                                                    
        reactions:                                                                                                                                                                                
        - item_remove_inventory=name:{&6Лук &2из Железного Дерева} lore:{Индивидуальный артефакт} type:BOW                                                                                        
        - message=&2[&5Оружейник&2] &3- &6Лук &2из Железного Дерева &4Конфискован, у вас нет прав на него!  
    Предмет в руке определяется, так как сообщение о конфискации выводится, но сам предмет не конфискуется.
    И еще, у меня не работает новый формат задержек, или я его не правильно пишу:
    Код:
        flags:                                                                                                                                                                                    
        - DELAY_PLAYER=id:delay-bow_ironwoods set-time:604800                                                                                                                                                        
        actions:                                                                                                                                                                                  
    ... 
    с старым форматом, в связке с действием DELAY все нормально
    Код:
        flags:                                                                                                                                                                                    
        - DELAY_PLAYER=delay-bow_ironwoods                                                                                                                                                        
        actions:                                                                                                                                                                                  
        - DELAY_PLAYER=604800/delay-bow_ironwoods 

    А этот активатор вообще не определяет такого предмета в руке:
    Код:
    ITEM_HOLD:                                                                                                                                                                                     
      hold-bow_ironwood:                                                                                                                                                                           
        item: 'name:{&6Лук &2из Железного Дерева} lore:{Индивидуальный артефакт} type:BOW'                                                                                                         
        flags:                                                                                                                                                                                     
        - PERM=artefactum-bow_ironwood                                                                                                                                                             
        reactions:                                                                                                                                                                                 
        - item_remove_inventory=name:{&6Лук &2из Железного Дерева} lore:{Индивидуальный артефакт} type:BOW                                                                                         
        - message=&2[&5Оружейник&2] &3- &6Лук &2из Железного Дерева &4Конфискован, у вас нет прав на него!  

    А, вот сам предмет:
    Код:
        - item_give=name:{&6Лук &2из Железного Дерева} lore:{Индивидуальный артефакт} type:BOW enchantments:ARROW_DAMAGE:8;ARROW_KNOCKBACK:5;DURABILITY:5;ARROW_FIRE:1;ARROW_INFINITE:1
     
    Последнее редактирование: 19 июл 2015
  7. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Может количество нужно указать?
    +
    Похоже, что ITEM_WEAR и ITEM_HOLD работают только при клике на какой-то предмет чем угодно. Или же изменением своего инвентаря. Даже на движение не реагирует :(
     
  8. Sanya007vuch

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

    Баллы:
    68
    ктсать, был неприятный момент: при действии CMD_OP каким-то невероятно-магическим способом опнулся игрок. ОО
    (команда была на рандомный телепорт, привилегии соответствующей у этой группы игроков не было)
     
  9. Korvinius

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

    Баллы:
    88
    у меня 2 раза было подобное, правда я не знаю что было причиной случайно ОПнутого игрока, пришлось свой плагин для защиты ОПки рисовать.
     
  10. Lyosha12

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

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

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

    Баллы:
    66
    Имя в Minecraft:
    MrStefanie
    Как проверить, является ли игрок овнеров региона в котором он сейчас стоит (и если регионов несколько, какой регион будет проверятся)? Если такое вообще возможно)
     
  12. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    По идее, если он владелец хоть в одном регионе, то выдаст true. Но тут спорный вопрос. Может, ещё понадобится параметр такого "игнорирования" или же проверки приоритетов, дочерних регионов...
     
  13. MrStefanie2007

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

    Баллы:
    66
    Имя в Minecraft:
    MrStefanie
    Ты мне немноженько не на тот вопрос ответил. Я спрашивал КАК такое сделать, то бишь как флаг написать?
     
  14. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Флаги:
    REGION_MEMBER

    [<Мир>.]<Регион>

    Есть ли у игрока доступ к региону (member)

    REGION_OWNER

    [<Мир>.]<Регион>

    Является ли игрок владельцем региона
    А что за команда выполнялась? CMD_OP была реализована очень давно и подобных жалоб не было.
    В конфиге, перечислены сообщения для которых отображаются встроенные сообщения:
    Код:
    reactions:
      show-messages-for-actions: tp,grpadd,grprmv,townset,townkick,itemrmv,item_remove_inventory,itemgive,moneypay,moneygive
    

    Вообще не могу воспроизвести. Сейчас протестировал:

    Вот собственно активаторы, которые проверил:
    Код:
    ITEM_HOLD:
      holdtest:
      item: type:IRON_HELMET name:{&6Flying helm}
      actions:
      - 'message=&6Item hold check: %TIME_SERVER:HH:mm:ss.SSS%'
    ITEM_WEAR:
      weartest:
      item: type:IRON_HELMET name:{&6Flying helm}
      flags:
      actions:
      - 'message=&6Item wear check: %TIME_SERVER:HH:mm:ss.SSS%'
    

    Кстати, понял возможные причины глюков.
    ITEM_WEAR и ITEM_HOLD не срабатывали если предмет выдавался при помощи действий ITEM_GIVE и ITEM_WEAR

    Исправлено:
    0.9.7/4
    http://adf.ly/1K0nlW
     
  15. TheMrDanchik

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

    Баллы:
    66
    Имя в Minecraft:
    TheMrDanchik
    Вот смотрю я сейчас на всё это многообразие и думаю: если так дальше пойдёт, то настройка плагина станет ничуть не проще написания собственного отдельного плагина с нужным функционалом. Возможно стоит создать какую-нибудь прикладную софтину для работы с конфигурациями? Как-никак упрощение жизни...
     
  16. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Если не ломать принцип IF-THEN-ELSE, а строго его придерживаться, то всё не так страшно.
    Но вообще я об этом думал. Но пока решил не браться ни за что подобное - у меня в планах ещё целая куча внутренних изменений, после чего я думаю можно будет подумать о разработке какого-то удобного инструмента.
    Действительно. Вылез неприятный баг (я даже не понимаю, как оно у меня во время тестов работало в принципе). Исправил.

    0.9.7/6
    http://adf.ly/1K0nlW

    Чувствую версия 0.9.8 будет состоять только из баг-фиксов. Но и то хлеб :)
    Поставь в действиях, для проверки вывод любого сообщения.

    Я сейчас сделал так:
    Код:
    COMMAND:
      gisw:
        override: true
        regex: false
        command: cmd:gisw
        actions:
        - item_give=name:{&6Лук &2из Железного Дерева} lore:{Индивидуальный артефакт} type:BOW enchantments:ARROW_DAMAGE:8;ARROW_KNOCKBACK:5;DURABILITY:5;ARROW_FIRE:1;ARROW_INFINITE:1
    ITEM_HOLD:
      item: 'name:{&6Лук &2из Железного Дерева} lore:{Индивидуальный артефакт} type:BOW'   
      flags:   
      actions:
      - item_remove_inventory=name:{&6Лук &2из Железного Дерева} lore:{Индивидуальный артефакт} type:BOW
      - message=&2[&5Оружейник&2] &3- &6Лук &2из Железного Дерева &4Конфискован, у вас нет прав на него!
    
    Предмет замечательно изымается из рук.
    Может что-то с пермишенами? В смысле соответствующий пермишен есть у игрока?
    0.9.7/7
    - Добавлен активатор QUIT. Выполняется при выходе игрока с сервера. Каких-то дополнительных параметров у него нет.
    Телепортировать игрока при выходе - получается.
    http://adf.ly/1K0nlW
     
  17. Korvinius

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

    Баллы:
    88
    не, сори за шухер) разобрался, ОПка включена была...
     
  18. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Ооооотлично! А вот и сам баг с ITEM_WEAR, на подверсии 6:


    Активатор:
    Код:
    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: []
    

    Было бы неплохо иметь флаг, который проверяет состояние игрока в плагине AuthMe: залогинен, зарегистрирован.
     
  19. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Похоже понял в чем причина с ITEM_HOLD и ITEM_WEAR.

    20 тиков - это не всегда одна секунда. Есть погрешность, которая периодически вылезет.
    Буду думать как от этого уйти.
     
  20. MrStefanie2007

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

    Баллы:
    66
    Имя в Minecraft:
    MrStefanie
    Блин, походу я неправильно сформулировал. Я знаю про эти флаги и успешно юзаю, мне нужно чтобы регион сам был написал, мб плейсхолдер какой-нибудь. Типо REGION_OWNER=%region% или что-то вроде того, чтобы проверялся регион в котором на данный момент стоит игрок. Просто много что у меня будет реализовано с такой конструкцией, и хотелось бы написать 1 активатор вместо дофигища :с Соль в том, чтобы игрок смог юзать табличку, только если игрок является владельцем региона, в котором он стоит на данный момент.
     

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