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

@fromgate
Можете показать на примере конфига. если не трудно
 
Спасибо)
А, еще вопрос: как задать локацию, на которую смотришь?
 
@Astrogen
Сегодня проверю. Не сталкивался, но честно говоря и не помню, чтобы приходилось спавнить так высоко.
Поправочка. Проверил с активатором BUTTON - все работает, кнопку сюжетно обыграл, поэтому из ситуации вывернулся, но если будет время и желание - проверьте: почему-то не работает с активаторами RGENTER и RGLEAVE. Делаю точно такую же строку в файле activator.yml, как и в описании работающих структур (в обычном мире)
 
Последнее редактирование:
Поправочка. Проверил с активатором BUTTON - все работает, кнопку сюжетно обыграл, поэтому из ситуации вывернулся, но если будет время и желание - проверьте: почему-то не работает с активаторами RGENTER и RGLEAVE. Делаю точно такую же строку в файле activator.yml, как и в описании работающих структур (в обычном мире)

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

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

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

В Вашем случае это будет gameworld_nether.<ИмяРегиона>
 
Сейчас занялся переделкой механизма работы с предметами. Собственно основное уже сделано - любой предмет можно будет сохранить в строку (и соответственно в переменную).
Сравнение предметов будет учитывать и Lore и вообще, пожалуй, всё что есть в ItemMeta.
Правда возникает несколько вопросов, которые надо продумать.
Допустим, сейчас при поиске предмета WOOL - искалась шерсть любого цвета. Но вот WOOL:1 - конкретного.
С новым механизмом - это, пока нельзя. Надо продумать как это обойти...
Потом, в 1.8.3 есть предметы (и ItemMeta), которых нет в предыдущих версиях, например, знамена. Снова придётся городить какие-то костыли...
 
Я решил сделать всё на основе chm файла и у меня уже есть процентов на 90 законченный английский вариант.
Надеюсь когда-то это будет 100% и я смогу приступить к русскому варианту.

https://dl.dropboxusercontent.com/u/64799811/ReActions/ReActions.chm
То ли блокирует страницы, то ли файл неполный - живо только оглавление.
Сейчас занялся переделкой механизма работы с предметами. Собственно основное уже сделано - любой предмет можно будет сохранить в строку (и соответственно в переменную).
Сравнение предметов будет учитывать и Lore и вообще, пожалуй, всё что есть в ItemMeta.
Чертовски замечательно
 
То ли блокирует страницы, то ли файл неполный - живо только оглавление.
Скачайте его куда-то на диск и там открывайте. Винда из временной директории его не открывает.
Я только что скачал его на телефон и cool reader"ом мог потрогать разные страницы.
 
Сравнение предметов будет учитывать и Lore и вообще, пожалуй, всё что есть в ItemMeta.
то есть старые способы сравнения уже не будут работать?
А если взять два идентичных предмета, но один из которых будет новым, а второй б/ушный, они будут считаться разными предметами?
 
На текущий момент - да. Просто сейчас реализовал сравнение на основе родных баккитовских методов, а у них сравнивается data/durability тоже.

Но мне старый вариант нравится больше, поэтому ещё буду думать...
 
На текущий момент - да. Просто сейчас реализовал сравнение на основе родных баккитовских методов, а у них сравнивается data/durability тоже.

Но мне старый вариант нравится больше, поэтому ещё буду думать...
Можно прикрутить и универсальность, чтобы не надо было указывать все-все-все параметры. Если есть соответствие - то и реагировать. А степень сравнения уже пусть устанавливает пользователь. (Если такая система не принята).

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

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

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

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

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

И аналогичным образом "глобальный переменный инвентарь".
Так же нужно создать 2 типа выдачи предметов: с учётом слота и без учёта. Например, у игрока сохранён предмет в первом слоте, ему нужно его выдать. Но в первом слоте у него уже есть топор. Нужно или заменить его, или поместить предмет в первый свободный слот.
---
Нет. Три типа нужно. Третий: сместить ли предмет, который занимает слот, в другой слот, а выдаваемый поместить на его место?
Кстати, какой формат описания предмета планируется? Меня бы больше устроила улучшенная копия из Essentials. Не очень приятно возиться с параграфом и полностью слитным написанием имени, описания, id, количества, чар, шанса... Гораздо удобнее это всё разделить на Param:arg через пробелы.
 
@Lyosha12
Можно прикрутить и универсальность, чтобы не надо было указывать все-все-все параметры. Если есть соответствие - то и реагировать. А степень сравнения уже пусть устанавливает пользователь. (Если такая система не принята).
Да, скорее всего добавлю отдельный метод проверки. Исключительно для ReActions. Чтобы работал по принципу - указал только type - сравнивает только материал. Указал, только имя - сравнивает только имя.

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

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

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

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

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

item_placeholder.png

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

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

Будет примерно так:
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 -- описание параметров знамен)
 
Вот пример активатор (уже работает) выводит строку описывающую предмет:
Реально впечатляет! Жду полного релиза этой функции! :)
А можно пример того вида, как будет сохранено несколько предметов в переменную? И как их можно будет выдать? Или пока что невозможно такое?
А будет ли возможность изменять характеристики предмета так же, как и переменные, с помощью действий?
 
@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 пока не работает как надо. Если в описании предмета встречается ";", то проиходит попытка распарсить по старому алгоритму (через точку с запятой разделялся список предметов, которые выбирались случайным образом)
Изменять характеристики существующих предметов, думаю, получится.
 
Назад
Верх