Jump to content
  • 0

Private store-Sell/buy need help


Question

5 answers to this question

Recommended Posts

  • 0
Posted

created it few days ago for l2jserver, GE. You can edit the currency of private store buy and private store sell (separately) in config

(l2jmod.properties)

Index: java/com/l2jserver/Config.java
===================================================================
--- java/com/l2jserver/Config.java	(revision 4410)
+++ java/com/l2jserver/Config.java	(working copy)
@@ -676,6 +676,8 @@
	public static String L2JMOD_MULTILANG_DEFAULT;
	public static boolean L2JMOD_MULTILANG_VOICED_ALLOW;
	public static boolean L2WALKER_PROTECTION;
+	public static int STORE_BUY_CURRENCY;
+	public static int STORE_SELL_CURRENCY;

	//--------------------------------------------------
	// NPC Settings
@@ -2285,6 +2287,8 @@
					L2JMOD_MULTILANG_VOICED_ALLOW = Boolean.parseBoolean(L2JModSettings.getProperty("MultiLangVoiceCommand", "True"));

					L2WALKER_PROTECTION = Boolean.parseBoolean(L2JModSettings.getProperty("L2WalkerProtection", "False"));
+					STORE_BUY_CURRENCY = Integer.parseInt(L2JModSettings.getProperty("PrivateStoreBuyMoneda", "57"));
+					STORE_SELL_CURRENCY = Integer.parseInt(L2JModSettings.getProperty("PrivateStoreSellMoneda", "57"));
				}
				catch (Exception e)
				{
Index: java/com/l2jserver/gameserver/model/TradeList.java
===================================================================
--- java/com/l2jserver/gameserver/model/TradeList.java	(revision 4410)
+++ java/com/l2jserver/gameserver/model/TradeList.java	(working copy)
@@ -802,9 +802,10 @@
				slots++;
		}

-		if (totalPrice > playerInventory.getAdena())
+		if (totalPrice > player.getBuyStoreCurrency())
		{
-			player.sendPacket(new SystemMessage(SystemMessageId.YOU_NOT_ENOUGH_ADENA));
+			final String name = ItemTable.getInstance().getTemplate(Config.STORE_BUY_CURRENCY).getName();
+			player.sendMessage("You dont have enough "+name);
			return 1;
		}

@@ -823,12 +824,12 @@
		// Prepare inventory update packets
		final InventoryUpdate ownerIU = new InventoryUpdate();
		final InventoryUpdate playerIU = new InventoryUpdate();
-		
-		final L2ItemInstance adenaItem = playerInventory.getAdenaInstance();
-		playerInventory.reduceAdena("PrivateStore", totalPrice, player, _owner);
+		final int moneda = Config.STORE_BUY_CURRENCY;
+		final L2ItemInstance adenaItem = playerInventory.getItemByItemId(moneda);
+		player.destroyItemByItemId("PrivateStore", moneda, totalPrice, _owner, true);
		playerIU.addItem(adenaItem);
-		ownerInventory.addAdena("PrivateStore", totalPrice, _owner, player);
-		ownerIU.addItem(ownerInventory.getAdenaInstance());
+		ownerInventory.addItem("PrivateStore", moneda, totalPrice, _owner, player);
+		ownerIU.addItem(ownerInventory.getItemByItemId(moneda));

		boolean ok = true;

@@ -965,7 +966,7 @@
				break;
			}

-			if (ownerInventory.getAdena() < _totalPrice)
+			if (_owner.getSellStoreCurrency() < _totalPrice)
				continue;

			// Check if requested item is available for manipulation
@@ -1043,11 +1044,12 @@
			if (totalPrice > ownerInventory.getAdena())
				// should not happens, just a precaution
				return false;
-			final L2ItemInstance adenaItem = ownerInventory.getAdenaInstance();
-			ownerInventory.reduceAdena("PrivateStore", totalPrice, _owner, player);
+			final int moneda = Config.STORE_SELL_CURRENCY;
+			final L2ItemInstance adenaItem = ownerInventory.getItemByItemId(moneda);
+			ownerInventory.destroyItemByItemId("PrivateStore", moneda, totalPrice, _owner, player);
			ownerIU.addItem(adenaItem);
-			playerInventory.addAdena("PrivateStore", totalPrice, player, _owner);
-			playerIU.addItem(playerInventory.getAdenaInstance());
+			playerInventory.addItem("PrivateStore", moneda, totalPrice, player, _owner);
+			playerIU.addItem(playerInventory.getItemByItemId(moneda));
		}

		if (ok)
Index: java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java	(revision 4410)
+++ java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java	(working copy)
@@ -14889,4 +14889,18 @@
			addSkill(SkillTable.getInstance().getInfo(id, nextLevel), true);
		}
	}
