Code:
Global Const $TYPE_KEY = 18
Func CanPickUpEx($aItem, $bCanPickup)
If Not $bCanPickup Then Return True
$aModelID = DllStructGetData($aItem, 'modelid')
$aExtraID = DllStructGetData($aItem,'extraid')
$aRarity = GetRarity($aItem)
$aType = DllStructGetData($aItem,'Type')
$aItemID = DllStructGetData($aItem, "id")
$aReq = GetItemReq($aItem)
Switch $aRarity
Case 2624 ; Gold Items
$iGoldCount += 1
Return True
; Case 2627 ; Green Items
; $iUniqueCount += 1
; Return True
EndSwitch
Switch $aModelID
Case 1953, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975 ; All Froggy's
$iFroggyCount += 1
Return True
Case 935, 936 ; 935 = Diamond, 936 = Onyx Gemstone
Return True
Case 146 ; Dyes
If $aExtraID = 10 then; Black dye
$iBlackDyeCount += 1
Return True
Else
Return False
Endif
Case 22751 ; Lockpick
$iLockpickCount += 1
Return True
Case 3256, 3746, 5594, 5595, 5611, 21233, 22279, 22280 ; Scrolls
$iScrollCount += 1
Return True
Case 21786, 21787, 21788, 21789, 21790, 21791, 21792, 21793, 21794, 21795, 21796, 21797, 21798, 21799, 21800, 21801, 21802, 21803, 21804, 21805 ; Tomes
$iTomeCount += 1
Return True
Case 910, 2513, 5585, 6049, 6366, 6367, 6375, 15477, 19171, 19172, 19173, 22190, 24593, 28435, 30855, 31145, 31146, 35124, 36682 _ ; alcohol
, 15528, 15479, 19170, 21492, 21812, 22644, 30208, 31150, 35125, 36681 _ ; sweets
, 17060, 17061, 17062, 22269, 28431, 28432, 28436, 29431, 31151, 31152, 31153, 35121 _ ; Sweet Pcons
, 6370, 19039, 21488, 21489, 22191, 26784, 28433, 35127 _ ; DP Removal Sweets
, 556, 18345, 21491, 37765, 21833, 28433, 28434 ; Special Drops
Return True
Case 2511 ; Gold/Plat
$aAmount = DllStructGetData($aItem, 'Value')
If GetGoldCharacter() + $aAmount > 100000 Then
Return False
Else
Return True
EndIf
; Case 24372 ; Naga Shaman Polymock Piece
; Return True
Case 27036 ; Amphibian Tongue - Nicholas Sometimes
Return True
EndSwitch
Switch $aType
Case $TYPE_KEY
Return True
Case $TYPE_SHIELD ; shields
If $aReq = 8 And GetItemMaxDmg($aItem) = 16 Then ; Req8 Shields
Return True
ElseIf $aReq = 7 And GetItemMaxDmg($aItem) = 15 Then ; Req7 Shields
Return True
ElseIf $aReq = 6 And GetItemMaxDmg($aItem) = 14 Then ; Req6 Shields
Return True
ElseIf $aReq = 5 And GetItemMaxDmg($aItem) = 13 Then ; Req5 Shields
Return True
ElseIf $aReq = 4 And GetItemMaxDmg($aItem) = 12 Then ; Req4 Shields
Return True
EndIf
EndSwitch
Return False
EndFunc