Documentação › Lua
CaveBot
O módulo CaveBot controla a rota do CaveBot pelo script: pular para um label, pausar, ler e editar waypoints, mudar ajustes de lure e as listas de sell e refill.
Waypoints são contados a partir de 0. Mudanças na rota feitas pelo script entram sem precisar parar o CaveBot.
Navegar na rota#
CaveBot.GoTo(label)#
CaveBot.GoTo(label) → booleano
Pula a rota para o waypoint Label com esse texto (sem diferenciar maiúsculas). Retorna false se o label não existe. Dentro de um waypoint Script, também encerra o script.
if Game.getItemCount(268) < 50 then CaveBot.GoTo("refill") endCaveBot.selectWaypoint(índice)#
CaveBot.selectWaypoint(índice)
Pula a rota para o waypoint pelo número. Dentro de um waypoint Script, também encerra o script.
CaveBot.selectWaypoint(0) -- volta para o começoCaveBot.getSelectedWaypointId()#
→ número
Waypoint atual. Retorna -1 com a rota vazia.
print("waypoint atual: " .. CaveBot.getSelectedWaypointId())CaveBot.pause(ms)#
CaveBot.pause(ms)
Pausa a rota por ms milissegundos. 0 retoma na hora, inclusive a pausa do evento LABEL.
CaveBot.pause(10000) -- espera 10 s
CaveBot.pause(0) -- retomaCaveBot.stopCurrentScript()#
CaveBot.stopCurrentScript()
Para o waypoint Script que está rodando.
CaveBot.stopCurrentScript()Ler waypoints#
CaveBot.getWaypoints()#
→ lista
Todos os waypoints, como {x, y, z, type, data}. type é o número de Enums.WaypointType e data é o texto do waypoint (label, código do script).
for i, w in ipairs(CaveBot.getWaypoints()) do print(i - 1, w.type, w.data) endCaveBot.getWaypointsCount()#
→ número
Quantos waypoints a rota tem.
print(CaveBot.getWaypointsCount())CaveBot.getWaypointTypeById(índice) e CaveBot.getWaypointDataById(índice)#
→ número / → tabela ou nil
Tipo do waypoint (-1 se o índice não existe) e o waypoint inteiro {x, y, z, type, data} (nil se não existe).
local w = CaveBot.getWaypointDataById(CaveBot.getSelectedWaypointId())
if w then print(w.x, w.y, w.z) endEditar waypoints#
tipo é Enums.WaypointType (um número desconhecido vira Node). dados é o texto do waypoint, opcional.
| Função | O que faz |
|---|---|
CaveBot.addWaypoint(tipo, x, y, z, dados) | Adiciona no fim |
CaveBot.insertWaypoint(índice, tipo, x, y, z, dados) | Insere na posição |
CaveBot.replaceWaypoint(índice, tipo, x, y, z, dados) | Troca o waypoint |
CaveBot.deleteWaypoint(índice) | Apaga o waypoint |
CaveBot.clearWaypoints() | Apaga todos e reinicia a rota |
local p = Player.getPosition()
CaveBot.addWaypoint(Enums.WaypointType.WAYPOINT_TYPE_STAND, p.x, p.y, p.z)
CaveBot.addWaypoint(Enums.WaypointType.WAYPOINT_TYPE_LABEL, 0, 0, 0, "volta")Arquivos#
CaveBot.saveFile(nome) e CaveBot.loadFile(nome)#
→ booleano
Salvam e carregam a rota num arquivo dentro da pasta scripts/ (o ZeroBot usa Documents/ZeroBot). Com nome terminado em .lua, saveFile grava um script do ZeroBot com a rota e os ajustes; com outro nome, grava o JSON de rota do DrenoxBot. loadFile lê os dois formatos e reinicia a rota. Retornam false para um caminho fora de scripts/ ou um arquivo que não existe.
CaveBot.saveFile("rotas/rotworm.lua")
CaveBot.loadFile("rotas/rotworm.lua")Andar#
| Função | O que faz |
|---|---|
CaveBot.setWalkMode(modo) | Enums.WalkMode: 1 (ARROW_KEYS) anda passo a passo, outro valor anda por caminho |
CaveBot.setWalkDelay(ms) | Espera entre passos |
CaveBot.setNodeSettings(distância) | Distância para considerar um Node alcançado (padrão 3) |
CaveBot.setStartFromNearestWaypoint(ligar) | Começa a rota pelo waypoint mais perto |
CaveBot.disablePlayerWalkthrough(ligar) | Liga o ajuste de não atravessar players (padrão true) |
CaveBot.getCoreTeleportIds() / CaveBot.setCoreTeleportIds(ids) | Lista de ids de teleport que o CaveBot conhece |
CaveBot.setWalkMode(Enums.WalkMode.MAP_CLICK)
CaveBot.setNodeSettings(2)CaveBot.isDebugEnabled() e CaveBot.setDebugHUDSettings(a, b, c)#
→ booleano
O DrenoxBot tem um único HUD de debug em texto: setDebugHUDSettings liga o HUD se qualquer um dos três parâmetros for true. Os desenhos separados de caminho e pisos do ZeroBot não existem aqui.
CaveBot.setDebugHUDSettings(true, false, false)Lure#
CaveBot.setLureSettings(paraCorrer, dinâmico, pularInalcançáveis) e CaveBot.getLureSettings()#
Quantos monstros precisam seguir antes de continuar (creaturesToRun), se o lure dinâmico está ligado (dynamicLure) e se criaturas inalcançáveis são puladas (skipUnreachableCreatures, padrão true). getLureSettings devolve a tabela com esses três campos.
CaveBot.setLureSettings(3, false, true)
print(CaveBot.getLureSettings().creaturesToRun)CaveBot.setSafetyLureSettings(distância, quantidade, armadilha) e CaveBot.getSafetyLureSettings()#
Segurança do lure: nearCreatureDistance, nearCreatureCount e avoidStuckTrapCount.
CaveBot.setSafetyLureSettings(1, 4, 3)CaveBot.setEndLureSettings(...) e CaveBot.getEndLureSettings()#
Regras do End Lure, nesta ordem: creaturesToStop, creaturesToLeave, tryWalkToCenter, creaturesToLeaveByHp, creaturesToLeaveByHpValue, creaturesToLeaveByHpCount, dontLeaveIfHp, dontLeaveIfHpValue, dontLeaveIfHpCount. getEndLureSettings devolve uma tabela com esses nomes.
CaveBot.setEndLureSettings(5, 1)
print(CaveBot.getEndLureSettings().creaturesToStop)CaveBot.setLureIgnoreList(nomes)#
Lista de nomes de monstros que o lure ignora.
CaveBot.setLureIgnoreList({ "Rat", "Cave Rat" })Áreas especiais#
CaveBot.addSpecialArea(x, y, z, tipo, largura, altura, doWp, atéWp)#
→ booleano
Cria uma área retangular a partir de x, y, z. tipo é Enums.SpecialAreaType: 0 as duas coisas, 1 o CaveBot não anda por ela, 2 o Targeting ignora os monstros nela. doWp e atéWp (opcionais) limitam a área a um trecho da rota. Retorna false com largura ou altura 0 ou tipo inválido.
CaveBot.addSpecialArea(32000, 32000, 7, Enums.SpecialAreaType.SPECIAL_AREA_CAVEBOT, 5, 3)CaveBot.deleteSpecialArea(índice) e CaveBot.clearSpecialAreas()#
Apaga uma área (false se o índice não existe) ou todas.
CaveBot.clearSpecialAreas()Sell, refill e gravação#
| Função | O que faz |
|---|---|
CaveBot.getSellList() / CaveBot.setSellList(ids) | Lista de ids de itens para vender |
CaveBot.getRefillList() / CaveBot.setRefillList(texto) | Lista de refill, como texto |
CaveBot.setAutoRecorderSettings(passo, tipo) | Gravação automática: pisos entre waypoints (padrão 3) e tipo (0 Stand, outro Node) |
CaveBot.enableAutoRecorder(ligar) | Liga ou desliga a gravação automática; false se o gravador não está disponível |
CaveBot.setSellList({ 3357, 3359 })
CaveBot.enableAutoRecorder(true)
Comentários
para comentar.