Senin, 04 Februari 2013

Openkore Auto Feed Feature

[Update]
Openkore Sekarang dapat melakukan auto feed tanpa menggunakan plugins.

Untuk yang eman ato mikir sayang settingan di config tenang yg diupdate hanya src dan config terbarunya :

1.Silahkan download http://collectskin.com/openkore/openkore.zip
2.Timpa di folder Openkore mu
3.Download http://collectskin.com/openkore/confpack.zip
atau hanya sebagian



# Turn on/off pet autofeeding

pet_autoFeed 1

# Feed pet when meet the hunger value

pet_hunger 25

# Return pet when meet the hunger value

pet_return 20

4.Selesai

Minggu, 06 Januari 2013

cmdOnLogin Plugins

Plugin cmdOnLogin :

Melakukan perintah / command pada saat pertama kali login, sangat simple dan banyak gunanya contoh pada PS (Private Server) yg biasa menggunakan command / perintah pada awal login

Fungsi :
Plugins ini bisa digunakan untuk private server
'c @autoloot'
untuk pm (Private Message) pada master pada saat awal login dan lain sebagainya

Cara Penggunaan :
[CONFIG]
cmdOnLogin c @autoloot
atau bisa juga dengan multiple command seperti ini
cmdOnLogin c @alootid Khukri;;c @alootid Elunium

Instalasi :
1. Masuk ke folder Openkore
2. Buat folder plugins 
3. Buat file text document
4. Rename menjadi cmdOnLogin.pl
5. klik kanan cmdOnLogin.pl -> Open With -> Wordpad
6. Masukkan ini
package cmdOnLogin;

use strict;
use Globals;
my $done;
Plugins::register('cmdOnLogin', 'automatically do a command on login', \&onUnload);
my $hooks = Plugins::addHooks(
				['Network::serverConnect/char', \&onConnect],
				['AI_pre', \&onAI]
);
sub onAI {
	if (!$done && $config{cmdOnLogin}) {
		Commands::run($config{cmdOnLogin});
		$done = 1;
	}
}
sub onConnect {
	undef $done;
}
sub onUnload {
	Plugins::delHooks($hooks);
}
return 1;
 
7. Simpan dan selesai

Selasa, 01 Januari 2013

Cara Setting useSelf_skill

pada config terdapat suatu opsi untuk menyetting skill untuk party mereka secara otomatis berikut tutorial dan penjelasannya


[Config]

