[request] blessed wooden stake
Hello Guys!
I made a script for vampire dust collector and currently my blessed wooden stake persistent is somehow bugged.
Is there a 100% persistant for blessed wooden stake?
I have a hotkey preset for blessed wooden stake, and the persistent i currently use is this one
HTML Code:init start -- local SCRIPT_VERSION = '1.0.0' local Range = 6 -- Range from which bot will consider bodies local waitFreshBodies = false -- Wait till body wont be fresh? -- Do not edit anything below local fresh = {5995, 6006, 8744, 18961} -- ID's of fresh dead bodies local old = {4097, 4137, 8738, 18958} -- ID's of not fresh dead bodies local lootItems = {5906, 5905} -- items which will be added to the MMH list local function bodiesInfo(range, _fresh) local infos = {} for a=0, range do local i, j = -a, -a while j <= a do i = -a while i <= a do local px, py = $posx+i, $posy+j if (math.abs(j) == a or math.abs(i) == a) and tilehasinfo(px, py, $posz) then local tile = gettile(px, py, $posz) for k=0, tile.itemcount do if (_fresh and table.find(fresh, tile.item[k].id)) or (table.find(old, tile.item[k].id)) then table.insert(infos, {px, py}) break end end end if math.abs(j) ~= a then i = i+2*a else i = i + 1 end end j = j + 1 end end return infos end function _stake(range, waitfresh) local waitfresh = waitfresh or false local info = bodiesInfo(range, waitfresh) if skin and itemcount('blessed wooden stake') == 0 and clientitemhotkey('blessed wooden stake','crosshair') == 'not found' then info = {} return '' end if #info ~= 0 then -- Counting items (actual amount) local Amount = {} for _, Items in ipairs(lootItems) do Amount[Items] = itemcount(Items) end pausewalking(60000) for a=1, #info do local px, py = info[a][1], info[a][2] if tilehasinfo(px, py, $posz) and tilereachable(px, py, $posz) then local function distFrom(x,y) return math.abs($posx - x) > math.abs($posy - y) and math.abs($posx - x) or math.abs($posy - y) end if distFrom(px, py) > 1 then reachlocation(px, py, $posz) end local tile = gettile(px, py, $posz) if not table.find(old, topitem(px, py, $posz).id) and not table.find(fresh, topitem(px, py, $posz).id) then if itemproperty(topitem(px, py, $posz).id, ITEM_NOTMOVEABLE) then while windowcount("Browse Field") == 0 do browsefield(px, py, $posz) wait(500) end for i=1, getcontainer("Browse Field").itemcount do local itemId = getcontainer("Browse Field").item[i].id if (table.find(old, itemId)) or (table.find(fresh, itemId) and waitfresh) then while table.find(fresh, itemId) and waitfresh do wait(200) itemId = getcontainer("Browse Field").item[i].id end while not table.find(old, topitem(px, py, $posz).id) and itemcount(itemId, "Browse Field") > 0 do moveitems(itemId, ground(px, py, $posz), "Browse Field", 1) wait(500) end local function bodiesInWindow(win) local counter = 0 for i=1, getcontainer(win).itemcount do if (table.find(old, getcontainer(win).item[i].id)) or (waitfresh and table.find(fresh, getcontainer(win).item[i].id)) then counter = counter + 1 break end end return counter end if bodiesInWindow("Browse Field") <= 1 then closewindows("Browse Field") end break end end else local function push(startx, starty) local x,y,z = 0, 0, $posz for i=-1, 1 do for j=-1, 1 do if tilewalkable(startx+i, starty+j, $posz) and (i ~= 0 or j ~= 0) and x == 0 then x,y = startx+i, starty+j break end end end return x,y,z end while not table.find(fresh, topitem(px, py, $posz).id) and not table.find(old, topitem(px, py, $posz).id) do moveitems(topitem(px, py, $posz).id, ground(push(px, py)), ground(px, py, $posz), 1) wait(400, 500) end end end while table.find(fresh, topitem(px, py, $posz).id and waitfresh) do wait(200) end -- If standing on same tile as body then move somewhere if $posx == px and $posy == py then local dirs = { {$posx-1, $posy}, {$posx+1, $posy}, {$posx, $posy-1}, {$posx, $posy+1} } for _, v in ipairs(dirs) do if not itemproperty(topitem(v[1], v[2], $posz).id, ITEM_FLOORCHANGE) and tilewalkable(v[1], v[2], $posz) then moveto(v[1], v[2], $posz) wait(200) break end end end while table.find(old, topitem(px, py, $posz).id) do useitemon("blessed wooden stake", 0, ground(px, py, $posz)) wait(500) end end end -- Checking if count has changed for Item, Count in pairs(Amount) do local Current = itemcount(Item) if Current > Count then Amount[Item] = Current increaseamountlooted(Item, Current - Count) end end pausewalking(1000) end end init end auto(100) -- Example of use if maround(7) == 0 then _stake(Range, waitFreshBodies) end
With this persistent, sometimes my character get stuck because he's on top of the dead vampire, or even worst, he gets stuck because he tries to use browse field and cant find the dead vampire.
Any suggestions or working persistant?
Thx!!
edit1: Also, i couldnt find any recent script after they removed the wait fresh bodies time