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

Добрый день.
Есть ли возможность организовать ограничение инвентаря, но при этом возможность его расширить?
Что я имею ввиду:
Допустим половина инвентаря заполнена паутиной которую нельзя убрать или заменить на другой предмет. Но если я в свободный слот положу, например, алмаз с названием "Расширение инвентаря", то от паутинки освободится, например, 3 слота. Если положу в инвентарь еще один алмаз "Расширение инвентаря", то освободится еще 3 слота. Если же положу алмаз "Расширение инвентаря 2", то освободится 6 слотов.
Так же инвентарь должен быть ограничен только в одном мире, в других все должно быть как обычно.
Разделением инвентаря занимается плагин - ApatiteControler (можно ли сделать с помощью ReActions? :rolleyes: )
Создание нескольких миров - MultiWorld

Сейчас такое с помощью ReActions не сделать. Но и на мой взгляд - это задача для отдельного плагина, а не ReActions.
Нет:
Код:
    - MESSAGE=&r
    - MESSAGE=&c          [&e▼&c]&3-----------------------------------&c[&e▼&c]
    - MESSAGE=Этот активатор реагирует на текст. Разный текст. В разных вариациях. Например, если Вы видите сообщение "Привет, это я", то Вам можно дать слиток золота.
    - MESSAGE=&r
    - MESSAGE=Рассмотрим сам активатор и его аргументы. Создание:
    - MESSAGE=

Вот так работает:
- 'MESSAGE=Рассмотрим сам активатор и его аргументы. Создание:'
Тут я ничего не сделаю, это YAML формат вредничает.
 
Вот так работает:
- 'MESSAGE=Рассмотрим сам активатор и его аргументы. Создание:'
Тут я ничего не сделаю, это YAML формат вредничает.
Okay, но я просто ставлю цветовой символ после двоеточия...
 
Новые плейсхолдеры в активаторе MESSAGE не распознают числа корректно (или я не понимаю что такое "целые" и "дробные" числа?):
Код:
  Activator-MESSAGE-10:
    mask: За $50 купил 9 слив по $5.4. Осталось $1,4, то есть ещё $1 40 центов.
    type: EQUAL
    source: CHAT_INPUT
    flags:
    - DELAY_PLAYER=Activator-MESSAGE-10
    actions:
    - MESSAGE=&r
    - MESSAGE=&c          [&e▼&c]&3-----------------------------------&c[&e▼&c]
    - DELAY_PLAYER=150ms/Activator-MESSAGE-10
    - MESSAGE=Рассмотрим составляющие фразы "&eЗа $50 купил 9 слив по $5.4. Осталось $1,4, то есть ещё $1 40 центов.&r":&r
    - MESSAGE=&r
    - MESSAGE=Пятое слово:&r "&a%word5%&r";
    - MESSAGE=Третье целое число:&r "&a%int3%&r";
    - MESSAGE=Третье число:&r "&a%num3%&r";
    - MESSAGE=Количество слов:&r &a%word-count%&r;
    - MESSAGE=Количество целых чисел:&r &a%int-count%&r;
    - MESSAGE=Количество чисел:&r &a%num-count%&r.
    reactions: []

Сейчас поиск числе осуществляется именно как отдельные не объединенные с какими-либо символами.
Т.е. во фразе:
"За $50 купил 9 слив по $5.4. Осталось $1,4, то есть ещё $1 40 центов."

Два целых (и вообще) числа: 9 и 40.
$50, $5.4, $1,4 $1 - не распознаются как числа.

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

К примеру:
fromgate купил 50кг. моркови за $10.15
Два числа: 50 и 10.15

После этого сообщение:
vasya745 купил 90кг. моркови за $12.46

Уже три числа: 745, 90, 12.46


Т.е активатор, который ждёт вес получит во втором случае 745, а не 90.

Есть ещё вариант - добавить плейсхолдер numword - число из слова.
Т.е. нумерация и количество будет такое же как %word%, а получать будем все цифры, которые есть в слове.
Т.е. для fromgate - это будет пустая строка
для vasya745 - это будет 745 и т.д.

Или что-то ещё придумать.
 
