Help to fix bots tRO.

Thailand

Moderator: Moderators

Post Reply
Message
Author
sctnightcore
Developers
Developers
Posts: 232
Joined: 09 Apr 2017, 07:23
Noob?: No
Location: Thailand

Help to fix bots tRO.

#1 Post by sctnightcore »

@skylord
Download from here https://github.com/OpenKore/openkore/tree/tRO


send > trO
#################################################################################################
# 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. #
#################################################################################################
# tRO (Thai)
package Network::Send::tRO;
use strict;
use base qw(Network::Send::ServerType0);

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

my %packets = (
'0369' => ['actor_action', 'a4 C', [qw(targetID type)]],
'035F' => ['character_move','a3', [qw(coords)]],
'0361' => ['actor_look_at', 'v C', [qw(head body)]],
'0362' => ['item_take', 'a4', [qw(ID)]],
'0363' => ['item_drop', 'v2', [qw(index amount)]],
'023B' => ['storage_password'],
'0364' => ['storage_item_add', 'v V', [qw(index amount)]],
'0365' => ['storage_item_remove', 'v V', [qw(index amount)]],
'0366' => ['skill_use_location', 'v4', [qw(lv skillID x y)]],
'0368' => ['actor_info_request', 'a4', [qw(ID)]],
'022D' => ['party_join_request_by_name', 'Z24', [qw(partyName)]],
'0802' => ['homunculus_command', 'v C', [qw(commandType, commandID)]],
'0970' => ['char_create', 'a24 C v2', [qw(name, slot, hair_style, hair_#color)]],
'0436' => ['map_login', 'a4 a4 a4 V C', [qw(accountID charID sessionID tick sex)]],
);

$self->{packet_list}{$_} = $packets{$_} for keys %packets;

my %handlers = qw(
actor_action 0089
party_join_request_by_name 022D
storage_password 023B
game_login 0275
character_move 035F
actor_look_at 0361
item_take 0362
item_drop 0363
storage_item_add 0364
storage_item_remove 0365
skill_use_location 0366
actor_info_request 0368
actor_name_request 0369
skill_use 0438
party_setting 07D7
buy_bulk_vender 0801
homunculus_command 0802
char_create 0970
send_equip 0998
ban_check 0187
map_login 0436
sync 0360
);

$self->{packet_lut}{$_} = $handlers{$_} for keys %handlers;
$self->cryptKeys(0x4d8e77b2, 0x6e7b6757, 0x46ae0414);
return $self;
}

1;


Receive > tRO
#################################################################################################
# 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. #
#################################################################################################
# tRO (Thai)
package Network::Receive::tRO;
use strict;
use base qw(Network::Receive::ServerType0);
use Globals;

sub new {
my ($class) = @_;
my $self = $class->SUPER::new(@_);
my %packets = (
# '0069' => ['account_server_info', 'x2 a4 a4 a4 x30 C1 x4 a*', [qw(sessionID accountID sessionID2 accountSex serverInfo)]],
'0276' => ['account_server_info', 'x2 a4 a4 a4 x30 C1 x4 a*', [qw(sessionID accountID sessionID2 accountSex serverInfo)]],
'0078' => ['actor_exists', 'C a4 v14 a4 a2 v2 C2 a3 C3 v', [qw(object_type ID walk_speed opt1 opt2 option type hair_style weapon lowhead shield tophead midhead hair_color clothes_color head_dir guildID emblemID manner opt3 stance sex coords unknown1 unknown2 act lv)]], # 55 # standing
'007C' => ['actor_connected', 'C a4 v14 C2 a3 C2', [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 unknown1 unknown2)]], # 42 # spawning
'0097' => ['private_message', 'v Z24 V Z*', [qw(len privMsgUser flag privMsg)]], # -1
'022C' => ['actor_moved', 'C a4 v3 V v5 V v5 a4 a2 v V C2 a6 C2 v', [qw(object_type ID walk_speed opt1 opt2 option type hair_style weapon shield lowhead tick tophead midhead hair_color clothes_color head_dir guildID emblemID manner opt3 stance sex coords unknown1 unknown2 lv)]], # 65 # walking
'082D' => ['sync_received_characters'],
'099D' => ['received_characters', 'x2 a*', [qw(charInfo)]],
'0367' => ['sync_request_ex'],
'085A' => ['sync_request_ex'],
'085B' => ['sync_request_ex'],
'085C' => ['sync_request_ex'],
'085D' => ['sync_request_ex'],
'085E' => ['sync_request_ex'],
'085F' => ['sync_request_ex'],
'0860' => ['sync_request_ex'],
'0861' => ['sync_request_ex'],
'0862' => ['sync_request_ex'],
'0863' => ['sync_request_ex'],
'0864' => ['sync_request_ex'],
'0865' => ['sync_request_ex'],
'0866' => ['sync_request_ex'],
'0867' => ['sync_request_ex'],
'0868' => ['sync_request_ex'],
'023B' => ['sync_request_ex'],
'086A' => ['sync_request_ex'],
'086B' => ['sync_request_ex'],
'086C' => ['sync_request_ex'],
'086D' => ['sync_request_ex'],
'086E' => ['sync_request_ex'],
'086F' => ['sync_request_ex'],
'0870' => ['sync_request_ex'],
'0871' => ['sync_request_ex'],
'0872' => ['sync_request_ex'],
'0873' => ['sync_request_ex'],
'0874' => ['sync_request_ex'],
'0875' => ['sync_request_ex'],
'0876' => ['sync_request_ex'],
'0877' => ['sync_request_ex'],
'0878' => ['sync_request_ex'],
'0879' => ['sync_request_ex'],
'087A' => ['sync_request_ex'],
'087B' => ['sync_request_ex'],
'087C' => ['sync_request_ex'],
'087D' => ['sync_request_ex'],
'087E' => ['sync_request_ex'],
'087F' => ['sync_request_ex'],
'0880' => ['sync_request_ex'],
'0881' => ['sync_request_ex'],
'0882' => ['sync_request_ex'],
'0883' => ['sync_request_ex'],
'0917' => ['sync_request_ex'],
'0918' => ['sync_request_ex'],
'0919' => ['sync_request_ex'],
'091A' => ['sync_request_ex'],
'091B' => ['sync_request_ex'],
'091C' => ['sync_request_ex'],
'091D' => ['sync_request_ex'],
'091E' => ['sync_request_ex'],
'091F' => ['sync_request_ex'],
'0920' => ['sync_request_ex'],
'0921' => ['sync_request_ex'],
'0361' => ['sync_request_ex'],
'0923' => ['sync_request_ex'],
'0924' => ['sync_request_ex'],
'0925' => ['sync_request_ex'],
'0926' => ['sync_request_ex'],
'0927' => ['sync_request_ex'],
'0928' => ['sync_request_ex'],
'0929' => ['sync_request_ex'],
'092A' => ['sync_request_ex'],
'092B' => ['sync_request_ex'],
'092C' => ['sync_request_ex'],
'092D' => ['sync_request_ex'],
'092E' => ['sync_request_ex'],
'092F' => ['sync_request_ex'],
'0930' => ['sync_request_ex'],
'0931' => ['sync_request_ex'],
'0932' => ['sync_request_ex'],
'0933' => ['sync_request_ex'],
'0934' => ['sync_request_ex'],
'0935' => ['sync_request_ex'],
'0936' => ['sync_request_ex'],
'0937' => ['sync_request_ex'],
'0938' => ['sync_request_ex'],
'0939' => ['sync_request_ex'],
'093A' => ['sync_request_ex'],
'093B' => ['sync_request_ex'],
'093C' => ['sync_request_ex'],
'093D' => ['sync_request_ex'],
'093E' => ['sync_request_ex'],
'093F' => ['sync_request_ex'],
);
foreach my $switch (keys %packets) {
$self->{packet_list}{$switch} = $packets{$switch};
}

my %handlers = qw(
received_characters 099D
sync_request 0187
received_character_ID_and_Map 0071
account_id 0283
actor_moved 0856
actor_exists 0857
actor_connected 0858
received_sync 007f
actor_info 0095
);

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

$self->{sync_ex_reply} = {
'0367' => '02C4',
'085A' => '0884',
'085B' => '0885',
'085C' => '0886',
'085D' => '0887',
'085E' => '0888',
'085F' => '0889',
'0860' => '088A',
'0861' => '088B',
'0862' => '088C',
'0863' => '088D',
'0864' => '088E',
'0865' => '088F',
'0866' => '0890',
'0867' => '0891',
'0868' => '0892',
'023B' => '0893',
'086A' => '0894',
'086B' => '0895',
'086C' => '0202',
'086D' => '0897',
'086E' => '0898',
'086F' => '0899',
'0870' => '089A',
'0871' => '089B',
'0872' => '089C',
'0873' => '089D',
'0874' => '089E',
'0875' => '089F',
'0876' => '08A0',
'0877' => '08A1',
'0878' => '08A2',
'0879' => '08A3',
'087A' => '08A4',
'087B' => '08A5',
'087C' => '08A6',
'087D' => '08A7',
'087E' => '08A8',
'087F' => '08A9',
'0880' => '08AA',
'0881' => '0436',
'0882' => '08AC',
'0883' => '08AD',
'0917' => '0941',
'0918' => '0942',
'0919' => '0943',
'091A' => '0944',
'091B' => '0945',
'091C' => '0946',
'091D' => '0947',
'091E' => '0948',
'091F' => '0949',
'0920' => '094A',
'0921' => '094B',
'0361' => '094C',
'0923' => '094D',
'0924' => '094E',
'0925' => '094F',
'0926' => '0950',
'0927' => '0951',
'0928' => '0952',
'0929' => '0953',
'092A' => '0954',
'092B' => '0955',
'092C' => '0956',
'092D' => '0957',
'092E' => '0958',
'092F' => '0959',
'0930' => '095A',
'0931' => '095B',
'0932' => '095C',
'0933' => '095D',
'0934' => '0940',
'0935' => '095E',
'0936' => '0960',
'0937' => '0961',
'0938' => '0962',
'0939' => '0963',
'093A' => '0964',
'093B' => '0965',
'093C' => '0966',
'093D' => '0967',
'093E' => '0968',
'093F' => '0969',
};
return $self;
}

1;



help me pls

SkylorD
Moderators
Moderators
Posts: 1163
Joined: 16 Dec 2011, 02:53
Noob?: Yes
Location: Brazil

Re: Help to fix bots tRO.

#2 Post by SkylorD »

I don't know if tRO is having problem.
Can u give more details for me !?
Learn rules

sctnightcore
Developers
Developers
Posts: 232
Joined: 09 Apr 2017, 07:23
Noob?: No
Location: Thailand

Re: Help to fix bots tRO.

#3 Post by sctnightcore »

SkylorD wrote:I don't know if tRO is having problem.
Can u give more details for me !?


1.Again, do not send log 0064 prototype data instead of 0A76, which is the main login TRO.
2.x0 map load > time out

download game : https://ro.exe.in.th/download/client

koodpzok
Human
Human
Posts: 23
Joined: 21 Jul 2009, 13:27
Noob?: No

Re: Help to fix bots tRO.

#4 Post by koodpzok »

Hi skylord, as you may have heard that tRO has implemented an encryption algorithm called HMAC by which i believe it is associated with packet 0A7B (receive) and we need to reply with 0A7C (send). We were able to go through all the login process until map loaded that is once we received 0A7B, we got disconnected. I believe if someone could write some perl script to send back the correct or the matched 0A7C, the bot would have worked just fine.
Hi everyone dont scold me plz

rangerarmy36
Noob
Noob
Posts: 1
Joined: 17 Jun 2017, 01:49
Noob?: Yes

Re: Help to fix bots tRO.

#5 Post by rangerarmy36 »

Maybe.. it's just about a sync packet.

koodpzok
Human
Human
Posts: 23
Joined: 21 Jul 2009, 13:27
Noob?: No

Re: Help to fix bots tRO.

#6 Post by koodpzok »

well, it's easier said than done.
Hi everyone dont scold me plz

jansizapata
Noob
Noob
Posts: 2
Joined: 23 Jun 2017, 13:53
Noob?: Yes

Re: Help to fix bots tRO.

#7 Post by jansizapata »

sctnightcore wrote:@skylord
Download from here https://github.com/OpenKore/openkore/tree/tRO


send > trO
#################################################################################################
# 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. #
#################################################################################################
# tRO (Thai)
package Network::Send::tRO;
use strict;
use base qw(Network::Send::ServerType0);

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

my %packets = (
'0369' => ['actor_action', 'a4 C', [qw(targetID type)]],
'035F' => ['character_move','a3', [qw(coords)]],
'0361' => ['actor_look_at', 'v C', [qw(head body)]],
'0362' => ['item_take', 'a4', [qw(ID)]],
'0363' => ['item_drop', 'v2', [qw(index amount)]],
'023B' => ['storage_password'],
'0364' => ['storage_item_add', 'v V', [qw(index amount)]],
'0365' => ['storage_item_remove', 'v V', [qw(index amount)]],
'0366' => ['skill_use_location', 'v4', [qw(lv skillID x y)]],
'0368' => ['actor_info_request', 'a4', [qw(ID)]],
'022D' => ['party_join_request_by_name', 'Z24', [qw(partyName)]],
'0802' => ['homunculus_command', 'v C', [qw(commandType, commandID)]],
'0970' => ['char_create', 'a24 C v2', [qw(name, slot, hair_style, hair_#color)]],
'0436' => ['map_login', 'a4 a4 a4 V C', [qw(accountID charID sessionID tick sex)]],
);

$self->{packet_list}{$_} = $packets{$_} for keys %packets;

my %handlers = qw(
actor_action 0089
party_join_request_by_name 022D
storage_password 023B
game_login 0275
character_move 035F
actor_look_at 0361
item_take 0362
item_drop 0363
storage_item_add 0364
storage_item_remove 0365
skill_use_location 0366
actor_info_request 0368
actor_name_request 0369
skill_use 0438
party_setting 07D7
buy_bulk_vender 0801
homunculus_command 0802
char_create 0970
send_equip 0998
ban_check 0187
map_login 0436
sync 0360
);

$self->{packet_lut}{$_} = $handlers{$_} for keys %handlers;
$self->cryptKeys(0x4d8e77b2, 0x6e7b6757, 0x46ae0414);
return $self;
}

1;


Receive > tRO
#################################################################################################
# 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. #
#################################################################################################
# tRO (Thai)
package Network::Receive::tRO;
use strict;
use base qw(Network::Receive::ServerType0);
use Globals;

sub new {
my ($class) = @_;
my $self = $class->SUPER::new(@_);
my %packets = (
# '0069' => ['account_server_info', 'x2 a4 a4 a4 x30 C1 x4 a*', [qw(sessionID accountID sessionID2 accountSex serverInfo)]],
'0276' => ['account_server_info', 'x2 a4 a4 a4 x30 C1 x4 a*', [qw(sessionID accountID sessionID2 accountSex serverInfo)]],
'0078' => ['actor_exists', 'C a4 v14 a4 a2 v2 C2 a3 C3 v', [qw(object_type ID walk_speed opt1 opt2 option type hair_style weapon lowhead shield tophead midhead hair_color clothes_color head_dir guildID emblemID manner opt3 stance sex coords unknown1 unknown2 act lv)]], # 55 # standing
'007C' => ['actor_connected', 'C a4 v14 C2 a3 C2', [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 unknown1 unknown2)]], # 42 # spawning
'0097' => ['private_message', 'v Z24 V Z*', [qw(len privMsgUser flag privMsg)]], # -1
'022C' => ['actor_moved', 'C a4 v3 V v5 V v5 a4 a2 v V C2 a6 C2 v', [qw(object_type ID walk_speed opt1 opt2 option type hair_style weapon shield lowhead tick tophead midhead hair_color clothes_color head_dir guildID emblemID manner opt3 stance sex coords unknown1 unknown2 lv)]], # 65 # walking
'082D' => ['sync_received_characters'],
'099D' => ['received_characters', 'x2 a*', [qw(charInfo)]],
'0367' => ['sync_request_ex'],
'085A' => ['sync_request_ex'],
'085B' => ['sync_request_ex'],
'085C' => ['sync_request_ex'],
'085D' => ['sync_request_ex'],
'085E' => ['sync_request_ex'],
'085F' => ['sync_request_ex'],
'0860' => ['sync_request_ex'],
'0861' => ['sync_request_ex'],
'0862' => ['sync_request_ex'],
'0863' => ['sync_request_ex'],
'0864' => ['sync_request_ex'],
'0865' => ['sync_request_ex'],
'0866' => ['sync_request_ex'],
'0867' => ['sync_request_ex'],
'0868' => ['sync_request_ex'],
'023B' => ['sync_request_ex'],
'086A' => ['sync_request_ex'],
'086B' => ['sync_request_ex'],
'086C' => ['sync_request_ex'],
'086D' => ['sync_request_ex'],
'086E' => ['sync_request_ex'],
'086F' => ['sync_request_ex'],
'0870' => ['sync_request_ex'],
'0871' => ['sync_request_ex'],
'0872' => ['sync_request_ex'],
'0873' => ['sync_request_ex'],
'0874' => ['sync_request_ex'],
'0875' => ['sync_request_ex'],
'0876' => ['sync_request_ex'],
'0877' => ['sync_request_ex'],
'0878' => ['sync_request_ex'],
'0879' => ['sync_request_ex'],
'087A' => ['sync_request_ex'],
'087B' => ['sync_request_ex'],
'087C' => ['sync_request_ex'],
'087D' => ['sync_request_ex'],
'087E' => ['sync_request_ex'],
'087F' => ['sync_request_ex'],
'0880' => ['sync_request_ex'],
'0881' => ['sync_request_ex'],
'0882' => ['sync_request_ex'],
'0883' => ['sync_request_ex'],
'0917' => ['sync_request_ex'],
'0918' => ['sync_request_ex'],
'0919' => ['sync_request_ex'],
'091A' => ['sync_request_ex'],
'091B' => ['sync_request_ex'],
'091C' => ['sync_request_ex'],
'091D' => ['sync_request_ex'],
'091E' => ['sync_request_ex'],
'091F' => ['sync_request_ex'],
'0920' => ['sync_request_ex'],
'0921' => ['sync_request_ex'],
'0361' => ['sync_request_ex'],
'0923' => ['sync_request_ex'],
'0924' => ['sync_request_ex'],
'0925' => ['sync_request_ex'],
'0926' => ['sync_request_ex'],
'0927' => ['sync_request_ex'],
'0928' => ['sync_request_ex'],
'0929' => ['sync_request_ex'],
'092A' => ['sync_request_ex'],
'092B' => ['sync_request_ex'],
'092C' => ['sync_request_ex'],
'092D' => ['sync_request_ex'],
'092E' => ['sync_request_ex'],
'092F' => ['sync_request_ex'],
'0930' => ['sync_request_ex'],
'0931' => ['sync_request_ex'],
'0932' => ['sync_request_ex'],
'0933' => ['sync_request_ex'],
'0934' => ['sync_request_ex'],
'0935' => ['sync_request_ex'],
'0936' => ['sync_request_ex'],
'0937' => ['sync_request_ex'],
'0938' => ['sync_request_ex'],
'0939' => ['sync_request_ex'],
'093A' => ['sync_request_ex'],
'093B' => ['sync_request_ex'],
'093C' => ['sync_request_ex'],
'093D' => ['sync_request_ex'],
'093E' => ['sync_request_ex'],
'093F' => ['sync_request_ex'],
);
foreach my $switch (keys %packets) {
$self->{packet_list}{$switch} = $packets{$switch};
}

my %handlers = qw(
received_characters 099D
sync_request 0187
received_character_ID_and_Map 0071
account_id 0283
actor_moved 0856
actor_exists 0857
actor_connected 0858
received_sync 007f
actor_info 0095
);

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

$self->{sync_ex_reply} = {
'0367' => '02C4',
'085A' => '0884',
'085B' => '0885',
'085C' => '0886',
'085D' => '0887',
'085E' => '0888',
'085F' => '0889',
'0860' => '088A',
'0861' => '088B',
'0862' => '088C',
'0863' => '088D',
'0864' => '088E',
'0865' => '088F',
'0866' => '0890',
'0867' => '0891',
'0868' => '0892',
'023B' => '0893',
'086A' => '0894',
'086B' => '0895',
'086C' => '0202',
'086D' => '0897',
'086E' => '0898',
'086F' => '0899',
'0870' => '089A',
'0871' => '089B',
'0872' => '089C',
'0873' => '089D',
'0874' => '089E',
'0875' => '089F',
'0876' => '08A0',
'0877' => '08A1',
'0878' => '08A2',
'0879' => '08A3',
'087A' => '08A4',
'087B' => '08A5',
'087C' => '08A6',
'087D' => '08A7',
'087E' => '08A8',
'087F' => '08A9',
'0880' => '08AA',
'0881' => '0436',
'0882' => '08AC',
'0883' => '08AD',
'0917' => '0941',
'0918' => '0942',
'0919' => '0943',
'091A' => '0944',
'091B' => '0945',
'091C' => '0946',
'091D' => '0947',
'091E' => '0948',
'091F' => '0949',
'0920' => '094A',
'0921' => '094B',
'0361' => '094C',
'0923' => '094D',
'0924' => '094E',
'0925' => '094F',
'0926' => '0950',
'0927' => '0951',
'0928' => '0952',
'0929' => '0953',
'092A' => '0954',
'092B' => '0955',
'092C' => '0956',
'092D' => '0957',
'092E' => '0958',
'092F' => '0959',
'0930' => '095A',
'0931' => '095B',
'0932' => '095C',
'0933' => '095D',
'0934' => '0940',
'0935' => '095E',
'0936' => '0960',
'0937' => '0961',
'0938' => '0962',
'0939' => '0963',
'093A' => '0964',
'093B' => '0965',
'093C' => '0966',
'093D' => '0967',
'093E' => '0968',
'093F' => '0969',
};
return $self;
}

1;



help me pls



Good day sir , Revo Classic RO here in the philppines CBT just started days ago this is the same as Thai RO and same company under Extreme & Elite can you help us ?
i have the working IP it can connect but doesnt continue

chrzsdltn
Noob
Noob
Posts: 3
Joined: 21 Jun 2014, 18:43
Noob?: Yes

Re: Help to fix bots tRO.

#8 Post by chrzsdltn »

where should i put these?

Post Reply