Make a file called something like... resist_augs.inc and paste this code into it.
Doing it this way allows you to attach this code to any existing macro and can be /call 'ed from any other macro
I use a commander macro like E3 that I made 100% around my own group that allows me to just send commands like /nb lootall Paldail
will tell Paldail to loot the corpses and combine any augs he finds if he has multiple of the same type
#turbo
|Magic Box required
Sub DoResistAugs
/if (!${Defined[MagicBoxSlot]}) /declare MagicBoxSlot string outer
||Lets open all bags!
/if (!${Defined[bag]}) /declare bag int local 0
/if (!${Defined[packnum]}) /declare packnum int 1
/for packnum 1 to 10
/if (${InvSlot[pack${packnum}].Item.Name.Equal[A Magic Box]}) {
/varset MagicBoxSlot pack${packnum}
}
/next packnum
/if (!${Defined[T]}) /declare T int 1
/if (!${Defined[CurrentID]}) /declare CurrentID int outer
/if (!${Defined[AugmentItemCount]}) /declare AugmentItemCount int outer
/for bag 1 to 10
/if (!${Window[pack${bag}].Open} && ${InvSlot[pack${bag}].Item.Container}) /nomodkey /itemnotify pack${bag} rightmouseup
/next bag
| Stone of Heroic Resistance
| 130501 - 130520
/for packnum 1 to 10
/if (!${Window[pack${packnum}].Open} && ${InvSlot[pack${packnum}].Item.Container}) {
/itemnotify pack${packnum} rightmouseup
/delay 6
}
/if (${Window[pack${packnum}].Open} && ${InvSlot[pack${packnum}].Item.Container}) {
/for T 1 to 10
|See if the name is similar.. and if we have more than 1 of this ITEM
/if (${InvSlot[pack${packnum}].Item.Item[${T}].Name.Find[Stone of Heroic Resistance]}) {
/varset CurrentID ${InvSlot[pack${packnum}].Item.Item[${T}].ID}
|We must skip XX.. as that is the final stage!
/if (${CurrentID} > 130519) {
|/echo Skipping ID.. ${CurrentID} - ${InvSlot[pack${packnum}].Item.Item[${T}].Name}
/goto :dont_upgrade
/echo Item skipped.. if we got here.. something is WRONG
}
/call FindBaggedItems
|Find # of items...
/if (${AugmentItemCount} > 1) {
/itemnotify in pack${packnum} ${T} leftmouseup
/delay 9
/call CombineResistAugs
/call FindNext
}
}
:dont_upgrade
/next T
}
/next packnum
|Close our bags back up...
/for bag 1 to 10
/if (${Window[pack${bag}].Open} && ${InvSlot[pack${bag}].Item.Container}) /nomodkey /itemnotify pack${bag} rightmouseup
/next bag
/return
sub OpenAllBags
/if (!${Defined[bag]}) /declare bag int local 0
|Open our bags up...
/for bag 1 to 10
/if (!${Window[pack${bag}].Open} && ${InvSlot[pack${bag}].Item.Container}) /nomodkey /itemnotify pack${bag} rightmouseup
/next bag
/return
sub CloseAllBags
/if (!${Defined[bag]}) /declare bag int local 0
|Close our bags back up...
/for bag 1 to 10
/if (${Window[pack${bag}].Open} && ${InvSlot[pack${bag}].Item.Container}) /nomodkey /itemnotify pack${bag} rightmouseup
/next bag
/return
sub FindNext
|This is for next Item ID...
/if (!${Defined[P]}) /declare P int 1
/if (!${Defined[packnum2]}) /declare packnum2 int 1
/for packnum2 1 to 10
/if (!${Window[pack${packnum2}].Open} && ${InvSlot[pack${packnum2}].Item.Container}) {
/itemnotify pack${packnum2} rightmouseup
/delay 6
}
/if (${Window[pack${packnum2}].Open} && ${InvSlot[pack${packnum2}].Item.Container}) {
/for P 1 to 10
|See if the name is similar.. and if we have more than 1 of this ITEM
/if (${InvSlot[pack${packnum2}].Item.Item[${P}].Name.Find[Stone of Heroic Resistance]} && ${InvSlot[pack${packnum2}].Item.Item[${P}].ID} == ${CurrentID}) {
/itemnotify in pack${packnum2} ${P} leftmouseup
/delay 9
/call CombineResistAugs
/return
}
/next P
}
/next packnum2
/return
Sub FindBaggedItems
/varset AugmentItemCount 0
/if (!${Defined[P]}) /declare P int 1
/if (!${Defined[packnum3]}) /declare packnum3 int 1
/for packnum3 1 to 10
/if (!${Window[pack${packnum3}].Open} && ${InvSlot[pack${packnum3}].Item.Container}) {
/itemnotify pack${packnum3} rightmouseup
/delay 6
}
/if (${Window[pack${packnum3}].Open} && ${InvSlot[pack${packnum3}].Item.Container}) {
/for P 1 to 10
|See if the name is similar.. and if we have more than 1 of this ITEM
/if (${InvSlot[pack${packnum3}].Item.Item[${P}].Name.Find[Stone of Heroic Resistance]} && ${InvSlot[pack${packnum3}].Item.Item[${P}].ID} == ${CurrentID}) {
/varset AugmentItemCount ${Math.Calc[${AugmentItemCount}+1]}
}
/next P
}
/next packnum3
/return
Sub CombineResistAugs
|Make sure bag is open.. (it should be...)
/if (!${Window[${MagicBoxSlot}].Open} && ${InvSlot[${MagicBoxSlot}].Item.Container}) /nomodkey /itemnotify ${MagicBoxSlot} rightmouseup
/if (!${Defined[slot]}) /declare slot int 0
/varset slot ${Math.Calc[${FindItem[A Magic Box].Items}+1]}
/itemnotify in ${MagicBoxSlot} ${slot} leftmouseup
/delay 15
/if (${slot} == 2) {
/combine ${MagicBoxSlot}
/delay 2s
/autoinventory
/delay 3s
}
/return
Calling it from a macro is very simple too...
I suggest putting the Magic box in the 10th slot so autoinventory doesn't start filling your magic box with junk lol
So with this example... if the file is called.... augs.mac
You just type /macro augs .... and it will combine anything you have in your inventory till it can't combine anymore
#include resist_augs.inc
sub Main
/call DoResistAugs
/return