rendered paste bodyIndex: /java/net/sf/l2j/gameserver/clientpackets/RequestEnchantItem.java
===================================================================
--- /java/net/sf/l2j/gameserver/clientpackets/RequestEnchantItem.java (revisione 1599)
+++ /java/net/sf/l2j/gameserver/clientpackets/RequestEnchantItem.java (copia locale)
@@ -120,7 +120,7 @@
return;
}
- int chance = blessedScroll ? 75 : Config.ENCHANT_CHANCE;;
+ int chance = Config.ENCHANT_CHANCE;;
if (item.getEnchantLevel() < 3 || (item.getItem().getBodyPart() == L2Item.SLOT_FULL_ARMOR && item.getEnchantLevel() < 4))
chance = 100;
@@ -168,53 +168,61 @@
sm.addItemName(item.getItemId());
activeChar.sendPacket(sm);
- L2ItemInstance[] unequiped = activeChar.getInventory().unEquipItemInSlotAndRecord(item.getEquipSlot());
- if (item.isEquipped())
- {
+ if (!blessedScroll){
+ L2ItemInstance[] unequiped = activeChar.getInventory().unEquipItemInSlotAndRecord(item.getEquipSlot());
+ if (item.isEquipped())
+ {
+ InventoryUpdate iu = new InventoryUpdate();
+ for (int i = 0; i < unequiped.length; i++)
+ {
+ iu.addModifiedItem(unequiped[i]);
+ }
+ activeChar.sendPacket(iu);
+
+ activeChar.broadcastUserInfo();
+ }
+
+ L2ItemInstance destroyItem = activeChar.getInventory().destroyItem("Enchant", item, activeChar, null);
+
InventoryUpdate iu = new InventoryUpdate();
- for (int i = 0; i < unequiped.length; i++)
- {
- iu.addModifiedItem(unequiped[i]);
- }
- activeChar.sendPacket(iu);
+ if (destroyItem.getCount() == 0)
+ {
+ iu.addRemovedItem(destroyItem);
+ }
+ else
+ {
+ iu.addModifiedItem(destroyItem);
+ }
+ activeChar.sendPacket(iu);
+
+ // Add 10% to crystal count for each enchant level (starting at 67% for enchant lvl 3)
+ int count = item.getItem().getCrystalCount() * (37 + 10*item.getEnchantLevel()) / 100;
+ if (count < 1) count = 1;
+
+ L2ItemInstance crystals = activeChar.getInventory().addItem("Enchant", crystalId, count, activeChar, destroyItem);
+ SystemMessage sm2 = new SystemMessage(SystemMessage.EARNED_S2_S1_s);
+ sm2.addItemName(crystals.getItemId());
+ sm2.addNumber(count);
+ activeChar.sendPacket(sm2);
- activeChar.broadcastUserInfo();
- }
+ ItemList il = new ItemList(activeChar, true);
+ sendPacket(il);
- L2ItemInstance destroyItem = activeChar.getInventory().destroyItem("Enchant", item, activeChar, null);
+ StatusUpdate su = new StatusUpdate(activeChar.getObjectId());
+ su.addAttribute(StatusUpdate.CUR_LOAD, activeChar.getCurrentLoad());
+ activeChar.sendPacket(su);
- InventoryUpdate iu = new InventoryUpdate();
- if (destroyItem.getCount() == 0)
- {
- iu.addRemovedItem(destroyItem);
+ activeChar.broadcastUserInfo();
+
+ L2World world = L2World.getInstance();
+ world.removeObject(destroyItem);
}
else
{
- iu.addModifiedItem(destroyItem);
+ activeChar.sendMessage("Enchant failed. Enchant level resetted to 0.");
+ item.setEnchantLevel(0);
+ item.updateDatabase();
}
- activeChar.sendPacket(iu);
-
- // Add 10% to crystal count for each enchant level (starting at 67% for enchant lvl 3)
- int count = item.getItem().getCrystalCount() * (37 + 10*item.getEnchantLevel()) / 100;
- if (count < 1) count = 1;
-
- L2ItemInstance crystals = activeChar.getInventory().addItem("Enchant", crystalId, count, activeChar, destroyItem);
- SystemMessage sm2 = new SystemMessage(SystemMessage.EARNED_S2_S1_s);
- sm2.addItemName(crystals.getItemId());
- sm2.addNumber(count);
- activeChar.sendPacket(sm2);
-
- ItemList il = new ItemList(activeChar, true);
- sendPacket(il);
-
- StatusUpdate su = new StatusUpdate(activeChar.getObjectId());
- su.addAttribute(StatusUpdate.CUR_LOAD, activeChar.getCurrentLoad());
- activeChar.sendPacket(su);
-
- activeChar.broadcastUserInfo();
-
- L2World world = L2World.getInstance();
- world.removeObject(destroyItem);
}
StatusUpdate su = new StatusUpdate(activeChar.getObjectId());
su.addAttribute(StatusUpdate.CUR_LOAD, activeChar.getCurrentLoad());