Сообщений: 13
Тем: 6
Зарегистрирован: May 2010
Репутация:
3
08-18-2010, 08:09 AM
(Сообщение последний раз редактировалось: 08-18-2010, 08:10 AM raicer.)
Не работает warehouse (не сдаються веши ) пишет you depositing too fast!
как быть в конфигах стоит True! сборка L2 openteam
Добавлено через 1 минуту
Interlude c6
Сообщений: 509
Тем: 30
Зарегистрирован: Nov 2009
08-18-2010, 08:27 AM
(Сообщение последний раз редактировалось: 08-18-2010, 09:04 AM GoodShadow.)
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;
}
}
Сообщений: 13
Тем: 6
Зарегистрирован: May 2010
Репутация:
3
Блин я незнаю как это сделать
Сообщений: 509
Тем: 30
Зарегистрирован: Nov 2009
raicer Написал:Блин я незнаю как это сделать
1) [URL="http://forum.zone-game.info/showthread.php?t=3"]мануал! скачивание с Svn.
[/URL]
2) Исправляем SendWareHouseDepositList.java после компилируем -> см. пункт 3.
3)
Мануал! Компиляция (Eclipse) на примере сборки Kamael от L2jFree.
Сообщений: 13
Тем: 6
Зарегистрирован: May 2010
Репутация:
3
а я могу компелировать со сборки которая уже имеется , тоесть не скачивая с интернета через SVN
Сообщений: 5,670
Тем: 145
Зарегистрирован: Nov 2008
Репутация:
33,771
Нет, скачивай обновления с СВН и компилируй.
Web программист\разработчик
— Есть только один способ проделать большую работу — полюбить ее. Если вы к этому не пришли, подождите. Не беритесь за дело.