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

Еще вопрос: может быть кто-то сталкивался. Плагин NoCheatPlus отменяет действие SHOOT. Почему - понятно, непонятно, какие параметры менять в конфиге NCP, чтобы прошло действие. Может кто-то сталкивался?
 
Еще вопрос: может быть кто-то сталкивался. Плагин NoCheatPlus отменяет действие SHOOT. Почему - понятно, непонятно, какие параметры менять в конфиге NCP, чтобы прошло действие. Может кто-то сталкивался?
Вопрос решен. Параметры NCP WrongBlock, Reach и NoSwing выставляются FALSE, все работает.
 
Привет! Вопрос такой: Можно-ли в меню дать предмету неразрушимость?
 
А как бы мне проверить длину символов?
К примеру что бы аргументы были не менее чем 5 символов.
 
@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 символов}
                    }
 
Последнее редактирование:
@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 символов}
                    }
Два аргумента на это никак не влияют?
Код:
    - 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 аргумент короткий
 
Два аргумента на это никак не влияют?
Код:
    - 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 аргумент короткий
Ух, я тут вообще ни в какие ворота..
Не понимаю ничего, но по идее это верно работать должно. Хотя, может быть стоит попробовать использовать это:
Код:
    - 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 [пароль] [повтор пароля]}
        }
(Поменял =! на ==, возможно, сработает)
 
Ух, я тут вообще ни в какие ворота..
Не понимаю ничего, но по идее это верно работать должно. Хотя, может быть стоит попробовать использовать это:
Код:
    - 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 [пароль] [повтор пароля]}
        }
(Поменял =! на ==, возможно, сработает)
Все равно не работает.
 
Когда читаешь сообщения к этой теме кажется как-будто новый язык изобрёл
 
Все равно не работает.
%group40%"!="%raw:%group40%%

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

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

/^[a-zA-Z0-9_.-]+$/.test("%group40%")
 
Последнее редактирование:
Есть-ли действие срабатывающее при запуске сервера?
Или скрипт какой?
 
%group40%"!="%raw:%group40%%

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

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

/^[a-zA-Z0-9_.-]+$/.test("%group40%")
 
%group40%"!="%raw:%group40%%

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

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

/^[a-zA-Z0-9_.-]+$/.test("%group40%")
Да, работает. Спасибо
 
Подскажите пожалуйста можно ли сделать чтобы действие выполнялось 1 раз например
если у игрока есть предмет он получит монеты, и сделать это нужно 1 раз чтобы если у игрока 2 раз будет предмет монеты он не получил
 
Подскажите пожалуйста можно ли сделать чтобы действие выполнялось 1 раз например
если у игрока есть предмет он получит монеты, и сделать это нужно 1 раз чтобы если у игрока 2 раз будет предмет монеты он не получил
Персональные переменные)

Банальный пример на проверку наличия персональной переменной у игрока:
Если переменная существует с любым значением - награду не дадут, если переменной не существует - выдастся награда и переменная => в следующий раз награды не будет.
(/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В инвентаре нет нужного предмета.
 
Последнее редактирование:
Персональные переменные)

Банальный пример на проверку наличия персональной переменной у игрока:
Если переменная существует с любым значением - награду не дадут, если переменной не существует - выдастся награда и переменная => в следующий раз награды не будет.
(/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В инвентаре нет нужного предмета.
Спасибо помогло, но не будет ли это как-то нагружать или занимать место если я хочу сделать это предположим 1000 раз?
 
Спасибо помогло, но не будет ли это как-то нагружать или занимать место если я хочу сделать это предположим 1000 раз?
Никак совершенно. 300 игроков с никами длиной в 20 символов займут 10КБ памяти.
 
Последнее редактирование:
На сколько удобно делать меню на ReActions?
Если он у меня стоит, стоит ли отказаться от ChestCommands или DeluxeMenus?
ЗЫ Я ещё не начинал делать меню, и думаю, стоит ли ставить лишние плагины, если есть ReActions.
 
Назад
Верх