Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Ничего не выйдет, мы вместо имени получим его тип: PLAYERВызывайте активатор EXEC активатор с параметром player:%mobname%

и MOB_CLICK(MOB_DAMAGE, MOB_KILL)
готово: build #75и MOB_CLICK
Вродебы это не тяжело сделать. Флаг назвать REGION_STATE, а проверка будет выполняться следующим образом:Не планируете добавлять возможность проверки флагов WorldGuard?
Вот бы сделать параметры к флагу GROUP, чтобы он показывал в какой группе находится сейчас игрок, для которого был выполнен активаторВродебы это не тяжело сделать. Флаг назвать REGION_STATE, а проверка будет выполняться следующим образом:
[world.]<region.flag>
пример:
REGION_STATE=world.spawn.use
Есть простой способ, как это узнать, используя FLAG_SET:Вот бы сделать параметры к флагу GROUP, чтобы он показывал в какой группе находится сейчас игрок, для которого был выполнен активатор
EXEC:
test_flags:
flags:
- FLAG_SET=GROUP:default GROUP:fly GROUP:vip GROUP:vipp GROUP:god GROUP:mvp GROUP:mvpp GROUP:creative GROUP:admin GROUP:owner
actions:
- CMD_CONSOLE=say &eИгрок &a%player% &eпринадлежит группе &6&l%GROUP_FLAG%
Есть плейсхолдер %PLAYER_DISPLAY%, который показывает ник игрока с его префиксом. Нужно просто извлеч префикс из этой переменной, используя действие REGEX. Как пример:сохранить префикс в переменную
COMMAND:
pref:
override: true
regex: true
command: cmd:prefix arg1:set
actions:
- CANCEL_EVENT=true
- REGEX=input:{%PLAYER_DISPLAY%} regex:{(.*)(%player%)(.*)}
- VAR_PLAYER_SET=id:prefix value:{%group01%}
- 'MESSAGE=&aМой префикс: &r%varp:prefix%'
Что же получается? Принудительно запретить разворачивание плейсхолдера нельзя, а теперь ещё и костыль в виде EXEC'a вызвать будет нельзя? Или это только первый этап внедрения инструмента для экранирования?build #76
При выполнении действия EXEC временные переменные, действующие в рамках вызывающего активатора, запоминаются и передаются в активатор EXEC.
Как вообще понять регулярные выражения. Что нужно выучитьЕсть плейсхолдер %PLAYER_DISPLAY%, который показывает ник игрока с его префиксом. Нужно просто извлеч префикс из этой переменной, используя действие REGEX. Как пример:
Если у вас префикс с пробелами, то в переменную необходимо записывать результат в фигурных скобках:Код:COMMAND: pref: override: true regex: true command: cmd:prefix arg1:set actions: - CANCEL_EVENT=true - REGEX=input:{%PLAYER_DISPLAY%} regex:{(.*)(%player%)(.*)} - VAR_PLAYER_SET=id:prefix value:{%group01%} - 'MESSAGE=&aМой префикс: &r%varp:prefix%'
- VAR_PLAYER_SET=id: prefix value:{%group01%}

