Конструкция serverType

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

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

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

Конструкция serverType

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

Есть ли какая-то идеология как правильно писать sT?
вот выдержки из send\bRO.pm:

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

sub new {
	my ($class) = @_;
	my $self = $class->SUPER::new(@_);
	my %packets = (
		'0437' => ['move','a4', [qw(coordString)]],
	);
	$self->{packet_list}{$_} = $packets{$_} for keys %packets;
	my %handlers = qw(
		move 0437
	);
	$self->{packet_lut}{$_} = $handlers{$_} for keys %handlers;
	return $self;
}
sub sendMove {
	my ($self, $x, $y) = @_;
	$self->sendToServer($self->reconstruct({
		switch => 'move',
		coordString => getCoordString(int $x, int $y, 1),
	}));
	debug "Sent move to: $x, $y\n", "sendPacket", 2;
}
вот выдержки из send\iRO.pm:

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

sub new {
	my ($class) = @_;
	my $self = $class->SUPER::new(@_);
	my %handlers = qw(

	);
	$self->{packet_lut}{$_} = $handlers{$_} for keys %handlers;
	return $self;
}

sub sendMove {
   my $self = shift;
   my $x = int scalar shift;
   my $y = int scalar shift;
   my $msg;
   $msg = pack("C*", 0x5F, 0x03) . getCoordString($x, $y, 1);
   $self->sendToServer($msg);
   debug "Sent move to: $x, $y\n", "sendPacket", 2;
}
в первом случае пакет move записан и в %packets и в %handlers, далее идёт фукнция sub sendMove
во втором случае пакет move никуда не записан, сразу идёт функция sub sendMove

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

Re: Конструкция serverType

Сообщение EternalHarvest »

4epT писал(а):в первом случае пакет move записан и в %packets и в %handlers, далее идёт фукнция sub sendMove
во втором случае пакет move никуда не записан, сразу идёт функция sub sendMove

хде правда?
move там записан в packet_list и packet_lut. Это нужно, чтоб посылать его через ->reconstruct и не иметь функции sendMove вообще в этом файле (как для master_login, game_login, char_login, map_login, map_loaded, sync и прочего из Send.pm). Только конкретно пакет с move (который в kRO называется character_move, в bRO надо переименовать чтоб не было расхождений) пока требует всё равно sendMove из-за беспорядка в ST 1-22. Если с этим беспорядком разобраться - то sendMove в bRO.pm и остальных файлах будет не нужна.

Предлагаемая идеология: для всех пакетов, участвующих в новых изменениях, во всех serverType добавляем соответсвующие записи в packet_list/packet_lut, а функции их отправки (с reconstruct) переносим в Send.pm.
Аватара пользователя
4epT
macro-маньячина
Сообщения: 2792
Зарегистрирован: Чт дек 21, 2006 1:23 pm
Сервер RO:: 4game
Discord: ya4ept#8494
Контактная информация:

Re: Конструкция serverType

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

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

Re: Конструкция serverType

Сообщение EternalHarvest »

4epT писал(а):а вообще кто-то пользуется ST 1-22??
Возможно. Не все же официальные сервера у нас имеют свой ST (некоторых вообще нет в servers).
раньше был сервер статистик.. там нет таких данных?
Именно, что раньше.
http://openkore.svn.sourceforge.net/vie ... 15&r2=6916&

В данном случае пакет character_move в kRO ST уже реализован нормально, там с этим проблем нет.
Ответить