Addition of ReuseSkillById amount parameter.

This commit is contained in:
MobiusDevelopment
2020-12-04 07:37:12 +00:00
parent 2185781039
commit 7db0689748
17 changed files with 306 additions and 51 deletions

View File

@@ -30,10 +30,12 @@ import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime;
public class ReuseSkillById extends AbstractEffect public class ReuseSkillById extends AbstractEffect
{ {
private final int _skillId; private final int _skillId;
private final int _amount;
public ReuseSkillById(StatSet params) public ReuseSkillById(StatSet params)
{ {
_skillId = params.getInt("skillId", 0); _skillId = params.getInt("skillId", 0);
_amount = params.getInt("amount", 0);
} }
@Override @Override
@@ -51,9 +53,22 @@ public class ReuseSkillById extends AbstractEffect
final Skill s = player.getKnownSkill(_skillId); final Skill s = player.getKnownSkill(_skillId);
if (s != null) if (s != null)
{ {
player.removeTimeStamp(s); if (_amount > 0)
player.enableSkill(s); {
player.sendPacket(new SkillCoolTime(player)); final long reuse = player.getSkillRemainingReuseTime(s.getReuseHashCode());
if (reuse > 0)
{
player.removeTimeStamp(s);
player.addTimeStamp(s, Math.max(0, reuse - _amount));
player.sendPacket(new SkillCoolTime(player));
}
}
else
{
player.removeTimeStamp(s);
player.enableSkill(s);
player.sendPacket(new SkillCoolTime(player));
}
} }
} }
} }

View File

@@ -30,10 +30,12 @@ import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime;
public class ReuseSkillById extends AbstractEffect public class ReuseSkillById extends AbstractEffect
{ {
private final int _skillId; private final int _skillId;
private final int _amount;
public ReuseSkillById(StatSet params) public ReuseSkillById(StatSet params)
{ {
_skillId = params.getInt("skillId", 0); _skillId = params.getInt("skillId", 0);
_amount = params.getInt("amount", 0);
} }
@Override @Override
@@ -51,9 +53,22 @@ public class ReuseSkillById extends AbstractEffect
final Skill s = player.getKnownSkill(_skillId); final Skill s = player.getKnownSkill(_skillId);
if (s != null) if (s != null)
{ {
player.removeTimeStamp(s); if (_amount > 0)
player.enableSkill(s); {
player.sendPacket(new SkillCoolTime(player)); final long reuse = player.getSkillRemainingReuseTime(s.getReuseHashCode());
if (reuse > 0)
{
player.removeTimeStamp(s);
player.addTimeStamp(s, Math.max(0, reuse - _amount));
player.sendPacket(new SkillCoolTime(player));
}
}
else
{
player.removeTimeStamp(s);
player.enableSkill(s);
player.sendPacket(new SkillCoolTime(player));
}
} }
} }
} }

View File

@@ -30,10 +30,12 @@ import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime;
public class ReuseSkillById extends AbstractEffect public class ReuseSkillById extends AbstractEffect
{ {
private final int _skillId; private final int _skillId;
private final int _amount;
public ReuseSkillById(StatSet params) public ReuseSkillById(StatSet params)
{ {
_skillId = params.getInt("skillId", 0); _skillId = params.getInt("skillId", 0);
_amount = params.getInt("amount", 0);
} }
@Override @Override
@@ -51,9 +53,22 @@ public class ReuseSkillById extends AbstractEffect
final Skill s = player.getKnownSkill(_skillId); final Skill s = player.getKnownSkill(_skillId);
if (s != null) if (s != null)
{ {
player.removeTimeStamp(s); if (_amount > 0)
player.enableSkill(s); {
player.sendPacket(new SkillCoolTime(player)); final long reuse = player.getSkillRemainingReuseTime(s.getReuseHashCode());
if (reuse > 0)
{
player.removeTimeStamp(s);
player.addTimeStamp(s, Math.max(0, reuse - _amount));
player.sendPacket(new SkillCoolTime(player));
}
}
else
{
player.removeTimeStamp(s);
player.enableSkill(s);
player.sendPacket(new SkillCoolTime(player));
}
} }
} }
} }

View File

