muffin v7.38
This commit is contained in:
parent
411c0bbe76
commit
e5b98b3d57
35 changed files with 10700 additions and 7610 deletions
|
|
@ -257,6 +257,12 @@ internal static class SkipCondition
|
|||
return true;
|
||||
}
|
||||
}
|
||||
item = skipConditions.Item;
|
||||
if (item != null && item.BetterOrEqualItemEquipped && step != null && step.ItemId.HasValue && IsBetterOrEqualItemEquipped(step.ItemId.Value))
|
||||
{
|
||||
logger.LogInformation("Skipping step, better or equal item than {ItemId} is already equipped", step.ItemId.Value);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
@ -471,6 +477,39 @@ internal static class SkipCondition
|
|||
return false;
|
||||
}
|
||||
|
||||
private unsafe bool IsBetterOrEqualItemEquipped(uint itemId)
|
||||
{
|
||||
if (clientState.LocalPlayer == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
InventoryManager* ptr = InventoryManager.Instance();
|
||||
if (ptr == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
uint itemLevel = gameFunctions.GetItemLevel(itemId);
|
||||
if (itemLevel == 0)
|
||||
{
|
||||
logger.LogWarning("Could not get item level for item {ItemId}, skipping equip step", itemId);
|
||||
return true;
|
||||
}
|
||||
if (ptr->GetInventoryItemCount(itemId, isHq: false, checkEquipped: true, checkArmory: true, 0) == 0 && ptr->GetInventoryItemCount(itemId, isHq: true, checkEquipped: true, checkArmory: true, 0) == 0)
|
||||
{
|
||||
logger.LogInformation("Item {ItemId} not found in inventory, skipping equip step", itemId);
|
||||
return true;
|
||||
}
|
||||
InventoryItem* inventorySlot = ptr->GetInventoryContainer(InventoryType.EquippedItems)->GetInventorySlot(0);
|
||||
if (inventorySlot == null || inventorySlot->ItemId == 0)
|
||||
{
|
||||
logger.LogDebug("No item equipped in main hand slot, should equip item {ItemId}", itemId);
|
||||
return false;
|
||||
}
|
||||
uint itemLevel2 = gameFunctions.GetItemLevel(inventorySlot->ItemId);
|
||||
logger.LogDebug("Comparing equipped item level {EquippedLevel} with target item level {TargetLevel}", itemLevel2, itemLevel);
|
||||
return itemLevel2 >= itemLevel;
|
||||
}
|
||||
|
||||
public override ETaskResult Update()
|
||||
{
|
||||
return ETaskResult.SkipRemainingTasksForStep;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue