Noticias:

Debes de estar registrado para poder ver el contenido indicado. Registrate o Conectate

Menú Principal

Cambiar moneda de las private store/buy

Iniciado por Swarlog, Ago 12, 2022, 02:18 AM

Tema anterior - Siguiente tema

Swarlog

Codigo para cambiar la moneda en el private store/buy especialmente para servidores pvp

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);
+  if (!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