u3g_l2_imp_npc_maker.png
Npc en donde añadir los items que querrais vender al mundo!
He actualizado la imagen y adjunto el archivo de la descarga.
Aqui dejo el fix creado por No tienes permiso para ver los enlaces. Para poder verlos
Registrate o
Conectate.:
### Eclipse Workspace Patch 1.0
#P L2jFrozen_GameServer
Index: head-src/com/l2jfrozen/gameserver/network/serverpackets/PrivateStoreListSell.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/network/serverpackets/PrivateStoreListSell.java (revision 1004)
+++ head-src/com/l2jfrozen/gameserver/network/serverpackets/PrivateStoreListSell.java (working copy)
@@ -19,7 +19,7 @@
package com.l2jfrozen.gameserver.network.serverpackets;
import com.l2jfrozen.Config;
-import com.l2jfrozen.gameserver.model.TradeList;
+import com.l2jfrozen.gameserver.model.TradeList.TradeItem;
import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
/**
@@ -28,44 +28,41 @@
*/
public class PrivateStoreListSell extends L2GameServerPacket
{
- // private static final String _S__B4_PRIVATEBUYLISTSELL = "[S] 9b PrivateBuyListSell";
private static final String _S__B4_PRIVATESTORELISTSELL = "[S] 9b PrivateStoreListSell";
- private L2PcInstance _storePlayer;
- private L2PcInstance _activeChar;
+ private int _objId;
private int _playerAdena;
private boolean _packageSale;
- private TradeList.TradeItem[] _items;
+ private TradeItem[] _items;
// player's private shop
public PrivateStoreListSell(L2PcInstance player, L2PcInstance storePlayer)
{
- _activeChar = player;
- _storePlayer = storePlayer;
-
if (Config.SELL_BY_ITEM)
{
CreatureSay cs11 = new CreatureSay(0, 15, "", "ATTENTION: Store System is not based on Adena, be careful!"); // 8D
- _activeChar.sendPacket(cs11);
- _playerAdena = _activeChar.getItemCount(Config.SELL_ITEM, -1);
+ player.sendPacket(cs11);
+ _playerAdena = player.getItemCount(Config.SELL_ITEM, -1);
}
else
- _playerAdena = _activeChar.getAdena();
+ {
+ _playerAdena = player.getAdena();
+ }
- _storePlayer.getSellList().updateItems();
- _items = _storePlayer.getSellList().getItems();
- _packageSale = _storePlayer.getSellList().isPackaged();
+ _objId = storePlayer.getObjectId();
+ storePlayer.getSellList().updateItems();
+ _items = storePlayer.getSellList().getItems();
+ _packageSale = storePlayer.getSellList().isPackaged();
}
@Override
protected final void writeImpl()
{
writeC(0x9b);
- writeD(_storePlayer.getObjectId());
+ writeD(_objId);
writeD(_packageSale ? 1 : 0);
writeD(_playerAdena);
-
writeD(_items.length);
- for (TradeList.TradeItem item : _items)
+ for (TradeItem item : _items)
{
writeD(item.getItem().getType2());
writeD(item.getObjectId());
@@ -80,10 +77,6 @@
}
}
- /*
- * (non-Javadoc)
- * @see com.l2jfrozen.gameserver.serverpackets.ServerBasePacket#getType()
- */
@Override
public String getType()
{
Index: head-src/com/l2jfrozen/gameserver/network/serverpackets/PrivateStoreManageListSell.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/network/serverpackets/PrivateStoreManageListSell.java (revision 1004)
+++ head-src/com/l2jfrozen/gameserver/network/serverpackets/PrivateStoreManageListSell.java (working copy)
@@ -19,7 +19,6 @@
package com.l2jfrozen.gameserver.network.serverpackets;
import com.l2jfrozen.Config;
-import com.l2jfrozen.gameserver.model.TradeList;
import com.l2jfrozen.gameserver.model.TradeList.TradeItem;
import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
@@ -31,10 +30,11 @@
{
private static final String _S__B3_PRIVATESELLLISTSELL = "[S] 9a PrivateSellListSell";
private L2PcInstance _activeChar;
+ private final int _objId;
private int _playerAdena;
private boolean _packageSale;
- private TradeList.TradeItem[] _itemList;
- private TradeList.TradeItem[] _sellList;
+ private TradeItem[] _itemList;
+ private TradeItem[] _sellList;
public PrivateStoreManageListSell(L2PcInstance player)
{
@@ -50,9 +50,11 @@
}
_activeChar.getSellList().updateItems();
- _packageSale = _activeChar.getSellList().isPackaged();
- _itemList = _activeChar.getInventory().getAvailableItems(_activeChar.getSellList());
- _sellList = _activeChar.getSellList().getItems();
+
+ _objId = player.getObjectId();
+ _packageSale = player.getSellList().isPackaged();
+ _itemList = player.getInventory().getAvailableItems(player.getSellList());
+ _sellList = player.getSellList().getItems();
}
/**
@@ -63,30 +65,27 @@
{
writeC(0x9a);
// section 1
- writeD(_activeChar.getObjectId());
+ writeD(_objId);
writeD(_packageSale ? 1 : 0); // Package sell
writeD(_playerAdena);
// section2
- writeD(_itemList.length - _sellList.length); // for potential sells
- for (TradeList.TradeItem item : _itemList)
+ writeD(_itemList.length); // for potential sells
+ for (TradeItem item : _itemList)
{
- if (isItemInSelling(item) == false)
- {
- writeD(item.getItem().getType2());
- writeD(item.getObjectId());
- writeD(item.getItem().getItemId());
- writeD(item.getCount());
- writeH(0);
- writeH(item.getEnchant());// enchant lvl
- writeH(0);
- writeD(item.getItem().getBodyPart());
- writeD(item.getPrice()); // store price
- }
+ writeD(item.getItem().getType2());
+ writeD(item.getObjectId());
+ writeD(item.getItem().getItemId());
+ writeD(item.getCount());
+ writeH(0);
+ writeH(item.getEnchant());// enchant lvl
+ writeH(0);
+ writeD(item.getItem().getBodyPart());
+ writeD(item.getPrice()); // store price
}
// section 3
writeD(_sellList.length); // count for any items already added for sell
- for (TradeList.TradeItem item : _sellList)
+ for (TradeItem item : _sellList)
{
writeD(item.getItem().getType2());
writeD(item.getObjectId());
@@ -101,22 +100,6 @@
}
}
- private boolean isItemInSelling(TradeItem item_)
- {
- for (TradeList.TradeItem itemSell : _sellList)
- {
- if (itemSell.getObjectId() == item_.getObjectId())
- {
- return true;
- }
- }
- return false;
- }
-
- /*
- * (non-Javadoc)
- * @see com.l2jfrozen.gameserver.serverpackets.ServerBasePacket#getType()
- */
@Override
public String getType()
{
Index: head-src/com/l2jfrozen/gameserver/model/TradeList.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/model/TradeList.java (revision 1004)
+++ head-src/com/l2jfrozen/gameserver/model/TradeList.java (working copy)
@@ -224,17 +224,19 @@
*
* @return L2ItemInstance : items in inventory
*/
- public TradeList.TradeItem[] getAvailableItems(PcInventory inventory)
+ public TradeItem[] getAvailableItems(PcInventory inventory)
{
- List<TradeList.TradeItem> list = new FastList<TradeList.TradeItem>();
+ FastList<TradeItem> list = FastList.newInstance();
- for(TradeList.TradeItem item : _items)
+ for(TradeItem item : _items)
{
item = new TradeItem(item, item.getCount(), item.getPrice());
list.add(inventory.adjustAvailableItem(item,list));
}
- return list.toArray(new TradeList.TradeItem[list.size()]);
+ TradeItem[] result = list.toArray(new TradeItem[list.size()]);
+ FastList.recycle(list);
+ return result;
}
/**
@@ -257,12 +259,16 @@
if(item.isStackable())
{
for(TradeItem exclItem : _items)
+ {
if(exclItem.getItem().getItemId() == item.getItemId() && (exclItem.getEnchant() == item.getEnchantLevel()))
{
if(item.getCount() <= exclItem.getCount())
+ {
return null;
+ }
return new TradeItem(item, item.getCount() - exclItem.getCount(), item.getReferencePrice());
}
+ }
}
return new TradeItem(item, item.getCount(), item.getReferencePrice());
@@ -276,6 +282,7 @@
public void adjustItemRequest(ItemRequest item)
{
for(TradeItem filtItem : _items)
+ {
if(filtItem.getObjectId() == item.getObjectId() && (filtItem.getEnchant() == item.getEnchant()))
{
if(filtItem.getCount() < item.getCount())
@@ -285,6 +292,7 @@
return;
}
+ }
item.setCount(0);
}
@@ -297,6 +305,7 @@
public void adjustItemRequestByItemId(ItemRequest item)
{
for(TradeItem filtItem : _items)
+ {
if(filtItem.getItem().getItemId() == item.getItemId() && (filtItem.getEnchant() == item.getEnchant()))
{
if(filtItem.getCount() < item.getCount())
@@ -306,6 +315,7 @@
return;
}
+ }
item.setCount(0);
}
@@ -357,12 +367,15 @@
L2ItemInstance item = (L2ItemInstance) o;
- if(!item.isTradeable() || (getOwner().isGM() && Config.GM_TRADE_RESTRICTED_ITEMS)
- || item.getItemType() == L2EtcItemType.QUEST)
+ if(!item.isTradeable() || (getOwner().isGM() && Config.GM_TRADE_RESTRICTED_ITEMS) || item.getItemType() == L2EtcItemType.QUEST)
+ {
return null;
+ }
if(count > item.getCount())
+ {
return null;
+ }
if(!item.isStackable() && count > 1)
{
@@ -373,7 +386,9 @@
for(TradeItem checkitem : _items)
{
if(checkitem.getObjectId() == objectId)
+ {
return null;
+ }
}
TradeItem titem = new TradeItem(item, count, price);
@@ -461,6 +476,7 @@
}
for(TradeItem titem : _items)
+ {
if(titem.getObjectId() == objectId || titem.getItem().getItemId() == itemId)
{
// If Partner has already confirmed this trade, invalidate the confirmation
@@ -488,7 +504,7 @@
return titem;
}
-
+ }
return null;
}
@@ -539,7 +555,9 @@
public boolean confirm()
{
if(_confirmed)
+ {
return true; // Already confirmed
+ }
// If Partner has already confirmed this trade, proceed exchange
if(_partner != null)
@@ -658,11 +676,15 @@
{
L2ItemInstance oldItem = _owner.getInventory().getItemByObjectId(titem.getObjectId());
if(oldItem == null)
+ {
return false;
+ }
L2ItemInstance newItem = _owner.getInventory().transferItem("Trade", titem.getObjectId(), titem.getCount(), partner.getInventory(), _owner, _partner);
if(newItem == null)
+ {
return false;
+ }
// Add changes to inventory update packets
if(ownerIU != null)
@@ -838,9 +860,12 @@
public synchronized boolean PrivateStoreBuy(L2PcInstance player, ItemRequest[] items, int price)
{
if(_locked)
+ {
return false;
+ }
- if(items == null || items.length == 0){
+ if(items == null || items.length == 0)
+ {
return false;
}
@@ -867,19 +892,22 @@
}
boolean found = false;
- for(TradeItem ti : _items){
- if(ti.getObjectId() == item.getObjectId()){
-
+ for(TradeItem ti : _items)
+ {
+ if(ti.getObjectId() == item.getObjectId())
+ {
found = true;
- if(ti.getPrice() != item.getPrice()){
+ if(ti.getPrice() != item.getPrice())
+ {
return false;
}
}
}
//store is not selling that item...
- if(!found){
+ if(!found)
+ {
String msg = "Requested Item is not available to buy... You are perfoming illegal operation, it has been segnalated";
_log.warning("ATTENTION: Player "+player.getName()+" has performed buy illegal operation..");
player.sendMessage(msg);
@@ -920,7 +948,8 @@
InventoryUpdate ownerIU = new InventoryUpdate();
InventoryUpdate playerIU = new InventoryUpdate();
- if(Config.SELL_BY_ITEM){
+ if(Config.SELL_BY_ITEM)
+ {
// Transfer Item
if(price > playerInventory.getInventoryItemCount(Config.SELL_ITEM, -1))
{
@@ -931,7 +960,8 @@
L2ItemInstance item = playerInventory.getItemByItemId(Config.SELL_ITEM);
- if(item==null){
+ if(item==null)
+ {
System.out.println("Buyer Medals are null");
//no useful lock to seller
//lock();
@@ -950,7 +980,8 @@
// Proceed with item transfer
L2ItemInstance newItem = playerInventory.transferItem("PrivateStore", item.getObjectId(), price, ownerInventory, player, _owner);
- if(newItem == null){
+ if(newItem == null)
+ {
System.out.println("Buyer new medals null");
return false;
}
@@ -990,7 +1021,9 @@
ownerIU.addItem(ownerInventory.getItemByItemId(Config.SELL_ITEM));
*/
- }else{
+ }
+ else
+ {
// Transfer adena
if(price > playerInventory.getAdena())
{
@@ -1112,16 +1145,19 @@
*/
public synchronized boolean PrivateStoreSell(L2PcInstance player, ItemRequest[] items, int price)
{
- if(_locked){
-
- if(Config.DEBUG){
+ if(_locked)
+ {
+ if(Config.DEBUG)
+ {
_log.info("[PrivateStoreSell] Locked, return false");
}
return false;
}
- if(items==null || items.length == 0){
- if(Config.DEBUG){
+ if(items==null || items.length == 0)
+ {
+ if(Config.DEBUG)
+ {
_log.info("[PrivateStoreSell] items==null || items.length == 0, return false");
}
return false;
@@ -1140,8 +1176,10 @@
{
// Check if requested item is available for manipulation
L2ItemInstance oldItem = player.checkItemManipulation(item.getObjectId(), item.getCount(), "sell");
- if(oldItem == null){
- if(Config.DEBUG){
+ if(oldItem == null)
+ {
+ if(Config.DEBUG)
+ {
_log.info("[PrivateStoreSell] player.checkItemManipulation(item.getObjectId(), item.getCount(), 'sell') null, return false");
}
return false;
@@ -1152,7 +1190,6 @@
{
if (ti.getItem().getItemId() == item.getItemId())
{
-
if (ti.getPrice() != item.getPrice())
{
if (Config.DEBUG)
@@ -1164,10 +1201,8 @@
if (ti.getEnchant() != item.getEnchant())
{
-
player.sendMessage("Incorect enchant level.");
return false;
-
}
L2Object obj = L2World.getInstance().findObject(item.getObjectId());
@@ -1193,7 +1228,8 @@
}
//store is not buying that item...
- if(!found){
+ if(!found)
+ {
String msg = "Requested Item is not available to sell... You are perfoming illegal operation, it has been segnalated";
_log.warning("ATTENTION: Player "+player.getName()+" has performed sell illegal operation..");
player.sendMessage(msg);
@@ -1225,8 +1261,10 @@
// Check if requested item is available for manipulation
L2ItemInstance oldItem = player.checkItemManipulation(item.getObjectId(), item.getCount(), "sell");
- if(oldItem == null){
- if(Config.DEBUG){
+ if(oldItem == null)
+ {
+ if(Config.DEBUG)
+ {
_log.info("[PrivateStoreSell] oldItem == null, return false");
}
return false;
@@ -1241,8 +1279,10 @@
// Proceed with item transfer
L2ItemInstance newItem = playerInventory.transferItem("PrivateStore", item.getObjectId(), item.getCount(), ownerInventory, player, _owner);
- if(newItem == null){
- if(Config.DEBUG){
+ if(newItem == null)
+ {
+ if(Config.DEBUG)
+ {
_log.info("[PrivateStoreSell] newItem == null, return false");
}
@@ -1306,12 +1346,14 @@
oldItem = null;
}
- if(Config.SELL_BY_ITEM){
+ if(Config.SELL_BY_ITEM)
+ {
// Transfer Item
if(price > ownerInventory.getInventoryItemCount(Config.SELL_ITEM, -1))
{
lock();
- if(Config.DEBUG){
+ if(Config.DEBUG)
+ {
_log.info("[PrivateStoreSell] price > ownerInventory.getInventoryItemCount(Config.SELL_ITEM, -1), return false");
}
@@ -1320,8 +1362,10 @@
L2ItemInstance item = ownerInventory.getItemByItemId(Config.SELL_ITEM);
- if(item==null){
- if(Config.DEBUG){
+ if(item==null)
+ {
+ if(Config.DEBUG)
+ {
_log.info("[PrivateStoreSell] item==null, return false");
}
@@ -1344,8 +1388,10 @@
// Proceed with item transfer
L2ItemInstance newItem = ownerInventory.transferItem("PrivateStore", item.getObjectId(), price, playerInventory,_owner, player);
- if(newItem == null){
- if(Config.DEBUG){
+ if(newItem == null)
+ {
+ if(Config.DEBUG)
+ {
_log.info("[PrivateStoreSell] newItem = ownerInventory.transferItem('PrivateStore', item.getObjectId(), price, playerInventory,_owner, player) == null, return false");
}
@@ -1378,11 +1424,15 @@
SystemMessage msg2 = SystemMessage.sendString("You spent "+price+" "+item.getItemName());
_owner.sendPacket(msg2);
- }else{
+ }
+ else
+ {
// Transfer adena
- if(price > ownerInventory.getAdena()){
- if(Config.DEBUG){
+ if(price > ownerInventory.getAdena())
+ {
+ if(Config.DEBUG)
+ {
_log.info("[PrivateStoreSell] price > ownerInventory.getAdena(), return false");
}
@@ -1394,7 +1444,6 @@
ownerIU.addItem(adenaItem);
playerInventory.addAdena("PrivateStore", price, player, _owner);
playerIU.addItem(playerInventory.getAdenaInstance());
-
}
@@ -1403,7 +1452,9 @@
player.sendPacket(playerIU);
if(_owner.isOffline())
+ {
OfflineTradeTable.storeOffliner(_owner);
+ }
ownerIU = null;
playerIU = null;
@@ -1422,10 +1473,10 @@
for(TradeItem item : _items)
{
if(item.getObjectId() == objectId)
+ {
return item;
+ }
}
return null;
}
-
-
-}
+}
\ No newline at end of file
Index: head-src/com/l2jfrozen/gameserver/network/serverpackets/PrivateStoreMsgSell.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/network/serverpackets/PrivateStoreMsgSell.java (revision 1004)
+++ head-src/com/l2jfrozen/gameserver/network/serverpackets/PrivateStoreMsgSell.java (working copy)
@@ -28,14 +28,15 @@
{
private static final String _S__B5_PRIVATESTOREMSGSELL = "[S] 9c PrivateStoreMsgSell";
private L2PcInstance _activeChar;
+ private int _objId;
private String _storeMsg;
public PrivateStoreMsgSell(L2PcInstance player)
{
- _activeChar = player;
+ _objId = player.getObjectId();
if (_activeChar.getSellList() != null)
{
- _storeMsg = _activeChar.getSellList().getTitle();
+ _storeMsg = player.getSellList().getTitle();
}
}
@@ -43,14 +44,10 @@
protected final void writeImpl()
{
writeC(0x9c);
- writeD(_activeChar.getObjectId());
+ writeD(_objId);
writeS(_storeMsg);
}
- /*
- * (non-Javadoc)
- * @see com.l2jfrozen.gameserver.serverpackets.ServerBasePacket#getType()
- */
@Override
public String getType()
{