Бота дисконектит когда хомункул начинает атаковать [error?]

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

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

Правила форума
Все вопросы по OK не касающиеся плагинов и макросов публикуются в этом разделе.
Перед тем как что то писать, пожалуйста, удостоверьтесь что данная тема не поднималась, вы полностью изучили мануалы по конфигурационным файлам бота и не нашли там решения.
excellent
Энтузиаст
Сообщения: 66
Зарегистрирован: Ср янв 03, 2007 4:20 am

Сообщение excellent »

Проблема с атакой(которая на самом деле является проблемой передвижения) решена. Спасибо Lims.

Если кого-нить интересует, могу описать что надо сделать чтобы гом работал.
ZorDen
Энтузиаст
Сообщения: 86
Зарегистрирован: Пт мар 02, 2007 7:28 pm
Контактная информация:

Сообщение ZorDen »

Меня интересует. Опиши пожалуйста.
Delf
Новичок
Сообщения: 8
Зарегистрирован: Пн дек 04, 2006 11:58 am

Сообщение Delf »

Опиши если не трудно
excellent
Энтузиаст
Сообщения: 66
Зарегистрирован: Ср янв 03, 2007 4:20 am

Сообщение excellent »

Можно заметить, что если вы вошли в игру и рядом с гомом стоит моб, то гом нормально его атакует, но если надо прощитать путь к мобу, то сразу идёт краш Коры. Значит проблема совсем и вовсе не в атаке, а в передвижении. Если проанализировать соответствующие пакеты Коры и Клиента выловив их wpe, можно заметить что Кора генерирует пакет на 1 байт длиннее.

Решение проблемы:
1. Лезем \src\Utils.pm
Там находим что-то типа:

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

sub getCoordString {
	my $x = int(shift);
	my $y = int(shift);
	my $nopadding = shift;
	my $coords = "";

	shiftPack(\$coords, 0x44, 8)
		unless (($config{serverType} == 0) || ($config{serverType} == 3) || ($config{serverType} == 5) || $nopadding);
	shiftPack(\$coords, $x, 10);
	shiftPack(\$coords, $y, 10);
	shiftPack(\$coords, 0, 4);
	
	return $coords;
}
Вот тут то сцуко лишний байт и прячется.. А если точнее, то вот он:

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

shiftPack(\$coords, 0x44, 8)
		unless (($config{serverType} == 0) || ($config{serverType} == 3) || ($config{serverType} == 5) || $nopadding);
2. Создаём копию этого участка, но с другим именем и без строчки генерирующей лишний байт:

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

sub getCoordStringGom {
	my $x = int(shift);
	my $y = int(shift);
	my $nopadding = shift;
	my $coords = "";

	shiftPack(\$coords, $x, 10);
	shiftPack(\$coords, $y, 10);
	shiftPack(\$coords, 0, 4);
	
	return $coords;
}
3. В этом же докупенте находим в самом начале:

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

our @EXPORT = (  ................
и дописываем там наше название:

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

.....
qw(dataWaiting dumpHash formatNumber getCoordString getCoordString2 getCoordStringGom
.......
4. Лезем в \src\Network\Send\ServerType0.pm
Там находим:

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

sub sendHomunculusMove {
	my $self = shift;
	my $homunID = shift;
	my $x = int scalar shift;
	my $y = int scalar shift;
	my $msg = pack("C*", 0x32, 0x02) . $homunID . getCoordString($x, $y);
	$self->sendToServer($msg);
	debug "Sent Homunculus move to: $x, $y\n", "sendPacket", 2;
}
И меняем получение координат на наше:

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

sub sendHomunculusMove {
	my $self = shift;
	my $homunID = shift;
	my $x = int scalar shift;
	my $y = int scalar shift;
	my $msg = pack("C*", 0x32, 0x02) . $homunID . getCoordStringGom($x, $y);
	$self->sendToServer($msg);
	debug "Sent Homunculus move to: $x, $y\n", "sendPacket", 2;
}


ПС: Спасибо Lims'у за указания..
maxpower
Новичок
Сообщения: 7
Зарегистрирован: Ср апр 04, 2007 9:05 pm
Откуда: Рун-МидГард
Контактная информация:

Re: Бота дисконектит когда хомункул начинает атаковать [error?]

Сообщение maxpower »

не помогло :( бот всё равно виснет =((

з.ы. Заметил, что лока с агриопами (mjolnir_05) не зависает на ней бот. В ОРк дандже, гефе виснет. =\
Ecли y вac pyки нe oттyдa pacтyт - знaчит, этo нoги!


ИМХО.....
[quote=СвиноМатка]Опаздавшему порасёнку, сиська возле Жопы!!![/quote]
Аватара пользователя
Kukuruzina
Новичок
Сообщения: 3
Зарегистрирован: Вт июн 16, 2009 6:58 pm
Сервер RO:: Rusro

Re: Бота дисконектит когда хомункул начинает атаковать [error?]

Сообщение Kukuruzina »

excellent

чёт не получается, ошибку выдаёт в servertype8. Можешь пожалуйста залить куда-нить свою папку src???
Ответить