recv packet problem
Moderator: Moderators
Re: Old 2008_01_02a Monsters appear as PLAYERS
'022A' => ['actor_exists', 'a4 v3 V v10 a4 a2 v V C2 a3 C3 v', [qw(ID walk_speed opt1 opt2 option type hair_style weapon shield lowhead tophead midhead hair_color clothes_color head_dir guildID emblemID manner opt3 stance sex coords xSize ySize act lv)]], # 58 # standing
'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 xSize ySize act lv)]], # 55 #standing
#'02EC' => ['actor_exists', 'C a4 v3 V v5 V v5 a4 a4 V C2 a6 C2 v2', [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 opt3 stance sex coords xSize ySize lv font)]], # 67 # Moving # TODO: C struct is different
'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 xSize ySize act lv)]], # 55 #standing
#'02EC' => ['actor_exists', 'C a4 v3 V v5 V v5 a4 a4 V C2 a6 C2 v2', [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 opt3 stance sex coords xSize ySize lv font)]], # 67 # Moving # TODO: C struct is different
Re: Old 2008_01_02a Monsters appear as PLAYERS
Learn rules
Re: Old 2008_01_02a Monsters appear as PLAYERS
Offering payment for solution. details discussed over irc, or PM
I've tried Kore, xkore, xkore2, xkore3, all avail server types...
Code: Select all
Move You - done
Route You - trimming down solution (19) by 8 steps
Route You - next step moving to (255, 63), index 10, 11 steps left
Move You - (re)trying
<< Received packet: 0095 - Unit Get Info [30 bytes]
Move You - (re)trying
<< Received packet: 0078 - actor_display (actor exists) [55 bytes]
Player Exists: Unknown #110002481 (3) Level 1 Girl (268, 45)
<< Received packet: 0087 - You Move [12 bytes]
You're moving from (253, 61) to (255, 63) - distance 2.8
<< Received packet: 0080 - Unit Lost (Died, Disappeared, Disconnected) [ 7 bytes]
Player Disappeared: Unknown #110002481 (3) Girl (268, 45)
<< Received packet: 0078 - actor_display (actor exists) [55 bytes]
Player Exists: Unknown #110574008 (3) Level 13 Girl (270, 55)
<< Received packet: 0087 - You Move [12 bytes]
You're moving from (254, 62) to (255, 63) - distance 1.4
Move You - done
Route You - trimming down solution (11) by 7 steps
Route You - next step moving to (255, 63), index 3, 4 steps left
Move You - (re)trying
<< Received packet: 0095 - Unit Get Info [30 bytes]
Move You - (re)trying
<< Received packet: 0087 - You Move [12 bytes]
You're moving from (255, 63) to (255, 63) - distance 0.0
<< Received packet: 0087 - You Move [12 bytes]
You're moving from (255, 63) to (255, 63) - distance 0.0
Move You - done
Route You - trimming down solution (4) by 4 steps
You reached the destination.
Map Router has finished traversing the map solution
<< Received packet: 0095 - Unit Get Info [30 bytes]
<< Received packet: 0086 - actor_display (actor moved) [16 bytes]
Player Moved: Hornet (2) Level 8 Girl - (263, 71) -> (265, 66)
<< Received packet: 0086 - actor_display (actor moved) [16 bytes]
Player Moved: Ambernite (3) Level 13 Girl - (270, 55) -> (280, 50)
<< Received packet: 00C0 - Emotion [ 7 bytes]
[dist=28.2] Ambernite (3): *Sweat*
<< Received packet: 0088 - Unit Position [10 bytes]
<< Received packet: 022C - actor_display (actor moved) [65 bytes]
Player Moved: Unknown #26216087 (1) Level Novice - (206, 128) -> (0, 13)
<< Received packet: 007F - Received Sync [ 6 bytes]
<< Received packet: 0086 - actor_display (actor moved) [16 bytes]
Player Moved: Hornet (2) Level 8 Girl - (265, 66) -> (261, 70)
<< Received packet: 008A - Item take / attack damage / sit / stand [29 bytes]
You are sitting.
HP is now > 100
<< Received packet: 0086 - actor_display (actor moved) [16 bytes]
Player Moved: Hornet (2) Level 8 Girl - (261, 70) -> (260, 64)
<< Received packet: 0086 - actor_display (actor moved) [16 bytes]
Player Moved: Ambernite (3) Level 13 Girl - (271, 54) -> (267, 56)
<< Received packet: 0086 - actor_display (actor moved) [16 bytes]
Player Moved: Hornet (2) Level 8 Girl - (260, 64) -> (268, 71)
<< Received packet: 0086 - actor_display (actor moved) [16 bytes]
NPC Moved: Unknown #110574009 (0) - (271, 51) -> (277, 39)
<< Received packet: 007F - Received Sync [ 6 bytes]
<< Received packet: 0080 - Unit Lost (Died, Disappeared, Disconnected) [ 7 bytes]
NPC Disappeared: Unknown #110574009 (110574009)
<< Received packet: 0086 - actor_display (actor moved) [16 bytes]
Player Moved: Ambernite (3) Level 13 Girl - (267, 56) -> (277, 55)
<< Received packet: 0080 - Unit Lost (Died, Disappeared, Disconnected) [ 7 bytes]
Player Disappeared: Ambernite (3) Girl (277, 55)
<< Received packet: 0086 - actor_display (actor moved) [16 bytes]
Player Moved: Hornet (2) Level 8 Girl - (268, 71) -> (275, 83)
<< Received packet: 0080 - Unit Lost (Died, Disappeared, Disconnected) [ 7 bytes]
Player Disappeared: Hornet (2) Girl (275, 83)
Re: Old 2008_01_02a Monsters appear as PLAYERS
Don't need to offer nothing.
Just post a link to the server, the connectivity information that u are using.
http://openkore.com/index.php/Connectivity_Guide
How about the recvpackets? if you've extracted, you don't talked nothing about your situation. We're a community ! ^^
Well brother i've posted something such as 0x009b packet and i've saw that you talked about this too.
Then i have removed my comment and posted an idiot meme ^^ because i was so confused that my brain has stopped.
You is going to the doctor at now, because u are feeling something in your stomach. That can't not be really in your stomach but can be in your liver or in your kidney.
You need to give more information to the doctor to get the correct diagnostic. And it can't be a disease, could be a fishbone and nearly of of 10~20 years you will be dying silently. And you thinking that was food intoxication !
We won't help you case your server is using gepard, a gameguard modified, something like that you need to hire someone. ^^
What u want ? in da hand ?
Try to type in console the kill command, to attack the player. kkkkkkkkkkkkk
kill <id>
It would be amazing
Just post a link to the server, the connectivity information that u are using.
http://openkore.com/index.php/Connectivity_Guide
How about the recvpackets? if you've extracted, you don't talked nothing about your situation. We're a community ! ^^
Well brother i've posted something such as 0x009b packet and i've saw that you talked about this too.
Then i have removed my comment and posted an idiot meme ^^ because i was so confused that my brain has stopped.
You is going to the doctor at now, because u are feeling something in your stomach. That can't not be really in your stomach but can be in your liver or in your kidney.
You need to give more information to the doctor to get the correct diagnostic. And it can't be a disease, could be a fishbone and nearly of of 10~20 years you will be dying silently. And you thinking that was food intoxication !
We won't help you case your server is using gepard, a gameguard modified, something like that you need to hire someone. ^^
What u want ? in da hand ?
Try to type in console the kill command, to attack the player. kkkkkkkkkkkkk
kill <id>
It would be amazing
Learn rules
Re: Old 2008_01_02a Monsters appear as PLAYERS
Connectivity:
https://pastebin.com/DJr4P1Yq
recvpackets:
https://pastebin.com/mtshSHaE
I had a chat with mortimal over IRC, and i indicated that i have ripped the RECV packets from another person asking questions RE this same server; this is because i can not find a working URL to jcv ROTOOLS, and all other recvpacket extractors either cannot find the 'entrance point' or simply just don't work with this executable.
Requested "kill id"
https://pastebin.com/nfGitskE
Poring dead, but still listed in the PL as id 2, and does not clear until hitting another map.
https://pastebin.com/DJr4P1Yq
recvpackets:
https://pastebin.com/mtshSHaE
I had a chat with mortimal over IRC, and i indicated that i have ripped the RECV packets from another person asking questions RE this same server; this is because i can not find a working URL to jcv ROTOOLS, and all other recvpacket extractors either cannot find the 'entrance point' or simply just don't work with this executable.
Requested "kill id"
https://pastebin.com/nfGitskE
Poring dead, but still listed in the PL as id 2, and does not clear until hitting another map.
Re: Old 2008_01_02a Monsters appear as PLAYERS
Because monster list was not made to show players.
Then it not clean the list, anything like this...
Well i believe that for your server should be mounter an serverType in especial to see it working good and if it applies for all servers. Maybe not
Then it not clean the list, anything like this...
Well i believe that for your server should be mounter an serverType in especial to see it working good and if it applies for all servers. Maybe not
Learn rules
Re: Old 2008_01_02a Monsters appear as PLAYERS
If i understand correctly, and that is the case; then the starting point is here.
Receive.pm
lines 469-491
Say monsters start at 6001, which would satisfy the >=1000 arguement... however this is never allowed to happen. Because the first if statement only checks if greater than 6000...
So... is there a direct way to determine within openkore structure ...
?? the way openkore implements that code looks quite arbitrary
Receive.pm
lines 469-491
Code: Select all
unless (defined $object_class) {
if ($jobs_lut{$args->{type}}) {
unless ($args->{type} > 6000) {
$object_class = 'Actor::Player';
} else {
$object_class = 'Actor::Slave';
}
} elsif ($args->{type} == 45) {
$object_class = 'Actor::Portal';
} elsif ($args->{type} >= 1000) {
if ($args->{hair_style} == 0x64) {
$object_class = 'Actor::Pet';
} else {
$object_class = 'Actor::Monster';
}
} elsif ($args->{type} != 45 && !$jobs_lut{$args->{type}}){ # $args->{type} < 1000
$object_class = 'Actor::NPC';
}
else {
$object_class = 'Actor::Monster';
}
}
So... is there a direct way to determine within openkore structure ...
Code: Select all
if ($jobs_lut{$args->{type}}) {
unless ($args->{type} > 6000 && $args->{MONSTERS NAME VS A DATABASE OF MONSTER NAMES?}) {
$object_class = 'Actor::Monster';
} elseif ($args->{type} > 6000) {
$object_class = 'Actor::Player';
} else {
$object_class = 'Actor::Slave';
}
Re: Old 2008_01_02a Monsters appear as PLAYERS
the packet is ok there is all needed info in there.
EF03 is -> 03EF -> 1007 -> Fabre.... the problem is in:
it is incorrect but i don't know how to fix this and cant find any guide i can understand(((
Code: Select all
<< Received packet: 0078 - actor_display (actor exists) [55 bytes] Apr 17 16:01:17 2017
0> 78 00 00 06 59 97 06 90 01 00 00 00 00 00 00 EF x...Y...........
16> 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
32> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3D ...............=
48> CA 60 00 00 00 02 00 .`.....
Code: Select all
'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 xSize ySize act lv)]],
Please use pin function for uploading your file contents!
Re: Old 2008_01_02a Monsters appear as PLAYERS
I fixed that.
Change Recieve/Sakexe_2007_11_06a.pm to :
Change Recieve/Sakexe_2007_11_06a.pm to :
Code: Select all
#########################################################################
# OpenKore - Packet Receiveing
# This module contains functions for Receiveing packets 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.
#
# $Revision: 6687 $
# $Id: kRO.pm 6687 2009-04-19 19:04:25Z technologyguild $
########################################################################
# Korea (kRO)
# The majority of private servers use eAthena, this is a clone of kRO
package Network::Receive::kRO::Sakexe_2007_11_06a;
use strict;
use base qw(Network::Receive::kRO::Sakexe_2007_10_23a);
use Globals qw(%config $char);
use Misc qw(configModify);
sub new {
my ($class) = @_;
my $self = $class->SUPER::new(@_);
my %packets = (
#'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 xSize ySize 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 xSize ySize)]], #spawning (eA does not send this for players) # 42
#'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 xSize ySize lv)]], # walking # 65 # TODO: figure out what eA does here (shield is in GEmblemVer?): # v5 => v2 V v
'0078' => ['actor_exists', 'x a4 v14 a4 a2 v2 C2 a3 C3 v', [qw(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)]],
'007C' => ['actor_connected', 'x a4 v14 C2 a3 C2', [qw(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)]],
'022C' => ['actor_moved', 'x a4 v3 V v5 V v5 a4 a2 v V C2 a6 C2 v', [qw(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)]],
'029B' => ['mercenary_init', 'a4 v8 Z24 v V5 v V2 v', [qw(ID atk matk hit critical def mdef flee aspd name level hp hp_max sp sp_max contract_end faith summons kills attack_range)]], # 80
);
foreach my $switch (keys %packets) {
$self->{packet_list}{$switch} = $packets{$switch};
}
return $self;
}
# 029B
sub mercenary_init { # attack_range param was added
my ($self, $args) = @_;
$self->SUPER::mercenary_init($args);
my $slave = $char->{mercenary};
# TODO: we do this for homunculus, mercenary and our char... make 1 function and pass actor and attack_range?
if ($config{mercenary_attackDistanceAuto} && $config{attackDistance} != $slave->{attack_range}) {
message TF("Autodetected attackDistance for mercenary = %s\n", $slave->{attack_range}), "success";
configModify('mercenary_attackDistance', $slave->{attack_range}, 1);
configModify('mercenary_attackMaxDistance', $slave->{attack_range}, 1);
}
}
=pod
//2007-11-06aSakexe
0x0078,55
0x007c,42
0x022c,65
0x029b,80
=cut
1;
Please use pin function for uploading your file contents!
Re: recv packet problem
http://forums.openkore.com/viewtopic.php?f=56&t=49526
Now instead of compare pets as monster, it's doing at that way we've saw here. I believe !
The real problem here is that the object_type it's equal to 0!
I believe that should be exists some comparison with serverType date using object_type !
I believe too that should be a second way to compare. I'll think
$args->{type} has not common with monster ID. Not need to check inside monster database.
$args->{type} never will be more than 1000. Because it's not monster ID.
I don't know why it's reading monster as player. Cause no one func match with this case.
Mortimal : Please, post the values of
$args->{type} (check before if it's defined)
$args->{object_type}
$args->{hair_style} please.
I don't know how to solve by another way !
The best way is fork from roBrowser :
I believe that should fix this packet pack format.
Tomorrow i'll try to provide a general fix for this kind.
I believe that the $args->{type} should be verified if is < 45 ! If is, declare as monster.
Now instead of compare pets as monster, it's doing at that way we've saw here. I believe !
The real problem here is that the object_type it's equal to 0!
I believe that should be exists some comparison with serverType date using object_type !
I believe too that should be a second way to compare. I'll think
$args->{type} has not common with monster ID. Not need to check inside monster database.
$args->{type} never will be more than 1000. Because it's not monster ID.
I don't know why it's reading monster as player. Cause no one func match with this case.
Mortimal : Please, post the values of
$args->{type} (check before if it's defined)
$args->{object_type}
$args->{hair_style} please.
I don't know how to solve by another way !
The best way is fork from roBrowser :
Code: Select all
PACKET.ZC.NOTIFY_STANDENTRY_NPC = function PACKET_ZC_NOTIFY_STANDENTRY_NPC(fp, end) {
this.objecttype = fp.readUChar();
this.GID = fp.readULong();
this.speed = fp.readShort();
this.bodyState = fp.readShort();
this.healthState = fp.readShort();
this.effectState = fp.readShort();
this.head = fp.readShort();
this.weapon = fp.readShort();
this.accessory = fp.readShort();
this.job = fp.readShort();
this.shield = fp.readShort();
this.accessory2 = fp.readShort();
this.accessory3 = fp.readShort();
this.headpalette = fp.readShort();
this.bodypalette = fp.readShort();
this.headDir = fp.readShort();
this.isPKModeON = fp.readUChar();
this.sex = fp.readUChar();
this.PosDir = fp.readPos();
this.xSize = fp.readUChar();
this.ySize = fp.readUChar();
};
Code: Select all
var objecttype = (
122 job < 45 ? Entity.TYPE_PC :
123 job < 46 ? Entity.TYPE_WARP :
124 job < 1000 ? Entity.TYPE_NPC :
…
134 EntityAction.call(this);
135 }
136 }
137
138 // Invisible sprites
139 if (job === 111 || job === 139 || job === 45) {
140 this.files.body.spr = null;
Tomorrow i'll try to provide a general fix for this kind.
I believe that the $args->{type} should be verified if is < 45 ! If is, declare as monster.
Learn rules