kRO-шные сервертипы

BugTraq: обнаруженные ошибки и обсуждение их устранения.

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

Аватара пользователя
4epT
macro-маньячина
Сообщения: 2792
Зарегистрирован: Чт дек 21, 2006 1:23 pm
Сервер RO:: 4game
Discord: ya4ept#8494
Контактная информация:

kRO-шные сервертипы

Сообщение 4epT »

поработал тут на одной пиратке в режиме xkore1 и понял, что в нынешнем \src\Network\Send\kRO\Sakexe_0.pm не хватает довольно таки много пакетов.. т.е. получается клиент что-то отправляет, а бот не понимает что клиент отправляет..
то что больше всего мозолило глаза я занёс в SVN7941
но это далеко не все пакеты, там ещё куча целая таких пробелов..

ещё вопрос по поводу "входящих" сервертипов.. рассмотрим файл RagexeRE_2008_08_27a.pm:

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

package Network::Receive::kRO::RagexeRE_2008_08_27a;

use strict;
use base qw(Network::Receive::kRO::Sakexe_2009_04_08a);

use Log qw(message warning error debug);
use Utils qw(getTickCount getHex getCoordString);

# TODO: maybe we should try to not use globals in here at all but instead pass them on?
use Globals qw($char);

sub new {
	my ($class) = @_;
	my $self = $class->SUPER::new(@_);
	my %packets = (
		'007C' => ['actor_display',	'C a4 v14 C2 a3 C4',	[qw(object_type ID walk_speed opt1 opt2 option hair_style weapon lowhead type shield tophead midhead hair_color clothes_color head_dir stance sex coords xSize ySize unknown1 unknown2)]], #spawning (eA does not send this for players) # 44
		# 0x02e2,20
		# 0x02e3,22
		# 0x02e4,11
		# 0x02e5,9
	);
	
	foreach my $switch (keys %packets) {
		$self->{packet_list}{$switch} = $packets{$switch};
	}

	return $self;
}
правильно ли я понимаю, что вот эти строки абсолютно лишние и не несут никакой смысловой нагрузки?

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

use Log qw(message warning error debug);
use Utils qw(getTickCount getHex getCoordString);

# TODO: maybe we should try to not use globals in here at all but instead pass them on?
use Globals qw($char);
так же и во многих других файлах из папки \src\Network\Receive\kRO\
может лишку удалить??

PS: и кстати "RagexeRE_0.pm" - это спецом придуманный сТ чтоб не смотреть номер последнего?
Быстро и качественно напишу конфиг (макрос)! Стучи!
¤ Свежий бот ¤ Config checker ¤ Manual ¤
Изображение
Изображение
Аватара пользователя
kLabMouse
Профессионал
Сообщения: 4776
Зарегистрирован: Вс ноя 05, 2006 4:32 pm

Re: kRO-шные сервертипы

Сообщение kLabMouse »

4epT
Ну и вопросы... Скорее к автору ветки kROшных сервертипов.
Я так понимаю, что они были постоены так, что каждый следуйщий, расширяет возможности пердыдущего.
В основном файле, процедурный обработчики. В файлах с датами, только данные которые добавились/изменились.
Аватара пользователя
4epT
macro-маньячина
Сообщения: 2792
Зарегистрирован: Чт дек 21, 2006 1:23 pm
Сервер RO:: 4game
Discord: ya4ept#8494
Контактная информация:

Re: kRO-шные сервертипы

Сообщение 4epT »

я тогда по возможности подчищу их от мусора, если что.. всегда откатить можно
Быстро и качественно напишу конфиг (макрос)! Стучи!
¤ Свежий бот ¤ Config checker ¤ Manual ¤
Изображение
Изображение
EternalHarvest
Разработчик
Сообщения: 819
Зарегистрирован: Пн окт 27, 2008 9:49 pm

Re: kRO-шные сервертипы

Сообщение EternalHarvest »

4epT писал(а):клиент что-то отправляет, а бот не понимает что клиент отправляет..
то что больше всего мозолило глаза я занёс в SVN7941
Бот не понимает абсолютное большинство видов пакетов, отправляемых с клиента, в том числе потому что ему и не особенно нужно понимать пакеты, не влияющие на логику работы с XKore и не использующиеся в инициализации XKore 2.

