Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Не работает warehouse (не сдаються вещи)
#1
Не работает warehouse (не сдаються веши ) пишет you depositing too fast!
как быть в конфигах стоит True! сборка L2 openteam

Добавлено через 1 минуту
Interlude c6
Ответ
#2
raicer Написал:Не работает warehouse (не сдаються веши ) пишет you depositing too fast!
как быть в конфигах стоит True! сборка L2 openteam

Добавлено через 1 минуту
Interlude c6

[URL="http://trac.assembla.com/L2OpenInterlude/changeset/27"]Author:
MeGaPk
Message:

Пофиксили варехаусе (нужен тест!)[/URL]


Server/java/interlude/gameserver/network/clientpackets/SendWareHouseDepositList.java - открываешь и заменяешь всё на ->

Код:
package interlude.gameserver.network.clientpackets;

import interlude.Config;
import interlude.gameserver.model.ClanWarehouse;
import interlude.gameserver.model.L2ItemInstance;
import interlude.gameserver.model.actor.instance.L2FolkInstance;
import interlude.gameserver.model.actor.instance.L2NpcInstance;
import interlude.gameserver.model.actor.instance.L2PcInstance;
import interlude.gameserver.model.actor.instance.L2WarehouseInstance;
import interlude.gameserver.model.item.ItemContainer;
import interlude.gameserver.model.item.PcWarehouse;
import interlude.gameserver.network.SystemMessageId;
import interlude.gameserver.network.serverpackets.*;
import interlude.gameserver.templates.L2EtcItemType;
import interlude.gameserver.util.Util;

import java.util.logging.Logger;


public class SendWareHouseDepositList extends L2GameClientPacket

{

    private static final String _C__31_SENDWAREHOUSEDEPOSITLIST = "[C] 31 SendWareHouseDepositList";

    private final static Log _log = LogFactory.getLog(SendWareHouseDepositList.class.getName());



    private int _count;

    private int[] _items;

    

    @Override

    protected void readImpl()

    {

        _count = readD();

        

        // check packet list size

        if (_count < 0  || _count * 8 > _buf.remaining() || _count > Config.MAX_ITEM_IN_PACKET)

        {

            _count = 0;

        }

        

        _items = new int[_count * 2];

        for (int i=0; i < _count; i++)

        {

            int objectId = readD();

            _items[i * 2 + 0] = objectId;

            long cnt = readD();

            if (cnt > Integer.MAX_VALUE || cnt < 0)

            {

                _count = 0;

                _items = null;

                return;

            }

            _items[i * 2 + 1] = (int) cnt;

        }

    }



    @Override

    protected void runImpl()

