소스 검색

More Retail like Enchant Progress. - tnx Charus

nBd 16 년 전
부모
커밋
374548cdbe

+ 27 - 60
L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/RequestEnchantItem.java

@@ -90,7 +90,7 @@ public final class RequestEnchantItem extends L2GameClientPacket
 		{
 			activeChar.sendPacket(new SystemMessage(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITION));
 			activeChar.setActiveEnchantItem(null);
-			activeChar.sendPacket(new ExPutEnchantTargetItemResult(2));
+			activeChar.sendPacket(new ExPutEnchantTargetItemResult(2, 0, 0));
 			return;
 		}
 		
@@ -108,7 +108,7 @@ public final class RequestEnchantItem extends L2GameClientPacket
 				if (item.getOwnerId() != activeChar.getObjectId())
 				{
 					activeChar.setActiveEnchantItem(null);
-					activeChar.sendPacket(new ExPutEnchantTargetItemResult(2));
+					activeChar.sendPacket(new ExPutEnchantTargetItemResult(2, 0, 0));
 					return;
 				}
 				break;
@@ -225,7 +225,7 @@ public final class RequestEnchantItem extends L2GameClientPacket
 		{
 			activeChar.sendPacket(new SystemMessage(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITION));
 			activeChar.setActiveEnchantItem(null);
-			activeChar.sendPacket(new ExPutEnchantTargetItemResult(2));
+			activeChar.sendPacket(new ExPutEnchantTargetItemResult(2, 0, 0));
 			return;
 		}
 		
@@ -239,7 +239,7 @@ public final class RequestEnchantItem extends L2GameClientPacket
 			activeChar.sendPacket(new SystemMessage(SystemMessageId.NOT_ENOUGH_ITEMS));
 			Util.handleIllegalPlayerAction(activeChar, "Player " + activeChar.getName() + " tried to enchant with a scroll he doesn't have", Config.DEFAULT_PUNISH);
 			activeChar.setActiveEnchantItem(null);
-			activeChar.sendPacket(new ExPutEnchantTargetItemResult(2));
+			activeChar.sendPacket(new ExPutEnchantTargetItemResult(2, 0, 0));
 			return;
 		}
 		
@@ -322,78 +322,43 @@ public final class RequestEnchantItem extends L2GameClientPacket
 				{
 					activeChar.sendPacket(new SystemMessage(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITION));
 					activeChar.setActiveEnchantItem(null);
-					activeChar.sendPacket(new ExPutEnchantTargetItemResult(2));
+					activeChar.sendPacket(new ExPutEnchantTargetItemResult(2, 0, 0));
 					return;
 				}
 				if (item.getLocation() != L2ItemInstance.ItemLocation.INVENTORY && item.getLocation() != L2ItemInstance.ItemLocation.PAPERDOLL)
 				{
 					activeChar.sendPacket(new SystemMessage(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITION));
 					activeChar.setActiveEnchantItem(null);
-					activeChar.sendPacket(new ExPutEnchantTargetItemResult(2));
+					activeChar.sendPacket(new ExPutEnchantTargetItemResult(2, 0, 0));
 					return;
 				}
 				
