OpenKore / openkore

A free/open source client and automation tool for Ragnarok Online
http://openkore.com
Other
1.29k stars 1.05k forks source link

pserver use xkore3 but disconnected when login #1520

Closed xunnnna closed 6 years ago

xunnnna commented 6 years ago

Sorry for my poor English... Here's the servers.txt, 2017 clients servers.txt

xkore 0 works, but the server has Anti BotKiller(pictures), and could not extract the grf. So I try to use xkore1,2,3, when use xkore3 ,below msg: it has 5 servers, disconnected... I find below topic https://github.com/OpenKore/openkore/pull/1374 my openkore is the lasted version, but still disconnected... Thank you so much in advance! test account: username: test pwd:test

connecting (27.151.28.111:16900)... successful << Sent by RO client: 0064 [55 bytes] << Sent by RO client: 0064 Sent packet : 0064 [55 bytes] [Account Server Login] << Received packet: 0AC4 [224 bytes] << Received packet: 0AC4 ---------- Account Info ---------- Account ID: 2000156 1C 85 1E 00 Sex: Girl Session ID: 1626710371 63 A1 F5 60 861856599 57 E3 5E 33


---------------------- Servers ----------------------

Name Users IP Port

0 59 27.151.28.111 16121 1 0 27.151.28.111 0 2 0 27.151.28.111 0 3 0 27.151.28.111 0 4 0 27.151.28.111 0

disconnected disconnected (27.151.28.111:16900)...disconnected waiting client to connect to (localhost:6901)

sctnightcore commented 6 years ago

http://forums.openkore.com/viewtopic.php?f=9&t=165653

xunnnna commented 6 years ago

@sctnightcore er..the grf has an encryption key, so i cannot get the pictures.. I want to use xkore3 mode..

sctnightcore commented 6 years ago
The disadvantage of pServer is:
1. If grf encryption you can not do anything.
xunnnna commented 6 years ago

but if i can you xkore3, i can see the picture....am i right?

xunnnna commented 6 years ago

Xkore1: Unable to inject NetRedirect.dll

Xkore2: insert username and pwd, after click login button in clients,show belows: the chineses letters means "Disconnected from Server,please try again"

2017-12-20_174016

Xokre3: connecting (27.151.28.111:16900)... successful << Sent by RO client: 0064 [55 bytes] << Sent by RO client: 0064 Sent packet : 0064 [55 bytes] [Account Server Login] << Received packet: 0AC4 [224 bytes] << Received packet: 0AC4 ---------- Account Info ---------- Account ID: 2000156 1C 85 1E 00 Sex: Girl Session ID: 1626710371 63 A1 F5 60 861856599 57 E3 5E 33 ---------------------- Servers ---------------------- Name Users IP Port 0 59 27.151.28.111 16121 1 0 27.151.28.111 0 2 0 27.151.28.111 0 3 0 27.151.28.111 0 4 0 27.151.28.111 0 disconnected.. disconnected (27.151.28.111:16900)...disconnected waiting client to connect to (localhost:6901)

Can this pServer use xkore? I had tried several hours...but cannot work..

alisonrag commented 6 years ago

If xkore 0 dont work, also xkore 1,2,3 dont work

xunnnna commented 6 years ago

@alisonrag xkore 0 works

alisonrag commented 6 years ago

@530453506 need to update xkore files, that i can see this server use different packets

xunnnna commented 6 years ago

@alisonrag Thank you! do you want below message? logs.zip Client patch: https://drive.google.com/open?id=1iP72gh--bRh0uxGhy2S6W0-S3d9Ky-Eb

alisonrag commented 6 years ago

@530453506 this pserver is compatible with what server? bRO? kRO? iRO? cRO?

sctnightcore commented 6 years ago

@alisonrag pServer . . ..

xunnnna commented 6 years ago

@alisonrag kRO kRO_RagexeRE_2017_06_14b

alisonrag commented 6 years ago

@530453506 Do you use this private server with which official server?

xunnnna commented 6 years ago

@alisonrag with kRO + Renewal(2016-04-16) https://depositfiles.com/folders/YDZ0CW08G

alisonrag commented 6 years ago

@530453506 how can i register id in this server?

xunnnna commented 6 years ago

@alisonrag username: test password: test

alisonrag commented 6 years ago

@530453506 use this config in servers.txt

