ExDieInfo support for non skill damage.
This commit is contained in:
parent
35a2958fab
commit
60b164e47f
@ -4925,20 +4925,25 @@ public class PlayerInstance extends Playable
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addDamageTaken(Creature attacker, Skill skill, double damage)
|
public void addDamageTaken(Creature attacker, int skillId, double damage)
|
||||||
{
|
{
|
||||||
if (attacker == this)
|
if (attacker == this)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
_lastDamageTaken.add(new DamageTakenHolder(attacker, skill, damage));
|
_lastDamageTaken.add(new DamageTakenHolder(attacker, skillId, damage));
|
||||||
while (_lastDamageTaken.size() > 10)
|
while (_lastDamageTaken.size() > 20)
|
||||||
{
|
{
|
||||||
_lastDamageTaken.remove(0);
|
_lastDamageTaken.remove(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void clearDamageTaken()
|
||||||
|
{
|
||||||
|
_lastDamageTaken.clear();
|
||||||
|
}
|
||||||
|
|
||||||
private Collection<ItemInstance> onDieDropItem(Creature killer)
|
private Collection<ItemInstance> onDieDropItem(Creature killer)
|
||||||
{
|
{
|
||||||
final List<ItemInstance> droppedItems = new ArrayList<>();
|
final List<ItemInstance> droppedItems = new ArrayList<>();
|
||||||
|
@ -281,10 +281,7 @@ public class PlayerStatus extends PlayableStatus
|
|||||||
|
|
||||||
if (amount > 0)
|
if (amount > 0)
|
||||||
{
|
{
|
||||||
if ((skill != null) && skill.isBad())
|
getActiveChar().addDamageTaken(attacker, skill != null ? skill.getDisplayId() : 0, amount);
|
||||||
{
|
|
||||||
getActiveChar().addDamageTaken(attacker, skill, amount);
|
|
||||||
}
|
|
||||||
|
|
||||||
double newHp = Math.max(getCurrentHp() - amount, getActiveChar().isUndying() ? 1 : 0);
|
double newHp = Math.max(getCurrentHp() - amount, getActiveChar().isUndying() ? 1 : 0);
|
||||||
if (newHp <= 0)
|
if (newHp <= 0)
|
||||||
|
@ -17,7 +17,6 @@
|
|||||||
package org.l2jmobius.gameserver.model.holders;
|
package org.l2jmobius.gameserver.model.holders;
|
||||||
|
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Mobius
|
* @author Mobius
|
||||||
@ -25,13 +24,13 @@ import org.l2jmobius.gameserver.model.skills.Skill;
|
|||||||
public class DamageTakenHolder
|
public class DamageTakenHolder
|
||||||
{
|
{
|
||||||
private final Creature _creature;
|
private final Creature _creature;
|
||||||
private final Skill _skill;
|
private final int _skillId;
|
||||||
private final double _damage;
|
private final double _damage;
|
||||||
|
|
||||||
public DamageTakenHolder(Creature creature, Skill skill, double damage)
|
public DamageTakenHolder(Creature creature, int skillId, double damage)
|
||||||
{
|
{
|
||||||
_creature = creature;
|
_creature = creature;
|
||||||
_skill = skill;
|
_skillId = skillId;
|
||||||
_damage = damage;
|
_damage = damage;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -40,9 +39,9 @@ public class DamageTakenHolder
|
|||||||
return _creature;
|
return _creature;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Skill getSkill()
|
public int getSkillId()
|
||||||
{
|
{
|
||||||
return _skill;
|
return _skillId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public double getDamage()
|
public double getDamage()
|
||||||
|
@ -55,7 +55,7 @@ public class ExDieInfo implements IClientOutgoingPacket
|
|||||||
{
|
{
|
||||||
packet.writeS(damageHolder.getCreature().getName());
|
packet.writeS(damageHolder.getCreature().getName());
|
||||||
packet.writeH(0x00);
|
packet.writeH(0x00);
|
||||||
packet.writeD(damageHolder.getSkill().getDisplayId());
|
packet.writeD(damageHolder.getSkillId());
|
||||||
packet.writeF(damageHolder.getDamage());
|
packet.writeF(damageHolder.getDamage());
|
||||||
packet.writeD(0x00);
|
packet.writeD(0x00);
|
||||||
}
|
}
|
||||||
|
@ -72,6 +72,7 @@ public class AttackStanceTaskManager
|
|||||||
creature.getAI().setAutoAttacking(false);
|
creature.getAI().setAutoAttacking(false);
|
||||||
if (creature.isPlayer() && creature.hasSummon())
|
if (creature.isPlayer() && creature.hasSummon())
|
||||||
{
|
{
|
||||||
|
creature.getActingPlayer().clearDamageTaken();
|
||||||
final Summon pet = creature.getPet();
|
final Summon pet = creature.getPet();
|
||||||
if (pet != null)
|
if (pet != null)
|
||||||
{
|
{
|
||||||
|
@ -4895,20 +4895,25 @@ public class PlayerInstance extends Playable
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addDamageTaken(Creature attacker, Skill skill, double damage)
|
public void addDamageTaken(Creature attacker, int skillId, double damage)
|
||||||
{
|
{
|
||||||
if (attacker == this)
|
if (attacker == this)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
_lastDamageTaken.add(new DamageTakenHolder(attacker, skill, damage));
|
_lastDamageTaken.add(new DamageTakenHolder(attacker, skillId, damage));
|
||||||
while (_lastDamageTaken.size() > 10)
|
while (_lastDamageTaken.size() > 20)
|
||||||
{
|
{
|
||||||
_lastDamageTaken.remove(0);
|
_lastDamageTaken.remove(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void clearDamageTaken()
|
||||||
|
{
|
||||||
|
_lastDamageTaken.clear();
|
||||||
|
}
|
||||||
|
|
||||||
private Collection<ItemInstance> onDieDropItem(Creature killer)
|
private Collection<ItemInstance> onDieDropItem(Creature killer)
|
||||||
{
|
{
|
||||||
final List<ItemInstance> droppedItems = new ArrayList<>();
|
final List<ItemInstance> droppedItems = new ArrayList<>();
|
||||||
|
@ -281,10 +281,7 @@ public class PlayerStatus extends PlayableStatus
|
|||||||
|
|
||||||
if (amount > 0)
|
if (amount > 0)
|
||||||
{
|
{
|
||||||
if ((skill != null) && skill.isBad())
|
getActiveChar().addDamageTaken(attacker, skill != null ? skill.getDisplayId() : 0, amount);
|
||||||
{
|
|
||||||
getActiveChar().addDamageTaken(attacker, skill, amount);
|
|
||||||
}
|
|
||||||
|
|
||||||
double newHp = Math.max(getCurrentHp() - amount, getActiveChar().isUndying() ? 1 : 0);
|
double newHp = Math.max(getCurrentHp() - amount, getActiveChar().isUndying() ? 1 : 0);
|
||||||
if (newHp <= 0)
|
if (newHp <= 0)
|
||||||
|
@ -17,7 +17,6 @@
|
|||||||
package org.l2jmobius.gameserver.model.holders;
|
package org.l2jmobius.gameserver.model.holders;
|
||||||
|
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Mobius
|
* @author Mobius
|
||||||
@ -25,13 +24,13 @@ import org.l2jmobius.gameserver.model.skills.Skill;
|
|||||||
public class DamageTakenHolder
|
public class DamageTakenHolder
|
||||||
{
|
{
|
||||||
private final Creature _creature;
|
private final Creature _creature;
|
||||||
private final Skill _skill;
|
private final int _skillId;
|
||||||
private final double _damage;
|
private final double _damage;
|
||||||
|
|
||||||
public DamageTakenHolder(Creature creature, Skill skill, double damage)
|
public DamageTakenHolder(Creature creature, int skillId, double damage)
|
||||||
{
|
{
|
||||||
_creature = creature;
|
_creature = creature;
|
||||||
_skill = skill;
|
_skillId = skillId;
|
||||||
_damage = damage;
|
_damage = damage;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -40,9 +39,9 @@ public class DamageTakenHolder
|
|||||||
return _creature;
|
return _creature;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Skill getSkill()
|
public int getSkillId()
|
||||||
{
|
{
|
||||||
return _skill;
|
return _skillId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public double getDamage()
|
public double getDamage()
|
||||||
|
@ -55,7 +55,7 @@ public class ExDieInfo implements IClientOutgoingPacket
|
|||||||
{
|
{
|
||||||
packet.writeS(damageHolder.getCreature().getName());
|
packet.writeS(damageHolder.getCreature().getName());
|
||||||
packet.writeH(0x00);
|
packet.writeH(0x00);
|
||||||
packet.writeD(damageHolder.getSkill().getDisplayId());
|
packet.writeD(damageHolder.getSkillId());
|
||||||
packet.writeF(damageHolder.getDamage());
|
packet.writeF(damageHolder.getDamage());
|
||||||
packet.writeD(0x00);
|
packet.writeD(0x00);
|
||||||
}
|
}
|
||||||
|
@ -72,6 +72,7 @@ public class AttackStanceTaskManager
|
|||||||
creature.getAI().setAutoAttacking(false);
|
creature.getAI().setAutoAttacking(false);
|
||||||
if (creature.isPlayer() && creature.hasSummon())
|
if (creature.isPlayer() && creature.hasSummon())
|
||||||
{
|
{
|
||||||
|
creature.getActingPlayer().clearDamageTaken();
|
||||||
final Summon pet = creature.getPet();
|
final Summon pet = creature.getPet();
|
||||||
if (pet != null)
|
if (pet != null)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user