Апдейт от 11 апреля 2007.

Официальный сервер Ragnarok On-Line в России - https://ru.4game.com/ro/install/

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

Правила форума
ВНИМАНИЕ: реклама сторонних ботов запрещена! Всякие плюшки - можно :)
Lims
Нууууп
Сообщения: 723
Зарегистрирован: Чт ноя 09, 2006 7:55 pm

Сообщение Lims »

Govorun
не плакай. у тебя аватар кавайный)
japplegame
Профессионал
Сообщения: 272
Зарегистрирован: Вс ноя 05, 2006 2:03 pm

Сообщение japplegame »

Нету у меня сервертайпа. Есть только пакеты. Я давно уже не занимаюсь ботоводством. А то что я понаписал вполне может позапихать начинающий мастодонт рофана - Lims, трясите его пусть и остальное сделает ;)
Lims писал(а):japplegame
да все проверили работает. *тише* ты)) это мы его не правильно сделали)
Меня на самом деле разозлило вот это
darzanebor писал(а):Move:
[id:A200] [junk:9] [coord:3] - ладно с этим я согласен =)
И следующий его пост.
ИМХО, раз ошибся, так и напиши: типа напортачил, прости засранца.
Grivba
Начинающий
Сообщения: 31
Зарегистрирован: Ср апр 11, 2007 1:39 pm

Сообщение Grivba »

sub sendSync {
my ($self, $initialSync) = @_;
my $msg;
# XKore mode 1 lets the client take care of syncing.
return if ($self->{net}->version == 1);

$syncSync = pack("V", getTickCount());
$msg = pack("C*", 0x16, 0x01) . pack("x7") . $syncSync . pack("x2");
$self->sendToServer($msg);
debug "Sent Sync\n", "sendPacket", 2;



sub sendMapLogin {
my $self = shift;
my $accountID = shift;
my $charID = shift;
my $sessionID = shift;
my $sex = shift;
my $msg;
$sex = 0 if ($sex > 1 || $sex < 0); # Sex can only be 0 (female) or 1 (male)
$msg = pack("C*", 0xF3, 0) . pack("x3") . $charID . $accountID . pack("x1") . $sessionID . pack("x9") . pack("V", getTickCount()) . pack("C*", $sex) . pack("x5");
$self->sendToServer($msg);
}

sub sendGetPlayerInfo {
my ($self, $ID) = @_;
my $msg;
$msg = pack("C*", 0x72, 0x00) . pack("x1"). $ID;
$self->sendToServer($msg);
debug "Sent get player info: ID - ".getHex($ID)."\n", "sendPacket", 2;
}


sub sendLook {
my ($self, $body, $head) = @_;
my $msg;
$msg = pack("C*", 0x9F, 0x00) . pack("C*", $head, 0, $body);
$self->sendToServer($msg);
debug "Sent look: $body $head\n", "sendPacket", 2;
$char->{look}{head} = $head;
$char->{look}{body} = $body;
}

sub sendMove {
my $self = shift;
my $x = int scalar shift;
my $y = int scalar shift;
my $msg;
$msg = pack("C*", 0xF5, 0x00) . pack("x1") . getCoordString($x, $y, 1) . pack("x9");
$self->sendToServer($msg);
debug "Sent move to: $x, $y\n", "sendPacket", 2;
}


Вбей сюда их как оно должно быть. Lims или ты вывеси свой Сервер13-ый
Grivba
Начинающий
Сообщения: 31
Зарегистрирован: Ср апр 11, 2007 1:39 pm

Сообщение Grivba »

Реально щас нет времени!
Извиняюсь за свою наглость но всеже.
реально не в куриваю куда вбивать
japplegame
Профессионал
Сообщения: 272
Зарегистрирован: Вс ноя 05, 2006 2:03 pm

Сообщение japplegame »

Эх. Вот, надеюсь сам поймешь куда вбивать и уловишь связь.
Sync:
[id:A700] [junk:9] [sync:4] [junk:5]
$msg = pack("C*", 0xA7, 0x00) . pack("x9") . $syncSync . pack("x5");

MapLogin:
[id:9400] [char:4] [session:4] [junk:2] [account:4] [junk:6] [sync:4] [junk:3] [sex:1]
$msg = pack("C*", 0x94, 0x00) . $charID . $sessionID . pack("x2") . $accountID . pack("x6") . pack("V", getTickCount()) . pack("x3") . pack("C*", $sex);

GetPlayerInfo:
[id:8C00] [junk:2] [player:4]
$msg = pack("C*", 0x8C, 0x00) . pack("x2") . $ID;

Look:
[id:1601] [head:1] [junk:1] [body:1]
$msg = pack("C*", 0x16, 0x01) . pack("C*", $head, 0, $body);

Move:
[id:A200] [junk:9] [coord:3]
$msg=pack("C*", 0xA2, 0x00) . pack("x9") . getCoordString($x, $y, 1) ;
darzanebor
Грамотный
Сообщения: 221
Зарегистрирован: Чт дек 07, 2006 8:43 pm
Откуда: Бирмингем, ул. Бр.Грим....

Сообщение darzanebor »

japplegame
Да разобрался я потом, был неправ, росто посты тереть както не хорошо...
Все сделали все работает...
Народ дерзайте!
Изображение
Изображение
darzanebor
Грамотный
Сообщения: 221
Зарегистрирован: Чт дек 07, 2006 8:43 pm
Откуда: Бирмингем, ул. Бр.Грим....

Сообщение darzanebor »

Оффтоп

Все ушел настальгировать в Teenage Mutant Ninja Turtles вчера прошел за 5 часов, ставлю новый рекорд =)
Изображение
Изображение
yooshi
Новичок
Сообщения: 3
Зарегистрирован: Ср апр 11, 2007 8:55 am