Как вообще понять регулярные выражения. Что нужно выучить
Нет, да как же так? Если в EXEC будет хоть что-то разворачиваться, как и в WAIT, но экранирования плейсхолдеров Вы так и не добавите, то мне придётся присматривать альтернативы ReActions, в том числе придётся присмотреться к Spigot API и самому начать писать плагины... Ваш плагин сейчас для меня - единственный удобно инкапсулирующий внутреннее API игры.@Lyosha12
Ну создание активаторов на лету, я могу рассматривать исключительно как недокументированная функция![]()
EXEC:
RemoveParkourVariables:
actions:
- VAR_PLAYER_CLEAR=id:isInParkour
- VAR_PLAYER_CLEAR=id:Cur_CheckPoint
- VAR_PLAYER_CLEAR=id:Lives
- VAR_PLAYER_CLEAR=id:Parkour-FullWay
ToCheckPoint:
flags:
- VAR_PLAYER_GREATER=id:Lives value:1
actions:
- VAR_PLAYER_DEC=id:Lives
- 'MESSAGE=%var:prefix% &c-1 жизнь. Осталось жизней: &3%varp:Lives%&c.'
- TP=loc:%varp:Cur_CheckPoint%
reactions:
- EXECUTE=activator:RemoveParkourVariables player:%player%
- MESSAGE=%var:prefix% &cВсе жизни потрачены, увы.
- TP=loc:Parkour_Start
REGION_ENTER:
Illegal_Enter:
region: General.parkour
flags:
- '!VAR_PLAYER_EXIST=id:isInParkour'
actions:
- MESSAGE=%var:prefix% &cНа паркур нужно заходить только через &6/warp parkour&c!
- CMD_CONSOLE=spawn %player%
Parkour-jump1:
region: General.Parkour-Jump1
actions:
- VELOCITY=vector:0,0.8,0.5
Parkour-Jump2:
region: General.parkour-jump2
actions:
- VELOCITY=vector:0.4,1,0
Parkour-Loser:
region: General.parkour-lose
actions:
- EXECUTE=activator:ToCheckPoint player:%player%
REGION_LEAVE:
Legal_leave-RGLeave:
region: General.parkour
actions:
- EXECUTE=activator:RemoveParkourVariables player:%player%
- MESSAGE=%var:prefix% &2Вы покинули паркур.
QUIT:
Legal_leave-Quit:
actions:
- EXECUTE=activator:RemoveParkourVariables player:%player%
REGION:
Anti-Fly:
region: General.parkour
flags:
- STATE=FLY
- VAR_PLAYER_GREATER=id:Lives value:1
- '!GROUP=Authors'
actions:
- EXECUTE=activator:ToCheckPoint player:%player%
- 'MESSAGE=%var:prefix% &cНе-не-не! Никаких полётов, шулер!'
- CMD_CONSOLE=fly %player% off
Anti-Effects:
region: General.parkour
flags:
- VAR_PLAYER_GREATER=id:Lives value:1
actions:
- POTION_REMOVE=all
Anti-Glide:
region: General.parkour
flags:
- STATE=GLIDE
- VAR_PLAYER_GREATER=id:Lives value:1
actions:
- GLIDE=glide:false
- EXECUTE=activator:ToCheckPoint player:%player%
- 'MESSAGE=%var:prefix% &cПоимей же совесть! Чтобы так мухлевать, я не даже знаю кем нужно быть...'
BUTTON:
Parkour-End:
world: General
x: -192
y: 101
z: 148
actions:
- CMD_CONSOLE=eco give %player% 3000
- CMD_CONSOLE=warp parkour %player%
- BROADCAST=%var:prefix% &3%player% &2прошё паркур! - &a/warp parkour
- VAR_SET=id:Parkour-TOP-8 value:%var:Parkour-TOP-7%
- VAR_SET=id:Parkour-TOP-7 value:%var:Parkour-TOP-6%
- VAR_SET=id:Parkour-TOP-6 value:%var:Parkour-TOP-5%
- VAR_SET=id:Parkour-TOP-5 value:%var:Parkour-TOP-7%
- VAR_SET=id:Parkour-TOP-4 value:%var:Parkour-TOP-3%
- VAR_SET=id:Parkour-TOP-3 value:%var:Parkour-TOP-2%
- VAR_SET=id:Parkour-TOP-2 value:%var:Parkour-TOP-1%
- VAR_SET=id:Parkour-TOP-1 value:%player%
- SIGN_SET_LINE=loc:General,-197,88,137 line1:{%var:Parkour-TOP-1%} line2:{%var:Parkour-TOP-2%} line3:{%var:Parkour-TOP-3%} line4:{%var:Parkour-TOP-4%}
- SIGN_SET_LINE=loc:General,-193,88,137 line1:{%var:Parkour-TOP-5%} line2:{%var:Parkour-TOP-6%} line3:{%var:Parkour-TOP-7%} line4:{%var:Parkour-TOP-8%}
COMMAND:
Warp-Parkour:
regex: false
override: false
command: warp parkour
actions:
- VAR_PLAYER_SET=id:isInParkour value:true
SetCheckPoint:
regex: false
override: true
command: addCheckPoint
flags:
- GROUP=Authors
actions:
- REGEX=input:{%PLAYER_LOC_VIEW%} regex:{(\d+.\d+)|(-\d+.\d+)}
- VAR_SET=id:X value:%calc:%group00%-0.5%
- VAR_SET=id:Y value:%calc:%group10%-0.5%
- VAR_SET=id:Z value:%calc:%group20%-0.5%
- MESSAGE=%var:prefix% &2Чек-поинт по координатам (&3%var:X%&2, &3%var:Y%&2, &3%var:Z%&2) успешно создан.
- 'CMD=ra add PLATE CheckPoint_%var:X%_%var:Y%_%var:Z%'
- 'CMD_CONSOLE=ra add CheckPoint_%var:X%_%var:Y%_%var:Z% a MESSAGE %var:prefix% &2Чек-поинт! У Вас &b7&2 жизней!'
- 'CMD_CONSOLE=ra add CheckPoint_%var:X%_%var:Y%_%var:Z% a VAR_PLAYER_SET id:Lives value:7'
- 'CMD_CONSOLE=ra add CheckPoint_%var:X%_%var:Y%_%var:Z% a VAR_PLAYER_SET id:Cur_CheckPoint value:General,%var:X%,%var:Y%,%var:Z%'
- 'CMD_CONSOLE=ra add CheckPoint_%var:X%_%var:Y%_%var:Z% a SOUND type:ENTITY_PLAYER_LEVELUP pitch:1 volume:2'
- 'CMD_CONSOLE=ra add CheckPoint_%var:X%_%var:Y%_%var:Z% f !VAR_PLAYER_COMPARE id:Cur_CheckPoint value:General,%var:X%,%var:Y%,%var:Z%'
- CMD_CONSOLE=ra group CheckPoint_%var:X%_%var:Y%_%var:Z% Core_Parkour_CheckPoints
- VAR_CLEAR=id:X
- VAR_CLEAR=id:Y
- VAR_CLEAR=id:Z
reactions:
- MESSAGE=%var:prefix% &cНе-а, тебе нельзя использовать эту команду.
MESSAGE:
Remove_NoPerm:
source: CHAT_OUTPUT
type: REGEX
flags:
- REGION=General.parkour
- '!GROUP=Authors'
mask: .*Ошибка.*
actions:
- CANCEL_EVENT=true
Remove_LogRemoveEffects:
source: LOG_OUTPUT
type: REGEX
mask: .*Couldn't take any effects from \S+ as they do not have any.*
actions:
- CANCEL_EVENT=true
Данный код работает частично. Если заменить на %group02% то мой ник выводится.Есть плейсхолдер %PLAYER_DISPLAY%, который показывает ник игрока с его префиксом. Нужно просто извлеч префикс из этой переменной, используя действие REGEX. Как пример:
Если у вас префикс с пробелами, то в переменную необходимо записывать результат в фигурных скобках:Код:COMMAND: pref: override: true regex: true command: cmd:prefix arg1:set actions: - CANCEL_EVENT=true - REGEX=input:{%PLAYER_DISPLAY%} regex:{(.*)(%player%)(.*)} - VAR_PLAYER_SET=id:prefix value:{%group01%} - 'MESSAGE=&aМой префикс: &r%varp:prefix%'
- VAR_PLAYER_SET=id: prefix value:{%group01%}
Dmitriy1:
prefix: §4
general:
loto_amount: '1.0'
loto_start: '0'

