Unfortunately, that looks very similar to what I have, but it's not working for me.
Code:
Global Const $Rarity_Gold = 2624
Global Const $Rarity_Purple = 2626
Global Const $Rarity_Blue = 2623
Global Const $Rarity_White = 2621
CanPickUp(GetCurrentTarget())
Func CanPickUp($lItem)
If IsDllStruct($lItem) = 0 Then $lItem = GetAgentByID($lItem)
Local $lModelID = DllStructGetData(($lItem), 'ModelId')
Local $aExtraID = DllStructGetData($lItem, 'ExtraId')
Local $lRarity = GetRarity($lItem)
Local $Requirement = GetItemReq($lItem)
MsgBox(0,"Stuff",$lModelID & " - " & $aExtraID & " - " & $lRarity & " - " & $Requirement)
EndFunc
I've not been able to get beyond this point because all of those variables return 0.