useself_skill Nama Skil {
    dist   
#Ket :Jarak dari karakter ke target isi berapa kotak antara karakter ke target (15,14,13,12) kosong untuk auto detect
    equip
Ket : skill dapat digunakan jika karakter memakai equip ini
Diisi dengan : Nama Equip (Shoes)
    isSelfSkill
Ket : apakah skill ini merupakan skill untuk diri sendiri
Diisi dengan : 1 = untuk skill diri sendiri 0 = untuk bukan (cth Angelus)
    lvl
Ket : level skill
Diisi dengan : Level Skill
    maxCastTime
Ket : merupakan berapa lama waktu cast time
Diisi dengan : berapa detik cast time karakter
    minCastTime
Ket : merupakan berapa cepat waktu cast time
Diisi dengan : berapa detik cast time karakter
    noSmartHeal
Ket : 1 = untuk heal sesuai level 0 =  untuk heal sesuai dengan kebutuhan hp target
Diisi dengan : 1 dan 0
    aggressives
Ket : merupakan monster agresif yang menyerang
Diisi dengan : berapa banyak monster yang menyerang karakter agar dpt menggunakan skill
    defendMonsters
Ket : menggunakan skill jika kita sedang bertahan oleh monster ini
Diisi dengan : Nama Monster
    homunculus
Ket : nama homunculus
Diisi dengan : nama homunculus
    homunculus_dead
Ket : menggunakan skill jika 1 = homunculus mati 0 = tidak mati
Diisi dengan : 0 atau 1
    homunculus_hp
Ket : menggunakan skill jika hp homnculus berada pada ini
Diisi dengan : berapa persen hp homunculus
    homunculus_sp
Ket : menggunakan skill jika sp homunculus berada pada ini
Diisi dengan : berapa persen sp homunculus
    hp
Ket : menggunakan skill jika hp berada pada ini
Diisi dengan : berapa persen hp karaktermu
    inCart
Ket : menggunakan skill jika ada item bernama ini pada cart
Diisi dengan : nama item di cart
    inInventory
Ket : menggunakan skill jika ada item bernama ini di inventory
Diisi dengan : nama item di invent
    inLockOnly
Ket : menggunakan skill jika hanya berada di map ini
Diisi dengan : lockMap mu
    inMap
Ket : menggunakan skill jika berada pada map tertentu
Diisi dengan : nama map
    manualAI
Ket : untuk manual AI
Diisi dengan : 0 atau 1
    monsters
Ket : menggunakan skill jika terdapat monster bernama ini
Diisi dengan : nama monster
    notInMap
Ket : menggunakan skill jika tidak berada pada map ini
Diisi dengan : nama map
    notInTown
Ket : menggunakan skill jika 1 = tidak di kota 0 = kota maupun field
Diisi dengan : 1 atau 0
    notMonsters
Ket : menggunakan skill jika tidak terdapat monster ini
Diisi dengan : nama monster
    notOnAction
Ket : menggunakan skill jika 1 = tidak sedang melakukan action 0 = sedang melakukan action maupun tidak
Diisi dengan : 1 atau 0
    notWhileSitting
Ket : menggunakan skill jika 1 = tidak dengan duduk 0 = duduk maupun tidak
Diisi dengan : 1 atau 0
    onAction
Ket : menggunakan skill jika pada saat menggunakan action ini
Diisi dengan : nama action
    sp
Ket : menggunakan skill jika sp anda berada pada ini
Diisi dengan : berapa persen sp anda
    spirit
Ket : menggunakan skill jika mempunyai spirit sebanyak ini
Diisi dengan : berapa spirit yang ada pada anda
    stopWhenHit
Ket : menggunakan skill jika 1 = sedang tidak menyerang 0 = tidak atau sedang menyerang
Diisi dengan : 1 atau 2
    timeout
Ket : menggunakan skill jika sudah beberapa detik dari ini
Diisi dengan : jumlah detik
    whenEquipped
Ket : menggunakan skill pada saat mengequip benda ini
Diisi dengan : nama equip
    whenFollowing
Ket : menggunakan skill jika 1 = mengikuti seseorang 0 =tidak maupun mengikuti seseorang
Diisi dengan : 1 atau 0
    whenGround
Ket : menggunakan skill jika skill ini berada pada sekitar karaktermu
Diisi dengan : nama skill (cth poem of bragi)
    whenIdle
Ket : menggunakan skill jika 1 = tidak melakukan apapun 0 = tidak maupun melakukan apapun
Diisi dengan : 1 atau 0
    whenNotEquipped
Ket : menggunakan skill ketika tidak menggunakan equip ini
Diisi dengan : nama equip
    whenNotGround
Ket : menggunakan skill ketika tidak pada skill ini
Diisi dengan : nama skill
    whenStatusActive
Ket : menggunakan skill jika karaktermu berstatus ini
Diisi dengan : nama statusmu
    whenStatusInactive
Ket : menggunakan skill jika karaktermu tidak berstatus ini
Diisi dengan : nama status
    zeny}

Cara Setting UseSelf_item

pada config terdapat suatu opsi untuk menyetting item untuk digunakan secara otomatis berikut penjelasan dan tutorialnya

[Config]