[Private Server - Love DOS]
ip 27.151.28.111
port 16900
master_version 4
version 56
serverType kRO_RagexeRE_2017_06_14b
secureLogin 0
secureLogin_type 0
secureLogin_requestCode
secureLogin_account 0
serverEncoding cp949
gameGuard 0
storageEncryptKey 0x050B6F79, 0x0202C179, 0x0E20120, 0x04FA43E3, 0x0179B6C8, 0x05973DF2, 0x07D8D6B, 0x08CB9ED9
addTableFolders kRO/RagexeRE_2017_06_14b;translated;translated/kRO_english;kRO
charBlockSize 145
pinCode 0
sendCryptKeys 0x5ED10A48, 0x2E5D761F, 0x667F4301
private 1

also use this pull:

1529

works only in xkore 3: image

alisonrag commented 6 years ago

@530453506 you can use this plugin to respond when you get all images https://github.com/OpenKore/openkore/tree/master/plugins/needs-review/responseOnNPCImage

xunnnna commented 6 years ago

@alisonrag works ! thank you so much!

xunnnna commented 6 years ago

@alisonrag Hello Alison, there is a new issue, i guess it is because of 2017 client. Openkore cannot recognize my party. when i use command “party”, it show “you're not in a party". so when a bot attacking a mob, the other bots in one party cannot attack the mob..

alisonrag commented 6 years ago

Maybe the packet is not parsed

xunnnna commented 6 years ago

@alisonrag I found unknown switch when the actor is in a party Packet Parser: Unknown switch: 0A43 Packet Parser: Unknown switch: 0A44

How can I parse these packet? which attribute can describe.. 'party_users_info'? Thank you so much in advance!

sctnightcore commented 6 years ago

@530453506 new packet party ! in client 2017 XD

xunnnna commented 6 years ago

@sctnightcore @alisonrag works! I add below code in scr/network/receieve/kro/RagexeRE_2017_06_14b.pm

sub new { my ($class) = @; my $self = $class->SUPER::new(@); my %packets = ( '0A44' => ['party_users_info', 'x2 Z24', [qw(party_name)]], '0A43' => ['party_join', 'a4 V v2 C Z24 Z24 Z16 v C2', [qw(ID role x y type name user map lv item_pickup item_share)]], ); foreach my $switch (keys %packets) { $self->{packet_list}{$switch} = $packets{$switch}; } return $self; }

alisonrag commented 6 years ago

@sctnightcore can you update this packets?

xunnnna commented 6 years ago

@alisonrag @sctnightcore There is something wrong.. Received packet: 0A43 [85 bytes] '0A43' receive 85 bytes ['party_join', 'a4 V v2 C Z24 Z24 Z16 v C2', [qw(ID role x y type name user map lv item_pickup item_share)]],-----------I guess this is 81 bytes, i just copy from Receive/ServerType0.pm.. openkore recognize the wrong party player's name

alisonrag commented 6 years ago

maybe the server added another info

xunnnna commented 6 years ago

@alisonrag I just ignore these extra 4 bytes. update from "$i +=46" to "$i += 50", then openkore can identify the party_users_info.. `sub party_usersinfo { my ($self, $args) = @; return unless changeToInGameState();

my $msg = $args->{RAW_MSG};
$char->{party}{name} = bytesToString($args->{party_name});

for (my $i = 28; $i < $args->{RAW_MSG_SIZE}; $i += 50) {
    my $ID = substr($msg, $i, 4);
    if (binFind(\@partyUsersID, $ID) eq "") {
        binAdd(\@partyUsersID, $ID);
    }
    $char->{party}{users}{$ID} = new Actor::Party();
    $char->{party}{users}{$ID}{name} = bytesToString(unpack("Z24", substr($msg, $i + 4, 24)));
    $char->{party}{users}{$ID}{map} = unpack("Z16", substr($msg, $i + 28, 16));
    $char->{party}{users}{$ID}{admin} = !(unpack("C1", substr($msg, $i + 44, 1)));
    $char->{party}{users}{$ID}{online} = !(unpack("C1",substr($msg, $i + 45, 1)));
    $char->{party}{users}{$ID}->{ID} = $ID;
    debug TF("Party Member: %s (%s)\n", $char->{party}{users}{$ID}{name}, $char->{party}{users}{$ID}{map}), "party", 1;
}   

}`

sctnightcore commented 6 years ago
packet(SMSG_PARTY_MEMBER_INFO,         0x0a43,  85, &PartyRecv::processPartyMemberInfo,            20170502);
packet(SMSG_PARTY_INFO,                0x0a44,  -1, &PartyRecv::processPartyInfo,                   20170502);
packet(SMSG_PARTY_MEMBER_JOB_LEVEL,    0x0abd,  10, &PartyRecv::processPartyMemberJobLevel,         20170502);