Сообщение yooshi »

Народ скажите что сделать то чтоб бот зароботал?
xsjado686
Новичок
Сообщения: 10
Зарегистрирован: Ср ноя 22, 2006 9:23 am

Сообщение xsjado686 »

позя-позя...
без автопилота ни магу
yonah
Грамотный
Сообщения: 161
Зарегистрирован: Ср ноя 15, 2006 9:49 pm

Сообщение yonah »

Вроде поменял как jupple написал. Все равно дисконнектит при попытке ходить.И еще в муве не надо " . pack("x3"); " дописать в конце?
Grivba
Начинающий
Сообщения: 31
Зарегистрирован: Ср апр 11, 2007 1:39 pm

Сообщение Grivba »

Короче он заходит но......
вылетает при необходимости Авто-сторадже, и использовании Крыльев
короче сторадже не пашет конкретно.
sanchez
Начинающий
Сообщения: 21
Зарегистрирован: Вт апр 10, 2007 10:17 pm

Сообщение sanchez »

Grivba писал(а):Короче он заходит но......
вылетает при необходимости Авто-сторадже, и использовании Крыльев
короче сторадже не пашет конкретно.
ну хоть так :) выложите плиз мануал как исправить бота :)
Grivba
Начинающий
Сообщения: 31
Зарегистрирован: Ср апр 11, 2007 1:39 pm

Сообщение Grivba »

Значит так:
1) Бот не может ходить норм т.е. вылетает в течении 5 секунд.
2) Не использует итемы.
3) Не работает Автосел-Бай вылетает в течении 5 секунд.
4) не работает авто сторадже, т.е. начинает диалог с кафрой, заходит на склад и вылетает.
5) атакует если только сам направиш,
6) Не использует итемы (крылья) вылетает, пишет мол нуно съесть но не ест. Если употребляеш в ручную он съедает и вылетает. При релоге он остается на томже месте при чем выщ съедена.
Автоматически их вообще не использует даже при наличии их.

Вывод: возможно вы и правильно написали но тут чего то реально не хватает.
Да он заходи но.....
Вот пример:
Teleporting to auto-storage
Teleporting to auto-storage
Teleporting to auto-storage
Teleporting to auto-storage
Calculating auto-storage route to: Geffen Field (gef_fild10): 73, 340
Disconnected from Map Server, connecting to Account Server in 30 seconds...
Как это исправить???
Grivba
Начинающий
Сообщения: 31
Зарегистрирован: Ср апр 11, 2007 1:39 pm

Сообщение Grivba »

Короче ясно
Просто кто то хочет что бы Нубы так сказать Учились и не пользовались халявой???
Тупо но все же просьба......
Выложите пофиксеный мануал.
Т.к. все мои сторания Ф ТоПку слетели...
З.Ы. за ранее огромное СПАСИБООООООООО!!!!
Grivba
Начинающий
Сообщения: 31
Зарегистрирован: Ср апр 11, 2007 1:39 pm

