Hey, friends!
I need script, that will use item X from my main BP on my Heroic Axe. Attachment 13565
For exemple every one minute.
Printable View
Hey, friends!
I need script, that will use item X from my main BP on my Heroic Axe. Attachment 13565
For exemple every one minute.
Attachment 13567
No subscription no script.
My monthly sub has ran out, but i just let tibia be runnin til i get cash. could be in the same position :(
I have this but it dequip the weapon but dont use the sapphire, and I dont find wheres the mystake, maybe @Jontor can help you.
Sorry.
lua code:
local bp = 'Dragon Backpack'
while(true) do
c = Container.GetByName(bp)
if(Self.Weapon().id == 7383) then -- Relic Sword
for spot = 0, c:ItemCount()-1 do
if c:GetItemData(spot).id == 675 then -- Small Enchanted Sapphire
Self.Dequip("weapon", c)
wait(400,500)
c:UseItemWithContainerItem(spot, 1, 0)
wait(400,500)
Self.Equip(7383, "weapon")
end
end
end
wait(2000)
end
This should work, just have one backpack solely for this purpose. for example a bag with 10 enchanted sapphires and nothing else.
Code:-- I recommend having one backpack or bag for the enchant to take place,
-- because the enchanted sapphires needs to be on spot 1 and the weapon at spot 0 when enchanting.
local bp = 'dragon backpack'
while(true) do
c = Container.GetByName(bp)
if(Self.Weapon().id == 7383) then -- Relic Sword
for spot = 0, c:ItemCount()-1 do
if c:GetItemData(spot).id == 675 then -- Small Enchanted Sapphire
Self.Dequip("weapon", c)
wait(400,500)
c:UseItemWithContainerItem(1, bp, 0)
wait(400,500)
Self.Equip(680, "weapon") -- icy relic sword
end
end
end
wait(2000)
end
@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:
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.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 == 7389) then
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 i = 0, bp:ItemCount() do
local spot = bp:GetItemData(i)
if (spot.id == ChargeGem) then
spots[1] = i
elseif (spot.id == 7389) then
spots[2] = i
end
end
if (spots ~= nil) then
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)
what about this, cant test it atm so yeah
Code:local bp = 'dragon backpack'
while(true) do
c = Container.GetByName(bp)
if(Self.Weapon().id == 7383) then -- Relic Sword
for spot = 0, c:ItemCount()-1 do
if c:GetItemData(spot).id == 675 then -- Small Enchanted Sapphire
Self.Dequip("weapon", c)
wait(400,500)
c:UseItemWithContainerItem(spot, bp, 0)
wait(400,500)
Self.Equip(680, "weapon") -- icy relic sword
end
end
end
wait(2000)
end
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)
how can you still use bot right after a update without subscription? having the tibia client running doesnt explain that.:confused:
@Jontor
please help me :<