Другое дело, что при добавлении пакетов в packet_list можно избавляться от лишних функций send* (оставляя одну копию, использующую данные из packet_list, в Send.pm).
4epT писал(а):правильно ли я понимаю, что вот эти строки абсолютно лишние и не несут никакой смысловой нагрузки?
может лишку удалить??
Все "use" с неиспользуемыми в соответствующем файле функциями и переменными можно удалить.
4epT писал(а):"RagexeRE_0.pm" - это спецом придуманный сТ чтоб не смотреть номер последнего?
Это ST для сервера kRO.
Аватара пользователя
4epT
macro-маньячина
Сообщения: 2792
Зарегистрирован: Чт дек 21, 2006 1:23 pm
Сервер RO:: 4game
Discord: ya4ept#8494
Контактная информация:

Re: kRO-шные сервертипы

Сообщение 4epT »

EternalHarvest писал(а):Бот не понимает абсолютное большинство видов пакетов, отправляемых с клиента, в том числе потому что ему и не особенно нужно понимать пакеты, не влияющие на логику работы с XKore
тогда об этом в консоль ничего не должно писаться :)

стоп, а разве есть клиент что-то умеет отсылать, чего не знает бот (в режиме xkore1), то сможет ли бот в режиме xkore 0 отослать то что отсылает клиент?
Другое дело, что при добавлении пакетов в packet_list можно избавляться от лишних функций send* (оставляя одну копию, использующую данные из packet_list, в Send.pm).
т.е. все отсылаемые функции пихаем в Send.pm, а если что-то отличается, то уже в локальный файл?
Как кстати щас разделяется что пихается в Send.pm, а что а send/ServerType0.pm ?
Это ST для сервера kRO.
в папке kRO - там все sT для сервера kRO идут :)
я имел в виду что sT RagexeRE_0 всегда ссылается на самый свежий kROшный sT
т.е. щас RagexeRE_0 = RagexeRE_2011_11_02a
Быстро и качественно напишу конфиг (макрос)! Стучи!
¤ Свежий бот ¤ Config checker ¤ Manual ¤
Изображение
Изображение
Аватара пользователя
kLabMouse
Профессионал
Сообщения: 4776
Зарегистрирован: Вс ноя 05, 2006 4:32 pm

Re: kRO-шные сервертипы

Сообщение kLabMouse »

И так.... кРО Сервер Типы Инкрементальные, Дата по пожже, дополняет/изменяет предыдущий.
Есть такой-же Общий СерверТип как у СерверТипа 0.
EternalHarvest
Разработчик
Сообщения: 819
Зарегистрирован: Пн окт 27, 2008 9:49 pm

Re: kRO-шные сервертипы

Сообщение EternalHarvest »

4epT писал(а):стоп, а разве есть клиент что-то умеет отсылать, чего не знает бот (в режиме xkore1), то сможет ли бот в режиме xkore 0 отослать то что отсылает клиент?
Имеется в виду, что все отсылаемые пакеты, которые в XKore 0 собираются прямо в соответствующей send* функции (и для которых, соответственно, нет полной информации в packet_list) - неизвестные для XKore, потому что нет лёгкого ST-независимого способа их разобрать, или хотя бы определить, что это за пакет.
4epT писал(а):т.е. все отсылаемые функции пихаем в Send.pm, а если что-то отличается, то уже в локальный файл?
Как кстати щас разделяется что пихается в Send.pm, а что а send/ServerType0.pm ?
Я предлагаю send* функции делать адапторами к $self->reconstruct(), и оставлять по одной (независимой от ST) такой функции, и в таком случае перемещать её в Send.pm. Примеры уже есть в том файле.
4epT писал(а):в папке kRO - там все sT для сервера kRO идут :)
я имел в виду что sT RagexeRE_0 всегда ссылается на самый свежий kROшный sT
т.е. щас RagexeRE_0 = RagexeRE_2011_11_02a
У kRO вроде как только один ST, и он, естесственно, самый свежий из тех, что "были" на kRO. При добавлении новых kRO ST надо сохранять ссылку в RagexeRE_0 на самый свежий из остальных (kRO ссылается на kRO::RagexeRE_0).

Можно было бы обойтись и без RagexeRE_0. Возможно, автор хотел, чтоб все изменения были внутри каталога kRO (а не в kRO.pm).

Posted after 10 hours 13 minutes 46 seconds:
Почти все названия пакетов в packet_list состоят из строчных букв и подчёрков (не camelCase), и не начинаются со слов receive/send. Может, стоит делать все единообразно здесь?
Ответить