useSelf_item Nama Skill {
    aggressives
Ket : merupakan monster agresif yang menyerang
Diisi dengan : berapa banyak monster yang menyerang karakter agar dpt menggunakan skill
    defendMonsters
Ket : menggunakan skill jika kita sedang bertahan oleh monster ini
Diisi dengan : Nama Monster
    homunculus
Ket : nama homunculus
Diisi dengan : nama homunculus
    homunculus_dead
Ket : menggunakan skill jika 1 = homunculus mati 0 = tidak mati
Diisi dengan : 0 atau 1
    homunculus_hp
Ket : menggunakan skill jika hp homnculus berada pada ini
Diisi dengan : berapa persen hp homunculus
    homunculus_sp
Ket : menggunakan skill jika sp homunculus berada pada ini
Diisi dengan : berapa persen sp homunculus
    hp
Ket : menggunakan skill jika hp berada pada ini
Diisi dengan : berapa persen hp karaktermu
    inCart
Ket : menggunakan skill jika ada item bernama ini pada cart
Diisi dengan : nama item di cart
    inInventory
Ket : menggunakan skill jika ada item bernama ini di inventory
Diisi dengan : nama item di invent
    inLockOnly
Ket : menggunakan skill jika hanya berada di map ini
Diisi dengan : lockMap mu
    inMap
Ket : menggunakan skill jika berada pada map tertentu
Diisi dengan : nama map
    manualAI
Ket : untuk manual AI
Diisi dengan : 0 atau 1
    monsters
Ket : menggunakan skill jika terdapat monster bernama ini
Diisi dengan : nama monster
    notInMap
Ket : menggunakan skill jika tidak berada pada map ini
Diisi dengan : nama map
    notInTown
Ket : menggunakan skill jika 1 = tidak di kota 0 = kota maupun field
Diisi dengan : 1 atau 0
    notMonsters
Ket : menggunakan skill jika tidak terdapat monster ini
Diisi dengan : nama monster
    notOnAction
Ket : menggunakan skill jika 1 = tidak sedang melakukan action 0 = sedang melakukan action maupun tidak
Diisi dengan : 1 atau 0
    notWhileSitting
Ket : menggunakan skill jika 1 = tidak dengan duduk 0 = duduk maupun tidak
Diisi dengan : 1 atau 0
    onAction
Ket : menggunakan skill jika pada saat menggunakan action ini
Diisi dengan : nama action
    sp
Ket : menggunakan skill jika sp anda berada pada ini
Diisi dengan : berapa persen sp anda
    spirit
Ket : menggunakan skill jika mempunyai spirit sebanyak ini
Diisi dengan : berapa spirit yang ada pada anda
    stopWhenHit
Ket : menggunakan skill jika 1 = sedang tidak menyerang 0 = tidak atau sedang menyerang
Diisi dengan : 1 atau 2
    timeout
Ket : menggunakan skill jika sudah beberapa detik dari ini
Diisi dengan : jumlah detik
    whenEquipped
Ket : menggunakan skill pada saat mengequip benda ini
Diisi dengan : nama equip
    whenFollowing
Ket : menggunakan skill jika 1 = mengikuti seseorang 0 =tidak maupun mengikuti seseorang
Diisi dengan : 1 atau 0
    whenGround
Ket : menggunakan skill jika skill ini berada pada sekitar karaktermu
Diisi dengan : nama skill (cth poem of bragi)
    whenIdle
Ket : menggunakan skill jika 1 = tidak melakukan apapun 0 = tidak maupun melakukan apapun
Diisi dengan : 1 atau 0
    whenNotEquipped
Ket : menggunakan skill ketika tidak menggunakan equip ini
Diisi dengan : nama equip
    whenNotGround
Ket : menggunakan skill ketika tidak pada skill ini
Diisi dengan : nama skill
    whenStatusActive
Ket : menggunakan skill jika karaktermu berstatus ini
Diisi dengan : nama statusmu
    whenStatusInactive
Ket : menggunakan skill jika karaktermu tidak berstatus ini
Diisi dengan : nama status
    zeny
Ket : menggunakan skill jika zeny berada pada
Diisi dengan : jumlah zeny mu
}

Cara Setting attackSkillSlot

pada config terdapat suatu opsi untuk menyetting skill untuk menyerang pada monster mereka secara otomatis berikut tutorial dan penjelasannya

[Config]