Сейчас поиск числе осуществляется именно как отдельные не объединенные с какими-либо символами.
Т.е. во фразе:
"За $50 купил 9 слив по $5.4. Осталось $1,4, то есть ещё $1 40 центов."

Два целых (и вообще) числа: 9 и 40.
$50, $5.4, $1,4 $1 - не распознаются как числа.

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

К примеру:
fromgate купил 50кг. моркови за $10.15
Два числа: 50 и 10.15

После этого сообщение:
vasya745 купил 90кг. моркови за $12.46

Уже три числа: 745, 90, 12.46


Т.е активатор, который ждёт вес получит во втором случае 745, а не 90.

Есть ещё вариант - добавить плейсхолдер numword - число из слова.
Т.е. нумерация и количество будет такое же как %word%, а получать будем все цифры, которые есть в слове.
Т.е. для fromgate - это будет пустая строка
для vasya745 - это будет 745 и т.д.

Или что-то ещё придумать.
Можно установить в плейсхолдере диапазон допустимых значений. Если выход за его пределы - плейсхолдер пропускает число и считает его словом.
Кстати, как Вы и предложили, можно брать число из слова. Но такого, которое обрамлено специальными символами. Типа такого REGEX: \d+\S+, где вместо \S+ можно было бы указать требуемое сочетание. Например, цветовой код. И тогда...
 
Небольшое предложение автору :
Есть функция забрать из руки , инвентаря ,Но выдать можно только в инвентарь .Было бы хорошо разделить выдачу предметов на 2 действия к примеру:
ITEM_GIVE
I[URL='http://reactions.fromgate.ru/item_give.htm']TEM_GIVE_INVENTORY
[/URL]
 
Ну, раз уж у @fromgate творческий подъем и ReActions развивается не по дням, а по часам в прямом, лучшем смысле этого слова ;) предложу и от себя очередную идейку:
я уже когда то писал подобное, флаги и плейсхолдеры %MOB_VIEV_NAME%, и %MOB_VIEV_TYPE% или как то так, то есть моб/игрок, на которого направлен взгляд, но расстояние больше чем необходимо для клика, привязать можно, например, к активаторам ITEM_CLICK, COMMAND.
А также неплохо бы добавить поддержку плагина Essentials.
 
Последнее редактирование:
Про MOB_VIEW пока промолчу ;)

А также неплохо бы добавить поддержку плагина Essentials.

А что именно должно быть в поддержке Essentials? Действия/флаги? Просто я им не пользую и не знаю в какого монстра он превратился за то время, когда я его пробовал поставить последний раз. ;)

... ReActions развивается не по дням, а по часам в прямом, лучшем смысле этого слова ;) предложу и от себя очередную идейку:

Я тут загорелся плагин сделать. Будет иметь API и к нему можно будет обращаться через ReActions. Суть в работе с предметами - предметы можно создавать, сохранять в базу под каким-то именем. Потом соответственно можно будет извлекать из базы.
По идее, будет возможность модификации (переименования, изменения Lore, энчантов и т.п.) у существующих предметов.
 
@fromgate, а как насчёт плейсхолдера, который бы содержал число регионов, в которых игрок числится владельцем, жителем и... Ну, сумму можно через CALC сделать. Можно было бы организовать "аренду" регионов у кого-то... :D
Предлагаю так же активатор, который бы реагировал на изменение числа регионов, в которых игрок владелец\жилец.
 
А что именно должно быть в поддержке Essentials? Действия/флаги?
ну, так навскидку, чтобы он мог определять режим бога и АФК у игрока, включенный "флай", а также включать/отключать эти режимы, можно также доступ к варпам, точкам домов игроков, хотя пока не придумал для чего )), вообще у Essentials очень много всего, так сразу трудно сообразить что еще может пригодиться, работа с опытом (выдача, снятие, обнуление), в общем неплохо также и чтобы команды Essentials можно было выполнять через отдельное действие напрямую, а не с помощью CMD.
 