    {

        L2PcInstance player = getClient().getActiveChar();

        if (player == null) return;

        ItemContainer warehouse = player.getActiveWarehouse();

        if (warehouse == null) return;

        L2FolkInstance manager = player.getLastFolkNPC();

        

        if (Config.SAFE_REBOOT && Config.SAFE_REBOOT_DISABLE_TRANSACTION && Shutdown.getCounterInstance() != null

                && Shutdown.getCounterInstance().getCountdown() <= Config.SAFE_REBOOT_TIME)

        {

            player.sendMessage("Transactions are not allowed during restart/shutdown.");

            sendPacket(new ActionFailed());

            return;

        }

        

        if ((manager == null || !player.isInsideRadius(manager, L2NpcInstance.INTERACTION_DISTANCE, false, false)) && !player.isGM()) return;

        

        if ((warehouse instanceof ClanWarehouse) && Config.GM_DISABLE_TRANSACTION && player.getAccessLevel() >= Config.GM_TRANSACTION_MIN && player.getAccessLevel() <= Config.GM_TRANSACTION_MAX)

        {

            player.sendMessage("Transactions are disabled for your access level.");

            sendPacket(new ActionFailed());

            return;

        }



        // Alt game - Karma punishment

        if (!Config.ALT_GAME_KARMA_PLAYER_CAN_USE_WAREHOUSE && player.getKarma() > 0) return;

        

        // Freight price from config or normal price per item slot (30)

        int fee = _count * 30;

        int currentAdena = player.getAdena();

        int slots = 0;



        for (int i = 0; i < _count; i++)

        {

            int objectId = _items[i * 2 + 0];

            int count = _items[i * 2 + 1];



            // Check validity of requested item

            L2ItemInstance item = player.checkItemManipulation(objectId, count, "deposit");

            if (item == null)

                {

                _log.warn("Error depositing a warehouse object for char "+player.getName()+" (validity check)");

                _items[i * 2 + 0] = 0;

                _items[i * 2 + 1] = 0;

                continue;

                }



            if(Config.ALT_STRICT_HERO_SYSTEM)

            {

              

                if (item.isHeroitem())

                    continue;

            }

            

            if ((warehouse instanceof ClanWarehouse) && !item.isTradeable() || item.getItemType() == L2EtcItemType.QUEST) return;

            // Calculate needed adena and slots

            if (item.getItemId() == 57) currentAdena -= count;

            if (!item.isStackable()) slots += count;

            else if (warehouse.getItemByItemId(item.getItemId()) == null) slots++;

        }

        

        // Item Max Limit Check

        if (!warehouse.validateCapacity(slots))

        {

            sendPacket(new SystemMessage(SystemMessageId.YOU_HAVE_EXCEEDED_QUANTITY_THAT_CAN_BE_INPUTTED));

            return;

        }



        // Check if enough adena and charge the fee

        if (currentAdena < fee || !player.reduceAdena("Warehouse", fee, player.getLastFolkNPC(), false))

        {

            sendPacket(new SystemMessage(SystemMessageId.YOU_NOT_ENOUGH_ADENA));

            return;

        }



        // Proceed to the transfer

        InventoryUpdate playerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate();

        for (int i = 0; i < _count; i++)

        {

            int objectId = _items[i * 2 + 0];

            int count = _items[i * 2 + 1];



            // check for an invalid item

            if (objectId == 0 && count == 0) continue;

            

            L2ItemInstance oldItem = player.getInventory().getItemByObjectId(objectId);



            if (oldItem == null)

            {

                _log.warn("Error depositing a warehouse object for char "+player.getName()+" (olditem == null)");

                continue;

            }



            if(Config.ALT_STRICT_HERO_SYSTEM)

            {

                if (oldItem.isHeroitem())

                    continue;

            }

            

            L2ItemInstance newItem = player.getInventory().transferItem((warehouse instanceof ClanWarehouse)?"ClanWarehouse":"Warehouse", objectId, count, warehouse, player, player.getLastFolkNPC());

            if (newItem == null)

            {

                _log.warn("Error depositing a warehouse object for char "+player.getName()+" (newitem == null)");

                continue;

            }



            if (playerIU != null)

            {

                if (oldItem.getCount() > 0 && oldItem != newItem) playerIU.addModifiedItem(oldItem);

                else playerIU.addRemovedItem(oldItem);

            }

        }



        // Send updated item list to the player

        if (playerIU != null) player.sendPacket(playerIU);

        else player.sendPacket(new ItemList(player, false));

        

        // Update current load status on player

        StatusUpdate su = new StatusUpdate(player.getObjectId());

        su.addAttribute(StatusUpdate.CUR_LOAD, player.getCurrentLoad());

        player.sendPacket(su);

    }



    /* (non-Javadoc)

     * @see interlude.gameserver.clientpackets.ClientBasePacket#getType()

     */

    @Override

    public String getType()

    {

        return _C__31_SENDWAREHOUSEDEPOSITLIST;

    }

}
Ответ
#3
Блин я незнаю как это сделать
Ответ
#4
raicer Написал:Блин я незнаю как это сделать

1) [URL="http://forum.zone-game.info/showthread.php?t=3"]мануал! скачивание с Svn.
[/URL]
2) Исправляем SendWareHouseDepositList.java после компилируем -> см. пункт 3.
3) Мануал! Компиляция (Eclipse) на примере сборки Kamael от L2jFree.
[Изображение: imdead.gif]
Ответ
#5
а я могу компелировать со сборки которая уже имеется , тоесть не скачивая с интернета через SVN
Ответ
#6
Нет, скачивай обновления с СВН и компилируй.
Web программист\разработчик

— Есть только один способ проделать большую работу — полюбить ее. Если вы к этому не пришли, подождите. Не беритесь за дело.
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Создание уникальной вещи ! pomke.18 0 1,876 05-27-2011, 10:55 PM
Последний пост: pomke.18
  Не работает Пм Blayzer 1 2,626 11-06-2010, 01:08 AM
Последний пост: Ozzy

Перейти к форуму:


Пользователи, просматривающие эту тему: 3 Гость(ей)