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.
########################################################################
# Korea (kRO)
# The majority of private servers use eAthena, this is a clone of kRO
package Network::Receive::kRO::RagexeRE_2013_12_23;
use strict;
use base qw(Network::Receive::kRO::RagexeRE_2013_08_07a);
sub new {
my ($class) = @_;
my $self = $class->SUPER::new(@_);
my %packets = (
'09CA' => ['area_spell_multiple3', 'v a*', [qw(len spellInfo)]], # -1
'09CB' => ['skill_used_no_damage', 'v2 v a4 a4 C', [qw(skillID lv amount targetID sourceID success)]], # 17
#'09CB' => ['skill_used_no_damage', 'v v x2 a4 a4 C', [qw(skillID amount targetID sourceID success)]], #16
'09DB' => ['actor_moved', 'v C a4 v3 V v5 a4 v6 a4 a2 v V C2 a6 C2 v2 a9 Z*', [qw(len object_type ID walk_speed opt1 opt2 option type hair_style weapon shield lowhead tick tophead midhead hair_color clothes_color head_dir costume guildID emblemID manner opt3 stance sex coords xSize ySize lv font opt4 name)]], # and this
'09DD' => ['actor_exists', 'v C a4 v3 V v11 a4 a2 v V C2 a3 C3 v2 a9 Z*', [qw(len object_type ID walk_speed opt1 opt2 option type hair_style weapon shield lowhead tophead midhead hair_color clothes_color head_dir costume guildID emblemID manner opt3 stance sex coords xSize ySize act lv font opt4 name)]],
'0086' => ['actor_display', 'a4 a6 V', [qw(ID coords tick)]],
'09DC' => ['actor_connected', 'v C a4 v3 V v11 a4 a2 v V C2 a3 C2 v2 a9 Z*', [qw(len object_type ID walk_speed opt1 opt2 option type hair_style weapon shield lowhead tophead midhead hair_color clothes_color head_dir costume guildID emblemID manner opt3 stance sex coords xSize ySize lv font opt4 name)]], #this
);
foreach my $switch (keys %packets) {
$self->{packet_list}{$switch} = $packets{$switch};
}
my %handlers = qw(
actor_connected 09DC
actor_moved 09DB
actor_exists 09DD
actor_display 0086
);
foreach my $switch (keys %packets) { $self->{packet_list}{$switch} = $packets{$switch}; }
return $self;
}
1;
=pod
//2013-08-07Ragexe (Shakto)
//packet_ver: 45
0x0369,7,actionrequest,2:6
0x083C,10,useskilltoid,2:4:6
0x0437,5,walktoxy,2
0x035F,6,ticksend,2
0x0202,5,changedir,2:4
0x07E4,6,takeitem,2
0x0362,6,dropitem,2:4
0x07EC,8,movetokafra,2:4
0x0364,8,movefromkafra,2:4
0x0438,10,useskilltopos,2:4:6:8
0x0366,90,useskilltoposinfo,2:4:6:8:10
0x096A,6,getcharnamerequest,2
0x0368,6,solvecharname,2
0x0838,12,searchstoreinfolistitemclick,2:6:10
0x0835,2,searchstoreinfonextpage,0
0x0819,-1,searchstoreinfo,2:4:5:9:13:14:15
0x0811,-1,reqtradebuyingstore,2:4:8:12
0x0360,6,reqclickbuyingstore,2
0x0817,2,reqclosebuyingstore,0
0x0815,-1,reqopenbuyingstore,2:4:8:9:89
0x0365,18,bookingregreq,2:4:6
// 0x363,8 CZ_JOIN_BATTLE_FIELD
0x0281,-1,itemlistwindowselected,2:4:8:12
0x022D,19,wanttoconnection,2:6:10:14:18
0x0802,26,partyinvite2,2
// 0x436,4 CZ_GANGSI_RANK
0x023B,26,friendslistadd,2
0x0361,5,hommenu,2:4
0x0887,36,storagepassword,2:4:20
=cut
Code: Select all
#########################################################################
# OpenKore - Packet sending
# This module contains functions for sending 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.
########################################################################
package Network::Send::kRO::RagexeRE_2013_12_23;
use strict;
use base qw(Network::Send::kRO::RagexeRE_2013_08_07a);
sub new {
my ($class) = @_;
my $self = $class->SUPER::new(@_);
my %packets = (
'0202' => ['actor_look_at', 'v C', [qw(head body)]],
'0811' => ['buy_bulk_buyer', 'a4 a4 a*', [qw(buyerID buyingStoreID itemInfo)]], #Buying store
'023B' => ['friend_request', 'a*', [qw(username)]],# len 26
'0361' => ['homunculus_command', 'v C', [qw(commandType, commandID)]],
'022D' => ['map_login', 'a4 a4 a4 V C', [qw(accountID charID sessionID tick sex)]],
'08A4' => ['storage_password'],
);
$self->{packet_list}{$_} = $packets{$_} for keys %packets;
my %handlers = qw(
actor_look_at 0202
buy_bulk_buyer 0811
friend_request 023B
homunculus_command 0361
map_login 022D
storage_password 08A4
);
while (my ($k, $v) = each %packets) { $handlers{$v->[0]} = $k}
$self->{packet_lut}{$_} = $handlers{$_} for keys %handlers;
# $self->cryptKeys(, , );
return $self;
}
1;