-				if (item.getEnchantLevel() == 0)
-				{
-					sm = new SystemMessage(SystemMessageId.S1_SUCCESSFULLY_ENCHANTED);
-					sm.addItemName(item);
-					activeChar.sendPacket(sm);
-				}
-				else
-				{
-					sm = new SystemMessage(SystemMessageId.S1_S2_SUCCESSFULLY_ENCHANTED);
-					sm.addNumber(item.getEnchantLevel());
-					sm.addItemName(item);
-					activeChar.sendPacket(sm);
-				}
 				item.setEnchantLevel(item.getEnchantLevel() + 1);
 				item.updateDatabase();
 			}
 		}
 		else
 		{
-			if (!blessedScroll)
-			{
-				if (item.getEnchantLevel() > 0)
-				{
-					sm = new SystemMessage(SystemMessageId.ENCHANTMENT_FAILED_S1_S2_EVAPORATED);
-					sm.addNumber(item.getEnchantLevel());
-					sm.addItemName(item);
-					activeChar.sendPacket(sm);
-				}
-				else
-				{
-					sm = new SystemMessage(SystemMessageId.ENCHANTMENT_FAILED_S1_EVAPORATED);
-					sm.addItemName(item);
-					activeChar.sendPacket(sm);
-				}
-			}
-			else
-			{
-				sm = new SystemMessage(SystemMessageId.BLESSED_ENCHANT_FAILED);
-				activeChar.sendPacket(sm);
-			}
-			
 			failed = true;
 			
 			if (!blessedScroll)
 			{
-				if (item.getEnchantLevel() > 0)
-				{
-					sm = new SystemMessage(SystemMessageId.EQUIPMENT_S1_S2_REMOVED);
-					sm.addNumber(item.getEnchantLevel());
-					sm.addItemName(item);
-					activeChar.sendPacket(sm);
-				}
-				else
-				{
-					sm = new SystemMessage(SystemMessageId.S1_DISARMED);
-					sm.addItemName(item);
-					activeChar.sendPacket(sm);
-				}
-				
 				if (item.isEquipped())
 				{
+					if (item.getEnchantLevel() > 0)
+					{
+						sm = new SystemMessage(SystemMessageId.EQUIPMENT_S1_S2_REMOVED);
+						sm.addNumber(item.getEnchantLevel());
+						sm.addItemName(item);
+						activeChar.sendPacket(sm);
+					}
+					else
+					{
+						sm = new SystemMessage(SystemMessageId.S1_DISARMED);
+						sm.addItemName(item);
+						activeChar.sendPacket(sm);
+					}
+					
 					L2ItemInstance[] unequiped = activeChar.getInventory().unEquipItemInSlotAndRecord(item.getLocationSlot());
 					InventoryUpdate iu = new InventoryUpdate();
 					for (L2ItemInstance itm : unequiped)
@@ -445,11 +410,16 @@ public final class RequestEnchantItem extends L2GameClientPacket
 				
 				L2World world = L2World.getInstance();
 				world.removeObject(destroyItem);
+				activeChar.sendPacket(new ExPutEnchantTargetItemResult(1, crystalId, count));
 			}
 			else
 			{
+				sm = new SystemMessage(SystemMessageId.BLESSED_ENCHANT_FAILED);
+				activeChar.sendPacket(sm);
+				
 				item.setEnchantLevel(0);
 				item.updateDatabase();
+				activeChar.sendPacket(new ExPutEnchantTargetItemResult(2, 0, 0));
 			}
 		}
 		sm = null;
@@ -459,12 +429,9 @@ public final class RequestEnchantItem extends L2GameClientPacket
 		activeChar.sendPacket(su);
 		su = null;
 		
-		int result = 0;
-		
-		if (failed)
-			result = 1;
+		if (!failed)
+			activeChar.sendPacket(new ExPutEnchantTargetItemResult(0, 0, 0));
 		
-		activeChar.sendPacket(new ExPutEnchantTargetItemResult(result));
 		activeChar.sendPacket(new ItemList(activeChar, false));
 		activeChar.broadcastUserInfo();
 		activeChar.setActiveEnchantItem(null);

+ 1 - 1
L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/RequestExCancelEnchantItem.java

@@ -50,7 +50,7 @@ public class RequestExCancelEnchantItem extends L2GameClientPacket
 		L2PcInstance activeChar = this.getClient().getActiveChar();
 		if (activeChar != null)
 		{
-			activeChar.sendPacket(new ExPutEnchantTargetItemResult(2));
+			activeChar.sendPacket(new ExPutEnchantTargetItemResult(2, 0, 0));
 			activeChar.setActiveEnchantItem(null);
 		}
 	}

+ 2 - 2
L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/RequestExTryToPutEnchantTargetItem.java

@@ -72,7 +72,7 @@ public class RequestExTryToPutEnchantTargetItem extends L2GameClientPacket
 			{
 				activeChar.sendPacket(new SystemMessage(SystemMessageId.DOES_NOT_FIT_SCROLL_CONDITIONS));
 				activeChar.setActiveEnchantItem(null);
-				activeChar.sendPacket(new ExPutEnchantTargetItemResult(2));
+				activeChar.sendPacket(new ExPutEnchantTargetItemResult(2, 0, 0));
 				return;
 			}
 			
@@ -174,7 +174,7 @@ public class RequestExTryToPutEnchantTargetItem extends L2GameClientPacket
 			{
 				activeChar.sendPacket(new SystemMessage(SystemMessageId.DOES_NOT_FIT_SCROLL_CONDITIONS));
 				activeChar.setActiveEnchantItem(null);
-				activeChar.sendPacket(new ExPutEnchantTargetItemResult(2));
+				activeChar.sendPacket(new ExPutEnchantTargetItemResult(2, 0, 0));
 				return;
 			}
 			activeChar.sendPacket(new RequestEnchant(1));

+ 8 - 7
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExPutEnchantTargetItemResult.java

@@ -23,16 +23,17 @@ public class ExPutEnchantTargetItemResult extends L2GameServerPacket
 	private static final String _S__87_EXPUTENCHANTTARGETITEMRESULT = "[S] 87 ExPutEnchantTargetItemResult";
 	
 	private int _result;
-	private int _unk1;
-	private int _unk2;
+	private int _crystal;
+	private int _count;
+	
 	/**
 	 * 
 	 */
-	public ExPutEnchantTargetItemResult(int result)
+	public ExPutEnchantTargetItemResult(int result, int crystal, int count)
 	{
 		_result = result;
-		_unk1 = 0;
-		_unk2 = 0;
+		_crystal = crystal;
+		_count = count;
 	}
 	
 	/**
@@ -52,7 +53,7 @@ public class ExPutEnchantTargetItemResult extends L2GameServerPacket
 	{
 		writeC(0x87);
 		writeD(_result);
-		writeD(_unk1);
-		writeD(_unk2);
+		writeD(_crystal);
+		writeD(_count);
 	}
 }