Code improvements.

This commit is contained in:
MobiusDev
2016-04-24 16:30:15 +00:00
parent 8bd51aba1c
commit 2dd14bef9b
860 changed files with 8865 additions and 17041 deletions

View File

@@ -56,17 +56,7 @@ public final class AbsorberInfo implements IUniqueId
@Override
public final boolean equals(Object obj)
{
if (this == obj)
{
return true;
}
if (obj instanceof AbsorberInfo)
{
return (((AbsorberInfo) obj).getObjectId() == _objectId);
}
return false;
return (this == obj) || ((obj instanceof AbsorberInfo) && (((AbsorberInfo) obj).getObjectId() == _objectId));
}
@Override

View File

@@ -147,8 +147,7 @@ public final class ArenaParticipantsHolder
if (redSize > (blueSize + 1))
{
broadCastPacketToTeam(SystemMessage.getSystemMessage(SystemMessageId.TEAM_MEMBERS_WERE_MODIFIED_BECAUSE_THE_TEAMS_WERE_UNBALANCED));
final int needed = redSize - (blueSize + 1);
for (int i = 0; i < (needed + 1); i++)
for (int i = 0; i < ((redSize - (blueSize + 1)) + 1); i++)
{
final L2PcInstance plr = _redPlayers.get(i);
if (plr == null)
@@ -161,8 +160,7 @@ public final class ArenaParticipantsHolder
else if (blueSize > (redSize + 1))
{
broadCastPacketToTeam(SystemMessage.getSystemMessage(SystemMessageId.TEAM_MEMBERS_WERE_MODIFIED_BECAUSE_THE_TEAMS_WERE_UNBALANCED));
final int needed = blueSize - (redSize + 1);
for (int i = 0; i < (needed + 1); i++)
for (int i = 0; i < ((blueSize - (redSize + 1)) + 1); i++)
{
final L2PcInstance plr = _bluePlayers.get(i);
if (plr == null)

View File

@@ -228,8 +228,7 @@ public class AutoSpawnHandler
_registeredSpawns.remove(spawnInst.getId());
// Cancel the currently associated running scheduled task.
final ScheduledFuture<?> respawnTask = _runningSpawns.remove(spawnInst._objectId);
respawnTask.cancel(false);
_runningSpawns.remove(spawnInst._objectId).cancel(false);
}
catch (Exception e)
{
@@ -263,40 +262,29 @@ public class AutoSpawnHandler
final int objectId = spawnInst._objectId;
if (isSpawnRegistered(objectId))
if (!isSpawnRegistered(objectId))
{
ScheduledFuture<?> spawnTask = null;
if (isActive)
{
final AutoSpawner rs = new AutoSpawner(objectId);
if (spawnInst._desDelay > 0)
{
spawnTask = ThreadPoolManager.getInstance().scheduleEffectAtFixedRate(rs, spawnInst._initDelay, spawnInst._resDelay);
}
else
{
spawnTask = ThreadPoolManager.getInstance().scheduleEffect(rs, spawnInst._initDelay);
}
_runningSpawns.put(objectId, spawnTask);
}
else
{
final AutoDespawner rd = new AutoDespawner(objectId);
spawnTask = _runningSpawns.remove(objectId);
if (spawnTask != null)
{
spawnTask.cancel(false);
}
ThreadPoolManager.getInstance().scheduleEffect(rd, 0);
}
spawnInst.setSpawnActive(isActive);
return;
}
ScheduledFuture<?> spawnTask = null;
if (isActive)
{
final AutoSpawner rs = new AutoSpawner(objectId);
spawnTask = spawnInst._desDelay > 0 ? ThreadPoolManager.getInstance().scheduleEffectAtFixedRate(rs, spawnInst._initDelay, spawnInst._resDelay) : ThreadPoolManager.getInstance().scheduleEffect(rs, spawnInst._initDelay);
_runningSpawns.put(objectId, spawnTask);
}
else
{
final AutoDespawner rd = new AutoDespawner(objectId);
spawnTask = _runningSpawns.remove(objectId);
if (spawnTask != null)
{
spawnTask.cancel(false);
}
ThreadPoolManager.getInstance().scheduleEffect(rd, 0);
}
spawnInst.setSpawnActive(isActive);
}
/**
@@ -326,13 +314,7 @@ public class AutoSpawnHandler
public final long getTimeToNextSpawn(AutoSpawnInstance spawnInst)
{
final int objectId = spawnInst.getObjectId();
if (!isSpawnRegistered(objectId))
{
return -1;
}
return (_runningSpawns.containsKey(objectId)) ? _runningSpawns.get(objectId).getDelay(TimeUnit.MILLISECONDS) : 0;
return !isSpawnRegistered(objectId) ? -1 : (_runningSpawns.containsKey(objectId)) ? _runningSpawns.get(objectId).getDelay(TimeUnit.MILLISECONDS) : 0;
}
/**
@@ -496,22 +478,15 @@ public class AutoSpawnHandler
}
}
if (npcInst != null)
if ((npcInst != null) && spawnInst.isBroadcasting())
{
final String nearestTown = MapRegionManager.getInstance().getClosestTownName(npcInst);
// Announce to all players that the spawn has taken place, with the nearest town location.
if (spawnInst.isBroadcasting())
{
Broadcast.toAllOnlinePlayers("The " + npcInst.getName() + " has spawned near " + nearestTown + "!");
}
Broadcast.toAllOnlinePlayers("The " + npcInst.getName() + " has spawned near " + MapRegionManager.getInstance().getClosestTownName(npcInst) + "!");
}
// If there is no despawn time, do not create a despawn task.
if (spawnInst.getDespawnDelay() > 0)
{
final AutoDespawner rd = new AutoDespawner(_objectId);
ThreadPoolManager.getInstance().scheduleAi(rd, spawnInst.getDespawnDelay() - 1000);
ThreadPoolManager.getInstance().scheduleAi((new AutoDespawner(_objectId)), spawnInst.getDespawnDelay() - 1000);
}
}
catch (Exception e)
@@ -722,12 +697,7 @@ public class AutoSpawnHandler
public boolean addSpawnLocation(int[] spawnLoc)
{
if (spawnLoc.length != 3)
{
return false;
}
return addSpawnLocation(spawnLoc[0], spawnLoc[1], spawnLoc[2], -1);
return (spawnLoc.length == 3) && addSpawnLocation(spawnLoc[0], spawnLoc[1], spawnLoc[2], -1);
}
public Location removeSpawnLocation(int locIndex)

View File

@@ -122,8 +122,7 @@ public class BlockList
{
continue;
}
final String memo = rs.getString("memo");
list.put(friendId, memo);
list.put(friendId, rs.getString("memo"));
}
}
}

View File

@@ -485,11 +485,7 @@ public final class CharEffectList
*/
public boolean removeBlockedBuffSlots(Set<AbnormalType> blockedBuffSlots)
{
if (_blockedBuffSlots != null)
{
return _blockedBuffSlots.removeAll(blockedBuffSlots);
}
return false;
return (_blockedBuffSlots != null) && _blockedBuffSlots.removeAll(blockedBuffSlots);
}
/**
@@ -809,12 +805,13 @@ public final class CharEffectList
*/
public void stopAllToggles(boolean update)
{
if (hasToggles())
if (!hasToggles())
{
getToggles().forEach(b -> stopAndRemove(b, getToggles()));
// Update effect flags and icons.
updateEffectList(update);
return;
}
getToggles().forEach(b -> stopAndRemove(b, getToggles()));
// Update effect flags and icons.
updateEffectList(update);
}
/**
@@ -823,12 +820,13 @@ public final class CharEffectList
*/
public void stopAllDances(boolean update)
{
if (hasDances())
if (!hasDances())
{
getDances().forEach(b -> stopAndRemove(b, getDances()));
// Update effect flags and icons.
updateEffectList(update);
return;
}
getDances().forEach(b -> stopAndRemove(b, getDances()));
// Update effect flags and icons.
updateEffectList(update);
}
/**
@@ -837,12 +835,13 @@ public final class CharEffectList
*/
public void stopAllDebuffs(boolean update)
{
if (hasDebuffs())
if (!hasDebuffs())
{
getDebuffs().forEach(b -> stopAndRemove(b, getDebuffs()));
// Update effect flags and icons.
updateEffectList(update);
return;
}
getDebuffs().forEach(b -> stopAndRemove(b, getDebuffs()));
// Update effect flags and icons.
updateEffectList(update);
}
/**
@@ -964,87 +963,88 @@ public final class CharEffectList
*/
public void stopEffectsOnAction()
{
if (_hasBuffsRemovedOnAnyAction)
if (!_hasBuffsRemovedOnAnyAction)
{
return;
}
boolean update = false;
if (hasBuffs())
{
getBuffs().stream().filter(info -> info.getSkill().isRemovedOnAnyActionExceptMove()).forEach(info -> stopAndRemove(info, getBuffs()));
update = true;
}
if (hasTriggered())
{
getTriggered().stream().filter(info -> info.getSkill().isRemovedOnAnyActionExceptMove()).forEach(info -> stopAndRemove(info, getTriggered()));
update = true;
}
if (hasDebuffs())
{
getDebuffs().stream().filter(info -> info.getSkill().isRemovedOnAnyActionExceptMove()).forEach(info -> stopAndRemove(info, getDebuffs()));
update = true;
}
if (hasDances())
{
getDances().stream().filter(info -> info.getSkill().isRemovedOnAnyActionExceptMove()).forEach(info -> stopAndRemove(info, getDances()));
update = true;
}
if (hasToggles())
{
getToggles().stream().filter(info -> info.getSkill().isRemovedOnAnyActionExceptMove()).forEach(info -> stopAndRemove(info, getToggles()));
update = true;
}
// Update effect flags and icons.
updateEffectList(update);
}
public void stopEffectsOnDamage(boolean awake)
{
if (!awake)
{
return;
}
boolean update = false;
if (_hasBuffsRemovedOnDamage)
{
boolean update = false;
if (hasBuffs())
{
getBuffs().stream().filter(info -> info.getSkill().isRemovedOnAnyActionExceptMove()).forEach(info -> stopAndRemove(info, getBuffs()));
getBuffs().stream().filter(Objects::nonNull).filter(info -> info.getSkill().isRemovedOnDamage()).forEach(info -> stopAndRemove(info, getBuffs()));
update = true;
}
if (hasTriggered())
{
getTriggered().stream().filter(info -> info.getSkill().isRemovedOnAnyActionExceptMove()).forEach(info -> stopAndRemove(info, getTriggered()));
update = true;
}
if (hasDebuffs())
{
getDebuffs().stream().filter(info -> info.getSkill().isRemovedOnAnyActionExceptMove()).forEach(info -> stopAndRemove(info, getDebuffs()));
getTriggered().stream().filter(Objects::nonNull).filter(info -> info.getSkill().isRemovedOnDamage()).forEach(info -> stopAndRemove(info, getTriggered()));
update = true;
}
if (hasDances())
{
getDances().stream().filter(info -> info.getSkill().isRemovedOnAnyActionExceptMove()).forEach(info -> stopAndRemove(info, getDances()));
getDances().stream().filter(Objects::nonNull).filter(info -> info.getSkill().isRemovedOnDamage()).forEach(info -> stopAndRemove(info, getDances()));
update = true;
}
if (hasToggles())
{
getToggles().stream().filter(info -> info.getSkill().isRemovedOnAnyActionExceptMove()).forEach(info -> stopAndRemove(info, getToggles()));
getToggles().stream().filter(Objects::nonNull).filter(info -> info.getSkill().isRemovedOnDamage()).forEach(info -> stopAndRemove(info, getToggles()));
update = true;
}
// Update effect flags and icons.
updateEffectList(update);
}
}
public void stopEffectsOnDamage(boolean awake)
{
if (awake)
if (_hasDebuffsRemovedOnDamage && hasDebuffs())
{
boolean update = false;
if (_hasBuffsRemovedOnDamage)
{
if (hasBuffs())
{
getBuffs().stream().filter(Objects::nonNull).filter(info -> info.getSkill().isRemovedOnDamage()).forEach(info -> stopAndRemove(info, getBuffs()));
update = true;
}
if (hasTriggered())
{
getTriggered().stream().filter(Objects::nonNull).filter(info -> info.getSkill().isRemovedOnDamage()).forEach(info -> stopAndRemove(info, getTriggered()));
update = true;
}
if (hasDances())
{
getDances().stream().filter(Objects::nonNull).filter(info -> info.getSkill().isRemovedOnDamage()).forEach(info -> stopAndRemove(info, getDances()));
update = true;
}
if (hasToggles())
{
getToggles().stream().filter(Objects::nonNull).filter(info -> info.getSkill().isRemovedOnDamage()).forEach(info -> stopAndRemove(info, getToggles()));
update = true;
}
}
if (_hasDebuffsRemovedOnDamage)
{
if (hasDebuffs())
{
getDebuffs().stream().filter(Objects::nonNull).filter(info -> info.getSkill().isRemovedOnDamage()).forEach(info -> stopAndRemove(info, getDebuffs()));
update = true;
}
}
// Update effect flags and icons.
updateEffectList(update);
getDebuffs().stream().filter(Objects::nonNull).filter(info -> info.getSkill().isRemovedOnDamage()).forEach(info -> stopAndRemove(info, getDebuffs()));
update = true;
}
// Update effect flags and icons.
updateEffectList(update);
}
/**
@@ -1347,18 +1347,12 @@ public final class CharEffectList
break;
}
if (!bi.isInUse())
{
continue;
}
if (bi.getSkill().getAbnormalType() == AbnormalType.SUMMON_CONDITION)
if (!bi.isInUse() || (bi.getSkill().getAbnormalType() == AbnormalType.SUMMON_CONDITION))
{
continue;
}
stopAndRemove(bi, effects);
buffsToRemove--;
}
}
@@ -1391,12 +1385,9 @@ public final class CharEffectList
}
// Check if the previous call hasnt finished, if so, don't send packets uselessly again.
if (_effectIconsUpdate != null)
if ((_effectIconsUpdate != null) && !_effectIconsUpdate.isDone())
{
if (!_effectIconsUpdate.isDone())
{
return;
}
return;
}
// Schedule the icon update packets 500miliseconds ahead, so it can gather-up most of the changes.
_effectIconsUpdate = ThreadPoolManager.getInstance().scheduleGeneral(() ->
@@ -1501,13 +1492,9 @@ public final class CharEffectList
{
if (summonOwner.isInParty())
{
summonOwner.getParty().broadcastToPartyMembers(summonOwner, psSummon); // send to all member except summonOwner
summonOwner.sendPacket(ps); // now send to summonOwner
}
else
{
summonOwner.sendPacket(ps);
summonOwner.getParty().broadcastToPartyMembers(summonOwner, psSummon);
}
summonOwner.sendPacket(ps);
}
}
else if (_owner.isPlayer() && _owner.isInParty())

View File

@@ -49,17 +49,7 @@ public final class DamageDoneInfo
@Override
public final boolean equals(Object obj)
{
if (this == obj)
{
return true;
}
if (obj instanceof DamageDoneInfo)
{
return (((DamageDoneInfo) obj).getAttacker() == _attacker);
}
return false;
return (this == obj) || ((obj instanceof DamageDoneInfo) && (((DamageDoneInfo) obj).getAttacker() == _attacker));
}
@Override

View File

@@ -53,26 +53,7 @@ public class DropProtection implements Runnable
public synchronized boolean tryPickUp(L2PcInstance actor)
{
if (!_isProtected)
{
return true;
}
if (_owner == actor)
{
return true;
}
if ((_owner.getParty() != null) && (_owner.getParty() == actor.getParty()))
{
return true;
}
/*
* if (_owner.getClan() != null && _owner.getClan() == actor.getClan()) return true;
*/
return false;
return !_isProtected || (_owner == actor) || ((_owner.getParty() != null) && (_owner.getParty() == actor.getParty()));
}
public boolean tryPickUp(L2PetInstance pet)

View File

@@ -264,11 +264,7 @@ public final class Elementals
public static byte getItemElement(int itemId)
{
final ElementalItems item = TABLE.get(itemId);
if (item != null)
{
return item._element;
}
return NONE;
return item != null ? item._element : NONE;
}
public static ElementalItems getItemElemental(int itemId)
@@ -279,11 +275,7 @@ public final class Elementals
public static int getMaxElementLevel(int itemId)
{
final ElementalItems item = TABLE.get(itemId);
if (item != null)
{
return item._type._maxLevel;
}
return -1;
return item != null ? item._type._maxLevel : -1;
}
public static String getElementName(byte element)

View File

@@ -100,15 +100,8 @@ public class ItemInfo
// Get the enchant level of the L2ItemInstance
_enchant = item.getEnchantLevel();
// Get the augmentation boni
if (item.isAugmented())
{
_augmentation = item.getAugmentation().getAugmentationId();
}
else
{
_augmentation = 0;
}
// Get the augmentation bonus
_augmentation = item.isAugmented() ? item.getAugmentation().getAugmentationId() : 0;
// Get the quantity of the L2ItemInstance
_count = item.getCount();
@@ -182,14 +175,7 @@ public class ItemInfo
_enchant = item.getEnchant();
// Get the augmentation boni
if (item.isAugmented())
{
_augmentation = item.getAugmentation().getAugmentationId();
}
else
{
_augmentation = 0;
}
_augmentation = item.isAugmented() ? item.getAugmentation().getAugmentationId() : 0;
// Get the quantity of the L2ItemInstance
_count = item.getCount();
@@ -279,14 +265,7 @@ public class ItemInfo
_enchant = item.getEnchantLevel();
// Get the augmentation boni
if (item.isAugmented())
{
_augmentation = item.getAugmentationId();
}
else
{
_augmentation = 0;
}
_augmentation = item.isAugmented() ? item.getAugmentationId() : 0;
// Get the quantity of the L2ItemInstance
_count = item.getCount();

View File

@@ -75,14 +75,6 @@ public class ItemRequest
@Override
public boolean equals(Object obj)
{
if (this == obj)
{
return true;
}
if (!(obj instanceof ItemRequest))
{
return false;
}
return (_objectId != ((ItemRequest) obj)._objectId);
return (this == obj) || ((obj instanceof ItemRequest) && (_objectId != ((ItemRequest) obj)._objectId));
}
}

View File

@@ -292,12 +292,7 @@ public final class L2ArmorSet
public boolean containShield(int shield_id)
{
if (_shield.isEmpty())
{
return false;
}
return _shield.contains(Integer.valueOf(shield_id));
return !_shield.isEmpty() && _shield.contains(Integer.valueOf(shield_id));
}
public List<SkillHolder> getShieldSkills()
@@ -334,12 +329,9 @@ public final class L2ArmorSet
for (int armorSlot : ARMORSET_SLOTS)
{
final L2ItemInstance itemPart = inv.getPaperdollItem(armorSlot);
if (itemPart != null)
if ((itemPart != null) && (enchantLevel > itemPart.getEnchantLevel()))
{
if (enchantLevel > itemPart.getEnchantLevel())
{
enchantLevel = itemPart.getEnchantLevel();
}
enchantLevel = itemPart.getEnchantLevel();
}
}
if (enchantLevel == Byte.MAX_VALUE)

View File

@@ -731,17 +731,19 @@ public class L2Clan implements IIdentifiable, INamable
public void setLevel(int level)
{
_level = level;
if ((_level >= 2) && (_forum == null) && Config.ENABLE_COMMUNITY_BOARD)
if ((_level < 2) || (_forum != null) || !Config.ENABLE_COMMUNITY_BOARD)
{
final Forum forum = ForumsBBSManager.getInstance().getForumByName("ClanRoot");
if (forum != null)
{
_forum = forum.getChildByName(_name);
if (_forum == null)
{
_forum = ForumsBBSManager.getInstance().createNewForum(_name, ForumsBBSManager.getInstance().getForumByName("ClanRoot"), Forum.CLAN, Forum.CLANMEMBERONLY, getId());
}
}
return;
}
final Forum forum = ForumsBBSManager.getInstance().getForumByName("ClanRoot");
if (forum == null)
{
return;
}
_forum = forum.getChildByName(_name);
if (_forum == null)
{
_forum = ForumsBBSManager.getInstance().createNewForum(_name, ForumsBBSManager.getInstance().getForumByName("ClanRoot"), Forum.CLAN, Forum.CLANMEMBERONLY, getId());
}
}
@@ -847,7 +849,7 @@ public class L2Clan implements IIdentifiable, INamable
*/
public boolean isMember(int id)
{
return (id == 0 ? false : _members.containsKey(id));
return ((id != 0) && _members.containsKey(id));
}
/**
@@ -1237,11 +1239,7 @@ public class L2Clan implements IIdentifiable, INamable
public String getNotice()
{
if (_notice == null)
{
return "";
}
return _notice;
return _notice == null ? "" : _notice;
}
private void restoreSkills()
@@ -1297,12 +1295,7 @@ public class L2Clan implements IIdentifiable, INamable
*/
public final Skill[] getAllSkills()
{
if (_skills == null)
{
return new Skill[0];
}
return _skills.values().toArray(new Skill[_skills.values().size()]);
return _skills == null ? new Skill[0] : _skills.values().toArray(new Skill[_skills.values().size()]);
}
/**
@@ -1320,15 +1313,7 @@ public class L2Clan implements IIdentifiable, INamable
*/
public Skill addSkill(Skill newSkill)
{
Skill oldSkill = null;
if (newSkill != null)
{
// Replace oldSkill by newSkill or Add the newSkill
oldSkill = _skills.put(newSkill.getId(), newSkill);
}
return oldSkill;
return newSkill != null ? _skills.put(newSkill.getId(), newSkill) : null;
}
public Skill addNewSkill(Skill newSkill)
@@ -1358,15 +1343,12 @@ public class L2Clan implements IIdentifiable, INamable
else
{
final SubPledge subunit = getSubPledge(subType);
if (subunit != null)
{
oldSkill = subunit.addNewSkill(newSkill);
}
else
if (subunit == null)
{
_log.log(Level.WARNING, "Subpledge " + subType + " does not exist for clan " + this);
return oldSkill;
}
oldSkill = subunit.addNewSkill(newSkill);
}
try (Connection con = DatabaseFactory.getInstance().getConnection())
@@ -1441,12 +1423,9 @@ public class L2Clan implements IIdentifiable, INamable
{
try
{
if ((temp != null) && temp.isOnline())
if ((temp != null) && temp.isOnline() && (skill.getMinPledgeClass() <= temp.getPlayerInstance().getPledgeClass()))
{
if (skill.getMinPledgeClass() <= temp.getPlayerInstance().getPledgeClass())
{
temp.getPlayerInstance().addSkill(skill, false); // Skill is not saved to player DB
}
temp.getPlayerInstance().addSkill(skill, false);
}
}
catch (NullPointerException e)
@@ -1815,11 +1794,7 @@ public class L2Clan implements IIdentifiable, INamable
while (rset.next())
{
final int id = rset.getInt("sub_pledge_id");
final String name = rset.getString("name");
final int leaderId = rset.getInt("leader_id");
// Create a SubPledge object for each record
final SubPledge pledge = new SubPledge(id, name, leaderId);
_subPledges.put(id, pledge);
_subPledges.put(id, (new SubPledge(id, rset.getString("name"), rset.getInt("leader_id"))));
}
}
}
@@ -1836,12 +1811,7 @@ public class L2Clan implements IIdentifiable, INamable
*/
public final SubPledge getSubPledge(int pledgeType)
{
if (_subPledges == null)
{
return null;
}
return _subPledges.get(pledgeType);
return _subPledges == null ? null : _subPledges.get(pledgeType);
}
/**
@@ -1919,17 +1889,7 @@ public class L2Clan implements IIdentifiable, INamable
if (pledgeType != -1)
{
// Royal Guard 5000 points per each
// Order of Knights 10000 points per each
if (pledgeType < L2Clan.SUBUNIT_KNIGHT1)
{
setReputationScore(getReputationScore() - Config.ROYAL_GUARD_COST, true);
}
else
{
setReputationScore(getReputationScore() - Config.KNIGHT_UNIT_COST, true);
// TODO: clan lvl9 or more can reinforce knights cheaper if first knight unit already created, use Config.KNIGHT_REINFORCE_COST
}
setReputationScore(pledgeType < L2Clan.SUBUNIT_KNIGHT1 ? getReputationScore() - Config.ROYAL_GUARD_COST : getReputationScore() - Config.KNIGHT_UNIT_COST, true);
}
if (Config.DEBUG)
@@ -2054,11 +2014,7 @@ public class L2Clan implements IIdentifiable, INamable
public EnumIntBitmask<ClanPrivilege> getRankPrivs(int rank)
{
if (_privs.get(rank) != null)
{
return _privs.get(rank).getPrivs();
}
return new EnumIntBitmask<>(ClanPrivilege.class, false);
return _privs.get(rank) != null ? _privs.get(rank).getPrivs() : new EnumIntBitmask<>(ClanPrivilege.class, false);
}
public void setRankPrivs(int rank, int privs)
@@ -2085,17 +2041,11 @@ public class L2Clan implements IIdentifiable, INamable
for (L2ClanMember cm : getMembers())
{
if (cm.isOnline())
if (cm.isOnline() && (cm.getPowerGrade() == rank) && (cm.getPlayerInstance() != null))
{
if (cm.getPowerGrade() == rank)
{
if (cm.getPlayerInstance() != null)
{
cm.getPlayerInstance().getClanPrivileges().setBitmask(privs);
cm.getPlayerInstance().sendPacket(new PledgeReceiveUpdatePower(privs));
cm.getPlayerInstance().sendPacket(new UserInfo(cm.getPlayerInstance()));
}
}
cm.getPlayerInstance().getClanPrivileges().setBitmask(privs);
cm.getPlayerInstance().sendPacket(new PledgeReceiveUpdatePower(privs));
cm.getPlayerInstance().sendPacket(new UserInfo(cm.getPlayerInstance()));
}
}
}
@@ -2139,12 +2089,7 @@ public class L2Clan implements IIdentifiable, INamable
*/
public final RankPrivs[] getAllRankPrivs()
{
if (_privs == null)
{
return new RankPrivs[0];
}
return _privs.values().toArray(new RankPrivs[_privs.values().size()]);
return _privs == null ? new RankPrivs[0] : _privs.values().toArray(new RankPrivs[_privs.values().size()]);
}
public int getLeaderSubPledge(int leaderId)
@@ -2491,13 +2436,10 @@ public class L2Clan implements IIdentifiable, INamable
player.sendPacket(SystemMessageId.TO_CREATE_AN_ALLIANCE_YOUR_CLAN_MUST_BE_LEVEL_5_OR_HIGHER);
return;
}
if (getAllyPenaltyExpiryTime() > System.currentTimeMillis())
if ((getAllyPenaltyExpiryTime() > System.currentTimeMillis()) && (getAllyPenaltyType() == L2Clan.PENALTY_TYPE_DISSOLVE_ALLY))
{
if (getAllyPenaltyType() == L2Clan.PENALTY_TYPE_DISSOLVE_ALLY)
{
player.sendPacket(SystemMessageId.YOU_CANNOT_CREATE_A_NEW_ALLIANCE_WITHIN_1_DAY_OF_DISSOLUTION);
return;
}
player.sendPacket(SystemMessageId.YOU_CANNOT_CREATE_A_NEW_ALLIANCE_WITHIN_1_DAY_OF_DISSOLUTION);
return;
}
if (getDissolvingExpiryTime() > System.currentTimeMillis())
{
@@ -2590,93 +2532,74 @@ public class L2Clan implements IIdentifiable, INamable
case 0:
{
// Upgrade to 1
if ((player.getSp() >= 20000) && (player.getAdena() >= 650000))
if ((player.getSp() >= 20000) && (player.getAdena() >= 650000) && player.reduceAdena("ClanLvl", 650000, player.getTarget(), true))
{
if (player.reduceAdena("ClanLvl", 650000, player.getTarget(), true))
{
player.setSp(player.getSp() - 20000);
final SystemMessage sp = SystemMessage.getSystemMessage(SystemMessageId.YOUR_SP_HAS_DECREASED_BY_S1);
sp.addInt(20000);
player.sendPacket(sp);
increaseClanLevel = true;
}
player.setSp(player.getSp() - 20000);
final SystemMessage sp = SystemMessage.getSystemMessage(SystemMessageId.YOUR_SP_HAS_DECREASED_BY_S1);
sp.addInt(20000);
player.sendPacket(sp);
increaseClanLevel = true;
}
break;
}
case 1:
{
// Upgrade to 2
if ((player.getSp() >= 100000) && (player.getAdena() >= 2500000))
if ((player.getSp() >= 100000) && (player.getAdena() >= 2500000) && player.reduceAdena("ClanLvl", 2500000, player.getTarget(), true))
{
if (player.reduceAdena("ClanLvl", 2500000, player.getTarget(), true))
{
player.setSp(player.getSp() - 100000);
final SystemMessage sp = SystemMessage.getSystemMessage(SystemMessageId.YOUR_SP_HAS_DECREASED_BY_S1);
sp.addInt(100000);
player.sendPacket(sp);
increaseClanLevel = true;
}
player.setSp(player.getSp() - 100000);
final SystemMessage sp = SystemMessage.getSystemMessage(SystemMessageId.YOUR_SP_HAS_DECREASED_BY_S1);
sp.addInt(100000);
player.sendPacket(sp);
increaseClanLevel = true;
}
break;
}
case 2:
{
// Upgrade to 3
if ((player.getSp() >= 350000) && (player.getInventory().getItemByItemId(1419) != null))
if ((player.getSp() >= 350000) && (player.getInventory().getItemByItemId(1419) != null) && player.destroyItemByItemId("ClanLvl", 1419, 1, player.getTarget(), false))
{
// TODO unhardcode these item IDs
// itemId 1419 == Blood Mark
if (player.destroyItemByItemId("ClanLvl", 1419, 1, player.getTarget(), false))
{
player.setSp(player.getSp() - 350000);
final SystemMessage sp = SystemMessage.getSystemMessage(SystemMessageId.YOUR_SP_HAS_DECREASED_BY_S1);
sp.addInt(350000);
player.sendPacket(sp);
final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.S1_DISAPPEARED);
sm.addItemName(1419);
player.sendPacket(sm);
increaseClanLevel = true;
}
player.setSp(player.getSp() - 350000);
final SystemMessage sp = SystemMessage.getSystemMessage(SystemMessageId.YOUR_SP_HAS_DECREASED_BY_S1);
sp.addInt(350000);
player.sendPacket(sp);
final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.S1_DISAPPEARED);
sm.addItemName(1419);
player.sendPacket(sm);
increaseClanLevel = true;
}
break;
}
case 3:
{
// Upgrade to 4
if ((player.getSp() >= 1000000) && (player.getInventory().getItemByItemId(3874) != null))
if ((player.getSp() >= 1000000) && (player.getInventory().getItemByItemId(3874) != null) && player.destroyItemByItemId("ClanLvl", 3874, 1, player.getTarget(), false))
{
// itemId 3874 == Alliance Manifesto
if (player.destroyItemByItemId("ClanLvl", 3874, 1, player.getTarget(), false))
{
player.setSp(player.getSp() - 1000000);
final SystemMessage sp = SystemMessage.getSystemMessage(SystemMessageId.YOUR_SP_HAS_DECREASED_BY_S1);
sp.addInt(1000000);
player.sendPacket(sp);
final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.S1_DISAPPEARED);
sm.addItemName(3874);
player.sendPacket(sm);
increaseClanLevel = true;
}
player.setSp(player.getSp() - 1000000);
final SystemMessage sp = SystemMessage.getSystemMessage(SystemMessageId.YOUR_SP_HAS_DECREASED_BY_S1);
sp.addInt(1000000);
player.sendPacket(sp);
final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.S1_DISAPPEARED);
sm.addItemName(3874);
player.sendPacket(sm);
increaseClanLevel = true;
}
break;
}
case 4:
{
// Upgrade to 5
if ((player.getSp() >= 2500000) && (player.getInventory().getItemByItemId(3870) != null))
if ((player.getSp() >= 2500000) && (player.getInventory().getItemByItemId(3870) != null) && player.destroyItemByItemId("ClanLvl", 3870, 1, player.getTarget(), false))
{
// itemId 3870 == Seal of Aspiration
if (player.destroyItemByItemId("ClanLvl", 3870, 1, player.getTarget(), false))
{
player.setSp(player.getSp() - 2500000);
final SystemMessage sp = SystemMessage.getSystemMessage(SystemMessageId.YOUR_SP_HAS_DECREASED_BY_S1);
sp.addInt(2500000);
player.sendPacket(sp);
final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.S1_DISAPPEARED);
sm.addItemName(3870);
player.sendPacket(sm);
increaseClanLevel = true;
}
player.setSp(player.getSp() - 2500000);
final SystemMessage sp = SystemMessage.getSystemMessage(SystemMessageId.YOUR_SP_HAS_DECREASED_BY_S1);
sp.addInt(2500000);
player.sendPacket(sp);
final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.S1_DISAPPEARED);
sm.addItemName(3870);
player.sendPacket(sm);
increaseClanLevel = true;
}
break;
}