ну, так навскидку, чтобы он мог определять режим бога и АФК у игрока, включенный "флай", а также включать/отключать эти режимы, можно также доступ к варпам, точкам домов игроков, хотя пока не придумал для чего )), вообще у Essentials очень много всего, так сразу трудно сообразить что еще может пригодиться, работа с опытом (выдача, снятие, обнуление), в общем неплохо также и чтобы команды Essentials можно было выполнять через отдельное действие напрямую, а не с помощью CMD.

Запуск команда через ReActions почти ни чем не будет отличаться от запуска командой.
Работа с опытом и уровнями - её будет более правильно просто расширить в ReActions, потому что это нормальные характеристики игрока в Minectraft'е.
АФК - можно подтянуть, но при этом реализовать встроенный вариант, а к Essentials (ну и заодно AdminCMD - мне он в свое время понравился больше) цепляться при их наличии.

В общем, я не против озадачится интеграцией с Essentials (да и с любым другим популярным плагином), главное представлять что это даст.
 
Можно ли занести значение количества определенной вещи в переменную?
 
Вроде плейсхолдера отдельного значения описания предмета? Тоже хотелось бы знать, @fromgate?
Есть плейсхолдер %PLAYER_ITEM_HAND% - это просто предмет в руках, и есть (я про него кстати, совсем забыл и нигде не рассказывал, надо добавить в документацию) плейсхолдер %PLAYER_INV:<Слот>% где слот это числа от 0 до 35 либо название слота брони: %PLAYER_INV:helmet% %PLAYER_INV:boots% %PLAYER_INV:chestplate% %PLAYER_INV:leggings%

Думаю функционал с предметами будет добавляться.
 
Есть плейсхолдер %PLAYER_ITEM_HAND% - это просто предмет в руках, и есть (я про него кстати, совсем забыл и нигде не рассказывал, надо добавить в документацию) плейсхолдер %PLAYER_INV:<Слот>% где слот это числа от 0 до 35 либо название слота брони: %PLAYER_INV:helmet% %PLAYER_INV:boots% %PLAYER_INV:chestplate% %PLAYER_INV:leggings%

Думаю функционал с предметами будет добавляться.
А на цитату Вы так и не ответили. Будет отдельный плейсхолдер, который содержит параметр конкретного предмета в слоте\руке?
 
А! Нет, пока нету. Добавлю, потом планирую и функционал по редактированию отдельных параметров предмета и соответственно расширение плейсхсолдеров.
 
@fromgate, а что мне делать с таким слипанием слов?
Код:
  Start-5:
    world: world
    x: -452
    y: 5
    z: -1110
    flags: []
    actions:
    - MESSAGE=&r
    - MESSAGE=&c          [&e▼&c]&3-----------------------------------&c[&e▼&c]
    - MESSAGE=При редактировании активаторов через конфиг следует
    - 'MESSAGE=помнить о причуде формата yml:'
    - MESSAGE=&rпропустите пробел - конфиг сбросится.
    - MESSAGE=&r
    - MESSAGE=Я хочу сказать, что, например, действие &2MESSAGE&r
    - MESSAGE=соджержит позади себя тире через пробел. А за этим
    - MESSAGE=тире есть 4 пробела. Если хоть одного не будет -
    - MESSAGE=то или конфиг обнулится, или он просто не будет работать.
    - MESSAGE=&r
    - MESSAGE=О таких синтаксических ошибках &2ReActions&r &nвсегда&r
    - MESSAGE=уведомляет Вас в консоли. Откройте лог, найдите и
    - MESSAGE=исправьте опечатку. Будет даже указано положение ошибки.
    reactions: []
upload_2015-7-1_18-9-53.png
А как насчёт заменить все активаторы, в которых нужно кликать по блоку, активатором BLOCK_CLICK, в котором совместить всех их?
 
@Lyosha12 это слипывает мерзкий ChatPaginator встроенный в баккит. Пока терпим, потом напишу свой собственный.
 
;) Вот уж не знаю исправлять теперь или нет.
@Lyosha12
В общем после следующего апдейта, это будет просто ".state". Старые настройки не пропадут.
 
Надеюсь там же будет поддержка древовидной структуры каталогов для активаторов :)
Мне кажется, или EXEC можно было запускать для региона, группы и т.д.?
 
Назад
Верх