Сообщение Grivba »

#########################################################################
# OpenKore - Network subsystem
# This module contains functions for sending messages to the server.
#
# This software is open source, licensed under the GNU General Public
# License, version 2.
# Basically, this means that you're allowed to modify and distribute
# this software. However, if you distribute modified versions, you MUST
# also distribute the source code.
# See http://www.gnu.org/licenses/gpl.html for the full license.
#########################################################################
#
# ServerType for rRO and vRO
# 27 December 2006: Updated to support 2006-12-18a protocol
# 19 January 2007: Updated to support 2007-01-16a protocol
# 13 February 2007: vRO now also uses this server type.
# 07 March 2007: Updated to support rRO 2007-02-26a protocol / vRO is disabled?
# 23 March 2007: Updated to support rRO 2007-02-26e protocol
#
#########################################################################
package Network::Send::ServerType13;

use strict;
use Network::Send::ServerType0;
use base qw(Network::Send::ServerType0);
use Globals qw($accountID $sessionID $sessionID2 $accountSex $char $charID %config %guild @chars $masterServer $syncSync);
use Log qw(error debug);
use I18N qw(stringToBytes);
use Utils;

sub new {
my ($class) = @_;
return $class->SUPER::new(@_);
}

sub sendAttack {
my ($self, $monID, $flag) = @_;
my $msg;
my %args;
$args{monID} = $monID;
$args{flag} = $flag;
Plugins::callHook('packet_pre/sendAttack', \%args);
if ($args{return}) {
$self->sendToServer($args{msg});
return;
}

error "Your server is not supported because it uses padded packets.\n";
if (AI::action() eq "NPC") {
error "Failed to talk to monster NPC.\n";
AI::dequeue();
} elsif (AI::action() eq "attack") {
error "Failed to attack target.\n";
AI::dequeue();
}

$self->sendToServer($msg);
debug "Sent attack: ".getHex($monID)."\n", "sendPacket", 2;
}

sub sendChat {
my ($self, $message) = @_;
$message = "|00$message" if ($config{chatLangCode} && $config{chatLangCode} ne "none");
my ($data, $charName); # Type: Bytes
$message = stringToBytes($message); # Type: Bytes
$charName = stringToBytes($char->{name});
$data = pack("C*", 0xA7, 0x00) . pack("v*", length($charName) + length($message) + 8) . $charName . " : " . $message . chr(0);
$self->sendToServer($data);
#debug bla-bla-bla not found! ((
}

sub sendDrop {
my ($self, $index, $amount) = @_;
my $msg;
$msg = pack("C*", 0xF3, 0x00) . pack("v1", $index). pack("v1", $amount) ;
$self->sendToServer($msg);
debug "Sent drop: $index x $amount\n", "sendPacket", 2;
}

sub sendGetCharacterName {
my ($self, $ID) = @_;
my $msg;
$msg = pack("C*", 0xF7, 0x00) . pack("x3") . $ID;
$self->sendToServer($msg);
debug "Sent get character name: ID - ".getHex($ID)."\n", "sendPacket", 2;
}

sub sendGetPlayerInfo {
my ($self, $ID) = @_;
my $msg;
$msg = pack("C*", 0x8C, 0x00) . pack("x2") . $ID;
$self->sendToServer($msg);
debug "Sent get player info: ID - ".getHex($ID)."\n", "sendPacket", 2;
}

sub sendItemUse {
my $self = shift;
my $ID = shift;
my $targetID = shift;
my $msg;
$msg = pack("C*", 0x89, 0x00) . $targetID . pack("v", $ID);
$self->sendToServer($msg);
debug "Item Use: $ID\n", "sendPacket", 2;
}

sub sendLook {
my ($self, $body, $head) = @_;
my $msg;
$msg = pack("C*", 0x16, 0x01) . pack("C*", $head, 0, $body);
$self->sendToServer($msg);
debug "Sent look: $body $head\n", "sendPacket", 2;
$char->{look}{head} = $head;
$char->{look}{body} = $body;
}

sub sendMapLogin {
my $self = shift;
my $accountID = shift;
my $charID = shift;
my $sessionID = shift;
my $sex = shift;
my $msg;
$sex = 0 if ($sex > 1 || $sex < 0); # Sex can only be 0 (female) or 1 (male)
$msg = pack("C*", 0x94, 0x00) . $charID . $sessionID . pack("x2") . $accountID . pack("x6") . pack("V", getTickCount()) . pack("x3") . pack("C*", $sex);
$self->sendToServer($msg);


}

