Addition of RequestSkillCoolTime.

Thanks to Fakee.
This commit is contained in:
MobiusDevelopment
2022-11-25 04:28:54 +00:00
parent c92cbfcec0
commit ea9280bb30
119 changed files with 1428 additions and 322 deletions

View File

@@ -142,11 +142,13 @@ public class TimeStamp
{
return 0;
}
final long remainingTime = Math.max(_stamp - System.currentTimeMillis(), 0);
if (remainingTime == 0)
{
_stamp = 0;
}
return remainingTime;
}
@@ -160,11 +162,13 @@ public class TimeStamp
{
return false;
}
final boolean hasNotPassed = System.currentTimeMillis() < _stamp;
if (!hasNotPassed)
{
_stamp = 0;
}
return hasNotPassed;
}
}

View File

@@ -26,9 +26,11 @@ public class RequestSkillCoolTime implements ClientPacket
public void run(GameClient client)
{
final Player player = client.getPlayer();
if (player != null)
if (player == null)
{
player.sendPacket(new SkillCoolTime(player));
return;
}
player.sendPacket(new SkillCoolTime(player));
}
}

View File

@@ -16,7 +16,7 @@
*/
package org.l2jmobius.gameserver.network.serverpackets;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import org.l2jmobius.gameserver.model.TimeStamp;
@@ -29,17 +29,15 @@ import org.l2jmobius.gameserver.network.ServerPackets;
*/
public class SkillCoolTime extends ServerPacket
{
private final long _currentTime;
private final List<TimeStamp> _skillReuseTimeStamps = new ArrayList<>();
private final List<TimeStamp> _reuseTimestamps = new LinkedList<>();
public SkillCoolTime(Player player)
{
_currentTime = System.currentTimeMillis();
for (TimeStamp ts : player.getSkillReuseTimeStamps().values())
{
if (_currentTime < ts.getStamp())
if (ts.hasNotPassed())
{
_skillReuseTimeStamps.add(ts);
_reuseTimestamps.add(ts);
}
}
}
@@ -47,14 +45,15 @@ public class SkillCoolTime extends ServerPacket
@Override
public void write()
{
final long currentTime = System.currentTimeMillis();
ServerPackets.SKILL_COOL_TIME.writeId(this);
writeInt(_skillReuseTimeStamps.size());
for (TimeStamp ts : _skillReuseTimeStamps)
writeInt(_reuseTimestamps.size());
for (TimeStamp ts : _reuseTimestamps)
{
writeInt(ts.getSkillId());
writeInt(ts.getSkillLevel());
writeInt((int) ts.getReuse() / 1000);
writeInt((int) Math.max(ts.getStamp() - _currentTime, 0) / 1000);
writeInt((int) Math.max(ts.getStamp() - currentTime, 0) / 1000);
}
}
}