alertSound - звуковая сигнализация событий
Модератор: 4epT
-
- Модератор
- Сообщения: 8204
- Зарегистрирован: Сб ноя 04, 2006 2:20 am
- Сервер RO:: localhost
- Откуда: Molvania
Странно. Странно. У меня дежавю, мне кажется, что я ЭТО уже где-то видел. Или сам когда-то делал. Хз.
Добавлено спустя 1 минуту:
vit, это можно даже закоммитить. Но (2All!) погоняйте сначала эту модификацию плагина!!!
Добавлено спустя 12 минут 58 секунд:
Ага, друг бобёр, я смотрю там тебе у 4орта пишут, что он всё равно срабатывают, когда не должен. И знаешь что? А ведь это нормально. Это то самое "unknown player", когда чар только-только появляется на экране.
Теоретически может помочь увеличение времени кеширования имен игровов, но устранит лишь часть ложных срабатываний.
Единственное что еще можно сделать, это в качестве исключений-на-срабатывание разрешить плагину хавать не имена, а IDы аккаунтов.
Добавлено спустя 1 минуту:
vit, это можно даже закоммитить. Но (2All!) погоняйте сначала эту модификацию плагина!!!
Добавлено спустя 12 минут 58 секунд:
Ага, друг бобёр, я смотрю там тебе у 4орта пишут, что он всё равно срабатывают, когда не должен. И знаешь что? А ведь это нормально. Это то самое "unknown player", когда чар только-только появляется на экране.
Теоретически может помочь увеличение времени кеширования имен игровов, но устранит лишь часть ложных срабатываний.
Единственное что еще можно сделать, это в качестве исключений-на-срабатывание разрешить плагину хавать не имена, а IDы аккаунтов.
-
- Бывалый
- Сообщения: 624
- Зарегистрирован: Вс мар 25, 2007 9:18 pm
- Сервер RO:: localhost
- Откуда: Санкт-Петербург
Ну... реализация кривая, через глобальную переменную.... зато малой кровью .piroJOKE писал(а):vit, это можно даже закоммитить. Но (2All!) погоняйте сначала эту модификацию плагина!!!
Эх.... я не ту версию плагина залил , вот и не работало, сейчас все должно пахать. А про то, что когда плеер только появляется... дак плагин у нас на чат, а чтоб плеер сразу появился, и что-нибудь написал, это маловероятно.piroJOKE писал(а):Ага, друг бобёр, я смотрю там тебе у 4орта пишут, что он всё равно срабатывают, когда не должен. И знаешь что? А ведь это нормально. Это то самое "unknown player", когда чар только-только появляется на экране.
В сообщении общего чата в пакете содержится ID, а в пакете приватного чата сразу содержится имя(или это не так?). Так что я не знаю, как сделать еще,чтоб и по ID можно было. А если в одном случае по имени, а в другом по ИД делать, то путаница будет.piroJOKE писал(а):Единственное что еще можно сделать, это в качестве исключений-на-срабатывание разрешить плагину хавать не имена, а IDы аккаунтов.
P.S: Обнаружился глюк с эмоциями - кора привязывает до перезагрузки к одному ID аккаунта одно имя, и если потом перезайти другим персом с этого же аккаунта, то всё-равно будет отображаться первое имя(это так в коре, попробуйте - попускайте эмоции, заходя разными персами с одного аккаунта, будет писаться, что это один и тот же перс). Поэтому поддержку эмоций пришлось убрать, ибо работает не надежно...
-
- Грамотный
- Сообщения: 227
- Зарегистрирован: Пт мар 23, 2007 10:01 pm
народ, а как сделать чтоб на вот этот макрос
automacro I_won {
console /'кукарику!' won/
call {
$gametime = 10
$relogtime = 1800
pause $gametime
do relog $relogtime
:end
}
}
был какой-нить алерт?
Все, нашел:
automacro I_won_ring! {
console /'кукарику!' won/
call {
do eval Utils::Win32::playSound('alarm.wav');
}
}
automacro I_won {
console /'кукарику!' won/
call {
$gametime = 10
$relogtime = 1800
pause $gametime
do relog $relogtime
:end
}
}
был какой-нить алерт?
Все, нашел:
automacro I_won_ring! {
console /'кукарику!' won/
call {
do eval Utils::Win32::playSound('alarm.wav');
}
}
-
- Грамотный
- Сообщения: 330
- Зарегистрирован: Чт июл 26, 2007 11:12 am
- Откуда: Crimean Sea
-
- Начинающий
- Сообщения: 15
- Зарегистрирован: Ср дек 17, 2008 7:21 pm
- Сервер RO:: feelro
Re: alertSound - звуковая сигнализация событий
дабы не создавать отдельную тему напишу тут.
не работают алерты ни в какую. кора версии 2.0.7 (играю на филро, т.е. покупал бота у Джери)
перепробовал все варианты указания звукового файла (файл естественно присутствует):
- если в корне:
alertSound - {
eventList private chat
notInTown 0
inLockOnly 0
play beep.wav
}
- если в папке:
alertSound - {
eventList private chat
notInTown 0
inLockOnly 0
play sounds\beep.wav
}
- если задать прямой путь:
alertSound - {
eventList private chat
notInTown 0
inLockOnly 0
play D:\RObot\sounds\blip2.wav
}
в консоли видно, что алерт как бы работает, но звук не идет ни в какую.
p.s.: примерно полгода назад ботил на версии 2.0.6, там все работало
не работают алерты ни в какую. кора версии 2.0.7 (играю на филро, т.е. покупал бота у Джери)
перепробовал все варианты указания звукового файла (файл естественно присутствует):
- если в корне:
alertSound - {
eventList private chat
notInTown 0
inLockOnly 0
play beep.wav
}
- если в папке:
alertSound - {
eventList private chat
notInTown 0
inLockOnly 0
play sounds\beep.wav
}
- если задать прямой путь:
alertSound - {
eventList private chat
notInTown 0
inLockOnly 0
play D:\RObot\sounds\blip2.wav
}
в консоли видно, что алерт как бы работает, но звук не идет ни в какую.
p.s.: примерно полгода назад ботил на версии 2.0.6, там все работало
-
- Грамотный
- Сообщения: 330
- Зарегистрирован: Чт июл 26, 2007 11:12 am
- Откуда: Crimean Sea
Re: alertSound - звуковая сигнализация событий
Напиши джерри.
Попробуй использовать макро.
Ex.
Попробуй использовать макро.
Ex.
Код: Выделить всё
automacro pm {
pm /.*/
call {
do eval Utils::Win32::playSound('sounds\alarm.wav')
}
}
[url=irc://irc.openkore.com:6667/openkore-ru]Its your destiny,join us! © Wanted[/url]
-
- Начинающий
- Сообщения: 15
- Зарегистрирован: Ср дек 17, 2008 7:21 pm
- Сервер RO:: feelro
Re: alertSound - звуковая сигнализация событий
за макрос спасибо, но все равно таже шляпа:
(From: xxx) : !
[macro] automacro pm triggered.
и все - звук не идет как и в случае с плагином
p.s. ессно колонки включены (мало ли кто решит пошутить ), может все дело в версии коры? видел на рейджзоне вроде бы топик, человек тоже жаловался (теже симптомы), но решение там найдено не было
(From: xxx) : !
[macro] automacro pm triggered.
и все - звук не идет как и в случае с плагином
p.s. ессно колонки включены (мало ли кто решит пошутить ), может все дело в версии коры? видел на рейджзоне вроде бы топик, человек тоже жаловался (теже симптомы), но решение там найдено не было
-
- Бывалый
- Сообщения: 624
- Зарегистрирован: Вс мар 25, 2007 9:18 pm
- Сервер RO:: localhost
- Откуда: Санкт-Петербург
Re: alertSound - звуковая сигнализация событий
neydpower
Попробуй прописать абсолютный путь к файлу со звуком. Что-то вроде c:\bot\sounds\alarm.wav
Попробуй прописать абсолютный путь к файлу со звуком. Что-то вроде c:\bot\sounds\alarm.wav
-
- Грамотный
- Сообщения: 330
- Зарегистрирован: Чт июл 26, 2007 11:12 am
- Откуда: Crimean Sea
Re: alertSound - звуковая сигнализация событий
Нет ну вообще есть какая-то версия,в которой нет звуков,сталкивался,и на форуме поднималась тема.
[url=irc://irc.openkore.com:6667/openkore-ru]Its your destiny,join us! © Wanted[/url]
-
- Начинающий
- Сообщения: 15
- Зарегистрирован: Ср дек 17, 2008 7:21 pm
- Сервер RO:: feelro
Re: alertSound - звуковая сигнализация событий
2vit: писал еще выше - все варианты испробовал, включая этот (кстати забыл еще дописать про SystemDefault, его тоже пробовал - реакции ноль, звука нет)
просто беда какая-то -/, сегодня чуть не спалили - какой-то снип в приват зафлудил, тригер на алерт сработал кучу раз - звук не идет, хорошо хоть рядом был и ответил
p.s. глянул форум - нашел вот темку , правда до конца так и не ясно, автору помогло что-нибудь или нет
просто беда какая-то -/, сегодня чуть не спалили - какой-то снип в приват зафлудил, тригер на алерт сработал кучу раз - звук не идет, хорошо хоть рядом был и ответил
p.s. глянул форум - нашел вот темку , правда до конца так и не ясно, автору помогло что-нибудь или нет
-
- macro-маньячина
- Сообщения: 2795
- Зарегистрирован: Чт дек 21, 2006 1:23 pm
- Сервер RO:: 4game
- Discord: ya4ept#8494
Re: alertSound - звуковая сигнализация событий
как вариант попробуй поменять наклон слэша, сборка тут не играет роли (если только она не совсем древняя), если у 1000 народа всё работает, а у парочки нет
-
- Начинающий
- Сообщения: 15
- Зарегистрирован: Ср дек 17, 2008 7:21 pm
- Сервер RO:: feelro
Re: alertSound - звуковая сигнализация событий
попробовал - шляпа таже)
в том и дело - у меня тоже работало на протяжении года. трабла была именно когда перешел на платную кору (ну не знаю как правильно назвать - там где универсал обход антиботов) от Джерри. причем один из знакомых тоже сидит на платной коре - таже проблема, нету звуков (настройки правильные). вообщем хз, где копать.
p.s. всех с прошедшим кстате
в том и дело - у меня тоже работало на протяжении года. трабла была именно когда перешел на платную кору (ну не знаю как правильно назвать - там где универсал обход антиботов) от Джерри. причем один из знакомых тоже сидит на платной коре - таже проблема, нету звуков (настройки правильные). вообщем хз, где копать.
p.s. всех с прошедшим кстате
-
- macro-маньячина
- Сообщения: 2795
- Зарегистрирован: Чт дек 21, 2006 1:23 pm
- Сервер RO:: 4game
- Discord: ya4ept#8494
Re: alertSound - звуковая сигнализация событий
я вот думаю может синтаксис нужно привести к виду:
alertSound public gm chat {
play sounds\alarm.wav
notInTown 0
inLockOnly 0
}
может сюда ввести селфкондишены?
alertSound public gm chat {
play sounds\alarm.wav
notInTown 0
inLockOnly 0
}
может сюда ввести селфкондишены?
-
- Новичок
- Сообщения: 5
- Зарегистрирован: Ср апр 08, 2009 11:35 am
Re: alertSound - звуковая сигнализация событий
Долго искал по сайту, нужного так и не нашел, подскажите плиз.
-Чтото натипа того:
alertSound - {
eventList public chat
notInTown 1
inLockOnly 0
notPlayers _vit, 4epT, piroJOKE
play sounds\phone.wav
}
только обратное, чтобы публик чат не пищал от всех, а пищал только от перечисленых играков.
-Также насчет звук от обнаружения эмоций от определенного игрока.
Есть от ГМа такой скрипт, а вот от игрока не нашел.
-звук, когда определенный игрок рядом.
Одно решение нашел, но запутался в нем, а именно именно ГМ чат, тоесть внести челов в раздел ГМов. Но там как я понял есть общее у них, тобишь [GM], натипа того.
ЗЫ если сможите то напишите как сделать:
тебе помахал чел флажком, пошел сигнал, и чар остановился.
ЗЫЫ Прост у наших ГМ нет никакой приписки, из-за этог я их не могу в раздел гм поместить(просто ник), а сигнал на них нужен.
-Чтото натипа того:
alertSound - {
eventList public chat
notInTown 1
inLockOnly 0
notPlayers _vit, 4epT, piroJOKE
play sounds\phone.wav
}
только обратное, чтобы публик чат не пищал от всех, а пищал только от перечисленых играков.
-Также насчет звук от обнаружения эмоций от определенного игрока.
Есть от ГМа такой скрипт, а вот от игрока не нашел.
-звук, когда определенный игрок рядом.
Одно решение нашел, но запутался в нем, а именно именно ГМ чат, тоесть внести челов в раздел ГМов. Но там как я понял есть общее у них, тобишь [GM], натипа того.
ЗЫ если сможите то напишите как сделать:
тебе помахал чел флажком, пошел сигнал, и чар остановился.
ЗЫЫ Прост у наших ГМ нет никакой приписки, из-за этог я их не могу в раздел гм поместить(просто ник), а сигнал на них нужен.
-
- macro-маньячина
- Сообщения: 2795
- Зарегистрирован: Чт дек 21, 2006 1:23 pm
- Сервер RO:: 4game
- Discord: ya4ept#8494
Re: alertSound - звуковая сигнализация событий
доработал немного плагин, вот что получилось:
+ добавил проверку на SelfCondition, это значит что теперь можно использовать следующие условия:
согласен что некоторые условия никогда использоваться не будут, но зато теперь существует тонкая настройка звука
+ для событий "public GM chat", "public chat", "private GM chat", "private chat" и "emoticon" добавились дополнительные условия условия "Players" и "notPlayers"
допустим игрок [GM]#05 и 4epT наши братаны и никогда нас банить не будут, зачем нам тогда на них пищать??
допустим нам в приват пишут много поклонниц, но наше сердце принадлежит одной, от которой мы не хотим пропустить сообщения:
скачать плагин можно отсюда
в будущем планирую добавить обработки ги-чата и пати-чата
+ добавил проверку на SelfCondition, это значит что теперь можно использовать следующие условия:
Код: Выделить всё
disabled
whenIdle
manualAI
hp
sp
homunculus_hp
homunculus_sp
homunculus_dead
aggressives
partyAggressives
stopWhenHit
whenFollowing
whenStatusActive
whenStatusInactive
onAction
notOnAction
spirit
timeout (не работает!)
inLockOnly
notWhileSitting
notInTown
monsters
defendMonsters
notMonsters
inInventory
inCart
whenGround
whenNotGround
whenPermitSkill
whenNotPermitSkill
whenFlag
whenNotFlag
onlyWhenSafe
inMap
notInMap
whenEquipped
whenNotEquipped
zeny
whenWater (возможно не работает)
+ для событий "public GM chat", "public chat", "private GM chat", "private chat" и "emoticon" добавились дополнительные условия условия "Players" и "notPlayers"
Например:Players - играть звук если игрок показавший эмоцию или сказавший в чат находится в данном списке (имена пишутся через запятую)
notPlayers - играть звук для всех, кроме этого списка
допустим игрок [GM]#05 и 4epT наши братаны и никогда нас банить не будут, зачем нам тогда на них пищать??
Код: Выделить всё
alertSound - {
eventList public GM chat, private GM chat, emoticon
play sounds\peep.wav
notPlayers [GM]#05, 4epT
}
Код: Выделить всё
alertSound - {
eventList private chat, emoticon
play sounds\love.wav
Players AHHA
}
в будущем планирую добавить обработки ги-чата и пати-чата
Код: Выделить всё
# alertsound plugin by joseph
# Fixed to 1.9.x version by h4rry84
# Edib by 4epT (ICQ: 2227733)
# http://bibian.ath.cx/openkore/viewtopic.php?t=2032
# http://forums.openkore.com/viewtopic.php?f=34&t=1490
#
# This software is open source, licensed under the GNU General Public
# License, version 3.
package alertsound;
use strict;
use Plugins;
use Globals;
use Utils;
use Log qw(message);
Plugins::register('alertsound', 'plays sounds on certain events', \&Unload);
my $packetHook = Plugins::addHook('parseMsg/pre', \&CheckPacket);
sub Unload {
Plugins::delHook('parseMsg/pre', $packetHook);
}
sub CheckPacket {
return if (!$config{'alertSound'});
my $hookName = shift;
my $args = shift;
my $switch = $args->{switch};
my $msg = $args->{msg};
if ($switch eq "008D") {
# Public chat message.
my $ID = substr($msg, 4, 4);
my $msg_size = length($msg);
my $chat = substr($msg, 8, $msg_size - 8);
$chat =~ s/\000//g;
my ($chatMsgUser, $chatMsg) = $chat =~ /([\s\S]*?):([\s\S]*)/;
$chatMsg =~ s/^ +//;
$chatMsgUser =~ s/ $//;
if ($chatMsgUser =~ /^([a-z]?ro)?-?(Sub)?-?\[?GM\]?/i) {
alertSound("public GM chat", $chatMsgUser);
} elsif (unpack("V", $ID) == 0) {
alertSound("npc chat");
} else {
alertSound("public chat", $chatMsgUser);
}
} elsif ($switch eq "0097") {
# Private chat message.
my $msg_size = length($msg);
my $newmsg;
Network::Receive->decrypt(\$newmsg, substr($msg, 28, length($msg)-28));
$msg = substr($msg, 0, 28).$newmsg;
my ($privMsgUser) = substr($msg, 4, 24) =~ /([\s\S]*?)\000/;
my $privMsg = substr($msg, 28, $msg_size - 29);
if ($privMsgUser =~ /^([a-z]?ro)?-?(Sub)?-?\[?GM\]?/i) {
alertSound("private GM chat", $privMsgUser);
} else {
alertSound("private chat", $privMsgUser);
}
} elsif ($switch eq "00D7") {
# chat msg
alertSound("chat room");
} elsif ($switch eq "009A") {
# System message/GM message (is this always global?)
alertSound("system message");
} elsif ($switch eq "00C0") {
# Emoticon
my $ID = substr($msg, 2, 4);
if ($players{$ID} && $ID ne $accountID) {
alertSound("emoticon", $playersList->getByID($ID)->name);
}
} elsif ($switch eq "0091") {
# Map change
alertSound("map change");
} elsif ($switch eq "0092") {
# Map change - switching map servers
alertSound("map change");
} elsif ($switch eq "0095") {
# Identify GM Names
my $ID = substr($msg, 2, 4);
if ($players{$ID} && %{$players{$ID}}) {
my ($name) = substr($msg, 6, 24) =~ /([\s\S]*?)\000/;
if ($name =~ /^([a-z]?ro)?-?(Sub)?-?\[?GM\]?/i) {
alertSound("GM near");
}
}
} elsif ($switch eq "0195") {
#Identify GM Names
my $ID = substr($msg, 2, 4);
if ($players{$ID}) {
my ($name) = substr($msg, 6, 24) =~ /([\s\S]*?)\000/;
if ($name =~ /^([a-z]?ro)?-?(Sub)?-?\[?GM\]?/i) {
alertSound("GM near");
}
}
} elsif ($switch eq "0080") {
# someone disappeared here
my $ID = substr($msg, 2, 4);
if ($ID eq $accountID) {
# You are dead.
alertSound("death");
}
} elsif ($switch eq "0078") {
# Existance packet used to tell if monster exists
my $ID = substr($msg, 2, 4);
my $type = unpack("S*",substr($msg, 14, 2));
my $pet = unpack("C*",substr($msg, 16, 1));
if (!$jobs_lut{$type} && $type >= 1000 && !$pet) {
my $display = ($::monsters_lut{$type} ne "")
? $::monsters_lut{$type}
: "Unknown ".$type;
alertSound("monster $display");
}
} elsif ($switch eq "01D8") {
# Existance packet used to tell if monster exists
my $ID = substr($msg, 2, 4);
my $type = unpack("S*",substr($msg, 14, 2));
my $pet = unpack("C*",substr($msg, 16, 1));
if (!$jobs_lut{$type} && $type >= 1000 && !$pet) {
my $display = ($::monsters_lut{$type} ne "")
? $::monsters_lut{$type}
: "Unknown ".$type;
alertSound("monster $display");
}
}
}
##
# alertSound($event)
# $event: unique event name
#
# Plays a sound if alertSound is enabled,
# and if a sound is specified for the event.
#
# The config option "alertSound_#_eventList" should have a comma
# seperated list of all the desired events.
#
# Supported events:
# public GM chat, npc chat, public chat, private GM chat, private chat, chat room
# system message, emoticon, map change, GM near, death, monster <monster name>
sub alertSound {
return if (!$config{'alertSound'});
my $event = shift;
my $MsgUser = shift;
my $i = 0;
for (my $i = 0; exists $config{"alertSound_".$i."_eventList"}; $i++) {
next if (!$config{"alertSound_".$i."_eventList"});
if (Utils::existsInList($config{"alertSound_".$i."_eventList"}, $event)
&& main::checkSelfCondition("alertSound_$i")
&& !Utils::existsInList($config{"alertSound_".$i."_notPlayers"}, $MsgUser)) {
return if ($config{"alertSound_".$i."_Players"} && !Utils::existsInList($config{"alertSound_".$i."_Players"}, $MsgUser));
message "Sound alert: $event\n", "alertSound";
Utils::Win32::playSound($config{"alertSound_".$i."_play"});
}
}
}
return 1;