You should create a new serverType.
src/network/send/kRO/RagexeRE_2011_12_27a :
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_2011_12_27a;
use strict;
use base qw(Network::Send::kRO::RagexeRE_2011_12_20b);
use base qw(Network::Send);
use Network::Send ();
use Log qw(debug);
use Utils qw(getCoordString);
sub version { 25 }
sub new {
my ($class) = @_;
my $self = $class->SUPER::new(@_);
my %packets = (
'0891' => undef,
'0362' => ['actor_look_at', 'v C', [qw(head body)]],#5
'0438' => undef,
'0364' => ['skill_use_location', 'v4', [qw(lv skillID x y)]],#10
'0892' => undef,
'0369' => ['friend_request', 'a*', [qw(username)]],#26
#'0835' => undef,
'083C' => undef,
'0436' => ['skill_use', 'v2 a4', [qw(lv skillID targetID)]],#10
#'0362' => ['homunculus_command', 'v C', [qw(commandType, commandID)]],#5
'0437' => ['homunculus_command', 'v C', [qw(commandType, commandID)]],#5
#'0802' => ['party_join_request_by_name', 'Z24', [qw(partyName)]],#26
'035F' => undef,
'0838' => ['sync', 'V', [qw(time)]],#6
#'0364' => undef,
'0885' => ['storage_item_remove', 'v V', [qw(index amount)]],#8
#'08AD' => undef,
'0886' => ['actor_info_request', 'a4', [qw(ID)]],#6
'022D' => undef,
'0888' => ['item_drop', 'v2', [qw(index amount)]],#6
'0368' => undef,
'089B' => ['actor_name_request', 'a4', [qw(ID)]],#6
'089C' => ['storage_item_add', 'v V', [qw(index amount)]],
'07E4' => undef,
'08A2' => ['item_take', 'a4', [qw(ID)]],#6
#'0436' => undef,
#'0437' => undef,
'08A6' => ['character_move','a4', [qw(coordString)]],#5
'08A4' => undef,
'08A7' => ['map_login', 'a4 a4 a4 V C', [qw(accountID charID sessionID tick sex)]],#19
#'0369' => undef,
'08AD' => ['actor_action', 'a4 C', [qw(targetID type)]],
'0204' => ['master_login', 'V Z24 a16 C', [qw(version username password_salted_md5 master_version)]],
'0907' => ['item_to_favorite', 'v C', [qw(index flag)]],#5 TODO where 'flag'=0|1 (0 - move item to favorite tab, 1 - move back)
);
$self->{packet_list}{$_} = $packets{$_} for keys %packets;
my %handlers = qw(
actor_action 08AD
actor_info_request 0886
actor_look_at 0362
actor_name_request 089B
character_move 08A6
friend_request 0369
homunculus_command 0437
item_drop 0888
item_take 08A2
map_login 08A7
skill_use 0436
skill_use_location 0364
storage_item_remove 0885
storage_item_add 089C
sync 0838
);
$self->{packet_lut}{$_} = $handlers{$_} for keys %handlers;
$self;
}
sub sendMove {
my ($self, $x, $y) = @_;
$self->sendToServer($self->reconstruct({
switch => 'character_move',
coordString => getCoordString(int $x, int $y, 1),
}));
debug "Sent move to: $x, $y\n", "sendPacket", 2;
}
sub sendItemUse {
my ($self, $ID, $targetID) = @_;
my $msg = pack('v2 a4', 0x0439, $ID, $targetID);
$self->sendToServer($msg);
debug "Item Use: $ID\n", "sendPacket", 2;
}
sub sendSkillUseLocInfo {
my ($self, $ID, $lv, $x, $y, $moreinfo) = @_;
$self->sendToServer(pack('v5 Z80', 0x07EC, $lv, $ID, $x, $y, $moreinfo));
debug "Skill Use on Location: $ID, ($x, $y)\n", "sendPacket", 2;
}
1;
=cut
//2011-12-27aRagexeRE
0x01FD,15,repairitem,2
0x0369,26,friendslistadd,2
0x0437,5,hommenu,2:4
0x02C4,36,storagepassword,0
0x0288,-1,cashshopbuy,4:8
0x0802,26,partyinvite2,2
0x08A7,19,wanttoconnection,2:6:10:14:18
0x08AD,7,actionrequest,2:6
0x0436,10,useskilltoid,2:4:6
0x0439,8,useitem,2:4
0x0892,-1,itemlistwindowselected,2:4:8
0x0889,18,bookingregreq,2:4:6
0x0803,4
0x0804,14,bookingsearchreq,2:4:6:8:12
0x0805,-1
0x0806,2,bookingdelreq,0
0x0807,4
0x0808,14,bookingupdatereq,2
0x0809,50
0x080A,18
0x080B,6
0x035F,-1,reqopenbuyingstore,2:4:8:9:89
0x023B,2,reqclosebuyingstore,0
0x0811,6,reqclickbuyingstore,2
0x0365,-1,reqtradebuyingstore,2:4:8:12
0x08AC,-1,searchstoreinfo,2:4:5:9:13:14:15
0x0281,2,searchstoreinfonextpage,0
0x088B,12,searchstoreinfolistitemclick,2:6:10
0x08A6,5,walktoxy,2
0x0838,6,ticksend,2
0x0362,5,changedir,2:4
0x08A2,6,takeitem,2
0x0888,6,dropitem,2:4
0x089C,8,movetokafra,2:4
0x0885,8,movefromkafra,2:4
0x0364,10,useskilltopos,2:4:6:8
0x07EC,90,useskilltoposinfo,2:4:6:8:10
0x0886,6,getcharnamerequest,2
0x089B,6,solvecharname,2
0x0907,5,moveitem,2:4
0x0908,5
0x08D7,28,battlegroundreg,2:4 //Added to prevent disconnections
=pod
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::RagexeRE_2011_12_27a;
use strict;
use base qw(Network::Receive::kRO::RagexeRE_2011_12_20b);
1;
=pod
//2011-12-27aRagexeRE
0x01FD,15,repairitem,2
0x0369,26,friendslistadd,2
0x0437,5,hommenu,2:4
0x02C4,36,storagepassword,0
0x0288,-1,cashshopbuy,4:8
0x0802,26,partyinvite2,2
0x08A7,19,wanttoconnection,2:6:10:14:18
0x08AD,7,actionrequest,2:6
0x0436,10,useskilltoid,2:4:6
0x0439,8,useitem,2:4
0x0892,-1,itemlistwindowselected,2:4:8
0x0889,18,bookingregreq,2:4:6
0x0803,4
0x0804,14,bookingsearchreq,2:4:6:8:12
0x0805,-1
0x0806,2,bookingdelreq,0
0x0807,4
0x0808,14,bookingupdatereq,2
0x0809,50
0x080A,18
0x080B,6
0x035F,-1,reqopenbuyingstore,2:4:8:9:89
0x023B,2,reqclosebuyingstore,0
0x0811,6,reqclickbuyingstore,2
0x0365,-1,reqtradebuyingstore,2:4:8:12
0x08AC,-1,searchstoreinfo,2:4:5:9:13:14:15
0x0281,2,searchstoreinfonextpage,0
0x088B,12,searchstoreinfolistitemclick,2:6:10
0x08A6,5,walktoxy,2
0x0838,6,ticksend,2
0x0362,5,changedir,2:4
0x08A2,6,takeitem,2
0x0888,6,dropitem,2:4
0x089C,8,movetokafra,2:4
0x0885,8,movefromkafra,2:4
0x0364,10,useskilltopos,2:4:6:8
0x07EC,90,useskilltoposinfo,2:4:6:8:10
0x0886,6,getcharnamerequest,2
0x089B,6,solvecharname,2
0x0907,5,moveitem,2:4
0x0908,5
0x08D7,28,battlegroundreg,2:4 //Added to prevent disconnections
=cut
http://pastebin.com/tH40zx6C
1 day until expires.
It should be working. I can walk, talk, use item normally.
Sorry if i forgot something.