瀏覽代碼

BETA: Fix for [4989], #5731:
* Skill shortcut level wasn't updated properly after skill enchant.

Zoey76 13 年之前
父節點
當前提交
1d8ba70a5c

+ 6 - 5
L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestExEnchantSkill.java

@@ -100,8 +100,8 @@ public final class RequestExEnchantSkill extends L2GameClientPacket
 			return;
 		}
 		final EnchantSkillDetail esd = s.getEnchantSkillDetail(_skillLvl);
-		final int currentSkillLevel = player.getSkillLevel(_skillId);
-		if (currentSkillLevel != s.getMinSkillLevel(_skillLvl))
+		final int beforeEnchantSkillLevel = player.getSkillLevel(_skillId);
+		if (beforeEnchantSkillLevel != s.getMinSkillLevel(_skillLvl))
 		{
 			return;
 		}
@@ -183,9 +183,10 @@ public final class RequestExEnchantSkill extends L2GameClientPacket
 			player.sendPacket(new UserInfo(player));
 			player.sendPacket(new ExBrExtraUserInfo(player));
 			player.sendSkillList();
-			player.sendPacket(new ExEnchantSkillInfo(_skillId, currentSkillLevel));
-			player.sendPacket(new ExEnchantSkillInfoDetail(0, _skillId, currentSkillLevel + 1, player));
-			player.updateShortCuts(_skillId, currentSkillLevel);
+			final int afterEnchantSkillLevel = player.getSkillLevel(_skillId);
+			player.sendPacket(new ExEnchantSkillInfo(_skillId, afterEnchantSkillLevel));
+			player.sendPacket(new ExEnchantSkillInfoDetail(0, _skillId, afterEnchantSkillLevel + 1, player));
+			player.updateShortCuts(_skillId, afterEnchantSkillLevel);
 		}
 		else
 		{

+ 7 - 6
L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestExEnchantSkillRouteChange.java

@@ -98,14 +98,14 @@ public final class RequestExEnchantSkillRouteChange extends L2GameClientPacket
 			return;
 		}
 		
-		final int currentSkillLevel = player.getSkillLevel(_skillId);
+		final int beforeEnchantSkillLevel = player.getSkillLevel(_skillId);
 		// do u have this skill enchanted?
-		if (currentSkillLevel <= 100)
+		if (beforeEnchantSkillLevel <= 100)
 		{
 			return;
 		}
 		
-		int currentEnchantLevel = currentSkillLevel % 100;
+		int currentEnchantLevel = beforeEnchantSkillLevel % 100;
 		// is the requested level valid?
 		if (currentEnchantLevel != _skillLvl % 100)
 		{
@@ -198,9 +198,10 @@ public final class RequestExEnchantSkillRouteChange extends L2GameClientPacket
 				player.sendPacket(sm);
 			}
 			player.sendSkillList();
-			player.sendPacket(new ExEnchantSkillInfo(_skillId, currentSkillLevel));
-			player.sendPacket(new ExEnchantSkillInfoDetail(3, _skillId, currentSkillLevel, player));
-			player.updateShortCuts(_skillId, currentSkillLevel);
+			final int afterEnchantSkillLevel = player.getSkillLevel(_skillId);
+			player.sendPacket(new ExEnchantSkillInfo(_skillId, afterEnchantSkillLevel));
+			player.sendPacket(new ExEnchantSkillInfoDetail(3, _skillId, afterEnchantSkillLevel, player));
+			player.updateShortCuts(_skillId, afterEnchantSkillLevel);
 		}
 		else
 		{

+ 6 - 5
L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestExEnchantSkillSafe.java

@@ -99,8 +99,8 @@ public final class RequestExEnchantSkillSafe extends L2GameClientPacket
 			return;
 		}
 		final EnchantSkillDetail esd = s.getEnchantSkillDetail(_skillLvl);
-		final int currentSkillLevel = player.getSkillLevel(_skillId);
-		if (currentSkillLevel != s.getMinSkillLevel(_skillLvl))
+		final int beforeEnchantSkillLevel = player.getSkillLevel(_skillId);
+		if (beforeEnchantSkillLevel != s.getMinSkillLevel(_skillLvl))
 		{
 			return;
 		}
@@ -185,9 +185,10 @@ public final class RequestExEnchantSkillSafe extends L2GameClientPacket
 			player.sendPacket(new UserInfo(player));
 			player.sendPacket(new ExBrExtraUserInfo(player));
 			player.sendSkillList();
-			player.sendPacket(new ExEnchantSkillInfo(_skillId, currentSkillLevel));
-			player.sendPacket(new ExEnchantSkillInfoDetail(1, _skillId, currentSkillLevel + 1, player));
-			player.updateShortCuts(_skillId, currentSkillLevel);
+			final int afterEnchantSkillLevel = player.getSkillLevel(_skillId);
+			player.sendPacket(new ExEnchantSkillInfo(_skillId, afterEnchantSkillLevel));
+			player.sendPacket(new ExEnchantSkillInfoDetail(1, _skillId, afterEnchantSkillLevel + 1, player));
+			player.updateShortCuts(_skillId, afterEnchantSkillLevel);
 		}
 		else
 		{

+ 7 - 6
L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestExEnchantSkillUntrain.java

@@ -102,11 +102,11 @@ public final class RequestExEnchantSkillUntrain extends L2GameClientPacket
 		
 		int reqItemId = EnchantGroupsTable.UNTRAIN_ENCHANT_BOOK;
 		
-		final int currentSkillLevel = player.getSkillLevel(_skillId);
-		if (currentSkillLevel - 1 != _skillLvl && (currentSkillLevel % 100 != 1 || _skillLvl != s.getBaseLevel()))
+		final int beforeUntrainSkillLevel = player.getSkillLevel(_skillId);
+		if (beforeUntrainSkillLevel - 1 != _skillLvl && (beforeUntrainSkillLevel % 100 != 1 || _skillLvl != s.getBaseLevel()))
 			return;
 		
-		EnchantSkillDetail esd = s.getEnchantSkillDetail(currentSkillLevel);
+		EnchantSkillDetail esd = s.getEnchantSkillDetail(beforeUntrainSkillLevel);
 		
 		int requiredSp = esd.getSpCost();
 		int requireditems = esd.getAdenaCost();
@@ -176,9 +176,10 @@ public final class RequestExEnchantSkillUntrain extends L2GameClientPacket
 			player.sendPacket(sm);
 		}
 		player.sendSkillList();
-		player.sendPacket(new ExEnchantSkillInfo(_skillId, player.getSkillLevel(_skillId)));
-		player.sendPacket(new ExEnchantSkillInfoDetail(2, _skillId, player.getSkillLevel(_skillId)-1, player));
-		player.updateShortCuts(_skillId, currentSkillLevel);
+		final int afterUntrainSkillLevel = player.getSkillLevel(_skillId);
+		player.sendPacket(new ExEnchantSkillInfo(_skillId, afterUntrainSkillLevel));
+		player.sendPacket(new ExEnchantSkillInfoDetail(2, _skillId, afterUntrainSkillLevel - 1, player));
+		player.updateShortCuts(_skillId, afterUntrainSkillLevel);
 	}
 	
 	@Override