@@ -30,10 +30,12 @@ import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime;
public class ReuseSkillById extends AbstractEffect public class ReuseSkillById extends AbstractEffect
{ {
private final int _skillId; private final int _skillId;
private final int _amount;
public ReuseSkillById(StatSet params) public ReuseSkillById(StatSet params)
{ {
_skillId = params.getInt("skillId", 0); _skillId = params.getInt("skillId", 0);
_amount = params.getInt("amount", 0);
} }
@Override @Override
@@ -51,9 +53,22 @@ public class ReuseSkillById extends AbstractEffect
final Skill s = player.getKnownSkill(_skillId); final Skill s = player.getKnownSkill(_skillId);
if (s != null) if (s != null)
{ {
player.removeTimeStamp(s); if (_amount > 0)
player.enableSkill(s); {
player.sendPacket(new SkillCoolTime(player)); final long reuse = player.getSkillRemainingReuseTime(s.getReuseHashCode());
if (reuse > 0)
{
player.removeTimeStamp(s);
player.addTimeStamp(s, Math.max(0, reuse - _amount));
player.sendPacket(new SkillCoolTime(player));
}
}
else
{
player.removeTimeStamp(s);
player.enableSkill(s);
player.sendPacket(new SkillCoolTime(player));
}
} }
} }
} }

View File

@@ -30,10 +30,12 @@ import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime;
public class ReuseSkillById extends AbstractEffect public class ReuseSkillById extends AbstractEffect
{ {
private final int _skillId; private final int _skillId;
private final int _amount;
public ReuseSkillById(StatSet params) public ReuseSkillById(StatSet params)
{ {
_skillId = params.getInt("skillId", 0); _skillId = params.getInt("skillId", 0);
_amount = params.getInt("amount", 0);
} }
@Override @Override
@@ -51,9 +53,22 @@ public class ReuseSkillById extends AbstractEffect
final Skill s = player.getKnownSkill(_skillId); final Skill s = player.getKnownSkill(_skillId);
if (s != null) if (s != null)
{ {
player.removeTimeStamp(s); if (_amount > 0)
player.enableSkill(s); {
player.sendPacket(new SkillCoolTime(player)); final long reuse = player.getSkillRemainingReuseTime(s.getReuseHashCode());
if (reuse > 0)
{
player.removeTimeStamp(s);
player.addTimeStamp(s, Math.max(0, reuse - _amount));
player.sendPacket(new SkillCoolTime(player));
}
}
else
{
player.removeTimeStamp(s);
player.enableSkill(s);
player.sendPacket(new SkillCoolTime(player));
}
} }
} }
} }

View File

@@ -30,10 +30,12 @@ import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime;
public class ReuseSkillById extends AbstractEffect public class ReuseSkillById extends AbstractEffect
{ {
private final int _skillId; private final int _skillId;
private final int _amount;
public ReuseSkillById(StatSet params) public ReuseSkillById(StatSet params)
{ {
_skillId = params.getInt("skillId", 0); _skillId = params.getInt("skillId", 0);
_amount = params.getInt("amount", 0);
} }
@Override @Override
@@ -51,9 +53,22 @@ public class ReuseSkillById extends AbstractEffect
final Skill s = player.getKnownSkill(_skillId); final Skill s = player.getKnownSkill(_skillId);
if (s != null) if (s != null)
{ {
player.removeTimeStamp(s); if (_amount > 0)
player.enableSkill(s); {
player.sendPacket(new SkillCoolTime(player)); final long reuse = player.getSkillRemainingReuseTime(s.getReuseHashCode());
if (reuse > 0)
{
player.removeTimeStamp(s);
player.addTimeStamp(s, Math.max(0, reuse - _amount));
player.sendPacket(new SkillCoolTime(player));
}
}
else
{
player.removeTimeStamp(s);
player.enableSkill(s);
player.sendPacket(new SkillCoolTime(player));
}
} }
} }
} }

View File

@@ -30,10 +30,12 @@ import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime;
public class ReuseSkillById extends AbstractEffect public class ReuseSkillById extends AbstractEffect
{ {
private final int _skillId; private final int _skillId;
private final int _amount;
public ReuseSkillById(StatSet params) public ReuseSkillById(StatSet params)
{ {
_skillId = params.getInt("skillId", 0); _skillId = params.getInt("skillId", 0);
_amount = params.getInt("amount", 0);
} }
@Override @Override
@@ -51,9 +53,22 @@ public class ReuseSkillById extends AbstractEffect
final Skill s = player.getKnownSkill(_skillId); final Skill s = player.getKnownSkill(_skillId);
if (s != null) if (s != null)
{ {
player.removeTimeStamp(s); if (_amount > 0)
player.enableSkill(s); {
player.sendPacket(new SkillCoolTime(player)); final long reuse = player.getSkillRemainingReuseTime(s.getReuseHashCode());
if (reuse > 0)
{
player.removeTimeStamp(s);
player.addTimeStamp(s, Math.max(0, reuse - _amount));
player.sendPacket(new SkillCoolTime(player));
}
}
else
{
player.removeTimeStamp(s);
player.enableSkill(s);
player.sendPacket(new SkillCoolTime(player));
}
} }
} }
} }