+	
+	public synchronized long getBuyStoreCurrency()
+	{
+		L2ItemInstance item = this.getInventory().getItemByItemId(Config.STORE_BUY_CURRENCY);
+		
+		return item == null? 0 : item.getCount();
+	}
+	
+	public synchronized long getSellStoreCurrency()
+	{
+		L2ItemInstance item = this.getInventory().getItemByItemId(Config.STORE_SELL_CURRENCY);
+		
+		return item == null? 0 : item.getCount();
+	}
}
Index: java/com/l2jserver/gameserver/model/itemcontainer/PcInventory.java
===================================================================
--- java/com/l2jserver/gameserver/model/itemcontainer/PcInventory.java	(revision 4410)
+++ java/com/l2jserver/gameserver/model/itemcontainer/PcInventory.java	(working copy)
@@ -85,11 +85,14 @@
		FastList<L2ItemInstance> list = FastList.newInstance();
		for (L2ItemInstance item : _items)
		{
-			if ((!allowAdena && item.getItemId() == 57))
+			final int itemId = item.getItemId();
+			if ((!allowAdena && itemId == 57))
				continue;
-			if ((!allowAncientAdena && item.getItemId() == 5575))
+			if ((!allowAncientAdena && itemId == 5575))
				continue;
-
+			if(itemId == Config.STORE_BUY_CURRENCY)
+				continue;
+			
			boolean isDuplicate = false;
			for (L2ItemInstance litem : list)
			{
Index: java/com/l2jserver/gameserver/network/clientpackets/SetPrivateStoreListBuy.java
===================================================================
--- java/com/l2jserver/gameserver/network/clientpackets/SetPrivateStoreListBuy.java	(revision 4410)
+++ java/com/l2jserver/gameserver/network/clientpackets/SetPrivateStoreListBuy.java	(working copy)
@@ -140,7 +140,7 @@
		}

		// Check for available funds
-		if (totalCost > player.getAdena())
+		if (totalCost > player.getBuyStoreCurrency())
		{
			player.sendPacket(new PrivateStoreManageListBuy(player));
			player.sendPacket(new SystemMessage(SystemMessageId.THE_PURCHASE_PRICE_IS_HIGHER_THAN_MONEY));
Index: java/com/l2jserver/gameserver/network/serverpackets/PrivateStoreListBuy.java
===================================================================
--- java/com/l2jserver/gameserver/network/serverpackets/PrivateStoreListBuy.java	(revision 4410)
+++ java/com/l2jserver/gameserver/network/serverpackets/PrivateStoreListBuy.java	(working copy)
@@ -33,7 +33,7 @@
	public PrivateStoreListBuy(L2PcInstance player, L2PcInstance storePlayer)
	{
		_objId = storePlayer.getObjectId();
-		_playerAdena = player.getAdena();
+		_playerAdena = player.getBuyStoreCurrency();
		storePlayer.getSellList().updateItems(); // Update SellList for case inventory content has changed
		_items = storePlayer.getBuyList().getAvailableItems(player.getInventory());
	}
Index: java/com/l2jserver/gameserver/network/serverpackets/PrivateStoreListSell.java
===================================================================
--- java/com/l2jserver/gameserver/network/serverpackets/PrivateStoreListSell.java	(revision 4410)
+++ java/com/l2jserver/gameserver/network/serverpackets/PrivateStoreListSell.java	(working copy)
@@ -34,7 +34,7 @@
	public PrivateStoreListSell(L2PcInstance player, L2PcInstance storePlayer)
	{
		_objId = storePlayer.getObjectId();
-		_playerAdena = player.getAdena();
+		_playerAdena = player.getSellStoreCurrency();
		_items = storePlayer.getSellList().getItems();
		_packageSale = storePlayer.getSellList().isPackaged();
	}
Index: java/com/l2jserver/gameserver/network/serverpackets/PrivateStoreManageListBuy.java
===================================================================
--- java/com/l2jserver/gameserver/network/serverpackets/PrivateStoreManageListBuy.java	(revision 4410)
+++ java/com/l2jserver/gameserver/network/serverpackets/PrivateStoreManageListBuy.java	(working copy)
@@ -34,7 +34,7 @@
	public PrivateStoreManageListBuy(L2PcInstance player)
	{
		_objId = player.getObjectId();
-		_playerAdena = player.getAdena();
+		_playerAdena = player.getBuyStoreCurrency();
		_itemList = player.getInventory().getUniqueItems(false, true);
		_buyList = player.getBuyList().getItems();
	}
Index: java/com/l2jserver/gameserver/network/serverpackets/PrivateStoreManageListSell.java
===================================================================
--- java/com/l2jserver/gameserver/network/serverpackets/PrivateStoreManageListSell.java	(revision 4410)
+++ java/com/l2jserver/gameserver/network/serverpackets/PrivateStoreManageListSell.java	(working copy)
@@ -42,7 +42,7 @@
	public PrivateStoreManageListSell(L2PcInstance player, boolean isPackageSale)
	{
		_objId = player.getObjectId();
-		_playerAdena = player.getAdena();
+		_playerAdena = player.getSellStoreCurrency();
		player.getSellList().updateItems();
		_packageSale = isPackageSale;
		_itemList = player.getInventory().getAvailableItems(player.getSellList());
Index: java/config/l2jmods.properties
===================================================================
--- java/config/l2jmods.properties	(revision 4410)
+++ java/config/l2jmods.properties	(working copy)
@@ -379,3 +379,14 @@
# Basic protection against L2Walker.
# Default: False
L2WalkerProtection = False
+
+# ---------------------------------------------------------------------------
+# Private Store Buy/Sell - Moneda de cambio
+# ---------------------------------------------------------------------------
+# Elige que moneda quieres que se use como pago en los Private Store Buy (amarillos)
+# Retail: 57, Por Defecto: 57
+PrivateStoreBuyMoneda = 57
+
+# Elige que moneda quieres que se use como pago en los Private Store Sell (morados)
+# Retail: 57, Por Defecto: 57
+PrivateStoreSellMoneda = 57

Guest
This topic is now closed to further replies.


×
×
  • Create New...