All pastes #45504 Raw Edit

Miscellany

public text v1 · immutable
#45504 ·published 2006-03-13 21:24 UTC
rendered paste body
Index: 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());