XenoBot Forums - Powered by vBulletin

User Tag List

Results 1 to 10 of 16

Thread: Use X item on Heroic Axe.

Threaded View

Previous Post Previous Post   Next Post Next Post
  1. #10
    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.



Posting Permissions

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