attackSkillSlot Nama Skil {
    dist   
#Ket :Jarak dari karakter ke target isi berapa kotak antara karakter ke target (15,14,13,12) kosong untuk auto detect
    equip
Ket : skill dapat digunakan jika karakter memakai equip ini
Diisi dengan : Nama Equip (Shoes)
    isSelfSkill
Ket : apakah skill ini merupakan skill untuk diri sendiri
Diisi dengan : 1 = untuk skill diri sendiri 0 = untuk bukan (cth Angelus)
    lvl
Ket : level skill
Diisi dengan : Level Skill
    maxCastTime
Ket : merupakan berapa lama waktu cast time
Diisi dengan : berapa detik cast time karakter
    minCastTime
Ket : merupakan berapa cepat waktu cast time
Diisi dengan : berapa detik cast time karakter
    noSmartHeal
Ket : 1 = untuk heal sesuai level 0 =  untuk heal sesuai dengan kebutuhan hp target
Diisi dengan : 1 dan 0
    aggressives
Ket : merupakan monster agresif yang menyerang
Diisi dengan : berapa banyak monster yang menyerang karakter agar dpt menggunakan skill
    defendMonsters
Ket : menggunakan skill jika kita sedang bertahan oleh monster ini
Diisi dengan : Nama Monster
    homunculus
Ket : nama homunculus
Diisi dengan : nama homunculus
    homunculus_dead
Ket : menggunakan skill jika 1 = homunculus mati 0 = tidak mati
Diisi dengan : 0 atau 1
    homunculus_hp
Ket : menggunakan skill jika hp homnculus berada pada ini
Diisi dengan : berapa persen hp homunculus
    homunculus_sp
Ket : menggunakan skill jika sp homunculus berada pada ini
Diisi dengan : berapa persen sp homunculus
    hp
Ket : menggunakan skill jika hp berada pada ini
Diisi dengan : berapa persen hp karaktermu
    inCart
Ket : menggunakan skill jika ada item bernama ini pada cart
Diisi dengan : nama item di cart
    inInventory
Ket : menggunakan skill jika ada item bernama ini di inventory
Diisi dengan : nama item di invent
    inLockOnly
Ket : menggunakan skill jika hanya berada di map ini
Diisi dengan : lockMap mu
    inMap
Ket : menggunakan skill jika berada pada map tertentu
Diisi dengan : nama map
    manualAI
Ket : untuk manual AI
Diisi dengan : 0 atau 1
    monsters
Ket : menggunakan skill jika terdapat monster bernama ini
Diisi dengan : nama monster
    notInMap
Ket : menggunakan skill jika tidak berada pada map ini
Diisi dengan : nama map
    notInTown
Ket : menggunakan skill jika 1 = tidak di kota 0 = kota maupun field
Diisi dengan : 1 atau 0
    notMonsters
Ket : menggunakan skill jika tidak terdapat monster ini
Diisi dengan : nama monster
    notOnAction
Ket : menggunakan skill jika 1 = tidak sedang melakukan action 0 = sedang melakukan action maupun tidak
Diisi dengan : 1 atau 0
    notWhileSitting
Ket : menggunakan skill jika 1 = tidak dengan duduk 0 = duduk maupun tidak
Diisi dengan : 1 atau 0
    onAction
Ket : menggunakan skill jika pada saat menggunakan action ini
Diisi dengan : nama action
    sp
Ket : menggunakan skill jika sp anda berada pada ini
Diisi dengan : berapa persen sp anda
    spirit
Ket : menggunakan skill jika mempunyai spirit sebanyak ini
Diisi dengan : berapa spirit yang ada pada anda
    stopWhenHit
Ket : menggunakan skill jika 1 = sedang tidak menyerang 0 = tidak atau sedang menyerang
Diisi dengan : 1 atau 2
    timeout
Ket : menggunakan skill jika sudah beberapa detik dari ini
Diisi dengan : jumlah detik
    whenEquipped
Ket : menggunakan skill pada saat mengequip benda ini
Diisi dengan : nama equip
    whenFollowing
Ket : menggunakan skill jika 1 = mengikuti seseorang 0 =tidak maupun mengikuti seseorang
Diisi dengan : 1 atau 0
    whenGround
Ket : menggunakan skill jika skill ini berada pada sekitar karaktermu
Diisi dengan : nama skill (cth poem of bragi)
    whenIdle
Ket : menggunakan skill jika 1 = tidak melakukan apapun 0 = tidak maupun melakukan apapun
Diisi dengan : 1 atau 0
    whenNotEquipped
Ket : menggunakan skill ketika tidak menggunakan equip ini
Diisi dengan : nama equip
    whenNotGround
Ket : menggunakan skill ketika tidak pada skill ini
Diisi dengan : nama skill
    whenStatusActive
Ket : menggunakan skill jika karaktermu berstatus ini
Diisi dengan : nama statusmu
    whenStatusInactive
Ket : menggunakan skill jika karaktermu tidak berstatus ini
Diisi dengan : nama status
    zeny
Ket : menggunakan skill jika zeny berada pada
Diisi dengan : jumlah zeny mu
}

