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

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

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

  1. maxdikiy

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

    Баллы:
    76
    Имя в Minecraft:
    maxdikiy
    Я проверил ваш активатор. Всё замечательно работает. Задержка истекает вовремя.
    Вы случайно системное время не меняли?
     
  2. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Заметил казусы с рандомом и калькулятором.
    Отрицательные числа не воспринимает:
    Код:
    %RANDOM:-100-100%
    Не берётся за разворачивание этого выражения:
    Код:
    %CALC:%RANDOM:-1,1%*%RANDOM:0-100%%
    Эту проблему решил так:
    Код:
        - VAR_PLAYER_SET=id:Test value:%RANDOM:0-100%
        - MESSAGE=%CALC:%RANDOM:-1,1%*%varp:Test%%
        - VAR_PLAYER_CLEAR=id:Test
    
     
  3. maxdikiy

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

    Баллы:
    76
    Имя в Minecraft:
    maxdikiy
    Ваша задача решается довольно простым способом (смещением):
    Код:
    %CALC:%RANDOM:0-200%-100%
    
     
  4. Jeff_Michael

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

    Баллы:
    88
    Skype:
    Jeff_Michael14
    Имя в Minecraft:
    Jeff_Michael
    Если выдать вещь и записать её название во временную переменную, а затем вывести эту переменную в сообщении, то название предмета в сообщении будет только до пробела:
    Код:
        - ITEM_GIVE=set1:{item1:{type:ARROW amount:16 data:0 name:{&bСтарые Стрелы}}} set2:{item1:{type:SHIELD amount:16 data:0 name:{&bПробитый щит}}} set3:{item1:{type:TOTEM amount:16 data:0 name:{&bТотем бессмертия}}}
        - VAR_TEMP_SET=id:Item1 value:%item_str%
        - MESSAGE=Вы получили %Item1%
    Например: вместо "Вы получили Старые стрелы" будет "Вы получили Старые"

    Как это исправить?

    Если в сообщении выводить просто:
    Код:
    - MESSAGE=Вы получили %item_str%
    то всё окей, но мне необходимо именно в переменной.
     
  5. maxdikiy

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

    Баллы:
    76
    Имя в Minecraft:
    maxdikiy
    Не забывайте, в таких случаях переменные необходимо записывать в фигурных скобках:
    Код:
    - VAR_TEMP_SET=id:Item1 value:{%item_str%}
     
  6. Jeff_Michael

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

    Баллы:
    88
    Skype:
    Jeff_Michael14
    Имя в Minecraft:
    Jeff_Michael
    Спасибо. А есть ли возможность заменить знак "*" на букву "х" в сообщении o выданном предмете. Чтобы было не "Старые Стрелы *16" , а "Старые Стрелы х16", или вообще заключить число в скобки "Старые Стрелы (х16)" ?

    И ещё, есть ли возможность в одном действии MESSAGE разделить строки, типа "1 строка\n2 строка\n3 строка ", а то часто бывает, если на сервере чат активный , то между строк просачиваются сообщения игроков или другие сообщения..
    Действие:
    Код:
        - MESSAGE=&aПоздравляем!
        - MESSAGE=&aВы получили - %item_str%
        - MESSAGE=&aСледующий бесплатный кейс будет доступен через **:**
    
    А результат:

    Поздравляем!
    [Игрок] Вася_Пупкин: пайдём убиват нубов!11!1
    Вы получили Старые Стрелы *16
    Следующий бесплатный кейс будет доступен через **:**
     
    Последнее редактирование: 23 май 2017
  7. maxdikiy

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

    Баллы:
    76
    Имя в Minecraft:
    maxdikiy
    Да, есть. Воспользуйтесь действием REGEX
    Код:
    - REGEX=input:{%item_str%} regex:{(.*)(\*)(\d+)}
    - MESSAGE=&aВы получили - %group01%(x%group03%)
    Это будет работать, если %item_str% = текст текст *число
    Воспользуйтесь командой tellraw:
    Код:
        - 'cmd=tellraw %player% {"text":"Поздравляем!\n%player_display%: пайдём убиват нубов!11!1\nВы получили %group01%(x%group03%)\nСледующий бесплатный кейс будет доступен через **:**"}'
    
     
  8. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Да, это действительно проще. А что насчёт второго случая с умножением?
    Довольно давно, кстати, ждал эту возможность. Мои 700 строк сплифа можно было бы ужать до сотни. Однако, чтобы это сделать, необходима проверка относительно не только одного игрока. Переменные же мы можем проверять у других игроков, зная их ник?
    И ещё нюанс: в примерах используются только плейсхолдеры. А как насчёт уже существующих флагов?
     
  9. maxdikiy

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

    Баллы:
    76
    Имя в Minecraft:
    maxdikiy
    Почему-то 2 RANDOMa нельзя использовать в CALC. Могу предложить альтернативу:
    Код:
      %CALC:%RANDOM:-1,1%*round(random()*100)%
      %CALC:(round(random())*2-1)*%RANDOM:0-100%%
      %CALC:(round(random())*2-1)*round(random()*100)%
    
    Каждая строка выполняет одно и тоже действие
    Флаги это теже плейсхолдеры (GROUP=>%GROUP_FLAG% и т.п.). Имейте ввиду, это всё ещё сырое действие. Все возможности я не тестировал.
    Нужно всё протестировать, и при необходимости модифицировать, чтобы удовлетворяло всем критериям.
     
  10. Kixot14

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

    Баллы:
    88
    Skype:
    Kixot14
    Имя в Minecraft:
    F1xer
    Поделишся сплифом ?
    Интересно просто как его устроить через реАкшнс...
     
    Последнее редактирование: 23 май 2017
  11. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    upload_2017-5-23_15-8-56.png
    Щито поделать :D
    Но, во-первых, они же работают только если были написаны в секции flags. И, во-вторых, как проверить флаг на другом игроке с помощью этого действия, зная его ник, но не запуская EXEC для него?
     
  12. maxdikiy

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

    Баллы:
    76
    Имя в Minecraft:
    maxdikiy
    Свои флаги в субактиваторах не работают, но думаю, можно их добавить: (flag1:{} flag2:{}...)
    В любом случае, нужен пример того, что вы хотите, чтобы протестировать.
     
  13. SoSeDiK

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

    Баллы:
    76
    Имя в Minecraft:
    SoSeDiK
    Точно не могу сказать, дело было в хостинге, сейчас всё работает отлично.
     
  14. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Ну, например проверить наличие права у игрока Test1 из активатора, запущенного для Test2
    Как-то вообще ноль реакции:
    Код:
    BLOCK_BREAK:
      Test:
        block: CHEST
        actions:
        - MESSAGE=Test
    
     
  15. maxdikiy

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

    Баллы:
    76
    Имя в Minecraft:
    maxdikiy
    После последнего обновления, теперь необходимо указывать тип блока, как в формате предмета.
    block: type:CHEST
     
  16. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    block:CHEST тоже сработать должно.
     
  17. maxdikiy

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

    Баллы:
    76
    Имя в Minecraft:
    maxdikiy
    Маска по которой выполняется поиск/сравнение следующая: \S+:\{[^\{\}]*\}|\S+:\S+
    При этом type:chest сработает, а просто chest - нет, т.е. упрощённый формат не будет найден.
    Строки 794-795 в файле VirtualItem.java никогда не выполнятся.

    Конечно, я могу и ошибаться.
     
  18. Kixot14

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

    Баллы:
    88
    Skype:
    Kixot14
    Имя в Minecraft:
    F1xer
    Что можна придумать, что бы выводить переменную, которая будет сообщать нам сколько в определенном сообщении есть слов(первая переменная) и какая общая длина этих слов(вторая) ?
    Это реально сделать с помощью REGEX действия ??
     
  19. maxdikiy

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

    Баллы:
    76
    Имя в Minecraft:
    maxdikiy
    В активаторе MESSAGE есть плейсхолдер %word-count%, который показывает сколько слов в сообщении. Общую длину можно проверить/сравнить с чем-то, а не узнать.
    В REGEX можно добавить плейсхолдер, который будет показывать количество вхождений по маске, благодаря этому можно будет узнать сколько символов в сообщении. Также можно будет узнать и количество слов.
     
  20. Jeff_Michael

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

    Баллы:
    88
    Skype:
    Jeff_Michael14
    Имя в Minecraft:
    Jeff_Michael
    Есть предложение, а точнее даже просьба:
    Добавить возможность создавать для каждого пользователя отдельный файл содержащий персональные переменные. А то в одном файле это уж очень неудобно. Ооочень!
     

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