options:
prefix: '&7[&3Хускарл&7] &e'
default: false
message-format: '&7(&9L&7)&r %prefix %player %suffix &6> &f%message'
- 'MSG=Проверка: %PLAYER_DISPLAY%'
# Выводится мой ник
Наоборот. Я считаю, что это довольно круто. Но такие вещи менее предсказуемы. И наверняка имеют право на существование. В любом случае, ReActions оказался гораздо гибче, чем мне это казалось изначально. И динамического создания активаторов я точно себе не представлял изначальноИли Вы считаете, что такие решения не очень красивы и эффективны, что действительно следует искать альтернативы для создания подобного поведения?

Рад слышать@Lyosha12
В принципе с плейсхолдером %raw:...% можно будет что-то придумать.
Наоборот. Я считаю, что это довольно круто. Но такие вещи менее предсказуемы. И наверняка имеют право на существование. В любом случае, ReActions оказался гораздо гибче, чем мне это казалось изначально. И динамического создания активаторов я точно себе не представлял изначально![]()

Данный код работает частично. Если заменить на %group02% то мой ник выводится.
А вот %group01% не работает
Мне тоже немного не понятен смысл. Одно я понял точно: первое число - это номер вхождения заданного REGEX в тексте. Допустим, есть regex:{\d+\s} и input:{12 13 14}, тогда %group00% == "12 ", %group10% == "13 ", %group30% == ???. А что тогда 01? %group01% == 12" " == \s?Данный код работает частично. Если заменить на %group02% то мой ник выводится.
А вот %group01% не работает