Cara Setting PartySkill

pada config terdapat suatu opsi untuk menyetting skill untuk party mereka secara otomatis berikut tutorial dan penjelasannya

[Config]

partySkill Nama Skil {
    dist   
#Ket :Jarak dari karakter ke target isi berapa kotak antara karakter ke target (15,14,13,12) kosong untuk auto detect
    equip
Ket : skill dapat digunakan jika karakter memakai equip ini
Diisi dengan : Nama Equip (Shoes)
    isSelfSkill
Ket : apakah skill ini merupakan skill untuk diri sendiri
Diisi dengan : 1 = untuk skill diri sendiri 0 = untuk bukan (cth Angelus)
    lvl
Ket : level skill
Diisi dengan : Level Skill
    maxCastTime
Ket : merupakan berapa lama waktu cast time
Diisi dengan : berapa detik cast time karakter
    minCastTime
Ket : merupakan berapa cepat waktu cast time
Diisi dengan : berapa detik cast time karakter
    noSmartHeal
Ket : 1 = untuk heal sesuai level 0 =  untuk heal sesuai dengan kebutuhan hp target
Diisi dengan : 1 dan 0
    aggressives
Ket : merupakan monster agresif yang menyerang
Diisi dengan : berapa banyak monster yang menyerang karakter agar dpt menggunakan skill
    defendMonsters
Ket : menggunakan skill jika kita sedang bertahan oleh monster ini
Diisi dengan : Nama Monster
    homunculus
Ket : nama homunculus
Diisi dengan : nama homunculus
    homunculus_dead
Ket : menggunakan skill jika 1 = homunculus mati 0 = tidak mati
Diisi dengan : 0 atau 1
    homunculus_hp
Ket : menggunakan skill jika hp homnculus berada pada ini
Diisi dengan : berapa persen hp homunculus
    homunculus_sp
Ket : menggunakan skill jika sp homunculus berada pada ini
Diisi dengan : berapa persen sp homunculus
    hp
Ket : menggunakan skill jika hp berada pada ini
Diisi dengan : berapa persen hp karaktermu
    inCart
Ket : menggunakan skill jika ada item bernama ini pada cart
Diisi dengan : nama item di cart
    inInventory
Ket : menggunakan skill jika ada item bernama ini di inventory
Diisi dengan : nama item di invent
    inLockOnly
Ket : menggunakan skill jika hanya berada di map ini
Diisi dengan : lockMap mu
    inMap
Ket : menggunakan skill jika berada pada map tertentu
Diisi dengan : nama map
    manualAI
Ket : untuk manual AI
Diisi dengan : 0 atau 1
    monsters
Ket : menggunakan skill jika terdapat monster bernama ini
Diisi dengan : nama monster
    notInMap
Ket : menggunakan skill jika tidak berada pada map ini
Diisi dengan : nama map
    notInTown
Ket : menggunakan skill jika 1 = tidak di kota 0 = kota maupun field
Diisi dengan : 1 atau 0
    notMonsters
Ket : menggunakan skill jika tidak terdapat monster ini
Diisi dengan : nama monster
    notOnAction
Ket : menggunakan skill jika 1 = tidak sedang melakukan action 0 = sedang melakukan action maupun tidak
Diisi dengan : 1 atau 0
    notWhileSitting
Ket : menggunakan skill jika 1 = tidak dengan duduk 0 = duduk maupun tidak
Diisi dengan : 1 atau 0
    onAction
Ket : menggunakan skill jika pada saat menggunakan action ini
Diisi dengan : nama action
    sp
Ket : menggunakan skill jika sp anda berada pada ini
Diisi dengan : berapa persen sp anda
    spirit
Ket : menggunakan skill jika mempunyai spirit sebanyak ini
Diisi dengan : berapa spirit yang ada pada anda
    stopWhenHit
Ket : menggunakan skill jika 1 = sedang tidak menyerang 0 = tidak atau sedang menyerang
Diisi dengan : 1 atau 2
    timeout
Ket : menggunakan skill jika sudah beberapa detik dari ini
Diisi dengan : jumlah detik
    whenEquipped
Ket : menggunakan skill pada saat mengequip benda ini
Diisi dengan : nama equip
    whenFollowing
Ket : menggunakan skill jika 1 = mengikuti seseorang 0 =tidak maupun mengikuti seseorang
Diisi dengan : 1 atau 0
    whenGround
Ket : menggunakan skill jika skill ini berada pada sekitar karaktermu
Diisi dengan : nama skill (cth poem of bragi)
    whenIdle
Ket : menggunakan skill jika 1 = tidak melakukan apapun 0 = tidak maupun melakukan apapun
Diisi dengan : 1 atau 0
    whenNotEquipped
Ket : menggunakan skill ketika tidak menggunakan equip ini
Diisi dengan : nama equip
    whenNotGround
Ket : menggunakan skill ketika tidak pada skill ini
Diisi dengan : nama skill
    whenStatusActive
Ket : menggunakan skill jika karaktermu berstatus ini
Diisi dengan : nama statusmu
    whenStatusInactive
Ket : menggunakan skill jika karaktermu tidak berstatus ini
Diisi dengan : nama status
    zeny
Ket : menggunakan skill jika zeny berada pada
Diisi dengan : jumlah zeny mu
    target_aggressives
Ket : jika target sedang dikeroyok monster sebanyak ini
Diisi dengan : jumlah monster
    target_dead
Ket : menggunakan skill jika 1= target sedang mati 0 = mati maupun hidup
Diisi dengan : 1 atau 0
    target_defendMonsters
Ket : menggunakan jika target sedang bertahan pada serangan monster ini
Diisi dengan : nama monster
    target_hp
Ket : menggunakan skill jika hp target berada pada ini
Diisi dengan : persen hp target
    target_isGuild
Ket : menggunakan skill jika target berada pada guild ini
Diisi dengan : nama guild
    target_isJob
Ket : menggunakan skill jika target berjob ini
Diisi dengan : nama job target
    target_isNotGuild
Ket : menggunakan skill jika target bukan guid ini
Diisi dengan : nama guild
    target_isNotJob
Ket : menggunakan skill jika job target bukan ini
Diisi dengan : nama job target
    target_monsters
Ket : menggunakan skill jika target dan monster ini ada
Diisi dengan : nama monster
    target_notWhileSitting
Ket  :menggunakan skill jika 1 = tidak duduk 0 = duduk maupun tidak 
Diisi dengan : 0 atau 1
    target_timeout
Ket : menggunakan skill jika sudah beberapa detik dari ini
Diisi dengan : berapa detik skill akan dilakukan
    target_whenGround
Ket : menggunakan skill jika target berada pada skill area ini
Diisi dengan : nama skill area
    target_whenNotGround
Ket : menggunakan skill jika tidak pada area skill
Diisi dengan : nama area skill
    target_whenShieldEquipped
Ket : menggunakan skill jika shield di equip ini
Diisi dengan : nama equip
    target_whenStatusActive
Ket : menggunakan skill jika target berstatus ini
Diisi dengan : nama status target
    target_whenStatusInactive
Ket : menggunakan skill jika target tidak berstatus ini
Diisi dengan : status target
    target_whenWeaponEquipped
Ket : menggunakan skill jika target mengequip ini
Diisi dengan : nama equip
}