View File

@@ -30,10 +30,12 @@ import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime;
public class ReuseSkillById extends AbstractEffect public class ReuseSkillById extends AbstractEffect
{ {
private final int _skillId; private final int _skillId;
private final int _amount;
public ReuseSkillById(StatSet params) public ReuseSkillById(StatSet params)
{ {
_skillId = params.getInt("skillId", 0); _skillId = params.getInt("skillId", 0);
_amount = params.getInt("amount", 0);
} }
@Override @Override
@@ -51,9 +53,22 @@ public class ReuseSkillById extends AbstractEffect
final Skill s = player.getKnownSkill(_skillId); final Skill s = player.getKnownSkill(_skillId);
if (s != null) if (s != null)
{ {
player.removeTimeStamp(s); if (_amount > 0)
player.enableSkill(s); {
player.sendPacket(new SkillCoolTime(player)); final long reuse = player.getSkillRemainingReuseTime(s.getReuseHashCode());
if (reuse > 0)
{
player.removeTimeStamp(s);
player.addTimeStamp(s, Math.max(0, reuse - _amount));
player.sendPacket(new SkillCoolTime(player));
}
}
else
{
player.removeTimeStamp(s);
player.enableSkill(s);
player.sendPacket(new SkillCoolTime(player));
}
} }
} }
} }

View File

@@ -30,10 +30,12 @@ import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime;
public class ReuseSkillById extends AbstractEffect public class ReuseSkillById extends AbstractEffect
{ {
private final int _skillId; private final int _skillId;
private final int _amount;
public ReuseSkillById(StatSet params) public ReuseSkillById(StatSet params)
{ {
_skillId = params.getInt("skillId", 0); _skillId = params.getInt("skillId", 0);
_amount = params.getInt("amount", 0);
} }
@Override @Override
@@ -51,9 +53,22 @@ public class ReuseSkillById extends AbstractEffect
final Skill s = player.getKnownSkill(_skillId); final Skill s = player.getKnownSkill(_skillId);
if (s != null) if (s != null)
{ {
player.removeTimeStamp(s); if (_amount > 0)
player.enableSkill(s); {
player.sendPacket(new SkillCoolTime(player)); final long reuse = player.getSkillRemainingReuseTime(s.getReuseHashCode());
if (reuse > 0)
{
player.removeTimeStamp(s);
player.addTimeStamp(s, Math.max(0, reuse - _amount));
player.sendPacket(new SkillCoolTime(player));
}
}
else
{
player.removeTimeStamp(s);
player.enableSkill(s);
player.sendPacket(new SkillCoolTime(player));
}
} }
} }
} }

View File

@@ -30,10 +30,12 @@ import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime;
public class ReuseSkillById extends AbstractEffect public class ReuseSkillById extends AbstractEffect
{ {
private final int _skillId; private final int _skillId;
private final int _amount;
public ReuseSkillById(StatSet params) public ReuseSkillById(StatSet params)
{ {
_skillId = params.getInt("skillId", 0); _skillId = params.getInt("skillId", 0);
_amount = params.getInt("amount", 0);
} }
@Override @Override
@@ -51,9 +53,22 @@ public class ReuseSkillById extends AbstractEffect
final Skill s = player.getKnownSkill(_skillId); final Skill s = player.getKnownSkill(_skillId);
if (s != null) if (s != null)
{ {
player.removeTimeStamp(s); if (_amount > 0)
player.enableSkill(s); {
player.sendPacket(new SkillCoolTime(player)); final long reuse = player.getSkillRemainingReuseTime(s.getReuseHashCode());
if (reuse > 0)
{
player.removeTimeStamp(s);
player.addTimeStamp(s, Math.max(0, reuse - _amount));
player.sendPacket(new SkillCoolTime(player));
}
}
else
{
player.removeTimeStamp(s);
player.enableSkill(s);
player.sendPacket(new SkillCoolTime(player));
}
} }
} }
} }

View File

