09-29-2015, 09:28 PM
Ошибка в следующей конструкции:
Ошибка "Multiple markers at this line
- The method getEvent(Class<E>) in the type EventOwner is not applicable for the arguments (((_flagType == FlagType.OUTPOST) ? DominionSiegeEvent.class :
SiegeEvent.class))
- Type mismatch: cannot convert from Class<DominionSiegeEvent> to Class<E>"
Понятно, что можно взять этот кусок из других сборок, но автор судя по всему "пофиксил" какойто баг и не хотелось бы его оставлять.
Код:
SiegeEvent<?,?> siegeEvent = activeChar.getEvent(_flagType == FlagType.OUTPOST ? DominionSiegeEvent.class : SiegeEvent.class);
- The method getEvent(Class<E>) in the type EventOwner is not applicable for the arguments (((_flagType == FlagType.OUTPOST) ? DominionSiegeEvent.class :
SiegeEvent.class))
- Type mismatch: cannot convert from Class<DominionSiegeEvent> to Class<E>"
Понятно, что можно взять этот кусок из других сборок, но автор судя по всему "пофиксил" какойто баг и не хотелось бы его оставлять.
Код:
@Override
public boolean checkCondition(SkillEntry skillEntry, Creature activeChar, Creature target, boolean forceUse, boolean dontMove, boolean first)
{
if(!activeChar.isPlayer())
return false;
if(!super.checkCondition(skillEntry, activeChar, target, forceUse, dontMove, first))
return false;
Player player = (Player) activeChar;
if(player.getClan() == null || !player.isClanLeader())
return false;
switch(_flagType)
{
case DESTROY:
//
break;
case OUTPOST:
case NORMAL:
case ADVANCED:
if(player.isInZone(Zone.ZoneType.RESIDENCE))
{
player.sendPacket(SystemMsg.YOU_CANNOT_SET_UP_A_BASE_HERE, new SystemMessage(SystemMsg.S1_CANNOT_BE_USED_DUE_TO_UNSUITABLE_TERMS).addSkillName(skillEntry));
return false;
}
SiegeEvent<?,?> siegeEvent = activeChar.getEvent(_flagType == FlagType.OUTPOST ? DominionSiegeEvent.class : SiegeEvent.class);
if(siegeEvent == null || !siegeEvent.isInProgress())
{
player.sendPacket(SystemMsg.YOU_CANNOT_SET_UP_A_BASE_HERE, new SystemMessage(SystemMsg.S1_CANNOT_BE_USED_DUE_TO_UNSUITABLE_TERMS).addSkillName(skillEntry));
return false;
}
boolean inZone = false;
List<ZoneObject> zones = siegeEvent.getObjects(SiegeEvent.FLAG_ZONES);
for(ZoneObject zone : zones)
{
if(player.isInZone(zone.getZone()))
inZone = true;
}
if(!inZone)
{
player.sendPacket(SystemMsg.YOU_CANNOT_SET_UP_A_BASE_HERE, new SystemMessage(SystemMsg.S1_CANNOT_BE_USED_DUE_TO_UNSUITABLE_TERMS).addSkillName(skillEntry));
return false;
}
SiegeClanObject siegeClan = siegeEvent.getSiegeClan(siegeEvent.getClass() == DominionSiegeEvent.class ? SiegeEvent.DEFENDERS : SiegeEvent.ATTACKERS, player.getClan());
if(siegeClan == null)
{
player.sendPacket(SystemMsg.YOU_CANNOT_SUMMON_THE_ENCAMPMENT_BECAUSE_YOU_ARE_NOT_A_MEMBER_OF_THE_SIEGE_CLAN_INVOLVED_IN_THE_CASTLE__FORTRESS__HIDEOUT_SIEGE, new SystemMessage(SystemMsg.S1_CANNOT_BE_USED_DUE_TO_UNSUITABLE_TERMS).addSkillName(skillEntry));
return false;
}
if(siegeClan.getFlag() != null)
{
player.sendPacket(SystemMsg.AN_OUTPOST_OR_HEADQUARTERS_CANNOT_BE_BUILT_BECAUSE_ONE_ALREADY_EXISTS, new SystemMessage(SystemMsg.S1_CANNOT_BE_USED_DUE_TO_UNSUITABLE_TERMS).addSkillName(skillEntry));
return false;
}
break;
}
return true;
}