rendered paste bodyIndex: java/net/sf/l2j/gameserver/handler/itemhandlers/EnchantScrolls.java
===================================================================
--- java/net/sf/l2j/gameserver/handler/itemhandlers/EnchantScrolls.java (revisione 1603)
+++ java/net/sf/l2j/gameserver/handler/itemhandlers/EnchantScrolls.java (copia locale)
@@ -10,11 +10,11 @@
public class EnchantScrolls implements IItemHandler
{
private static int[] _itemIds = {
- 729, 730, 731, 732, // a grade
- 947, 948, 949, 950, // b grade
- 951, 952, 953, 954, // c grade
- 955, 956, 957, 958, // d grade
- 959, 960, 961, 962 // s grade
+ 729, 730, 6569, 6570, // a grade
+ 947, 948, 6571, 6572, // b grade
+ 951, 952, 6573, 6574, // c grade
+ 955, 956, 6575, 6576, // d grade
+ 959, 960, 6577, 6578 // s grade
};
public void useItem(L2PlayableInstance playable, L2ItemInstance item)
Index: java/net/sf/l2j/gameserver/clientpackets/RequestEnchantItem.java
===================================================================
--- java/net/sf/l2j/gameserver/clientpackets/RequestEnchantItem.java (revisione 1603)
+++ java/net/sf/l2j/gameserver/clientpackets/RequestEnchantItem.java (copia locale)
@@ -80,36 +80,36 @@
crystalId = 1461;
if (scroll.getItemId() == 729 && item.getItem().getType2() == L2Item.TYPE2_WEAPON){ enchantItem = true; }
else if (scroll.getItemId() == 730 && (item.getItem().getType2() == L2Item.TYPE2_SHIELD_ARMOR || item.getItem().getType2() == L2Item.TYPE2_ACCESSORY)){ enchantItem = true; }
- else if (scroll.getItemId() == 731 && item.getItem().getType2() == L2Item.TYPE2_WEAPON){ blessedScroll = true; enchantItem = true; }
- else if (scroll.getItemId() == 732 && (item.getItem().getType2() == L2Item.TYPE2_SHIELD_ARMOR || item.getItem().getType2() == L2Item.TYPE2_ACCESSORY)){ blessedScroll = true; enchantItem = true; }
+ else if (scroll.getItemId() == 6569 && item.getItem().getType2() == L2Item.TYPE2_WEAPON){ blessedScroll = true; enchantItem = true; }
+ else if (scroll.getItemId() == 6570 && (item.getItem().getType2() == L2Item.TYPE2_SHIELD_ARMOR || item.getItem().getType2() == L2Item.TYPE2_ACCESSORY)){ blessedScroll = true; enchantItem = true; }
break;
case L2Item.CRYSTAL_B:
crystalId = 1460;
if (scroll.getItemId() == 947 && item.getItem().getType2() == L2Item.TYPE2_WEAPON){ enchantItem = true; }
else if (scroll.getItemId() == 948 && (item.getItem().getType2() == L2Item.TYPE2_SHIELD_ARMOR || item.getItem().getType2() == L2Item.TYPE2_ACCESSORY)){ enchantItem = true; }
- else if (scroll.getItemId() == 949 && item.getItem().getType2() == L2Item.TYPE2_WEAPON){ blessedScroll = true; enchantItem = true; }
- else if (scroll.getItemId() == 950 && (item.getItem().getType2() == L2Item.TYPE2_SHIELD_ARMOR || item.getItem().getType2() == L2Item.TYPE2_ACCESSORY)){ blessedScroll = true; enchantItem = true; }
+ else if (scroll.getItemId() == 6571 && item.getItem().getType2() == L2Item.TYPE2_WEAPON){ blessedScroll = true; enchantItem = true; }
+ else if (scroll.getItemId() == 6572 && (item.getItem().getType2() == L2Item.TYPE2_SHIELD_ARMOR || item.getItem().getType2() == L2Item.TYPE2_ACCESSORY)){ blessedScroll = true; enchantItem = true; }
break;
case L2Item.CRYSTAL_C:
crystalId = 1459;
if (scroll.getItemId() == 951 && item.getItem().getType2() == L2Item.TYPE2_WEAPON){ enchantItem = true; }
else if (scroll.getItemId() == 952 && (item.getItem().getType2() == L2Item.TYPE2_SHIELD_ARMOR || item.getItem().getType2() == L2Item.TYPE2_ACCESSORY)){ enchantItem = true; }
- else if (scroll.getItemId() == 953 && item.getItem().getType2() == L2Item.TYPE2_WEAPON){ blessedScroll = true; enchantItem = true; }
- else if (scroll.getItemId() == 954 && (item.getItem().getType2() == L2Item.TYPE2_SHIELD_ARMOR || item.getItem().getType2() == L2Item.TYPE2_ACCESSORY)){ blessedScroll = true; enchantItem = true; }
+ else if (scroll.getItemId() == 6573 && item.getItem().getType2() == L2Item.TYPE2_WEAPON){ blessedScroll = true; enchantItem = true; }
+ else if (scroll.getItemId() == 6574 && (item.getItem().getType2() == L2Item.TYPE2_SHIELD_ARMOR || item.getItem().getType2() == L2Item.TYPE2_ACCESSORY)){ blessedScroll = true; enchantItem = true; }
break;
case L2Item.CRYSTAL_D:
crystalId = 1458;
if (scroll.getItemId() == 955 && item.getItem().getType2() == L2Item.TYPE2_WEAPON){ enchantItem = true; }
else if (scroll.getItemId() == 956 && (item.getItem().getType2() == L2Item.TYPE2_SHIELD_ARMOR || item.getItem().getType2() == L2Item.TYPE2_ACCESSORY)){ enchantItem = true; }
- else if (scroll.getItemId() == 957 && item.getItem().getType2() == L2Item.TYPE2_WEAPON){ blessedScroll = true; enchantItem = true; }
- else if (scroll.getItemId() == 958 && (item.getItem().getType2() == L2Item.TYPE2_SHIELD_ARMOR || item.getItem().getType2() == L2Item.TYPE2_ACCESSORY)){ blessedScroll = true; enchantItem = true; }
+ else if (scroll.getItemId() == 6575 && item.getItem().getType2() == L2Item.TYPE2_WEAPON){ blessedScroll = true; enchantItem = true; }
+ else if (scroll.getItemId() == 6576 && (item.getItem().getType2() == L2Item.TYPE2_SHIELD_ARMOR || item.getItem().getType2() == L2Item.TYPE2_ACCESSORY)){ blessedScroll = true; enchantItem = true; }
break;
case L2Item.CRYSTAL_S:
crystalId = 1462;
if (scroll.getItemId() == 959 && item.getItem().getType2() == L2Item.TYPE2_WEAPON){ enchantItem = true; }
else if (scroll.getItemId() == 960 && (item.getItem().getType2() == L2Item.TYPE2_SHIELD_ARMOR || item.getItem().getType2() == L2Item.TYPE2_ACCESSORY)){ enchantItem = true; }
- else if (scroll.getItemId() == 961 && item.getItem().getType2() == L2Item.TYPE2_WEAPON){ blessedScroll = true; enchantItem = true; }
- else if (scroll.getItemId() == 962 && (item.getItem().getType2() == L2Item.TYPE2_SHIELD_ARMOR || item.getItem().getType2() == L2Item.TYPE2_ACCESSORY)){ blessedScroll = true; enchantItem = true; }
+ else if (scroll.getItemId() == 6577 && item.getItem().getType2() == L2Item.TYPE2_WEAPON){ blessedScroll = true; enchantItem = true; }
+ else if (scroll.getItemId() == 6578 && (item.getItem().getType2() == L2Item.TYPE2_SHIELD_ARMOR || item.getItem().getType2() == L2Item.TYPE2_ACCESSORY)){ blessedScroll = true; enchantItem = true; }
break;
}
@@ -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());