@@ -30,10 +30,12 @@ import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime;
public class ReuseSkillById extends AbstractEffect public class ReuseSkillById extends AbstractEffect
{ {
private final int _skillId; private final int _skillId;
private final int _amount;
public ReuseSkillById(StatSet params) public ReuseSkillById(StatSet params)
{ {
_skillId = params.getInt("skillId", 0); _skillId = params.getInt("skillId", 0);
_amount = params.getInt("amount", 0);
} }
@Override @Override
@@ -51,9 +53,22 @@ public class ReuseSkillById extends AbstractEffect
final Skill s = player.getKnownSkill(_skillId); final Skill s = player.getKnownSkill(_skillId);
if (s != null) if (s != null)
{ {
player.removeTimeStamp(s); if (_amount > 0)
player.enableSkill(s); {
player.sendPacket(new SkillCoolTime(player)); final long reuse = player.getSkillRemainingReuseTime(s.getReuseHashCode());
if (reuse > 0)
{
player.removeTimeStamp(s);
player.addTimeStamp(s, Math.max(0, reuse - _amount));
player.sendPacket(new SkillCoolTime(player));
}
}
else
{
player.removeTimeStamp(s);
player.enableSkill(s);
player.sendPacket(new SkillCoolTime(player));
}
} }
} }
} }

View File

@@ -30,10 +30,12 @@ import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime;
public class ReuseSkillById extends AbstractEffect public class ReuseSkillById extends AbstractEffect
{ {
private final int _skillId; private final int _skillId;
private final int _amount;
public ReuseSkillById(StatSet params) public ReuseSkillById(StatSet params)
{ {
_skillId = params.getInt("skillId", 0); _skillId = params.getInt("skillId", 0);
_amount = params.getInt("amount", 0);
} }
@Override @Override
@@ -51,9 +53,22 @@ public class ReuseSkillById extends AbstractEffect
final Skill s = player.getKnownSkill(_skillId); final Skill s = player.getKnownSkill(_skillId);
if (s != null) if (s != null)
{ {
player.removeTimeStamp(s); if (_amount > 0)
player.enableSkill(s); {
player.sendPacket(new SkillCoolTime(player)); final long reuse = player.getSkillRemainingReuseTime(s.getReuseHashCode());
if (reuse > 0)
{
player.removeTimeStamp(s);
player.addTimeStamp(s, Math.max(0, reuse - _amount));
player.sendPacket(new SkillCoolTime(player));
}
}
else
{
player.removeTimeStamp(s);
player.enableSkill(s);
player.sendPacket(new SkillCoolTime(player));
}
} }
} }
} }

View File

@@ -30,10 +30,12 @@ import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime;
public class ReuseSkillById extends AbstractEffect public class ReuseSkillById extends AbstractEffect
{ {
private final int _skillId; private final int _skillId;
private final int _amount;
public ReuseSkillById(StatSet params) public ReuseSkillById(StatSet params)
{ {
_skillId = params.getInt("skillId", 0); _skillId = params.getInt("skillId", 0);
_amount = params.getInt("amount", 0);
} }
@Override @Override
@@ -51,9 +53,22 @@ public class ReuseSkillById extends AbstractEffect
final Skill s = player.getKnownSkill(_skillId); final Skill s = player.getKnownSkill(_skillId);
if (s != null) if (s != null)
{ {
player.removeTimeStamp(s); if (_amount > 0)
player.enableSkill(s); {
player.sendPacket(new SkillCoolTime(player)); final long reuse = player.getSkillRemainingReuseTime(s.getReuseHashCode());
if (reuse > 0)
{
player.removeTimeStamp(s);
player.addTimeStamp(s, Math.max(0, reuse - _amount));
player.sendPacket(new SkillCoolTime(player));
}
}
else
{
player.removeTimeStamp(s);
player.enableSkill(s);
player.sendPacket(new SkillCoolTime(player));
}
} }
} }
} }

View File

@@ -30,10 +30,12 @@ import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime;
public class ReuseSkillById extends AbstractEffect public class ReuseSkillById extends AbstractEffect
{ {
private final int _skillId; private final int _skillId;
private final int _amount;
public ReuseSkillById(StatSet params) public ReuseSkillById(StatSet params)
{ {
_skillId = params.getInt("skillId", 0); _skillId = params.getInt("skillId", 0);
_amount = params.getInt("amount", 0);
} }
@Override @Override
@@ -51,9 +53,22 @@ public class ReuseSkillById extends AbstractEffect
final Skill s = player.getKnownSkill(_skillId); final Skill s = player.getKnownSkill(_skillId);
if (s != null) if (s != null)
{ {
player.removeTimeStamp(s); if (_amount > 0)
player.enableSkill(s); {
player.sendPacket(new SkillCoolTime(player)); final long reuse = player.getSkillRemainingReuseTime(s.getReuseHashCode());
if (reuse > 0)
{
player.removeTimeStamp(s);
player.addTimeStamp(s, Math.max(0, reuse - _amount));
player.sendPacket(new SkillCoolTime(player));
}
}
else
{
player.removeTimeStamp(s);
player.enableSkill(s);
player.sendPacket(new SkillCoolTime(player));
}
} }
} }
} }