Senin, 31 Desember 2012

Error Masalah Openkore Baru Inventory Is Empty

Pada Saat membuka openkore kita menekan command 'i' pada console bot tetapi disana selalu mengatakan 'Inventory is Empty' padahal pada saat On-Line dengan client inventory ada (ataupun dengan openkore yang ada pada versi lama), untuk menyelesaikannya ikuti tahap berikut ini :

1. Buka src/Network/Receive/serverType0.pm
2. Lalu tekan tombol [CTRL] + F (Search) Cari kata berikut sub inventory_items_stackable {
3. Nah pada
sub inventory_items_stackable {
    my ($self, $args) = @_;
    return unless changeToInGameState();

    for my $item ($self->parse_items_stackable($args)) {
        my ($local_item, $add);

        unless($local_item = $char->inventory->getByServerIndex($item->{index})) {
            $local_item = new Actor::Item();
            $add = 1;
        }

        for (keys %$item) {
            $local_item->{$_} = $item->{$_};
        }

        if (defined $char->{arrow} && $local_item->{index} == $char->{arrow}) {
            $local_item->{equipped} = 32768;
            $char->{equipment}{arrow} = $local_item;
        }
        $local_item->{name} = itemName($local_item);

        $char->inventory->add($local_item) if ($add);

        debug "Inventory: $local_item->{name} ($local_item->{invIndex}) x $local_item->{amount} - " .
            "$itemTypes_lut{$local_item->{type}}\n", "parseMsg";
        Plugins::callHook('packet_inventory', {index => $local_item->{invIndex}, item => $local_item});
    }
    $ai_v{'inventory_time'} = time + 1;
    $ai_v{'cart_time'} = time + 1;
}

Itulah yang harus diganti dengan berikut ini


sub inventory_items_stackable {
    my ($self, $args) = @_;
    return unless changeToInGameState();

    my $newmsg;
    $self->decrypt(\$newmsg, substr($args->{RAW_MSG}, 4));
    my $msg = substr($args->{RAW_MSG}, 0, 4).$newmsg;

    my $unpack = $self->items_stackable($args);

    for (my $i = 4; $i < $args->{RAW_MSG_SIZE}; $i += $unpack->{len}) {
        my ($item, $local_item, $add);

        @{$item}{@{$unpack->{keys}}} = unpack($unpack->{types}, substr($msg, $i, $unpack->{len}));

        unless($local_item = $char->inventory->getByServerIndex($item->{index})) {
            $local_item = new Actor::Item();
            $add = 1;
        }

        foreach (@{$unpack->{keys}}) {
            $local_item->{$_} = $item->{$_};
        }

        if (defined $char->{arrow} && $local_item->{index} == $char->{arrow}) {
            $local_item->{equipped} = 32768;
            $char->{equipment}{arrow} = $local_item;
        }
        $local_item->{name} = itemName($local_item);

        $char->inventory->add($local_item) if ($add);

        debug "Inventory: $local_item->{name} ($local_item->{invIndex}) x $local_item->{amount} - " .
            "$itemTypes_lut{$local_item->{type}}\n", "parseMsg";
        Plugins::callHook('packet_inventory', {index => $local_item->{invIndex}, item => $local_item});
    }
    $ai_v{'inventory_time'} = time + 1;
    $ai_v{'cart_time'} = time + 1;
}

YG MALES LIAT KODE DOWNLOAD : http://openkore.svn.sourceforge.net/viewvc/openkore/openkore/trunk/src/Network/Receive/ServerType0.pm?view=log