View File

@@ -152,15 +152,7 @@ public class L2ClanMember
*/
public boolean isOnline()
{
if ((_player == null) || !_player.isOnline())
{
return false;
}
if (_player.isInOfflineMode())
{
return false;
}
return true;
return (_player != null) && _player.isOnline() && !_player.isInOfflineMode();
}
/**
@@ -169,11 +161,7 @@ public class L2ClanMember
*/
public int getClassId()
{
if (_player != null)
{
return _player.getClassId().getId();
}
return _classId;
return _player != null ? _player.getClassId().getId() : _classId;
}
/**
@@ -182,11 +170,7 @@ public class L2ClanMember
*/
public int getLevel()
{
if (_player != null)
{
return _player.getLevel();
}
return _level;
return _player != null ? _player.getLevel() : _level;
}
/**
@@ -195,11 +179,7 @@ public class L2ClanMember
*/
public String getName()
{
if (_player != null)
{
return _player.getName();
}
return _name;
return _player != null ? _player.getName() : _name;
}
/**
@@ -208,11 +188,7 @@ public class L2ClanMember
*/
public int getObjectId()
{
if (_player != null)
{
return _player.getObjectId();
}
return _objectId;
return _player != null ? _player.getObjectId() : _objectId;
}
/**
@@ -221,11 +197,7 @@ public class L2ClanMember
*/
public String getTitle()
{
if (_player != null)
{
return _player.getTitle();
}
return _title;
return _player != null ? _player.getTitle() : _title;
}
/**
@@ -234,11 +206,7 @@ public class L2ClanMember
*/
public int getPledgeType()
{
if (_player != null)
{
return _player.getPledgeType();
}
return _pledgeType;
return _player != null ? _player.getPledgeType() : _pledgeType;
}
/**
@@ -283,11 +251,7 @@ public class L2ClanMember
*/
public int getPowerGrade()
{
if (_player != null)
{
return _player.getPowerGrade();
}
return _powerGrade;
return _player != null ? _player.getPowerGrade() : _powerGrade;
}
/**
@@ -343,11 +307,7 @@ public class L2ClanMember
*/
public int getRaceOrdinal()
{
if (_player != null)
{
return _player.getRace().ordinal();
}
return _raceOrdinal;
return _player != null ? _player.getRace().ordinal() : _raceOrdinal;
}
/**
@@ -356,11 +316,7 @@ public class L2ClanMember
*/
public boolean getSex()
{
if (_player != null)
{
return _player.getAppearance().getSex();
}
return _sex;
return _player != null ? _player.getAppearance().getSex() : _sex;
}
/**
@@ -369,11 +325,7 @@ public class L2ClanMember
*/
public int getSponsor()
{
if (_player != null)
{
return _player.getSponsor();
}
return _sponsor;
return _player != null ? _player.getSponsor() : _sponsor;
}
/**
@@ -382,11 +334,7 @@ public class L2ClanMember
*/
public int getApprentice()
{
if (_player != null)
{
return _player.getApprentice();
}
return _apprentice;
return _player != null ? _player.getApprentice() : _apprentice;
}
/**

View File

@@ -117,17 +117,18 @@ public class L2CommandChannel extends AbstractPlayerGroup
*/
public void disbandChannel()
{
if (_parties != null)
if (_parties == null)
{
for (L2Party party : _parties)
{
if (party != null)
{
removeParty(party);
}
}
_parties.clear();
return;
}
for (L2Party party : _parties)
{
if (party != null)
{
removeParty(party);
}
}
_parties.clear();
}
/**
@@ -194,11 +195,7 @@ public class L2CommandChannel extends AbstractPlayerGroup
*/
public boolean meetRaidWarCondition(L2Object obj)
{
if (!((obj instanceof L2Character) && ((L2Character) obj).isRaid()))
{
return false;
}
return (getMemberCount() >= Config.LOOT_RAIDS_PRIVILEGE_CC_SIZE);
return (obj instanceof L2Character) && ((L2Character) obj).isRaid() && (getMemberCount() >= Config.LOOT_RAIDS_PRIVILEGE_CC_SIZE);
}
/**

View File

@@ -95,11 +95,7 @@ public final class L2EnchantSkillGroup
public byte getRate(L2PcInstance ply)
{
if (ply.getLevel() < 76)
{
return 0;
}
return _rate[ply.getLevel() - 76];
return ply.getLevel() < 76 ? 0 : _rate[ply.getLevel() - 76];
}
}
}

View File

@@ -82,27 +82,13 @@ public final class L2EnchantSkillLearn
public int getMinSkillLevel(int level)
{
if ((level % 1000) == 1)
{
return _baseLvl;
}
return level - 1;
return (level % 1000) == 1 ? _baseLvl : level - 1;
}
public boolean isMaxEnchant(int level)
{
final int enchantType = getEnchantRoute(level);
if ((enchantType < 1) || !_enchantRoutes.containsKey(enchantType))
{
return false;
}
final int index = getEnchantIndex(level);
if ((index + 1) >= EnchantSkillGroupsData.getInstance().getEnchantSkillGroupById(_enchantRoutes.get(enchantType)).getEnchantGroupDetails().size())
{
return true;
}
return false;
return (enchantType >= 1) && _enchantRoutes.containsKey(enchantType) && ((getEnchantIndex(level) + 1) >= EnchantSkillGroupsData.getInstance().getEnchantSkillGroupById(_enchantRoutes.get(enchantType)).getEnchantGroupDetails().size());
}
public EnchantSkillHolder getEnchantSkillHolder(int level)

View File

@@ -78,14 +78,7 @@ public class L2GroupSpawn extends L2Spawn
final L2Npc mob = new L2ControllableMobInstance(_template);
mob.setCurrentHpMp(mob.getMaxHp(), mob.getMaxMp());
if (getHeading() == -1)
{
mob.setHeading(Rnd.nextInt(61794));
}
else
{
mob.setHeading(getHeading());
}
mob.setHeading(getHeading() == -1 ? Rnd.nextInt(61794) : getHeading());
mob.setSpawn(this);
mob.spawnMe(newlocx, newlocy, newlocz);

View File

@@ -162,50 +162,22 @@ public class L2MapRegion
public final Location getSpawnLoc()
{
if (Config.RANDOM_RESPAWN_IN_TOWN_ENABLED)
{
return _spawnLocs.get(Rnd.get(_spawnLocs.size()));
}
return _spawnLocs.get(0);
return Config.RANDOM_RESPAWN_IN_TOWN_ENABLED ? _spawnLocs.get(Rnd.get(_spawnLocs.size())) : _spawnLocs.get(0);
}
public final Location getOtherSpawnLoc()
{
if (_otherSpawnLocs != null)
{
if (Config.RANDOM_RESPAWN_IN_TOWN_ENABLED)
{
return _otherSpawnLocs.get(Rnd.get(_otherSpawnLocs.size()));
}
return _otherSpawnLocs.get(0);
}
return getSpawnLoc();
return _otherSpawnLocs != null ? Config.RANDOM_RESPAWN_IN_TOWN_ENABLED ? _otherSpawnLocs.get(Rnd.get(_otherSpawnLocs.size())) : _otherSpawnLocs.get(0) : getSpawnLoc();
}
public final Location getChaoticSpawnLoc()
{
if (_chaoticSpawnLocs != null)
{
if (Config.RANDOM_RESPAWN_IN_TOWN_ENABLED)
{
return _chaoticSpawnLocs.get(Rnd.get(_chaoticSpawnLocs.size()));
}
return _chaoticSpawnLocs.get(0);
}
return getSpawnLoc();
return _chaoticSpawnLocs != null ? Config.RANDOM_RESPAWN_IN_TOWN_ENABLED ? _chaoticSpawnLocs.get(Rnd.get(_chaoticSpawnLocs.size())) : _chaoticSpawnLocs.get(0) : getSpawnLoc();
}
public final Location getBanishSpawnLoc()
{
if (_banishSpawnLocs != null)
{
if (Config.RANDOM_RESPAWN_IN_TOWN_ENABLED)
{
return _banishSpawnLocs.get(Rnd.get(_banishSpawnLocs.size()));
}
return _banishSpawnLocs.get(0);
}
return getSpawnLoc();
return _banishSpawnLocs != null ? Config.RANDOM_RESPAWN_IN_TOWN_ENABLED ? _banishSpawnLocs.get(Rnd.get(_banishSpawnLocs.size())) : _banishSpawnLocs.get(0) : getSpawnLoc();
}
public final void addBannedRace(String race, String point)

View File

@@ -88,24 +88,18 @@ public class L2Mentee
public int getClassId()
{
if (isOnline())
if (isOnline() && (getPlayerInstance().getClassId().getId() != _classId))
{
if (getPlayerInstance().getClassId().getId() != _classId)
{
_classId = getPlayerInstance().getClassId().getId();
}
_classId = getPlayerInstance().getClassId().getId();
}
return _classId;
}
public int getLevel()
{
if (isOnline())
if (isOnline() && (getPlayerInstance().getLevel() != _currentLevel))
{
if (getPlayerInstance().getLevel() != _currentLevel)
{
_currentLevel = getPlayerInstance().getLevel();
}
_currentLevel = getPlayerInstance().getLevel();
}
return _currentLevel;
}

View File

@@ -553,11 +553,7 @@ public abstract class L2Object extends ListenersContainer implements IIdentifiab
@SuppressWarnings("unchecked")
public final <T> T removeScript(Class<T> script)
{
if (_scripts == null)
{
return null;
}
return (T) _scripts.remove(script.getName());
return _scripts == null ? null : (T) _scripts.remove(script.getName());
}
/**
@@ -568,11 +564,7 @@ public abstract class L2Object extends ListenersContainer implements IIdentifiab
@SuppressWarnings("unchecked")
public final <T> T getScript(Class<T> script)
{
if (_scripts == null)
{
return null;
}
return (T) _scripts.get(script.getName());
return _scripts == null ? null : (T) _scripts.get(script.getName());
}
public void removeStatusListener(L2Character object)
@@ -629,15 +621,15 @@ public abstract class L2Object extends ListenersContainer implements IIdentifiab
}
final L2WorldRegion newRegion = L2World.getInstance().getRegion(getLocation());
if (newRegion != getWorldRegion())
if (newRegion == getWorldRegion())
{
getWorldRegion().removeVisibleObject(this);
setWorldRegion(newRegion);
// Add the L2Oject spawn to _visibleObjects and if necessary to _allplayers of its L2WorldRegion
getWorldRegion().addVisibleObject(this);
return;
}
getWorldRegion().removeVisibleObject(this);
setWorldRegion(newRegion);
// Add the L2Oject spawn to _visibleObjects and if necessary to _allplayers of its L2WorldRegion
getWorldRegion().addVisibleObject(this);
}
public final L2WorldRegion getWorldRegion()
@@ -971,13 +963,9 @@ public abstract class L2Object extends ListenersContainer implements IIdentifiab
final DeleteObject deletePacket = new DeleteObject(this);
for (L2Object obj : getKnownList().getKnownObjects().values())
{
if ((obj != null) && obj.isPlayer())
if ((obj != null) && obj.isPlayer() && !isVisibleFor(obj.getActingPlayer()))
{
final L2PcInstance player = obj.getActingPlayer();
if (!isVisibleFor(player))
{
obj.sendPacket(deletePacket);
}
obj.sendPacket(deletePacket);
}
}
}

View File

@@ -164,11 +164,7 @@ public class L2Party extends AbstractPlayerGroup
availableMembers.add(member);
}
}
if (!availableMembers.isEmpty())
{
return availableMembers.get(Rnd.get(availableMembers.size()));
}
return null;
return !availableMembers.isEmpty() ? availableMembers.get(Rnd.get(availableMembers.size())) : null;
}
/**
@@ -475,110 +471,111 @@ public class L2Party extends AbstractPlayerGroup
*/
public void removePartyMember(L2PcInstance player, messageType type)
{
if (getMembers().contains(player))
if (!getMembers().contains(player))
{
return;
}
final boolean isLeader = isLeader(player);
if (!_disbanding && ((getMembers().size() == 2) || (isLeader && !Config.ALT_LEAVE_PARTY_LEADER && (type != messageType.Disconnected))))
{
final boolean isLeader = isLeader(player);
if (!_disbanding)
{
if ((getMembers().size() == 2) || (isLeader && !Config.ALT_LEAVE_PARTY_LEADER && (type != messageType.Disconnected)))
{
disbandParty();
return;
}
disbandParty();
return;
}
getMembers().remove(player);
recalculatePartyLevel();
try
}
getMembers().remove(player);
recalculatePartyLevel();
try
{
// Channeling a player!
if (player.isChanneling() && (player.getSkillChannelizer().hasChannelized()))
{
// Channeling a player!
if (player.isChanneling() && (player.getSkillChannelizer().hasChannelized()))
{
player.abortCast();
}
else if (player.isChannelized())
{
player.getSkillChannelized().abortChannelization();
}
player.abortCast();
}
catch (Exception e)
else if (player.isChannelized())
{
_log.log(Level.WARNING, "", e);
player.getSkillChannelized().abortChannelization();
}
SystemMessage msg;
if (type == messageType.Expelled)
{
player.sendPacket(SystemMessageId.YOU_HAVE_BEEN_EXPELLED_FROM_THE_PARTY);
msg = SystemMessage.getSystemMessage(SystemMessageId.C1_WAS_EXPELLED_FROM_THE_PARTY);
msg.addString(player.getName());
broadcastPacket(msg);
}
else if ((type == messageType.Left) || (type == messageType.Disconnected))
{
player.sendPacket(SystemMessageId.YOU_HAVE_WITHDRAWN_FROM_THE_PARTY);
msg = SystemMessage.getSystemMessage(SystemMessageId.C1_HAS_LEFT_THE_PARTY);
msg.addString(player.getName());
broadcastPacket(msg);
}
// UI update.
player.sendPacket(PartySmallWindowDeleteAll.STATIC_PACKET);
player.setParty(null);
broadcastPacket(new PartySmallWindowDelete(player));
final L2Summon pet = player.getPet();
if (pet != null)
{
broadcastPacket(new ExPartyPetWindowDelete(pet));
}
player.getServitors().values().forEach(s -> player.sendPacket(new ExPartyPetWindowDelete(s)));
// Close the CCInfoWindow
}
catch (Exception e)
{
_log.log(Level.WARNING, "", e);
}
SystemMessage msg;
if (type == messageType.Expelled)
{
player.sendPacket(SystemMessageId.YOU_HAVE_BEEN_EXPELLED_FROM_THE_PARTY);
msg = SystemMessage.getSystemMessage(SystemMessageId.C1_WAS_EXPELLED_FROM_THE_PARTY);
msg.addString(player.getName());
broadcastPacket(msg);
}
else if ((type == messageType.Left) || (type == messageType.Disconnected))
{
player.sendPacket(SystemMessageId.YOU_HAVE_WITHDRAWN_FROM_THE_PARTY);
msg = SystemMessage.getSystemMessage(SystemMessageId.C1_HAS_LEFT_THE_PARTY);
msg.addString(player.getName());
broadcastPacket(msg);
}
// UI update.
player.sendPacket(PartySmallWindowDeleteAll.STATIC_PACKET);
player.setParty(null);
broadcastPacket(new PartySmallWindowDelete(player));
final L2Summon pet = player.getPet();
if (pet != null)
{
broadcastPacket(new ExPartyPetWindowDelete(pet));
}
player.getServitors().values().forEach(s -> player.sendPacket(new ExPartyPetWindowDelete(s)));
// Close the CCInfoWindow
if (isInCommandChannel())
{
player.sendPacket(new ExCloseMPCC());
}
if (isLeader && (getMembers().size() > 1) && (Config.ALT_LEAVE_PARTY_LEADER || (type == messageType.Disconnected)))
{
msg = SystemMessage.getSystemMessage(SystemMessageId.C1_HAS_BECOME_THE_PARTY_LEADER);
msg.addString(getLeader().getName());
broadcastPacket(msg);
broadcastToPartyMembersNewLeader();
}
else if (getMembers().size() == 1)
{
if (isInCommandChannel())
{
player.sendPacket(new ExCloseMPCC());
// delete the whole command channel when the party who opened the channel is disbanded
if (getCommandChannel().getLeader().getObjectId() == getLeader().getObjectId())
{
getCommandChannel().disbandChannel();
}
else
{
getCommandChannel().removeParty(this);
}
}
if (isLeader && (getMembers().size() > 1) && (Config.ALT_LEAVE_PARTY_LEADER || (type == messageType.Disconnected)))
if (getLeader() != null)
{
msg = SystemMessage.getSystemMessage(SystemMessageId.C1_HAS_BECOME_THE_PARTY_LEADER);
msg.addString(getLeader().getName());
broadcastPacket(msg);
broadcastToPartyMembersNewLeader();
getLeader().setParty(null);
}
else if (getMembers().size() == 1)
if (_changeDistributionTypeRequestTask != null)
{
if (isInCommandChannel())
{
// delete the whole command channel when the party who opened the channel is disbanded
if (getCommandChannel().getLeader().getObjectId() == getLeader().getObjectId())
{
getCommandChannel().disbandChannel();
}
else
{
getCommandChannel().removeParty(this);
}
}
if (getLeader() != null)
{
getLeader().setParty(null);
}
if (_changeDistributionTypeRequestTask != null)
{
_changeDistributionTypeRequestTask.cancel(true);
_changeDistributionTypeRequestTask = null;
}
if (_positionBroadcastTask != null)
{
_positionBroadcastTask.cancel(false);
_positionBroadcastTask = null;
}
_members.clear();
_changeDistributionTypeRequestTask.cancel(true);
_changeDistributionTypeRequestTask = null;
}
applyTacticalSigns(player, true);
if (_positionBroadcastTask != null)
{
_positionBroadcastTask.cancel(false);
_positionBroadcastTask = null;
}
_members.clear();
}
applyTacticalSigns(player, true);
}
/**
@@ -587,15 +584,17 @@ public class L2Party extends AbstractPlayerGroup
public void disbandParty()
{
_disbanding = true;
if (_members != null)
if (_members == null)
{
broadcastPacket(SystemMessage.getSystemMessage(SystemMessageId.THE_PARTY_HAS_DISPERSED));
for (L2PcInstance member : _members)
return;
}
broadcastPacket(SystemMessage.getSystemMessage(SystemMessageId.THE_PARTY_HAS_DISPERSED));
for (L2PcInstance member : _members)
{
if (member != null)
{
if (member != null)
{
removePartyMember(member, messageType.None);
}
removePartyMember(member, messageType.None);
}
}
}
@@ -641,8 +640,7 @@ public class L2Party extends AbstractPlayerGroup
}
if (player.isInPartyMatchRoom())
{
final PartyMatchRoom room = PartyMatchRoomList.getInstance().getPlayerRoom(player);
room.changeLeader(player);
PartyMatchRoomList.getInstance().getPlayerRoom(player).changeLeader(player);
}
}
}
@@ -687,25 +685,26 @@ public class L2Party extends AbstractPlayerGroup
final L2PcInstance target = getActualLooter(player, item.getId(), false, player);
target.addItem("Party", item, player, true);
// Send messages to other party members about reward
if (item.getCount() > 0)
if (item.getCount() <= 0)
{
if (item.getCount() > 1)
{
final SystemMessage msg = SystemMessage.getSystemMessage(SystemMessageId.C1_HAS_OBTAINED_S3_S2);
msg.addString(target.getName());
msg.addItemName(item);
msg.addLong(item.getCount());
broadcastToPartyMembers(target, msg);
}
else
{
final SystemMessage msg = SystemMessage.getSystemMessage(SystemMessageId.C1_HAS_OBTAINED_S2);
msg.addString(target.getName());
msg.addItemName(item);
broadcastToPartyMembers(target, msg);
}
return;
}
final SystemMessage msg;
if (item.getCount() > 1)
{
msg = SystemMessage.getSystemMessage(SystemMessageId.C1_HAS_OBTAINED_S3_S2);
msg.addString(target.getName());
msg.addItemName(item);
msg.addLong(item.getCount());
}
else
{
msg = SystemMessage.getSystemMessage(SystemMessageId.C1_HAS_OBTAINED_S2);
msg.addString(target.getName());
msg.addItemName(item);
}
broadcastToPartyMembers(target, msg);
}
/**
@@ -728,25 +727,26 @@ public class L2Party extends AbstractPlayerGroup
looter.addItem(spoil ? "Sweeper Party" : "Party", itemId, itemCount, target, true);
// Send messages to other party members about reward
if (itemCount > 0)
if (itemCount <= 0)
{
if (itemCount > 1)
{
final SystemMessage msg = spoil ? SystemMessage.getSystemMessage(SystemMessageId.C1_HAS_OBTAINED_S3_S2_S_BY_USING_SWEEPER) : SystemMessage.getSystemMessage(SystemMessageId.C1_HAS_OBTAINED_S3_S2);
msg.addString(looter.getName());
msg.addItemName(itemId);
msg.addLong(itemCount);
broadcastToPartyMembers(looter, msg);
}
else
{
final SystemMessage msg = spoil ? SystemMessage.getSystemMessage(SystemMessageId.C1_HAS_OBTAINED_S2_BY_USING_SWEEPER) : SystemMessage.getSystemMessage(SystemMessageId.C1_HAS_OBTAINED_S2);
msg.addString(looter.getName());
msg.addItemName(itemId);
broadcastToPartyMembers(looter, msg);
}
return;
}
final SystemMessage msg;
if (itemCount > 1)
{
msg = spoil ? SystemMessage.getSystemMessage(SystemMessageId.C1_HAS_OBTAINED_S3_S2_S_BY_USING_SWEEPER) : SystemMessage.getSystemMessage(SystemMessageId.C1_HAS_OBTAINED_S3_S2);
msg.addString(looter.getName());
msg.addItemName(itemId);
msg.addLong(itemCount);
}
else
{
msg = spoil ? SystemMessage.getSystemMessage(SystemMessageId.C1_HAS_OBTAINED_S2_BY_USING_SWEEPER) : SystemMessage.getSystemMessage(SystemMessageId.C1_HAS_OBTAINED_S2);
msg.addString(looter.getName());
msg.addItemName(itemId);
}
broadcastToPartyMembers(looter, msg);
}
/**
@@ -937,8 +937,7 @@ public class L2Party extends AbstractPlayerGroup
for (L2PcInstance member : members)
{
final int sqLevel = member.getLevel() * member.getLevel();
if ((sqLevel * 100) >= (sqLevelSum * Config.PARTY_XP_CUTOFF_PERCENT))
if ((member.getLevel() * member.getLevel() * 100) >= (sqLevelSum * Config.PARTY_XP_CUTOFF_PERCENT))
{
validMembers.add(member);
}
@@ -965,8 +964,7 @@ public class L2Party extends AbstractPlayerGroup
for (L2PcInstance member : members)
{
final int sqLevel = member.getLevel() * member.getLevel();
if (sqLevel >= (sqLevelSum / (members.size() * members.size())))
if ((member.getLevel() * member.getLevel()) >= (sqLevelSum / (members.size() * members.size())))
{
validMembers.add(member);
}
@@ -1063,12 +1061,7 @@ public class L2Party extends AbstractPlayerGroup
public synchronized void answerLootChangeRequest(L2PcInstance member, boolean answer)
{
if (_changeRequestDistributionType == null)
{
return;
}
if (_changeDistributionTypeAnswers.contains(member.getObjectId()))
if ((_changeRequestDistributionType == null) || _changeDistributionTypeAnswers.contains(member.getObjectId()))
{
return;
}

View File

@@ -207,12 +207,9 @@ public class L2PetData
}
break;
}
else if (temp.getMinLevel() <= petLvl)
if ((temp.getMinLevel() <= petLvl) && (temp.getSkillLvl() > lvl))
{
if (temp.getSkillLvl() > lvl)
{
lvl = temp.getSkillLvl();
}
lvl = temp.getSkillLvl();
}
}
return lvl;

View File

@@ -102,8 +102,7 @@ public final class L2Radar
result = (prime * result) + _type;
result = (prime * result) + _x;
result = (prime * result) + _y;
result = (prime * result) + _z;
return result;
return result = (prime * result) + _z;
}
@Override
@@ -118,11 +117,7 @@ public final class L2Radar
return false;
}
final RadarMarker other = (RadarMarker) obj;
if ((_type != other._type) || (_x != other._x) || (_y != other._y) || (_z != other._z))
{
return false;
}
return true;
return (_type == other._type) && (_x == other._x) && (_y == other._y) && (_z == other._z);
}
}
}

View File

@@ -53,5 +53,4 @@ public class L2RecipeInstance
{
return _quantity;
}
}

View File

@@ -55,5 +55,4 @@ public class L2RecipeStatInstance
{
return _value;
}
}

View File

@@ -121,8 +121,8 @@ public class L2Request
private void setOnRequestTimer(boolean isRequestor)
{
_isRequestor = isRequestor ? true : false;
_isAnswerer = isRequestor ? false : true;
_isRequestor = isRequestor;
_isAnswerer = !isRequestor;
ThreadPoolManager.getInstance().scheduleGeneral(() -> clear(), REQUEST_TIMEOUT * 1000);
}

View File

@@ -146,10 +146,7 @@ public class L2Spawn implements IPositionable, IIdentifiable, INamable
return;
}
final String className = "com.l2jmobius.gameserver.model.actor.instance." + _template.getType() + "Instance";
// Create the generic constructor of L2Npc managed by this L2Spawn
_constructor = Class.forName(className).asSubclass(L2Npc.class).getConstructor(L2NpcTemplate.class);
_constructor = Class.forName("com.l2jmobius.gameserver.model.actor.instance." + _template.getType() + "Instance").asSubclass(L2Npc.class).getConstructor(L2NpcTemplate.class);
}
/**
@@ -618,12 +615,7 @@ public class L2Spawn implements IPositionable, IIdentifiable, INamable
final int randX = newlocx + Rnd.get(Config.MOB_MIN_SPAWN_RANGE, Config.MOB_MAX_SPAWN_RANGE);
final int randY = newlocy + Rnd.get(Config.MOB_MIN_SPAWN_RANGE, Config.MOB_MAX_SPAWN_RANGE);
boolean isQuestMonster = false;
if ((mob.getTitle() != null) && mob.getTitle().contains("Quest"))
{
isQuestMonster = true;
}
final boolean isQuestMonster = (mob.getTitle() != null) && mob.getTitle().contains("Quest");
if (mob.isMonster() && !isQuestMonster && !mob.isWalker() && !mob.isInsideZone(ZoneId.NO_BOOKMARK) && GeoData.getInstance().canSeeTarget(newlocx, newlocy, newlocz, randX, randY, newlocz) && (getInstanceId() == 0) && !getTemplate().isUndying() && !mob.isRaid() && !mob.isRaidMinion() && !Config.MOBS_LIST_NOT_RANDOM.contains(mob.getId()))
{
newlocx = randX;

View File

@@ -107,21 +107,7 @@ public class L2Territory
}
final double dx1 = p1._x - x;
final double dx2 = p2._x - x;
if ((dx1 >= 0) && (dx2 >= 0))
{
return true;
}
if ((dx1 < 0) && (dx2 < 0))
{
return false;
}
final double dx0 = (dy1 * (p1._x - p2._x)) / (p1._y - p2._y);
return dx0 <= dx1;
return ((dx1 >= 0) && ((p2._x - x) >= 0)) || (((dx1 >= 0) || ((p2._x - x) >= 0)) && (((dy1 * (p1._x - p2._x)) / (p1._y - p2._y)) <= dx1));
}
public boolean isInside(int x, int y)
@@ -129,10 +115,7 @@ public class L2Territory
int intersect_count = 0;
for (int i = 0; i < _points.size(); i++)
{
final Point p1 = _points.get(i > 0 ? i - 1 : _points.size() - 1);
final Point p2 = _points.get(i);
if (isIntersect(x, y, p1, p2))
if (isIntersect(x, y, _points.get(i > 0 ? i - 1 : _points.size() - 1), _points.get(i)))
{
intersect_count++;
}

View File

@@ -34,7 +34,7 @@ public class L2WalkRoute
_name = name;
_nodeList = route;
_repeatType = repeatType;
_repeatWalk = ((_repeatType >= 0) && (_repeatType <= 2)) ? repeat : false;
_repeatWalk = (_repeatType >= 0) && (_repeatType <= 2) && repeat;
}
public String getName()

View File

@@ -374,12 +374,7 @@ public final class L2World
*/
public void removeVisibleObject(L2Object object, L2WorldRegion oldWorldRegion)
{
if (object == null)
{
return;
}
if (oldWorldRegion == null)
if ((object == null) || (oldWorldRegion == null))
{
return;
}
@@ -428,13 +423,9 @@ public final class L2World
// Go through visible objects of the selected region
for (L2Object _object : regi.getVisibleObjects().values())
{
if ((_object == null) || _object.equals(object))
if ((_object == null) || _object.equals(object) || !_object.isVisible())
{
continue; // skip our own character
}
else if (!_object.isVisible())
{
continue; // skip dying objects
continue;
}
result.add(_object);
}
@@ -542,22 +533,12 @@ public final class L2World
final List<L2Playable> result = new LinkedList<>();
for (L2WorldRegion regi : reg.getSurroundingRegions())
{
// Create an Iterator to go through the visible L2Object of the L2WorldRegion
final Map<Integer, L2Playable> _allpls = regi.getVisiblePlayable();
final Collection<L2Playable> _playables = _allpls.values();
// Go through visible object of the selected region
for (L2Playable _object : _playables)
for (L2Playable _object : regi.getVisiblePlayable().values())
{
if ((_object == null) || _object.equals(object))
if ((_object == null) || _object.equals(object) || !_object.isVisible())
{
continue; // skip our own character
continue;
}
if (!_object.isVisible())
{
continue; // skip dying objects
}
result.add(_object);
}
}

View File

@@ -132,32 +132,9 @@ public final class L2WorldRegion
for (L2ZoneType e : getZones())
{
if (e instanceof L2PeaceZone)
if ((e instanceof L2PeaceZone) && (e.isInsideZone(x, up, z) || e.isInsideZone(x, down, z) || e.isInsideZone(left, y, z) || e.isInsideZone(right, y, z) || e.isInsideZone(x, y, z)))
{
if (e.isInsideZone(x, up, z))
{
return false;
}
if (e.isInsideZone(x, down, z))
{
return false;
}
if (e.isInsideZone(left, y, z))
{
return false;
}
if (e.isInsideZone(right, y, z))
{
return false;
}
if (e.isInsideZone(x, y, z))
{
return false;
}
return false;
}
}
return true;
@@ -332,14 +309,7 @@ public final class L2WorldRegion
// TODO
// turn the geodata on or off to match the region's activation.
if (value)
{
_log.fine("Starting Grid " + _tileX + "," + _tileY);
}
else
{
_log.fine("Stoping Grid " + _tileX + "," + _tileY);
}
_log.fine(value ? "Starting Grid " + _tileX + "," + _tileY : "Stoping Grid " + _tileX + "," + _tileY);
}
/**

View File

@@ -207,12 +207,12 @@ public class Location implements IPositionable
@Override
public boolean equals(Object obj)
{
if ((obj != null) && (obj instanceof Location))
if ((obj == null) || !(obj instanceof Location))
{
final Location loc = (Location) obj;
return (getX() == loc.getX()) && (getY() == loc.getY()) && (getZ() == loc.getZ()) && (getHeading() == loc.getHeading()) && (getInstanceId() == loc.getInstanceId());
return false;
}
return false;
final Location loc = (Location) obj;
return (getX() == loc.getX()) && (getY() == loc.getY()) && (getZ() == loc.getZ()) && (getHeading() == loc.getHeading()) && (getInstanceId() == loc.getInstanceId());
}
@Override

View File

@@ -68,7 +68,6 @@ public class MacroList implements IRestorable
macro.setId(_macroId++);
}
_macroses.put(macro.getId(), macro);
registerMacroInDb(macro);
}
else
{
@@ -78,8 +77,8 @@ public class MacroList implements IRestorable
{
deleteMacroFromDb(old);
}
registerMacroInDb(macro);
}
registerMacroInDb(macro);
_owner.sendPacket(new SendMacroList(1, macro, updateType));
}
@@ -200,15 +199,7 @@ public class MacroList implements IRestorable
{
continue;
}
final MacroType type = MacroType.values()[Integer.parseInt(st.nextToken())];
final int d1 = Integer.parseInt(st.nextToken());
final int d2 = Integer.parseInt(st.nextToken());
String cmd = "";
if (st.hasMoreTokens())
{
cmd = st.nextToken();
}
commands.add(new MacroCmd(commands.size(), type, d1, d2, cmd));
commands.add(new MacroCmd(commands.size(), MacroType.values()[Integer.parseInt(st.nextToken())], Integer.parseInt(st.nextToken()), Integer.parseInt(st.nextToken()), (st.hasMoreTokens() ? st.nextToken() : "")));
}
_macroses.put(id, new Macro(id, icon, name, descr, acronym, commands));
}

View File

@@ -76,9 +76,7 @@ public final class MobGroup
{
try
{
final L2ControllableMobAI mobGroupAI = (L2ControllableMobAI) getMobs().get(0).getAI();
switch (mobGroupAI.getAlternateAI())
switch (((L2ControllableMobAI) getMobs().get(0).getAI()).getAlternateAI())
{
case L2ControllableMobAI.AI_NORMAL:
{
@@ -192,8 +190,7 @@ public final class MobGroup
final int y = player.getY() + Rnd.nextInt(50);
mobInst.teleToLocation(new Location(x, y, player.getZ()), true);
final L2ControllableMobAI ai = (L2ControllableMobAI) mobInst.getAI();
ai.follow(player);
((L2ControllableMobAI) mobInst.getAI()).follow(player);
}
}
}
@@ -201,14 +198,7 @@ public final class MobGroup
public L2ControllableMobInstance getRandomMob()
{
removeDead();
if (getActiveMobCount() == 0)
{
return null;
}
final int choice = Rnd.nextInt(getActiveMobCount());
return getMobs().get(choice);
return getActiveMobCount() == 0 ? null : getMobs().get(Rnd.nextInt(getActiveMobCount()));
}
public void unspawnGroup()
@@ -288,8 +278,7 @@ public final class MobGroup
continue;
}
final L2ControllableMobAI ai = (L2ControllableMobAI) mobInst.getAI();
ai.forceAttack(target);
((L2ControllableMobAI) mobInst.getAI()).forceAttack(target);
}
}
@@ -304,8 +293,7 @@ public final class MobGroup
continue;
}
final L2ControllableMobAI ai = (L2ControllableMobAI) mobInst.getAI();
ai.stop();
((L2ControllableMobAI) mobInst.getAI()).stop();
}
}
@@ -320,13 +308,7 @@ public final class MobGroup
continue;
}
final int signX = (Rnd.nextInt(2) == 0) ? -1 : 1;
final int signY = (Rnd.nextInt(2) == 0) ? -1 : 1;
final int randX = Rnd.nextInt(MobGroupTable.RANDOM_RANGE);
final int randY = Rnd.nextInt(MobGroupTable.RANDOM_RANGE);
final L2ControllableMobAI ai = (L2ControllableMobAI) mobInst.getAI();
ai.move(activeChar.getX() + (signX * randX), activeChar.getY() + (signY * randY), activeChar.getZ());
((L2ControllableMobAI) mobInst.getAI()).move(activeChar.getX() + (((Rnd.nextInt(2) == 0) ? -1 : 1) * Rnd.nextInt(MobGroupTable.RANDOM_RANGE)), activeChar.getY() + (((Rnd.nextInt(2) == 0) ? -1 : 1) * Rnd.nextInt(MobGroupTable.RANDOM_RANGE)), activeChar.getZ());
}
}
@@ -341,8 +323,7 @@ public final class MobGroup
continue;
}
final L2ControllableMobAI ai = (L2ControllableMobAI) mobInst.getAI();
ai.follow(character);
((L2ControllableMobAI) mobInst.getAI()).follow(character);
}
}
@@ -357,8 +338,7 @@ public final class MobGroup
continue;
}
final L2ControllableMobAI ai = (L2ControllableMobAI) mobInst.getAI();
ai.setAlternateAI(L2ControllableMobAI.AI_CAST);
((L2ControllableMobAI) mobInst.getAI()).setAlternateAI(L2ControllableMobAI.AI_CAST);
}
}
@@ -373,8 +353,7 @@ public final class MobGroup
continue;
}
final L2ControllableMobAI ai = (L2ControllableMobAI) mobInst.getAI();
ai.setNotMoving(enabled);
((L2ControllableMobAI) mobInst.getAI()).setNotMoving(enabled);
}
}

View File

@@ -55,13 +55,10 @@ public class ShortCuts implements IRestorable
{
Shortcut sc = _shortCuts.get(slot + (page * MAX_SHORTCUTS_PER_BAR));
// Verify shortcut
if ((sc != null) && (sc.getType() == ShortcutType.ITEM))
if ((sc != null) && (sc.getType() == ShortcutType.ITEM) && (_owner.getInventory().getItemByObjectId(sc.getId()) == null))
{
if (_owner.getInventory().getItemByObjectId(sc.getId()) == null)
{
deleteShortCut(sc.getSlot(), sc.getPage());
sc = null;
}
deleteShortCut(sc.getSlot(), sc.getPage());
sc = null;
}
return sc;
}
@@ -78,8 +75,7 @@ public class ShortCuts implements IRestorable
}
shortcut.setSharedReuseGroup(item.getSharedReuseGroup());
}
final Shortcut oldShortCut = _shortCuts.put(shortcut.getSlot() + (shortcut.getPage() * MAX_SHORTCUTS_PER_BAR), shortcut);
registerShortCutInDb(shortcut, oldShortCut);
registerShortCutInDb(shortcut, _shortCuts.put(shortcut.getSlot() + (shortcut.getPage() * MAX_SHORTCUTS_PER_BAR), shortcut));
}
private void registerShortCutInDb(Shortcut shortcut, Shortcut oldShortCut)
@@ -123,33 +119,30 @@ public class ShortCuts implements IRestorable
{
final L2ItemInstance item = _owner.getInventory().getItemByObjectId(old.getId());
if ((item != null) && (item.getItemType() == EtcItemType.SHOT))
if ((item != null) && (item.getItemType() == EtcItemType.SHOT) && _owner.removeAutoSoulShot(item.getId()))
{
if (_owner.removeAutoSoulShot(item.getId()))
switch (item.getEtcItem().getDefaultAction())
{
switch (item.getEtcItem().getDefaultAction())
case SOULSHOT:
case FISHINGSHOT:
{
case SOULSHOT:
case FISHINGSHOT:
{
_owner.sendPacket(new ExAutoSoulShot(item.getId(), 0, 0));
break;
}
case SPIRITSHOT:
{
_owner.sendPacket(new ExAutoSoulShot(item.getId(), 0, 1));
break;
}
case SUMMON_SOULSHOT:
{
_owner.sendPacket(new ExAutoSoulShot(item.getId(), 0, 2));
break;
}
case SUMMON_SPIRITSHOT:
{
_owner.sendPacket(new ExAutoSoulShot(item.getId(), 0, 3));
break;
}
_owner.sendPacket(new ExAutoSoulShot(item.getId(), 0, 0));
break;
}
case SPIRITSHOT:
{
_owner.sendPacket(new ExAutoSoulShot(item.getId(), 0, 1));
break;
}
case SUMMON_SOULSHOT:
{
_owner.sendPacket(new ExAutoSoulShot(item.getId(), 0, 2));
break;
}
case SUMMON_SPIRITSHOT:
{
_owner.sendPacket(new ExAutoSoulShot(item.getId(), 0, 3));
break;
}
}
}
@@ -240,11 +233,7 @@ public class ShortCuts implements IRestorable
{
final int slot = rset.getInt("slot");
final int page = rset.getInt("page");
final int type = rset.getInt("type");
final int id = rset.getInt("shortcut_id");
final int level = rset.getInt("level");
_shortCuts.put(slot + (page * MAX_SHORTCUTS_PER_BAR), new Shortcut(slot, page, ShortcutType.values()[type], id, level, 1));
_shortCuts.put(slot + (page * MAX_SHORTCUTS_PER_BAR), new Shortcut(slot, page, ShortcutType.values()[rset.getInt("type")], rset.getInt("shortcut_id"), rset.getInt("level"), 1));
}
}
}

View File

@@ -501,11 +501,7 @@ public class StatsSet implements IParserAdvUtils
public String getString(String key, String defaultValue)
{
final Object val = _set.get(key);
if (val == null)
{
return defaultValue;
}
return String.valueOf(val);
return val == null ? defaultValue : String.valueOf(val);
}
@Override
@@ -523,11 +519,7 @@ public class StatsSet implements IParserAdvUtils
public Duration getDuration(String key, Duration defaultValue)
{
final Object val = _set.get(key);
if (val == null)
{
return defaultValue;
}
return TimeUtil.parseDuration(String.valueOf(val));
return val == null ? defaultValue : TimeUtil.parseDuration(String.valueOf(val));
}
@Override
@@ -580,35 +572,20 @@ public class StatsSet implements IParserAdvUtils
public final <A> A getObject(String name, Class<A> type)
{
final Object obj = _set.get(name);
if ((obj == null) || !type.isAssignableFrom(obj.getClass()))
{
return null;
}
return (A) obj;
return (obj == null) || !type.isAssignableFrom(obj.getClass()) ? null : (A) obj;
}
public SkillHolder getSkillHolder(String key)
{
final Object obj = _set.get(key);
if ((obj == null) || !(obj instanceof SkillHolder))
{
return null;
}
return (SkillHolder) obj;
return (obj == null) || !(obj instanceof SkillHolder) ? null : (SkillHolder) obj;
}
@SuppressWarnings("unchecked")
public List<MinionHolder> getMinionList(String key)
{
final Object obj = _set.get(key);
if ((obj == null) || !(obj instanceof List<?>))
{
return Collections.emptyList();
}
return (List<MinionHolder>) obj;
return (obj == null) || !(obj instanceof List<?>) ? Collections.emptyList() : (List<MinionHolder>) obj;
}
public void set(String name, Object value)

View File

@@ -156,11 +156,7 @@ public class TradeList
{
if (exclItem.getItem().getId() == item.getId())
{
if (item.getCount() <= exclItem.getCount())
{
return null;
}
return new TradeItem(item, item.getCount() - exclItem.getCount(), item.getReferencePrice());
return item.getCount() <= exclItem.getCount() ? null : new TradeItem(item, item.getCount() - exclItem.getCount(), item.getReferencePrice());
}
}
}
@@ -446,11 +442,7 @@ public class TradeList
{
partnerList.lock();
lock();
if (!partnerList.validate())
{
return false;
}
if (!validate())
if (!partnerList.validate() || !validate())
{
return false;
}
@@ -642,24 +634,8 @@ public class TradeList
partnerList.TransferItems(getOwner(), partnerIU, ownerIU);
TransferItems(partnerList.getOwner(), ownerIU, partnerIU);
// Send inventory update packet
if (ownerIU != null)
{
_owner.sendPacket(ownerIU);
}
else
{
_owner.sendPacket(new ItemList(_owner, false));
}
if (partnerIU != null)
{
_partner.sendPacket(partnerIU);
}
else
{
_partner.sendPacket(new ItemList(_partner, false));
}
_owner.sendPacket(ownerIU != null ? ownerIU : new ItemList(_owner, false));
_partner.sendPacket(partnerIU != null ? partnerIU : new ItemList(_partner, false));
// Update current load as well
_owner.sendPacket(new ExUserInfoInvenWeight(_owner));
@@ -859,42 +835,36 @@ public class TradeList
}
// Send messages about the transaction to both players
SystemMessage msg;
if (newItem.isStackable())
{
SystemMessage msg = SystemMessage.getSystemMessage(SystemMessageId.C1_PURCHASED_S3_S2_S);
msg = SystemMessage.getSystemMessage(SystemMessageId.C1_PURCHASED_S3_S2_S);
msg.addString(player.getName());
msg.addItemName(newItem);
msg.addLong(item.getCount());
_owner.sendPacket(msg);
msg = SystemMessage.getSystemMessage(SystemMessageId.YOU_HAVE_PURCHASED_S3_S2_S_FROM_C1);
msg.addString(_owner.getName());
msg.addItemName(newItem);
msg.addLong(item.getCount());
player.sendPacket(msg);
}
else
{
SystemMessage msg = SystemMessage.getSystemMessage(SystemMessageId.C1_PURCHASED_S2);
msg = SystemMessage.getSystemMessage(SystemMessageId.C1_PURCHASED_S2);
msg.addString(player.getName());
msg.addItemName(newItem);
_owner.sendPacket(msg);
msg = SystemMessage.getSystemMessage(SystemMessageId.YOU_HAVE_PURCHASED_S2_FROM_C1);
msg.addString(_owner.getName());
msg.addItemName(newItem);
player.sendPacket(msg);
}
player.sendPacket(msg);
}
// Send inventory update packet
_owner.sendPacket(ownerIU);
player.sendPacket(playerIU);
if (ok)
{
return 0;
}
return 2;
return ok ? 0 : 2;
}
/**
@@ -905,12 +875,7 @@ public class TradeList
*/
public synchronized boolean privateStoreSell(L2PcInstance player, ItemRequest[] items)
{
if (_locked)
{
return false;
}
if (!_owner.isOnline() || !player.isOnline())
if (_locked || !_owner.isOnline() || !player.isOnline())
{
return false;
}
@@ -1037,32 +1002,30 @@ public class TradeList
}
// Send messages about the transaction to both players
SystemMessage msg;
if (newItem.isStackable())
{
SystemMessage msg = SystemMessage.getSystemMessage(SystemMessageId.YOU_HAVE_PURCHASED_S3_S2_S_FROM_C1);
msg = SystemMessage.getSystemMessage(SystemMessageId.YOU_HAVE_PURCHASED_S3_S2_S_FROM_C1);
msg.addString(player.getName());
msg.addItemName(newItem);
msg.addLong(item.getCount());
_owner.sendPacket(msg);
msg = SystemMessage.getSystemMessage(SystemMessageId.C1_PURCHASED_S3_S2_S);
msg.addString(_owner.getName());
msg.addItemName(newItem);
msg.addLong(item.getCount());
player.sendPacket(msg);
}
else
{
SystemMessage msg = SystemMessage.getSystemMessage(SystemMessageId.YOU_HAVE_PURCHASED_S2_FROM_C1);
msg = SystemMessage.getSystemMessage(SystemMessageId.YOU_HAVE_PURCHASED_S2_FROM_C1);
msg.addString(player.getName());
msg.addItemName(newItem);
_owner.sendPacket(msg);
msg = SystemMessage.getSystemMessage(SystemMessageId.C1_PURCHASED_S2);
msg.addString(_owner.getName());
msg.addItemName(newItem);
player.sendPacket(msg);
}
player.sendPacket(msg);
}
if (totalPrice > 0)

