Yap, ini pertama kalinya gw post tentang openkore.
Setelah update episode lighthalzen, openkore gw muncul error :
- Packet Parser : Unknown Switch 099B
- Packet Parser : Unknown Switch 099F
- Packet Parser : Unknown Switch 08FF
Behind Story
Setelah keliling2 di forum openkore, banyak yg bilang ini recvpackets.txt nya harus di update
lokasi filenya ada di (Openkore\tables\idRO) atau (Openkore\tables\iRO)
gw download Recvpackets.txt terbaru di openkore.collectskin.com
tapi ternyata gak ngaruh, alias recvpackets.txt terbaru disitu juga belum sesuai dengan update idro.
setelah gw muter2, dapet info tentang extract recvpackets dari client ragexe.exe, harus download rotools, tapi ternyata caranya gagal juga.
akhirnya gw nemu informasi secara terpisah, semuanya berkat google.
Cara Fix
1. Buka recvpackets.txt , cek (ctrl+F) apa isinya udah ada ini, kalo belum ada tambahin :
099B 8 8 1
099F -1 22 1
08FF 24 24 1
2. Buka (openkore\src\Network\Receive\idRO.pm) atau iRO.pm tergantung kamu pake server yg mana. paling enak diedit pake notepad++ search aja di google software gratis. bisa juga pakai notepad biasa.
setelah
sub new {
my %packets = (
#tambahkan :
'08FF' => ['actor_status_active2', 'a4 v V4', [qw(ID type tick unknown1 unknown2 unknown3)]],
'099B' => ['map_property3', 'v a4', [qw(type info_table)]],
'099F' => ['area_spell_multiple2', 'v a*', [qw(len spellInfo)]],
)
3. Masih di dalam folder (network\receive\ ) buka file serverType0.txt
di dalam file itu tambahkan :
#08FF
sub actor_status_active2 {
my ($self, $args) = @_;
return unless Network::Receive::changeToInGameState();
my ($type, $ID, $tick, $unknown1, $unknown2, $unknown3) = @{$args}{qw(type ID tick unknown1 unknown2 unknown3)};
my $status = defined $statusHandle{$type} ? $statusHandle{$type} : "UNKNOWN_STATUS_$type";
$cart{type} = $unknown1 if ($type == 673 && defined $unknown1 && ($ID eq $accountID)); # for Cart active
$args->{skillName} = defined $statusName{$status} ? $statusName{$status} : $status;
($args->{actor} = Actor::get($ID))->setStatus($status, 1, $tick == 9999 ? undef : $tick, $args->{unknown1});
}
#099B
sub map_property3 {
my ($self, $args) = @_;
if($config{'status_mapType'}){
$char->setStatus(@$_) for map {[$_->[1], $args->{type} == $_->[0]]}
grep { $args->{type} == $_->[0] || $char->{statuses}{$_->[1]} }
map {[$_, defined $mapTypeHandle{$_} ? $mapTypeHandle{$_} : "UNKNOWN_MAPTYPE_$_"]}
0 .. List::Util::max $args->{type}, keys %mapTypeHandle;
}
if($config{'status_mapProperty'}){
if ($args->{info_table}) {
my @info_table = unpack 'C*', $args->{info_table};
$char->setStatus(@$_) for map {[
defined $mapPropertyInfoHandle{$_} ? $mapPropertyInfoHandle{$_} : "UNKNOWN_MAPPROPERTY_INFO_$_",
$info_table[$_],
]} 0 .. @info_table-1;
}
}
$pvp = {6 => 1, 8 => 2, 19 => 3}->{$args->{type}};
if ($pvp) {
Plugins::callHook('pvp_mode', {
pvp => $pvp # 1 PvP, 2 GvG, 3 Battleground
});
}
}
#099F
sub area_spell_multiple2 {
my ($self, $args) = @_;
# Area effect spells; including traps!
my $len = $args->{len} - 4;
my $spellInfo = $args->{spellInfo};
my $msg = "";
my $binID;
my ($ID, $sourceID, $x, $y, $type, $range, $fail);
for (my $i = 0; $i < $len; $i += 18) {
$msg = substr($spellInfo, $i, 18);
($ID, $sourceID, $x, $y, $type, $range, $fail) = unpack('a4 a4 v3 X2 C2', $msg);
if ($spells{$ID} && $spells{$ID}{'sourceID'} eq $sourceID) {
$binID = binFind(\@spellsID, $ID);
$binID = binAdd(\@spellsID, $ID) if ($binID eq "");
} else {
$binID = binAdd(\@spellsID, $ID);
}
$spells{$ID}{'sourceID'} = $sourceID;
$spells{$ID}{'pos'}{'x'} = $x;
$spells{$ID}{'pos'}{'y'} = $y;
$spells{$ID}{'pos_to'}{'x'} = $x;
$spells{$ID}{'pos_to'}{'y'} = $y;
$spells{$ID}{'binID'} = $binID;
$spells{$ID}{'type'} = $type;
if ($type == 0x81) {
message TF("%s opened Warp Portal on (%d, %d)\n", getActorName($sourceID), $x, $y), "skill";
}
debug "Area effect ".getSpellName($type)." ($binID) from ".getActorName($sourceID)." appeared on ($x, $y)\n", "skill", 2;
}
Plugins::callHook('packet_areaSpell', {
fail => $fail,
sourceID => $sourceID,
type => $type,
x => $x,
y => $y
});
yap akhirnya bot gw kembali lancar jaya.
oh ya, setelah update openkore, bot gw gak mau kill steal aka nyolong monster, exp perjam drop abis.
ini lah solusinya : buka openkore\src\misc.pm => CTRL+F cari sub checkMonsterCleanness
sebelumnya :
sub checkMonsterCleanness {
return 1 if (!$config{attackAuto});
my $ID = $_[0];
.
.
.
tambahkan return 1; menjadi :
sub checkMonsterCleanness {
return 1;
return 1 if (!$config{attackAuto});
my $ID = $_[0];
Selamat ber-bot Ria
*Tampilan notepad++
Sumber :
http://forums.openkore.com/viewtopic.php?f=55&t=11940&hilit=07f6&start=100http://forums.openkore.com/viewtopic.php?f=16&t=49693&start=10https://www.facebook.com/s19911213/posts/743348452347803