muffin v7.38.8
This commit is contained in:
parent
5e2d8f648b
commit
3e10cbbbf2
51 changed files with 2585 additions and 1972 deletions
|
|
@ -45,7 +45,7 @@ internal static class SkipCondition
|
|||
}
|
||||
}
|
||||
|
||||
internal sealed class CheckSkip(ILogger<CheckSkip> logger, Configuration configuration, AetheryteFunctions aetheryteFunctions, GameFunctions gameFunctions, QuestFunctions questFunctions, IClientState clientState, ICondition condition, ExtraConditionUtils extraConditionUtils, ClassJobUtils classJobUtils) : TaskExecutor<SkipTask>()
|
||||
internal sealed class CheckSkip(ILogger<CheckSkip> logger, Configuration configuration, AetheryteFunctions aetheryteFunctions, GameFunctions gameFunctions, QuestFunctions questFunctions, IClientState clientState, IObjectTable objectTable, ICondition condition, ExtraConditionUtils extraConditionUtils, ClassJobUtils classJobUtils) : TaskExecutor<SkipTask>()
|
||||
{
|
||||
protected override bool Start()
|
||||
{
|
||||
|
|
@ -200,9 +200,10 @@ internal static class SkipCondition
|
|||
if (skipConditions.NotTargetable && step != null && step.DataId.HasValue)
|
||||
{
|
||||
IGameObject gameObject = gameFunctions.FindObjectByDataId(step.DataId.Value);
|
||||
IGameObject gameObject2 = objectTable[0];
|
||||
if (gameObject == null)
|
||||
{
|
||||
if ((step.Position.GetValueOrDefault() - clientState.LocalPlayer.Position).Length() < 100f)
|
||||
if (gameObject2 != null && (step.Position.GetValueOrDefault() - gameObject2.Position).Length() < 100f)
|
||||
{
|
||||
logger.LogInformation("Skipping step, object is not nearby (but we are)");
|
||||
return true;
|
||||
|
|
@ -340,9 +341,10 @@ internal static class SkipCondition
|
|||
|
||||
private bool CheckLevelCondition(SkipStepConditions skipConditions)
|
||||
{
|
||||
if (skipConditions.MinimumLevel.HasValue && clientState.LocalPlayer != null && clientState.LocalPlayer.Level >= skipConditions.MinimumLevel.Value)
|
||||
ICharacter character = objectTable[0] as ICharacter;
|
||||
if (skipConditions.MinimumLevel.HasValue && character != null && character.Level >= skipConditions.MinimumLevel.Value)
|
||||
{
|
||||
logger.LogInformation("Skipping step, as player level {CurrentLevel} >= minimum level {MinLevel}", clientState.LocalPlayer.Level, skipConditions.MinimumLevel.Value);
|
||||
logger.LogInformation("Skipping step, as player level {CurrentLevel} >= minimum level {MinLevel}", character.Level, skipConditions.MinimumLevel.Value);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
|
@ -407,9 +409,9 @@ internal static class SkipCondition
|
|||
if (requiredCurrentJob != null && requiredCurrentJob.Count > 0)
|
||||
{
|
||||
List<EClassJob> list = step.RequiredCurrentJob.SelectMany((EExtendedClassJob x) => classJobUtils.AsIndividualJobs(x, elementId)).ToList();
|
||||
EClassJob rowId = (EClassJob)clientState.LocalPlayer.ClassJob.RowId;
|
||||
logger.LogInformation("Checking current job {CurrentJob} against {ExpectedJobs}", rowId, string.Join(",", list));
|
||||
if (!list.Contains(rowId))
|
||||
EClassJob valueOrDefault = ((EClassJob?)(objectTable[0] as ICharacter)?.ClassJob.RowId).GetValueOrDefault();
|
||||
logger.LogInformation("Checking current job {CurrentJob} against {ExpectedJobs}", valueOrDefault, string.Join(",", list));
|
||||
if (!list.Contains(valueOrDefault))
|
||||
{
|
||||
logger.LogInformation("Skipping step, as step requires a different job");
|
||||
return true;
|
||||
|
|
@ -421,14 +423,15 @@ internal static class SkipCondition
|
|||
|
||||
private bool CheckPositionCondition(SkipStepConditions skipConditions)
|
||||
{
|
||||
IGameObject gameObject = objectTable[0];
|
||||
NearPositionCondition nearPosition = skipConditions.NearPosition;
|
||||
if (nearPosition != null && clientState.TerritoryType == nearPosition.TerritoryId && Vector3.Distance(nearPosition.Position, clientState.LocalPlayer.Position) <= nearPosition.MaximumDistance)
|
||||
if (nearPosition != null && clientState.TerritoryType == nearPosition.TerritoryId && gameObject != null && Vector3.Distance(nearPosition.Position, gameObject.Position) <= nearPosition.MaximumDistance)
|
||||
{
|
||||
logger.LogInformation("Skipping step, as we're near the position");
|
||||
return true;
|
||||
}
|
||||
NearPositionCondition notNearPosition = skipConditions.NotNearPosition;
|
||||
if (notNearPosition != null && clientState.TerritoryType == notNearPosition.TerritoryId && notNearPosition.MaximumDistance <= Vector3.Distance(notNearPosition.Position, clientState.LocalPlayer.Position))
|
||||
if (notNearPosition != null && clientState.TerritoryType == notNearPosition.TerritoryId && gameObject != null && notNearPosition.MaximumDistance <= Vector3.Distance(notNearPosition.Position, gameObject.Position))
|
||||
{
|
||||
logger.LogInformation("Skipping step, as we're not near the position");
|
||||
return true;
|
||||
|
|
@ -479,7 +482,7 @@ internal static class SkipCondition
|
|||
|
||||
private unsafe bool IsBetterOrEqualItemEquipped(uint itemId)
|
||||
{
|
||||
if (clientState.LocalPlayer == null)
|
||||
if (objectTable[0] == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue