I did use smiley232's salvagetrophy() function by salvaging with getitembyslot(1,1) but i though i'd make it salvage anywhere in bag or bank, wich i now have, and its working kinda neat, still have to do 1 manually salvage before running the function to avoid crash ofc. It salvages my roots without any problem continously, but the problem i have when trying to salvage my bramble bows is that it wants to salvage the purples & the golds, and i've been trying to make it not do that by having it only returning the amount of bows of white+blues inside the GetBowsCount(), and also blocking purple&gold out of the SalvageBramles() It basically doesnt go past if it finds a gold/purple bow, am i returning it wrong? or what am i missing here, anybody got a clue?:cool:
Code:
;Outandfarming()
inventory()
Func inventory()
out("Salvaging")
While GetRootCount() > 0
SalvageRoots(GetItemIDfromMobelID(819))
Sleep(getping() + 800)
If findsalvagekit() = 0 Then
out("Salvage kit")
If getgoldcharacter() < 100 Then
out("Golds")
withdrawgold(100)
Sleep(getping() + 1250)
EndIf
buyitem(2, 1, 100)
findsalvagekit()
Sleep(getping() + 1250)
EndIf
WEnd
While GetBowsCount() > 0
SalvageBrambles(GetItemIDfromMobelID($modeid_breambellong))
Sleep(getping() + 800)
SalvageBrambles(GetItemIDfromMobelID($modeid_breambelshort))
Sleep(getping() + 800)
SalvageBrambles(GetItemIDfromMobelID($modeid_breambelflat))
Sleep(getping() + 800)
SalvageBrambles(GetItemIDfromMobelID($modeid_breambelhorn))
Sleep(getping() + 800)
;SAME AS FIBER WATCH OUT (RECURVE)-->
SalvageBrambles(GetItemIDfromMobelID($modeid_breambelrecurve))
Sleep(getping() + 800)
WEnd
EndFunc ;==>inventory
Func GetItemIDfromMobelID($aModelID)
For $i = 1 To 16
For $j = 1 To DllStructGetData(GetBag($i), 'slots')
Local $item = GetItemBySlot($i, $j)
If DllStructGetData($item, 'ModelId') == $aModelID Then Return DllStructGetData($item, 'Id')
Next
Next
EndFunc ;==>GetItemIDfromMobelID
;REGION DRAGON ROOTS
Func SalvageRoots($aitem, $aBagsToUse = 16)
Local $lOffset[4] = [0, 0x18, 0x2C, 0x690]
Local $lSalvageSessionID = MemoryReadPtr($mBasePointer, $lOffset)
If IsDllStruct($aitem) = 0 Then
Local $lItemID = $aitem
Else
Local $lItemID = DllStructGetData($aitem, 'ID')
EndIf
If DllStructGetData(GetItemByItemID($lItemID), 'Type') <> 30 Then Return
Local $lSalvageKit = findsalvagekit() ;FindSalvageKit($aBagsToUse)
If $lSalvageKit = 0 Then Return
Return SendPacket(0x10, $HEADER_SALVAGE_MATS, $lSalvageSessionID[1], $lSalvageKit, $lItemID)
EndFunc ;==>SalvageRoots
Func GetRootCount()
Local $AAMOUNTROOTS = 0
Local $item
Local $i
Local $bag
Local $SLOT
For $bag = 1 To 16
For $SLOT = 1 To DllStructGetData(GetBag($bag), 'Slots')
Local $item = GetItemBySlot($bag, $SLOT)
;DRAGON ROOTS
If DllStructGetData($item, 'ModelID') == $modelid_dragonroots Then
$AAMOUNTROOTS += DllStructGetData($item, "Quantity")
Else
ContinueLoop
EndIf
Next
Next
Return $AAMOUNTROOTS
EndFunc ;==>GetRootCount
;REGION BRAMBLES
Func SalvageBrambles($aitem, $aBagsToUse = 16)
Local $lOffset[4] = [0, 0x18, 0x2C, 0x690]
Local $lSalvageSessionID = MemoryReadPtr($mBasePointer, $lOffset)
If IsDllStruct($aitem) = 0 Then
Local $lItemID = $aitem
Else
Local $lItemID = DllStructGetData($aitem, 'ID')
EndIf
If DllStructGetData(GetItemByItemID($lItemID), 'Type') <> 5 Then Return
Local $itemrarity = getrarity($aitem)
If $itemrarity = $rarity_gold Or $itemrarity = $rarity_purple Then Return
Local $lSalvageKit = findsalvagekit() ;FindSalvageKit($aBagsToUse)
If $lSalvageKit = 0 Then Return
Return SendPacket(0x10, $HEADER_SALVAGE_MATS, $lSalvageSessionID[1], $lSalvageKit, $lItemID)
EndFunc ;==>SalvageBrambles
Func GetBowsCount()
Local $AAMOUNTBOWS = 0
Local $item
Local $i
Local $bag
Local $SLOT
For $bag = 1 To 16
For $SLOT = 1 To DllStructGetData(GetBag($bag), 'Slots')
Local $item = GetItemBySlot($bag, $SLOT)
Local $M = DllStructGetData($item, 'ModelID')
Local $T = DllStructGetData($item, "Type")
Local $lRarity = getrarity($item)
;BRAMBLE BOWS
If $M = $modeid_breambelshort Or $M = $modeid_breambelrecurve Or $M = $modeid_breambellong Or $M = $modeid_breambelhorn Or $M = $modeid_breambelflat And $T = 5 Then
If $lRarity = $rarity_blue Or $lRarity = $rarity_white Then
$AAMOUNTBOWS += DllStructGetData($item, "Quantity")
else
ContinueLoop
EndIf
EndIf
Next
Next
Return $AAMOUNTBOWS
EndFunc ;==>GetBowsCount