View File

@@ -187,12 +187,7 @@ public class UIKeysSettings
while (rs.next())
{
final int cat = rs.getInt("cat");
final int cmd = rs.getInt("cmd");
final int key = rs.getInt("key");
final int tgKey1 = rs.getInt("tgKey1");
final int tgKey2 = rs.getInt("tgKey2");
final int show = rs.getInt("show");
UIData.addKey(_storedKeys, cat, new ActionKey(cat, cmd, key, tgKey1, tgKey2, show));
UIData.addKey(_storedKeys, cat, new ActionKey(cat, rs.getInt("cmd"), rs.getInt("key"), rs.getInt("tgKey1"), rs.getInt("tgKey2"), rs.getInt("show")));
}
}
}

View File

@@ -202,12 +202,7 @@ public class L2Attackable extends L2Npc
*/
public void useMagic(Skill skill)
{
if ((skill == null) || isAlikeDead() || skill.isPassive() || isCastingNow() || isSkillDisabled(skill))
{
return;
}
if ((getCurrentMp() < (getStat().getMpConsume(skill) + getStat().getMpInitialConsume(skill))) || (getCurrentHp() <= skill.getHpConsume()))
if ((skill == null) || isAlikeDead() || skill.isPassive() || isCastingNow() || isSkillDisabled(skill) || (getCurrentMp() < (getStat().getMpConsume(skill) + getStat().getMpInitialConsume(skill))) || (getCurrentHp() <= skill.getHpConsume()))
{
return;
}
@@ -351,8 +346,7 @@ public class L2Attackable extends L2Npc
final int hpRestore = (int) killer.getStat().calcStat(Stats.HP_RESTORE_ON_KILL, 0, null, null);
if (hpRestore > 0)
{
double amount = (killer.getMaxHp() * hpRestore) / 100;
amount = Math.max(Math.min(amount, killer.getMaxRecoverableHp() - killer.getCurrentHp()), 0);
final double amount = Math.max(Math.min(((killer.getMaxHp() * hpRestore) / 100), killer.getMaxRecoverableHp() - killer.getCurrentHp()), 0);
if (amount != 0)
{
killer.setCurrentHp(amount + killer.getCurrentHp());
@@ -366,8 +360,7 @@ public class L2Attackable extends L2Npc
final L2MonsterInstance mob = (L2MonsterInstance) this;
if ((mob.getLeader() != null) && mob.getLeader().hasMinions())
{
final int respawnTime = Config.MINIONS_RESPAWN_TIME.containsKey(getId()) ? Config.MINIONS_RESPAWN_TIME.get(getId()) * 1000 : -1;
mob.getLeader().getMinionList().onMinionDie(mob, respawnTime);
mob.getLeader().getMinionList().onMinionDie(mob, (Config.MINIONS_RESPAWN_TIME.containsKey(getId()) ? Config.MINIONS_RESPAWN_TIME.get(getId()) * 1000 : -1));
}
if (mob.hasMinions())
@@ -571,14 +564,7 @@ public class L2Attackable extends L2Npc
if (partyPlayer.getLevel() > partyLvl)
{
if (attackerParty.isInCommandChannel())
{
partyLvl = attackerParty.getCommandChannel().getLevel();
}
else
{
partyLvl = partyPlayer.getLevel();
}
partyLvl = attackerParty.isInCommandChannel() ? attackerParty.getCommandChannel().getLevel() : partyPlayer.getLevel();
}
}
rewards.remove(partyPlayer); // Remove the L2PcInstance from the L2Attackable rewards
@@ -592,14 +578,7 @@ public class L2Attackable extends L2Npc
rewardedMembers.add(partyPlayer);
if (partyPlayer.getLevel() > partyLvl)
{
if (attackerParty.isInCommandChannel())
{
partyLvl = attackerParty.getCommandChannel().getLevel();
}
else
{
partyLvl = partyPlayer.getLevel();
}
partyLvl = attackerParty.isInCommandChannel() ? attackerParty.getCommandChannel().getLevel() : partyPlayer.getLevel();
}
}
}
@@ -1037,32 +1016,34 @@ public class L2Attackable extends L2Npc
}
// Apply Special Item drop with random(rnd) quantity(qty) for champions.
if (Config.L2JMOD_CHAMPION_ENABLE && isChampion() && ((Config.L2JMOD_CHAMPION_REWARD_LOWER_LVL_ITEM_CHANCE > 0) || (Config.L2JMOD_CHAMPION_REWARD_HIGHER_LVL_ITEM_CHANCE > 0)))
if (!Config.L2JMOD_CHAMPION_ENABLE || !isChampion() || ((Config.L2JMOD_CHAMPION_REWARD_LOWER_LVL_ITEM_CHANCE <= 0) && (Config.L2JMOD_CHAMPION_REWARD_HIGHER_LVL_ITEM_CHANCE <= 0)))
{
int champqty = Rnd.get(Config.L2JMOD_CHAMPION_REWARD_QTY);
final ItemHolder item = new ItemHolder(Config.L2JMOD_CHAMPION_REWARD_ID, ++champqty);
if ((player.getLevel() <= getLevel()) && (Rnd.get(100) < Config.L2JMOD_CHAMPION_REWARD_LOWER_LVL_ITEM_CHANCE))
return;
}
int champqty = Rnd.get(Config.L2JMOD_CHAMPION_REWARD_QTY);
final ItemHolder item = new ItemHolder(Config.L2JMOD_CHAMPION_REWARD_ID, ++champqty);
if ((player.getLevel() <= getLevel()) && (Rnd.get(100) < Config.L2JMOD_CHAMPION_REWARD_LOWER_LVL_ITEM_CHANCE))
{
if (Config.AUTO_LOOT || isFlying())
{
if (Config.AUTO_LOOT || isFlying())
{
player.addItem("ChampionLoot", item.getId(), item.getCount(), this, true); // Give the item(s) to the L2PcInstance that has killed the L2Attackable
}
else
{
dropItem(player, item);
}
player.addItem("ChampionLoot", item.getId(), item.getCount(), this, true); // Give the item(s) to the L2PcInstance that has killed the L2Attackable
}
else if ((player.getLevel() > getLevel()) && (Rnd.get(100) < Config.L2JMOD_CHAMPION_REWARD_HIGHER_LVL_ITEM_CHANCE))
else
{
if (Config.AUTO_LOOT || isFlying())
{
player.addItem("ChampionLoot", item.getId(), item.getCount(), this, true); // Give the item(s) to the L2PcInstance that has killed the L2Attackable
}
else
{
dropItem(player, item);
}
dropItem(player, item);
}
}
else if ((player.getLevel() > getLevel()) && (Rnd.get(100) < Config.L2JMOD_CHAMPION_REWARD_HIGHER_LVL_ITEM_CHANCE))
{
if (Config.AUTO_LOOT || isFlying())
{
player.addItem("ChampionLoot", item.getId(), item.getCount(), this, true); // Give the item(s) to the L2PcInstance that has killed the L2Attackable
}
else
{
dropItem(player, item);
}
}
}
@@ -1091,12 +1072,7 @@ public class L2Attackable extends L2Npc
final L2PcInstance player = lastAttacker.getActingPlayer();
// Don't drop anything if the last attacker or owner isn't L2PcInstance
if (player == null)
{
return;
}
if ((player.getLevel() - getLevel()) > 9)
if ((player == null) || ((player.getLevel() - getLevel()) > 9))
{
return;
}
@@ -1202,15 +1178,15 @@ public class L2Attackable extends L2Npc
*/
public boolean isOldCorpse(L2PcInstance attacker, int remainingTime, boolean sendMessage)
{
if (isDead() && (DecayTaskManager.getInstance().getRemainingTime(this) < remainingTime))
if (!isDead() || (DecayTaskManager.getInstance().getRemainingTime(this) >= remainingTime))
{
if (sendMessage && (attacker != null))
{
attacker.sendPacket(SystemMessageId.THE_CORPSE_IS_TOO_OLD_THE_SKILL_CANNOT_BE_USED);
}
return true;
return false;
}
return false;
if (sendMessage && (attacker != null))
{
attacker.sendPacket(SystemMessageId.THE_CORPSE_IS_TOO_OLD_THE_SKILL_CANNOT_BE_USED);
}
return true;
}
/**
@@ -1220,15 +1196,15 @@ public class L2Attackable extends L2Npc
*/
public boolean checkSpoilOwner(L2PcInstance sweeper, boolean sendMessage)
{
if ((sweeper.getObjectId() != getSpoilerObjectId()) && !sweeper.isInLooterParty(getSpoilerObjectId()))
if ((sweeper.getObjectId() == getSpoilerObjectId()) || sweeper.isInLooterParty(getSpoilerObjectId()))
{
if (sendMessage)
{
sweeper.sendPacket(SystemMessageId.THERE_ARE_NO_PRIORITY_RIGHTS_ON_A_SWEEPER);
}
return false;
return true;
}
return true;
if (sendMessage)
{
sweeper.sendPacket(SystemMessageId.THERE_ARE_NO_PRIORITY_RIGHTS_ON_A_SWEEPER);
}
return false;
}
/**
@@ -1407,13 +1383,7 @@ public class L2Attackable extends L2Npc
overhitPercentage = 25;
}
// Get the overhit exp bonus according to the above over-hit damage percentage
// (1/1 basis - 13% of over-hit damage, 13% of extra exp is given, and so on...)
final double overhitExp = ((overhitPercentage / 100) * normalExp);
// Return the rounded ammount of exp points to be added to the player's normal exp reward
final long bonusOverhit = Math.round(overhitExp);
return bonusOverhit;
return Math.round(((overhitPercentage / 100) * normalExp));
}
/**
@@ -1448,12 +1418,9 @@ public class L2Attackable extends L2Npc
setWalking();
// check the region where this mob is, do not activate the AI if region is inactive.
if (!isInActiveRegion())
if (!isInActiveRegion() && hasAI())
{
if (hasAI())
{
getAI().stopAITask();
}
getAI().stopAITask();
}
}
@@ -1490,66 +1457,67 @@ public class L2Attackable extends L2Npc
*/
public final void setSeeded(L2PcInstance seeder)
{
if ((_seed != null) && (_seederObjId == seeder.getObjectId()))
if ((_seed == null) || (_seederObjId != seeder.getObjectId()))
{
_seeded = true;
int count = 1;
for (int skillId : getTemplate().getSkills().keySet())
return;
}
_seeded = true;
int count = 1;
for (int skillId : getTemplate().getSkills().keySet())
{
switch (skillId)
{
switch (skillId)
case 4303: // Strong type x2
{
case 4303: // Strong type x2
{
count *= 2;
break;
}
case 4304: // Strong type x3
{
count *= 3;
break;
}
case 4305: // Strong type x4
{
count *= 4;
break;
}
case 4306: // Strong type x5
{
count *= 5;
break;
}
case 4307: // Strong type x6
{
count *= 6;
break;
}
case 4308: // Strong type x7
{
count *= 7;
break;
}
case 4309: // Strong type x8
{
count *= 8;
break;
}
case 4310: // Strong type x9
{
count *= 9;
break;
}
count *= 2;
break;
}
case 4304: // Strong type x3
{
count *= 3;
break;
}
case 4305: // Strong type x4
{
count *= 4;
break;
}
case 4306: // Strong type x5
{
count *= 5;
break;
}
case 4307: // Strong type x6
{
count *= 6;
break;
}
case 4308: // Strong type x7
{
count *= 7;
break;
}
case 4309: // Strong type x8
{
count *= 8;
break;
}
case 4310: // Strong type x9
{
count *= 9;
break;
}
}
// hi-lvl mobs bonus
final int diff = getLevel() - _seed.getLevel() - 5;
if (diff > 0)
{
count += diff;
}
_harvestItem.set(new ItemHolder(_seed.getCropId(), count * Config.RATE_DROP_MANOR));
}
// hi-lvl mobs bonus
final int diff = getLevel() - _seed.getLevel() - 5;
if (diff > 0)
{
count += diff;
}
_harvestItem.set(new ItemHolder(_seed.getCropId(), count * Config.RATE_DROP_MANOR));
}
/**
@@ -1559,11 +1527,12 @@ public class L2Attackable extends L2Npc
*/
public final void setSeeded(L2Seed seed, L2PcInstance seeder)
{
if (!_seeded)
if (_seeded)
{
_seed = seed;
_seederObjId = seeder.getObjectId();
return;
}
_seed = seed;
_seederObjId = seeder.getObjectId();
}
public final int getSeederId()
@@ -1655,13 +1624,9 @@ public class L2Attackable extends L2Npc
}
final float divider = (getLevel() > 0) && (getExpReward() > 0) ? (getTemplate().getBaseHpMax() * 9 * getLevel() * getLevel()) / (100 * getExpReward()) : 0;
if (divider == 0)
{
return 0;
}
// negative value - vitality will be consumed
return (int) (-Math.min(damage, getMaxHp()) / divider);
return divider == 0 ? 0 : (int) (-Math.min(damage, getMaxHp()) / divider);
}
/*
@@ -1669,12 +1634,7 @@ public class L2Attackable extends L2Npc
*/
public boolean useVitalityRate()
{
if (isChampion() && !Config.L2JMOD_CHAMPION_ENABLE_VITALITY)
{
return false;
}
return true;
return (!isChampion() || Config.L2JMOD_CHAMPION_ENABLE_VITALITY);
}
/** Return True if the L2Character is RaidBoss or his minion. */

