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

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

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

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

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Локация почти всегда указывается как "loc:<ИмяМира>,<X>,<Y>,<Z>"
     
  2. marson24

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

    Баллы:
    88
    Имя в Minecraft:
    marson24
    @fromgate
    Можете показать на примере конфига. если не трудно
     
  3. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
  4. marson24

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

    Баллы:
    88
    Имя в Minecraft:
    marson24
    Спасибо)
    А, еще вопрос: как задать локацию, на которую смотришь?
     
  5. Astrogen

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

    Баллы:
    76
    Имя в Minecraft:
    Astrogen
    Поправочка. Проверил с активатором BUTTON - все работает, кнопку сюжетно обыграл, поэтому из ситуации вывернулся, но если будет время и желание - проверьте: почему-то не работает с активаторами RGENTER и RGLEAVE. Делаю точно такую же строку в файле activator.yml, как и в описании работающих структур (в обычном мире)
     
    Последнее редактирование: 11 май 2015
  6. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Забавно. Подозреваю, что не отрабатывают сами активаторы регионов. Проверю.
     
  7. Astrogen

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

    Баллы:
    76
    Имя в Minecraft:
    Astrogen
    В продолжение темы - активаторы регионов не работают во всем nether'е. PLATE - прекрасно пашут.
     
  8. Korvinius

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

    Баллы:
    88
    А название мира указывал? Или только название региона?
     
  9. Astrogen

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

    Баллы:
    76
    Имя в Minecraft:
    Astrogen
    Только регион. В синтаксисе не нашел, как мир указывать. Было такое подозрение, но просмотрев имеющуюся у меня документацию - забыл. А по уму забывать-то не надо, ибо координаты во всех мирах одинаковые. Так где указывать мир? :)
    PS В начале описания активатора добавил строчку

    world: gameworld_nether (это название моего адского мира, где квест происходит)

    эффекта нет.
     
    Последнее редактирование: 13 май 2015
  10. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    @Astrogen
    С недавних версий, чтобы не было путаницы (поскольку в разных мирах могут быть регионы с одинаковым названием) регион без указания мира - это регион в основном мире.
    В остальных случаях нужно отражать и название мира. К примеру <ИмяМира>.<ИмяРегиона>

    В Вашем случае это будет gameworld_nether.<ИмяРегиона>
     
  11. Astrogen

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

    Баллы:
    76
    Имя в Minecraft:
    Astrogen
    Большое спасибо.
     
  12. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Сейчас занялся переделкой механизма работы с предметами. Собственно основное уже сделано - любой предмет можно будет сохранить в строку (и соответственно в переменную).
    Сравнение предметов будет учитывать и Lore и вообще, пожалуй, всё что есть в ItemMeta.
    Правда возникает несколько вопросов, которые надо продумать.
    Допустим, сейчас при поиске предмета WOOL - искалась шерсть любого цвета. Но вот WOOL:1 - конкретного.
    С новым механизмом - это, пока нельзя. Надо продумать как это обойти...
    Потом, в 1.8.3 есть предметы (и ItemMeta), которых нет в предыдущих версиях, например, знамена. Снова придётся городить какие-то костыли...
     
  13. Astrogen

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

    Баллы:
    76
    Имя в Minecraft:
    Astrogen
    То ли блокирует страницы, то ли файл неполный - живо только оглавление.
    Чертовски замечательно
     
  14. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Скачайте его куда-то на диск и там открывайте. Винда из временной директории его не открывает.
    Я только что скачал его на телефон и cool reader"ом мог потрогать разные страницы.
     
  15. Korvinius

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

    Баллы:
    88
    то есть старые способы сравнения уже не будут работать?
    А если взять два идентичных предмета, но один из которых будет новым, а второй б/ушный, они будут считаться разными предметами?
     
  16. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    На текущий момент - да. Просто сейчас реализовал сравнение на основе родных баккитовских методов, а у них сравнивается data/durability тоже.

    Но мне старый вариант нравится больше, поэтому ещё буду думать...
     
  17. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Можно прикрутить и универсальность, чтобы не надо было указывать все-все-все параметры. Если есть соответствие - то и реагировать. А степень сравнения уже пусть устанавливает пользователь. (Если такая система не принята).

    P.S.
    Будет отдельный файл для хранения "переменного инвентаря"? Если всё будет в строках, то, понятное дело, можно будет использовать и в действиях. Но как насчёт автоматизации процесса сохранения\выдачи вещей?..

    Могу накинуть план употребления в более широкой форме, но и опишите всё, что хотите и не хотите\не можете делать :)
    Вот пришла мысль сделать надстройку "переменного инвентаря" не обязательной. То есть, если данные о переменных живут только в своём конфиге, то предметы будут жить в отдельном файле под номерами-именами, откуда их можно будет выдавать через item_give.

    Заноситься они будут при вводе команды сохранения предмета... Но, по идее, сначала должно быть сохранение, а уже потом использование. Значит, сохраняться они должны в какой-то отдельный конфиг. Всё-таки, он первичнее...
    Но у меня всё равно остаётся вопрос про автоматизацию сохранения\выдачи предметов. Допустим, сохранение предметов происходит в общий файл предметов. Но как быть, если я хочу сохранять предметы у нескольких игроков, а после их им выдавать?

    Для этого нужен и правда формат переменных

    ник:
    - Предмет-1-первоначальный_слот
    - Предмет-2-первоначальный_слот
    ...

    И аналогичным образом "глобальный переменный инвентарь".
    Так же нужно создать 2 типа выдачи предметов: с учётом слота и без учёта. Например, у игрока сохранён предмет в первом слоте, ему нужно его выдать. Но в первом слоте у него уже есть топор. Нужно или заменить его, или поместить предмет в первый свободный слот.
    ---
    Нет. Три типа нужно. Третий: сместить ли предмет, который занимает слот, в другой слот, а выдаваемый поместить на его место?
    Кстати, какой формат описания предмета планируется? Меня бы больше устроила улучшенная копия из Essentials. Не очень приятно возиться с параграфом и полностью слитным написанием имени, описания, id, количества, чар, шанса... Гораздо удобнее это всё разделить на Param:arg через пробелы.
     
  18. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    @Lyosha12
    Да, скорее всего добавлю отдельный метод проверки. Исключительно для ReActions. Чтобы работал по принципу - указал только type - сравнивает только материал. Указал, только имя - сравнивает только имя.

    Насчет отдельного конфига. Честно говоря впихивать в ReActions именно область хранения для предметов (по аналогии с локациями). Для этого я планировал написать плагин (кому-то будет достаточно возможности конфигурировать и получать предметы просто командой) и предусмотреть связь ReActions и этого плагина.

    В ReActions же можно будет просто сохранять в переменную для игрока текстовое представление предмета.

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

    Вот пример активатор (уже работает) выводит строку описывающую предмет:
    Код:
    BUTTON:
      pitem:
        world: world
        x: 1441
        y: 67
        z: -2136
        flags: []
        actions:
        - 'MESSAGE=&6Player hold: %PLAYER_ITEM_HAND%'
        reactions: []
    
    item_placeholder.png

    Ну да, это и было основной целью уйти от этого непонятного даже мне формата (я сам подсматривал в описание как этим пользоваться).

    Будет примерно так:
    type:<Type> data:<Data> amount:<Amount> [color:<Color>] [name:<Name>] [lore:<Lore>] и т.д.
    Вот, уже можно попробовать.
    https://dl.dropboxusercontent.com/u/64799811/ReActions/beta/ReActions.jar

    Правда только на 1.8 (там напрямую затрагивает BannerMeta -- описание параметров знамен)
     
  19. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Реально впечатляет! Жду полного релиза этой функции! :)
    А можно пример того вида, как будет сохранено несколько предметов в переменную? И как их можно будет выдать? Или пока что невозможно такое?
    А будет ли возможность изменять характеристики предмета так же, как и переменные, с помощью действий?
     
  20. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    @Lyosha12
    Вот добавил запись в переменную. Заодно нашёл ошибку.
    Код:
      pitem:
        world: world
        x: 1441
        y: 67
        z: -2136
        flags: []
        actions:
        - 'MESSAGE=&6Player hold: %PLAYER_ITEM_HAND%'
        - item_give=%var:item%
        - var_set=id:item value:{%PLAYER_ITEM_HAND%}
        reactions: []
    
    Но вот ITEM_GIVE пока не работает как надо. Если в описании предмета встречается ";", то проиходит попытка распарсить по старому алгоритму (через точку с запятой разделялся список предметов, которые выбирались случайным образом)
    Изменять характеристики существующих предметов, думаю, получится.
     

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