Ir para conteúdo
TIBIABRBOT

TeamSpaker - ts.tibiabrbot.com.br      |      DiscordApp
 Grupo WhatsApp(BR) | WhatsApp(EN)
Facebook Pagina / Grupo
Otserv: Comming Soon

Por favor, considere realizar uma doação para nós em Tibia Coins - Personagem: Rikardol
Please, consider making a donation to us at Tibia Coins - Character: Rikardol

EdsonJunior

{Tutorial} Cavebot 100%

Recommended Posts

:: Tutorial Criando Cavebot 100% ::

Por: EdsonJunior

 

 

Recomendo usar o programa NOTEPAD++ para criar seus arquivos .LUA

A primeira linha de códigos (Depois de toda parte de Cavebot (configuração)) sempre adicione essa linha

 

registerEventListener(WALKER_SELECTLABEL, "onWalkerSelectLabel")

 

Introdução:

  • Cavebot (Configuração)
  • Resetando Backpacks
  • Depositando Itens
  • Banco
  • Comprando Itens
  • Hunt

 

Cavebot (Configuração)

 

Essa parte, é onde nos definiremos todo o roteiro do nosso script.

---------------------------------
------MadeInGyn WorkShop™--------
----Scripts By EdsonJunior-------
---------Divirta-se!-------------
---------------------------------

----------- BP SETUP ------------
local MainBP = "camouflage backpack" ----------- Backpack Principal
local GoldBP = "blue backpack" ---- Backpack para gold
local LootBP = "fur Backpack" ---- Backpack para Loot



------ REFILL SETUP ------
local MinMana = 125 --- quantas mana potion voltar para cidade.
local MaxMana = 400 --- quantas mana potion levar para hunt.
local IDMana = 268 --- ID Mana Potion
local CostMana = 50 --- Preço mana potion
local MinHealth = 15 -- quantos health potion voltar para cidade
local MaxHealth = 50 -- quantos health potion levar para hunt.
local IDHealth = 236 -- ID health potion
local CostHealth = 80 -- Preço health potion
local MinFood = 20 -- quantidade de food pra voltar da cidade.
local MaxFood = 100 -- quantidade de food para levar pra hunt
local IDFood = 3725 -- ID food
local CostFood = 10 -- Preço food

------- EXTRA SETTINGS ------
local MinCap = 50 --- Sair da hunt com quanto de cap.
local LogoutStamina = true --- Logar o char quanto estiver com 16horas de stamina (Loga no depot)

Resetando Backpacks

 

 

Crie um label com o nome Backpacks

E coloque esse código no seu arquivo .lua

elseif (labelName == "Backpacks") then
        Walker.Stop()
        print([[Resetando Backpacks...]])
        wait(1000,2000)
        Self.CloseContainers()
        wait(2000,3000)
        Self.OpenMainBackpack(true):OpenChildren({Item.GetID(GoldBP), true}, {Item.GetID(LootBP), true})
        wait(2000,3000)
        Walker.Start()    
    end

Depositando Itens

 

Crie um label dentro do depot, com o nome Depositer

Coloque esse código no seu arquivo .lua

