Sync with L2jServer HighFive Sep 18th 2015.
This commit is contained in:
@ -34,26 +34,19 @@ import com.l2jserver.gameserver.util.Util;
|
||||
*/
|
||||
public class ConditionPlayerCanTakeCastle extends Condition
|
||||
{
|
||||
private final boolean _val;
|
||||
|
||||
public ConditionPlayerCanTakeCastle(boolean val)
|
||||
{
|
||||
_val = val;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean testImpl(L2Character effector, L2Character effected, Skill skill, L2Item item)
|
||||
{
|
||||
if ((effector == null) || !effector.isPlayer())
|
||||
{
|
||||
return !_val;
|
||||
return false;
|
||||
}
|
||||
|
||||
final L2PcInstance player = effector.getActingPlayer();
|
||||
boolean canTakeCastle = true;
|
||||
|
||||
if (player.isAlikeDead() || player.isCursedWeaponEquipped() || !player.isClanLeader())
|
||||
{
|
||||
canTakeCastle = false;
|
||||
return false;
|
||||
}
|
||||
|
||||
Castle castle = CastleManager.getInstance().getCastle(player);
|
||||
@ -63,18 +56,19 @@ public class ConditionPlayerCanTakeCastle extends Condition
|
||||
sm = SystemMessage.getSystemMessage(SystemMessageId.S1_CANNOT_BE_USED_DUE_TO_UNSUITABLE_TERMS);
|
||||
sm.addSkillName(skill);
|
||||
player.sendPacket(sm);
|
||||
canTakeCastle = false;
|
||||
return false;
|
||||
}
|
||||
else if (!castle.getArtefacts().contains(effected))
|
||||
{
|
||||
player.sendPacket(SystemMessageId.INVALID_TARGET);
|
||||
canTakeCastle = false;
|
||||
return false;
|
||||
}
|
||||
else if (!Util.checkIfInRange(skill.getCastRange(), player, effected, true))
|
||||
{
|
||||
player.sendPacket(SystemMessageId.THE_DISTANCE_IS_TOO_FAR_AND_SO_THE_CASTING_HAS_BEEN_STOPPED);
|
||||
canTakeCastle = false;
|
||||
return false;
|
||||
}
|
||||
return (_val == canTakeCastle);
|
||||
castle.getSiege().announceToPlayer(SystemMessage.getSystemMessage(SystemMessageId.THE_DISTANCE_IS_TOO_FAR_AND_SO_THE_CASTING_HAS_BEEN_STOPPED), false);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
@ -18,54 +18,32 @@
|
||||
*/
|
||||
package com.l2jserver.gameserver.model.conditions;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.l2jserver.gameserver.model.actor.L2Character;
|
||||
import com.l2jserver.gameserver.model.actor.L2Summon;
|
||||
import com.l2jserver.gameserver.model.items.L2Item;
|
||||
import com.l2jserver.gameserver.model.skills.Skill;
|
||||
import com.l2jserver.gameserver.network.SystemMessageId;
|
||||
|
||||
/**
|
||||
* The Class ConditionPlayerServitorNpcId.
|
||||
* The Class ConditionPlayerHasServitor.
|
||||
* @author Zealar
|
||||
*/
|
||||
public class ConditionPlayerServitorNpcId extends Condition
|
||||
public class ConditionPlayerHasServitor extends Condition
|
||||
{
|
||||
private final List<Integer> _npcIds;
|
||||
|
||||
/**
|
||||
* Instantiates a new condition player servitor npc id.
|
||||
* @param npcIds the npc ids
|
||||
*/
|
||||
public ConditionPlayerServitorNpcId(List<Integer> npcIds)
|
||||
{
|
||||
if ((npcIds.size() == 1) && (npcIds.get(0) == 0))
|
||||
{
|
||||
_npcIds = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
_npcIds = npcIds;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean testImpl(L2Character effector, L2Character effected, Skill skill, L2Item item)
|
||||
{
|
||||
if ((effector.getActingPlayer() == null) || !effector.getActingPlayer().hasSummon())
|
||||
if ((effector.getActingPlayer() == null))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (_npcIds == null)
|
||||
|
||||
if (!effector.getActingPlayer().hasSummon())
|
||||
{
|
||||
return true;
|
||||
effector.sendPacket(SystemMessageId.YOU_CANNOT_USE_THE_SKILL_BECAUSE_THE_SERVITOR_HAS_NOT_BEEN_SUMMONED);
|
||||
return false;
|
||||
}
|
||||
for (L2Summon summon : effector.getServitors().values())
|
||||
{
|
||||
if (_npcIds.contains(summon.getId()))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user