Reverted session zone Die packet escape block.

Contributed by Enryu.
This commit is contained in:
MobiusDevelopment
2022-12-14 22:04:03 +00:00
parent 527e1b3f64
commit b20800bf21
8 changed files with 278 additions and 324 deletions

View File

@@ -20,7 +20,6 @@ import org.l2jmobius.gameserver.instancemanager.CastleManager;
import org.l2jmobius.gameserver.instancemanager.FortManager;
import org.l2jmobius.gameserver.model.SiegeClan;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.clan.Clan;
import org.l2jmobius.gameserver.model.siege.Castle;
import org.l2jmobius.gameserver.model.siege.Fort;
@@ -44,6 +43,23 @@ public class Die extends ServerPacket
_isSweepable = creature.isAttackable() && creature.isSweepActive();
if (creature.isPlayer())
{
final Clan clan = creature.getActingPlayer().getClan();
boolean isInCastleDefense = false;
boolean isInFortDefense = false;
SiegeClan siegeClan = null;
final Castle castle = CastleManager.getInstance().getCastle(creature);
final Fort fort = FortManager.getInstance().getFort(creature);
if ((castle != null) && castle.getSiege().isInProgress())
{
siegeClan = castle.getSiege().getAttackerClan(clan);
isInCastleDefense = (siegeClan == null) && castle.getSiege().checkIsDefender(clan);
}
else if ((fort != null) && fort.getSiege().isInProgress())
{
siegeClan = fort.getSiege().getAttackerClan(clan);
isInFortDefense = (siegeClan == null) && fort.getSiege().checkIsDefender(clan);
}
for (BuffInfo effect : creature.getEffectList().getEffects())
{
if (effect.getSkill().getId() == CommonSkill.FEATHER_OF_BLESSING.getId())
@@ -53,48 +69,26 @@ public class Die extends ServerPacket
}
}
final Player player = creature.getActingPlayer();
if (!player.isInTimedHuntingZone())
// ClanHall check.
if ((clan != null) && (clan.getHideoutId() > 0))
{
final Clan clan = player.getClan();
boolean isInCastleDefense = false;
boolean isInFortDefense = false;
SiegeClan siegeClan = null;
final Castle castle = CastleManager.getInstance().getCastle(creature);
final Fort fort = FortManager.getInstance().getFort(creature);
if ((castle != null) && castle.getSiege().isInProgress())
{
siegeClan = castle.getSiege().getAttackerClan(clan);
isInCastleDefense = (siegeClan == null) && castle.getSiege().checkIsDefender(clan);
}
else if ((fort != null) && fort.getSiege().isInProgress())
{
siegeClan = fort.getSiege().getAttackerClan(clan);
isInFortDefense = (siegeClan == null) && fort.getSiege().checkIsDefender(clan);
}
// ClanHall check.
if ((clan != null) && (clan.getHideoutId() > 0))
{
_flags += 2;
}
// Castle check.
if (((clan != null) && (clan.getCastleId() > 0)) || isInCastleDefense)
{
_flags += 4;
}
// Fortress check.
if (((clan != null) && (clan.getFortId() > 0)) || isInFortDefense)
{
_flags += 8;
}
// Outpost check.
if (((siegeClan != null) && !isInCastleDefense && !isInFortDefense && !siegeClan.getFlag().isEmpty()))
{
_flags += 16;
}
_flags += 2;
}
// Castle check.
if (((clan != null) && (clan.getCastleId() > 0)) || isInCastleDefense)
{
_flags += 4;
}
// Fortress check.
if (((clan != null) && (clan.getFortId() > 0)) || isInFortDefense)
{
_flags += 8;
}
// Outpost check.
if (((siegeClan != null) && !isInCastleDefense && !isInFortDefense && !siegeClan.getFlag().isEmpty()))
{
_flags += 16;
}
// Feather check.
if (creature.getAccessLevel().allowFixedRes() || creature.getInventory().haveItemForSelfResurrection())
{

View File

@@ -20,7 +20,6 @@ import org.l2jmobius.gameserver.instancemanager.CastleManager;
import org.l2jmobius.gameserver.instancemanager.FortManager;
import org.l2jmobius.gameserver.model.SiegeClan;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.clan.Clan;
import org.l2jmobius.gameserver.model.siege.Castle;
import org.l2jmobius.gameserver.model.siege.Fort;
@@ -44,6 +43,23 @@ public class Die extends ServerPacket
_isSweepable = creature.isAttackable() && creature.isSweepActive();
if (creature.isPlayer())
{
final Clan clan = creature.getActingPlayer().getClan();
boolean isInCastleDefense = false;
boolean isInFortDefense = false;
SiegeClan siegeClan = null;
final Castle castle = CastleManager.getInstance().getCastle(creature);
final Fort fort = FortManager.getInstance().getFort(creature);
if ((castle != null) && castle.getSiege().isInProgress())
{
siegeClan = castle.getSiege().getAttackerClan(clan);
isInCastleDefense = (siegeClan == null) && castle.getSiege().checkIsDefender(clan);
}
else if ((fort != null) && fort.getSiege().isInProgress())
{
siegeClan = fort.getSiege().getAttackerClan(clan);
isInFortDefense = (siegeClan == null) && fort.getSiege().checkIsDefender(clan);
}
for (BuffInfo effect : creature.getEffectList().getEffects())
{
if (effect.getSkill().getId() == CommonSkill.FEATHER_OF_BLESSING.getId())
@@ -53,48 +69,26 @@ public class Die extends ServerPacket
}
}
final Player player = creature.getActingPlayer();
if (!player.isInTimedHuntingZone())
// ClanHall check.
if ((clan != null) && (clan.getHideoutId() > 0))
{
final Clan clan = player.getClan();
boolean isInCastleDefense = false;
boolean isInFortDefense = false;
SiegeClan siegeClan = null;
final Castle castle = CastleManager.getInstance().getCastle(creature);
final Fort fort = FortManager.getInstance().getFort(creature);
if ((castle != null) && castle.getSiege().isInProgress())
{
siegeClan = castle.getSiege().getAttackerClan(clan);
isInCastleDefense = (siegeClan == null) && castle.getSiege().checkIsDefender(clan);
}
else if ((fort != null) && fort.getSiege().isInProgress())
{
siegeClan = fort.getSiege().getAttackerClan(clan);
isInFortDefense = (siegeClan == null) && fort.getSiege().checkIsDefender(clan);
}
// ClanHall check.
if ((clan != null) && (clan.getHideoutId() > 0))
{
_flags += 2;
}
// Castle check.
if (((clan != null) && (clan.getCastleId() > 0)) || isInCastleDefense)
{
_flags += 4;
}
// Fortress check.
if (((clan != null) && (clan.getFortId() > 0)) || isInFortDefense)
{
_flags += 8;
}
// Outpost check.
if (((siegeClan != null) && !isInCastleDefense && !isInFortDefense && !siegeClan.getFlag().isEmpty()))
{
_flags += 16;
}
_flags += 2;
}
// Castle check.
if (((clan != null) && (clan.getCastleId() > 0)) || isInCastleDefense)
{
_flags += 4;
}
// Fortress check.
if (((clan != null) && (clan.getFortId() > 0)) || isInFortDefense)
{
_flags += 8;
}
// Outpost check.
if (((siegeClan != null) && !isInCastleDefense && !isInFortDefense && !siegeClan.getFlag().isEmpty()))
{
_flags += 16;
}
// Feather check.
if (creature.getAccessLevel().allowFixedRes() || creature.getInventory().haveItemForSelfResurrection())
{

View File

@@ -20,7 +20,6 @@ import org.l2jmobius.gameserver.instancemanager.CastleManager;
import org.l2jmobius.gameserver.instancemanager.FortManager;
import org.l2jmobius.gameserver.model.SiegeClan;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.clan.Clan;
import org.l2jmobius.gameserver.model.siege.Castle;
import org.l2jmobius.gameserver.model.siege.Fort;
@@ -44,6 +43,23 @@ public class Die extends ServerPacket
_isSweepable = creature.isAttackable() && creature.isSweepActive();
if (creature.isPlayer())
{
final Clan clan = creature.getActingPlayer().getClan();
boolean isInCastleDefense = false;
boolean isInFortDefense = false;
SiegeClan siegeClan = null;
final Castle castle = CastleManager.getInstance().getCastle(creature);
final Fort fort = FortManager.getInstance().getFort(creature);
if ((castle != null) && castle.getSiege().isInProgress())
{
siegeClan = castle.getSiege().getAttackerClan(clan);
isInCastleDefense = (siegeClan == null) && castle.getSiege().checkIsDefender(clan);
}
else if ((fort != null) && fort.getSiege().isInProgress())
{
siegeClan = fort.getSiege().getAttackerClan(clan);
isInFortDefense = (siegeClan == null) && fort.getSiege().checkIsDefender(clan);
}
for (BuffInfo effect : creature.getEffectList().getEffects())
{
if (effect.getSkill().getId() == CommonSkill.FEATHER_OF_BLESSING.getId())
@@ -53,48 +69,26 @@ public class Die extends ServerPacket
}
}
final Player player = creature.getActingPlayer();
if (!player.isInTimedHuntingZone())
// ClanHall check.
if ((clan != null) && (clan.getHideoutId() > 0))
{
final Clan clan = player.getClan();
boolean isInCastleDefense = false;
boolean isInFortDefense = false;
SiegeClan siegeClan = null;
final Castle castle = CastleManager.getInstance().getCastle(creature);
final Fort fort = FortManager.getInstance().getFort(creature);
if ((castle != null) && castle.getSiege().isInProgress())
{
siegeClan = castle.getSiege().getAttackerClan(clan);
isInCastleDefense = (siegeClan == null) && castle.getSiege().checkIsDefender(clan);
}
else if ((fort != null) && fort.getSiege().isInProgress())
{
siegeClan = fort.getSiege().getAttackerClan(clan);
isInFortDefense = (siegeClan == null) && fort.getSiege().checkIsDefender(clan);
}
// ClanHall check.
if ((clan != null) && (clan.getHideoutId() > 0))
{
_flags += 2;
}
// Castle check.
if (((clan != null) && (clan.getCastleId() > 0)) || isInCastleDefense)
{
_flags += 4;
}
// Fortress check.
if (((clan != null) && (clan.getFortId() > 0)) || isInFortDefense)
{
_flags += 8;
}
// Outpost check.
if (((siegeClan != null) && !isInCastleDefense && !isInFortDefense && !siegeClan.getFlag().isEmpty()))
{
_flags += 16;
}
_flags += 2;
}
// Castle check.
if (((clan != null) && (clan.getCastleId() > 0)) || isInCastleDefense)
{
_flags += 4;
}
// Fortress check.
if (((clan != null) && (clan.getFortId() > 0)) || isInFortDefense)
{
_flags += 8;
}
// Outpost check.
if (((siegeClan != null) && !isInCastleDefense && !isInFortDefense && !siegeClan.getFlag().isEmpty()))
{
_flags += 16;
}
// Feather check.
if (creature.getAccessLevel().allowFixedRes() || creature.getInventory().haveItemForSelfResurrection())
{

View File

@@ -20,7 +20,6 @@ import org.l2jmobius.gameserver.instancemanager.CastleManager;
import org.l2jmobius.gameserver.instancemanager.FortManager;
import org.l2jmobius.gameserver.model.SiegeClan;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.clan.Clan;
import org.l2jmobius.gameserver.model.siege.Castle;
import org.l2jmobius.gameserver.model.siege.Fort;
@@ -44,6 +43,23 @@ public class Die extends ServerPacket
_isSweepable = creature.isAttackable() && creature.isSweepActive();
if (creature.isPlayer())
{
final Clan clan = creature.getActingPlayer().getClan();
boolean isInCastleDefense = false;
boolean isInFortDefense = false;
SiegeClan siegeClan = null;
final Castle castle = CastleManager.getInstance().getCastle(creature);
final Fort fort = FortManager.getInstance().getFort(creature);
if ((castle != null) && castle.getSiege().isInProgress())
{
siegeClan = castle.getSiege().getAttackerClan(clan);
isInCastleDefense = (siegeClan == null) && castle.getSiege().checkIsDefender(clan);
}
else if ((fort != null) && fort.getSiege().isInProgress())
{
siegeClan = fort.getSiege().getAttackerClan(clan);
isInFortDefense = (siegeClan == null) && fort.getSiege().checkIsDefender(clan);
}
for (BuffInfo effect : creature.getEffectList().getEffects())
{
if (effect.getSkill().getId() == CommonSkill.FEATHER_OF_BLESSING.getId())
@@ -53,48 +69,26 @@ public class Die extends ServerPacket
}
}
final Player player = creature.getActingPlayer();
if (!player.isInTimedHuntingZone())
// ClanHall check.
if ((clan != null) && (clan.getHideoutId() > 0))
{
final Clan clan = player.getClan();
boolean isInCastleDefense = false;
boolean isInFortDefense = false;
SiegeClan siegeClan = null;
final Castle castle = CastleManager.getInstance().getCastle(creature);
final Fort fort = FortManager.getInstance().getFort(creature);
if ((castle != null) && castle.getSiege().isInProgress())
{
siegeClan = castle.getSiege().getAttackerClan(clan);
isInCastleDefense = (siegeClan == null) && castle.getSiege().checkIsDefender(clan);
}
else if ((fort != null) && fort.getSiege().isInProgress())
{
siegeClan = fort.getSiege().getAttackerClan(clan);
isInFortDefense = (siegeClan == null) && fort.getSiege().checkIsDefender(clan);
}
// ClanHall check.
if ((clan != null) && (clan.getHideoutId() > 0))
{
_flags += 2;
}
// Castle check.
if (((clan != null) && (clan.getCastleId() > 0)) || isInCastleDefense)
{
_flags += 4;
}
// Fortress check.
if (((clan != null) && (clan.getFortId() > 0)) || isInFortDefense)
{
_flags += 8;
}
// Outpost check.
if (((siegeClan != null) && !isInCastleDefense && !isInFortDefense && !siegeClan.getFlag().isEmpty()))
{
_flags += 16;
}
_flags += 2;
}
// Castle check.
if (((clan != null) && (clan.getCastleId() > 0)) || isInCastleDefense)
{
_flags += 4;
}
// Fortress check.
if (((clan != null) && (clan.getFortId() > 0)) || isInFortDefense)
{
_flags += 8;
}
// Outpost check.
if (((siegeClan != null) && !isInCastleDefense && !isInFortDefense && !siegeClan.getFlag().isEmpty()))
{
_flags += 16;
}
// Feather check.
if (creature.getAccessLevel().allowFixedRes() || creature.getInventory().haveItemForSelfResurrection())
{

View File

@@ -20,7 +20,6 @@ import org.l2jmobius.gameserver.instancemanager.CastleManager;
import org.l2jmobius.gameserver.instancemanager.FortManager;
import org.l2jmobius.gameserver.model.SiegeClan;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.clan.Clan;
import org.l2jmobius.gameserver.model.siege.Castle;
import org.l2jmobius.gameserver.model.siege.Fort;
@@ -44,6 +43,23 @@ public class Die extends ServerPacket
_isSweepable = creature.isAttackable() && creature.isSweepActive();
if (creature.isPlayer())
{
final Clan clan = creature.getActingPlayer().getClan();
boolean isInCastleDefense = false;
boolean isInFortDefense = false;
SiegeClan siegeClan = null;
final Castle castle = CastleManager.getInstance().getCastle(creature);
final Fort fort = FortManager.getInstance().getFort(creature);
if ((castle != null) && castle.getSiege().isInProgress())
{
siegeClan = castle.getSiege().getAttackerClan(clan);
isInCastleDefense = (siegeClan == null) && castle.getSiege().checkIsDefender(clan);
}
else if ((fort != null) && fort.getSiege().isInProgress())
{
siegeClan = fort.getSiege().getAttackerClan(clan);
isInFortDefense = (siegeClan == null) && fort.getSiege().checkIsDefender(clan);
}
for (BuffInfo effect : creature.getEffectList().getEffects())
{
if (effect.getSkill().getId() == CommonSkill.FEATHER_OF_BLESSING.getId())
@@ -53,48 +69,26 @@ public class Die extends ServerPacket
}
}
final Player player = creature.getActingPlayer();
if (!player.isInTimedHuntingZone())
// ClanHall check.
if ((clan != null) && (clan.getHideoutId() > 0))
{
final Clan clan = player.getClan();
boolean isInCastleDefense = false;
boolean isInFortDefense = false;
SiegeClan siegeClan = null;
final Castle castle = CastleManager.getInstance().getCastle(creature);
final Fort fort = FortManager.getInstance().getFort(creature);
if ((castle != null) && castle.getSiege().isInProgress())
{
siegeClan = castle.getSiege().getAttackerClan(clan);
isInCastleDefense = (siegeClan == null) && castle.getSiege().checkIsDefender(clan);
}
else if ((fort != null) && fort.getSiege().isInProgress())
{
siegeClan = fort.getSiege().getAttackerClan(clan);
isInFortDefense = (siegeClan == null) && fort.getSiege().checkIsDefender(clan);
}
// ClanHall check.
if ((clan != null) && (clan.getHideoutId() > 0))
{
_flags += 2;
}
// Castle check.
if (((clan != null) && (clan.getCastleId() > 0)) || isInCastleDefense)
{
_flags += 4;
}
// Fortress check.
if (((clan != null) && (clan.getFortId() > 0)) || isInFortDefense)
{
_flags += 8;
}
// Outpost check.
if (((siegeClan != null) && !isInCastleDefense && !isInFortDefense && !siegeClan.getFlag().isEmpty()))
{
_flags += 16;
}
_flags += 2;
}
// Castle check.
if (((clan != null) && (clan.getCastleId() > 0)) || isInCastleDefense)
{
_flags += 4;
}
// Fortress check.
if (((clan != null) && (clan.getFortId() > 0)) || isInFortDefense)
{
_flags += 8;
}
// Outpost check.
if (((siegeClan != null) && !isInCastleDefense && !isInFortDefense && !siegeClan.getFlag().isEmpty()))
{
_flags += 16;
}
// Feather check.
if (creature.getAccessLevel().allowFixedRes() || creature.getInventory().haveItemForSelfResurrection())
{

View File

@@ -20,7 +20,6 @@ import org.l2jmobius.gameserver.instancemanager.CastleManager;
import org.l2jmobius.gameserver.instancemanager.FortManager;
import org.l2jmobius.gameserver.model.SiegeClan;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.clan.Clan;
import org.l2jmobius.gameserver.model.siege.Castle;
import org.l2jmobius.gameserver.model.siege.Fort;
@@ -44,6 +43,23 @@ public class Die extends ServerPacket
_isSweepable = creature.isAttackable() && creature.isSweepActive();
if (creature.isPlayer())
{
final Clan clan = creature.getActingPlayer().getClan();
boolean isInCastleDefense = false;
boolean isInFortDefense = false;
SiegeClan siegeClan = null;
final Castle castle = CastleManager.getInstance().getCastle(creature);
final Fort fort = FortManager.getInstance().getFort(creature);
if ((castle != null) && castle.getSiege().isInProgress())
{
siegeClan = castle.getSiege().getAttackerClan(clan);
isInCastleDefense = (siegeClan == null) && castle.getSiege().checkIsDefender(clan);
}
else if ((fort != null) && fort.getSiege().isInProgress())
{
siegeClan = fort.getSiege().getAttackerClan(clan);
isInFortDefense = (siegeClan == null) && fort.getSiege().checkIsDefender(clan);
}
for (BuffInfo effect : creature.getEffectList().getEffects())
{
if (effect.getSkill().getId() == CommonSkill.FEATHER_OF_BLESSING.getId())
@@ -53,48 +69,26 @@ public class Die extends ServerPacket
}
}
final Player player = creature.getActingPlayer();
if (!player.isInTimedHuntingZone())
// ClanHall check.
if ((clan != null) && (clan.getHideoutId() > 0))
{
final Clan clan = player.getClan();
boolean isInCastleDefense = false;
boolean isInFortDefense = false;
SiegeClan siegeClan = null;
final Castle castle = CastleManager.getInstance().getCastle(creature);
final Fort fort = FortManager.getInstance().getFort(creature);
if ((castle != null) && castle.getSiege().isInProgress())
{
siegeClan = castle.getSiege().getAttackerClan(clan);
isInCastleDefense = (siegeClan == null) && castle.getSiege().checkIsDefender(clan);
}
else if ((fort != null) && fort.getSiege().isInProgress())
{
siegeClan = fort.getSiege().getAttackerClan(clan);
isInFortDefense = (siegeClan == null) && fort.getSiege().checkIsDefender(clan);
}
// ClanHall check.
if ((clan != null) && (clan.getHideoutId() > 0))
{
_flags += 2;
}
// Castle check.
if (((clan != null) && (clan.getCastleId() > 0)) || isInCastleDefense)
{
_flags += 4;
}
// Fortress check.
if (((clan != null) && (clan.getFortId() > 0)) || isInFortDefense)
{
_flags += 8;
}
// Outpost check.
if (((siegeClan != null) && !isInCastleDefense && !isInFortDefense && !siegeClan.getFlag().isEmpty()))
{
_flags += 16;
}
_flags += 2;
}
// Castle check.
if (((clan != null) && (clan.getCastleId() > 0)) || isInCastleDefense)
{
_flags += 4;
}
// Fortress check.
if (((clan != null) && (clan.getFortId() > 0)) || isInFortDefense)
{
_flags += 8;
}
// Outpost check.
if (((siegeClan != null) && !isInCastleDefense && !isInFortDefense && !siegeClan.getFlag().isEmpty()))
{
_flags += 16;
}
// Feather check.
if (creature.getAccessLevel().allowFixedRes() || creature.getInventory().haveItemForSelfResurrection())
{

View File

@@ -52,6 +52,22 @@ public class Die extends ServerPacket
if (creature.isPlayer())
{
_player = creature.getActingPlayer();
final Clan clan = _player.getClan();
boolean isInCastleDefense = false;
boolean isInFortDefense = false;
SiegeClan siegeClan = null;
final Castle castle = CastleManager.getInstance().getCastle(creature);
final Fort fort = FortManager.getInstance().getFort(creature);
if ((castle != null) && castle.getSiege().isInProgress())
{
siegeClan = castle.getSiege().getAttackerClan(clan);
isInCastleDefense = (siegeClan == null) && castle.getSiege().checkIsDefender(clan);
}
else if ((fort != null) && fort.getSiege().isInProgress())
{
siegeClan = fort.getSiege().getAttackerClan(clan);
isInFortDefense = (siegeClan == null) && fort.getSiege().checkIsDefender(clan);
}
for (BuffInfo effect : creature.getEffectList().getEffects())
{
@@ -62,47 +78,26 @@ public class Die extends ServerPacket
}
}
if (!_player.isInTimedHuntingZone())
// ClanHall check.
if ((clan != null) && (clan.getHideoutId() > 0))
{
final Clan clan = _player.getClan();
boolean isInCastleDefense = false;
boolean isInFortDefense = false;
SiegeClan siegeClan = null;
final Castle castle = CastleManager.getInstance().getCastle(creature);
final Fort fort = FortManager.getInstance().getFort(creature);
if ((castle != null) && castle.getSiege().isInProgress())
{
siegeClan = castle.getSiege().getAttackerClan(clan);
isInCastleDefense = (siegeClan == null) && castle.getSiege().checkIsDefender(clan);
}
else if ((fort != null) && fort.getSiege().isInProgress())
{
siegeClan = fort.getSiege().getAttackerClan(clan);
isInFortDefense = (siegeClan == null) && fort.getSiege().checkIsDefender(clan);
}
// ClanHall check.
if ((clan != null) && (clan.getHideoutId() > 0))
{
_flags += 2;
}
// Castle check.
if (((clan != null) && (clan.getCastleId() > 0)) || isInCastleDefense)
{
_flags += 4;
}
// Fortress check.
if (((clan != null) && (clan.getFortId() > 0)) || isInFortDefense)
{
_flags += 8;
}
// Outpost check.
if (((siegeClan != null) && !isInCastleDefense && !isInFortDefense && !siegeClan.getFlag().isEmpty()))
{
_flags += 16;
}
_flags += 2;
}
// Castle check.
if (((clan != null) && (clan.getCastleId() > 0)) || isInCastleDefense)
{
_flags += 4;
}
// Fortress check.
if (((clan != null) && (clan.getFortId() > 0)) || isInFortDefense)
{
_flags += 8;
}
// Outpost check.
if (((siegeClan != null) && !isInCastleDefense && !isInFortDefense && !siegeClan.getFlag().isEmpty()))
{
_flags += 16;
}
// Feather check.
if (creature.getAccessLevel().allowFixedRes() || creature.getInventory().haveItemForSelfResurrection())
{

View File

@@ -52,6 +52,22 @@ public class Die extends ServerPacket
if (creature.isPlayer())
{
_player = creature.getActingPlayer();
final Clan clan = _player.getClan();
boolean isInCastleDefense = false;
boolean isInFortDefense = false;
SiegeClan siegeClan = null;
final Castle castle = CastleManager.getInstance().getCastle(creature);
final Fort fort = FortManager.getInstance().getFort(creature);
if ((castle != null) && castle.getSiege().isInProgress())
{
siegeClan = castle.getSiege().getAttackerClan(clan);
isInCastleDefense = (siegeClan == null) && castle.getSiege().checkIsDefender(clan);
}
else if ((fort != null) && fort.getSiege().isInProgress())
{
siegeClan = fort.getSiege().getAttackerClan(clan);
isInFortDefense = (siegeClan == null) && fort.getSiege().checkIsDefender(clan);
}
for (BuffInfo effect : creature.getEffectList().getEffects())
{
@@ -62,47 +78,26 @@ public class Die extends ServerPacket
}
}
if (!_player.isInTimedHuntingZone())
// ClanHall check.
if ((clan != null) && (clan.getHideoutId() > 0))
{
final Clan clan = _player.getClan();
boolean isInCastleDefense = false;
boolean isInFortDefense = false;
SiegeClan siegeClan = null;
final Castle castle = CastleManager.getInstance().getCastle(creature);
final Fort fort = FortManager.getInstance().getFort(creature);
if ((castle != null) && castle.getSiege().isInProgress())
{
siegeClan = castle.getSiege().getAttackerClan(clan);
isInCastleDefense = (siegeClan == null) && castle.getSiege().checkIsDefender(clan);
}
else if ((fort != null) && fort.getSiege().isInProgress())
{
siegeClan = fort.getSiege().getAttackerClan(clan);
isInFortDefense = (siegeClan == null) && fort.getSiege().checkIsDefender(clan);
}
// ClanHall check.
if ((clan != null) && (clan.getHideoutId() > 0))
{
_flags += 2;
}
// Castle check.
if (((clan != null) && (clan.getCastleId() > 0)) || isInCastleDefense)
{
_flags += 4;
}
// Fortress check.
if (((clan != null) && (clan.getFortId() > 0)) || isInFortDefense)
{
_flags += 8;
}
// Outpost check.
if (((siegeClan != null) && !isInCastleDefense && !isInFortDefense && !siegeClan.getFlag().isEmpty()))
{
_flags += 16;
}
_flags += 2;
}
// Castle check.
if (((clan != null) && (clan.getCastleId() > 0)) || isInCastleDefense)
{
_flags += 4;
}
// Fortress check.
if (((clan != null) && (clan.getFortId() > 0)) || isInFortDefense)
{
_flags += 8;
}
// Outpost check.
if (((siegeClan != null) && !isInCastleDefense && !isInFortDefense && !siegeClan.getFlag().isEmpty()))
{
_flags += 16;
}
// Feather check.
if (creature.getAccessLevel().allowFixedRes() || creature.getInventory().haveItemForSelfResurrection())
{