Страница 1 из 2

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

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

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

Так?

В общем, хельп.

Добавлено: Пн окт 29, 2007 12:05 pm
piroJOKE
Насколько я понимаю, системное сообщение не является pm'ом.
Реагируй просто на строку в консоли, так проще для новичков. ;)

Добавлено: Пн окт 29, 2007 12:16 pm
Muka
Это понятно. Код с реакцией на ПМ я привёл для примеру. :)

В мануале по макро сказано, что кондишн console не реагирует на всякие приваты, гильды и прочие чаты. А вот тут вопрос. Системный мессаг сюда входит или нет?

Добавлено: Пн окт 29, 2007 12:22 pm
Antarx
Muka
console реагирует на всё, что выводится в консоли, вне зависимости от написаного в мануале ;)

Добавлено: Пн окт 29, 2007 12:36 pm
Muka
Ох уж эти мне мануалы. Дезинформируют людей. Спасибо, попробуем.

Добавлено: Пн окт 29, 2007 12:51 pm
piroJOKE
Antarx
Нет, консоль реагирует не на всё. В частности, реакция на сообщения самой Коры не работает (?). Точно не помню, сталкивался когда-то.

Добавлено: Пн окт 29, 2007 1:17 pm
Antarx
piroJOKE
ээ... в смысле?

Добавлено: Пн окт 29, 2007 1:34 pm
piroJOKE
Antarx
Точно могу сказать только одно: оператор console из automacro сработает не на всё, из того что ты видишь в консоли OK.

Добавлено: Пн окт 29, 2007 2:00 pm
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}
...
}

Добавлено: Пн окт 29, 2007 2:14 pm
piroJOKE
На мой взгляд они говорят о том, что автомакро сработает для всех вещей которые попадают в лог консоли. А если что либо выводится на экран, но не попадает в лог, то на него автомакро и не сработает. Ы?

Добавлено: Пн окт 29, 2007 3:50 pm
Muka
Системные сообщения как раз-таки попадают в лог.

Добавлено: Пн окт 29, 2007 5:06 pm
piroJOKE
Muka
Ты написал макрос, или продолжаешь теоретизировать (как мы с Antarx'ом)?

Добавлено: Пн окт 29, 2007 6:05 pm
Muka
Написал. Сижу битый час, жду системного сообщения, чтоб затестить. :)

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

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

automacro AlertOnSystemMessage { 
console /городах/ # во всех крупных городах бла-бла-бла...
call { 
do eval Utils::Win32::playSound('D:\204SVN5979\sounds\beep.wav');
} 
}

Добавлено: Пн окт 29, 2007 6:07 pm
piroJOKE
ты хоть бы добавил в макро log bla bla bla и включил логирование :cry:

Добавлено: Пн окт 29, 2007 6:13 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');
} 
}
Так?