Звуковая сигнализация ОПРЕДЕЛЁННОГО СИСТЕМНОГО сообщения

Общие вопросы по OpenKore обсуждаются здесь. Можно сказать, что это - основной раздел форума.
Возник вопрос? Вам сюда.

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

Правила форума
Все вопросы по OK не касающиеся плагинов и макросов публикуются в этом разделе.
Перед тем как что то писать, пожалуйста, удостоверьтесь что данная тема не поднималась, вы полностью изучили мануалы по конфигурационным файлам бота и не нашли там решения.
Muka
Начинающий
Сообщения: 39
Зарегистрирован: Сб ноя 18, 2006 11:45 pm

Звуковая сигнализация ОПРЕДЕЛЁННОГО СИСТЕМНОГО сообщения

Сообщение Muka »

Сейчас на Раггейме печати открывают. Хотелось бы реализовать подачу звука при определённом системном сообщении (печать такая-то открыта). Но фигня в том, что каждый час посредством тех же системных сообщений объявляют о выборах. Хотелось бы их пропускать, а реагировать только на сообщения о печатях. AlertSound реагирует на все сообщения подряд, более тонкой настройки там нет, я так понимаю. Копался в мауале по макро плагину - там можно настроить реакцию на текст привата, гильдии, чата, но только не системных сообщений:

automacro AlertOnPm {
pm /.*/
call {
do eval Utils::Win32::playSound('beep.wav');
}
}

Так?

В общем, хельп.
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

Насколько я понимаю, системное сообщение не является pm'ом.
Реагируй просто на строку в консоли, так проще для новичков. ;)
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Muka
Начинающий
Сообщения: 39
Зарегистрирован: Сб ноя 18, 2006 11:45 pm

Сообщение Muka »

Это понятно. Код с реакцией на ПМ я привёл для примеру. :)

В мануале по макро сказано, что кондишн console не реагирует на всякие приваты, гильды и прочие чаты. А вот тут вопрос. Системный мессаг сюда входит или нет?
Antarx
Бывалый
Сообщения: 640
Зарегистрирован: Вс янв 07, 2007 5:56 am

Сообщение Antarx »

Muka
console реагирует на всё, что выводится в консоли, вне зависимости от написаного в мануале ;)
Превосходство некоторых людей над окружающими одни считают несправедливостью, требующей уравнивания, другие - неполноценностью недовольных.
Выбор взгляда за Вами...
Изображение :)
Muka
Начинающий
Сообщения: 39
Зарегистрирован: Сб ноя 18, 2006 11:45 pm

Сообщение Muka »

Ох уж эти мне мануалы. Дезинформируют людей. Спасибо, попробуем.
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

Antarx
Нет, консоль реагирует не на всё. В частности, реакция на сообщения самой Коры не работает (?). Точно не помню, сталкивался когда-то.
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Antarx
Бывалый
Сообщения: 640
Зарегистрирован: Вс янв 07, 2007 5:56 am

Сообщение Antarx »

piroJOKE
ээ... в смысле?
Превосходство некоторых людей над окружающими одни считают несправедливостью, требующей уравнивания, другие - неполноценностью недовольных.
Выбор взгляда за Вами...
Изображение :)
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

Antarx
Точно могу сказать только одно: оператор console из automacro сработает не на всё, из того что ты видишь в консоли OK.
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Antarx
Бывалый
Сообщения: 640
Зарегистрирован: Вс янв 07, 2007 5:56 am

Сообщение Antarx »

piroJOKE
мб я чего-то недопонимаю, но эти строчки в automacro.pm говорят о другом:

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

# checks for console message
sub checkConsole {
	$cvs->debug("checkConsole(@_)", $logfac{function_call_auto} | $logfac{automacro_checks}) if defined $cvs;
	my ($msg, $arg) = @_;
	$$arg[4] =~ s/[\r\n]*$//;
	if (match($$arg[4],$msg)){
		$$arg[4] =~ s/\n$//g;
		setVar(".lastLogMsg", $$arg[4]);
		return 1
	}
	return 0
}

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

sub automacroCheck {
...
elsif (defined $automacro{$am}->{console}) {
			if ($trigger eq 'log') {
				next CHKAM unless checkConsole($automacro{$am}->{console}, $args)
			} else {next CHKAM}
...
}
Превосходство некоторых людей над окружающими одни считают несправедливостью, требующей уравнивания, другие - неполноценностью недовольных.
Выбор взгляда за Вами...
Изображение :)
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

На мой взгляд они говорят о том, что автомакро сработает для всех вещей которые попадают в лог консоли. А если что либо выводится на экран, но не попадает в лог, то на него автомакро и не сработает. Ы?
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Muka
Начинающий
Сообщения: 39
Зарегистрирован: Сб ноя 18, 2006 11:45 pm

Сообщение Muka »

Системные сообщения как раз-таки попадают в лог.
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

Muka
Ты написал макрос, или продолжаешь теоретизировать (как мы с Antarx'ом)?
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Muka
Начинающий
Сообщения: 39
Зарегистрирован: Сб ноя 18, 2006 11:45 pm

Сообщение Muka »

Написал. Сижу битый час, жду системного сообщения, чтоб затестить. :)

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

# шоб понимал па-русски

automacro AlertOnSystemMessage { 
console /городах/ # во всех крупных городах бла-бла-бла...
call { 
do eval Utils::Win32::playSound('D:\204SVN5979\sounds\beep.wav');
} 
}
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

ты хоть бы добавил в макро log bla bla bla и включил логирование :cry:
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Muka
Начинающий
Сообщения: 39
Зарегистрирован: Сб ноя 18, 2006 11:45 pm

Сообщение Muka »

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

# коммент

automacro AlertOnSystemMessageElection { 
console /городах/
call { 
log О НЕТ! ТОЛЬКО НЕ ЭТИ ВЫБОРЫ СНОВА!
do eval Utils::Win32::playSound('D:\204SVN5979\sounds\beep.wav');
} 
}

automacro AlertOnSystemMessageSeal { 
console /ечат/ # Печать, печать, Печати, печати
call { 
log ШИЛО НА МЫЛО!
do eval Utils::Win32::playSound('D:\204SVN5979\sounds\beep.wav');
} 
}
Так?
Ответить