sub sendMove {
my $self = shift;
my $x = int scalar shift;
my $y = int scalar shift;
my $msg;
$msg = pack("C*", 0xA2, 0x00) . pack("x9") . getCoordString($x, $y, 1) . pack("x3");
$self->sendToServer($msg);
debug "Sent move to: $x, $y\n", "sendPacket", 2;
}

sub sendSit {
my $self = shift;
my $msg;

my %args;
$args{flag} = 2;
Plugins::callHook('packet_pre/sendSit', \%args);
if ($args{return}) {
$self->sendToServer($args{msg});
return;
}

error "Your server is not supported because it uses padded packets.\n";
if (AI::action() eq "sitting") {
error "Failed to sit.\n";
AI::dequeue();
}
return;

$self->sendToServer($msg);
debug "Sitting\n", "sendPacket", 2;
}

sub sendSkillUse {
my $self = shift;
my $ID = shift;
my $lv = shift;
my $targetID = shift;
my $msg;

my %args;
$args{ID} = $ID;
$args{lv} = $lv;
$args{targetID} = $targetID;
Plugins::callHook('packet_pre/sendSkillUse', \%args);
if ($args{return}) {
$self->sendToServer($args{msg});
return;
}

error "Your server is not supported because it uses padded packets.\n";
if (AI::action() eq 'teleport') {
error "Failed to use teleport skill.\n";
AI::dequeue();
} elsif (AI::action() ne "skill_use") {
error "Failed to use skill.\n";
AI::dequeue();
}
return;

$self->sendToServer($msg);
debug "Skill Use: $ID\n", "sendPacket", 2;
}

sub sendSkillUseLoc {
my ($self, $ID, $lv, $x, $y) = @_;
my $msg;
$msg = pack("C*", 0x13, 0x01) . pack("v*", $y) . pack("v*", $ID) . pack("v*", $x) . pack("v", $lv) . pack("x2");
$self->sendToServer($msg);
debug "Skill Use on Location: $ID, ($x, $y)\n", "sendPacket", 2;
}

sub sendStorageAdd {
my $self = shift;
my $index = shift;
my $amount = shift;
my $msg;
$msg = pack("C*", 0x9B, 0x00) . pack("x2") . pack("v", $index) . pack("V", $amount);
$self->sendToServer($msg);
debug "Sent Storage Add: $index x $amount\n", "sendPacket", 2;
}

sub sendStorageClose {
my ($self) = @_;
my $msg;
$msg = pack("C*", 0x85, 0x00);
$self->sendToServer($msg);
debug "Sent Storage Done\n", "sendPacket", 2;
}

sub sendStorageGet {
my $self = shift;
my $index = shift;
my $amount = shift;
my $msg;
$msg = pack("C*", 0x8C, 0x00) . pack("x1") . pack("V*", $amount) . pack("v", $index);
$self->sendToServer($msg);
debug "Sent Storage Get: $index x $amount\n", "sendPacket", 2;
}

sub sendStand {
my $self = shift;
my $msg;

my %args;
$args{flag} = 3;
Plugins::callHook('packet_pre/sendStand', \%args);
if ($args{return}) {
$self->sendToServer($args{msg});
return;
}

error "Your server is not supported because it uses padded packets.\n";
if (AI::action() eq "standing") {
error "Failed to stand.\n";
AI::dequeue();
}
return;

$self->sendToServer($msg);
debug "Standing\n", "sendPacket", 2;
}

sub sendSync {
my ($self, $initialSync) = @_;
my $msg;
# XKore mode 1 lets the client take care of syncing.
return if ($self->{net}->version == 1);

$syncSync = pack("V", getTickCount());
$msg = pack("C*", 0xA7, 0x00) . pack("x9") . $syncSync . pack("x5");
$self->sendToServer($msg);
debug "Sent Sync\n", "sendPacket", 2;
}

sub sendTake {
my $self = shift;
my $itemID = shift; # $itemID = long
my $msg;
$msg = pack("C*", 0x94, 0x00) . $itemID;
$self->sendToServer($msg);
debug "Sent take\n", "sendPacket", 2;
}

1;


Вот что получается но работает 5 секунд и на вылет
Ответить