Changed AutoUseTaskManager peace zone logic to enable skill casting in starting areas.

This commit is contained in:
MobiusDevelopment
2020-12-14 01:18:21 +00:00
parent ec890595a7
commit 4a5a7dbc0d
4 changed files with 100 additions and 40 deletions

View File

@@ -69,12 +69,14 @@ public class AutoUseTaskManager
continue; continue;
} }
if (player.hasBlockActions() || player.isControlBlocked() || player.isAlikeDead() || player.isInsideZone(ZoneId.PEACE)) if (player.hasBlockActions() || player.isControlBlocked() || player.isAlikeDead())
{ {
continue; continue;
} }
if (Config.ENABLE_AUTO_ITEM) final boolean isInPeaceZone = player.isInsideZone(ZoneId.PEACE);
if (Config.ENABLE_AUTO_ITEM && !isInPeaceZone)
{ {
ITEMS: for (Integer itemId : player.getAutoUseSettings().getAutoSupplyItems()) ITEMS: for (Integer itemId : player.getAutoUseSettings().getAutoSupplyItems())
{ {
@@ -107,7 +109,7 @@ public class AutoUseTaskManager
} }
} }
if (Config.ENABLE_AUTO_POTION && (player.getCurrentHpPercent() <= player.getAutoPlaySettings().getAutoPotionPercent())) if (Config.ENABLE_AUTO_POTION && !isInPeaceZone && (player.getCurrentHpPercent() <= player.getAutoPlaySettings().getAutoPotionPercent()))
{ {
POTIONS: for (Integer itemId : player.getAutoUseSettings().getAutoPotionItems()) POTIONS: for (Integer itemId : player.getAutoUseSettings().getAutoPotionItems())
{ {
@@ -132,20 +134,33 @@ public class AutoUseTaskManager
if (Config.ENABLE_AUTO_BUFF && !player.isMoving()) if (Config.ENABLE_AUTO_BUFF && !player.isMoving())
{ {
BUFFS: for (Integer skillId : player.getAutoUseSettings().getAutoSkills()) SKILLS: for (Integer skillId : player.getAutoUseSettings().getAutoSkills())
{ {
final Skill skill = player.getKnownSkill(skillId.intValue()); final Skill skill = player.getKnownSkill(skillId.intValue());
if (skill == null) if (skill == null)
{ {
player.getAutoUseSettings().getAutoSkills().remove(skillId); player.getAutoUseSettings().getAutoSkills().remove(skillId);
continue BUFFS; // TODO: break? continue SKILLS; // TODO: break?
} }
// Check bad skill target.
final WorldObject target = player.getTarget(); final WorldObject target = player.getTarget();
if ((skill.isBad() && (target == null)) || (target == player)) // Casting on self stops movement.
if (target == player)
{ {
continue BUFFS; continue SKILLS;
}
// Check bad skill target.
if (skill.isBad())
{
if (target == null)
{
continue SKILLS;
}
}
// Fixes start area issue.
else if (isInPeaceZone)
{
continue SKILLS;
} }
if (!player.isAffectedBySkill(skillId.intValue()) && !player.hasSkillReuse(skill.getReuseHashCode()) && skill.checkCondition(player, player, false)) if (!player.isAffectedBySkill(skillId.intValue()) && !player.hasSkillReuse(skill.getReuseHashCode()) && skill.checkCondition(player, player, false))
@@ -155,7 +170,7 @@ public class AutoUseTaskManager
{ {
if (!player.hasServitors()) // Is this check truly needed? if (!player.hasServitors()) // Is this check truly needed?
{ {
continue BUFFS; continue SKILLS;
} }
int occurrences = 0; int occurrences = 0;
for (Summon servitor : player.getServitors().values()) for (Summon servitor : player.getServitors().values())
@@ -167,7 +182,7 @@ public class AutoUseTaskManager
} }
if (occurrences == player.getServitors().size()) if (occurrences == player.getServitors().size())
{ {
continue BUFFS; continue SKILLS;
} }
} }

View File

@@ -69,12 +69,14 @@ public class AutoUseTaskManager
continue; continue;
} }
if (player.hasBlockActions() || player.isControlBlocked() || player.isAlikeDead() || player.isInsideZone(ZoneId.PEACE)) if (player.hasBlockActions() || player.isControlBlocked() || player.isAlikeDead())
{ {
continue; continue;
} }
if (Config.ENABLE_AUTO_ITEM) final boolean isInPeaceZone = player.isInsideZone(ZoneId.PEACE);
if (Config.ENABLE_AUTO_ITEM && !isInPeaceZone)
{ {
ITEMS: for (Integer itemId : player.getAutoUseSettings().getAutoSupplyItems()) ITEMS: for (Integer itemId : player.getAutoUseSettings().getAutoSupplyItems())
{ {
@@ -107,7 +109,7 @@ public class AutoUseTaskManager
} }
} }
if (Config.ENABLE_AUTO_POTION && (player.getCurrentHpPercent() <= player.getAutoPlaySettings().getAutoPotionPercent())) if (Config.ENABLE_AUTO_POTION && !isInPeaceZone && (player.getCurrentHpPercent() <= player.getAutoPlaySettings().getAutoPotionPercent()))
{ {
POTIONS: for (Integer itemId : player.getAutoUseSettings().getAutoPotionItems()) POTIONS: for (Integer itemId : player.getAutoUseSettings().getAutoPotionItems())
{ {
@@ -132,20 +134,33 @@ public class AutoUseTaskManager
if (Config.ENABLE_AUTO_BUFF && !player.isMoving()) if (Config.ENABLE_AUTO_BUFF && !player.isMoving())
{ {
BUFFS: for (Integer skillId : player.getAutoUseSettings().getAutoSkills()) SKILLS: for (Integer skillId : player.getAutoUseSettings().getAutoSkills())
{ {
final Skill skill = player.getKnownSkill(skillId.intValue()); final Skill skill = player.getKnownSkill(skillId.intValue());
if (skill == null) if (skill == null)
{ {
player.getAutoUseSettings().getAutoSkills().remove(skillId); player.getAutoUseSettings().getAutoSkills().remove(skillId);
continue BUFFS; // TODO: break? continue SKILLS; // TODO: break?
} }
// Check bad skill target.
final WorldObject target = player.getTarget(); final WorldObject target = player.getTarget();
if ((skill.isBad() && (target == null)) || (target == player)) // Casting on self stops movement.
if (target == player)
{ {
continue BUFFS; continue SKILLS;
}
// Check bad skill target.
if (skill.isBad())
{
if (target == null)
{
continue SKILLS;
}
}
// Fixes start area issue.
else if (isInPeaceZone)
{
continue SKILLS;
} }
if (!player.isAffectedBySkill(skillId.intValue()) && !player.hasSkillReuse(skill.getReuseHashCode()) && skill.checkCondition(player, player, false)) if (!player.isAffectedBySkill(skillId.intValue()) && !player.hasSkillReuse(skill.getReuseHashCode()) && skill.checkCondition(player, player, false))
@@ -155,7 +170,7 @@ public class AutoUseTaskManager
{ {
if (!player.hasServitors()) // Is this check truly needed? if (!player.hasServitors()) // Is this check truly needed?
{ {
continue BUFFS; continue SKILLS;
} }
int occurrences = 0; int occurrences = 0;
for (Summon servitor : player.getServitors().values()) for (Summon servitor : player.getServitors().values())
@@ -167,7 +182,7 @@ public class AutoUseTaskManager
} }
if (occurrences == player.getServitors().size()) if (occurrences == player.getServitors().size())
{ {
continue BUFFS; continue SKILLS;
} }
} }

View File

@@ -69,12 +69,14 @@ public class AutoUseTaskManager
continue; continue;
} }
if (player.hasBlockActions() || player.isControlBlocked() || player.isAlikeDead() || player.isInsideZone(ZoneId.PEACE)) if (player.hasBlockActions() || player.isControlBlocked() || player.isAlikeDead())
{ {
continue; continue;
} }
if (Config.ENABLE_AUTO_ITEM) final boolean isInPeaceZone = player.isInsideZone(ZoneId.PEACE);
if (Config.ENABLE_AUTO_ITEM && !isInPeaceZone)
{ {
ITEMS: for (Integer itemId : player.getAutoUseSettings().getAutoSupplyItems()) ITEMS: for (Integer itemId : player.getAutoUseSettings().getAutoSupplyItems())
{ {
@@ -107,7 +109,7 @@ public class AutoUseTaskManager
} }
} }
if (Config.ENABLE_AUTO_POTION && (player.getCurrentHpPercent() <= player.getAutoPlaySettings().getAutoPotionPercent())) if (Config.ENABLE_AUTO_POTION && !isInPeaceZone && (player.getCurrentHpPercent() <= player.getAutoPlaySettings().getAutoPotionPercent()))
{ {
POTIONS: for (Integer itemId : player.getAutoUseSettings().getAutoPotionItems()) POTIONS: for (Integer itemId : player.getAutoUseSettings().getAutoPotionItems())
{ {
@@ -132,20 +134,33 @@ public class AutoUseTaskManager
if (Config.ENABLE_AUTO_BUFF && !player.isMoving()) if (Config.ENABLE_AUTO_BUFF && !player.isMoving())
{ {
BUFFS: for (Integer skillId : player.getAutoUseSettings().getAutoSkills()) SKILLS: for (Integer skillId : player.getAutoUseSettings().getAutoSkills())
{ {
final Skill skill = player.getKnownSkill(skillId.intValue()); final Skill skill = player.getKnownSkill(skillId.intValue());
if (skill == null) if (skill == null)
{ {
player.getAutoUseSettings().getAutoSkills().remove(skillId); player.getAutoUseSettings().getAutoSkills().remove(skillId);
continue BUFFS; // TODO: break? continue SKILLS; // TODO: break?
} }
// Check bad skill target.
final WorldObject target = player.getTarget(); final WorldObject target = player.getTarget();
if ((skill.isBad() && (target == null)) || (target == player)) // Casting on self stops movement.
if (target == player)
{ {
continue BUFFS; continue SKILLS;
}
// Check bad skill target.
if (skill.isBad())
{
if (target == null)
{
continue SKILLS;
}
}
// Fixes start area issue.
else if (isInPeaceZone)
{
continue SKILLS;
} }
if (!player.isAffectedBySkill(skillId.intValue()) && !player.hasSkillReuse(skill.getReuseHashCode()) && skill.checkCondition(player, player, false)) if (!player.isAffectedBySkill(skillId.intValue()) && !player.hasSkillReuse(skill.getReuseHashCode()) && skill.checkCondition(player, player, false))
@@ -155,7 +170,7 @@ public class AutoUseTaskManager
{ {
if (!player.hasServitors()) // Is this check truly needed? if (!player.hasServitors()) // Is this check truly needed?
{ {
continue BUFFS; continue SKILLS;
} }
int occurrences = 0; int occurrences = 0;
for (Summon servitor : player.getServitors().values()) for (Summon servitor : player.getServitors().values())
@@ -167,7 +182,7 @@ public class AutoUseTaskManager
} }
if (occurrences == player.getServitors().size()) if (occurrences == player.getServitors().size())
{ {
continue BUFFS; continue SKILLS;
} }
} }

View File

@@ -69,12 +69,14 @@ public class AutoUseTaskManager
continue; continue;
} }
if (player.hasBlockActions() || player.isControlBlocked() || player.isAlikeDead() || player.isInsideZone(ZoneId.PEACE)) if (player.hasBlockActions() || player.isControlBlocked() || player.isAlikeDead())
{ {
continue; continue;
} }
if (Config.ENABLE_AUTO_ITEM) final boolean isInPeaceZone = player.isInsideZone(ZoneId.PEACE);
if (Config.ENABLE_AUTO_ITEM && !isInPeaceZone)
{ {
ITEMS: for (Integer itemId : player.getAutoUseSettings().getAutoSupplyItems()) ITEMS: for (Integer itemId : player.getAutoUseSettings().getAutoSupplyItems())
{ {
@@ -107,7 +109,7 @@ public class AutoUseTaskManager
} }
} }
if (Config.ENABLE_AUTO_POTION && (player.getCurrentHpPercent() <= player.getAutoPlaySettings().getAutoPotionPercent())) if (Config.ENABLE_AUTO_POTION && !isInPeaceZone && (player.getCurrentHpPercent() <= player.getAutoPlaySettings().getAutoPotionPercent()))
{ {
POTIONS: for (Integer itemId : player.getAutoUseSettings().getAutoPotionItems()) POTIONS: for (Integer itemId : player.getAutoUseSettings().getAutoPotionItems())
{ {
@@ -132,20 +134,33 @@ public class AutoUseTaskManager
if (Config.ENABLE_AUTO_BUFF && !player.isMoving()) if (Config.ENABLE_AUTO_BUFF && !player.isMoving())
{ {
BUFFS: for (Integer skillId : player.getAutoUseSettings().getAutoSkills()) SKILLS: for (Integer skillId : player.getAutoUseSettings().getAutoSkills())
{ {
final Skill skill = player.getKnownSkill(skillId.intValue()); final Skill skill = player.getKnownSkill(skillId.intValue());
if (skill == null) if (skill == null)
{ {
player.getAutoUseSettings().getAutoSkills().remove(skillId); player.getAutoUseSettings().getAutoSkills().remove(skillId);
continue BUFFS; // TODO: break? continue SKILLS; // TODO: break?
} }
// Check bad skill target.
final WorldObject target = player.getTarget(); final WorldObject target = player.getTarget();
if ((skill.isBad() && (target == null)) || (target == player)) // Casting on self stops movement.
if (target == player)
{ {
continue BUFFS; continue SKILLS;
}
// Check bad skill target.
if (skill.isBad())
{
if (target == null)
{
continue SKILLS;
}
}
// Fixes start area issue.
else if (isInPeaceZone)
{
continue SKILLS;
} }
if (!player.isAffectedBySkill(skillId.intValue()) && !player.hasSkillReuse(skill.getReuseHashCode()) && skill.checkCondition(player, player, false)) if (!player.isAffectedBySkill(skillId.intValue()) && !player.hasSkillReuse(skill.getReuseHashCode()) && skill.checkCondition(player, player, false))
@@ -155,7 +170,7 @@ public class AutoUseTaskManager
{ {
if (!player.hasServitors()) // Is this check truly needed? if (!player.hasServitors()) // Is this check truly needed?
{ {
continue BUFFS; continue SKILLS;
} }
int occurrences = 0; int occurrences = 0;
for (Summon servitor : player.getServitors().values()) for (Summon servitor : player.getServitors().values())
@@ -167,7 +182,7 @@ public class AutoUseTaskManager
} }
if (occurrences == player.getServitors().size()) if (occurrences == player.getServitors().size())
{ {
continue BUFFS; continue SKILLS;
} }
} }