Wanted to post another macro I made that is intended to make ini files to be used with itemsorter. I based this file off of Gear.mac by Lemons (
https://www.redguides.com/community/threads/gear-mac.75515/)
I am planning to box 18+ characters for progression style raiding from level 60. The intention of this file is to output a list of missing defiant pieces on a character to an ini file that can be used with itemsorter. The setup tag needs to be added to the file manually for now. Currently I run this with an 18box party and store the results into a single ini file that is tagged by character name to see who is missing Elaborate Defiant gear. I created a setup tag in itemsort_server.ini that has all my characters names. I then run the /mac itemsorter on my defiant mule (with slight modification to do wildcard search and remove the item once it is found. I will post the modification below.) The mule will then parcel the available defiant gear to the appropriate character. Currently does not handle weapons because there are too many different types. Also does not handle plate Bracer, only Wristguard / Wristband. I based the piece names off of elaborate defiant gear, so if there is variation some changes might need to be made.
Run from raid leader:
/dgra /mac MissingDefiant Raid Elaborate
Run from defiant gear mule:
/mac itemsorter
2021/05/24 Edit: Fixed bug - had ranged weapon slot still adding a line to ini file, removed that. Also added lines for the jewelry that is purchased from vendor. Populates based on whether the char is a caster or melee
2021/05/26 edit: Commented out the jewelry since it is no-trade
Might re-visit to set up some auto-buy capability
Edit: Added another macro to generate the [setup] tag using Raidmembers. Give filename the same as used for the missingdefiant macro, usage: /mac raidmembers <filename>
The changes in ItemSort.mac to do partial name match, and also only send 1 item per match (ie if there is item3=defiant plate wristguard, item4=defiant plate wristguard, the mule would parcel 2 wristguards)
All inside of the SendBag function:
Sub SendBag(string SendTo, string tag, int Bag)
/declare i int local 0
/declare Slot int local 0
/declare alive int 0
/declare tmp
/if (!${Window[Pack${Bag}].Open}) /itemnotify pack${Bag} rightmouseup
/delay 1s ${Window[Pack${Bag}].Open}
/delay 5
/notify MerchantWnd MW_Send_To_Edit leftmouseup
/call ClearChat
/call TypeIn ${SendTo}
/delay 5
/for Slot 1 to ${InvSlot[pack${Bag}].Item.Container} {
/if (${InvSlot[pack${Bag}].Item.Item[${Slot}].NoTrade}) {
/continue
}
/varset tmp ${InvSlot[pack${Bag}].Item.Item[${Slot}].Name}
/if (${tmp.Equal[NULL]}) {
/continue
}
/echo ... ${tmp}
/for i 1 to ${ItemMax} {
/if (!${Window[MerchantWnd].Open}) {
/endmacro
}
|2021/05/23: @eqplayer16 Changed from .Equal -> .Find to allow wildcard searches from the ini file.
/if (${Item[${i}].Find[*]} || ${InvSlot[pack${Bag}].Item.Item[${Slot}].Name.Find[${Item[${i}]}]}) {
/call SendItem ${SendTo} ${Bag} ${Slot}
|2021/0523: @eqplayer16 clear out the item entry so we only send one copy
/varset Item[${i}] ""
}
}
/next i
}
/next Slot
|** Close the bag I just checked **|
/if (${Window[Pack${Bag}].Open}) /itemnotify pack${Bag} rightmouseup
/return