XenoBot Forums - Powered by vBulletin

User Tag List

Page 2 of 2 FirstFirst 12
Results 11 to 16 of 16

Thread: Use X item on Heroic Axe.

  1. #11
    Senior Member Jontor's Avatar
    Join Date
    Sep 2014
    Posts
    446
    Mentioned
    51 Post(s)
    Tagged
    1 Thread(s)
    Quote Originally Posted by Elizabeth View Post
    @Oscagi @yompa93
    The script is very problematic, becouse:
    I'll have to always empty first container, this is impossible when i used bank. And i'll have to change all scripts .lua and create new products.

    I found this script:

    PHP Code:
    local AxeBackpack "Backpack Of Holding"
    local ReplaceAxe 16096
    local ChargeGem 
    675
     
    Module
    .New("Enchant", function(mod)
        
    local weapon Self.Weapon()
        if (
    weapon.id == 7389then
            Walker
    .Stop()
            
    local ping Self.Ping()
            
    local bp Container.New(AxeBackpack)
            
    local spots = {}
            while (
    Self.Weapon().id == 7389) do
                
    Self.Equip(ReplaceAxe"weapon")
                
    wait(500 ping)
            
    end
            
    for 0bp:ItemCount() do
                
    local spot bp:GetItemData(i)
                if (
    spot.id == ChargeGemthen
                    spots
    [1] = i
                
    elseif (spot.id == 7389then
                    spots
    [2] = i
                end
            end
            
    if (spots ~= nilthen
                bp
    :UseItemWithContainerItem(spots[1], bp:Index(), spots[2])
                
    wait(500 ping)
                
    local new = bp:GetItemData(spots[2])
                while (
    Self.Weapon().id ~= new.id) do
                    
    Self.Equip(new.id"weapon")
                    
    wait(500 ping)
                
    end
            
    else
                print(
    "Weapon and gems must be in the same backpack!")
            
    end
            Walker
    .Start()
        
    end
        mod
    :Delay(10000)
    end
    This is better, but sometimes when i have exhausted and script try use gem on axe don't do it, and my waypoints is stoped.
    It's very long, but should work and never fail as long as you have gems in your equipment.

    Code:
    local normalWeapon = 7389
    local chargedWeapon = 686
    local gemID = 675
    
    local isChanging = false
    
    function findEmptyContainer()
        for i = 0, 15 do
            if (Container.isOpen(i) and not Container.isFull(i)) then
                return i
            end
        end
        return nil
    end
    
    function findItemInContainer(item)
        local itemid = Item.GetItemIDFromDualInput(item)
    
        for i = 0, 15 do
            if (Container.isOpen(i)) then
                for spot = 0, Container.ItemCount(i) - 1 do
                    local data = Container.GetItemData(i, spot).id
    
                    if (itemid == data) then
                        return i, spot
                    end
                end
            end
        end
    
        return nil
    end
    
    function equipWeapon(weapon, callback)
        local cWeapon = Self.Weapon().id
        local weapon = Item.GetItemIDFromDualInput(weapon)
    
        local wCont, wSpot = findItemInContainer(weapon)
    
        if (not wCont or not wSpot) then
            callback()
            return false
        end
    
        local time = os.time()
        local sCount = Self.ItemCount(weapon, wCont)
    
        while (sCount == Self.ItemCount(weapon, wCont) and os.difftime(os.time(), time) < 10) do
            local wCont, wSpot = findItemInContainer(weapon)
    
            Container.MoveItemToEquipment(wCont, wSpot, "weapon", -1)
            wait(500)
        end
    
        callback()
        return true
    end
    
    function dequipWeapon(weapon, callback)
        local item = Self.Weapon().id
        local weapon = Item.GetItemIDFromDualInput(weapon)
    
        if (item ~= weapon) then
            callback(false)
            return false
        end
    
        local emptyCont = findEmptyContainer()
    
        if (not emptyCont) then
            callback(false)
            return false
        end
    
        local time = os.time()
    
        while (Self.Weapon().id == weapon and os.difftime(os.time(), time) < 10) do
            slotMoveItemToContainer("weapon", emptyCont, Container.ItemCount(emptyCont) - 1)
            wait(500)
        end
    
        callback(true)
        return true
    end
    
    function enchantWeapon(weapon, gem, chargedWeapon, callback)
        local weapon = Item.GetItemIDFromDualInput(weapon)
        local gem = Item.GetItemIDFromDualInput(gem)
        local chargedWeapon = Item.GetItemIDFromDualInput(chargedWeapon)
    
        local wCont, wSpot = findItemInContainer(weapon)
        local gCont, gSpot = findItemInContainer(gem)
    
        if (not wCont or not wSpot or not gCont or not gSpot) then
            callback(false)
            return false
        end
    
        local wItemCount = Self.ItemCount(weapon, wCont)
        local gItemCount = Self.ItemCount(gem, gCont)
        local cItemCount = Self.ItemCount(chargedWeapon)
        local time = os.time()
    
        while (wItemCount == Self.ItemCount(weapon, wCont) and gItemCount == Self.ItemCount(gem, gCont) and cItemCount == Self.ItemCount(chargedWeapon) and os.difftime(os.time(), time) < 10) do
            local wCont, wSpot = findItemInContainer(weapon)
            local gCont, gSpot = findItemInContainer(gem)
    
            Container.UseItemWithContainerItem(gCont, gSpot, wCont, wSpot)
            wait(500)
        end
    
        callback(true)
        return true
    end
    
    Module.New("Enchant Weapon", function(mod)
        if (Self.Weapon().id == normalWeapon and not isChanging and getSelfTargetID() == 0) then
            delayWalker(20000)
            isChanging = true
    
            dequipWeapon(normalWeapon, function(success)
                if (not success) then delayWalker(0) isChanging = false return end
    
                enchantWeapon(normalWeapon, gemID, chargedWeapon, function(success)
                    if (not success) then equipWeapon(normalWeapon, function() delayWalker(0) isChanging = false end) end
                    if (success) then equipWeapon(chargedWeapon, function() delayWalker(0) isChanging = false end) end
                end)
            end)
        end
    end)
    Last edited by Jontor; 05-04-2016 at 09:21 AM.



  2. #12
    Elizabeth's Avatar
    Join Date
    Mar 2016
    Location
    Poland
    Posts
    63
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by Jontor View Post
    It's very long, but should work and never fail as long as you have gems in your equipment.

    Code:
    local normalWeapon = 7389
    local chargedWeapon = 686
    local gemID = 675
    
    local isChanging = false
    
    function findEmptyContainer()
        for i = 0, 15 do
            if (Container.isOpen(i) and not Container.isFull(i)) then
                return i
            end
        end
        return nil
    end
    
    function findItemInContainer(item)
        local itemid = Item.GetItemIDFromDualInput(item)
    
        for i = 0, 15 do
            if (Container.isOpen(i)) then
                for spot = 0, Container.ItemCount(i) - 1 do
                    local data = Container.GetItemData(i, spot).id
    
                    if (itemid == data) then
                        return i, spot
                    end
                end
            end
        end
    
        return nil
    end
    
    function equipWeapon(weapon, callback)
        local cWeapon = Self.Weapon().id
        local weapon = Item.GetItemIDFromDualInput(weapon)
    
        local wCont, wSpot = findItemInContainer(weapon)
    
        if (not wCont or not wSpot) then
            callback()
            return false
        end
    
        local time = os.time()
        local sCount = Self.ItemCount(weapon, wCont)
    
        while (sCount == Self.ItemCount(weapon, wCont) and os.difftime(os.time(), time) < 10) do
            local wCont, wSpot = findItemInContainer(weapon)
    
            Container.MoveItemToEquipment(wCont, wSpot, "weapon", -1)
        end
    
        callback()
        return true
    end
    
    function dequipWeapon(weapon, callback)
        local item = Self.Weapon().id
        local weapon = Item.GetItemIDFromDualInput(weapon)
    
        if (item ~= weapon) then
            callback(false)
            return false
        end
    
        local emptyCont = findEmptyContainer()
    
        if (not emptyCont) then
            callback(false)
            return false
        end
    
        local time = os.time()
    
        while (Self.Weapon().id == weapon and os.difftime(os.time(), time) < 10) do
            slotMoveItemToContainer("weapon", emptyCont, Container.ItemCount(emptyCont) - 1)
            wait(500)
        end
    
        callback(true)
        return true
    end
    
    function enchantWeapon(weapon, gem, chargedWeapon, callback)
        local weapon = Item.GetItemIDFromDualInput(weapon)
        local gem = Item.GetItemIDFromDualInput(gem)
        local chargedWeapon = Item.GetItemIDFromDualInput(chargedWeapon)
    
        local wCont, wSpot = findItemInContainer(weapon)
        local gCont, gSpot = findItemInContainer(gem)
    
        if (not wCont or not wSpot or not gCont or not gSpot) then
            callback(false)
            return false
        end
    
        local wItemCount = Self.ItemCount(weapon, wCont)
        local gItemCount = Self.ItemCount(gem, gCont)
        local cItemCount = Self.ItemCount(chargedWeapon)
        local time = os.time()
    
        while (wItemCount == Self.ItemCount(weapon, wCont) and gItemCount == Self.ItemCount(gem, gCont) and cItemCount == Self.ItemCount(chargedWeapon) and os.difftime(os.time(), time) < 10) do
            local wCont, wSpot = findItemInContainer(weapon)
            local gCont, gSpot = findItemInContainer(gem)
    
            Container.UseItemWithContainerItem(gCont, gSpot, wCont, wSpot)
        end
    
        callback(true)
        return true
    end
    
    Module.New("Enchant Weapon", function(mod)
        if (Self.Weapon().id == normalWeapon and not isChanging and getSelfTargetID() == 0) then
            delayWalker(20000)
            isChanging = true
    
            dequipWeapon(normalWeapon, function(success)
                if (not success) then delayWalker(0) isChanging = false return end
    
                enchantWeapon(normalWeapon, gemID, chargedWeapon, function(success)
                    if (not success) then equipWeapon(normalWeapon, function() delayWalker(0) isChanging = false end) end
                    if (success) then equipWeapon(chargedWeapon, function() delayWalker(0) isChanging = false end) end
                end)
            end)
        end
    end)
    At the beginning script work good, but later when bot try change AXE my tibia has been bugged. (white window + no answer)

  3. #13

    Join Date
    Nov 2014
    Location
    Sundsvall, Sweden
    Posts
    174
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)
    how can you still use bot right after a update without subscription? having the tibia client running doesnt explain that.

  4. #14
    Senior Member Jontor's Avatar
    Join Date
    Sep 2014
    Posts
    446
    Mentioned
    51 Post(s)
    Tagged
    1 Thread(s)
    Quote Originally Posted by Elizabeth View Post
    At the beginning script work good, but later when bot try change AXE my tibia has been bugged. (white window + no answer)
    I forgot some waits, edited the post with code.



  5. #15
    Elizabeth's Avatar
    Join Date
    Mar 2016
    Location
    Poland
    Posts
    63
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by Jontor View Post
    I forgot some waits, edited the post with code.
    Jontor, sorry for replying so late.
    It's better now, but not completely.
    I have again show the message (not answer)only slightly less than before.

  6. #16
    Elizabeth's Avatar
    Join Date
    Mar 2016
    Location
    Poland
    Posts
    63
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)
    @Jontor
    please help me :<

Posting Permissions

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