Объясните как это работает - $.lastMatchN в макросе
Модератор: 4epT
Объясните как это работает - $.lastMatchN в макросе
Везде где искал написано так(даже на этом форуме):
• $.lastMatchN – сопоставление последней инормации с ссылкой или сайтом regexp (неуверен что верно перевел и надо разобратся что это такое)
Ну, понятно, что переведено неправильно, ведь regexp это регулярное выражение.
А вопрос такой: Где храниться это regexp, и после какого события устанавливаются $.lastMatch1, $.lastMatch2, ....., $.lastMatchN ?
-----------
(pJ: исправил заголовок. афтар, это позор такие заголовки песать!)
• $.lastMatchN – сопоставление последней инормации с ссылкой или сайтом regexp (неуверен что верно перевел и надо разобратся что это такое)
Ну, понятно, что переведено неправильно, ведь regexp это регулярное выражение.
А вопрос такой: Где храниться это regexp, и после какого события устанавливаются $.lastMatch1, $.lastMatch2, ....., $.lastMatchN ?
-----------
(pJ: исправил заголовок. афтар, это позор такие заголовки песать!)
- piroJOKE
- Модератор
- Сообщения: 8205
- Зарегистрирован: Сб ноя 04, 2006 2:20 am
- Сервер RO:: localhost
- Откуда: Molvania
Исправь заголовок темы согласно вот этих рекомендаций: viewtopic.php?t=75
дока http://www.pcre.ru/docs/perl/text/intro/
...как бы там все ясно по регулярным выражениям.. так или иначе, создается условие при котором сработает автомакро..
Player Mоrphius (0) uses Hiding on himself : Lv 65535
console /Player (.*) \((\d+)\) uses Hiding on himself/i
call {
log $.lastMatch0 # (Player Mоrphius (0) uses Hiding on himself)
log $.lastMatch1 # (Mоrphius)
log $.lastMatch2 # (0)
}
...как бы там все ясно по регулярным выражениям.. так или иначе, создается условие при котором сработает автомакро..
Player Mоrphius (0) uses Hiding on himself : Lv 65535
console /Player (.*) \((\d+)\) uses Hiding on himself/i
call {
log $.lastMatch0 # (Player Mоrphius (0) uses Hiding on himself)
log $.lastMatch1 # (Mоrphius)
log $.lastMatch2 # (0)
}
от РО до шестой палаты - один шаг...
1) Скоприровал к нам на форум памятку по регэкспамSauron писал(а):Пример:
console /Player (.*) \((\d+)\) uses Cloaking on himself/i
viewtopic.php?t=1302
2) Как это разбирает
Player (.*) \((\d+)\) uses Cloaking on himself
Ищет строчку в которой написано:
"Player (любое количество любых символов) (одна или больще цифр в скобках) uses Cloaking on himself"
При этом то что в регэкспе в скобках - запоминается в переменных,
так что тут в скобках - имя игрока и номер - запомниться в $.lastMatch1 и $.lastMatch2
[quote]automacro test {
console /\[dist=(.*)\] (.*) \((\d+)\): \*(Wave|Fist|Peace)\*$/
class high priest
sp > 15%
timeout 3
call foo
}
macro foo {
$d = $.lastMatch1
if ($d > 6) goto stop
$i = $.lastMatch3
$g = @eval (exists $::players{$::playersID[$i]}->{guild} ? $::players{$::playersID[$i]}->{guild}{name} : 'null')
$y1 = G1
$y2 = G2
$y3 = G3
$y4 = G4
$e = $.lastmatch4
if ($g eq $y1) goto ok
if ($g eq $y2) goto ok
if ($g eq $y3) goto ok
if ($g eq $y4) goto ok
:stop
stop
:ok
if ($e = Wave) goto wave
if ($e = Peace) goto peace
if ($e = Fist) goto fist
:wave
do sp 34 $i 10
pause 1
do sp 29 $i 10
stop
:peace
do sp 28 $i 10
pause 1
do sp 28 $i 10
stop
:fist
do sp 361 $i 5
}
[/quote]
console /\[dist=(.*)\] (.*) \((\d+)\): \*(Wave|Fist|Peace)\*$/
class high priest
sp > 15%
timeout 3
call foo
}
macro foo {
$d = $.lastMatch1
if ($d > 6) goto stop
$i = $.lastMatch3
$g = @eval (exists $::players{$::playersID[$i]}->{guild} ? $::players{$::playersID[$i]}->{guild}{name} : 'null')
$y1 = G1
$y2 = G2
$y3 = G3
$y4 = G4
$e = $.lastmatch4
if ($g eq $y1) goto ok
if ($g eq $y2) goto ok
if ($g eq $y3) goto ok
if ($g eq $y4) goto ok
:stop
stop
:ok
if ($e = Wave) goto wave
if ($e = Peace) goto peace
if ($e = Fist) goto fist
:wave
do sp 34 $i 10
pause 1
do sp 29 $i 10
stop
:peace
do sp 28 $i 10
pause 1
do sp 28 $i 10
stop
:fist
do sp 361 $i 5
}
[/quote]
Re: Объясните как это работает - $.lastMatchN в макросе
Т.е. $.lastMatchN можно применять только в условии автомакроса, чтобы запомнить что-либо?
Столкнулся с такой проблемой: запущен макрос, бот разговариавет с нпц, он говорит цифру, мне надо её запомнить, не прерывая этот макрос другим, чтобы запомнить это число. Возможно запомнить его из запущенного автомакроса?
Столкнулся с такой проблемой: запущен макрос, бот разговариавет с нпц, он говорит цифру, мне надо её запомнить, не прерывая этот макрос другим, чтобы запомнить это число. Возможно запомнить его из запущенного автомакроса?