Signup Now
Page 1 of 6 123 ... LastLast
Results 1 to 10 of 56
  1. #1
    Free User Garkstal's Avatar
    Join Date
    Dec 2013
    Location
    www.garkstalscripts.com
    Posts
    795
    Reputation
    124
    Rep Power
    23

    Blessed Wooden Stake User

    Blessed Wooden Stake User

    Description
    Using blessed wooden stake on dead bodies. Optionaly you can setup:

    • range - it will consider bodies only in this range
    • waitfresh - if true it will also consider fresh bodies


    It will use browse field if body is covered by any unmoveable item, if its covered by moveable item it will just push it away. It will also add looted items to the MMH list (you need to add items to the loot list also (Looting > LootList)).

    Configuration
    Just paste the code to:

    • Cavebot > Scripter (it will works only if cavebot is enabled)
    • Scripter > Persistant

    Code


    auto(200)
    if (maround(7,false) == 0 and $lootbodies == 0) then
    stake(7, true, false)
    end
    Last edited by Garkstal; 07-15-2016 at 12:22 PM.
    http://i.imgur.com/lkWkIMg.png
    ........................Script Name......................
    Profession
    Asura Palace ED + EK
    Characters for sale! | Like Our Facebook! | Sell Tibia Gold

  2. #2
    Free User Borges's Avatar
    Join Date
    Feb 2014
    Location
    Brazil
    Posts
    1,469
    Reputation
    205
    Rep Power
    25
    Great initiative to improve some functions that aren't working well.

    Good Job
    Helped you? REP+

  3. #3
    Free User pvzin's Avatar
    Join Date
    Dec 2013
    Location
    USA
    Posts
    974
    Reputation
    48
    Rep Power
    22
    Nice stuff!
    Yours,
    pvzin

  4. #4
    Free User Garkstal's Avatar
    Join Date
    Dec 2013
    Location
    www.garkstalscripts.com
    Posts
    795
    Reputation
    124
    Rep Power
    23
    Quote Originally Posted by borges View Post
    Great initiative to improve some functions that aren't working well.

    Good Job
    Quote Originally Posted by pvzin View Post
    Nice stuff!
    Thanks
    http://i.imgur.com/lkWkIMg.png
    ........................Script Name......................
    Profession
    Asura Palace ED + EK
    Characters for sale! | Like Our Facebook! | Sell Tibia Gold

  5. #5
    Free User Eli's Avatar
    Join Date
    Dec 2013
    Location
    www.eliscripts.com
    Posts
    355
    Reputation
    85
    Rep Power
    21
    Very well made, but what's the problem with built-in stake()?
    Skype account has been hacked, beware! We will not deal anymore with anyone using skype!

  6. #6
    Free User Garkstal's Avatar
    Join Date
    Dec 2013
    Location
    www.garkstalscripts.com
    Posts
    795
    Reputation
    124
    Rep Power
    23
    It doesnt use browse field if the body is covered by unmovable item (fire field etc)
    http://i.imgur.com/lkWkIMg.png
    ........................Script Name......................
    Profession
    Asura Palace ED + EK
    Characters for sale! | Like Our Facebook! | Sell Tibia Gold

  7. #7
    Free User Eli's Avatar
    Join Date
    Dec 2013
    Location
    www.eliscripts.com
    Posts
    355
    Reputation
    85
    Rep Power
    21
    Quote Originally Posted by Garkstal View Post
    It doesnt use browse field if the body is covered by unmovable item (fire field etc)
    got it now, awesome work mate
    Skype account has been hacked, beware! We will not deal anymore with anyone using skype!

  8. #8
    Free User trickerek's Avatar
    Join Date
    Jan 2014
    Posts
    107
    Reputation
    10
    Rep Power
    21
    Can u do the same for obsidian knife?:P
    @Garkstal

  9. #9
    Free User Garkstal's Avatar
    Join Date
    Dec 2013
    Location
    www.garkstalscripts.com
    Posts
    795
    Reputation
    124
    Rep Power
    23
    Quote Originally Posted by borges View Post
    Obsidian Knife User

    Description
    Using obsidian knife on dead bodies. Optionaly you can setup:

    • range - it will consider bodies only in this range
    • waitfresh - if true it will also consider fresh bodies


    It will use browse field if body is covered by any unmoveable item, if its covered by moveable item it will just push it away. It will also add looted items to the MMH list (you need to add items to the loot list also (Looting > LootList)).

    Configuration
    Just paste the code to:

    • Cavebot > Scripter (it will works only if cavebot is enabled)
    • Scripter > Persistant

    Credits: @Garkstal
    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 = {6017, 5969, 5973, 5981, 5982, 5983, 5984, 5999, 6030, 4239, 6040, 6041, 10355, 10359, 10363, 10367} -- ID's of fresh dead bodies
    local old = {4173, 4011, 4025, 4047, 4052, 4057, 4062, 4112, 4212, 4321, 4324, 4327, 10352, 10356, 10360, 10364 } -- ID's of not fresh dead bodies

    local lootItems = {5878, 5876, 5877, 5948, 5925, 5893, 954, 2977} -- 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 _skin(range, waitfresh)
    local waitfresh = waitfresh or false

    local info = bodiesInfo(range, waitfresh)

    if skin and itemcount('obsidian knife') == 0 and clientitemhotkey('obsidian knife','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("obsidian knife", 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
    _skin(Range, waitFreshBodies)
    end

    @trickerek
    It should be posted in new topic, will be easier to find.
    http://i.imgur.com/lkWkIMg.png
    ........................Script Name......................
    Profession
    Asura Palace ED + EK
    Characters for sale! | Like Our Facebook! | Sell Tibia Gold

  10. #10
    Free User
    Join Date
    Aug 2014
    Posts
    16
    Reputation
    10
    Rep Power
    0
    Nice, but my bot is conflicting with looting.

 

 

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •