Feather of Blessing reuse delay.
Contributed by Fakee.
This commit is contained in:
parent
c312007be8
commit
6098ba52a0
@ -33,6 +33,7 @@ import org.l2jmobius.gameserver.model.events.listeners.ConsumerEventListener;
|
||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
||||
import org.l2jmobius.gameserver.model.skill.CommonSkill;
|
||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
||||
import org.l2jmobius.gameserver.model.skill.SkillCaster;
|
||||
import org.l2jmobius.gameserver.model.skill.targets.TargetType;
|
||||
@ -90,7 +91,8 @@ public class TriggerSkillByMagicType extends AbstractEffect
|
||||
return;
|
||||
}
|
||||
|
||||
if (!CommonUtil.contains(_magicTypes, event.getSkill().getMagicType()))
|
||||
final Skill eventSkill = event.getSkill();
|
||||
if (!CommonUtil.contains(_magicTypes, eventSkill.getMagicType()))
|
||||
{
|
||||
return;
|
||||
}
|
||||
@ -114,6 +116,15 @@ public class TriggerSkillByMagicType extends AbstractEffect
|
||||
return;
|
||||
}
|
||||
|
||||
// Ignore common skills.
|
||||
for (CommonSkill skill : CommonSkill.values())
|
||||
{
|
||||
if (skill.getId() == eventSkill.getId())
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
final Skill triggerSkill;
|
||||
if (_skillLevelScaleTo <= 0)
|
||||
{
|
||||
|
@ -185,6 +185,7 @@
|
||||
<isMagic>2</isMagic>
|
||||
<targetType>TARGET</targetType>
|
||||
<affectScope>SINGLE</affectScope>
|
||||
<stayAfterDeath>true</stayAfterDeath>
|
||||
</skill>
|
||||
<skill id="7009" toLevel="1" name="not_used">
|
||||
<magicLevel>1</magicLevel>
|
||||
|
@ -508,16 +508,17 @@ public class EnterWorld implements IClientIncomingPacket
|
||||
PetitionManager.getInstance().checkPetitionMessages(player);
|
||||
}
|
||||
|
||||
player.onPlayerEnter();
|
||||
|
||||
player.sendPacket(new SkillCoolTime(player));
|
||||
player.sendPacket(new ExVoteSystemInfo(player));
|
||||
|
||||
if (player.isAlikeDead()) // dead or fake dead
|
||||
{
|
||||
// no broadcast needed since the player will already spawn dead to others
|
||||
player.sendPacket(new Die(player));
|
||||
}
|
||||
|
||||
player.onPlayerEnter();
|
||||
|
||||
player.sendPacket(new SkillCoolTime(player));
|
||||
player.sendPacket(new ExVoteSystemInfo(player));
|
||||
for (Item item : player.getInventory().getItems())
|
||||
{
|
||||
if (item.isTimeLimitedItem())
|
||||
|
@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.network.clientpackets;
|
||||
import org.l2jmobius.commons.network.PacketReader;
|
||||
import org.l2jmobius.commons.threads.ThreadPool;
|
||||
import org.l2jmobius.gameserver.data.xml.ClanHallData;
|
||||
import org.l2jmobius.gameserver.data.xml.SkillData;
|
||||
import org.l2jmobius.gameserver.enums.TeleportWhereType;
|
||||
import org.l2jmobius.gameserver.instancemanager.CastleManager;
|
||||
import org.l2jmobius.gameserver.instancemanager.FortManager;
|
||||
@ -37,6 +38,7 @@ import org.l2jmobius.gameserver.model.siege.Castle;
|
||||
import org.l2jmobius.gameserver.model.siege.Castle.CastleFunction;
|
||||
import org.l2jmobius.gameserver.model.siege.Fort;
|
||||
import org.l2jmobius.gameserver.model.siege.Fort.FortFunction;
|
||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
||||
import org.l2jmobius.gameserver.network.GameClient;
|
||||
import org.l2jmobius.gameserver.network.PacketLogger;
|
||||
|
||||
@ -245,9 +247,18 @@ public class RequestRestartPoint implements IClientIncomingPacket
|
||||
PacketLogger.warning("Player [" + player.getName() + "] called RestartPointPacket - Fixed and he isn't festival participant!");
|
||||
return;
|
||||
}
|
||||
if (player.isGM() || player.destroyItemByItemId("Feather", 10649, 1, player, false) || player.destroyItemByItemId("Feather", 13300, 1, player, false) || player.destroyItemByItemId("Feather", 13128, 1, player, false))
|
||||
if (player.isGM())
|
||||
{
|
||||
player.doRevive(100.00);
|
||||
player.doRevive(100);
|
||||
}
|
||||
else if (player.destroyItemByItemId("Feather", 10649, 1, player, false) || player.destroyItemByItemId("Feather", 13300, 1, player, false) || player.destroyItemByItemId("Feather", 13128, 1, player, false))
|
||||
{
|
||||
final Skill skill = SkillData.getInstance().getSkill(7008, 1);
|
||||
if (skill != null)
|
||||
{
|
||||
player.doRevive(100);
|
||||
skill.applyEffects(player, player);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -24,6 +24,8 @@ import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.clan.Clan;
|
||||
import org.l2jmobius.gameserver.model.siege.Castle;
|
||||
import org.l2jmobius.gameserver.model.siege.Fort;
|
||||
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
||||
import org.l2jmobius.gameserver.network.OutgoingPackets;
|
||||
|
||||
/**
|
||||
@ -34,6 +36,7 @@ public class Die implements IClientOutgoingPacket
|
||||
private final int _objectId;
|
||||
private final boolean _isSweepable;
|
||||
private int _flags = 0;
|
||||
private int _delayFeather = 0;
|
||||
|
||||
public Die(Creature creature)
|
||||
{
|
||||
@ -57,6 +60,16 @@ public class Die implements IClientOutgoingPacket
|
||||
siegeClan = fort.getSiege().getAttackerClan(clan);
|
||||
isInFortDefense = (siegeClan == null) && fort.getSiege().checkIsDefender(clan);
|
||||
}
|
||||
|
||||
for (BuffInfo effect : creature.getEffectList().getEffects())
|
||||
{
|
||||
final Skill skill = effect.getSkill();
|
||||
if (skill.getId() == 7008)
|
||||
{
|
||||
_delayFeather = effect.getTime();
|
||||
}
|
||||
}
|
||||
|
||||
// ClanHall check.
|
||||
if ((clan != null) && (clan.getHideoutId() > 0))
|
||||
{
|
||||
@ -92,7 +105,7 @@ public class Die implements IClientOutgoingPacket
|
||||
packet.writeD(_objectId);
|
||||
packet.writeQ(_flags);
|
||||
packet.writeD(_isSweepable ? 1 : 0);
|
||||
packet.writeD(0); // Feather item time.
|
||||
packet.writeD(_delayFeather); // Feather item time.
|
||||
packet.writeC(0); // Hide die animation.
|
||||
packet.writeD(0);
|
||||
packet.writeD(0);
|
||||
|
@ -33,6 +33,7 @@ import org.l2jmobius.gameserver.model.events.listeners.ConsumerEventListener;
|
||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
||||
import org.l2jmobius.gameserver.model.skill.CommonSkill;
|
||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
||||
import org.l2jmobius.gameserver.model.skill.SkillCaster;
|
||||
import org.l2jmobius.gameserver.model.skill.targets.TargetType;
|
||||
@ -90,7 +91,8 @@ public class TriggerSkillByMagicType extends AbstractEffect
|
||||
return;
|
||||
}
|
||||
|
||||
if (!CommonUtil.contains(_magicTypes, event.getSkill().getMagicType()))
|
||||
final Skill eventSkill = event.getSkill();
|
||||
if (!CommonUtil.contains(_magicTypes, eventSkill.getMagicType()))
|
||||
{
|
||||
return;
|
||||
}
|
||||
@ -114,6 +116,15 @@ public class TriggerSkillByMagicType extends AbstractEffect
|
||||
return;
|
||||
}
|
||||
|
||||
// Ignore common skills.
|
||||
for (CommonSkill skill : CommonSkill.values())
|
||||
{
|
||||
if (skill.getId() == eventSkill.getId())
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
final Skill triggerSkill;
|
||||
if (_skillLevelScaleTo <= 0)
|
||||
{
|
||||
|
@ -189,6 +189,7 @@
|
||||
<isMagic>2</isMagic>
|
||||
<targetType>TARGET</targetType>
|
||||
<affectScope>SINGLE</affectScope>
|
||||
<stayAfterDeath>true</stayAfterDeath>
|
||||
</skill>
|
||||
<skill id="7009" toLevel="1" name="not_used">
|
||||
<magicLevel>1</magicLevel>
|
||||
|
@ -524,16 +524,17 @@ public class EnterWorld implements IClientIncomingPacket
|
||||
PetitionManager.getInstance().checkPetitionMessages(player);
|
||||
}
|
||||
|
||||
player.onPlayerEnter();
|
||||
|
||||
player.sendPacket(new SkillCoolTime(player));
|
||||
player.sendPacket(new ExVoteSystemInfo(player));
|
||||
|
||||
if (player.isAlikeDead()) // dead or fake dead
|
||||
{
|
||||
// no broadcast needed since the player will already spawn dead to others
|
||||
player.sendPacket(new Die(player));
|
||||
}
|
||||
|
||||
player.onPlayerEnter();
|
||||
|
||||
player.sendPacket(new SkillCoolTime(player));
|
||||
player.sendPacket(new ExVoteSystemInfo(player));
|
||||
for (Item item : player.getInventory().getItems())
|
||||
{
|
||||
if (item.isTimeLimitedItem())
|
||||
|
@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.network.clientpackets;
|
||||
import org.l2jmobius.commons.network.PacketReader;
|
||||
import org.l2jmobius.commons.threads.ThreadPool;
|
||||
import org.l2jmobius.gameserver.data.xml.ClanHallData;
|
||||
import org.l2jmobius.gameserver.data.xml.SkillData;
|
||||
import org.l2jmobius.gameserver.enums.TeleportWhereType;
|
||||
import org.l2jmobius.gameserver.instancemanager.CastleManager;
|
||||
import org.l2jmobius.gameserver.instancemanager.FortManager;
|
||||
@ -37,6 +38,7 @@ import org.l2jmobius.gameserver.model.siege.Castle;
|
||||
import org.l2jmobius.gameserver.model.siege.Castle.CastleFunction;
|
||||
import org.l2jmobius.gameserver.model.siege.Fort;
|
||||
import org.l2jmobius.gameserver.model.siege.Fort.FortFunction;
|
||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
||||
import org.l2jmobius.gameserver.network.GameClient;
|
||||
import org.l2jmobius.gameserver.network.PacketLogger;
|
||||
|
||||
@ -245,9 +247,18 @@ public class RequestRestartPoint implements IClientIncomingPacket
|
||||
PacketLogger.warning("Player [" + player.getName() + "] called RestartPointPacket - Fixed and he isn't festival participant!");
|
||||
return;
|
||||
}
|
||||
if (player.isGM() || player.destroyItemByItemId("Feather", 10649, 1, player, false) || player.destroyItemByItemId("Feather", 13300, 1, player, false) || player.destroyItemByItemId("Feather", 13128, 1, player, false))
|
||||
if (player.isGM())
|
||||
{
|
||||
player.doRevive(100.00);
|
||||
player.doRevive(100);
|
||||
}
|
||||
else if (player.destroyItemByItemId("Feather", 10649, 1, player, false) || player.destroyItemByItemId("Feather", 13300, 1, player, false) || player.destroyItemByItemId("Feather", 13128, 1, player, false))
|
||||
{
|
||||
final Skill skill = SkillData.getInstance().getSkill(7008, 1);
|
||||
if (skill != null)
|
||||
{
|
||||
player.doRevive(100);
|
||||
skill.applyEffects(player, player);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -24,6 +24,8 @@ import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.clan.Clan;
|
||||
import org.l2jmobius.gameserver.model.siege.Castle;
|
||||
import org.l2jmobius.gameserver.model.siege.Fort;
|
||||
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
||||
import org.l2jmobius.gameserver.network.OutgoingPackets;
|
||||
|
||||
/**
|
||||
@ -34,6 +36,7 @@ public class Die implements IClientOutgoingPacket
|
||||
private final int _objectId;
|
||||
private final boolean _isSweepable;
|
||||
private int _flags = 0;
|
||||
private int _delayFeather = 0;
|
||||
|
||||
public Die(Creature creature)
|
||||
{
|
||||
@ -57,6 +60,16 @@ public class Die implements IClientOutgoingPacket
|
||||
siegeClan = fort.getSiege().getAttackerClan(clan);
|
||||
isInFortDefense = (siegeClan == null) && fort.getSiege().checkIsDefender(clan);
|
||||
}
|
||||
|
||||
for (BuffInfo effect : creature.getEffectList().getEffects())
|
||||
{
|
||||
final Skill skill = effect.getSkill();
|
||||
if (skill.getId() == 7008)
|
||||
{
|
||||
_delayFeather = effect.getTime();
|
||||
}
|
||||
}
|
||||
|
||||
// ClanHall check.
|
||||
if ((clan != null) && (clan.getHideoutId() > 0))
|
||||
{
|
||||
@ -92,7 +105,7 @@ public class Die implements IClientOutgoingPacket
|
||||
packet.writeD(_objectId);
|
||||
packet.writeQ(_flags);
|
||||
packet.writeD(_isSweepable ? 1 : 0);
|
||||
packet.writeD(0); // Feather item time.
|
||||
packet.writeD(_delayFeather); // Feather item time.
|
||||
packet.writeC(0); // Hide die animation.
|
||||
packet.writeD(0);
|
||||
packet.writeD(0);
|
||||
|
@ -33,6 +33,7 @@ import org.l2jmobius.gameserver.model.events.listeners.ConsumerEventListener;
|
||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
||||
import org.l2jmobius.gameserver.model.skill.CommonSkill;
|
||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
||||
import org.l2jmobius.gameserver.model.skill.SkillCaster;
|
||||
import org.l2jmobius.gameserver.model.skill.targets.TargetType;
|
||||
@ -90,7 +91,8 @@ public class TriggerSkillByMagicType extends AbstractEffect
|
||||
return;
|
||||
}
|
||||
|
||||
if (!CommonUtil.contains(_magicTypes, event.getSkill().getMagicType()))
|
||||
final Skill eventSkill = event.getSkill();
|
||||
if (!CommonUtil.contains(_magicTypes, eventSkill.getMagicType()))
|
||||
{
|
||||
return;
|
||||
}
|
||||
@ -114,6 +116,15 @@ public class TriggerSkillByMagicType extends AbstractEffect
|
||||
return;
|
||||
}
|
||||
|
||||
// Ignore common skills.
|
||||
for (CommonSkill skill : CommonSkill.values())
|
||||
{
|
||||
if (skill.getId() == eventSkill.getId())
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
final Skill triggerSkill;
|
||||
if (_skillLevelScaleTo <= 0)
|
||||
{
|
||||
|
@ -189,6 +189,7 @@
|
||||
<isMagic>2</isMagic>
|
||||
<targetType>TARGET</targetType>
|
||||
<affectScope>SINGLE</affectScope>
|
||||
<stayAfterDeath>true</stayAfterDeath>
|
||||
</skill>
|
||||
<skill id="7009" toLevel="1" name="not_used">
|
||||
<magicLevel>1</magicLevel>
|
||||
|
@ -529,16 +529,17 @@ public class EnterWorld implements IClientIncomingPacket
|
||||
PetitionManager.getInstance().checkPetitionMessages(player);
|
||||
}
|
||||
|
||||
player.onPlayerEnter();
|
||||
|
||||
player.sendPacket(new SkillCoolTime(player));
|
||||
player.sendPacket(new ExVoteSystemInfo(player));
|
||||
|
||||
if (player.isAlikeDead()) // dead or fake dead
|
||||
{
|
||||
// no broadcast needed since the player will already spawn dead to others
|
||||
player.sendPacket(new Die(player));
|
||||
}
|
||||
|
||||
player.onPlayerEnter();
|
||||
|
||||
player.sendPacket(new SkillCoolTime(player));
|
||||
player.sendPacket(new ExVoteSystemInfo(player));
|
||||
for (Item item : player.getInventory().getItems())
|
||||
{
|
||||
if (item.isTimeLimitedItem())
|
||||
|
@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.network.clientpackets;
|
||||
import org.l2jmobius.commons.network.PacketReader;
|
||||
import org.l2jmobius.commons.threads.ThreadPool;
|
||||
import org.l2jmobius.gameserver.data.xml.ClanHallData;
|
||||
import org.l2jmobius.gameserver.data.xml.SkillData;
|
||||
import org.l2jmobius.gameserver.enums.TeleportWhereType;
|
||||
import org.l2jmobius.gameserver.instancemanager.CastleManager;
|
||||
import org.l2jmobius.gameserver.instancemanager.FortManager;
|
||||
@ -37,6 +38,7 @@ import org.l2jmobius.gameserver.model.siege.Castle;
|
||||
import org.l2jmobius.gameserver.model.siege.Castle.CastleFunction;
|
||||
import org.l2jmobius.gameserver.model.siege.Fort;
|
||||
import org.l2jmobius.gameserver.model.siege.Fort.FortFunction;
|
||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
||||
import org.l2jmobius.gameserver.network.GameClient;
|
||||
import org.l2jmobius.gameserver.network.PacketLogger;
|
||||
|
||||
@ -245,9 +247,18 @@ public class RequestRestartPoint implements IClientIncomingPacket
|
||||
PacketLogger.warning("Player [" + player.getName() + "] called RestartPointPacket - Fixed and he isn't festival participant!");
|
||||
return;
|
||||
}
|
||||
if (player.isGM() || player.destroyItemByItemId("Feather", 10649, 1, player, false) || player.destroyItemByItemId("Feather", 13300, 1, player, false) || player.destroyItemByItemId("Feather", 13128, 1, player, false))
|
||||
if (player.isGM())
|
||||
{
|
||||
player.doRevive(100.00);
|
||||
player.doRevive(100);
|
||||
}
|
||||
else if (player.destroyItemByItemId("Feather", 10649, 1, player, false) || player.destroyItemByItemId("Feather", 13300, 1, player, false) || player.destroyItemByItemId("Feather", 13128, 1, player, false))
|
||||
{
|
||||
final Skill skill = SkillData.getInstance().getSkill(7008, 1);
|
||||
if (skill != null)
|
||||
{
|
||||
player.doRevive(100);
|
||||
skill.applyEffects(player, player);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -24,6 +24,8 @@ import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.clan.Clan;
|
||||
import org.l2jmobius.gameserver.model.siege.Castle;
|
||||
import org.l2jmobius.gameserver.model.siege.Fort;
|
||||
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
||||
import org.l2jmobius.gameserver.network.OutgoingPackets;
|
||||
|
||||
/**
|
||||
@ -34,6 +36,7 @@ public class Die implements IClientOutgoingPacket
|
||||
private final int _objectId;
|
||||
private final boolean _isSweepable;
|
||||
private int _flags = 0;
|
||||
private int _delayFeather = 0;
|
||||
|
||||
public Die(Creature creature)
|
||||
{
|
||||
@ -57,6 +60,16 @@ public class Die implements IClientOutgoingPacket
|
||||
siegeClan = fort.getSiege().getAttackerClan(clan);
|
||||
isInFortDefense = (siegeClan == null) && fort.getSiege().checkIsDefender(clan);
|
||||
}
|
||||
|
||||
for (BuffInfo effect : creature.getEffectList().getEffects())
|
||||
{
|
||||
final Skill skill = effect.getSkill();
|
||||
if (skill.getId() == 7008)
|
||||
{
|
||||
_delayFeather = effect.getTime();
|
||||
}
|
||||
}
|
||||
|
||||
// ClanHall check.
|
||||
if ((clan != null) && (clan.getHideoutId() > 0))
|
||||
{
|
||||
@ -92,7 +105,7 @@ public class Die implements IClientOutgoingPacket
|
||||
packet.writeD(_objectId);
|
||||
packet.writeQ(_flags);
|
||||
packet.writeD(_isSweepable ? 1 : 0);
|
||||
packet.writeD(0); // Feather item time.
|
||||
packet.writeD(_delayFeather); // Feather item time.
|
||||
packet.writeC(0); // Hide die animation.
|
||||
packet.writeD(0);
|
||||
packet.writeD(0);
|
||||
|
@ -33,6 +33,7 @@ import org.l2jmobius.gameserver.model.events.listeners.ConsumerEventListener;
|
||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
||||
import org.l2jmobius.gameserver.model.skill.CommonSkill;
|
||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
||||
import org.l2jmobius.gameserver.model.skill.SkillCaster;
|
||||
import org.l2jmobius.gameserver.model.skill.targets.TargetType;
|
||||
@ -90,7 +91,8 @@ public class TriggerSkillByMagicType extends AbstractEffect
|
||||
return;
|
||||
}
|
||||
|
||||
if (!CommonUtil.contains(_magicTypes, event.getSkill().getMagicType()))
|
||||
final Skill eventSkill = event.getSkill();
|
||||
if (!CommonUtil.contains(_magicTypes, eventSkill.getMagicType()))
|
||||
{
|
||||
return;
|
||||
}
|
||||
@ -114,6 +116,15 @@ public class TriggerSkillByMagicType extends AbstractEffect
|
||||
return;
|
||||
}
|
||||
|
||||
// Ignore common skills.
|
||||
for (CommonSkill skill : CommonSkill.values())
|
||||
{
|
||||
if (skill.getId() == eventSkill.getId())
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
final Skill triggerSkill;
|
||||
if (_skillLevelScaleTo <= 0)
|
||||
{
|
||||
|
@ -189,6 +189,7 @@
|
||||
<isMagic>2</isMagic>
|
||||
<targetType>TARGET</targetType>
|
||||
<affectScope>SINGLE</affectScope>
|
||||
<stayAfterDeath>true</stayAfterDeath>
|
||||
</skill>
|
||||
<skill id="7009" toLevel="1" name="not_used">
|
||||
<magicLevel>1</magicLevel>
|
||||
|
@ -533,16 +533,17 @@ public class EnterWorld implements IClientIncomingPacket
|
||||
PetitionManager.getInstance().checkPetitionMessages(player);
|
||||
}
|
||||
|
||||
player.onPlayerEnter();
|
||||
|
||||
player.sendPacket(new SkillCoolTime(player));
|
||||
player.sendPacket(new ExVoteSystemInfo(player));
|
||||
|
||||
if (player.isAlikeDead()) // dead or fake dead
|
||||
{
|
||||
// no broadcast needed since the player will already spawn dead to others
|
||||
player.sendPacket(new Die(player));
|
||||
}
|
||||
|
||||
player.onPlayerEnter();
|
||||
|
||||
player.sendPacket(new SkillCoolTime(player));
|
||||
player.sendPacket(new ExVoteSystemInfo(player));
|
||||
for (Item item : player.getInventory().getItems())
|
||||
{
|
||||
if (item.isTimeLimitedItem())
|
||||
|
@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.network.clientpackets;
|
||||
import org.l2jmobius.commons.network.PacketReader;
|
||||
import org.l2jmobius.commons.threads.ThreadPool;
|
||||
import org.l2jmobius.gameserver.data.xml.ClanHallData;
|
||||
import org.l2jmobius.gameserver.data.xml.SkillData;
|
||||
import org.l2jmobius.gameserver.enums.TeleportWhereType;
|
||||
import org.l2jmobius.gameserver.instancemanager.CastleManager;
|
||||
import org.l2jmobius.gameserver.instancemanager.FortManager;
|
||||
@ -37,6 +38,7 @@ import org.l2jmobius.gameserver.model.siege.Castle;
|
||||
import org.l2jmobius.gameserver.model.siege.Castle.CastleFunction;
|
||||
import org.l2jmobius.gameserver.model.siege.Fort;
|
||||
import org.l2jmobius.gameserver.model.siege.Fort.FortFunction;
|
||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
||||
import org.l2jmobius.gameserver.network.GameClient;
|
||||
import org.l2jmobius.gameserver.network.PacketLogger;
|
||||
|
||||
@ -245,9 +247,18 @@ public class RequestRestartPoint implements IClientIncomingPacket
|
||||
PacketLogger.warning("Player [" + player.getName() + "] called RestartPointPacket - Fixed and he isn't festival participant!");
|
||||
return;
|
||||
}
|
||||
if (player.isGM() || player.destroyItemByItemId("Feather", 10649, 1, player, false) || player.destroyItemByItemId("Feather", 13300, 1, player, false) || player.destroyItemByItemId("Feather", 13128, 1, player, false))
|
||||
if (player.isGM())
|
||||
{
|
||||
player.doRevive(100.00);
|
||||
player.doRevive(100);
|
||||
}
|
||||
else if (player.destroyItemByItemId("Feather", 10649, 1, player, false) || player.destroyItemByItemId("Feather", 13300, 1, player, false) || player.destroyItemByItemId("Feather", 13128, 1, player, false))
|
||||
{
|
||||
final Skill skill = SkillData.getInstance().getSkill(7008, 1);
|
||||
if (skill != null)
|
||||
{
|
||||
player.doRevive(100);
|
||||
skill.applyEffects(player, player);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -24,6 +24,8 @@ import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.clan.Clan;
|
||||
import org.l2jmobius.gameserver.model.siege.Castle;
|
||||
import org.l2jmobius.gameserver.model.siege.Fort;
|
||||
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
||||
import org.l2jmobius.gameserver.network.OutgoingPackets;
|
||||
|
||||
/**
|
||||
@ -34,6 +36,7 @@ public class Die implements IClientOutgoingPacket
|
||||
private final int _objectId;
|
||||
private final boolean _isSweepable;
|
||||
private int _flags = 1; // To nearest village.
|
||||
private int _delayFeather = 0;
|
||||
|
||||
public Die(Creature creature)
|
||||
{
|
||||
@ -57,6 +60,16 @@ public class Die implements IClientOutgoingPacket
|
||||
siegeClan = fort.getSiege().getAttackerClan(clan);
|
||||
isInFortDefense = (siegeClan == null) && fort.getSiege().checkIsDefender(clan);
|
||||
}
|
||||
|
||||
for (BuffInfo effect : creature.getEffectList().getEffects())
|
||||
{
|
||||
final Skill skill = effect.getSkill();
|
||||
if (skill.getId() == 7008)
|
||||
{
|
||||
_delayFeather = effect.getTime();
|
||||
}
|
||||
}
|
||||
|
||||
// ClanHall check.
|
||||
if ((clan != null) && (clan.getHideoutId() > 0))
|
||||
{
|
||||
@ -92,7 +105,7 @@ public class Die implements IClientOutgoingPacket
|
||||
packet.writeD(_objectId);
|
||||
packet.writeQ(_flags);
|
||||
packet.writeD(_isSweepable ? 1 : 0);
|
||||
packet.writeD(0); // Feather item time.
|
||||
packet.writeD(_delayFeather); // Feather item time.
|
||||
packet.writeC(0); // Hide die animation.
|
||||
packet.writeD(0);
|
||||
packet.writeD(0);
|
||||
|
@ -33,6 +33,7 @@ import org.l2jmobius.gameserver.model.events.listeners.ConsumerEventListener;
|
||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
||||
import org.l2jmobius.gameserver.model.skill.CommonSkill;
|
||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
||||
import org.l2jmobius.gameserver.model.skill.SkillCaster;
|
||||
import org.l2jmobius.gameserver.model.skill.targets.TargetType;
|
||||
@ -90,7 +91,8 @@ public class TriggerSkillByMagicType extends AbstractEffect
|
||||
return;
|
||||
}
|
||||
|
||||
if (!CommonUtil.contains(_magicTypes, event.getSkill().getMagicType()))
|
||||
final Skill eventSkill = event.getSkill();
|
||||
if (!CommonUtil.contains(_magicTypes, eventSkill.getMagicType()))
|
||||
{
|
||||
return;
|
||||
}
|
||||
@ -114,6 +116,15 @@ public class TriggerSkillByMagicType extends AbstractEffect
|
||||
return;
|
||||
}
|
||||
|
||||
// Ignore common skills.
|
||||
for (CommonSkill skill : CommonSkill.values())
|
||||
{
|
||||
if (skill.getId() == eventSkill.getId())
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
final Skill triggerSkill;
|
||||
if (_skillLevelScaleTo <= 0)
|
||||
{
|
||||
|
@ -189,6 +189,7 @@
|
||||
<isMagic>2</isMagic>
|
||||
<targetType>TARGET</targetType>
|
||||
<affectScope>SINGLE</affectScope>
|
||||
<stayAfterDeath>true</stayAfterDeath>
|
||||
</skill>
|
||||
<skill id="7009" toLevel="1" name="not_used">
|
||||
<magicLevel>1</magicLevel>
|
||||
|
@ -533,16 +533,17 @@ public class EnterWorld implements IClientIncomingPacket
|
||||
PetitionManager.getInstance().checkPetitionMessages(player);
|
||||
}
|
||||
|
||||
player.onPlayerEnter();
|
||||
|
||||
player.sendPacket(new SkillCoolTime(player));
|
||||
player.sendPacket(new ExVoteSystemInfo(player));
|
||||
|
||||
if (player.isAlikeDead()) // dead or fake dead
|
||||
{
|
||||
// no broadcast needed since the player will already spawn dead to others
|
||||
player.sendPacket(new Die(player));
|
||||
}
|
||||
|
||||
player.onPlayerEnter();
|
||||
|
||||
player.sendPacket(new SkillCoolTime(player));
|
||||
player.sendPacket(new ExVoteSystemInfo(player));
|
||||
for (Item item : player.getInventory().getItems())
|
||||
{
|
||||
if (item.isTimeLimitedItem())
|
||||
|
@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.network.clientpackets;
|
||||
import org.l2jmobius.commons.network.PacketReader;
|
||||
import org.l2jmobius.commons.threads.ThreadPool;
|
||||
import org.l2jmobius.gameserver.data.xml.ClanHallData;
|
||||
import org.l2jmobius.gameserver.data.xml.SkillData;
|
||||
import org.l2jmobius.gameserver.enums.TeleportWhereType;
|
||||
import org.l2jmobius.gameserver.instancemanager.CastleManager;
|
||||
import org.l2jmobius.gameserver.instancemanager.FortManager;
|
||||
@ -37,6 +38,7 @@ import org.l2jmobius.gameserver.model.siege.Castle;
|
||||
import org.l2jmobius.gameserver.model.siege.Castle.CastleFunction;
|
||||
import org.l2jmobius.gameserver.model.siege.Fort;
|
||||
import org.l2jmobius.gameserver.model.siege.Fort.FortFunction;
|
||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
||||
import org.l2jmobius.gameserver.network.GameClient;
|
||||
import org.l2jmobius.gameserver.network.PacketLogger;
|
||||
|
||||
@ -245,9 +247,18 @@ public class RequestRestartPoint implements IClientIncomingPacket
|
||||
PacketLogger.warning("Player [" + player.getName() + "] called RestartPointPacket - Fixed and he isn't festival participant!");
|
||||
return;
|
||||
}
|
||||
if (player.isGM() || player.destroyItemByItemId("Feather", 10649, 1, player, false) || player.destroyItemByItemId("Feather", 13300, 1, player, false) || player.destroyItemByItemId("Feather", 13128, 1, player, false))
|
||||
if (player.isGM())
|
||||
{
|
||||
player.doRevive(100.00);
|
||||
player.doRevive(100);
|
||||
}
|
||||
else if (player.destroyItemByItemId("Feather", 10649, 1, player, false) || player.destroyItemByItemId("Feather", 13300, 1, player, false) || player.destroyItemByItemId("Feather", 13128, 1, player, false))
|
||||
{
|
||||
final Skill skill = SkillData.getInstance().getSkill(7008, 1);
|
||||
if (skill != null)
|
||||
{
|
||||
player.doRevive(100);
|
||||
skill.applyEffects(player, player);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -24,6 +24,8 @@ import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.clan.Clan;
|
||||
import org.l2jmobius.gameserver.model.siege.Castle;
|
||||
import org.l2jmobius.gameserver.model.siege.Fort;
|
||||
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
||||
import org.l2jmobius.gameserver.network.OutgoingPackets;
|
||||
|
||||
/**
|
||||
@ -34,6 +36,7 @@ public class Die implements IClientOutgoingPacket
|
||||
private final int _objectId;
|
||||
private final boolean _isSweepable;
|
||||
private int _flags = 1; // To nearest village.
|
||||
private int _delayFeather = 0;
|
||||
|
||||
public Die(Creature creature)
|
||||
{
|
||||
@ -57,6 +60,16 @@ public class Die implements IClientOutgoingPacket
|
||||
siegeClan = fort.getSiege().getAttackerClan(clan);
|
||||
isInFortDefense = (siegeClan == null) && fort.getSiege().checkIsDefender(clan);
|
||||
}
|
||||
|
||||
for (BuffInfo effect : creature.getEffectList().getEffects())
|
||||
{
|
||||
final Skill skill = effect.getSkill();
|
||||
if (skill.getId() == 7008)
|
||||
{
|
||||
_delayFeather = effect.getTime();
|
||||
}
|
||||
}
|
||||
|
||||
// ClanHall check.
|
||||
if ((clan != null) && (clan.getHideoutId() > 0))
|
||||
{
|
||||
@ -92,7 +105,7 @@ public class Die implements IClientOutgoingPacket
|
||||
packet.writeD(_objectId);
|
||||
packet.writeQ(_flags);
|
||||
packet.writeD(_isSweepable ? 1 : 0);
|
||||
packet.writeD(0); // Feather item time.
|
||||
packet.writeD(_delayFeather); // Feather item time.
|
||||
packet.writeC(0); // Hide die animation.
|
||||
packet.writeD(0);
|
||||
packet.writeD(0);
|
||||
|
@ -33,6 +33,7 @@ import org.l2jmobius.gameserver.model.events.listeners.ConsumerEventListener;
|
||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
||||
import org.l2jmobius.gameserver.model.skill.CommonSkill;
|
||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
||||
import org.l2jmobius.gameserver.model.skill.SkillCaster;
|
||||
import org.l2jmobius.gameserver.model.skill.targets.TargetType;
|
||||
@ -90,7 +91,8 @@ public class TriggerSkillByMagicType extends AbstractEffect
|
||||
return;
|
||||
}
|
||||
|
||||
if (!CommonUtil.contains(_magicTypes, event.getSkill().getMagicType()))
|
||||
final Skill eventSkill = event.getSkill();
|
||||
if (!CommonUtil.contains(_magicTypes, eventSkill.getMagicType()))
|
||||
{
|
||||
return;
|
||||
}
|
||||
@ -114,6 +116,15 @@ public class TriggerSkillByMagicType extends AbstractEffect
|
||||
return;
|
||||
}
|
||||
|
||||
// Ignore common skills.
|
||||
for (CommonSkill skill : CommonSkill.values())
|
||||
{
|
||||
if (skill.getId() == eventSkill.getId())
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
final Skill triggerSkill;
|
||||
if (_skillLevelScaleTo <= 0)
|
||||
{
|
||||
|
@ -185,6 +185,7 @@
|
||||
<isMagic>2</isMagic>
|
||||
<targetType>TARGET</targetType>
|
||||
<affectScope>SINGLE</affectScope>
|
||||
<stayAfterDeath>true</stayAfterDeath>
|
||||
</skill>
|
||||
<skill id="7009" toLevel="1" name="not_used">
|
||||
<magicLevel>1</magicLevel>
|
||||
|
@ -503,16 +503,17 @@ public class EnterWorld implements IClientIncomingPacket
|
||||
PetitionManager.getInstance().checkPetitionMessages(player);
|
||||
}
|
||||
|
||||
player.onPlayerEnter();
|
||||
|
||||
player.sendPacket(new SkillCoolTime(player));
|
||||
player.sendPacket(new ExVoteSystemInfo(player));
|
||||
|
||||
if (player.isAlikeDead()) // dead or fake dead
|
||||
{
|
||||
// no broadcast needed since the player will already spawn dead to others
|
||||
player.sendPacket(new Die(player));
|
||||
}
|
||||
|
||||
player.onPlayerEnter();
|
||||
|
||||
player.sendPacket(new SkillCoolTime(player));
|
||||
player.sendPacket(new ExVoteSystemInfo(player));
|
||||
for (Item item : player.getInventory().getItems())
|
||||
{
|
||||
if (item.isTimeLimitedItem())
|
||||
|
@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.network.clientpackets;
|
||||
import org.l2jmobius.commons.network.PacketReader;
|
||||
import org.l2jmobius.commons.threads.ThreadPool;
|
||||
import org.l2jmobius.gameserver.data.xml.ClanHallData;
|
||||
import org.l2jmobius.gameserver.data.xml.SkillData;
|
||||
import org.l2jmobius.gameserver.enums.TeleportWhereType;
|
||||
import org.l2jmobius.gameserver.instancemanager.CastleManager;
|
||||
import org.l2jmobius.gameserver.instancemanager.FortManager;
|
||||
@ -37,6 +38,7 @@ import org.l2jmobius.gameserver.model.siege.Castle;
|
||||
import org.l2jmobius.gameserver.model.siege.Castle.CastleFunction;
|
||||
import org.l2jmobius.gameserver.model.siege.Fort;
|
||||
import org.l2jmobius.gameserver.model.siege.Fort.FortFunction;
|
||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
||||
import org.l2jmobius.gameserver.network.GameClient;
|
||||
import org.l2jmobius.gameserver.network.PacketLogger;
|
||||
|
||||
@ -245,9 +247,18 @@ public class RequestRestartPoint implements IClientIncomingPacket
|
||||
PacketLogger.warning("Player [" + player.getName() + "] called RestartPointPacket - Fixed and he isn't festival participant!");
|
||||
return;
|
||||
}
|
||||
if (player.isGM() || player.destroyItemByItemId("Feather", 10649, 1, player, false) || player.destroyItemByItemId("Feather", 13300, 1, player, false) || player.destroyItemByItemId("Feather", 13128, 1, player, false))
|
||||
if (player.isGM())
|
||||
{
|
||||
player.doRevive(100.00);
|
||||
player.doRevive(100);
|
||||
}
|
||||
else if (player.destroyItemByItemId("Feather", 10649, 1, player, false) /* || player.destroyItemByItemId("Feather", 13300, 1, player, false) || player.destroyItemByItemId("Feather", 13128, 1, player, false) */)
|
||||
{
|
||||
final Skill skill = SkillData.getInstance().getSkill(7008, 1);
|
||||
if (skill != null)
|
||||
{
|
||||
player.doRevive(100);
|
||||
skill.applyEffects(player, player);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -24,6 +24,8 @@ import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.clan.Clan;
|
||||
import org.l2jmobius.gameserver.model.siege.Castle;
|
||||
import org.l2jmobius.gameserver.model.siege.Fort;
|
||||
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
||||
import org.l2jmobius.gameserver.network.OutgoingPackets;
|
||||
|
||||
/**
|
||||
@ -34,6 +36,7 @@ public class Die implements IClientOutgoingPacket
|
||||
private final int _objectId;
|
||||
private final boolean _isSweepable;
|
||||
private int _flags = 0;
|
||||
private int _delayFeather = 0;
|
||||
|
||||
public Die(Creature creature)
|
||||
{
|
||||
@ -57,6 +60,16 @@ public class Die implements IClientOutgoingPacket
|
||||
siegeClan = fort.getSiege().getAttackerClan(clan);
|
||||
isInFortDefense = (siegeClan == null) && fort.getSiege().checkIsDefender(clan);
|
||||
}
|
||||
|
||||
for (BuffInfo effect : creature.getEffectList().getEffects())
|
||||
{
|
||||
final Skill skill = effect.getSkill();
|
||||
if (skill.getId() == 7008)
|
||||
{
|
||||
_delayFeather = effect.getTime();
|
||||
}
|
||||
}
|
||||
|
||||
// ClanHall check.
|
||||
if ((clan != null) && (clan.getHideoutId() > 0))
|
||||
{
|
||||
@ -92,7 +105,7 @@ public class Die implements IClientOutgoingPacket
|
||||
packet.writeD(_objectId);
|
||||
packet.writeQ(_flags);
|
||||
packet.writeD(_isSweepable ? 1 : 0);
|
||||
packet.writeD(0); // Feather item time.
|
||||
packet.writeD(_delayFeather); // Feather item time.
|
||||
packet.writeC(0); // Hide die animation.
|
||||
packet.writeD(0);
|
||||
packet.writeD(0);
|
||||
|
@ -33,6 +33,7 @@ import org.l2jmobius.gameserver.model.events.listeners.ConsumerEventListener;
|
||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
||||
import org.l2jmobius.gameserver.model.skill.CommonSkill;
|
||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
||||
import org.l2jmobius.gameserver.model.skill.SkillCaster;
|
||||
import org.l2jmobius.gameserver.model.skill.targets.TargetType;
|
||||
@ -90,7 +91,8 @@ public class TriggerSkillByMagicType extends AbstractEffect
|
||||
return;
|
||||
}
|
||||
|
||||
if (!CommonUtil.contains(_magicTypes, event.getSkill().getMagicType()))
|
||||
final Skill eventSkill = event.getSkill();
|
||||
if (!CommonUtil.contains(_magicTypes, eventSkill.getMagicType()))
|
||||
{
|
||||
return;
|
||||
}
|
||||
@ -114,6 +116,15 @@ public class TriggerSkillByMagicType extends AbstractEffect
|
||||
return;
|
||||
}
|
||||
|
||||
// Ignore common skills.
|
||||
for (CommonSkill skill : CommonSkill.values())
|
||||
{
|
||||
if (skill.getId() == eventSkill.getId())
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
final Skill triggerSkill;
|
||||
if (_skillLevelScaleTo <= 0)
|
||||
{
|
||||
|
@ -185,6 +185,7 @@
|
||||
<isMagic>2</isMagic>
|
||||
<targetType>TARGET</targetType>
|
||||
<affectScope>SINGLE</affectScope>
|
||||
<stayAfterDeath>true</stayAfterDeath>
|
||||
</skill>
|
||||
<skill id="7009" toLevel="1" name="not_used">
|
||||
<magicLevel>1</magicLevel>
|
||||
|
@ -510,16 +510,17 @@ public class EnterWorld implements IClientIncomingPacket
|
||||
PetitionManager.getInstance().checkPetitionMessages(player);
|
||||
}
|
||||
|
||||
player.onPlayerEnter();
|
||||
|
||||
player.sendPacket(new SkillCoolTime(player));
|
||||
player.sendPacket(new ExVoteSystemInfo(player));
|
||||
|
||||
if (player.isAlikeDead()) // dead or fake dead
|
||||
{
|
||||
// no broadcast needed since the player will already spawn dead to others
|
||||
player.sendPacket(new Die(player));
|
||||
}
|
||||
|
||||
player.onPlayerEnter();
|
||||
|
||||
player.sendPacket(new SkillCoolTime(player));
|
||||
player.sendPacket(new ExVoteSystemInfo(player));
|
||||
for (Item item : player.getInventory().getItems())
|
||||
{
|
||||
if (item.isTimeLimitedItem())
|
||||
|
@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.network.clientpackets;
|
||||
import org.l2jmobius.commons.network.PacketReader;
|
||||
import org.l2jmobius.commons.threads.ThreadPool;
|
||||
import org.l2jmobius.gameserver.data.xml.ClanHallData;
|
||||
import org.l2jmobius.gameserver.data.xml.SkillData;
|
||||
import org.l2jmobius.gameserver.enums.TeleportWhereType;
|
||||
import org.l2jmobius.gameserver.instancemanager.CastleManager;
|
||||
import org.l2jmobius.gameserver.instancemanager.FortManager;
|
||||
@ -37,6 +38,7 @@ import org.l2jmobius.gameserver.model.siege.Castle;
|
||||
import org.l2jmobius.gameserver.model.siege.Castle.CastleFunction;
|
||||
import org.l2jmobius.gameserver.model.siege.Fort;
|
||||
import org.l2jmobius.gameserver.model.siege.Fort.FortFunction;
|
||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
||||
import org.l2jmobius.gameserver.network.GameClient;
|
||||
import org.l2jmobius.gameserver.network.PacketLogger;
|
||||
|
||||
@ -245,9 +247,18 @@ public class RequestRestartPoint implements IClientIncomingPacket
|
||||
PacketLogger.warning("Player [" + player.getName() + "] called RestartPointPacket - Fixed and he isn't festival participant!");
|
||||
return;
|
||||
}
|
||||
if (player.isGM() || player.destroyItemByItemId("Feather", 10649, 1, player, false) || player.destroyItemByItemId("Feather", 13300, 1, player, false) || player.destroyItemByItemId("Feather", 13128, 1, player, false))
|
||||
if (player.isGM())
|
||||
{
|
||||
player.doRevive(100.00);
|
||||
player.doRevive(100);
|
||||
}
|
||||
else if (player.destroyItemByItemId("Feather", 10649, 1, player, false) /* || player.destroyItemByItemId("Feather", 13300, 1, player, false) || player.destroyItemByItemId("Feather", 13128, 1, player, false) */)
|
||||
{
|
||||
final Skill skill = SkillData.getInstance().getSkill(7008, 1);
|
||||
if (skill != null)
|
||||
{
|
||||
player.doRevive(100);
|
||||
skill.applyEffects(player, player);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -24,6 +24,8 @@ import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.clan.Clan;
|
||||
import org.l2jmobius.gameserver.model.siege.Castle;
|
||||
import org.l2jmobius.gameserver.model.siege.Fort;
|
||||
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
||||
import org.l2jmobius.gameserver.network.OutgoingPackets;
|
||||
|
||||
/**
|
||||
@ -34,6 +36,7 @@ public class Die implements IClientOutgoingPacket
|
||||
private final int _objectId;
|
||||
private final boolean _isSweepable;
|
||||
private int _flags = 0;
|
||||
private int _delayFeather = 0;
|
||||
|
||||
public Die(Creature creature)
|
||||
{
|
||||
@ -57,6 +60,16 @@ public class Die implements IClientOutgoingPacket
|
||||
siegeClan = fort.getSiege().getAttackerClan(clan);
|
||||
isInFortDefense = (siegeClan == null) && fort.getSiege().checkIsDefender(clan);
|
||||
}
|
||||
|
||||
for (BuffInfo effect : creature.getEffectList().getEffects())
|
||||
{
|
||||
final Skill skill = effect.getSkill();
|
||||
if (skill.getId() == 7008)
|
||||
{
|
||||
_delayFeather = effect.getTime();
|
||||
}
|
||||
}
|
||||
|
||||
// ClanHall check.
|
||||
if ((clan != null) && (clan.getHideoutId() > 0))
|
||||
{
|
||||
@ -92,7 +105,7 @@ public class Die implements IClientOutgoingPacket
|
||||
packet.writeD(_objectId);
|
||||
packet.writeQ(_flags);
|
||||
packet.writeD(_isSweepable ? 1 : 0);
|
||||
packet.writeD(0); // Feather item time.
|
||||
packet.writeD(_delayFeather); // Feather item time.
|
||||
packet.writeC(0); // Hide die animation.
|
||||
packet.writeD(0);
|
||||
packet.writeD(0);
|
||||
|
@ -33,6 +33,7 @@ import org.l2jmobius.gameserver.model.events.listeners.ConsumerEventListener;
|
||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
||||
import org.l2jmobius.gameserver.model.skill.CommonSkill;
|
||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
||||
import org.l2jmobius.gameserver.model.skill.SkillCaster;
|
||||
import org.l2jmobius.gameserver.model.skill.targets.TargetType;
|
||||
@ -90,7 +91,8 @@ public class TriggerSkillByMagicType extends AbstractEffect
|
||||
return;
|
||||
}
|
||||
|
||||
if (!CommonUtil.contains(_magicTypes, event.getSkill().getMagicType()))
|
||||
final Skill eventSkill = event.getSkill();
|
||||
if (!CommonUtil.contains(_magicTypes, eventSkill.getMagicType()))
|
||||
{
|
||||
return;
|
||||
}
|
||||
@ -114,6 +116,15 @@ public class TriggerSkillByMagicType extends AbstractEffect
|
||||
return;
|
||||
}
|
||||
|
||||
// Ignore common skills.
|
||||
for (CommonSkill skill : CommonSkill.values())
|
||||
{
|
||||
if (skill.getId() == eventSkill.getId())
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
final Skill triggerSkill;
|
||||
if (_skillLevelScaleTo <= 0)
|
||||
{
|
||||
|
@ -185,6 +185,7 @@
|
||||
<isMagic>2</isMagic>
|
||||
<targetType>TARGET</targetType>
|
||||
<affectScope>SINGLE</affectScope>
|
||||
<stayAfterDeath>true</stayAfterDeath>
|
||||
</skill>
|
||||
<skill id="7009" toLevel="1" name="not_used">
|
||||
<magicLevel>1</magicLevel>
|
||||
|
@ -517,16 +517,17 @@ public class EnterWorld implements IClientIncomingPacket
|
||||
PetitionManager.getInstance().checkPetitionMessages(player);
|
||||
}
|
||||
|
||||
player.onPlayerEnter();
|
||||
|
||||
player.sendPacket(new SkillCoolTime(player));
|
||||
player.sendPacket(new ExVoteSystemInfo(player));
|
||||
|
||||
if (player.isAlikeDead()) // dead or fake dead
|
||||
{
|
||||
// no broadcast needed since the player will already spawn dead to others
|
||||
player.sendPacket(new Die(player));
|
||||
}
|
||||
|
||||
player.onPlayerEnter();
|
||||
|
||||
player.sendPacket(new SkillCoolTime(player));
|
||||
player.sendPacket(new ExVoteSystemInfo(player));
|
||||
for (Item item : player.getInventory().getItems())
|
||||
{
|
||||
if (item.isTimeLimitedItem())
|
||||
|
@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.network.clientpackets;
|
||||
import org.l2jmobius.commons.network.PacketReader;
|
||||
import org.l2jmobius.commons.threads.ThreadPool;
|
||||
import org.l2jmobius.gameserver.data.xml.ClanHallData;
|
||||
import org.l2jmobius.gameserver.data.xml.SkillData;
|
||||
import org.l2jmobius.gameserver.enums.TeleportWhereType;
|
||||
import org.l2jmobius.gameserver.instancemanager.CastleManager;
|
||||
import org.l2jmobius.gameserver.instancemanager.FortManager;
|
||||
@ -37,6 +38,7 @@ import org.l2jmobius.gameserver.model.siege.Castle;
|
||||
import org.l2jmobius.gameserver.model.siege.Castle.CastleFunction;
|
||||
import org.l2jmobius.gameserver.model.siege.Fort;
|
||||
import org.l2jmobius.gameserver.model.siege.Fort.FortFunction;
|
||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
||||
import org.l2jmobius.gameserver.network.GameClient;
|
||||
import org.l2jmobius.gameserver.network.PacketLogger;
|
||||
|
||||
@ -245,9 +247,18 @@ public class RequestRestartPoint implements IClientIncomingPacket
|
||||
PacketLogger.warning("Player [" + player.getName() + "] called RestartPointPacket - Fixed and he isn't festival participant!");
|
||||
return;
|
||||
}
|
||||
if (player.isGM() || player.destroyItemByItemId("Feather", 10649, 1, player, false) || player.destroyItemByItemId("Feather", 13300, 1, player, false) || player.destroyItemByItemId("Feather", 13128, 1, player, false))
|
||||
if (player.isGM())
|
||||
{
|
||||
player.doRevive(100.00);
|
||||
player.doRevive(100);
|
||||
}
|
||||
else if (player.destroyItemByItemId("Feather", 10649, 1, player, false) /* || player.destroyItemByItemId("Feather", 13300, 1, player, false) || player.destroyItemByItemId("Feather", 13128, 1, player, false) */)
|
||||
{
|
||||
final Skill skill = SkillData.getInstance().getSkill(7008, 1);
|
||||
if (skill != null)
|
||||
{
|
||||
player.doRevive(100);
|
||||
skill.applyEffects(player, player);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -24,6 +24,8 @@ import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.clan.Clan;
|
||||
import org.l2jmobius.gameserver.model.siege.Castle;
|
||||
import org.l2jmobius.gameserver.model.siege.Fort;
|
||||
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
||||
import org.l2jmobius.gameserver.network.OutgoingPackets;
|
||||
|
||||
/**
|
||||
@ -34,6 +36,7 @@ public class Die implements IClientOutgoingPacket
|
||||
private final int _objectId;
|
||||
private final boolean _isSweepable;
|
||||
private int _flags = 0;
|
||||
private int _delayFeather = 0;
|
||||
|
||||
public Die(Creature creature)
|
||||
{
|
||||
@ -57,6 +60,16 @@ public class Die implements IClientOutgoingPacket
|
||||
siegeClan = fort.getSiege().getAttackerClan(clan);
|
||||
isInFortDefense = (siegeClan == null) && fort.getSiege().checkIsDefender(clan);
|
||||
}
|
||||
|
||||
for (BuffInfo effect : creature.getEffectList().getEffects())
|
||||
{
|
||||
final Skill skill = effect.getSkill();
|
||||
if (skill.getId() == 7008)
|
||||
{
|
||||
_delayFeather = effect.getTime();
|
||||
}
|
||||
}
|
||||
|
||||
// ClanHall check.
|
||||
if ((clan != null) && (clan.getHideoutId() > 0))
|
||||
{
|
||||
@ -92,7 +105,7 @@ public class Die implements IClientOutgoingPacket
|
||||
packet.writeD(_objectId);
|
||||
packet.writeQ(_flags);
|
||||
packet.writeD(_isSweepable ? 1 : 0);
|
||||
packet.writeD(0); // Feather item time.
|
||||
packet.writeD(_delayFeather); // Feather item time.
|
||||
packet.writeC(0); // Hide die animation.
|
||||
packet.writeD(0);
|
||||
packet.writeD(0);
|
||||
|
@ -33,6 +33,7 @@ import org.l2jmobius.gameserver.model.events.listeners.ConsumerEventListener;
|
||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
||||
import org.l2jmobius.gameserver.model.skill.CommonSkill;
|
||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
||||
import org.l2jmobius.gameserver.model.skill.SkillCaster;
|
||||
import org.l2jmobius.gameserver.model.skill.targets.TargetType;
|
||||
@ -90,7 +91,8 @@ public class TriggerSkillByMagicType extends AbstractEffect
|
||||
return;
|
||||
}
|
||||
|
||||
if (!CommonUtil.contains(_magicTypes, event.getSkill().getMagicType()))
|
||||
final Skill eventSkill = event.getSkill();
|
||||
if (!CommonUtil.contains(_magicTypes, eventSkill.getMagicType()))
|
||||
{
|
||||
return;
|
||||
}
|
||||
@ -114,6 +116,15 @@ public class TriggerSkillByMagicType extends AbstractEffect
|
||||
return;
|
||||
}
|
||||
|
||||
// Ignore common skills.
|
||||
for (CommonSkill skill : CommonSkill.values())
|
||||
{
|
||||
if (skill.getId() == eventSkill.getId())
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
final Skill triggerSkill;
|
||||
if (_skillLevelScaleTo <= 0)
|
||||
{
|
||||
|
@ -185,6 +185,7 @@
|
||||
<isMagic>2</isMagic>
|
||||
<targetType>TARGET</targetType>
|
||||
<affectScope>SINGLE</affectScope>
|
||||
<stayAfterDeath>true</stayAfterDeath>
|
||||
</skill>
|
||||
<skill id="7009" toLevel="1" name="not_used">
|
||||
<magicLevel>1</magicLevel>
|
||||
|
@ -518,16 +518,17 @@ public class EnterWorld implements IClientIncomingPacket
|
||||
PetitionManager.getInstance().checkPetitionMessages(player);
|
||||
}
|
||||
|
||||
player.onPlayerEnter();
|
||||
|
||||
player.sendPacket(new SkillCoolTime(player));
|
||||
player.sendPacket(new ExVoteSystemInfo(player));
|
||||
|
||||
if (player.isAlikeDead()) // dead or fake dead
|
||||
{
|
||||
// no broadcast needed since the player will already spawn dead to others
|
||||
player.sendPacket(new Die(player));
|
||||
}
|
||||
|
||||
player.onPlayerEnter();
|
||||
|
||||
player.sendPacket(new SkillCoolTime(player));
|
||||
player.sendPacket(new ExVoteSystemInfo(player));
|
||||
for (Item item : player.getInventory().getItems())
|
||||
{
|
||||
if (item.isTimeLimitedItem())
|
||||
|
@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.network.clientpackets;
|
||||
import org.l2jmobius.commons.network.PacketReader;
|
||||
import org.l2jmobius.commons.threads.ThreadPool;
|
||||
import org.l2jmobius.gameserver.data.xml.ClanHallData;
|
||||
import org.l2jmobius.gameserver.data.xml.SkillData;
|
||||
import org.l2jmobius.gameserver.enums.TeleportWhereType;
|
||||
import org.l2jmobius.gameserver.instancemanager.CastleManager;
|
||||
import org.l2jmobius.gameserver.instancemanager.FortManager;
|
||||
@ -37,6 +38,7 @@ import org.l2jmobius.gameserver.model.siege.Castle;
|
||||
import org.l2jmobius.gameserver.model.siege.Castle.CastleFunction;
|
||||
import org.l2jmobius.gameserver.model.siege.Fort;
|
||||
import org.l2jmobius.gameserver.model.siege.Fort.FortFunction;
|
||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
||||
import org.l2jmobius.gameserver.network.GameClient;
|
||||
import org.l2jmobius.gameserver.network.PacketLogger;
|
||||
|
||||
@ -245,9 +247,18 @@ public class RequestRestartPoint implements IClientIncomingPacket
|
||||
PacketLogger.warning("Player [" + player.getName() + "] called RestartPointPacket - Fixed and he isn't festival participant!");
|
||||
return;
|
||||
}
|
||||
if (player.isGM() || player.destroyItemByItemId("Feather", 10649, 1, player, false) || player.destroyItemByItemId("Feather", 13300, 1, player, false) || player.destroyItemByItemId("Feather", 13128, 1, player, false))
|
||||
if (player.isGM())
|
||||
{
|
||||
player.doRevive(100.00);
|
||||
player.doRevive(100);
|
||||
}
|
||||
else if (player.destroyItemByItemId("Feather", 10649, 1, player, false) /* || player.destroyItemByItemId("Feather", 13300, 1, player, false) || player.destroyItemByItemId("Feather", 13128, 1, player, false) */)
|
||||
{
|
||||
final Skill skill = SkillData.getInstance().getSkill(7008, 1);
|
||||
if (skill != null)
|
||||
{
|
||||
player.doRevive(100);
|
||||
skill.applyEffects(player, player);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -24,6 +24,8 @@ import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.clan.Clan;
|
||||
import org.l2jmobius.gameserver.model.siege.Castle;
|
||||
import org.l2jmobius.gameserver.model.siege.Fort;
|
||||
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
||||
import org.l2jmobius.gameserver.network.OutgoingPackets;
|
||||
|
||||
/**
|
||||
@ -34,6 +36,7 @@ public class Die implements IClientOutgoingPacket
|
||||
private final int _objectId;
|
||||
private final boolean _isSweepable;
|
||||
private int _flags = 1; // To nearest village.
|
||||
private int _delayFeather = 0;
|
||||
|
||||
public Die(Creature creature)
|
||||
{
|
||||
@ -57,6 +60,16 @@ public class Die implements IClientOutgoingPacket
|
||||
siegeClan = fort.getSiege().getAttackerClan(clan);
|
||||
isInFortDefense = (siegeClan == null) && fort.getSiege().checkIsDefender(clan);
|
||||
}
|
||||
|
||||
for (BuffInfo effect : creature.getEffectList().getEffects())
|
||||
{
|
||||
final Skill skill = effect.getSkill();
|
||||
if (skill.getId() == 7008)
|
||||
{
|
||||
_delayFeather = effect.getTime();
|
||||
}
|
||||
}
|
||||
|
||||
// ClanHall check.
|
||||
if ((clan != null) && (clan.getHideoutId() > 0))
|
||||
{
|
||||
@ -92,7 +105,7 @@ public class Die implements IClientOutgoingPacket
|
||||
packet.writeD(_objectId);
|
||||
packet.writeQ(_flags);
|
||||
packet.writeD(_isSweepable ? 1 : 0);
|
||||
packet.writeD(0); // Feather item time.
|
||||
packet.writeD(_delayFeather); // Feather item time.
|
||||
packet.writeC(0); // Hide die animation.
|
||||
packet.writeD(0);
|
||||
packet.writeD(0);
|
||||
|
@ -33,6 +33,7 @@ import org.l2jmobius.gameserver.model.events.listeners.ConsumerEventListener;
|
||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
||||
import org.l2jmobius.gameserver.model.skill.CommonSkill;
|
||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
||||
import org.l2jmobius.gameserver.model.skill.SkillCaster;
|
||||
import org.l2jmobius.gameserver.model.skill.targets.TargetType;
|
||||
@ -90,7 +91,8 @@ public class TriggerSkillByMagicType extends AbstractEffect
|
||||
return;
|
||||
}
|
||||
|
||||
if (!CommonUtil.contains(_magicTypes, event.getSkill().getMagicType()))
|
||||
final Skill eventSkill = event.getSkill();
|
||||
if (!CommonUtil.contains(_magicTypes, eventSkill.getMagicType()))
|
||||
{
|
||||
return;
|
||||
}
|
||||
@ -114,6 +116,15 @@ public class TriggerSkillByMagicType extends AbstractEffect
|
||||
return;
|
||||
}
|
||||
|
||||
// Ignore common skills.
|
||||
for (CommonSkill skill : CommonSkill.values())
|
||||
{
|
||||
if (skill.getId() == eventSkill.getId())
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
final Skill triggerSkill;
|
||||
if (_skillLevelScaleTo <= 0)
|
||||
{
|
||||
|
@ -185,6 +185,7 @@
|
||||
<isMagic>2</isMagic>
|
||||
<targetType>TARGET</targetType>
|
||||
<affectScope>SINGLE</affectScope>
|
||||
<stayAfterDeath>true</stayAfterDeath>
|
||||
</skill>
|
||||
<skill id="7009" toLevel="1" name="not_used">
|
||||
<magicLevel>1</magicLevel>
|
||||
|
@ -518,16 +518,17 @@ public class EnterWorld implements IClientIncomingPacket
|
||||
PetitionManager.getInstance().checkPetitionMessages(player);
|
||||
}
|
||||
|
||||
player.onPlayerEnter();
|
||||
|
||||
player.sendPacket(new SkillCoolTime(player));
|
||||
player.sendPacket(new ExVoteSystemInfo(player));
|
||||
|
||||
if (player.isAlikeDead()) // dead or fake dead
|
||||
{
|
||||
// no broadcast needed since the player will already spawn dead to others
|
||||
player.sendPacket(new Die(player));
|
||||
}
|
||||
|
||||
player.onPlayerEnter();
|
||||
|
||||
player.sendPacket(new SkillCoolTime(player));
|
||||
player.sendPacket(new ExVoteSystemInfo(player));
|
||||
for (Item item : player.getInventory().getItems())
|
||||
{
|
||||
if (item.isTimeLimitedItem())
|
||||
|
@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.network.clientpackets;
|
||||
import org.l2jmobius.commons.network.PacketReader;
|
||||
import org.l2jmobius.commons.threads.ThreadPool;
|
||||
import org.l2jmobius.gameserver.data.xml.ClanHallData;
|
||||
import org.l2jmobius.gameserver.data.xml.SkillData;
|
||||
import org.l2jmobius.gameserver.enums.TeleportWhereType;
|
||||
import org.l2jmobius.gameserver.instancemanager.CastleManager;
|
||||
import org.l2jmobius.gameserver.instancemanager.FortManager;
|
||||
@ -37,6 +38,7 @@ import org.l2jmobius.gameserver.model.siege.Castle;
|
||||
import org.l2jmobius.gameserver.model.siege.Castle.CastleFunction;
|
||||
import org.l2jmobius.gameserver.model.siege.Fort;
|
||||
import org.l2jmobius.gameserver.model.siege.Fort.FortFunction;
|
||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
||||
import org.l2jmobius.gameserver.network.GameClient;
|
||||
import org.l2jmobius.gameserver.network.PacketLogger;
|
||||
|
||||
@ -245,9 +247,18 @@ public class RequestRestartPoint implements IClientIncomingPacket
|
||||
PacketLogger.warning("Player [" + player.getName() + "] called RestartPointPacket - Fixed and he isn't festival participant!");
|
||||
return;
|
||||
}
|
||||
if (player.isGM() || player.destroyItemByItemId("Feather", 10649, 1, player, false) || player.destroyItemByItemId("Feather", 13300, 1, player, false) || player.destroyItemByItemId("Feather", 13128, 1, player, false))
|
||||
if (player.isGM())
|
||||
{
|
||||
player.doRevive(100.00);
|
||||
player.doRevive(100);
|
||||
}
|
||||
else if (player.destroyItemByItemId("Feather", 10649, 1, player, false) /* || player.destroyItemByItemId("Feather", 13300, 1, player, false) || player.destroyItemByItemId("Feather", 13128, 1, player, false) */)
|
||||
{
|
||||
final Skill skill = SkillData.getInstance().getSkill(7008, 1);
|
||||
if (skill != null)
|
||||
{
|
||||
player.doRevive(100);
|
||||
skill.applyEffects(player, player);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -24,6 +24,8 @@ import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.clan.Clan;
|
||||
import org.l2jmobius.gameserver.model.siege.Castle;
|
||||
import org.l2jmobius.gameserver.model.siege.Fort;
|
||||
import org.l2jmobius.gameserver.model.skill.BuffInfo;
|
||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
||||
import org.l2jmobius.gameserver.network.OutgoingPackets;
|
||||
|
||||
/**
|
||||
@ -34,6 +36,7 @@ public class Die implements IClientOutgoingPacket
|
||||
private final int _objectId;
|
||||
private final boolean _isSweepable;
|
||||
private int _flags = 1; // To nearest village.
|
||||
private int _delayFeather = 0;
|
||||
|
||||
public Die(Creature creature)
|
||||
{
|
||||
@ -57,6 +60,16 @@ public class Die implements IClientOutgoingPacket
|
||||
siegeClan = fort.getSiege().getAttackerClan(clan);
|
||||
isInFortDefense = (siegeClan == null) && fort.getSiege().checkIsDefender(clan);
|
||||
}
|
||||
|
||||
for (BuffInfo effect : creature.getEffectList().getEffects())
|
||||
{
|
||||
final Skill skill = effect.getSkill();
|
||||
if (skill.getId() == 7008)
|
||||
{
|
||||
_delayFeather = effect.getTime();
|
||||
}
|
||||
}
|
||||
|
||||
// ClanHall check.
|
||||
if ((clan != null) && (clan.getHideoutId() > 0))
|
||||
{
|
||||
@ -92,7 +105,7 @@ public class Die implements IClientOutgoingPacket
|
||||
packet.writeD(_objectId);
|
||||
packet.writeQ(_flags);
|
||||
packet.writeD(_isSweepable ? 1 : 0);
|
||||
packet.writeD(0); // Feather item time.
|
||||
packet.writeD(_delayFeather); // Feather item time.
|
||||
packet.writeC(0); // Hide die animation.
|
||||
packet.writeD(0);
|
||||
packet.writeD(0);
|
||||
|
Loading…
Reference in New Issue
Block a user