Sync with L2jServer HighFive Sep 18th 2015.

This commit is contained in:
MobiusDev
2015-09-19 22:37:08 +00:00
parent 339cab601b
commit a2d764aaf8
134 changed files with 1440 additions and 1014 deletions

View File

@ -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;
}
}
}

View File

@ -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;
}
}