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

вылет при получении приватного чата в 5214B,5275 (((

Добавлено: Вс дек 31, 2006 5:21 pm
Sunlive
OpenKore 1.9.3 beta SVN 5214B
OpenKore 1.9.3 beta SVN 5275
OpenKore version 1.9.3
@ai_seq = follow
Loaded plugins:
plugins/doCommand.pl (doCommand)
plugins/macro.pl (macro)
plugins/ropp.pl (ppengine)

Can't locate object method "sendPartyChat" via package "Network" at D:/bots/support/src/Misc.pm line 2324.
at D:/bots/support/src/Interface/Wx.pm line 130
Interface::Wx::mainLoop('Interface::Wx=HASH(0x262fe94)') called at openkore.pl line 365
main::__start() called at start.pl line 127


Died at this line:
} elsif ($type eq "p") {
* $sender->sendPartyChat($msg);
} elsif ($type eq "pm") {

смысл в чем:

бот вылетает при привате.
сначала думал не катит плагин alertsound
оказалось что нет.

пробывал собирать СВН с опен коры та же фигня.
при привате выбивает ошибку.

помогите поправить пожалуйста

-------------

(pJ: изменил заголовок темы на более информативный)

Добавлено: Вс дек 31, 2006 6:35 pm
piroJOKE
Тьфу, блин. (( Печально. Прямо щас я ничего придумать не могу... ((

Добавлено: Вс дек 31, 2006 7:54 pm
kLabMouse
Хех. Нуно будет ВСЦ сообщить о баге!

Добавлено: Пн янв 01, 2007 5:00 am
Click
viewtopic.php?t=682
wx то он наверное русский пользует

Добавлено: Пн янв 01, 2007 12:56 pm
Sunlive
эмс...

было всяко.
я обычно не пишу о проблеме пока сам все не перепробую.

одна и та же ошибка на чистой коре с wx оригинальным и c твоим, и с консолью тоже самое.

+к выше сказаному. эта ошибка еще возникает при патичате

Добавлено: Пн янв 01, 2007 5:39 pm
Vetal
У меня стоит 5275 (сливал 18:53:12, 28 декабря 2006 г.)... нету такой проблемы... приваты нормально работают (на них настроены алерты - правда плагин свой), то есть и сам пишу и мне пишут... wx стандратный из svn (английский)... патичат тоже нормально пашет в обе стороны...

Добавлено: Вт янв 02, 2007 1:58 pm
Click
5275 вырубается с ошибкой, вродь такая же проблема как и у Sunlive, вроде загвоздка как раз в плагине алерт саунд


Vetal не мог бы ты выложить свой плагин алерт саунда? потестить охото

Добавлено: Вт янв 02, 2007 6:58 pm
Click
хреново без алерта, есть идеи?

Добавлено: Вт янв 02, 2007 8:29 pm
kLabMouse
Click
Снеси нах использование decrypt функции.
Или скопируй её прямо в плаг.

Добавлено: Вт янв 02, 2007 10:07 pm
Click
вот такая хрень при старте коре с уже запущенным клиентом в режиме xkore

Ragnarok Online client found
Waiting for the Ragnarok Online client to connect to X-Kore... ready
You can login with the Ragnarok Online client now.
This program has encountered an unexpected problem. This is probably because
of a bug in this program. Please tell us about this problem.

The error message is:
Undefined subroutine &AI::CoreLogic::injectAdminMessage called at
D:/Games/Ragnarok/193SVN5275/src/AI/CoreLogic.pm line 56.


A more detailed error report is saved to errors.txt. Please include the
contents of this file in your report, or we may not be able to help you!
Press ENTER to exit this program.

причём после этого клиент дисконектит

а 56 строка в корелоджике гласит
injectAdminMessage("Please relogin to enable X-${Settings::NAME}.") if ($config{verbose});

Добавлено: Вт янв 02, 2007 10:28 pm
Click
в общем да) везде где встречается encrypt кора велетает с ошибкой

Send.pm

sub injectMessage {
my ($self, $message) = @_;
my $name = stringToBytes("|");
my $msg .= $name . stringToBytes(" : $message") . chr(0);
encrypt(\$msg, $msg);
$msg = pack("C*", 0x09, 0x01) . pack("v*", length($name) + length($message) + 12) . pack("C*",0,0,0,0) . $msg;
encrypt(\$msg, $msg);
$self->{net}->clientSend($msg);
}

sub injectAdminMessage {
my ($self, $message) = @_;
$message = stringToBytes($message);
$message = pack("C*",0x9A, 0x00) . pack("v*", length($message)+5) . $message .chr(0);
encrypt(\$message, $message);
$self->{net}->clientSend($message);
}


alertsound.pl

# Private chat message.
my $msg_size = length($msg);
my $newmsg;
Network::Send::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");
} else {
alertSound("private chat");
}

сама эта функция в Receive.pm. раньше её там не было)
задачка: как бы её убрать или заменить, но чтоб всё работало)

Добавлено: Ср янв 03, 2007 1:37 am
kLabMouse
Click
Избавься от функций *crypt вот и всё!

Добавлено: Ср янв 03, 2007 11:10 am
Vetal
Click, сорри что не сразу ответил, праздники и все такое... вот мой плагин для алертов (делал на скорую руку под себя - ногами не бейте)...

package SoundAlert;

# Sound alert plugin by *******

use Plugins;
use Globals;
use Log qw(message warning error);

Plugins::register('soundalert', 'Sound alert plugin', \&Unload);

my $hooks = Plugins::addHooks(
['packet_pubMsg', \&onPublicMsg, undef],
['packet_privMsg', \&onPrivateMsg, undef],
['packet_selfChat', \&onChatMsg, undef],
['packet_partyMsg', \&onPartyMsg, undef],
['packet_guildMsg', \&onGuildMsg, undef],
['packet_skilluse', \&onSkillUse, undef],
['charNameUpdate', \&onPlayer, undef]);

sub Unload {
Plugins::delHooks($hooks);
}

sub onPublicMsg {
Utils::Win32::playSound('plugins\sounds\speak.wav');

}

sub onPrivateMsg {
Utils::Win32::playSound('plugins\sounds\speak.wav');

}

sub onChatMsg {
# Utils::Win32::playSound('plugins\sounds\speak.wav');

}

sub onPartyMsg {
# Utils::Win32::playSound('plugins\sounds\speak.wav');

}

sub onGuildMsg {
# Utils::Win32::playSound('plugins\sounds\speak.wav');

}

sub onSkillUse {
my (undef, $args) = @_;
my $skill = new Skills(id => $args->{skillID});
my $player = $playersList->getByID($args->{sourceID});
my $monster = $monstersList->getByID($args->{targetID});
if ($args->{sourceID} eq $accountID) {
# warning "I'm cast ".$skill->name."\n";
return;
}
if ($player && !($player->{party}{name} eq $char->{party}{name}) && ($args->{targetID} eq $accountID)) {
# warning "$player cast ".$skill->name." on me\n";
Utils::Win32::playSound('plugins\sounds\skill.wav');
return;
}
if ($args->{targetID} eq $monster) {
# warning "$player cast ".$skill->name." on $monster->name\n";
Utils::Win32::playSound('plugins\sounds\steal.wav');
return;
}
}

sub onPlayer {
my (undef, $args) = @_;
if (!($args->{party}{name} eq $char->{party}{name}) && !($args->{guild}{name} eq $char->{guild}{name})) {
Utils::Win32::playSound('plugins\sounds\alert.wav');
}
}

1;

Добавлено: Ср янв 03, 2007 3:35 pm
Click
kLabMouse писал(а):Click
Избавься от функций *crypt вот и всё!
ну в плагине закоментировал, теперь плагин работатет
Network::Send::decrypt(\$newmsg, substr($msg, 28, length($msg)-2Cool);

а вот с коре лоджик не получается никак всё таже ошибка

Добавлено: Чт янв 11, 2007 10:48 am
Sunlive

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

- Network::Send::decrypt(\$newmsg, substr($msg, 28, length($msg)-28));


+ Network::Receive->decrypt(\$newmsg, substr($msg, 28, length($msg)-28));
:D