Jump to content
  • 0

[Help] Code Npc Enchant


Question

Posted

Psaxnw ena code na perasw se l2jfrozen pou to opoio na poulaei kapoio weapon h armor pou 8a to exw ka8orisei egw to poso enchant 8a einai kai na dinei ena allo weapon h armor  sto idio enchant.

An mporei na me help kapios 8a to ektimousa para polu.

5 answers to this question

Recommended Posts

  • 0
Posted

Ένας φίλος μου είχε βοηθήσει κάποιον με το ίδιο request.

 

Index: /trunk/L2J_Gameserver/java/com/l2jserver/gameserver/network/serverpackets/MultiSellList.java
===================================================================
--- /trunk/L2J_Gameserver/java/com/l2jserver/gameserver/network/serverpackets/MultiSellList.java (revision 24)
+++ /trunk/L2J_Gameserver/java/com/l2jserver/gameserver/network/serverpackets/MultiSellList.java (revision 71)
@@ -119,5 +119,5 @@
                else
                {
-                   writeH(0x00); // enchant level
+                   writeH(ing.getEnchantLevel()); // enchant level
                    writeD(0x00); // augment id
                    writeD(0x00); // mana
@@ -154,5 +154,5 @@
                else
                {
-                   writeH(0x00); // enchant level
+                   writeH(ing.getEnchantLevel()); // enchant level
                    writeD(0x00); // augment id
                    writeD(0x00); // mana
Index: /trunk/L2J_Gameserver/java/com/l2jserver/gameserver/model/multisell/PreparedEntry.java
===================================================================
--- /trunk/L2J_Gameserver/java/com/l2jserver/gameserver/model/multisell/PreparedEntry.java (revision 24)
+++ /trunk/L2J_Gameserver/java/com/l2jserver/gameserver/model/multisell/PreparedEntry.java (revision 71)
@@ -72,5 +72,5 @@
        adenaA-beep-t += _taxA-beep-t; // do not forget tax
        if (adenaA-beep-t > 0)
-           _ingredients.add(new Ingredient(ADENA_ID, adenaA-beep-t, false, false));
+           _ingredients.add(new Ingredient(ADENA_ID, adenaA-beep-t,0, false, false));
        
        // now copy products
Index: /trunk/L2J_Gameserver/java/com/l2jserver/gameserver/model/multisell/Ingredient.java
===================================================================
--- /trunk/L2J_Gameserver/java/com/l2jserver/gameserver/model/multisell/Ingredient.java (revision 24)
+++ /trunk/L2J_Gameserver/java/com/l2jserver/gameserver/model/multisell/Ingredient.java (revision 71)
@@ -30,4 +30,5 @@
    private int _itemId;
    private long _itemCount;
+    private int _EnchantmentLevel;
    private boolean _isTaxIngredient, _maintainIngredient;
    
@@ -35,8 +36,9 @@
    private ItemInfo _itemInfo = null;
    
-   public Ingredient(int itemId, long itemCount, boolean isTaxIngredient, boolean maintainIngredient)
+   public Ingredient(int itemId, long itemCount,int EnchantmentLevel, boolean isTaxIngredient, boolean maintainIngredient)
    {
        _itemId = itemId;
        _itemCount = itemCount;
+       _EnchantmentLevel = EnchantmentLevel;
        _isTaxIngredient = isTaxIngredient;
        _maintainIngredient = maintainIngredient;
@@ -80,5 +82,5 @@
    public final int getEnchantLevel()
    {
-       return _itemInfo != null ? _itemInfo.getEnchantLevel() : 0;
+            return _itemInfo == null?_EnchantmentLevel:_itemInfo.getEnchantLevel();
    }
    
Index: /trunk/L2J_Gameserver/java/com/l2jserver/gameserver/datatables/MultiSell.java
===================================================================
--- /trunk/L2J_Gameserver/java/com/l2jserver/gameserver/datatables/MultiSell.java (revision 52)
+++ /trunk/L2J_Gameserver/java/com/l2jserver/gameserver/datatables/MultiSell.java (revision 71)
@@ -270,4 +270,8 @@
            if ("ingredient".equalsIgnoreCase(n.getNodeName()))
            {
+               int enchantmentLevel = 0;
+               if (n.getAttributes().getNamedItem("enchantmentLevel") != null)
+               enchantmentLevel = Integer.parseInt(n.getAttributes().getNamedItem("enchantmentLevel").getNodeValue());
+               
                int id = Integer.parseInt(n.getAttributes().getNamedItem("id").getNodeValue());
                long count = Long.parseLong(n.getAttributes().getNamedItem("count").getNodeValue());
@@ -286,12 +290,16 @@
                    mantainIngredient = false;
                
-               entry.addIngredient(new Ingredient(id, count, isTaxIngredient, mantainIngredient));
+               entry.addIngredient(new Ingredient(id, count, enchantmentLevel, isTaxIngredient, mantainIngredient));
            }
            else if ("production".equalsIgnoreCase(n.getNodeName()))
            {
+               int enchantmentLevel = 0;
+               if (n.getAttributes().getNamedItem("enchantmentLevel") != null)
+               enchantmentLevel = Integer.parseInt(n.getAttributes().getNamedItem("enchantmentLevel").getNodeValue());
+               
                int id = Integer.parseInt(n.getAttributes().getNamedItem("id").getNodeValue());
                long count = Long.parseLong(n.getAttributes().getNamedItem("count").getNodeValue());
                
-               entry.addProduct(new Ingredient(id, count, false, false));
+               entry.addProduct(new Ingredient(id, count, enchantmentLevel, false, false));
            }
        }

 

Βάλε αυτόν τον κώδικα στον πηγαίο κώδικα και στο multisell βάλε αυτήν την γραμμή :

 

<production id="15572" count="1" enchantmentLevel="25"/>

 

Εκεί που είναι 25 είναι το πόσο + θέλεις να δώσει το item.

 

Ελπίζω να σε βοήθησα!

 

Edit : υπάρχει περίπτωση να χρειαστεί να κάνεις μερικές αλλαγές στον κώδικα γιατί είναι για άλλο client όπως μπορείς να δεις.

Guest
This topic is now closed to further replies.


×
×
  • Create New...