View File

@@ -30,10 +30,12 @@ import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime;
public class ReuseSkillById extends AbstractEffect public class ReuseSkillById extends AbstractEffect
{ {
private final int _skillId; private final int _skillId;
private final int _amount;
public ReuseSkillById(StatSet params) public ReuseSkillById(StatSet params)
{ {
_skillId = params.getInt("skillId", 0); _skillId = params.getInt("skillId", 0);
_amount = params.getInt("amount", 0);
} }
@Override @Override
@@ -51,9 +53,22 @@ public class ReuseSkillById extends AbstractEffect
final Skill s = player.getKnownSkill(_skillId); final Skill s = player.getKnownSkill(_skillId);
if (s != null) if (s != null)
{ {
player.removeTimeStamp(s); if (_amount > 0)
player.enableSkill(s); {
player.sendPacket(new SkillCoolTime(player)); final long reuse = player.getSkillRemainingReuseTime(s.getReuseHashCode());
if (reuse > 0)
{
player.removeTimeStamp(s);
player.addTimeStamp(s, Math.max(0, reuse - _amount));
player.sendPacket(new SkillCoolTime(player));
}
}
else
{
player.removeTimeStamp(s);
player.enableSkill(s);
player.sendPacket(new SkillCoolTime(player));
}
} }
} }
} }

View File

@@ -30,10 +30,12 @@ import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime;
public class ReuseSkillById extends AbstractEffect public class ReuseSkillById extends AbstractEffect
{ {
private final int _skillId; private final int _skillId;
private final int _amount;
public ReuseSkillById(StatSet params) public ReuseSkillById(StatSet params)
{ {
_skillId = params.getInt("skillId", 0); _skillId = params.getInt("skillId", 0);
_amount = params.getInt("amount", 0);
} }
@Override @Override
@@ -51,9 +53,22 @@ public class ReuseSkillById extends AbstractEffect
final Skill s = player.getKnownSkill(_skillId); final Skill s = player.getKnownSkill(_skillId);
if (s != null) if (s != null)
{ {
player.removeTimeStamp(s); if (_amount > 0)
player.enableSkill(s); {
player.sendPacket(new SkillCoolTime(player)); final long reuse = player.getSkillRemainingReuseTime(s.getReuseHashCode());
if (reuse > 0)
{
player.removeTimeStamp(s);
player.addTimeStamp(s, Math.max(0, reuse - _amount));
player.sendPacket(new SkillCoolTime(player));
}
}
else
{
player.removeTimeStamp(s);
player.enableSkill(s);
player.sendPacket(new SkillCoolTime(player));
}
} }
} }
} }

View File

@@ -30,10 +30,12 @@ import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime;
public class ReuseSkillById extends AbstractEffect public class ReuseSkillById extends AbstractEffect
{ {
private final int _skillId; private final int _skillId;
private final int _amount;
public ReuseSkillById(StatSet params) public ReuseSkillById(StatSet params)
{ {
_skillId = params.getInt("skillId", 0); _skillId = params.getInt("skillId", 0);
_amount = params.getInt("amount", 0);
} }
@Override @Override
@@ -51,9 +53,22 @@ public class ReuseSkillById extends AbstractEffect
final Skill s = player.getKnownSkill(_skillId); final Skill s = player.getKnownSkill(_skillId);
if (s != null) if (s != null)
{ {
player.removeTimeStamp(s); if (_amount > 0)
player.enableSkill(s); {
player.sendPacket(new SkillCoolTime(player)); final long reuse = player.getSkillRemainingReuseTime(s.getReuseHashCode());
if (reuse > 0)
{
player.removeTimeStamp(s);
player.addTimeStamp(s, Math.max(0, reuse - _amount));
player.sendPacket(new SkillCoolTime(player));
}
}
else
{
player.removeTimeStamp(s);
player.enableSkill(s);
player.sendPacket(new SkillCoolTime(player));
}
} }
} }
} }