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.


  • Posts

    • Hello, I’m working on decrypting the Init packet that the server sends to the client during login. This packet is treated specially and contains the Blowfish keys used to encrypt and decrypt subsequent packets. Although it isn’t encrypted irreversibly and should be reversible, I haven’t succeeded yet. My goal is to extract the Blowfish key to decrypt certain client packets without disrupting the normal session flow. I can inject a DLL to sniff the packets, and with that I plan to develop a module that extends the client’s functionality. For example, after logging in, this module would capture all the data the client receives (character data, etc.). Additionally, it could listen for real-time server events, enabling integrations with Discord SDKs or other systems, thereby expanding Lineage 2’s capabilities. Init packet(0x00) LoginServer. Currently in the java Cores I checked there is no decode function for this package, only encript.
    • whats password from the archivie ?
    • All that shit are false positives of the vanganth cliext, sources are well and who sell it is a big scammer
    • Information Selling a premium Lineage 2 High Five (L2J) project with active development, available by subscription. Includes Git support and access to compiled or full source code. Ideal for serious server owners seeking stability and performance, uniqueness and well-done features.   General Project Specifications: JDK Version: 23 -> 24 Chronicle: HighFive Structure: Core & Datapack merged into a single project Database: MariaDB Database Driver: HicariCP GIT Website: gitlab.com   Features include (but are not limited to):   1. Tournament Single & Party (Check Youtube Video) 2. Faction (Check Youtube Video) 3. Event Engine (Check Youtube Video) 4. Sell Buff System (Check Youtube Video) 5. Start UP System (Check Youtube Video) 6. User Panel 7. Visual - Dress me System 8. Donate Store 9. Automatic Farm System (Check Youtube Video) 10. Captcha (Anti-BOT) (Check Youtube Video) 11. Auction (Check Youtube Video) 12. Vote (API) 13. Admin Real Time Balance (Check Youtube Video) 14. Achievements (Check Youtube Video) 15. Daily Mission (Check Youtube Video) 16. A.I. Bot (Check Youtube Video) 17. Rebirth 18. Daily Reward  19. Skill Tree - Ability System 20. Craft System 21. Twitch Automatic Reward (Check Youtube Video) 22. Quiz Game (Check Youtube Video) 23. Automatic Item Enchant (Check Youtube Video) 24. Secondary Auth Using Google Authenticator (Check Youtube Video) 25. Gm Shop - Gatekeeper - Scheme Buffer   How to get Access (Payment Subscription): To get Access you either pay monthly subscription to GIT for source or Compiled. Project is currently active and has at least 1-2 commit / day.  Clients in both Compiled & Source subscription can request features or any addon in already existing mods inside discord.   Price per Month (Source) in GIT: 250 Eur Price per Month (Compiled) in GIT: 100 Eur   Contact: To get Access or ask further information join discord  https://discord.gg/gKAsAhJNuq      
  • Topics

×
×
  • Create New...