View File

@@ -16,8 +16,6 @@
*/
package com.l2jmobius.gameserver.model.actor;
import java.util.Collection;
import com.l2jmobius.gameserver.enums.InstanceType;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.actor.templates.L2CharTemplate;
@@ -57,9 +55,7 @@ public abstract class L2Decoy extends L2Character
@Override
public void updateAbnormalVisualEffects()
{
final Collection<L2PcInstance> plrs = getKnownList().getKnownPlayers().values();
for (L2PcInstance player : plrs)
for (L2PcInstance player : getKnownList().getKnownPlayers().values())
{
if (player != null)
{
@@ -130,16 +126,17 @@ public abstract class L2Decoy extends L2Character
public synchronized void unSummon(L2PcInstance owner)
{
if (isVisible() && !isDead())
if (!isVisible() || isDead())
{
if (getWorldRegion() != null)
{
getWorldRegion().removeFromZones(this);
}
owner.setDecoy(null);
decayMe();
getKnownList().removeAllKnownObjects();
return;
}
if (getWorldRegion() != null)
{
getWorldRegion().removeFromZones(this);
}
owner.setDecoy(null);
decayMe();
getKnownList().removeAllKnownObjects();
}
public final L2PcInstance getOwner()

View File

@@ -433,9 +433,7 @@ public class L2Npc extends L2Character
@Override
public void updateAbnormalVisualEffects()
{
// Send a Server->Client packet NpcInfo with state of abnormal effect to all L2PcInstance in the _KnownPlayers of the L2NpcInstance
final Collection<L2PcInstance> plrs = getKnownList().getKnownPlayers().values();
for (L2PcInstance player : plrs)
for (L2PcInstance player : getKnownList().getKnownPlayers().values())
{
if ((player == null) || !isVisibleFor(player))
{
@@ -541,15 +539,13 @@ public class L2Npc extends L2Character
player.sendPacket(ActionFailed.STATIC_PACKET);
return false;
}
if (player.isLockedTarget() && (player.getLockedTarget() != this))
if (!player.isLockedTarget() || (player.getLockedTarget() == this))
{
player.sendPacket(SystemMessageId.FAILED_TO_CHANGE_ENMITY);
player.sendPacket(ActionFailed.STATIC_PACKET);
return false;
return true;
}
// TODO: More checks...
return true;
player.sendPacket(SystemMessageId.FAILED_TO_CHANGE_ENMITY);
player.sendPacket(ActionFailed.STATIC_PACKET);
return false;
}
public boolean canInteract(L2PcInstance player)
@@ -647,13 +643,7 @@ public class L2Npc extends L2Character
public final Castle getCastle(long maxDistance)
{
final int index = CastleManager.getInstance().findNearestCastleIndex(this, maxDistance);
if (index < 0)
{
return null;
}
return CastleManager.getInstance().getCastles().get(index);
return index < 0 ? null : CastleManager.getInstance().getCastles().get(index);
}
/**
@@ -676,12 +666,7 @@ public class L2Npc extends L2Character
}
}
if (_fortIndex < 0)
{
return null;
}
return FortManager.getInstance().getForts().get(_fortIndex);
return _fortIndex < 0 ? null : FortManager.getInstance().getForts().get(_fortIndex);
}
/**
@@ -692,13 +677,7 @@ public class L2Npc extends L2Character
public final Fort getFort(long maxDistance)
{
final int index = FortManager.getInstance().findNearestFortIndex(this, maxDistance);
if (index < 0)
{
return null;
}
return FortManager.getInstance().getForts().get(index);
return index < 0 ? null : FortManager.getInstance().getForts().get(index);
}
public final boolean getIsInTown()
@@ -776,12 +755,7 @@ public class L2Npc extends L2Character
// Get the weapon item equipped in the right hand of the L2NpcInstance
final L2Item item = ItemTable.getInstance().getTemplate(getTemplate().getRHandId());
if (!(item instanceof L2Weapon))
{
return null;
}
return (L2Weapon) item;
return !(item instanceof L2Weapon) ? null : (L2Weapon) item;
}
/**
@@ -809,12 +783,7 @@ public class L2Npc extends L2Character
// Get the weapon item equipped in the right hand of the L2NpcInstance
final L2Item item = ItemTable.getInstance().getTemplate(getTemplate().getLHandId());
if (!(item instanceof L2Weapon))
{
return null;
}
return (L2Weapon) item;
return !(item instanceof L2Weapon) ? null : (L2Weapon) item;
}
/**
@@ -842,16 +811,7 @@ public class L2Npc extends L2Character
*/
public String getHtmlPath(int npcId, int val)
{
String pom = "";
if (val == 0)
{
pom = "" + npcId;
}
else
{
pom = npcId + "-" + val;
}
final String pom = val == 0 ? "" + npcId : npcId + "-" + val;
final String temp = "html/default/" + pom + ".htm";
@@ -889,13 +849,13 @@ public class L2Npc extends L2Character
private boolean showPkDenyChatWindow(L2PcInstance player, String type)
{
final String html = HtmCache.getInstance().getHtm(player.getHtmlPrefix(), "html/" + type + "/" + getId() + "-pk.htm");
if (html != null)
if (html == null)
{
insertObjectIdAndShowChatWindow(player, html);
player.sendPacket(ActionFailed.STATIC_PACKET);
return true;
return false;
}
return false;
insertObjectIdAndShowChatWindow(player, html);
player.sendPacket(ActionFailed.STATIC_PACKET);
return true;
}
/**
@@ -965,14 +925,7 @@ public class L2Npc extends L2Character
{
case 31688:
{
if (player.isNoble())
{
filename = Olympiad.OLYMPIAD_HTML_PATH + "noble_main.htm";
}
else
{
filename = (getHtmlPath(npcId, val));
}
filename = player.isNoble() ? Olympiad.OLYMPIAD_HTML_PATH + "noble_main.htm" : getHtmlPath(npcId, val);
break;
}
case 31690:
@@ -981,38 +934,17 @@ public class L2Npc extends L2Character
case 31771:
case 31772:
{
if (player.isHero() || player.isNoble())
{
filename = Olympiad.OLYMPIAD_HTML_PATH + "hero_main.htm";
}
else
{
filename = (getHtmlPath(npcId, val));
}
filename = player.isHero() || player.isNoble() ? Olympiad.OLYMPIAD_HTML_PATH + "hero_main.htm" : getHtmlPath(npcId, val);
break;
}
case 36402:
{
if (player.getOlympiadBuffCount() > 0)
{
filename = (player.getOlympiadBuffCount() == Config.ALT_OLY_MAX_BUFFS ? Olympiad.OLYMPIAD_HTML_PATH + "olympiad_buffs.htm" : Olympiad.OLYMPIAD_HTML_PATH + "olympiad_5buffs.htm");
}
else
{
filename = Olympiad.OLYMPIAD_HTML_PATH + "olympiad_nobuffs.htm";
}
filename = player.getOlympiadBuffCount() > 0 ? player.getOlympiadBuffCount() == Config.ALT_OLY_MAX_BUFFS ? Olympiad.OLYMPIAD_HTML_PATH + "olympiad_buffs.htm" : Olympiad.OLYMPIAD_HTML_PATH + "olympiad_5buffs.htm" : Olympiad.OLYMPIAD_HTML_PATH + "olympiad_nobuffs.htm";
break;
}
case 30298: // Blacksmith Pinter
{
if (player.isAcademyMember())
{
filename = (getHtmlPath(npcId, 1));
}
else
{
filename = (getHtmlPath(npcId, val));
}
filename = player.isAcademyMember() ? getHtmlPath(npcId, 1) : getHtmlPath(npcId, val);
break;
}
default:
@@ -1031,12 +963,9 @@ public class L2Npc extends L2Character
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
html.setFile(player.getHtmlPrefix(), filename);
if (this instanceof L2MerchantInstance)
if ((this instanceof L2MerchantInstance) && Config.LIST_PET_RENT_NPC.contains(npcId))
{
if (Config.LIST_PET_RENT_NPC.contains(npcId))
{
html.replace("_Quest", "_RentPet\">Rent Pet</a><br><a action=\"bypass -h npc_%objectId%_Quest");
}
html.replace("_Quest", "_RentPet\">Rent Pet</a><br><a action=\"bypass -h npc_%objectId%_Quest");
}
html.replace("%objectId%", String.valueOf(getObjectId()));
@@ -1265,11 +1194,12 @@ public class L2Npc extends L2Character
public void endDecayTask()
{
if (!isDecayed())
if (isDecayed())
{
DecayTaskManager.getInstance().cancel(this);
onDecay();
return;
}
DecayTaskManager.getInstance().cancel(this);
onDecay();
}
public boolean isMob() // rather delete this check
@@ -1338,21 +1268,23 @@ public class L2Npc extends L2Character
@Override
public void sendInfo(L2PcInstance activeChar)
{
if (isVisibleFor(activeChar))
if (!isVisibleFor(activeChar))
{
if (Config.CHECK_KNOWN && activeChar.isGM())
{
activeChar.sendMessage("Added NPC: " + getName());
}
if (getRunSpeed() == 0)
{
activeChar.sendPacket(new ServerObjectInfo(this, activeChar));
}
else
{
activeChar.sendPacket(new NpcInfo(this));
}
return;
}
if (Config.CHECK_KNOWN && activeChar.isGM())
{
activeChar.sendMessage("Added NPC: " + getName());
}
if (getRunSpeed() == 0)
{
activeChar.sendPacket(new ServerObjectInfo(this, activeChar));
}
else
{
activeChar.sendPacket(new NpcInfo(this));
}
}
@@ -1423,11 +1355,12 @@ public class L2Npc extends L2Character
public void setDisplayEffect(int val)
{
if (val != _displayEffect)
if (val == _displayEffect)
{
_displayEffect = val;
broadcastPacket(new ExChangeNpcState(getObjectId(), val));
return;
}
_displayEffect = val;
broadcastPacket(new ExChangeNpcState(getObjectId(), val));
}
public int getDisplayEffect()
@@ -1484,37 +1417,27 @@ public class L2Npc extends L2Character
@Override
public void rechargeShots(boolean physical, boolean magic)
{
if ((_soulshotamount > 0) || (_spiritshotamount > 0))
if ((_soulshotamount <= 0) && (_spiritshotamount <= 0))
{
if (physical)
{
if (_soulshotamount == 0)
{
return;
}
else if (Rnd.get(100) > getSoulShotChance())
{
return;
}
_soulshotamount--;
Broadcast.toSelfAndKnownPlayersInRadius(this, new MagicSkillUse(this, this, 2154, 1, 0, 0), 600);
setChargedShot(ShotType.SOULSHOTS, true);
}
if (magic)
{
if (_spiritshotamount == 0)
{
return;
}
else if (Rnd.get(100) > getSpiritShotChance())
{
return;
}
_spiritshotamount--;
Broadcast.toSelfAndKnownPlayersInRadius(this, new MagicSkillUse(this, this, 2061, 1, 0, 0), 600);
setChargedShot(ShotType.SPIRITSHOTS, true);
}
return;
}
if (physical)
{
if ((_soulshotamount == 0) || (Rnd.get(100) > getSoulShotChance()))
{
return;
}
_soulshotamount--;
Broadcast.toSelfAndKnownPlayersInRadius(this, new MagicSkillUse(this, this, 2154, 1, 0, 0), 600);
setChargedShot(ShotType.SOULSHOTS, true);
}
if (!magic || (_spiritshotamount == 0) || (Rnd.get(100) > getSpiritShotChance()))
{
return;
}
_spiritshotamount--;
Broadcast.toSelfAndKnownPlayersInRadius(this, new MagicSkillUse(this, this, 2061, 1, 0, 0), 600);
setChargedShot(ShotType.SPIRITSHOTS, true);
}
/**
@@ -1681,12 +1604,9 @@ public class L2Npc extends L2Character
item.dropMe(this, newX, newY, newZ);
// Add drop to auto destroy item task.
if (!Config.LIST_PROTECTED_ITEMS.contains(itemId))
if (!Config.LIST_PROTECTED_ITEMS.contains(itemId) && (((Config.AUTODESTROY_ITEM_AFTER > 0) && !item.getItem().hasExImmediateEffect()) || ((Config.HERB_AUTO_DESTROY_TIME > 0) && item.getItem().hasExImmediateEffect())))
{
if (((Config.AUTODESTROY_ITEM_AFTER > 0) && !item.getItem().hasExImmediateEffect()) || ((Config.HERB_AUTO_DESTROY_TIME > 0) && item.getItem().hasExImmediateEffect()))
{
ItemsAutoDestroy.getInstance().addItem(item);
}
ItemsAutoDestroy.getInstance().addItem(item);
}
item.setProtected(false);
@@ -1815,11 +1735,7 @@ public class L2Npc extends L2Character
*/
public final L2Npc getSummonedNpc(int objectId)
{
if (_summonedNpcs != null)
{
return _summonedNpcs.get(objectId);
}
return null;
return _summonedNpcs != null ? _summonedNpcs.get(objectId) : null;
}
/**

View File

@@ -402,63 +402,65 @@ public abstract class L2Summon extends L2Playable
public void unSummon(L2PcInstance owner)
{
if (isVisible() && !isDead())
if (!isVisible() || isDead())
{
getAI().stopFollow();
if (owner != null)
return;
}
getAI().stopFollow();
if (owner != null)
{
owner.sendPacket(new PetDelete(getSummonType(), getObjectId()));
final L2Party party = owner.getParty();
if (party != null)
{
owner.sendPacket(new PetDelete(getSummonType(), getObjectId()));
final L2Party party = owner.getParty();
if (party != null)
{
party.broadcastToPartyMembers(owner, new ExPartyPetWindowDelete(this));
}
if ((getInventory() != null) && (getInventory().getSize() > 0))
{
getOwner().setPetInvItems(true);
sendPacket(SystemMessageId.THERE_ARE_ITEMS_IN_YOUR_PET_INVENTORY_RENDERING_YOU_UNABLE_TO_SELL_TRADE_DROP_PET_SUMMONING_ITEMS_PLEASE_EMPTY_YOUR_PET_INVENTORY);
}
else
{
getOwner().setPetInvItems(false);
}
}
abortAttack();
abortCast();
storeMe();
storeEffect(true);
if (owner != null)
{
if (isPet())
{
owner.setPet(null);
}
else
{
owner.removeServitor(getObjectId());
}
party.broadcastToPartyMembers(owner, new ExPartyPetWindowDelete(this));
}
// Stop AI tasks
if (hasAI())
if ((getInventory() != null) && (getInventory().getSize() > 0))
{
getAI().stopAITask();
getOwner().setPetInvItems(true);
sendPacket(SystemMessageId.THERE_ARE_ITEMS_IN_YOUR_PET_INVENTORY_RENDERING_YOU_UNABLE_TO_SELL_TRADE_DROP_PET_SUMMONING_ITEMS_PLEASE_EMPTY_YOUR_PET_INVENTORY);
}
stopAllEffects();
final L2WorldRegion oldRegion = getWorldRegion();
decayMe();
if (oldRegion != null)
else
{
oldRegion.removeFromZones(this);
getOwner().setPetInvItems(false);
}
getKnownList().removeAllKnownObjects();
setTarget(null);
if (owner != null)
}
abortAttack();
abortCast();
storeMe();
storeEffect(true);
if (owner != null)
{
if (isPet())
{
owner.setUsedSummonPoints(owner.getUsedSummonPoints() - _summonPoints);
owner.setPet(null);
}
else
{
owner.removeServitor(getObjectId());
}
}
// Stop AI tasks
if (hasAI())
{
getAI().stopAITask();
}
stopAllEffects();
final L2WorldRegion oldRegion = getWorldRegion();
decayMe();
if (oldRegion != null)
{
oldRegion.removeFromZones(this);
}
getKnownList().removeAllKnownObjects();
setTarget(null);
if (owner != null)
{
owner.setUsedSummonPoints(owner.getUsedSummonPoints() - _summonPoints);
}
}
@@ -555,12 +557,7 @@ public abstract class L2Summon extends L2Playable
@Override
public L2Party getParty()
{
if (_owner == null)
{
return null;
}
return _owner.getParty();
return _owner == null ? null : _owner.getParty();
}
/**
@@ -590,21 +587,7 @@ public abstract class L2Summon extends L2Playable
@Override
public boolean useMagic(Skill skill, boolean forceUse, boolean dontMove)
{
// Null skill, dead summon or null owner are reasons to prevent casting.
if ((skill == null) || isDead() || (getOwner() == null))
{
return false;
}
// Check if the skill is active
if (skill.isPassive())
{
// just ignore the passive skill request. why does the client send it anyway ??
return false;
}
// If a skill is currently being used
if (isCastingNow())
if ((skill == null) || isDead() || (getOwner() == null) || skill.isPassive() || isCastingNow())
{
return false;
}
@@ -718,14 +701,8 @@ public abstract class L2Summon extends L2Playable
}
else
{
// Summons can cast skills on NPCs inside peace zones.
if (!target.canBeAttacked() && !getOwner().getAccessLevel().allowPeaceAttack())
{
return false;
}
// Check if a Forced attack is in progress on non-attackable target
if (!target.isAutoAttackable(this) && !forceUse && !target.isNpc() && (skill.getTargetType() != L2TargetType.AURA) && (skill.getTargetType() != L2TargetType.FRONT_AURA) && (skill.getTargetType() != L2TargetType.BEHIND_AURA) && (skill.getTargetType() != L2TargetType.CLAN) && (skill.getTargetType() != L2TargetType.PARTY) && (skill.getTargetType() != L2TargetType.SELF))
if ((!target.canBeAttacked() && !getOwner().getAccessLevel().allowPeaceAttack())//
|| (!target.isAutoAttackable(this) && !forceUse && !target.isNpc() && (skill.getTargetType() != L2TargetType.AURA) && (skill.getTargetType() != L2TargetType.FRONT_AURA) && (skill.getTargetType() != L2TargetType.BEHIND_AURA) && (skill.getTargetType() != L2TargetType.CLAN) && (skill.getTargetType() != L2TargetType.PARTY) && (skill.getTargetType() != L2TargetType.SELF)))
{
return false;
}
@@ -765,62 +742,56 @@ public abstract class L2Summon extends L2Playable
@Override
public void sendDamageMessage(L2Character target, int damage, boolean mcrit, boolean pcrit, boolean miss)
{
if (miss || (getOwner() == null))
if (miss || (getOwner() == null) || (target.getObjectId() == getOwner().getObjectId()))
{
return;
}
// Prevents the double spam of system messages, if the target is the owning player.
if (target.getObjectId() != getOwner().getObjectId())
if (pcrit || mcrit)
{
if (pcrit || mcrit)
if (isServitor())
{
if (isServitor())
{
sendPacket(SystemMessageId.SUMMONED_MONSTER_S_CRITICAL_HIT);
}
else
{
sendPacket(SystemMessageId.PET_S_CRITICAL_HIT);
}
}
if (getOwner().isInOlympiadMode() && (target instanceof L2PcInstance) && ((L2PcInstance) target).isInOlympiadMode() && (((L2PcInstance) target).getOlympiadGameId() == getOwner().getOlympiadGameId()))
{
OlympiadGameManager.getInstance().notifyCompetitorDamage(getOwner(), damage);
}
final SystemMessage sm;
if (target.isInvul() && !(target instanceof L2NpcInstance))
{
sm = SystemMessage.getSystemMessage(SystemMessageId.THE_ATTACK_HAS_BEEN_BLOCKED);
sendPacket(SystemMessageId.SUMMONED_MONSTER_S_CRITICAL_HIT);
}
else
{
sm = SystemMessage.getSystemMessage(SystemMessageId.C1_HAS_INFLICTED_S3_DAMAGE_ON_C2_S4);
sm.addNpcName(this);
sm.addCharName(target);
sm.addInt(damage);
sm.addPopup(target.getObjectId(), getObjectId(), (damage * -1));
sendPacket(SystemMessageId.PET_S_CRITICAL_HIT);
}
sendPacket(sm);
}
if (getOwner().isInOlympiadMode() && (target instanceof L2PcInstance) && ((L2PcInstance) target).isInOlympiadMode() && (((L2PcInstance) target).getOlympiadGameId() == getOwner().getOlympiadGameId()))
{
OlympiadGameManager.getInstance().notifyCompetitorDamage(getOwner(), damage);
}
final SystemMessage sm;
if (target.isInvul() && !(target instanceof L2NpcInstance))
{
sm = SystemMessage.getSystemMessage(SystemMessageId.THE_ATTACK_HAS_BEEN_BLOCKED);
}
else
{
sm = SystemMessage.getSystemMessage(SystemMessageId.C1_HAS_INFLICTED_S3_DAMAGE_ON_C2_S4);
sm.addNpcName(this);
sm.addCharName(target);
sm.addInt(damage);
sm.addPopup(target.getObjectId(), getObjectId(), (damage * -1));
}
sendPacket(sm);
}
@Override
public void reduceCurrentHp(double damage, L2Character attacker, Skill skill)
{
super.reduceCurrentHp(damage, attacker, skill);
if ((getOwner() != null) && (attacker != null))
if ((getOwner() == null) || (attacker == null))
{
final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.C1_HAS_RECEIVED_S3_DAMAGE_FROM_C2);
sm.addNpcName(this);
sm.addCharName(attacker);
sm.addInt((int) damage);
sendPacket(sm);
return;
}
final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.C1_HAS_RECEIVED_S3_DAMAGE_FROM_C2);
sm.addNpcName(this);
sm.addCharName(attacker);
sm.addInt((int) damage);
sendPacket(sm);
}
@Override
@@ -999,16 +970,13 @@ public abstract class L2Summon extends L2Playable
{
final L2PcInstance owner = getOwner();
final L2Object target = getOwner().getTarget();
if ((owner != null) && (target != null))
if ((owner == null) || (target == null)//
|| (Config.FACTION_SYSTEM_ENABLED && target.isPlayer() && ((owner.isGood() && target.getActingPlayer().isGood()) || (owner.isEvil() && target.getActingPlayer().isEvil()))))
{
if (Config.FACTION_SYSTEM_ENABLED && target.isPlayer() && ((owner.isGood() && target.getActingPlayer().isGood()) || (owner.isEvil() && target.getActingPlayer().isEvil())))
{
return;
}
setTarget(target);
getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, target);
return;
}
setTarget(target);
getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, target);
}
/**
@@ -1164,27 +1132,21 @@ public abstract class L2Summon extends L2Playable
if (item != null)
{
if (magic)
if (magic && (item.getItem().getDefaultAction() == ActionType.SUMMON_SPIRITSHOT))
{
if (item.getItem().getDefaultAction() == ActionType.SUMMON_SPIRITSHOT)
handler = ItemHandler.getInstance().getHandler(item.getEtcItem());
if (handler != null)
{
handler = ItemHandler.getInstance().getHandler(item.getEtcItem());
if (handler != null)
{
handler.useItem(getOwner(), item, false);
}
handler.useItem(getOwner(), item, false);
}
}
if (physical)
if (physical && (item.getItem().getDefaultAction() == ActionType.SUMMON_SOULSHOT))
{
if (item.getItem().getDefaultAction() == ActionType.SUMMON_SOULSHOT)
handler = ItemHandler.getInstance().getHandler(item.getEtcItem());
if (handler != null)
{
handler = ItemHandler.getInstance().getHandler(item.getEtcItem());
if (handler != null)
{
handler.useItem(getOwner(), item, false);
}
handler.useItem(getOwner(), item, false);
}
}
}

View File

@@ -65,13 +65,10 @@ public abstract class L2Tower extends L2Npc
// Set the target of the L2PcInstance player
player.setTarget(this);
}
else if (interact)
else if (interact && isAutoAttackable(player) && (Math.abs(player.getZ() - getZ()) < 100) && GeoData.getInstance().canSeeTarget(player, this))
{
if (isAutoAttackable(player) && (Math.abs(player.getZ() - getZ()) < 100) && GeoData.getInstance().canSeeTarget(player, this))
{
// Notify the L2PcInstance AI with AI_INTENTION_INTERACT
player.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, this);
}
// Notify the L2PcInstance AI with AI_INTENTION_INTERACT
player.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, this);
}
// Send a Server->Client ActionFailed to the L2PcInstance in order to avoid that the client wait another packet
player.sendPacket(ActionFailed.STATIC_PACKET);

View File

@@ -132,13 +132,7 @@ public abstract class L2Vehicle extends L2Character
final VehiclePathPoint point = _currentPath[_runState];
if (!isMovementDisabled())
{
if (point.getMoveSpeed() == 0)
{
point.setHeading(point.getRotationSpeed());
teleToLocation(point, false);
_currentPath = null;
}
else
if (point.getMoveSpeed() != 0)
{
if (point.getMoveSpeed() > 0)
{
@@ -171,6 +165,9 @@ public abstract class L2Vehicle extends L2Character
GameTimeController.getInstance().registerMovingObject(this);
return true;
}
point.setHeading(point.getRotationSpeed());
teleToLocation(point, false);
_currentPath = null;
}
}
else
@@ -241,13 +238,7 @@ public abstract class L2Vehicle extends L2Character
public boolean addPassenger(L2PcInstance player)
{
if ((player == null) || _passengers.contains(player))
{
return false;
}
// already in other vehicle
if ((player.getVehicle() != null) && (player.getVehicle() != this))
if ((player == null) || _passengers.contains(player) || ((player.getVehicle() != null) && (player.getVehicle() != this)))
{
return false;
}
@@ -299,33 +290,35 @@ public abstract class L2Vehicle extends L2Character
public void payForRide(int itemId, int count, int oustX, int oustY, int oustZ)
{
final Collection<L2PcInstance> passengers = getKnownList().getKnownPlayersInRadius(1000);
if ((passengers != null) && !passengers.isEmpty())
if ((passengers == null) || passengers.isEmpty())
{
L2ItemInstance ticket;
InventoryUpdate iu;
for (L2PcInstance player : passengers)
return;
}
L2ItemInstance ticket;
InventoryUpdate iu;
for (L2PcInstance player : passengers)
{
if (player == null)
{
if (player == null)
continue;
}
if (player.isInBoat() && (player.getBoat() == this))
{
if (itemId > 0)
{
continue;
}
if (player.isInBoat() && (player.getBoat() == this))
{
if (itemId > 0)
ticket = player.getInventory().getItemByItemId(itemId);
if ((ticket == null) || (player.getInventory().destroyItem("Boat", ticket, count, player, this) == null))
{
ticket = player.getInventory().getItemByItemId(itemId);
if ((ticket == null) || (player.getInventory().destroyItem("Boat", ticket, count, player, this) == null))
{
player.sendPacket(SystemMessageId.YOU_DO_NOT_POSSESS_THE_CORRECT_TICKET_TO_BOARD_THE_BOAT);
player.teleToLocation(new Location(oustX, oustY, oustZ), true);
continue;
}
iu = new InventoryUpdate();
iu.addModifiedItem(ticket);
player.sendPacket(iu);
player.sendPacket(SystemMessageId.YOU_DO_NOT_POSSESS_THE_CORRECT_TICKET_TO_BOARD_THE_BOAT);
player.teleToLocation(new Location(oustX, oustY, oustZ), true);
continue;
}
addPassenger(player);
iu = new InventoryUpdate();
iu.addModifiedItem(ticket);
player.sendPacket(iu);
}
addPassenger(player);
}
}
}

View File

@@ -69,11 +69,7 @@ public class PcAppearance
*/
public final String getVisibleName()
{
if (_visibleName == null)
{
return getOwner().getName();
}
return _visibleName;
return _visibleName == null ? getOwner().getName() : _visibleName;
}
/**
@@ -89,11 +85,7 @@ public class PcAppearance
*/
public final String getVisibleTitle()
{
if (_visibleTitle == null)
{
return getOwner().getTitle();
}
return _visibleTitle;
return _visibleTitle == null ? getOwner().getTitle() : _visibleTitle;
}
public final byte getFace()
@@ -171,11 +163,7 @@ public class PcAppearance
public int getNameColor()
{
if (_owner.getReputation() != 0)
{
return 0xFFFFFF; // Using 0xFFFFFF value in case _nameColor has changed.
}
return _nameColor;
return _owner.getReputation() != 0 ? 0xFFFFFF : _nameColor; // Using 0xFFFFFF value in case _nameColor has changed.
}
public void setNameColor(int nameColor)

View File

@@ -35,17 +35,6 @@ public class L2AdventurerInstance extends L2NpcInstance
@Override
public String getHtmlPath(int npcId, int val)
{
String pom = "";
if (val == 0)
{
pom = "" + npcId;
}
else
{
pom = npcId + "-" + val;
}
return "html/adventurer_guildsman/" + pom + ".htm";
return "html/adventurer_guildsman/" + (val == 0 ? "" + npcId : npcId + "-" + val) + ".htm";
}
}

View File

@@ -76,12 +76,7 @@ public final class L2AuctioneerInstance extends L2Npc
final StringTokenizer st = new StringTokenizer(command, " ");
final String actualCommand = st.nextToken(); // Get actual command
String val = "";
if (st.countTokens() >= 1)
{
val = st.nextToken();
}
final String val = st.countTokens() >= 1 ? st.nextToken() : "";
if (actualCommand.equalsIgnoreCase("auction"))
{
if (val.isEmpty())
@@ -95,12 +90,7 @@ public final class L2AuctioneerInstance extends L2Npc
try
{
final SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm");
long bid = 0;
if (st.countTokens() >= 1)
{
bid = Math.min(Long.parseLong(st.nextToken()), MAX_ADENA);
}
final long bid = st.countTokens() >= 1 ? Math.min(Long.parseLong(st.nextToken()), MAX_ADENA) : 0;
final Auction a = new Auction(player.getClan().getHideoutId(), player.getClan(), days * 86400000L, bid, ClanHallManager.getInstance().getClanHallByOwner(player.getClan()).getName());
if (_pendingAuctions.get(a.getId()) != null)
{
@@ -215,13 +205,7 @@ public final class L2AuctioneerInstance extends L2Npc
final int auctionId = Integer.parseInt(val);
try
{
long bid = 0;
if (st.countTokens() >= 1)
{
bid = Math.min(Long.parseLong(st.nextToken()), MAX_ADENA);
}
ClanHallAuctionManager.getInstance().getAuction(auctionId).setBid(player, bid);
ClanHallAuctionManager.getInstance().getAuction(auctionId).setBid(player, (st.countTokens() >= 1 ? Math.min(Long.parseLong(st.nextToken()), MAX_ADENA) : 0));
}
catch (Exception e)
{
@@ -325,21 +309,15 @@ public final class L2AuctioneerInstance extends L2Npc
{
continue;
}
if (i > limit)
{
break;
}
else if (i < start)
i++;
if (i < start)
{
i++;
continue;
}
else
{
i++;
}
items.append("<tr>");
items.append("<td>");
items.append(ClanHallManager.getInstance().getAuctionableHallById(a.getItemId()).getLocation());

View File

@@ -93,12 +93,7 @@ public final class L2BabyPetInstance extends L2PetInstance
}
final Skill skill = SkillData.getInstance().getSkill(id, lvl);
if (skill == null)
{
continue;
}
if ((skill.getId() == BUFF_CONTROL) || (skill.getId() == AWAKENING))
if ((skill == null) || (skill.getId() == BUFF_CONTROL) || (skill.getId() == AWAKENING))
{
continue;
}
@@ -208,11 +203,12 @@ public final class L2BabyPetInstance extends L2PetInstance
private final void stopCastTask()
{
if (_castTask != null)
if (_castTask == null)
{
_castTask.cancel(false);
_castTask = null;
return;
}
_castTask.cancel(false);
_castTask = null;
}
protected void castSkill(Skill skill)
@@ -285,26 +281,20 @@ public final class L2BabyPetInstance extends L2PetInstance
if ((isImprovedBaby && (hpPercent < 0.3)) || (!isImprovedBaby && (hpPercent < 0.15)))
{
skill = _majorHeal.getSkill();
if (!_baby.isSkillDisabled(skill) && (Rnd.get(100) <= 75))
if (!_baby.isSkillDisabled(skill) && (Rnd.get(100) <= 75) && (_baby.getCurrentMp() >= skill.getMpConsume()))
{
if (_baby.getCurrentMp() >= skill.getMpConsume())
{
castSkill(skill);
return;
}
castSkill(skill);
return;
}
}
else if ((_majorHeal.getSkill() != _minorHeal.getSkill()) && ((isImprovedBaby && (hpPercent < 0.7)) || (!isImprovedBaby && (hpPercent < 0.8))))
{
// Cast _minorHeal only if it's different than _majorHeal, then pet has two heals available.
skill = _minorHeal.getSkill();
if (!_baby.isSkillDisabled(skill) && (Rnd.get(100) <= 25))
if (!_baby.isSkillDisabled(skill) && (Rnd.get(100) <= 25) && (_baby.getCurrentMp() >= skill.getMpConsume()))
{
if (_baby.getCurrentMp() >= skill.getMpConsume())
{
castSkill(skill);
return;
}
castSkill(skill);
return;
}
}
}
@@ -318,25 +308,15 @@ public final class L2BabyPetInstance extends L2PetInstance
for (SkillHolder buff : _buffs)
{
skill = buff.getSkill();
if (_baby.isSkillDisabled(skill))
{
continue;
}
if (_baby.getCurrentMp() < skill.getMpConsume())
if (_baby.isSkillDisabled(skill) || (_baby.getCurrentMp() < skill.getMpConsume()))
{
continue;
}
// If owner already have the buff, continue.
final BuffInfo buffInfo = owner.getEffectList().getBuffInfoByAbnormalType(skill.getAbnormalType());
if ((buffInfo != null) && (skill.getAbnormalLvl() <= buffInfo.getSkill().getAbnormalLvl()))
{
continue;
}
// If owner have the buff blocked, continue.
if ((owner.getEffectList().getAllBlockedBuffSlots() != null) && owner.getEffectList().getAllBlockedBuffSlots().contains(skill.getAbnormalType()))
if (((buffInfo != null) && (skill.getAbnormalLvl() <= buffInfo.getSkill().getAbnormalLvl()))//
|| ((owner.getEffectList().getAllBlockedBuffSlots() != null) && owner.getEffectList().getAllBlockedBuffSlots().contains(skill.getAbnormalType())))
{
continue;
}

View File

@@ -56,22 +56,11 @@ public class L2BlockInstance extends L2MonsterInstance
synchronized (this)
{
final BlockCheckerEngine event = holder.getEvent();
if (_colorEffect == 0x53)
{
// Change color
_colorEffect = 0x00;
// BroadCast to all known players
broadcastPacket(new NpcInfo(this));
increaseTeamPointsAndSend(attacker, team, event);
}
else
{
// Change color
_colorEffect = 0x53;
// BroadCast to all known players
broadcastPacket(new NpcInfo(this));
increaseTeamPointsAndSend(attacker, team, event);
}
// Change color
_colorEffect = _colorEffect == 0x53 ? 0x00 : 0x53;
// BroadCast to all known players
broadcastPacket(new NpcInfo(this));
increaseTeamPointsAndSend(attacker, team, event);
// 30% chance to drop the event items
final int random = Rnd.get(100);
// Bond
@@ -107,11 +96,7 @@ public class L2BlockInstance extends L2MonsterInstance
@Override
public boolean isAutoAttackable(L2Character attacker)
{
if (attacker instanceof L2PcInstance)
{
return (attacker.getActingPlayer() != null) && (attacker.getActingPlayer().getBlockCheckerArena() > -1);
}
return true;
return !(attacker instanceof L2PcInstance) || ((attacker.getActingPlayer() != null) && (attacker.getActingPlayer().getBlockCheckerArena() > -1));
}
@Override

View File

@@ -83,12 +83,9 @@ public class L2CastleDoormenInstance extends L2DoormenInstance
return true;
}
}
else if (getCastle() != null)
else if ((getCastle() != null) && (player.getClanId() == getCastle().getOwnerId()))
{
if (player.getClanId() == getCastle().getOwnerId())
{
return true;
}
return true;
}
}
return false;
@@ -98,10 +95,6 @@ public class L2CastleDoormenInstance extends L2DoormenInstance
protected final boolean isUnderSiege()
{
final SiegableHall hall = getConquerableHall();
if (hall != null)
{
return hall.isInSiege();
}
return getCastle().getZone().isActive();
return hall != null ? hall.isInSiege() : getCastle().getZone().isActive();
}
}

View File

@@ -66,58 +66,48 @@ public class L2ClanHallDoormenInstance extends L2DoormenInstance
@Override
public void onBypassFeedback(L2PcInstance player, String command)
{
if (_hasEvolve && command.startsWith("evolve"))
if (_hasEvolve && command.startsWith("evolve") && isOwnerClan(player))
{
if (isOwnerClan(player))
final StringTokenizer st = new StringTokenizer(command, " ");
if (st.countTokens() < 2)
{
final StringTokenizer st = new StringTokenizer(command, " ");
if (st.countTokens() < 2)
{
return;
}
st.nextToken();
boolean ok = false;
switch (Integer.parseInt(st.nextToken()))
{
case 1:
{
ok = Evolve.doEvolve(player, this, 9882, 10307, 55);
break;
}
case 2:
{
ok = Evolve.doEvolve(player, this, 4422, 10308, 55);
break;
}
case 3:
{
ok = Evolve.doEvolve(player, this, 4423, 10309, 55);
break;
}
case 4:
{
ok = Evolve.doEvolve(player, this, 4424, 10310, 55);
break;
}
case 5:
{
ok = Evolve.doEvolve(player, this, 10426, 10611, 70);
break;
}
}
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
if (ok)
{
html.setFile(player.getHtmlPrefix(), "html/clanHallDoormen/evolve-ok.htm");
}
else
{
html.setFile(player.getHtmlPrefix(), "html/clanHallDoormen/evolve-no.htm");
}
player.sendPacket(html);
return;
}
st.nextToken();
boolean ok = false;
switch (Integer.parseInt(st.nextToken()))
{
case 1:
{
ok = Evolve.doEvolve(player, this, 9882, 10307, 55);
break;
}
case 2:
{
ok = Evolve.doEvolve(player, this, 4422, 10308, 55);
break;
}
case 3:
{
ok = Evolve.doEvolve(player, this, 4423, 10309, 55);
break;
}
case 4:
{
ok = Evolve.doEvolve(player, this, 4424, 10310, 55);
break;
}
case 5:
{
ok = Evolve.doEvolve(player, this, 10426, 10611, 70);
break;
}
}
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
html.setFile(player.getHtmlPrefix(), ok ? "html/clanHallDoormen/evolve-ok.htm" : "html/clanHallDoormen/evolve-no.htm");
player.sendPacket(html);
return;
}
super.onBypassFeedback(player, command);
}
@@ -129,40 +119,30 @@ public class L2ClanHallDoormenInstance extends L2DoormenInstance
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
if (getClanHall() != null)
if (getClanHall() == null)
{
final L2Clan owner = ClanTable.getInstance().getClan(getClanHall().getOwnerId());
if (isOwnerClan(player))
{
if (_hasEvolve)
{
html.setFile(player.getHtmlPrefix(), "html/clanHallDoormen/doormen2.htm");
html.replace("%clanname%", owner.getName());
}
else
{
html.setFile(player.getHtmlPrefix(), "html/clanHallDoormen/doormen1.htm");
html.replace("%clanname%", owner.getName());
}
}
else
{
if ((owner != null) && (owner.getLeader() != null))
{
html.setFile(player.getHtmlPrefix(), "html/clanHallDoormen/doormen-no.htm");
html.replace("%leadername%", owner.getLeaderName());
html.replace("%clanname%", owner.getName());
}
else
{
html.setFile(player.getHtmlPrefix(), "html/clanHallDoormen/emptyowner.htm");
html.replace("%hallname%", getClanHall().getName());
}
}
return;
}
final L2Clan owner = ClanTable.getInstance().getClan(getClanHall().getOwnerId());
if (isOwnerClan(player))
{
html.setFile(player.getHtmlPrefix(), _hasEvolve ? "html/clanHallDoormen/doormen2.htm" : "html/clanHallDoormen/doormen1.htm");
html.replace("%clanname%", owner.getName());
}
else
{
return;
if ((owner != null) && (owner.getLeader() != null))
{
html.setFile(player.getHtmlPrefix(), "html/clanHallDoormen/doormen-no.htm");
html.replace("%leadername%", owner.getLeaderName());
html.replace("%clanname%", owner.getName());
}
else
{
html.setFile(player.getHtmlPrefix(), "html/clanHallDoormen/emptyowner.htm");
html.replace("%hallname%", getClanHall().getName());
}
}
html.replace("%objectId%", String.valueOf(getObjectId()));
@@ -212,13 +192,6 @@ public class L2ClanHallDoormenInstance extends L2DoormenInstance
@Override
protected final boolean isOwnerClan(L2PcInstance player)
{
if ((player.getClan() != null) && (getClanHall() != null))
{
if (player.getClanId() == getClanHall().getOwnerId())
{
return true;
}
}
return false;
return (player.getClan() != null) && (getClanHall() != null) && (player.getClanId() == getClanHall().getOwnerId());
}
}

View File

@@ -82,13 +82,8 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
if (condition == COND_OWNER)
{
final StringTokenizer st = new StringTokenizer(command, " ");
final String actualCommand = st.nextToken(); // Get actual command
String val = "";
if (st.countTokens() >= 1)
{
val = st.nextToken();
}
final String actualCommand = st.nextToken();
String val = st.countTokens() >= 1 ? st.nextToken() : "";
if (actualCommand.equalsIgnoreCase("banish_foreigner"))
{
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
@@ -111,7 +106,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
sendHtmlMessage(player, html);
return;
}
else if (actualCommand.equalsIgnoreCase("manage_vault"))
if (actualCommand.equalsIgnoreCase("manage_vault"))
{
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
if (player.hasClanPrivilege(ClanPrivilege.CL_VIEW_WAREHOUSE))
@@ -126,16 +121,15 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
html.replace("%rent%", String.valueOf(getClanHall().getLease()));
html.replace("%date%", format.format(getClanHall().getPaidUntil()));
}
sendHtmlMessage(player, html);
}
else
{
html.setFile(player.getHtmlPrefix(), "html/clanHallManager/not_authorized.htm");
sendHtmlMessage(player, html);
}
sendHtmlMessage(player, html);
return;
}
else if (actualCommand.equalsIgnoreCase("door"))
if (actualCommand.equalsIgnoreCase("door"))
{
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
if (player.hasClanPrivilege(ClanPrivilege.CH_OPEN_DOOR))
@@ -154,16 +148,15 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
{
html.setFile(player.getHtmlPrefix(), "html/clanHallManager/door.htm");
}
sendHtmlMessage(player, html);
}
else
{
html.setFile(player.getHtmlPrefix(), "html/clanHallManager/not_authorized.htm");
sendHtmlMessage(player, html);
}
sendHtmlMessage(player, html);
return;
}
else if (actualCommand.equalsIgnoreCase("functions"))
if (actualCommand.equalsIgnoreCase("functions"))
{
if (val.equalsIgnoreCase("tele"))
{
@@ -191,8 +184,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
{
return;
}
final int valbuy = Integer.parseInt(st.nextToken()) + (getClanHall().getFunction(ClanHall.FUNC_ITEM_CREATE).getLvl() * 100000);
showBuyWindow(player, valbuy);
showBuyWindow(player, (Integer.parseInt(st.nextToken()) + (getClanHall().getFunction(ClanHall.FUNC_ITEM_CREATE).getLvl() * 100000)));
}
else if (val.equalsIgnoreCase("support"))
{
@@ -216,35 +208,14 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
{
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
html.setFile(player.getHtmlPrefix(), "html/clanHallManager/functions.htm");
if (getClanHall().getFunction(ClanHall.FUNC_RESTORE_EXP) != null)
{
html.replace("%xp_regen%", String.valueOf(getClanHall().getFunction(ClanHall.FUNC_RESTORE_EXP).getLvl()));
}
else
{
html.replace("%xp_regen%", "0");
}
if (getClanHall().getFunction(ClanHall.FUNC_RESTORE_HP) != null)
{
html.replace("%hp_regen%", String.valueOf(getClanHall().getFunction(ClanHall.FUNC_RESTORE_HP).getLvl()));
}
else
{
html.replace("%hp_regen%", "0");
}
if (getClanHall().getFunction(ClanHall.FUNC_RESTORE_MP) != null)
{
html.replace("%mp_regen%", String.valueOf(getClanHall().getFunction(ClanHall.FUNC_RESTORE_MP).getLvl()));
}
else
{
html.replace("%mp_regen%", "0");
}
html.replace("%xp_regen%", getClanHall().getFunction(ClanHall.FUNC_RESTORE_EXP) != null ? String.valueOf(getClanHall().getFunction(ClanHall.FUNC_RESTORE_EXP).getLvl()) : "0");
html.replace("%hp_regen%", getClanHall().getFunction(ClanHall.FUNC_RESTORE_HP) != null ? String.valueOf(getClanHall().getFunction(ClanHall.FUNC_RESTORE_HP).getLvl()) : "0");
html.replace("%mp_regen%", getClanHall().getFunction(ClanHall.FUNC_RESTORE_MP) != null ? String.valueOf(getClanHall().getFunction(ClanHall.FUNC_RESTORE_MP).getLvl()) : "0");
sendHtmlMessage(player, html);
}
return;
}
else if (actualCommand.equalsIgnoreCase("manage"))
if (actualCommand.equalsIgnoreCase("manage"))
{
if (player.hasClanPrivilege(ClanPrivilege.CH_SET_FUNCTIONS))
{
@@ -266,7 +237,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
sendHtmlMessage(player, html);
return;
}
else if (val.equalsIgnoreCase("mp_cancel"))
if (val.equalsIgnoreCase("mp_cancel"))
{
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
html.setFile(player.getHtmlPrefix(), "html/clanHallManager/functions-cancel.htm");
@@ -274,7 +245,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
sendHtmlMessage(player, html);
return;
}
else if (val.equalsIgnoreCase("exp_cancel"))
if (val.equalsIgnoreCase("exp_cancel"))
{
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
html.setFile(player.getHtmlPrefix(), "html/clanHallManager/functions-cancel.htm");
@@ -282,7 +253,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
sendHtmlMessage(player, html);
return;
}
else if (val.equalsIgnoreCase("edit_hp"))
if (val.equalsIgnoreCase("edit_hp"))
{
val = st.nextToken();
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
@@ -358,14 +329,13 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
break;
}
}
html.replace("%cost%", String.valueOf(cost) + "</font>Adena /" + String.valueOf(Config.CH_HPREG_FEE_RATIO / 1000 / 60 / 60 / 24) + " Day</font>)");
html.replace("%use%", "Provides additional HP recovery for clan members in the clan hall.<font color=\"00FFFF\">" + String.valueOf(percent) + "%</font>");
html.replace("%apply%", "recovery hp " + String.valueOf(percent));
sendHtmlMessage(player, html);
return;
}
else if (val.equalsIgnoreCase("edit_mp"))
if (val.equalsIgnoreCase("edit_mp"))
{
val = st.nextToken();
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
@@ -407,7 +377,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
sendHtmlMessage(player, html);
return;
}
else if (val.equalsIgnoreCase("edit_exp"))
if (val.equalsIgnoreCase("edit_exp"))
{
val = st.nextToken();
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
@@ -459,7 +429,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
sendHtmlMessage(player, html);
return;
}
else if (val.equalsIgnoreCase("hp"))
if (val.equalsIgnoreCase("hp"))
{
if (st.countTokens() >= 1)
{
@@ -471,15 +441,12 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
val = st.nextToken();
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
html.setFile(player.getHtmlPrefix(), "html/clanHallManager/functions-apply_confirmed.htm");
if (getClanHall().getFunction(ClanHall.FUNC_RESTORE_HP) != null)
if ((getClanHall().getFunction(ClanHall.FUNC_RESTORE_HP) != null) && (getClanHall().getFunction(ClanHall.FUNC_RESTORE_HP).getLvl() == Integer.parseInt(val)))
{
if (getClanHall().getFunction(ClanHall.FUNC_RESTORE_HP).getLvl() == Integer.parseInt(val))
{
html.setFile(player.getHtmlPrefix(), "html/clanHallManager/functions-used.htm");
html.replace("%val%", String.valueOf(val) + "%");
sendHtmlMessage(player, html);
return;
}
html.setFile(player.getHtmlPrefix(), "html/clanHallManager/functions-used.htm");
html.replace("%val%", String.valueOf(val) + "%");
sendHtmlMessage(player, html);
return;
}
final int percent = Integer.parseInt(val);
switch (percent)
@@ -569,7 +536,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
}
return;
}
else if (val.equalsIgnoreCase("mp"))
if (val.equalsIgnoreCase("mp"))
{
if (st.countTokens() >= 1)
{
@@ -581,15 +548,12 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
val = st.nextToken();
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
html.setFile(player.getHtmlPrefix(), "html/clanHallManager/functions-apply_confirmed.htm");
if (getClanHall().getFunction(ClanHall.FUNC_RESTORE_MP) != null)
if ((getClanHall().getFunction(ClanHall.FUNC_RESTORE_MP) != null) && (getClanHall().getFunction(ClanHall.FUNC_RESTORE_MP).getLvl() == Integer.parseInt(val)))
{
if (getClanHall().getFunction(ClanHall.FUNC_RESTORE_MP).getLvl() == Integer.parseInt(val))
{
html.setFile(player.getHtmlPrefix(), "html/clanHallManager/functions-used.htm");
html.replace("%val%", String.valueOf(val) + "%");
sendHtmlMessage(player, html);
return;
}
html.setFile(player.getHtmlPrefix(), "html/clanHallManager/functions-used.htm");
html.replace("%val%", String.valueOf(val) + "%");
sendHtmlMessage(player, html);
return;
}
final int percent = Integer.parseInt(val);
switch (percent)
@@ -639,7 +603,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
}
return;
}
else if (val.equalsIgnoreCase("exp"))
if (val.equalsIgnoreCase("exp"))
{
if (st.countTokens() >= 1)
{
@@ -651,15 +615,12 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
val = st.nextToken();
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
html.setFile(player.getHtmlPrefix(), "html/clanHallManager/functions-apply_confirmed.htm");
if (getClanHall().getFunction(ClanHall.FUNC_RESTORE_EXP) != null)
if ((getClanHall().getFunction(ClanHall.FUNC_RESTORE_EXP) != null) && (getClanHall().getFunction(ClanHall.FUNC_RESTORE_EXP).getLvl() == Integer.parseInt(val)))
{
if (getClanHall().getFunction(ClanHall.FUNC_RESTORE_EXP).getLvl() == Integer.parseInt(val))
{
html.setFile(player.getHtmlPrefix(), "html/clanHallManager/functions-used.htm");
html.replace("%val%", String.valueOf(val) + "%");
sendHtmlMessage(player, html);
return;
}
html.setFile(player.getHtmlPrefix(), "html/clanHallManager/functions-used.htm");
html.replace("%val%", String.valueOf(val) + "%");
sendHtmlMessage(player, html);
return;
}
final int percent = Integer.parseInt(val);
switch (percent)
@@ -738,8 +699,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
{
html.replace("%hp_recovery%", String.valueOf(getClanHall().getFunction(ClanHall.FUNC_RESTORE_HP).getLvl()) + "%</font> (<font color=\"FFAABB\">" + String.valueOf(getClanHall().getFunction(ClanHall.FUNC_RESTORE_HP).getLease()) + "</font>Adena /" + String.valueOf(Config.CH_HPREG_FEE_RATIO / 1000 / 60 / 60 / 24) + " Day)");
html.replace("%hp_period%", "Withdraw the fee for the next time at " + format.format(getClanHall().getFunction(ClanHall.FUNC_RESTORE_HP).getEndTime()));
final int grade = getClanHall().getGrade();
switch (grade)
switch (getClanHall().getGrade())
{
case 0:
{
@@ -767,8 +727,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
{
html.replace("%hp_recovery%", "none");
html.replace("%hp_period%", "none");
final int grade = getClanHall().getGrade();
switch (grade)
switch (getClanHall().getGrade())
{
case 0:
{
@@ -796,8 +755,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
{
html.replace("%exp_recovery%", String.valueOf(getClanHall().getFunction(ClanHall.FUNC_RESTORE_EXP).getLvl()) + "%</font> (<font color=\"FFAABB\">" + String.valueOf(getClanHall().getFunction(ClanHall.FUNC_RESTORE_EXP).getLease()) + "</font>Adena /" + String.valueOf(Config.CH_EXPREG_FEE_RATIO / 1000 / 60 / 60 / 24) + " Day)");
html.replace("%exp_period%", "Withdraw the fee for the next time at " + format.format(getClanHall().getFunction(ClanHall.FUNC_RESTORE_EXP).getEndTime()));
final int grade = getClanHall().getGrade();
switch (grade)
switch (getClanHall().getGrade())
{
case 0:
{
@@ -825,8 +783,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
{
html.replace("%exp_recovery%", "none");
html.replace("%exp_period%", "none");
final int grade = getClanHall().getGrade();
switch (grade)
switch (getClanHall().getGrade())
{
case 0:
{
@@ -854,8 +811,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
{
html.replace("%mp_recovery%", String.valueOf(getClanHall().getFunction(ClanHall.FUNC_RESTORE_MP).getLvl()) + "%</font> (<font color=\"FFAABB\">" + String.valueOf(getClanHall().getFunction(ClanHall.FUNC_RESTORE_MP).getLease()) + "</font>Adena /" + String.valueOf(Config.CH_MPREG_FEE_RATIO / 1000 / 60 / 60 / 24) + " Day)");
html.replace("%mp_period%", "Withdraw the fee for the next time at " + format.format(getClanHall().getFunction(ClanHall.FUNC_RESTORE_MP).getEndTime()));
final int grade = getClanHall().getGrade();
switch (grade)
switch (getClanHall().getGrade())
{
case 0:
{
@@ -883,8 +839,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
{
html.replace("%mp_recovery%", "none");
html.replace("%mp_period%", "none");
final int grade = getClanHall().getGrade();
switch (grade)
switch (getClanHall().getGrade())
{
case 0:
{
@@ -928,7 +883,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
sendHtmlMessage(player, html);
return;
}
else if (val.equalsIgnoreCase("tele_cancel"))
if (val.equalsIgnoreCase("tele_cancel"))
{
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
html.setFile(player.getHtmlPrefix(), "html/clanHallManager/functions-cancel.htm");
@@ -936,7 +891,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
sendHtmlMessage(player, html);
return;
}
else if (val.equalsIgnoreCase("support_cancel"))
if (val.equalsIgnoreCase("support_cancel"))
{
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
html.setFile(player.getHtmlPrefix(), "html/clanHallManager/functions-cancel.htm");
@@ -944,7 +899,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
sendHtmlMessage(player, html);
return;
}
else if (val.equalsIgnoreCase("edit_item"))
if (val.equalsIgnoreCase("edit_item"))
{
val = st.nextToken();
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
@@ -976,7 +931,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
sendHtmlMessage(player, html);
return;
}
else if (val.equalsIgnoreCase("edit_support"))
if (val.equalsIgnoreCase("edit_support"))
{
val = st.nextToken();
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
@@ -1033,7 +988,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
sendHtmlMessage(player, html);
return;
}
else if (val.equalsIgnoreCase("edit_tele"))
if (val.equalsIgnoreCase("edit_tele"))
{
val = st.nextToken();
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
@@ -1060,7 +1015,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
sendHtmlMessage(player, html);
return;
}
else if (val.equalsIgnoreCase("item"))
if (val.equalsIgnoreCase("item"))
{
if (st.countTokens() >= 1)
{
@@ -1076,15 +1031,12 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
val = st.nextToken();
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
html.setFile(player.getHtmlPrefix(), "html/clanHallManager/functions-apply_confirmed.htm");
if (getClanHall().getFunction(ClanHall.FUNC_ITEM_CREATE) != null)
if ((getClanHall().getFunction(ClanHall.FUNC_ITEM_CREATE) != null) && (getClanHall().getFunction(ClanHall.FUNC_ITEM_CREATE).getLvl() == Integer.parseInt(val)))
{
if (getClanHall().getFunction(ClanHall.FUNC_ITEM_CREATE).getLvl() == Integer.parseInt(val))
{
html.setFile(player.getHtmlPrefix(), "html/clanHallManager/functions-used.htm");
html.replace("%val%", "Stage " + String.valueOf(val));
sendHtmlMessage(player, html);
return;
}
html.setFile(player.getHtmlPrefix(), "html/clanHallManager/functions-used.htm");
html.replace("%val%", "Stage " + String.valueOf(val));
sendHtmlMessage(player, html);
return;
}
int fee;
final int lvl = Integer.parseInt(val);
@@ -1125,7 +1077,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
}
return;
}
else if (val.equalsIgnoreCase("tele"))
if (val.equalsIgnoreCase("tele"))
{
if (st.countTokens() >= 1)
{
@@ -1137,15 +1089,12 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
val = st.nextToken();
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
html.setFile(player.getHtmlPrefix(), "html/clanHallManager/functions-apply_confirmed.htm");
if (getClanHall().getFunction(ClanHall.FUNC_TELEPORT) != null)
if ((getClanHall().getFunction(ClanHall.FUNC_TELEPORT) != null) && (getClanHall().getFunction(ClanHall.FUNC_TELEPORT).getLvl() == Integer.parseInt(val)))
{
if (getClanHall().getFunction(ClanHall.FUNC_TELEPORT).getLvl() == Integer.parseInt(val))
{
html.setFile(player.getHtmlPrefix(), "html/clanHallManager/functions-used.htm");
html.replace("%val%", "Stage " + String.valueOf(val));
sendHtmlMessage(player, html);
return;
}
html.setFile(player.getHtmlPrefix(), "html/clanHallManager/functions-used.htm");
html.replace("%val%", "Stage " + String.valueOf(val));
sendHtmlMessage(player, html);
return;
}
final int lvl = Integer.parseInt(val);
switch (lvl)
@@ -1180,7 +1129,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
}
return;
}
else if (val.equalsIgnoreCase("support"))
if (val.equalsIgnoreCase("support"))
{
if (st.countTokens() >= 1)
{
@@ -1192,15 +1141,12 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
val = st.nextToken();
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
html.setFile(player.getHtmlPrefix(), "html/clanHallManager/functions-apply_confirmed.htm");
if (getClanHall().getFunction(ClanHall.FUNC_SUPPORT) != null)
if ((getClanHall().getFunction(ClanHall.FUNC_SUPPORT) != null) && (getClanHall().getFunction(ClanHall.FUNC_SUPPORT).getLvl() == Integer.parseInt(val)))
{
if (getClanHall().getFunction(ClanHall.FUNC_SUPPORT).getLvl() == Integer.parseInt(val))
{
html.setFile(player.getHtmlPrefix(), "html/clanHallManager/functions-used.htm");
html.replace("%val%", "Stage " + String.valueOf(val));
sendHtmlMessage(player, html);
return;
}
html.setFile(player.getHtmlPrefix(), "html/clanHallManager/functions-used.htm");
html.replace("%val%", "Stage " + String.valueOf(val));
sendHtmlMessage(player, html);
return;
}
final int lvl = Integer.parseInt(val);
switch (lvl)
@@ -1290,8 +1236,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
{
html.replace("%support%", "Stage " + String.valueOf(getClanHall().getFunction(ClanHall.FUNC_SUPPORT).getLvl()) + "</font> (<font color=\"FFAABB\">" + String.valueOf(getClanHall().getFunction(ClanHall.FUNC_SUPPORT).getLease()) + "</font>Adena /" + String.valueOf(Config.CH_SUPPORT_FEE_RATIO / 1000 / 60 / 60 / 24) + " Day)");
html.replace("%support_period%", "Withdraw the fee for the next time at " + format.format(getClanHall().getFunction(ClanHall.FUNC_SUPPORT).getEndTime()));
final int grade = getClanHall().getGrade();
switch (grade)
switch (getClanHall().getGrade())
{
case 0:
{
@@ -1319,8 +1264,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
{
html.replace("%support%", "none");
html.replace("%support_period%", "none");
final int grade = getClanHall().getGrade();
switch (grade)
switch (getClanHall().getGrade())
{
case 0:
{
@@ -1376,7 +1320,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
sendHtmlMessage(player, html);
return;
}
else if (val.equalsIgnoreCase("fixtures_cancel"))
if (val.equalsIgnoreCase("fixtures_cancel"))
{
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
html.setFile(player.getHtmlPrefix(), "html/clanHallManager/functions-cancel.htm");
@@ -1384,7 +1328,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
sendHtmlMessage(player, html);
return;
}
else if (val.equalsIgnoreCase("edit_curtains"))
if (val.equalsIgnoreCase("edit_curtains"))
{
val = st.nextToken();
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
@@ -1411,7 +1355,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
sendHtmlMessage(player, html);
return;
}
else if (val.equalsIgnoreCase("edit_fixtures"))
if (val.equalsIgnoreCase("edit_fixtures"))
{
val = st.nextToken();
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
@@ -1438,7 +1382,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
sendHtmlMessage(player, html);
return;
}
else if (val.equalsIgnoreCase("curtains"))
if (val.equalsIgnoreCase("curtains"))
{
if (st.countTokens() >= 1)
{
@@ -1450,15 +1394,12 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
val = st.nextToken();
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
html.setFile(player.getHtmlPrefix(), "html/clanHallManager/functions-apply_confirmed.htm");
if (getClanHall().getFunction(ClanHall.FUNC_DECO_CURTAINS) != null)
if ((getClanHall().getFunction(ClanHall.FUNC_DECO_CURTAINS) != null) && (getClanHall().getFunction(ClanHall.FUNC_DECO_CURTAINS).getLvl() == Integer.parseInt(val)))
{
if (getClanHall().getFunction(ClanHall.FUNC_DECO_CURTAINS).getLvl() == Integer.parseInt(val))
{
html.setFile(player.getHtmlPrefix(), "html/clanHallManager/functions-used.htm");
html.replace("%val%", "Stage " + String.valueOf(val));
sendHtmlMessage(player, html);
return;
}
html.setFile(player.getHtmlPrefix(), "html/clanHallManager/functions-used.htm");
html.replace("%val%", "Stage " + String.valueOf(val));
sendHtmlMessage(player, html);
return;
}
final int lvl = Integer.parseInt(val);
switch (lvl)
@@ -1493,7 +1434,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
}
return;
}
else if (val.equalsIgnoreCase("fixtures"))
if (val.equalsIgnoreCase("fixtures"))
{
if (st.countTokens() >= 1)
{
@@ -1505,15 +1446,12 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
val = st.nextToken();
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
html.setFile(player.getHtmlPrefix(), "html/clanHallManager/functions-apply_confirmed.htm");
if (getClanHall().getFunction(ClanHall.FUNC_DECO_FRONTPLATEFORM) != null)
if ((getClanHall().getFunction(ClanHall.FUNC_DECO_FRONTPLATEFORM) != null) && (getClanHall().getFunction(ClanHall.FUNC_DECO_FRONTPLATEFORM).getLvl() == Integer.parseInt(val)))
{
if (getClanHall().getFunction(ClanHall.FUNC_DECO_FRONTPLATEFORM).getLvl() == Integer.parseInt(val))
{
html.setFile(player.getHtmlPrefix(), "html/clanHallManager/functions-used.htm");
html.replace("%val%", "Stage " + String.valueOf(val));
sendHtmlMessage(player, html);
return;
}
html.setFile(player.getHtmlPrefix(), "html/clanHallManager/functions-used.htm");
html.replace("%val%", "Stage " + String.valueOf(val));
sendHtmlMessage(player, html);
return;
}
final int lvl = Integer.parseInt(val);
switch (lvl)
@@ -1598,7 +1536,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
}
return;
}
else if (actualCommand.equalsIgnoreCase("support"))
if (actualCommand.equalsIgnoreCase("support"))
{
if (player.isCursedWeaponEquipped())
{
@@ -1618,11 +1556,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
final int skill_id = Integer.parseInt(val);
try
{
int skill_lvl = 0;
if (st.countTokens() >= 1)
{
skill_lvl = Integer.parseInt(st.nextToken());
}
final int skill_lvl = st.countTokens() >= 1 ? Integer.parseInt(st.nextToken()) : 0;
skill = SkillData.getInstance().getSkill(skill_id, skill_lvl);
if (skill.hasEffectType(L2EffectType.SUMMON))
{
@@ -1630,13 +1564,8 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
}
else
{
final int mpCost = skill.getMpConsume() + skill.getMpInitialConsume();
// If Clan Hall Buff are free or current MP is greater than MP cost, the skill should be casted.
if ((getCurrentMp() >= mpCost) || Config.CH_BUFF_FREE)
{
doCast(skill);
}
else
if ((getCurrentMp() < (skill.getMpConsume() + skill.getMpInitialConsume())) && !Config.CH_BUFF_FREE)
{
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
html.setFile(player.getHtmlPrefix(), "html/clanHallManager/support-no_mana.htm");
@@ -1644,6 +1573,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
sendHtmlMessage(player, html);
return;
}
doCast(skill);
}
if (getClanHall().getFunction(ClanHall.FUNC_SUPPORT) == null)
{
@@ -1669,21 +1599,17 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
}
return;
}
else if (actualCommand.equalsIgnoreCase("list_back"))
if (actualCommand.equalsIgnoreCase("list_back"))
{
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
String file = "html/clanHallManager/chamberlain-" + getId() + ".htm";
if (!HtmCache.getInstance().isLoadable(file))
{
file = "html/clanHallManager/chamberlain.htm";
}
final String file = !HtmCache.getInstance().isLoadable(("html/clanHallManager/chamberlain-" + getId() + ".htm")) ? "html/clanHallManager/chamberlain.htm" : "html/clanHallManager/chamberlain-" + getId() + ".htm";
html.setFile(player.getHtmlPrefix(), file);
html.replace("%objectId%", String.valueOf(getObjectId()));
html.replace("%npcname%", getName());
sendHtmlMessage(player, html);
return;
}
else if (actualCommand.equalsIgnoreCase("support_back"))
if (actualCommand.equalsIgnoreCase("support_back"))
{
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
if (getClanHall().getFunction(ClanHall.FUNC_SUPPORT).getLvl() == 0)
@@ -1695,7 +1621,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
sendHtmlMessage(player, html);
return;
}
else if (actualCommand.equalsIgnoreCase("goto"))
if (actualCommand.equalsIgnoreCase("goto"))
{
final int whereTo = Integer.parseInt(val);
doTeleport(player, whereTo);
@@ -1799,7 +1725,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
player.sendPacket(SystemMessageId.YOU_CANNOT_TELEPORT_WHILE_IN_POSSESSION_OF_A_WARD);
return;
}
else if (player.destroyItemByItemId("Teleport", list.getItemId(), list.getPrice(), this, true))
if (player.destroyItemByItemId("Teleport", list.getItemId(), list.getPrice(), this, true))
{
if (Config.DEBUG)
{
@@ -1822,7 +1748,6 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
{
return;
}
final AgitDecoInfo bl = new AgitDecoInfo(ch);
player.sendPacket(bl);
player.sendPacket(new AgitDecoInfo(ch));
}
}

View File

@@ -55,18 +55,7 @@ public final class L2ClassMasterInstance extends L2MerchantInstance
@Override
public String getHtmlPath(int npcId, int val)
{
String pom = "";
if (val == 0)
{
pom = "" + npcId;
}
else
{
pom = npcId + "-" + val;
}
return "html/classmaster/" + pom + ".htm";
return "html/classmaster/" + (val == 0 ? "" + npcId : npcId + "-" + val) + ".htm";
}
@Override
@@ -155,8 +144,7 @@ public final class L2ClassMasterInstance extends L2MerchantInstance
try
{
final int val = Integer.parseInt(request.substring(21));
checkAndChangeClass(player, val);
checkAndChangeClass(player, Integer.parseInt(request.substring(21)));
}
catch (NumberFormatException e)
{
@@ -182,12 +170,7 @@ public final class L2ClassMasterInstance extends L2MerchantInstance
}
final ClassId classId = player.getClassId();
if (getMinLevel(classId.level(), player) > player.getLevel())
{
return;
}
if (!Config.CLASS_MASTER_SETTINGS.isAllowed(classId.level() + 1))
if ((getMinLevel(classId.level(), player) > player.getLevel()) || !Config.CLASS_MASTER_SETTINGS.isAllowed(classId.level() + 1))
{
return;
}
@@ -356,9 +339,7 @@ public final class L2ClassMasterInstance extends L2MerchantInstance
return;
}
String msg = HtmCache.getInstance().getHtm(player.getHtmlPrefix(), "html/classmaster/tutorialtemplate.htm");
msg = msg.replaceAll("%name%", ClassListData.getInstance().getClass(currentClassId).getEscapedClientCode());
String msg = HtmCache.getInstance().getHtm(player.getHtmlPrefix(), "html/classmaster/tutorialtemplate.htm").replaceAll("%name%", ClassListData.getInstance().getClass(currentClassId).getEscapedClientCode());
final StringBuilder menu = new StringBuilder(100);
for (ClassId cid : ClassId.values())
{
@@ -380,12 +361,7 @@ public final class L2ClassMasterInstance extends L2MerchantInstance
private static final boolean checkAndChangeClass(L2PcInstance player, int val)
{
final ClassId currentClassId = player.getClassId();
if ((getMinLevel(currentClassId.level(), player) > player.getLevel()) && !Config.ALLOW_ENTIRE_TREE)
{
return false;
}
if (!validateClassId(currentClassId, val))
if (((getMinLevel(currentClassId.level(), player) > player.getLevel()) && !Config.ALLOW_ENTIRE_TREE) || !validateClassId(currentClassId, val))
{
return false;
}

View File

@@ -307,17 +307,19 @@ public class L2ControllableAirShipInstance extends L2AirShipInstance
public void run()
{
int fuel = getFuel();
if (fuel > 0)
if (fuel <= 0)
{
fuel -= 10;
if (fuel < 0)
{
fuel = 0;
}
setFuel(fuel);
updateAbnormalVisualEffects();
return;
}
fuel -= 10;
if (fuel < 0)
{
fuel = 0;
}
setFuel(fuel);
updateAbnormalVisualEffects();
}
}

View File

@@ -350,11 +350,12 @@ public final class L2CubicInstance implements IIdentifiable
public void cancelDisappear()
{
if (_disappearTask != null)
if (_disappearTask == null)
{
_disappearTask.cancel(true);
_disappearTask = null;
return;
}
_disappearTask.cancel(true);
_disappearTask = null;
}
/** this sets the enemy target for a cubic */
@@ -431,12 +432,9 @@ public final class L2CubicInstance implements IIdentifiable
_target = PlayerA;
}
}
if ((_target == PlayerA) || (_target == PlayerB))
if (((_target == PlayerA) || (_target == PlayerB)) && (_target == ownerTarget))
{
if (_target == ownerTarget)
{
return;
}
return;
}
if (partyEnemy != null)
{
@@ -463,15 +461,12 @@ public final class L2CubicInstance implements IIdentifiable
// Olympiad targeting
if (_owner.isInOlympiadMode())
{
if (_owner.isOlympiadStart())
if (_owner.isOlympiadStart() && ownerTarget.isPlayable())
{
if (ownerTarget.isPlayable())
final L2PcInstance targetPlayer = ownerTarget.getActingPlayer();
if ((targetPlayer != null) && (targetPlayer.getOlympiadGameId() == _owner.getOlympiadGameId()) && (targetPlayer.getOlympiadSide() != _owner.getOlympiadSide()))
{
final L2PcInstance targetPlayer = ownerTarget.getActingPlayer();
if ((targetPlayer != null) && (targetPlayer.getOlympiadGameId() == _owner.getOlympiadGameId()) && (targetPlayer.getOlympiadSide() != _owner.getOlympiadSide()))
{
_target = (L2Character) ownerTarget;
}
_target = (L2Character) ownerTarget;
}
}
return;
@@ -527,12 +522,9 @@ public final class L2CubicInstance implements IIdentifiable
{
targetIt = false;
}
else if (_owner.getParty().getCommandChannel() != null)
else if ((_owner.getParty().getCommandChannel() != null) && _owner.getParty().getCommandChannel().getMembers().contains(enemy))
{
if (_owner.getParty().getCommandChannel().getMembers().contains(enemy))
{
targetIt = false;
}
targetIt = false;
}
}
if ((_owner.getClan() != null) && !_owner.isInsideZone(ZoneId.PVP))
@@ -541,12 +533,9 @@ public final class L2CubicInstance implements IIdentifiable
{
targetIt = false;
}
if ((_owner.getAllyId() > 0) && (enemy.getAllyId() > 0))
if ((_owner.getAllyId() > 0) && (enemy.getAllyId() > 0) && (_owner.getAllyId() == enemy.getAllyId()))
{
if (_owner.getAllyId() == enemy.getAllyId())
{
targetIt = false;
}
targetIt = false;
}
}
if ((enemy.getPvpFlag() == 0) && !enemy.isInsideZone(ZoneId.PVP))
@@ -814,16 +803,9 @@ public final class L2CubicInstance implements IIdentifiable
{
L2Character target = null;
double percentleft = 100.0;
L2Party party = _owner.getParty();
// if owner is in a duel but not in a party duel, then it is the same as he does not have a party
if (_owner.isInDuel())
{
if (!DuelManager.getInstance().getDuel(_owner.getDuelId()).isPartyDuel())
{
party = null;
}
}
final L2Party party = _owner.isInDuel() && !DuelManager.getInstance().getDuel(_owner.getDuelId()).isPartyDuel() ? null : _owner.getParty();
if ((party != null) && !_owner.isInOlympiadMode())
{
@@ -831,22 +813,10 @@ public final class L2CubicInstance implements IIdentifiable
// Get a list of Party Members
for (L2Character partyMember : party.getMembers())
{
if (!partyMember.isDead())
if (!partyMember.isDead() && isInCubicRange(_owner, partyMember) && (partyMember.getCurrentHp() < partyMember.getMaxHp()) && (percentleft > (partyMember.getCurrentHp() / partyMember.getMaxHp())))
{
// if party member not dead, check if he is in cast range of heal cubic
if (isInCubicRange(_owner, partyMember))
{
// member is in cubic casting range, check if he need heal and if he have
// the lowest HP
if (partyMember.getCurrentHp() < partyMember.getMaxHp())
{
if (percentleft > (partyMember.getCurrentHp() / partyMember.getMaxHp()))
{
percentleft = (partyMember.getCurrentHp() / partyMember.getMaxHp());
target = partyMember;
}
}
}
percentleft = (partyMember.getCurrentHp() / partyMember.getMaxHp());
target = partyMember;
}
final L2Summon pet = partyMember.getPet();
if (pet != null)
@@ -858,13 +828,10 @@ public final class L2CubicInstance implements IIdentifiable
// member's pet is in cubic casting range, check if he need heal and if he have
// the lowest HP
if (pet.getCurrentHp() < pet.getMaxHp())
if ((pet.getCurrentHp() < pet.getMaxHp()) && (percentleft > (pet.getCurrentHp() / pet.getMaxHp())))
{
if (percentleft > (pet.getCurrentHp() / pet.getMaxHp()))
{
percentleft = (pet.getCurrentHp() / pet.getMaxHp());
target = pet;
}
percentleft = (pet.getCurrentHp() / pet.getMaxHp());
target = pet;
}
}
for (L2Summon s : partyMember.getServitors().values())
@@ -876,13 +843,10 @@ public final class L2CubicInstance implements IIdentifiable
// member's pet is in cubic casting range, check if he need heal and if he have
// the lowest HP
if (s.getCurrentHp() < s.getMaxHp())
if ((s.getCurrentHp() < s.getMaxHp()) && (percentleft > (s.getCurrentHp() / s.getMaxHp())))
{
if (percentleft > (s.getCurrentHp() / s.getMaxHp()))
{
percentleft = (s.getCurrentHp() / s.getMaxHp());
target = s;
}
percentleft = (s.getCurrentHp() / s.getMaxHp());
target = s;
}
}
}
@@ -902,12 +866,9 @@ public final class L2CubicInstance implements IIdentifiable
}
}
final L2Summon pet = _owner.getPet();
if (pet != null)
if ((pet != null) && !pet.isDead() && (pet.getCurrentHp() < pet.getMaxHp()) && (percentleft > (pet.getCurrentHp() / pet.getMaxHp())) && isInCubicRange(_owner, pet))
{
if (!pet.isDead() && (pet.getCurrentHp() < pet.getMaxHp()) && (percentleft > (pet.getCurrentHp() / pet.getMaxHp())) && isInCubicRange(_owner, pet))
{
target = _owner.getPet();
}
target = _owner.getPet();
}
}

View File

@@ -100,8 +100,7 @@ public class L2DecoyInstance extends L2Decoy
try
{
_Decoy.decTimeRemaining(1000);
final double newTimeRemaining = _Decoy.getTimeRemaining();
if (newTimeRemaining < 0)
if (_Decoy.getTimeRemaining() < 0)
{
_Decoy.unSummon(_activeChar);
}

View File

@@ -118,27 +118,19 @@ public class L2DefenderInstance extends L2Attackable
@Override
public void returnHome()
{
if (getWalkSpeed() <= 0)
if ((getWalkSpeed() <= 0) || (getSpawn() == null) || isInsideRadius(getSpawn(), 40, false, false))
{
return;
}
if (getSpawn() == null)
if (Config.DEBUG)
{
return;
_log.info(getObjectId() + ": moving home");
}
if (!isInsideRadius(getSpawn(), 40, false, false))
setisReturningToSpawnPoint(true);
clearAggroList();
if (hasAI())
{
if (Config.DEBUG)
{
_log.info(getObjectId() + ": moving home");
}
setisReturningToSpawnPoint(true);
clearAggroList();
if (hasAI())
{
getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, getSpawn().getLocation());
}
getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, getSpawn().getLocation());
}
}
@@ -181,20 +173,14 @@ public class L2DefenderInstance extends L2Attackable
}
else if (interact)
{
if (isAutoAttackable(player) && !isAlikeDead())
if (isAutoAttackable(player) && !isAlikeDead() && (Math.abs(player.getZ() - getZ()) < 600)) // this max heigth difference might need some tweaking
{
if (Math.abs(player.getZ() - getZ()) < 600) // this max heigth difference might need some tweaking
{
player.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, this);
}
player.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, this);
}
if (!isAutoAttackable(player))
if (!isAutoAttackable(player) && !canInteract(player))
{
if (!canInteract(player))
{
// Notify the L2PcInstance AI with AI_INTENTION_INTERACT
player.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, this);
}
// Notify the L2PcInstance AI with AI_INTENTION_INTERACT
player.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, this);
}
}
// Send a Server->Client ActionFailed to the L2PcInstance in order to avoid that the client wait another packet

View File

@@ -102,15 +102,17 @@ public class L2DoorInstance extends L2Character
}
final int clanhallId = template.getClanHallId();
if (clanhallId > 0)
if (clanhallId <= 0)
{
final ClanHall hall = ClanHallManager.getAllClanHalls().get(clanhallId);
if (hall != null)
{
setClanHall(hall);
hall.getDoors().add(this);
}
return;
}
final ClanHall hall = ClanHallManager.getAllClanHalls().get(clanhallId);
if (hall == null)
{
return;
}
setClanHall(hall);
hall.getDoors().add(this);
}
@Override
@@ -241,17 +243,18 @@ public class L2DoorInstance extends L2Character
public void setOpen(boolean open)
{
_open = open;
if (getChildId() > 0)
if (getChildId() <= 0)
{
final L2DoorInstance sibling = getSiblingDoor(getChildId());
if (sibling != null)
{
sibling.notifyChildEvent(open);
}
else
{
_log.log(Level.WARNING, getClass().getSimpleName() + ": Cannot find child id: " + getChildId());
}
return;
}
final L2DoorInstance sibling = getSiblingDoor(getChildId());
if (sibling != null)
{
sibling.notifyChildEvent(open);
}
else
{
_log.log(Level.WARNING, getClass().getSimpleName() + ": Cannot find child id: " + getChildId());
}
}
@@ -291,11 +294,7 @@ public class L2DoorInstance extends L2Character
{
_castleIndex = CastleManager.getInstance().getCastleIndex(this);
}
if (_castleIndex < 0)
{
return null;
}
return CastleManager.getInstance().getCastles().get(_castleIndex);
return _castleIndex < 0 ? null : CastleManager.getInstance().getCastles().get(_castleIndex);
}
// TODO: Replace index with the fort id itself.
@@ -305,11 +304,7 @@ public class L2DoorInstance extends L2Character
{
_fortIndex = FortManager.getInstance().getFortIndex(this);
}
if (_fortIndex < 0)
{
return null;
}
return FortManager.getInstance().getForts().get(_fortIndex);
return _fortIndex < 0 ? null : FortManager.getInstance().getForts().get(_fortIndex);
}
public void setClanHall(ClanHall clanhall)
@@ -324,15 +319,9 @@ public class L2DoorInstance extends L2Character
public boolean isEnemy()
{
if ((getCastle() != null) && (getCastle().getResidenceId() > 0) && getCastle().getZone().isActive() && getIsShowHp())
{
return true;
}
if ((getFort() != null) && (getFort().getResidenceId() > 0) && getFort().getZone().isActive() && getIsShowHp())
{
return true;
}
if ((getClanHall() != null) && getClanHall().isSiegableHall() && ((SiegableHall) getClanHall()).getSiegeZone().isActive() && getIsShowHp())
if (((getCastle() != null) && (getCastle().getResidenceId() > 0) && getCastle().getZone().isActive() && getIsShowHp())//
|| ((getFort() != null) && (getFort().getResidenceId() > 0) && getFort().getZone().isActive() && getIsShowHp())//
|| ((getClanHall() != null) && getClanHall().isSiegableHall() && ((SiegableHall) getClanHall()).getSiegeZone().isActive() && getIsShowHp()))
{
return true;
}
@@ -435,12 +424,7 @@ public class L2DoorInstance extends L2Character
final StaticObject su = new StaticObject(this, false);
final StaticObject targetableSu = new StaticObject(this, true);
final DoorStatusUpdate dsu = new DoorStatusUpdate(this);
OnEventTrigger oe = null;
if (getEmitter() > 0)
{
oe = new OnEventTrigger(getEmitter(), getOpen());
}
final OnEventTrigger oe = getEmitter() > 0 ? new OnEventTrigger(getEmitter(), getOpen()) : null;
for (L2PcInstance player : knownPlayers)
{
if ((player == null) || !isVisibleFor(player))
@@ -618,20 +602,10 @@ public class L2DoorInstance extends L2Character
@Override
public void reduceCurrentHp(double damage, L2Character attacker, boolean awake, boolean isDOT, Skill skill)
{
if (isWall() && (getInstanceId() == 0))
if (isWall() && (getInstanceId() == 0) && (!attacker.isServitor() || (((L2ServitorInstance) attacker).getTemplate().getRace() != Race.SIEGE_WEAPON)))
{
if (!attacker.isServitor())
{
return;
}
final L2ServitorInstance servitor = (L2ServitorInstance) attacker;
if (servitor.getTemplate().getRace() != Race.SIEGE_WEAPON)
{
return;
}
return;
}
super.reduceCurrentHp(damage, attacker, awake, isDOT, skill);
}
@@ -683,15 +657,15 @@ public class L2DoorInstance extends L2Character
@Override
public void sendInfo(L2PcInstance activeChar)
{
if (isVisibleFor(activeChar))
if (!isVisibleFor(activeChar))
{
if (getEmitter() > 0)
{
activeChar.sendPacket(new OnEventTrigger(getEmitter(), getOpen()));
}
activeChar.sendPacket(new StaticObject(this, activeChar.isGM()));
return;
}
if (getEmitter() > 0)
{
activeChar.sendPacket(new OnEventTrigger(getEmitter(), getOpen()));
}
activeChar.sendPacket(new StaticObject(this, activeChar.isGM()));
}
@Override
@@ -723,14 +697,8 @@ public class L2DoorInstance extends L2Character
{
return DoorData.getInstance().getDoor(doorId);
}
final Instance inst = InstanceManager.getInstance().getInstance(getInstanceId());
if (inst != null)
{
return inst.getDoor(doorId);
}
return null; // 2 late
return inst != null ? inst.getDoor(doorId) : null;
}
private void startAutoCloseTask()

View File

@@ -46,7 +46,7 @@ public class L2DoormenInstance extends L2NpcInstance
showChatWindow(player);
return;
}
else if (command.startsWith("open_doors"))
if (command.startsWith("open_doors"))
{
if (isOwnerClan(player))
{
@@ -61,7 +61,7 @@ public class L2DoormenInstance extends L2NpcInstance
}
return;
}
else if (command.startsWith("close_doors"))
if (command.startsWith("close_doors"))
{
if (isOwnerClan(player))
{
@@ -76,7 +76,7 @@ public class L2DoormenInstance extends L2NpcInstance
}
return;
}
else if (command.startsWith("tele"))
if (command.startsWith("tele"))
{
if (isOwnerClan(player))
{

View File

@@ -46,18 +46,7 @@ public final class L2FishermanInstance extends L2MerchantInstance
@Override
public String getHtmlPath(int npcId, int val)
{
String pom = "";
if (val == 0)
{
pom = "" + npcId;
}
else
{
pom = npcId + "-" + val;
}
return "html/fisherman/" + pom + ".htm";
return "html/fisherman/" + (val == 0 ? "" + npcId : npcId + "-" + val) + ".htm";
}
@Override

View File

@@ -62,8 +62,7 @@ public class L2FlameTowerInstance extends L2Tower
{
if ((_zoneList != null) && (_upgradeLevel != 0))
{
final int maxIndex = _upgradeLevel * 2;
for (int i = 0; i < maxIndex; i++)
for (int i = 0; i < (_upgradeLevel * 2); i++)
{
final L2ZoneType zone = ZoneManager.getInstance().getZoneById(_zoneList.get(i));
if (zone != null)

View File

@@ -16,8 +16,6 @@
*/
package com.l2jmobius.gameserver.model.actor.instance;
import java.util.List;
import com.l2jmobius.Config;
import com.l2jmobius.gameserver.ThreadPoolManager;
import com.l2jmobius.gameserver.ai.CtrlIntention;
@@ -60,10 +58,8 @@ public class L2FortCommanderInstance extends L2DefenderInstance
return false;
}
final boolean isFort = ((getFort() != null) && (getFort().getResidenceId() > 0) && getFort().getSiege().isInProgress() && !getFort().getSiege().checkIsDefender(((L2PcInstance) attacker).getClan()));
// Attackable during siege by all except defenders
return (isFort);
return ((getFort() != null) && (getFort().getResidenceId() > 0) && getFort().getSiege().isInProgress() && !getFort().getSiege().checkIsDefender(((L2PcInstance) attacker).getClan()));
}
@Override
@@ -102,19 +98,19 @@ public class L2FortCommanderInstance extends L2DefenderInstance
@Override
public void returnHome()
{
if (!isInsideRadius(getSpawn(), 200, false, false))
if (isInsideRadius(getSpawn(), 200, false, false))
{
if (Config.DEBUG)
{
_log.info(getObjectId() + ": moving home");
}
setisReturningToSpawnPoint(true);
clearAggroList();
if (hasAI())
{
getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, getSpawn().getLocation());
}
return;
}
if (Config.DEBUG)
{
_log.info(getObjectId() + ": moving home");
}
setisReturningToSpawnPoint(true);
clearAggroList();
if (hasAI())
{
getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, getSpawn().getLocation());
}
}
@@ -124,8 +120,7 @@ public class L2FortCommanderInstance extends L2DefenderInstance
final L2Spawn spawn = getSpawn();
if ((spawn != null) && canTalk())
{
final List<FortSiegeSpawn> commanders = FortSiegeManager.getInstance().getCommanderSpawnList(getFort().getResidenceId());
for (FortSiegeSpawn spawn2 : commanders)
for (FortSiegeSpawn spawn2 : FortSiegeManager.getInstance().getCommanderSpawnList(getFort().getResidenceId()))
{
if (spawn2.getId() == spawn.getId())
{
@@ -159,7 +154,6 @@ public class L2FortCommanderInstance extends L2DefenderInstance
{
ns.addStringParameter(attacker.getName());
}
broadcastPacket(ns);
setCanTalk(false);
ThreadPoolManager.getInstance().scheduleGeneral(new ScheduleTalkTask(), 10000);

View File

@@ -86,14 +86,7 @@ public class L2FortDoormenInstance extends L2DoormenInstance
@Override
protected final boolean isOwnerClan(L2PcInstance player)
{
if ((player.getClan() != null) && (getFort() != null) && (getFort().getOwnerClan() != null))
{
if (player.getClanId() == getFort().getOwnerClan().getId())
{
return true;
}
}
return false;
return (player.getClan() != null) && (getFort() != null) && (getFort().getOwnerClan() != null) && (player.getClanId() == getFort().getOwnerClan().getId());
}
@Override

View File

@@ -189,47 +189,20 @@ public class L2FortLogisticsInstance extends L2MerchantInstance
{
player.sendPacket(ActionFailed.STATIC_PACKET);
String filename;
if (val == 0)
{
filename = "html/fortress/logistics.htm";
}
else
{
filename = "html/fortress/logistics-" + val + ".htm";
}
final String filename = val == 0 ? "html/fortress/logistics.htm" : "html/fortress/logistics-" + val + ".htm";
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
html.setFile(player.getHtmlPrefix(), filename);
html.replace("%objectId%", String.valueOf(getObjectId()));
html.replace("%npcId%", String.valueOf(getId()));
if (getFort().getOwnerClan() != null)
{
html.replace("%clanname%", getFort().getOwnerClan().getName());
}
else
{
html.replace("%clanname%", "NPC");
}
html.replace("%clanname%", getFort().getOwnerClan() != null ? getFort().getOwnerClan().getName() : "NPC");
player.sendPacket(html);
}
@Override
public String getHtmlPath(int npcId, int val)
{
String pom = "";
if (val == 0)
{
pom = "logistics";
}
else
{
pom = "logistics-" + val;
}
return "html/fortress/" + pom + ".htm";
return "html/fortress/" + (val == 0 ? "logistics" : "logistics-" + val) + ".htm";
}
@Override

View File

@@ -92,30 +92,16 @@ public class L2FortManagerInstance extends L2MerchantInstance
final StringTokenizer st = new StringTokenizer(command, " ");
final String actualCommand = st.nextToken(); // Get actual command
String val = "";
if (st.countTokens() >= 1)
{
val = st.nextToken();
}
String val = st.countTokens() >= 1 ? st.nextToken() : "";
if (actualCommand.equalsIgnoreCase("expel"))
{
if (player.hasClanPrivilege(ClanPrivilege.CS_DISMISS))
{
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
html.setFile(player.getHtmlPrefix(), "html/fortress/foreman-expel.htm");
html.replace("%objectId%", String.valueOf(getObjectId()));
player.sendPacket(html);
}
else
{
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
html.setFile(player.getHtmlPrefix(), "html/fortress/foreman-noprivs.htm");
html.replace("%objectId%", String.valueOf(getObjectId()));
player.sendPacket(html);
}
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
html.setFile(player.getHtmlPrefix(), player.hasClanPrivilege(ClanPrivilege.CS_DISMISS) ? "html/fortress/foreman-expel.htm" : "html/fortress/foreman-noprivs.htm");
player.sendPacket(html);
html.replace("%objectId%", String.valueOf(getObjectId()));
return;
}
else if (actualCommand.equalsIgnoreCase("banish_foreigner"))
if (actualCommand.equalsIgnoreCase("banish_foreigner"))
{
if (player.hasClanPrivilege(ClanPrivilege.CS_DISMISS))
{
@@ -134,7 +120,7 @@ public class L2FortManagerInstance extends L2MerchantInstance
}
return;
}
else if (actualCommand.equalsIgnoreCase("receive_report"))
if (actualCommand.equalsIgnoreCase("receive_report"))
{
if (getFort().getFortState() < 2)
{
@@ -167,16 +153,14 @@ public class L2FortManagerInstance extends L2MerchantInstance
{
hour = (int) Math.floor(getFort().getTimeTillRebelArmy() / 3600);
minutes = (int) (Math.floor(getFort().getTimeTillRebelArmy() - (hour * 3600)) / 60);
html.replace("%hr%", String.valueOf(hour));
html.replace("%min%", String.valueOf(minutes));
}
else
{
hour = (int) Math.floor(getFort().getOwnedTime() / 3600);
minutes = (int) (Math.floor(getFort().getOwnedTime() - (hour * 3600)) / 60);
html.replace("%hr%", String.valueOf(hour));
html.replace("%min%", String.valueOf(minutes));
}
html.replace("%min%", String.valueOf(minutes));
html.replace("%hr%", String.valueOf(hour));
hour = (int) Math.floor(getFort().getTimeTillNextFortUpdate() / 3600);
minutes = (int) (Math.floor(getFort().getTimeTillNextFortUpdate() - (hour * 3600)) / 60);
html.replace("%castle%", getFort().getContractedCastle().getName());
@@ -186,8 +170,7 @@ public class L2FortManagerInstance extends L2MerchantInstance
}
return;
}
else if (actualCommand.equalsIgnoreCase("operate_door")) // door
// control
if (actualCommand.equalsIgnoreCase("operate_door"))
{
if (player.hasClanPrivilege(ClanPrivilege.CS_OPEN_DOOR))
{
@@ -198,20 +181,10 @@ public class L2FortManagerInstance extends L2MerchantInstance
{
getFort().openCloseDoor(player, Integer.parseInt(st.nextToken()), open);
}
if (open)
{
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
html.setFile(player.getHtmlPrefix(), "html/fortress/foreman-opened.htm");
html.replace("%objectId%", String.valueOf(getObjectId()));
player.sendPacket(html);
}
else
{
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
html.setFile(player.getHtmlPrefix(), "html/fortress/foreman-closed.htm");
html.replace("%objectId%", String.valueOf(getObjectId()));
player.sendPacket(html);
}
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
html.setFile(player.getHtmlPrefix(), open ? "html/fortress/foreman-opened.htm" : "html/fortress/foreman-closed.htm");
player.sendPacket(html);
html.replace("%objectId%", String.valueOf(getObjectId()));
}
else
{
@@ -231,7 +204,7 @@ public class L2FortManagerInstance extends L2MerchantInstance
}
return;
}
else if (actualCommand.equalsIgnoreCase("manage_vault"))
if (actualCommand.equalsIgnoreCase("manage_vault"))
{
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
if (player.hasClanPrivilege(ClanPrivilege.CL_VIEW_WAREHOUSE))
@@ -276,36 +249,25 @@ public class L2FortManagerInstance extends L2MerchantInstance
}
return;
}
else if (actualCommand.startsWith("WithdrawSortedC"))
if (actualCommand.startsWith("WithdrawSortedC"))
{
final String param[] = command.split("_");
if (param.length > 2)
{
showVaultWindowWithdraw(player, WarehouseListType.valueOf(param[1]), SortedWareHouseWithdrawalList.getOrder(param[2]));
}
else if (param.length > 1)
{
showVaultWindowWithdraw(player, WarehouseListType.valueOf(param[1]), SortedWareHouseWithdrawalList.A2Z);
}
else
{
showVaultWindowWithdraw(player, WarehouseListType.ALL, SortedWareHouseWithdrawalList.A2Z);
showVaultWindowWithdraw(player, param.length > 1 ? WarehouseListType.valueOf(param[1]) : WarehouseListType.ALL, SortedWareHouseWithdrawalList.A2Z);
}
return;
}
else if (actualCommand.equalsIgnoreCase("functions"))
if (actualCommand.equalsIgnoreCase("functions"))
{
if (val.equalsIgnoreCase("tele"))
{
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
if (getFort().getFunction(Fort.FUNC_TELEPORT) == null)
{
html.setFile(player.getHtmlPrefix(), "html/fortress/foreman-nac.htm");
}
else
{
html.setFile(player.getHtmlPrefix(), "html/fortress/" + getId() + "-t" + getFort().getFunction(Fort.FUNC_TELEPORT).getLvl() + ".htm");
}
html.setFile(player.getHtmlPrefix(), getFort().getFunction(Fort.FUNC_TELEPORT) == null ? "html/fortress/foreman-nac.htm" : "html/fortress/" + getId() + "-t" + getFort().getFunction(Fort.FUNC_TELEPORT).getLvl() + ".htm");
sendHtmlMessage(player, html);
}
else if (val.equalsIgnoreCase("support"))
@@ -330,35 +292,14 @@ public class L2FortManagerInstance extends L2MerchantInstance
{
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
html.setFile(player.getHtmlPrefix(), "html/fortress/foreman-functions.htm");
if (getFort().getFunction(Fort.FUNC_RESTORE_EXP) != null)
{
html.replace("%xp_regen%", String.valueOf(getFort().getFunction(Fort.FUNC_RESTORE_EXP).getLvl()));
}
else
{
html.replace("%xp_regen%", "0");
}
if (getFort().getFunction(Fort.FUNC_RESTORE_HP) != null)
{
html.replace("%hp_regen%", String.valueOf(getFort().getFunction(Fort.FUNC_RESTORE_HP).getLvl()));
}
else
{
html.replace("%hp_regen%", "0");
}
if (getFort().getFunction(Fort.FUNC_RESTORE_MP) != null)
{
html.replace("%mp_regen%", String.valueOf(getFort().getFunction(Fort.FUNC_RESTORE_MP).getLvl()));
}
else
{
html.replace("%mp_regen%", "0");
}
html.replace("%xp_regen%", getFort().getFunction(Fort.FUNC_RESTORE_EXP) != null ? String.valueOf(getFort().getFunction(Fort.FUNC_RESTORE_EXP).getLvl()) : "0");
html.replace("%hp_regen%", getFort().getFunction(Fort.FUNC_RESTORE_HP) != null ? String.valueOf(getFort().getFunction(Fort.FUNC_RESTORE_HP).getLvl()) : "0");
html.replace("%mp_regen%", getFort().getFunction(Fort.FUNC_RESTORE_MP) != null ? String.valueOf(getFort().getFunction(Fort.FUNC_RESTORE_MP).getLvl()) : "0");
sendHtmlMessage(player, html);
}
return;
}
else if (actualCommand.equalsIgnoreCase("manage"))
if (actualCommand.equalsIgnoreCase("manage"))
{
if (player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
{
@@ -380,7 +321,7 @@ public class L2FortManagerInstance extends L2MerchantInstance
sendHtmlMessage(player, html);
return;
}
else if (val.equalsIgnoreCase("mp_cancel"))
if (val.equalsIgnoreCase("mp_cancel"))
{
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
html.setFile(player.getHtmlPrefix(), "html/fortress/functions-cancel.htm");
@@ -388,7 +329,7 @@ public class L2FortManagerInstance extends L2MerchantInstance
sendHtmlMessage(player, html);
return;
}
else if (val.equalsIgnoreCase("exp_cancel"))
if (val.equalsIgnoreCase("exp_cancel"))
{
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
html.setFile(player.getHtmlPrefix(), "html/fortress/functions-cancel.htm");
@@ -396,7 +337,7 @@ public class L2FortManagerInstance extends L2MerchantInstance
sendHtmlMessage(player, html);
return;
}
else if (val.equalsIgnoreCase("edit_hp"))
if (val.equalsIgnoreCase("edit_hp"))
{
val = st.nextToken();
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
@@ -417,14 +358,13 @@ public class L2FortManagerInstance extends L2MerchantInstance
break;
}
}
html.replace("%cost%", String.valueOf(cost) + "</font>Adena /" + String.valueOf(Config.FS_HPREG_FEE_RATIO / 1000 / 60 / 60 / 24) + " Day</font>)");
html.replace("%use%", "Provides additional HP recovery for clan members in the fortress.<font color=\"00FFFF\">" + String.valueOf(percent) + "%</font>");
html.replace("%apply%", "recovery hp " + String.valueOf(percent));
sendHtmlMessage(player, html);
return;
}
else if (val.equalsIgnoreCase("edit_mp"))
if (val.equalsIgnoreCase("edit_mp"))
{
val = st.nextToken();
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
@@ -451,7 +391,7 @@ public class L2FortManagerInstance extends L2MerchantInstance
sendHtmlMessage(player, html);
return;
}
else if (val.equalsIgnoreCase("edit_exp"))
if (val.equalsIgnoreCase("edit_exp"))
{
val = st.nextToken();
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
@@ -478,7 +418,7 @@ public class L2FortManagerInstance extends L2MerchantInstance
sendHtmlMessage(player, html);
return;
}
else if (val.equalsIgnoreCase("hp"))
if (val.equalsIgnoreCase("hp"))
{
if (st.countTokens() >= 1)
{
@@ -490,15 +430,12 @@ public class L2FortManagerInstance extends L2MerchantInstance
val = st.nextToken();
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
html.setFile(player.getHtmlPrefix(), "html/fortress/functions-apply_confirmed.htm");
if (getFort().getFunction(Fort.FUNC_RESTORE_HP) != null)
if ((getFort().getFunction(Fort.FUNC_RESTORE_HP) != null) && (getFort().getFunction(Fort.FUNC_RESTORE_HP).getLvl() == Integer.parseInt(val)))
{
if (getFort().getFunction(Fort.FUNC_RESTORE_HP).getLvl() == Integer.parseInt(val))
{
html.setFile(player.getHtmlPrefix(), "html/fortress/functions-used.htm");
html.replace("%val%", String.valueOf(val) + "%");
sendHtmlMessage(player, html);
return;
}
html.setFile(player.getHtmlPrefix(), "html/fortress/functions-used.htm");
html.replace("%val%", String.valueOf(val) + "%");
sendHtmlMessage(player, html);
return;
}
final int percent = Integer.parseInt(val);
switch (percent)
@@ -529,7 +466,7 @@ public class L2FortManagerInstance extends L2MerchantInstance
}
return;
}
else if (val.equalsIgnoreCase("mp"))
if (val.equalsIgnoreCase("mp"))
{
if (st.countTokens() >= 1)
{
@@ -541,15 +478,12 @@ public class L2FortManagerInstance extends L2MerchantInstance
val = st.nextToken();
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
html.setFile(player.getHtmlPrefix(), "html/fortress/functions-apply_confirmed.htm");
if (getFort().getFunction(Fort.FUNC_RESTORE_MP) != null)
if ((getFort().getFunction(Fort.FUNC_RESTORE_MP) != null) && (getFort().getFunction(Fort.FUNC_RESTORE_MP).getLvl() == Integer.parseInt(val)))
{
if (getFort().getFunction(Fort.FUNC_RESTORE_MP).getLvl() == Integer.parseInt(val))
{
html.setFile(player.getHtmlPrefix(), "html/fortress/functions-used.htm");
html.replace("%val%", String.valueOf(val) + "%");
sendHtmlMessage(player, html);
return;
}
html.setFile(player.getHtmlPrefix(), "html/fortress/functions-used.htm");
html.replace("%val%", String.valueOf(val) + "%");
sendHtmlMessage(player, html);
return;
}
final int percent = Integer.parseInt(val);
switch (percent)
@@ -580,7 +514,7 @@ public class L2FortManagerInstance extends L2MerchantInstance
}
return;
}
else if (val.equalsIgnoreCase("exp"))
if (val.equalsIgnoreCase("exp"))
{
if (st.countTokens() >= 1)
{
@@ -592,15 +526,12 @@ public class L2FortManagerInstance extends L2MerchantInstance
val = st.nextToken();
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
html.setFile(player.getHtmlPrefix(), "html/fortress/functions-apply_confirmed.htm");
if (getFort().getFunction(Fort.FUNC_RESTORE_EXP) != null)
if ((getFort().getFunction(Fort.FUNC_RESTORE_EXP) != null) && (getFort().getFunction(Fort.FUNC_RESTORE_EXP).getLvl() == Integer.parseInt(val)))
{
if (getFort().getFunction(Fort.FUNC_RESTORE_EXP).getLvl() == Integer.parseInt(val))
{
html.setFile(player.getHtmlPrefix(), "html/fortress/functions-used.htm");
html.replace("%val%", String.valueOf(val) + "%");
sendHtmlMessage(player, html);
return;
}
html.setFile(player.getHtmlPrefix(), "html/fortress/functions-used.htm");
html.replace("%val%", String.valueOf(val) + "%");
sendHtmlMessage(player, html);
return;
}
final int percent = Integer.parseInt(val);
switch (percent)
@@ -693,7 +624,7 @@ public class L2FortManagerInstance extends L2MerchantInstance
sendHtmlMessage(player, html);
return;
}
else if (val.equalsIgnoreCase("support_cancel"))
if (val.equalsIgnoreCase("support_cancel"))
{
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
html.setFile(player.getHtmlPrefix(), "html/fortress/functions-cancel.htm");
@@ -701,7 +632,7 @@ public class L2FortManagerInstance extends L2MerchantInstance
sendHtmlMessage(player, html);
return;
}
else if (val.equalsIgnoreCase("edit_support"))
if (val.equalsIgnoreCase("edit_support"))
{
val = st.nextToken();
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
@@ -728,7 +659,7 @@ public class L2FortManagerInstance extends L2MerchantInstance
sendHtmlMessage(player, html);
return;
}
else if (val.equalsIgnoreCase("edit_tele"))
if (val.equalsIgnoreCase("edit_tele"))
{
val = st.nextToken();
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
@@ -755,7 +686,7 @@ public class L2FortManagerInstance extends L2MerchantInstance
sendHtmlMessage(player, html);
return;
}
else if (val.equalsIgnoreCase("tele"))
if (val.equalsIgnoreCase("tele"))
{
if (st.countTokens() >= 1)
{
@@ -767,15 +698,12 @@ public class L2FortManagerInstance extends L2MerchantInstance
val = st.nextToken();
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
html.setFile(player.getHtmlPrefix(), "html/fortress/functions-apply_confirmed.htm");
if (getFort().getFunction(Fort.FUNC_TELEPORT) != null)
if ((getFort().getFunction(Fort.FUNC_TELEPORT) != null) && (getFort().getFunction(Fort.FUNC_TELEPORT).getLvl() == Integer.parseInt(val)))
{
if (getFort().getFunction(Fort.FUNC_TELEPORT).getLvl() == Integer.parseInt(val))
{
html.setFile(player.getHtmlPrefix(), "html/fortress/functions-used.htm");
html.replace("%val%", "Stage " + String.valueOf(val));
sendHtmlMessage(player, html);
return;
}
html.setFile(player.getHtmlPrefix(), "html/fortress/functions-used.htm");
html.replace("%val%", "Stage " + String.valueOf(val));
sendHtmlMessage(player, html);
return;
}
final int lvl = Integer.parseInt(val);
switch (lvl)
@@ -806,7 +734,7 @@ public class L2FortManagerInstance extends L2MerchantInstance
}
return;
}
else if (val.equalsIgnoreCase("support"))
if (val.equalsIgnoreCase("support"))
{
if (st.countTokens() >= 1)
{
@@ -818,15 +746,12 @@ public class L2FortManagerInstance extends L2MerchantInstance
val = st.nextToken();
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
html.setFile(player.getHtmlPrefix(), "html/fortress/functions-apply_confirmed.htm");
if (getFort().getFunction(Fort.FUNC_SUPPORT) != null)
if ((getFort().getFunction(Fort.FUNC_SUPPORT) != null) && (getFort().getFunction(Fort.FUNC_SUPPORT).getLvl() == Integer.parseInt(val)))
{
if (getFort().getFunction(Fort.FUNC_SUPPORT).getLvl() == Integer.parseInt(val))
{
html.setFile(player.getHtmlPrefix(), "html/fortress/functions-used.htm");
html.replace("%val%", "Stage " + String.valueOf(val));
sendHtmlMessage(player, html);
return;
}
html.setFile(player.getHtmlPrefix(), "html/fortress/functions-used.htm");
html.replace("%val%", "Stage " + String.valueOf(val));
sendHtmlMessage(player, html);
return;
}
final int lvl = Integer.parseInt(val);
switch (lvl)
@@ -851,12 +776,8 @@ public class L2FortManagerInstance extends L2MerchantInstance
if (!getFort().updateFunctions(player, Fort.FUNC_SUPPORT, lvl, fee, Config.FS_SUPPORT_FEE_RATIO, (getFort().getFunction(Fort.FUNC_SUPPORT) == null)))
{
html.setFile(player.getHtmlPrefix(), "html/fortress/low_adena.htm");
sendHtmlMessage(player, html);
}
else
{
sendHtmlMessage(player, html);
}
sendHtmlMessage(player, html);
}
return;
}
@@ -910,7 +831,7 @@ public class L2FortManagerInstance extends L2MerchantInstance
}
return;
}
else if (actualCommand.equalsIgnoreCase("support"))
if (actualCommand.equalsIgnoreCase("support"))
{
setTarget(player);
Skill skill;
@@ -918,26 +839,17 @@ public class L2FortManagerInstance extends L2MerchantInstance
{
return;
}
try
{
final int skill_id = Integer.parseInt(val);
try
{
if (getFort().getFunction(Fort.FUNC_SUPPORT) == null)
{
return;
}
if (getFort().getFunction(Fort.FUNC_SUPPORT).getLvl() == 0)
if ((getFort().getFunction(Fort.FUNC_SUPPORT) == null) || (getFort().getFunction(Fort.FUNC_SUPPORT).getLvl() == 0))
{
return;
}
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
int skill_lvl = 0;
if (st.countTokens() >= 1)
{
skill_lvl = Integer.parseInt(st.nextToken());
}
final int skill_lvl = st.countTokens() >= 1 ? Integer.parseInt(st.nextToken()) : 0;
skill = SkillData.getInstance().getSkill(skill_id, skill_lvl);
if (skill.hasEffectType(L2EffectType.SUMMON))
{
@@ -945,17 +857,14 @@ public class L2FortManagerInstance extends L2MerchantInstance
}
else
{
if (!((skill.getMpConsume() + skill.getMpInitialConsume()) > getCurrentMp()))
{
this.doCast(skill);
}
else
if ((skill.getMpConsume() + skill.getMpInitialConsume()) > getCurrentMp())
{
html.setFile(player.getHtmlPrefix(), "html/fortress/support-no_mana.htm");
html.replace("%mp%", String.valueOf((int) getCurrentMp()));
sendHtmlMessage(player, html);
return;
}
this.doCast(skill);
}
html.setFile(player.getHtmlPrefix(), "html/fortress/support-done.htm");
html.replace("%mp%", String.valueOf((int) getCurrentMp()));
@@ -972,7 +881,7 @@ public class L2FortManagerInstance extends L2MerchantInstance
}
return;
}
else if (actualCommand.equalsIgnoreCase("support_back"))
if (actualCommand.equalsIgnoreCase("support_back"))
{
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
if (getFort().getFunction(Fort.FUNC_SUPPORT).getLvl() == 0)
@@ -984,7 +893,7 @@ public class L2FortManagerInstance extends L2MerchantInstance
sendHtmlMessage(player, html);
return;
}
else if (actualCommand.equalsIgnoreCase("goto"))
if (actualCommand.equalsIgnoreCase("goto"))
{
final int whereTo = Integer.parseInt(val);
doTeleport(player, whereTo);
@@ -1047,18 +956,15 @@ public class L2FortManagerInstance extends L2MerchantInstance
protected int validateCondition(L2PcInstance player)
{
if ((getFort() != null) && (getFort().getResidenceId() > 0))
if ((getFort() != null) && (getFort().getResidenceId() > 0) && (player.getClan() != null))
{
if (player.getClan() != null)
if (getFort().getZone().isActive())
{
if (getFort().getZone().isActive())
{
return COND_BUSY_BECAUSE_OF_SIEGE; // Busy because of siege
}
else if ((getFort().getOwnerClan() != null) && (getFort().getOwnerClan().getId() == player.getClanId()))
{
return COND_OWNER; // Owner
}
return COND_BUSY_BECAUSE_OF_SIEGE; // Busy because of siege
}
if ((getFort().getOwnerClan() != null) && (getFort().getOwnerClan().getId() == player.getClanId()))
{
return COND_OWNER; // Owner
}
}
return COND_ALL_FALSE;

View File

@@ -106,16 +106,7 @@ public class L2GuardInstance extends L2Attackable
@Override
public String getHtmlPath(int npcId, int val)
{
String pom = "";
if (val == 0)
{
pom = "" + npcId;
}
else
{
pom = npcId + "-" + val;
}
return "html/guard/" + pom + ".htm";
return "html/guard/" + (val == 0 ? "" + npcId : npcId + "-" + val) + ".htm";
}
/**

View File

@@ -54,18 +54,7 @@ public class L2MerchantInstance extends L2NpcInstance
@Override
public String getHtmlPath(int npcId, int val)
{
String pom = "";
if (val == 0)
{
pom = "" + npcId;
}
else
{
pom = npcId + "-" + val;
}
return "html/merchant/" + pom + ".htm";
return "html/merchant/" + (val == 0 ? "" + npcId : npcId + "-" + val) + ".htm";
}
/**

View File

@@ -172,14 +172,7 @@ public class L2PetInstance extends L2Summon
stopFeed();
return;
}
else if (getCurrentFed() > getFeedConsume())
{
setCurrentFed(getCurrentFed() - getFeedConsume());
}
else
{
setCurrentFed(0);
}
setCurrentFed(getCurrentFed() > getFeedConsume() ? getCurrentFed() - getFeedConsume() : 0);
broadcastStatusUpdate();
@@ -238,12 +231,7 @@ public class L2PetInstance extends L2Summon
private int getFeedConsume()
{
// if pet is attacking
if (isAttackingNow())
{
return getPetLevelData().getPetFeedBattle();
}
return getPetLevelData().getPetFeedNormal();
return isAttackingNow() ? getPetLevelData().getPetFeedBattle() : getPetLevelData().getPetFeedNormal();
}
}
@@ -346,13 +334,7 @@ public class L2PetInstance extends L2Summon
public L2Weapon getActiveWeaponItem()
{
final L2ItemInstance weapon = getActiveWeaponInstance();
if (weapon == null)
{
return null;
}
return (L2Weapon) weapon.getItem();
return weapon == null ? null : (L2Weapon) weapon.getItem();
}
@Override
@@ -406,19 +388,19 @@ public class L2PetInstance extends L2Summon
if (sendMessage)
{
final SystemMessage sm;
if (count > 1)
{
final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.S2_S1_S_DISAPPEARED);
sm = SystemMessage.getSystemMessage(SystemMessageId.S2_S1_S_DISAPPEARED);
sm.addItemName(item.getId());
sm.addLong(count);
sendPacket(sm);
}
else
{
final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.S1_DISAPPEARED);
sm = SystemMessage.getSystemMessage(SystemMessageId.S1_DISAPPEARED);
sm.addItemName(item.getId());
sendPacket(sm);
}
sendPacket(sm);
}
return true;
}
@@ -453,19 +435,19 @@ public class L2PetInstance extends L2Summon
if (sendMessage)
{
final SystemMessage sm;
if (count > 1)
{
final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.S2_S1_S_DISAPPEARED);
sm = SystemMessage.getSystemMessage(SystemMessageId.S2_S1_S_DISAPPEARED);
sm.addItemName(item.getId());
sm.addLong(count);
sendPacket(sm);
}
else
{
final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.S1_DISAPPEARED);
sm = SystemMessage.getSystemMessage(SystemMessageId.S1_DISAPPEARED);
sm.addItemName(item.getId());
sendPacket(sm);
}
sendPacket(sm);
}
return true;
@@ -501,7 +483,7 @@ public class L2PetInstance extends L2Summon
sendPacket(smsg);
return;
}
else if (FortSiegeManager.getInstance().isCombat(target.getId()))
if (FortSiegeManager.getInstance().isCombat(target.getId()))
{
return;
}
@@ -601,35 +583,30 @@ public class L2PetInstance extends L2Summon
smsg.addItemName(target);
sendPacket(smsg);
}
else if (target.getCount() > 1)
{
smsg = SystemMessage.getSystemMessage(SystemMessageId.YOUR_PET_PICKED_UP_S2_S1_S);
smsg.addLong(target.getCount());
smsg.addItemName(target);
sendPacket(smsg);
}
else
{
smsg = SystemMessage.getSystemMessage(SystemMessageId.YOUR_PET_PICKED_UP_S1);
smsg.addItemName(target);
if (target.getCount() > 1)
{
smsg = SystemMessage.getSystemMessage(SystemMessageId.YOUR_PET_PICKED_UP_S2_S1_S);
smsg.addLong(target.getCount());
}
else
{
smsg = SystemMessage.getSystemMessage(SystemMessageId.YOUR_PET_PICKED_UP_S1);
}
sendPacket(smsg);
smsg.addItemName(target);
}
// If owner is in party and it isnt finders keepers, distribute the item instead of stealing it -.-
if (getOwner().isInParty() && (getOwner().getParty().getDistributionType() != PartyDistributionType.FINDERS_KEEPERS))
{
getOwner().getParty().distributeItem(getOwner(), target);
}
else
{
final L2ItemInstance item = getInventory().addItem("Pickup", target, getOwner(), this);
// sendPacket(new PetItemList(getInventory().getItems()));
sendPacket(new PetInventoryUpdate(item));
sendPacket(new PetInventoryUpdate(getInventory().addItem("Pickup", target, getOwner(), this)));
}
}
getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
if (follow)
{
followOwner();
@@ -824,15 +801,16 @@ public class L2PetInstance extends L2Summon
{
dropit = getInventory().dropItem("Drop", dropit.getObjectId(), dropit.getCount(), getOwner(), this);
if (dropit != null)
if (dropit == null)
{
if (protect)
{
dropit.getDropProtection().protect(getOwner());
}
_logPet.finer("Item id to drop: " + dropit.getId() + " amount: " + dropit.getCount());
dropit.dropMe(this, getX(), getY(), getZ() + 100);
return;
}
if (protect)
{
dropit.getDropProtection().protect(getOwner());
}
_logPet.finer("Item id to drop: " + dropit.getId() + " amount: " + dropit.getCount());
dropit.dropMe(this, getX(), getY(), getZ() + 100);
}
public void dropItemHere(L2ItemInstance dropit)
@@ -942,16 +920,7 @@ public class L2PetInstance extends L2Summon
_restoreSummon = false;
}
String req;
if (!isRespawned())
{
req = "INSERT INTO pets (name,level,curHp,curMp,exp,sp,fed,ownerId,restore,item_obj_id) VALUES (?,?,?,?,?,?,?,?,?,?)";
}
else
{
req = "UPDATE pets SET name=?,level=?,curHp=?,curMp=?,exp=?,sp=?,fed=?,ownerId=?,restore=? WHERE item_obj_id = ?";
}
final String req = !isRespawned() ? "INSERT INTO pets (name,level,curHp,curMp,exp,sp,fed,ownerId,restore,item_obj_id) VALUES (?,?,?,?,?,?,?,?,?,?)" : "UPDATE pets SET name=?,level=?,curHp=?,curMp=?,exp=?,sp=?,fed=?,ownerId=?,restore=? WHERE item_obj_id = ?";
try (Connection con = DatabaseFactory.getInstance().getConnection();
PreparedStatement ps = con.prepareStatement(req))
{
@@ -1025,24 +994,7 @@ public class L2PetInstance extends L2Summon
}
final Skill skill = info.getSkill();
// Do not save heals.
if (skill.getAbnormalType() == AbnormalType.LIFE_FORCE_OTHERS)
{
continue;
}
if (skill.isToggle())
{
continue;
}
// Dances and songs are not kept in retail.
if (skill.isDance() && !Config.ALT_STORE_DANCES)
{
continue;
}
if (storedSkills.contains(skill.getReuseHashCode()))
if ((skill.getAbnormalType() == AbnormalType.LIFE_FORCE_OTHERS) || skill.isToggle() || (skill.isDance() && !Config.ALT_STORE_DANCES) || storedSkills.contains(skill.getReuseHashCode()))
{
continue;
}
@@ -1111,11 +1063,12 @@ public class L2PetInstance extends L2Summon
public synchronized void stopFeed()
{
if (_feedTask != null)
if (_feedTask == null)
{
_feedTask.cancel(false);
_feedTask = null;
return;
}
_feedTask.cancel(false);
_feedTask = null;
}
public synchronized void startFeed()
@@ -1318,32 +1271,20 @@ public class L2PetInstance extends L2Summon
public final int getWeapon()
{
final L2ItemInstance weapon = getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND);
if (weapon != null)
{
return weapon.getId();
}
return 0;
return weapon != null ? weapon.getId() : 0;
}
@Override
public final int getArmor()
{
final L2ItemInstance weapon = getInventory().getPaperdollItem(Inventory.PAPERDOLL_CHEST);
if (weapon != null)
{
return weapon.getId();
}
return 0;
return weapon != null ? weapon.getId() : 0;
}
public final int getJewel()
{
final L2ItemInstance weapon = getInventory().getPaperdollItem(Inventory.PAPERDOLL_NECK);
if (weapon != null)
{
return weapon.getId();
}
return 0;
return weapon != null ? weapon.getId() : 0;
}
@Override

View File

@@ -37,29 +37,13 @@ public class L2PetManagerInstance extends L2MerchantInstance
@Override
public String getHtmlPath(int npcId, int val)
{
String pom = "";
if (val == 0)
{
pom = "" + npcId;
}
else
{
pom = npcId + "-" + val;
}
return "html/petmanager/" + pom + ".htm";
return "html/petmanager/" + (val == 0 ? "" + npcId : npcId + "-" + val) + ".htm";
}
@Override
public void showChatWindow(L2PcInstance player)
{
String filename = "html/petmanager/" + getId() + ".htm";
if ((getId() == 36478) && player.hasSummon())
{
filename = "html/petmanager/restore-unsummonpet.htm";
}
final String filename = (getId() == 36478) && player.hasSummon() ? "html/petmanager/restore-unsummonpet.htm" : "html/petmanager/" + getId() + ".htm";
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
html.setFile(player.getHtmlPrefix(), filename);
if (Config.ALLOW_RENTPET && Config.LIST_PET_RENT_NPC.contains(getId()))
@@ -76,9 +60,7 @@ public class L2PetManagerInstance extends L2MerchantInstance
{
if (command.startsWith("exchange"))
{
final String[] params = command.split(" ");
final int val = Integer.parseInt(params[1]);
switch (val)
switch (Integer.parseInt(command.split(" ")[1]))
{
case 1:
{
@@ -196,12 +178,11 @@ public class L2PetManagerInstance extends L2MerchantInstance
{
player.addItem("", itemIdgive, 1, this, true);
html.setFile(player.getHtmlPrefix(), "html/petmanager/" + getId() + ".htm");
player.sendPacket(html);
}
else
{
html.setFile(player.getHtmlPrefix(), "html/petmanager/exchange_no.htm");
player.sendPacket(html);
}
player.sendPacket(html);
}
}

View File

@@ -548,5 +548,4 @@ public class L2RaceManagerInstance extends L2Npc
}
}
}
}

View File

@@ -127,12 +127,9 @@ public class L2RaidBossInstance extends L2MonsterInstance
final int spawnY = spawn.getY();
final int spawnZ = spawn.getZ();
if (!isInCombat() && !isMovementDisabled())
if (!isInCombat() && !isMovementDisabled() && !isInsideRadius(spawnX, spawnY, spawnZ, Math.max(Config.MAX_DRIFT_RANGE, 200), true, false))
{
if (!isInsideRadius(spawnX, spawnY, spawnZ, Math.max(Config.MAX_DRIFT_RANGE, 200), true, false))
{
teleToLocation(spawnX, spawnY, spawnZ, false);
}
teleToLocation(spawnX, spawnY, spawnZ, false);
}
}

View File

@@ -375,12 +375,7 @@ public class L2SepulcherMonsterInstance extends L2MonsterInstance
@Override
public void run()
{
if (_activeChar.isDead())
{
return;
}
if (!_activeChar.isVisible())
if (_activeChar.isDead() || !_activeChar.isVisible())
{
return;
}
@@ -401,12 +396,7 @@ public class L2SepulcherMonsterInstance extends L2MonsterInstance
@Override
public void run()
{
if (_activeChar.isDead())
{
return;
}
if (!_activeChar.isVisible())
if (_activeChar.isDead() || !_activeChar.isVisible())
{
return;
}

View File

@@ -261,17 +261,7 @@ public class L2SepulcherNpcInstance extends L2Npc
@Override
public String getHtmlPath(int npcId, int val)
{
String pom = "";
if (val == 0)
{
pom = "" + npcId;
}
else
{
pom = npcId + "-" + val;
}
return HTML_FILE_PATH + pom + ".htm";
return HTML_FILE_PATH + (val == 0 ? "" + npcId : npcId + "-" + val) + ".htm";
}
@Override

View File

@@ -212,12 +212,7 @@ public class L2ServitorInstance extends L2Summon implements Runnable
@Override
public void storeEffect(boolean storeEffects)
{
if (!Config.SUMMON_STORE_SKILL_COOLTIME)
{
return;
}
if ((getOwner() == null) || getOwner().isInOlympiadMode())
if (!Config.SUMMON_STORE_SKILL_COOLTIME || (getOwner() == null) || getOwner().isInOlympiadMode())
{
return;
}
@@ -382,31 +377,19 @@ public class L2ServitorInstance extends L2Summon implements Runnable
@Override
public byte getAttackElement()
{
if (getOwner() != null)
{
return getOwner().getAttackElement();
}
return super.getAttackElement();
return getOwner() != null ? getOwner().getAttackElement() : super.getAttackElement();
}
@Override
public int getAttackElementValue(byte attackAttribute)
{
if (getOwner() != null)
{
return (getOwner().getAttackElementValue(attackAttribute));
}
return super.getAttackElementValue(attackAttribute);
return getOwner() != null ? getOwner().getAttackElementValue(attackAttribute) : super.getAttackElementValue(attackAttribute);
}
@Override
public int getDefenseElementValue(byte defenseAttribute)
{
if (getOwner() != null)
{
return (getOwner().getDefenseElementValue(defenseAttribute));
}
return super.getDefenseElementValue(defenseAttribute);
return getOwner() != null ? getOwner().getDefenseElementValue(defenseAttribute) : super.getDefenseElementValue(defenseAttribute);
}
@Override

View File

@@ -166,19 +166,14 @@ public class L2SiegeFlagInstance extends L2Npc
public void reduceCurrentHp(double damage, L2Character attacker, Skill skill)
{
super.reduceCurrentHp(damage, attacker, skill);
if (canTalk())
if (!canTalk() || (((getCastle() == null) || !getCastle().getSiege().isInProgress()) && ((getFort() == null) || !getFort().getSiege().isInProgress()) && ((getConquerableHall() == null) || !getConquerableHall().isInSiege())) || (_clan == null))
{
if (((getCastle() != null) && getCastle().getSiege().isInProgress()) || ((getFort() != null) && getFort().getSiege().isInProgress()) || ((getConquerableHall() != null) && getConquerableHall().isInSiege()))
{
if (_clan != null)
{
// send warning to owners of headquarters that theirs base is under attack
_clan.broadcastToOnlineMembers(SystemMessage.getSystemMessage(SystemMessageId.YOUR_BASE_IS_BEING_ATTACKED));
setCanTalk(false);
ThreadPoolManager.getInstance().scheduleGeneral(new ScheduleTalkTask(), 20000);
}
}
return;
}
_clan.broadcastToOnlineMembers(SystemMessage.getSystemMessage(SystemMessageId.YOUR_BASE_IS_BEING_ATTACKED));
setCanTalk(false);
ThreadPoolManager.getInstance().scheduleGeneral(new ScheduleTalkTask(), 20000);
}
private class ScheduleTalkTask implements Runnable

View File

@@ -142,18 +142,20 @@ public final class L2TamedBeastInstance extends L2FeedableBeastInstance
public void setFoodType(int foodItemId)
{
if (foodItemId > 0)
if (foodItemId <= 0)
{
_foodSkillId = foodItemId;
// start the duration checks
// start the buff tasks
if (_durationCheckTask != null)
{
_durationCheckTask.cancel(true);
}
_durationCheckTask = ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new CheckDuration(this), DURATION_CHECK_INTERVAL, DURATION_CHECK_INTERVAL);
return;
}
_foodSkillId = foodItemId;
// start the duration checks
// start the buff tasks
if (_durationCheckTask != null)
{
_durationCheckTask.cancel(true);
}
_durationCheckTask = ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new CheckDuration(this), DURATION_CHECK_INTERVAL, DURATION_CHECK_INTERVAL);
}
@Override
@@ -370,17 +372,9 @@ public final class L2TamedBeastInstance extends L2FeedableBeastInstance
// for lower HP ranges, heal or recharge the owner with 1 skill use per attack.
else if (HPRatio < 0.5)
{
int chance = 1;
if (HPRatio < 0.25)
{
chance = 2;
}
// if the owner has a lot of HP, then debuff the enemy with a random debuff among the available skills
for (Skill skill : getTemplate().getSkills().values())
{
// if the skill is a buff, check if the owner has it already [ owner.getEffect(L2Skill skill) ]
if ((Rnd.get(5) < chance) && skill.hasEffectType(L2EffectType.CPHEAL, L2EffectType.HEAL, L2EffectType.MANAHEAL_BY_LEVEL, L2EffectType.MANAHEAL_PERCENT))
if ((Rnd.get(5) < (HPRatio < 0.25 ? 2 : 1)) && skill.hasEffectType(L2EffectType.CPHEAL, L2EffectType.HEAL, L2EffectType.MANAHEAL_BY_LEVEL, L2EffectType.MANAHEAL_PERCENT))
{
sitCastAndFollow(skill, _owner);
}

View File

@@ -74,8 +74,7 @@ public final class L2TeleporterInstance extends L2Npc
public void onBypassFeedback(L2PcInstance player, String command)
{
final StringTokenizer st = new StringTokenizer(command, " ");
final String cmd = st.nextToken();
switch (cmd)
switch (st.nextToken())
{
case "showNoblesSelect":
{
@@ -290,7 +289,7 @@ public final class L2TeleporterInstance extends L2Npc
{
return "<fstring>1000308</fstring>";
}
else if (itemId == Inventory.ANCIENT_ADENA_ID)
if (itemId == Inventory.ANCIENT_ADENA_ID)
{
return "<fstring>1000309</fstring>";
}
@@ -343,7 +342,7 @@ public final class L2TeleporterInstance extends L2Npc
player.sendPacket(html);
return;
}
else if (actualCommand.equalsIgnoreCase("goto"))
if (actualCommand.equalsIgnoreCase("goto"))
{
final int npcId = getId();
@@ -372,14 +371,10 @@ public final class L2TeleporterInstance extends L2Npc
doTeleport(player, whereTo);
return;
}
else if (condition == COND_OWNER)
if (condition == COND_OWNER)
{
// TODO: Replace 0 with highest level when privilege level is implemented
int minPrivilegeLevel = 0;
if (st.countTokens() >= 1)
{
minPrivilegeLevel = Integer.parseInt(st.nextToken());
}
final int minPrivilegeLevel = st.countTokens() >= 1 ? Integer.parseInt(st.nextToken()) : 0;
// TODO: Replace 10 with privilege level of player
if (10 >= minPrivilegeLevel)
@@ -413,7 +408,7 @@ public final class L2TeleporterInstance extends L2Npc
showNewbieHtml(player);
return;
}
else if ((val == 1) && (cal.get(Calendar.HOUR_OF_DAY) >= 20) && (cal.get(Calendar.HOUR_OF_DAY) <= 23) && ((cal.get(Calendar.DAY_OF_WEEK) == 1) || (cal.get(Calendar.DAY_OF_WEEK) == 7)))
if ((val == 1) && (cal.get(Calendar.HOUR_OF_DAY) >= 20) && (cal.get(Calendar.HOUR_OF_DAY) <= 23) && ((cal.get(Calendar.DAY_OF_WEEK) == 1) || (cal.get(Calendar.DAY_OF_WEEK) == 7)))
{
showHalfPriceHtml(player);
return;
@@ -426,17 +421,7 @@ public final class L2TeleporterInstance extends L2Npc
@Override
public String getHtmlPath(int npcId, int val)
{
String pom = "";
if (val == 0)
{
pom = "" + npcId;
}
else
{
pom = npcId + "-" + val;
}
return "html/teleporter/" + pom + ".htm";
return "html/teleporter/" + (val == 0 ? "" + npcId : npcId + "-" + val) + ".htm";
}
private void showNewbieHtml(L2PcInstance player)
@@ -469,12 +454,7 @@ public final class L2TeleporterInstance extends L2Npc
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
String filename = "html/teleporter/half/" + getId() + ".htm";
if (!HtmCache.getInstance().isLoadable(filename))
{
filename = "html/teleporter/" + getId() + "-1.htm";
}
final String filename = !HtmCache.getInstance().isLoadable(("html/teleporter/half/" + getId() + ".htm")) ? "html/teleporter/" + getId() + "-1.htm" : "html/teleporter/half/" + getId() + ".htm";
html.setFile(player.getHtmlPrefix(), filename);
html.replace("%objectId%", String.valueOf(getObjectId()));
html.replace("%npcname%", getName());
@@ -492,7 +472,7 @@ public final class L2TeleporterInstance extends L2Npc
super.showChatWindow(player);
return;
}
else if (condition > COND_ALL_FALSE)
if (condition > COND_ALL_FALSE)
{
if (condition == COND_BUSY_BECAUSE_OF_SIEGE)
{
@@ -522,27 +502,27 @@ public final class L2TeleporterInstance extends L2Npc
player.sendPacket(SystemMessageId.YOU_CANNOT_TELEPORT_TO_A_VILLAGE_THAT_IS_IN_A_SIEGE);
return;
}
else if (TownManager.townHasCastleInSiege(list.getLocX(), list.getLocY()) && isInsideZone(ZoneId.TOWN))
if (TownManager.townHasCastleInSiege(list.getLocX(), list.getLocY()) && isInsideZone(ZoneId.TOWN))
{
player.sendPacket(SystemMessageId.YOU_CANNOT_TELEPORT_TO_A_VILLAGE_THAT_IS_IN_A_SIEGE);
return;
}
else if (!Config.ALT_GAME_KARMA_PLAYER_CAN_USE_GK && (player.getReputation() < 0))
if (!Config.ALT_GAME_KARMA_PLAYER_CAN_USE_GK && (player.getReputation() < 0))
{
player.sendMessage("Go away, you're not welcome here.");
return;
}
else if (!Config.ALT_GAME_FLAGGED_PLAYER_CAN_USE_GK && (player.getPvpFlag() > 0))
if (!Config.ALT_GAME_FLAGGED_PLAYER_CAN_USE_GK && (player.getPvpFlag() > 0))
{
player.sendMessage("I don't speak with angry people.");
return;
}
else if (player.isCombatFlagEquipped())
if (player.isCombatFlagEquipped())
{
player.sendPacket(SystemMessageId.YOU_CANNOT_TELEPORT_WHILE_IN_POSSESSION_OF_A_WARD);
return;
}
else if (list.getIsForNoble() && !player.isNoble())
if (list.getIsForNoble() && !player.isNoble())
{
final String filename = "html/teleporter/nobles_not.htm";
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
@@ -552,7 +532,7 @@ public final class L2TeleporterInstance extends L2Npc
player.sendPacket(html);
return;
}
else if (player.isAlikeDead())
if (player.isAlikeDead())
{
return;
}
@@ -598,17 +578,14 @@ public final class L2TeleporterInstance extends L2Npc
return COND_REGULAR; // Regular access
}
// Teleporter is on castle ground and siege is in progress
else if (getCastle().getSiege().isInProgress())
if (getCastle().getSiege().isInProgress())
{
return COND_BUSY_BECAUSE_OF_SIEGE; // Busy because of siege
}
// Teleporter is on castle ground and player is in a clan
else if (player.getClan() != null)
if ((player.getClan() != null) && (getCastle().getOwnerId() == player.getClanId()))
{
if (getCastle().getOwnerId() == player.getClanId())
{
return COND_OWNER; // Owner
}
return COND_OWNER;
}
return COND_ALL_FALSE;

View File

@@ -34,16 +34,6 @@ public class L2TrainerInstance extends L2NpcInstance
@Override
public String getHtmlPath(int npcId, int val)
{
String pom = "";
if (val == 0)
{
pom = "" + npcId;
}
else
{
pom = npcId + "-" + val;
}
return "html/trainer/" + pom + ".htm";
return "html/trainer/" + (val == 0 ? "" + npcId : npcId + "-" + val) + ".htm";
}
}

View File

@@ -427,15 +427,17 @@ public final class L2TrapInstance extends L2Npc
_owner = null;
}
if (isVisible() && !isDead())
if (!isVisible() || isDead())
{
if (getWorldRegion() != null)
{
getWorldRegion().removeFromZones(this);
}
deleteMe();
return;
}
if (getWorldRegion() != null)
{
getWorldRegion().removeFromZones(this);
}
deleteMe();
}
@Override

View File

@@ -34,11 +34,6 @@ public final class L2VillageMasterDElfInstance extends L2VillageMasterInstance
@Override
protected final boolean checkVillageMasterRace(PlayerClass pclass)
{
if (pclass == null)
{
return false;
}
return pclass.isOfRace(Race.DARK_ELF);
return (pclass != null) && pclass.isOfRace(Race.DARK_ELF);
}
}

View File

@@ -34,11 +34,6 @@ public final class L2VillageMasterDwarfInstance extends L2VillageMasterInstance
@Override
protected final boolean checkVillageMasterRace(PlayerClass pclass)
{
if (pclass == null)
{
return false;
}
return pclass.isOfRace(Race.DWARF);
return (pclass != null) && pclass.isOfRace(Race.DWARF);
}
}

View File

@@ -35,22 +35,12 @@ public final class L2VillageMasterFighterInstance extends L2VillageMasterInstanc
@Override
protected final boolean checkVillageMasterRace(PlayerClass pclass)
{
if (pclass == null)
{
return false;
}
return pclass.isOfRace(Race.HUMAN) || pclass.isOfRace(Race.ELF);
return (pclass != null) && (pclass.isOfRace(Race.HUMAN) || pclass.isOfRace(Race.ELF));
}
@Override
protected final boolean checkVillageMasterTeachType(PlayerClass pclass)
{
if (pclass == null)
{
return false;
}
return pclass.isOfType(ClassType.Fighter);
return (pclass != null) && pclass.isOfType(ClassType.Fighter);
}
}

View File

@@ -70,18 +70,7 @@ public class L2VillageMasterInstance extends L2NpcInstance
@Override
public String getHtmlPath(int npcId, int val)
{
String pom = "";
if (val == 0)
{
pom = "" + npcId;
}
else
{
pom = npcId + "-" + val;
}
return "html/villagemaster/" + pom + ".htm";
return "html/villagemaster/" + (val == 0 ? "" + npcId : npcId + "-" + val) + ".htm";
}
@Override

View File

@@ -34,11 +34,6 @@ public final class L2VillageMasterKamaelInstance extends L2VillageMasterInstance
@Override
protected final boolean checkVillageMasterRace(PlayerClass pclass)
{
if (pclass == null)
{
return false;
}
return pclass.isOfRace(Race.KAMAEL);
return (pclass != null) && pclass.isOfRace(Race.KAMAEL);
}
}

View File

@@ -35,22 +35,12 @@ public final class L2VillageMasterMysticInstance extends L2VillageMasterInstance
@Override
protected final boolean checkVillageMasterRace(PlayerClass pclass)
{
if (pclass == null)
{
return false;
}
return pclass.isOfRace(Race.HUMAN) || pclass.isOfRace(Race.ELF);
return (pclass != null) && (pclass.isOfRace(Race.HUMAN) || pclass.isOfRace(Race.ELF));
}
@Override
protected final boolean checkVillageMasterTeachType(PlayerClass pclass)
{
if (pclass == null)
{
return false;
}
return pclass.isOfType(ClassType.Mystic);
return (pclass != null) && pclass.isOfType(ClassType.Mystic);
}
}

View File

@@ -34,11 +34,6 @@ public final class L2VillageMasterOrcInstance extends L2VillageMasterInstance
@Override
protected final boolean checkVillageMasterRace(PlayerClass pclass)
{
if (pclass == null)
{
return false;
}
return pclass.isOfRace(Race.ORC);
return (pclass != null) && pclass.isOfRace(Race.ORC);
}
}

View File

@@ -35,22 +35,12 @@ public final class L2VillageMasterPriestInstance extends L2VillageMasterInstance
@Override
protected final boolean checkVillageMasterRace(PlayerClass pclass)
{
if (pclass == null)
{
return false;
}
return pclass.isOfRace(Race.HUMAN) || pclass.isOfRace(Race.ELF);
return (pclass != null) && (pclass.isOfRace(Race.HUMAN) || pclass.isOfRace(Race.ELF));
}
@Override
protected final boolean checkVillageMasterTeachType(PlayerClass pclass)
{
if (pclass == null)
{
return false;
}
return pclass.isOfType(ClassType.Priest);
return (pclass != null) && pclass.isOfType(ClassType.Priest);
}
}

View File

@@ -40,17 +40,6 @@ public class L2WarehouseInstance extends L2NpcInstance
@Override
public String getHtmlPath(int npcId, int val)
{
String pom = "";
if (val == 0)
{
pom = "" + npcId;
}
else
{
pom = npcId + "-" + val;
}
return "html/warehouse/" + pom + ".htm";
return "html/warehouse/" + (val == 0 ? "" + npcId : npcId + "-" + val) + ".htm";
}
}

View File

@@ -81,8 +81,6 @@ public class AttackableKnownList extends NpcKnownList
return object.getKnownList().getDistanceToWatchObject(getActiveObject());
}
final int max = Math.max(300, Math.max(getActiveChar().getAggroRange(), getActiveChar().getTemplate().getClanHelpRange()));
return max;
return Math.max(300, Math.max(getActiveChar().getAggroRange(), getActiveChar().getTemplate().getClanHelpRange()));
}
}

View File

@@ -212,12 +212,9 @@ public class CharKnownList extends ObjectKnownList
final List<L2Character> result = new LinkedList<>();
for (L2Object obj : getKnownObjects().values())
{
if (obj instanceof L2Character)
if ((obj instanceof L2Character) && Util.checkIfInRange((int) radius, getActiveChar(), obj, true))
{
if (Util.checkIfInRange((int) radius, getActiveChar(), obj, true))
{
result.add((L2Character) obj);
}
result.add((L2Character) obj);
}
}
return result;

View File

@@ -73,21 +73,17 @@ public class GuardKnownList extends AttackableKnownList
}
}
}
else if ((Config.GUARD_ATTACK_AGGRO_MOB && getActiveChar().isInActiveRegion()) && object.isMonster())
else if ((Config.GUARD_ATTACK_AGGRO_MOB && getActiveChar().isInActiveRegion()) && object.isMonster() && ((L2MonsterInstance) object).isAggressive())
{
// Check if the object added is an aggressive L2MonsterInstance
if (((L2MonsterInstance) object).isAggressive())
if (Config.DEBUG)
{
if (Config.DEBUG)
{
_log.fine(getActiveChar().getObjectId() + ": Aggressive mob " + object.getObjectId() + " entered scan range");
}
// Set the L2GuardInstance Intention to AI_INTENTION_ACTIVE
if (getActiveChar().getAI().getIntention() == CtrlIntention.AI_INTENTION_IDLE)
{
getActiveChar().getAI().setIntention(CtrlIntention.AI_INTENTION_ACTIVE, null);
}
_log.fine(getActiveChar().getObjectId() + ": Aggressive mob " + object.getObjectId() + " entered scan range");
}
// Set the L2GuardInstance Intention to AI_INTENTION_ACTIVE
if (getActiveChar().getAI().getIntention() == CtrlIntention.AI_INTENTION_IDLE)
{
getActiveChar().getAI().setIntention(CtrlIntention.AI_INTENTION_ACTIVE, null);
}
}
@@ -103,13 +99,9 @@ public class GuardKnownList extends AttackableKnownList
}
// Check if the aggression list of this guard is empty.
if (getActiveChar().getAggroList().isEmpty())
if (getActiveChar().getAggroList().isEmpty() && getActiveChar().hasAI() && !getActiveChar().isWalker())
{
// Set the L2GuardInstance to AI_INTENTION_IDLE
if (getActiveChar().hasAI() && !getActiveChar().isWalker())
{
getActiveChar().getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE, null);
}
getActiveChar().getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE, null);
}
return true;

View File

@@ -102,11 +102,12 @@ public class NpcKnownList extends CharKnownList
// Support for Walking monsters aggro
public void stopTrackingTask()
{
if (_trackingTask != null)
if (_trackingTask == null)
{
_trackingTask.cancel(true);
_trackingTask = null;
return;
}
_trackingTask.cancel(true);
_trackingTask = null;
}
// Support for Walking monsters aggro

View File

@@ -83,14 +83,9 @@ public class PcKnownList extends PlayableKnownList
{
object.sendInfo(getActiveChar());
if (object instanceof L2Character)
if ((object instanceof L2Character) && ((L2Character) object).hasAI())
{
// Update the state of the L2Character object client side by sending Server->Client packet MoveToPawn/CharMoveToLocation and AutoAttackStart to the L2PcInstance
final L2Character obj = (L2Character) object;
if (obj.hasAI())
{
obj.getAI().describeStateToPlayer(getActiveChar());
}
((L2Character) object).getAI().describeStateToPlayer(getActiveChar());
}
}
}

View File

@@ -667,12 +667,9 @@ public class CharStat
}
double mpConsume = skill.getMpConsume();
final double nextDanceMpCost = Math.ceil(skill.getMpConsume() / 2.);
if (skill.isDance())
if (skill.isDance() && Config.DANCE_CONSUME_ADDITIONAL_MP && (_activeChar != null) && (_activeChar.getDanceCount() > 0))
{
if (Config.DANCE_CONSUME_ADDITIONAL_MP && (_activeChar != null) && (_activeChar.getDanceCount() > 0))
{
mpConsume += _activeChar.getDanceCount() * nextDanceMpCost;
}
mpConsume += _activeChar.getDanceCount() * nextDanceMpCost;
}
mpConsume = calcStat(Stats.MP_CONSUME, mpConsume, null, skill);
@@ -681,14 +678,11 @@ public class CharStat
{
return (int) calcStat(Stats.DANCE_MP_CONSUME_RATE, mpConsume);
}
else if (skill.isMagic())
if (skill.isMagic())
{
return (int) calcStat(Stats.MAGICAL_MP_CONSUME_RATE, mpConsume);
}
else
{
return (int) calcStat(Stats.PHYSICAL_MP_CONSUME_RATE, mpConsume);
}
return (int) calcStat(Stats.PHYSICAL_MP_CONSUME_RATE, mpConsume);
}
/**
@@ -697,12 +691,7 @@ public class CharStat
*/
public final int getMpInitialConsume(Skill skill)
{
if (skill == null)
{
return 1;
}
return (int) calcStat(Stats.MP_CONSUME, skill.getMpInitialConsume(), null, skill);
return skill == null ? 1 : (int) calcStat(Stats.MP_CONSUME, skill.getMpInitialConsume(), null, skill);
}
public byte getAttackElement()
@@ -879,11 +868,7 @@ public class CharStat
public int getMaxBuffCount()
{
final int extraSlots = _activeChar.getSkillLevel(DIVINE_INSPIRATION);
if (extraSlots > -1)
{
return _maxBuffCount + extraSlots;
}
return _maxBuffCount;
return extraSlots > -1 ? _maxBuffCount + extraSlots : _maxBuffCount;
}
/**

View File

@@ -77,12 +77,7 @@ public class PcStat extends PlayableStat
final L2PcInstance activeChar = getActiveChar();
// Allowed to gain exp?
if (!getActiveChar().getAccessLevel().canGainExp())
{
return false;
}
if (!super.addExp(value))
if (!getActiveChar().getAccessLevel().canGainExp() || !super.addExp(value))
{
return false;
}

View File

@@ -191,23 +191,13 @@ public class PetStat extends SummonStat
@Override
public double getPAtkSpd()
{
double val = super.getPAtkSpd();
if (getActiveChar().isHungry())
{
val = val / 2;
}
return val;
return getActiveChar().isHungry() ? super.getPAtkSpd() / 2 : super.getPAtkSpd();
}
@Override
public int getMAtkSpd()
{
int val = super.getMAtkSpd();
if (getActiveChar().isHungry())
{
val = val / 2;
}
return val;
return getActiveChar().isHungry() ? super.getMAtkSpd() / 2 : super.getMAtkSpd();
}
@Override

View File

@@ -312,9 +312,7 @@ public class CharStatus
public final void setCurrentHpMp(double newHp, double newMp)
{
boolean hpOrMpWasChanged = setCurrentHp(newHp, false);
hpOrMpWasChanged |= setCurrentMp(newMp, false);
if (hpOrMpWasChanged)
if (setCurrentHp(newHp, false) | setCurrentMp(newMp, false))
{
getActiveChar().broadcastStatusUpdate();
}

View File

@@ -46,14 +46,7 @@ public class PcStatus extends PlayableStatus
@Override
public final void reduceCp(int value)
{
if (getCurrentCp() > value)
{
setCurrentCp(getCurrentCp() - value);
}
else
{
setCurrentCp(0);
}
setCurrentCp(getCurrentCp() > value ? getCurrentCp() - value : 0);
}
@Override
@@ -101,12 +94,9 @@ public class PcStatus extends PlayableStatus
getActiveChar().standUp();
}
if (!isDOT)
if (!isDOT && getActiveChar().isStunned() && (Rnd.get(10) == 0))
{
if (getActiveChar().isStunned() && (Rnd.get(10) == 0))
{
getActiveChar().stopStunning(true);
}
getActiveChar().stopStunning(true);
}
}
@@ -185,10 +175,8 @@ public class PcStatus extends PlayableStatus
final L2PcInstance caster = getActiveChar().getTransferingDamageTo();
if ((caster != null) && (getActiveChar().getParty() != null) && Util.checkIfInRange(1000, getActiveChar(), caster, true) && !caster.isDead() && (getActiveChar() != caster) && getActiveChar().getParty().getMembers().contains(caster))
{
int transferDmg = 0;
int transferDmg = Math.min((int) caster.getCurrentHp() - 1, (((int) value * (int) getActiveChar().getStat().calcStat(Stats.TRANSFER_DAMAGE_TO_PLAYER, 0, null, null)) / 100));
transferDmg = ((int) value * (int) getActiveChar().getStat().calcStat(Stats.TRANSFER_DAMAGE_TO_PLAYER, 0, null, null)) / 100;
transferDmg = Math.min((int) caster.getCurrentHp() - 1, transferDmg);
if (transferDmg > 0)
{
int membersInRange = 0;
@@ -294,39 +282,41 @@ public class PcStatus extends PlayableStatus
setCurrentHp(value);
}
if ((getActiveChar().getCurrentHp() < 0.5) && !isHPConsumption && getActiveChar().isMortal())
if ((getActiveChar().getCurrentHp() >= 0.5) || isHPConsumption || !getActiveChar().isMortal())
{
getActiveChar().abortAttack();
getActiveChar().abortCast();
if (getActiveChar().isInOlympiadMode())
{
stopHpMpRegeneration();
getActiveChar().setIsDead(true);
getActiveChar().setIsPendingRevive(true);
final L2Summon pet = getActiveChar().getPet();
if (pet != null)
{
pet.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE, null);
}
getActiveChar().getServitors().values().forEach(s -> s.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE, null));
return;
}
if ((attacker != null) && (attacker.isPlayer()))
{
final int hpRestore = (int) attacker.getStat().calcStat(Stats.HP_RESTORE_ON_KILL, 0, null, null);
if (hpRestore > 0)
{
final double amount = Math.max(Math.min((attacker.getMaxHp() * hpRestore) / 100, attacker.getMaxRecoverableHp() - attacker.getCurrentHp()), 0);
if (amount != 0)
{
attacker.setCurrentHp(amount + attacker.getCurrentHp());
}
}
}
getActiveChar().doDie(attacker);
return;
}
getActiveChar().abortAttack();
getActiveChar().abortCast();
if (getActiveChar().isInOlympiadMode())
{
stopHpMpRegeneration();
getActiveChar().setIsDead(true);
getActiveChar().setIsPendingRevive(true);
final L2Summon pet = getActiveChar().getPet();
if (pet != null)
{
pet.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE, null);
}
getActiveChar().getServitors().values().forEach(s -> s.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE, null));
return;
}
if ((attacker != null) && (attacker.isPlayer()))
{
final int hpRestore = (int) attacker.getStat().calcStat(Stats.HP_RESTORE_ON_KILL, 0, null, null);
if (hpRestore > 0)
{
final double amount = Math.max(Math.min((attacker.getMaxHp() * hpRestore) / 100, attacker.getMaxRecoverableHp() - attacker.getCurrentHp()), 0);
if (amount != 0)
{
attacker.setCurrentHp(amount + attacker.getCurrentHp());
}
}
}
getActiveChar().doDie(attacker);
}
@Override

Some files were not shown because too many files have changed in this diff Show More