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

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

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

  1. Astrogen

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

    Баллы:
    76
    Имя в Minecraft:
    Astrogen
    Так точно :)
     
  2. Astrogen

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

    Баллы:
    76
    Имя в Minecraft:
    Astrogen
    Еще вопрос: может быть кто-то сталкивался. Плагин NoCheatPlus отменяет действие SHOOT. Почему - понятно, непонятно, какие параметры менять в конфиге NCP, чтобы прошло действие. Может кто-то сталкивался?
     
  3. Astrogen

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

    Баллы:
    76
    Имя в Minecraft:
    Astrogen
    Вопрос решен. Параметры NCP WrongBlock, Reach и NoSwing выставляются FALSE, все работает.
     
  4. DyX

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

    Баллы:
    76
    Имя в Minecraft:
    GoODsPie
    Привет! Вопрос такой: Можно-ли в меню дать предмету неразрушимость?
     
  5. VRovo213

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

    Баллы:
    76
    А как бы мне проверить длину символов?
    К примеру что бы аргументы были не менее чем 5 символов.
     
  6. SOHIGH

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

    Баллы:
    76
    @VRovo213, больше или равно пяти = действие, меньше пяти = противодействие. Всё просто :lol:

    Поясню: действие Regex сейчас использует каждый символ (буквы и цифры) в слове.
    Сейчас Regex настроен так, что все переменные, доступные этому действию, используются. То есть если количество символов в слове 100, то он займет 100 временных переменных (%group00%-%group990%).
    Теперь к IF_ELSE: мы проверяем, равна ли переменная group40 (пятый символ в слове) %group40%, то есть занята ли чем-то вообще. Если в слове меньше 5 символов, то персональная переменная group40 будет свободна, и если её вывести, то вместо %group40% мы получим %group40% :3
    Возможно, плохо объяснил, но, думаю, кто захочет, - поймет)
    Код:
    COMMAND:
      test:
        regex: false
        override: false
        command: test
        actions:
        - REGEX=input:{%arg1%} regex:{[a-zA-Z]|\d}
        - IF_ELSE=if:{"%group40%"!="%raw:%group40%%"}
                    then:run:actions:{
                        action1:{MSG=&cаргумент <5 символов}
                        }
                    else:run:actions:{
                        action1:{MSG=&aаргумент >=5 символов}
                        }
     
    Последнее редактирование: 16 июн 2018
  7. VRovo213

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

    Баллы:
    76
    Два аргумента на это никак не влияют?
    Код:
        - REGEX=input:{%arg1%} regex:{[a-zA-Z]|\d}
        - IF_ELSE=
            if:{/^[a-zA-Z0-9_.-]+$/.test("%arg1%")}
            then:run:actions:{
                action1:{IF_ELSE=
                    if:{/^[a-zA-Z0-9_.-]+$/.test("%arg2%")}
                    then:run:actions:{
                        action1:{IF_ELSE=
                            if:{'%arg1%'=='%arg2%'}
                            then:run:actions:{
                                action1:{IF_ELSE=
                                    if:{"%group40%"!="%raw:%group40%%"}
                                    then:run:actions:{
                                        action1:{message=&aУспешно}
                                    }
                                    else:run:actions:{
                                        action1:{message=&cОшибка!}
                                        action2:{message=&7Длина пароля должна быть не короче 5 символов!}
                                    }}
                            }
                            else:run:actions:{
                                action1:{message=&cОшибка!}
                                action2:{message=&7Пароли не совпадают}
                            }}
                    }
                    else:run:actions:{
                        action1:{message=&cОшибка!}
                        action2:{message=&7Используйте:&f /passwd [пароль] [повтор пароля]}
                    }}
            }
            else:run:actions:{
                action1:{message=&cОшибка!}
                action2:{message=&7Используйте:&f /passwd [пароль] [повтор пароля]}
            }
    Думает что 1 аргумент короткий
     
  8. SOHIGH

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

    Баллы:
    76
    Ух, я тут вообще ни в какие ворота..
    Не понимаю ничего, но по идее это верно работать должно. Хотя, может быть стоит попробовать использовать это:
    Код:
        - REGEX=input:{%arg1%} regex:{[a-zA-Z]|\d}
        - IF_ELSE=
            if:{/^[a-zA-Z0-9_.-]+$/.test("%arg1%")}
            then:run:actions:{
                action1:{IF_ELSE=
                    if:{/^[a-zA-Z0-9_.-]+$/.test("%arg2%")}
                    then:run:actions:{
                        action1:{IF_ELSE=
                            if:{'%arg1%'=='%arg2%'}
                            then:run:actions:{
                                action1:{IF_ELSE=
                                    if:{"%group40%"=="%raw:%group40%%"}
                                    then:run:actions:{
                                        action1:{message=&aУспешно}
                                    }
                                    else:run:actions:{
                                        action1:{message=&cОшибка!}
                                        action2:{message=&7Длина пароля должна быть не короче 5 символов!}
                                    }}
                            }
                            else:run:actions:{
                                action1:{message=&cОшибка!}
                                action2:{message=&7Пароли не совпадают}
                            }}
                    }
                    else:run:actions:{
                        action1:{message=&cОшибка!}
                        action2:{message=&7Используйте:&f /passwd [пароль] [повтор пароля]}
                    }}
            }
            else:run:actions:{
                action1:{message=&cОшибка!}
                action2:{message=&7Используйте:&f /passwd [пароль] [повтор пароля]}
            }
    (Поменял =! на ==, возможно, сработает)
     
  9. VRovo213

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

    Баллы:
    76
    Все равно не работает.
     
  10. CriticaMobslps

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

    Баллы:
    76
    Имя в Minecraft:
    CriticaMobs
    Когда читаешь сообщения к этой теме кажется как-будто новый язык изобрёл
     
  11. imDaniX

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

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    А зачем извращаться с вложенным действием if_else? Не проще ли пустить второй активатор?
     
  12. DyX

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

    Баллы:
    76
    Имя в Minecraft:
    GoODsPie
    %group40%"!="%raw:%group40%%

    Это так не работает, сегодня уже смотрел, если аргумента нету то он не воспринимается как %group40%, хотя в сообщениях так и записывается, ищи альтернативу

    UPD:
    Как альтернатива, можно делать проверку на наличие какого-то символа вообще

    /^[a-zA-Z0-9_.-]+$/.test("%group40%")
     
    Последнее редактирование: 20 июн 2018
  13. DyX

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

    Баллы:
    76
    Имя в Minecraft:
    GoODsPie
    Есть-ли действие срабатывающее при запуске сервера?
    Или скрипт какой?
     
  14. SOHIGH

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

    Баллы:
    76
     
  15. VRovo213

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

    Баллы:
    76
    Да, работает. Спасибо
     
  16. Dimadamovro

    Dimadamovro Активный участник

    Баллы:
    61
    Имя в Minecraft:
    Robocop223
    Подскажите пожалуйста можно ли сделать чтобы действие выполнялось 1 раз например
    если у игрока есть предмет он получит монеты, и сделать это нужно 1 раз чтобы если у игрока 2 раз будет предмет монеты он не получил
     
  17. SOHIGH

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

    Баллы:
    76
    Персональные переменные)

    Банальный пример на проверку наличия персональной переменной у игрока:
    Если переменная существует с любым значением - награду не дадут, если переменной не существует - выдастся награда и переменная => в следующий раз награды не будет.
    (/exec 1 с блоком травы в инвентаре)
    Код:
    EXEC:
      1:
        flags:
        - VAR_PLAYER_EXIST=id:grass
        actions:
        - MSG=&7Вы уже получали награду.
        reactions:
        - VAR_PLAYER_SET=id:grass value:1
        - EXECUTE=activator:2
      2:
        flags:
        - ITEM_INVENTORY=type:GRASS
        actions:
        - MONEY_GIVE=1000
        - MSG=&7Вы получили награду.
        reactions:
        - MSG=&7В инвентаре нет нужного предмета.
     
    Последнее редактирование: 23 июн 2018
  18. Dimadamovro

    Dimadamovro Активный участник

    Баллы:
    61
    Имя в Minecraft:
    Robocop223
    Спасибо помогло, но не будет ли это как-то нагружать или занимать место если я хочу сделать это предположим 1000 раз?
     
  19. SOHIGH

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

    Баллы:
    76
    Никак совершенно. 300 игроков с никами длиной в 20 символов займут 10КБ памяти.
     
    Последнее редактирование: 23 июн 2018
  20. HauserGrim

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

    Баллы:
    96
    На сколько удобно делать меню на ReActions?
    Если он у меня стоит, стоит ли отказаться от ChestCommands или DeluxeMenus?
    ЗЫ Я ещё не начинал делать меню, и думаю, стоит ли ставить лишние плагины, если есть ReActions.
     

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