player.sendPacket(SystemMsg.YOU_DO_NOT_HAVE_THE_AUTHORITY_TO_POSITION_MERCENARIES, ActionFail.STATIC);
return;
}
final Castle castle = player.getCastle();
final MerchantGuard guard = castle.getMerchantGuard(item.getItemId());
if ((guard == null) || !castle.checkIfInZone(loc, ReflectionManager.DEFAULT) || player.isActionBlocked(Zone.BLOCKED_ACTION_DROP_MERCHANT_GUARD))
{
player.sendPacket(SystemMsg.YOU_CANNOT_POSITION_MERCENARIES_HERE, ActionFail.STATIC);
return;
}
if (castle.getSiegeEvent().isInProgress())
{
player.sendPacket(SystemMsg.A_MERCENARY_CAN_BE_ASSIGNED_TO_A_POSITION_FROM_THE_BEGINNING_OF_THE_SEAL_VALIDATION_PERIOD_UNTIL_THE_TIME_WHEN_A_SIEGE_STARTS, ActionFail.STATIC);
return;
}
int countOfGuard = 0;
for (ItemInstance $item : castle.getSpawnMerchantTickets())
{
if (PositionUtils.getDistance($item.getLoc(), loc) < 200)
{
player.sendPacket(SystemMsg.POSITIONING_CANNOT_BE_DONE_HERE_BECAUSE_THE_DISTANCE_BETWEEN_MERCENARIES_IS_TOO_SHORT, ActionFail.STATIC);
return;
}
if ($item.getItemId() == guard.getItemId())
{
countOfGuard++;
}
}
if (countOfGuard >= guard.getMax())
{
player.sendPacket(SystemMsg.THIS_MERCENARY_CANNOT_BE_POSITIONED_ANYMORE, ActionFail.STATIC);
return;
}