Нашел на просторах интернета Пассивный Споил под сборку ПВ. Помогите переделать под нашу сборку.
Java:
package calypso;

import net.sf.l2j.Config;
import net.sf.l2j.gameserver.cache.Static;
import net.sf.l2j.gameserver.model.L2Attackable;
import net.sf.l2j.gameserver.model.L2Attackable.RewardItem;
import net.sf.l2j.gameserver.model.L2Character;
import net.sf.l2j.gameserver.model.L2ItemInstance;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
import net.sf.l2j.gameserver.model.actor.player.CharListenerList;
import net.sf.l2j.gameserver.model.actor.player.OnKillListener;
import net.sf.l2j.gameserver.network.SystemMessageId;
import net.sf.l2j.gameserver.network.serverpackets.InventoryUpdate;
import net.sf.l2j.gameserver.network.serverpackets.ItemList;
import net.sf.l2j.gameserver.network.serverpackets.SystemMessage;

/**
 *
 * @author CalypsoToolz
 *
 */

public class AutoSpoil implements OnKillListener {

    // итем который должен быть в сумке
    private static final int ITEM = 4037;

    public static void main(String[] args) {
        CharListenerList.addGlobal(new AutoSpoil());
    }

    @Override
    public void onKill(L2Character killer, L2Character target) {
        if (killer.getPlayer() != null && target instanceof L2Attackable) {
            L2PcInstance player = killer.getPlayer();
            L2Attackable mob = (L2Attackable) target;
            if(mob.isSpoil())
                return;
            
            if (player.getItemCount(ITEM) > 0) {
                mob.setSpoil(true);
                mob.setIsSpoiledBy(killer.getObjectId());
                player.sendPacket(Static.SPOIL_SUCCESS);
                mob.makeSweepDrop(player);
                
                RewardItem[] items = null;
                boolean isSweeping = false;
                synchronized (target) {
                    if (mob.isSweepActive()) {
                        items = mob.takeSweep();
                        isSweeping = true;
                    }
                }
                if (!isSweeping || items == null || items.length == 0)
                    return;

                InventoryUpdate iu = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate();
                boolean send = false;

                for (RewardItem ritem : items) {
                    if (player.isInParty())
                        player.getParty().distributeItem(player, ritem, true, mob);
                    else {
                        L2ItemInstance item = player.getInventory().addItem("Sweep", ritem.getItemId(),
                                ritem.getCount(), player, target);
                        if (iu != null)
                            iu.addItem(item);
                        send = true;

                        SystemMessage smsg;
                        if (ritem.getCount() > 1)
                            smsg = SystemMessage.id(SystemMessageId.EARNED_S2_S1_S).addItemName(ritem.getItemId())
                                    .addNumber(ritem.getCount());
                        else
                            smsg = SystemMessage.id(SystemMessageId.EARNED_ITEM).addItemName(ritem.getItemId());

                        player.sendPacket(smsg);
                    }
                }
                if (send) {
                    if (iu != null)
                        player.sendPacket(iu);
                    else
                        player.sendPacket(new ItemList(player, false));
                }
                mob.endDecayTask();
            }
        }
    }
}
 
Back
Top