Browse Source

Skills cool-down display fix.

_DS_ 15 năm trước cách đây
mục cha
commit
ef4c0f50c1

+ 8 - 5
L2_GameServer/java/com/l2jserver/gameserver/model/actor/L2Character.java

@@ -6241,7 +6241,7 @@ public abstract class L2Character extends L2Object
 		if (_disabledSkills == null)
 			_disabledSkills = Collections.synchronizedMap(new FastMap<Integer, Long>());
 
-		_disabledSkills.put(skillId, delay > 0 ? System.currentTimeMillis() + delay : Long.MAX_VALUE);
+		_disabledSkills.put(skillId, delay > 10 ? System.currentTimeMillis() + delay : Long.MAX_VALUE);
 	}
 
 	/**
@@ -6261,14 +6261,17 @@ public abstract class L2Character extends L2Object
 		if (_disabledSkills == null)
 			return false;
 
-		if (!_disabledSkills.containsKey(skillId))
+		final Long timeStamp = _disabledSkills.get(Integer.valueOf(skillId));
+		if (timeStamp == null)
 			return false;
 
-		final boolean result = _disabledSkills.get(skillId) > System.currentTimeMillis();
-		if (!result)
+		if (timeStamp < System.currentTimeMillis())
+		{
 			_disabledSkills.remove(Integer.valueOf(skillId));
+			return false;
+		}
 
-		return result;
+		return true;
 	}
 
 	/**

+ 7 - 0
L2_GameServer/java/com/l2jserver/gameserver/network/serverpackets/SkillCoolTime.java

@@ -15,6 +15,7 @@
 package com.l2jserver.gameserver.network.serverpackets;
 
 import java.util.Collection;
+import java.util.Iterator;
 
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance.TimeStamp;
@@ -31,6 +32,12 @@ public class SkillCoolTime extends L2GameServerPacket
     public SkillCoolTime(L2PcInstance cha)
     {
         _reuseTimeStamps = cha.getReuseTimeStamps();
+        Iterator<TimeStamp> iter = _reuseTimeStamps.iterator();
+        while (iter.hasNext())
+        {
+        	if (!iter.next().hasNotPassed()) // remove expired timestamps
+        		iter.remove();
+        }
     }
     
     /**