Крутой баг в макро-плаге с regexp!!!

Всё, что касается макро-плагина.

Модератор: 4epT

Правила форума
В форуме макросы "Макросы" разрешено только задавать вопросы по уже существующим макросам и просить помощь по недоработанным своим. При этом таким считается тот макрос который готов не менее чем на 2/3.
Если вы хотите попросить участников сообщества написать вам макрос, это можно сделать в разделе "сервис".
Rumata
Грамотный
Сообщения: 235
Зарегистрирован: Ср фев 14, 2007 10:52 am

Крутой баг в макро-плаге с regexp!!!

Сообщение Rumata »

приведу пример, сами все поймете:

(.*)\[dist=(.*)\] (.*) \(.*\)\: (хил|каст|полечи|бафф|аги|блес|agi|bles|\*Hp\*|\*Help\*)(.*)

log $.lastLogMsg
log @arg("$.lastLogMsg", 1)
log @arg("$.lastLogMsg", 2)
log @arg("$.lastLogMsg", 3)

1 вариант (все оки):

[dist=1] Ботик (1): хил

[macro][log] [dist=1] Ботик (0): хил
[macro][log] [dist=1]
[macro][log] Ботик
[macro][log] (0)

2 вариант (огого!!!):

[dist=4.5] Ботик (1): хил

[macro][log] [dist=4.5] Ботик (0): хиллл
[macro][log] [dist=4
[macro][log] 5]
[macro][log] Ботик

ладно, извратимся млиннн

(.*)\[dist=(\d+|[+-]?\d+\.?\d*)\] (.*) \(.*\)\: (хил|каст|полечи|бафф|аги|блес|agi|bles|\*Hp\*|\*Help\*)(.*)

1 вариант:

[dist=1] Ботик (1): хил

[macro][log] [dist=1] Ботик (0): хил
[macro][log] [dist=1]
[macro][log] Ботик
[macro][log] (0)

2 вариант (снова?!!!):

[dist=3.2] Ботик (0): хиллл

[macro][log] [dist=3.2] Ботик (0): хиллл
[macro][log] [dist=3
[macro][log] 2]
[macro][log] Ботик

вобчем точка в консоли неправильно толкуется регэкспом, фррр, как обойти? это баг?
nukem
Энтузиаст
Сообщения: 60
Зарегистрирован: Сб май 31, 2008 4:23 pm

Сообщение nukem »

я пользую $.lastMatch1 и пр. для сыслок на регексп, а для составления строчек пользую друга с програмистским образованием =)

мне кажется у тебя запрос не корректный, но моих знаний для оценки недостаточно. Экспериментируй с мануалом и любым онлайн-регексп-тестером.

А вооо, нашел похожую 100% работающую строчку от своего источника:

Код: Выделить всё

console /(\[dist=[0-9]+\.[0-9]+\] )?NICKNAME \([0-9]+\): \*Grumble\*/
Она реагирует на эмоцию от указанного ника, правда никаких параметров я из строчки не вынимаю, а просто врубаю макро по эмоции
Изображение
Аватара пользователя
Kissa2k
Профессионал
Сообщения: 1304
Зарегистрирован: Пн дек 04, 2006 8:33 pm

Сообщение Kissa2k »

Насколько я знаю, точку нужно экранировать обратным слешем, если нужно чтобы она понималась именно как точка.
Но при группировке скобками слеш ставить не нужно, т.к. там она теряет свое специальное значение.
Аватара пользователя
4epT
macro-маньячина
Сообщения: 2792
Зарегистрирован: Чт дек 21, 2006 1:23 pm
Сервер RO:: 4game
Discord: ya4ept#8494
Контактная информация:

Сообщение 4epT »

перенесите темку в макросы
Быстро и качественно напишу конфиг (макрос)! Стучи!
¤ Свежий бот ¤ Config checker ¤ Manual ¤
Изображение
Изображение
Ответить