Self.DepositItems({ID ITEM, SLOT DP}
elseif (labelName == "Depositer") then
Walker.Stop()
        print([[Depositando itens...]])
Self.ReachDepot()
Self.DepositItems({8031, 0}, {10281, 0}, {239, 0}, {7642, 0})
Self.DepositItems({8063, 1}, {8044, 1}, {8084, 1})
        if (LogoutStamina) and (Self.Stamina() <= 960) then
            Walker.Stop()
        else
            Walker.Start()
        end

Banco

Crie um label no banco, com o nome Banco

Coloque esse codigo no seu arquivo .lua

elseif (labelName == "Banco") then
        local withdrawManas = math.max(MaxMana - Self.ItemCount(IDMana), 0)*CostMana
        local withdrawFood = math.max(MaxFood - Self.ItemCount(IDFood), 0)*CostFood
        local withdrawHealths = math.max(MaxHealth - Self.ItemCount(IDHEalth), 0)*CostHealth
        local totalmoneyneeded = (withdrawManas + withdrawFood + withdrawHealths)
        local MATHCEIL = (math.ceil((totalmoneyneeded/1000)))*1000
        Walker.Stop()
        print([[Depositando e retirando para refillar...]])
        Self.SayToNpc({"hi", "deposit all", "yes"}, 65)
        if (totalmoneyneeded > 0) then
            Self.SayToNpc({"withdraw " .. MATHCEIL, "yes"}, 65)
            Self.SayToNpc({"withdraw", "20", "yes"}, 65)
        end
        wait(2000)
        Walker.Start()

 Comprando Itens

Crie um label com nome Shop, perto do npc de potions

Coloque esse codigo no .lua

elseif (labelName == "Shop") then
        Walker.Stop()
        print([[Comprando...]])
        if (Self.ItemCount(IDMana) < MaxMana) or (Self.ItemCount(IDHealth) < MaxHealth) then
            Self.SayToNpc({"hi", "flasks", "yes", "yes", "yes", "yes", "yes", "yes", "trade"}, 65)
            wait(2000)
            if (Self.ItemCount(IDMana) < MaxMana) then
                BuyItems(IDMana, MaxMana)
                wait(500)
            end
            if (Self.ItemCount(IDHealth) < MaxHealth) then
                BuyItems(IDHealth, MaxHealth)
                wait(500)
            end
            wait(200, 500)
        end
        Walker.Start()

Hunt

Nosso script fica nessa forma

 

Backpacks

Waypoint DP

Depositer

Waypoint Banco

Banco

Waypoint Potion

Shop

CheckSupply  (Coloque o codigo abaixo no seu arquivo .lua)

elseif (labelName == "CheckSupply") then
Walker.ConditionalGoto((Self.ItemCount(IDMana) <= MinMana) or (Self.Cap() <= MinCap), "OkHunt", "Refill")  

Label OkHunt

Waypoint pra Hunt

Label Hunt

Waypoint da cave

Check (coloque o codigo abaixo no seu arquivo .lua)

elseif (labelName == "Check") then
        print([[Checando...]])
        Walker.ConditionalGoto((Self.ItemCount(IDMana) <= MinMana) or (Self.Cap() <= MinCap) or (Self.ItemCount(IDHealth) <= MinHealth) or ((LogoutStamina) and (Self.Stamina() <= 840)), "City", "Hunt")   

Label City

Waypoint voltando pro inicio (DP)

 

 

 

Seguindo essa sequencia, não tem erro, o script fica 100% afk

Terminando, você salva o arquivo .lua com o nome da sua hunt e salva em Documents/Xenobot/Scripts

Terminando no XenoBot, você vai em Settings, cria um novo profile salva com o nome da hunt (o mesmo do arquivo .lua) e já vai salvar automaticamente em Documents/Xenobot/Settings

 

Segue abaixo o arquivo.lua completo, usado no tutorial

---------------------------------
--------MadeInGyn WorkShop™--------
----Scripts By EdsonJunior-------
---------Divirta-se!-------------
---------------------------------

----------- BP SETUP ------------
local MainBP = "backpack" ----------- Backpack Principal
local GoldBP = "purple backpack" ---- Backpack para gold
local LootBP = "blue Backpack" ---- Backpack para Loot



------ REFILL SETUP ------
local MinMana = 20 --- quantas mana potion voltar para cidade.
local MaxMana = 60 --- quantas mana potion levar para hunt.
local IDMana = 268 --- ID Mana Potion
local CostMana = 50 --- Preço mana potion
local MinHealth = 5 -- quantos health potion voltar para cidade
local MaxHealth = 15 -- quantos health potion levar para hunt.
local IDHealth = 266 -- ID health potion
local CostHealth = 45 -- Preço health potion
local MinFood = 20 -- quantidade de food pra voltar da cidade.
local MaxFood = 100 -- quantidade de food para levar pra hunt
local IDFood = 3606 -- ID food
local CostFood = 2 -- Preço food

------- EXTRA SETTINGS ------
local MinCap = 50 --- Sair da hunt com quanto de cap.
local LogoutStamina = true --- Logar o char quanto estiver com 16horas de stamina (Loga no depot)

--------------------------------------------------------------------
--------------NÃO MEXA EM NADA AQUI PRA BAIXO-----------------------
--------------SAO CONFIGURAÇÕES DO SCRIPT....-----------------------
--------------SCRIPT FEITO POR EDSONJUNIOR--------------------------
--------------------------------------------------------------------

Targeting.Start()
Looter.Start()

registerEventListener(WALKER_SELECTLABEL, "onWalkerSelectLabel")

print([[ !! Script Feito Por EdsonJunior !!
-- ::[KNIGHT] Tarantulas PortHope :: --
\\ by MadeInGyn Workshop // ]])
wait(5000)

function onWalkerSelectLabel(labelName)
if (labelName == "Check") then
print([[Checando...]])
Walker.ConditionalGoto((Self.ItemCount(IDMana) <= MinMana) or (Self.Cap() <= MinCap) or (Self.ItemCount(IDHealth) <= MinHealth) or ((LogoutStamina) and (Self.Stamina() <= 840)), "City", "Hunt")

elseif (labelName == "CheckSupply") then
Walker.ConditionalGoto((Self.ItemCount(IDMana) <= MinMana) or (Self.Cap() <= MinCap), "OkHunt", "Refill")

elseif (labelName == "Floor2") then
Walker.ConditionalGoto(Floor2 == false, "Hunt")

elseif (labelName == "OpenDoor1") then
Self.OpenDoor(33013, 31488, 10)

elseif (labelName == "OpenDoor2") then
Self.OpenDoor(33008, 31492, 10)

elseif (labelName == "OpenDoor3") then
Self.OpenDoor(33010, 31537, 10)

elseif (labelName == "BarcoCity") then
Self.SayToNpc({"hi", "east", "yes"}, 65)

elseif (labelName == "BarcoHunt") then
Self.SayToNpc({"hi", "center", "yes"}, 65)



elseif (labelName == "Banco") then
local withdrawManas = math.max(MaxMana - Self.ItemCount(IDMana), 0)*CostMana
local withdrawFood = math.max(MaxFood - Self.ItemCount(IDFood), 0)*CostFood
local withdrawHealths = math.max(MaxHealth - Self.ItemCount(IDHEalth), 0)*CostHealth
local totalmoneyneeded = (withdrawManas + withdrawFood + withdrawHealths)
local MATHCEIL = (math.ceil((totalmoneyneeded/1000)))*1000
Walker.Stop()
print([[Depositando e retirando para refillar...]])
Self.SayToNpc({"hi", "deposit all", "yes"}, 65)
if (totalmoneyneeded > 0) then
Self.SayToNpc({"withdraw " .. MATHCEIL, "yes"}, 65)
Self.SayToNpc({"withdraw", "20", "yes"}, 65)
end
wait(2000)
Walker.Start()

elseif (labelName == "Depositer") then
Walker.Stop()
print([[Depositando itens...]])
Self.ReachDepot()
Self.DepositItems({8031, 1}, {10281, 1})
if (LogoutStamina) and (Self.Stamina() <= 960) then
Walker.Stop()
else
Walker.Start()
end

elseif (labelName == "Shop") then
Walker.Stop()
print([[Comprando...]])
if (Self.ItemCount(IDMana) < MaxMana) or (Self.ItemCount(IDHealth) < MaxHealth) then
Self.SayToNpc({"hi", "flasks", "yes", "yes", "yes", "yes", "yes", "yes", "trade"}, 65)
wait(2000)
if (Self.ItemCount(IDMana) < MaxMana) then
BuyItems(IDMana, MaxMana)
wait(500)
end
if (Self.ItemCount(IDHealth) < MaxHealth) then
BuyItems(IDHealth, MaxHealth)
wait(500)
end
wait(200, 500)
end
Walker.Start()

elseif (labelName == "Shop2") then
Walker.Stop()
print([[Comprando Royal Spear...]])
if (Self.ItemCount(IDRS) < MaxRS) then
Self.SayToNpc({"hi", "trade"}, 65)
wait(2000)
if (Self.ItemCount(IDRS) < IDRS) then
BuyItems(IDRS, MaxRS)
wait(500)
end
end
wait(200,500)
Walker.Start()

elseif (labelName == "ShopFood") then
Walker.Stop()
print([[Comprando Food...]])
if (Self.ItemCount(IDFood) < MaxFood)then
wait(2000)
Self.SayToNpc({"hi", "trade"}, 65)
wait(2000)
if (Self.ItemCount(IDFood) < MaxFood) then
BuyItems(IDFood, MaxFood)
wait(500)
end
end
Walker.Start()



elseif (labelName == "Backpacks") then
Walker.Stop()
print([[Resetando Backpacks...]])
wait(1000,2000)
Self.CloseContainers()
wait(2000,3000)
Self.OpenMainBackpack(true):OpenChildren({Item.GetID(GoldBP), true}, {Item.GetID(LootBP), true})
wait(2000,3000)
Walker.Start()





elseif (labelName == "PedirTask") then
print([[ Pedindo Task...]])
Self.SayToNpc({"hi", "task", "tarantulas", "yes"}, 65)
end


end




----------------------- Functions ----------------------
function BuyItems(item, count) -- item = item id, count = how many you want to buy up to
wait(900, 1200)
if (Self.ItemCount(item) < count) then
Self.ShopBuyItem(item, (count-Self.ItemCount(item)))
wait(200, 500)
end
end

Self.ReachDepot = function (tries)
local tries = tries or 3
Walker.Stop()
local DepotIDs = {3497, 3498, 3499, 3500}
local DepotPos = {}
for i = 1, #DepotIDs do
local dps = Map.GetUseItems(DepotIDs[i])
for j = 1, #dps do
table.insert(DepotPos, dps[j])
end
end
local function gotoDepot()
local pos = Self.Position()
print("Depots found: " .. tostring(#DepotPos))
for i = 1, #DepotPos do
location = DepotPos[i]
Self.UseItemFromGround(location.x, location.y, location.z)
wait(1000, 2000)
if Self.DistanceFromPosition(pos.x, pos.y, pos.z) >= 1 then
wait(5000, 6000)
if Self.DistanceFromPosition(location.x, location.y, location.z) == 1 then
Walker.Start()
return true
end
else
print("Something is blocking the path. Trying next depot.")
end
end
return false
end

repeat
reachedDP = gotoDepot()
if reachedDP then
return true
end
tries = tries - 1
sleep(100)
print("Attempt to reach depot was unsuccessfull. " .. tries .. " tries left.")
until tries <= 0

return false
end

Map.GetUseItems = function (id)
if type(id) == "string" then
id = Item.GetID(id)
end
local pos = Self.Position()
local store = {}
for x = -7, 7 do
for y = -5, 5 do
if Map.GetTopUseItem(pos.x + x, pos.y + y, pos.z).id == id then
itemPos = {x = pos.x + x, y = pos.y + y, z = pos.z}
table.insert(store, itemPos)
end
end
end
return store
end 

 

Cya.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá otimo trabalho nas configuraçoes que voce disse para nao mexer eu tirei shop food
pq acho que meu char nao necessita de food :D

enfim obrigado vou testar 
se der erro coloco o shopp food kkkkk

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 09/01/2016 at 15:32, alissonrenna disse:

como passo por cima do dogo do dragon lord no cavebot? fiz hunt em dl mais quando o dl taca fogo ele nao vai no waypoint :S

Mano, isso dai você consegue zem scripts , tem uma opção no bot que faz você andar em cima de fogo o Pathfinder.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora


×