Skip to content

[Help] Code Npc Enchant

Featured Replies

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.

Moved sto sosto section file mou vale [Help] Tag.

Ένας φίλος μου είχε βοηθήσει κάποιον με το ίδιο 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 όπως μπορείς να δεις.

  • 3 weeks later...

mpa den m teria3e

χειροκίνητα πρέπει να το κάνεις.
Guest
This topic is now closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.