POKEXGAMES / PXG Helper
Referência de scripts
PXG scripts use a bounded, ElfBot-style command language in Hotkeys, Shortkeys, Cavebot Actions and scripts saved with each route. This reference covers the 1.0.125 release.
Versão publicada 1.0.125PRIMEIROS PASSOS
Exemplos de scripts
auto 200 say "Tibia"if [$pokemon.exists && $pokemon.hppc > 50] goto "Hunt"talktonpc("Nurse Joy")auto 100 if [$onDead] { gotolabel "Respawn" | wait 200 }UseTile(100, 200, 7)UseGroundItem(1234)seton ShinyPriorityauto 200 if [$targeting] seton ShinyPrioritysettoggle "shiny priority"seton Targeting | seton Cavebotauto 100 if [$onDead] { setoff ShinyPriority | seton Targeting | gotolabel "Respawn" | wait 200 }COMANDOS E VALORES
Encontre um comando de script
Comandos executam ações. Valores que começam com $ podem ser usados em condições e expressões.
Fluxo e variáveis
auto DELAY COMMANDRepeat the script at the given interval (50–60000 ms). Use in Hotkeys, Shortkeys or Edit Scripts for a route; a waypoint Action runs once and should not use auto.
if [EXPRESSION] COMMANDExecute o comando apenas quando a expressão for verdadeira. As expressões aceitam aritmética, comparações, &&, || e parênteses.
ifnot [EXPRESSION] COMMANDExecute o comando apenas quando a expressão for falsa. Usa a mesma sintaxe de expressão de if.
else COMMANDExecute um comando alternativo após um if ou ifnot correspondente quando sua condição não for atendida.
loop COUNT { COMMANDS }Execute o bloco a quantidade indicada de vezes; COUNT deve estar entre 0 e 100.
set $NAME VALUEAtribua uma expressão numérica a uma variável local do script.
inc $NAMEAdicione 1 a uma variável local do script.
dec $NAMESubtraia 1 de uma variável local do script.
clear $NAMERedefina uma variável local do script para 0.
wait MSPause o script pelo tempo indicado em milissegundos (0–600000) e continue depois.
endEncerre a execução atual do script.
turnoffInterrompa a tarefa de script em execução.
dontlistOculte a etiqueta do script na lista de Hotkey HUD.
listas NAMEDefina a etiqueta exibida para este script na lista de Hotkey HUD.
Jogo e helper
say TEXTEnvie TEXT como mensagem de chat pelo cliente do jogo.
gamesay TEXTEnvie TEXT como mensagem de chat pelo cliente do jogo.
castSpell TEXTEnvie as palavras da magia pelo chat do cliente do jogo.
log TEXTExiba TEXT na saída de status do Cavebot do helper.
statusmessage TEXTExiba TEXT na saída de status do Cavebot do helper.
displaytext TEXTExiba TEXT na saída de status do Cavebot do helper.
moveTo X Y ZSolicite ao cliente que caminhe automaticamente até as coordenadas X, Y, Z.
useItem IDUse um item do inventário pelo ID numérico.
UseGroundItem(ID)Use the nearest visible ground item with this ID on the player’s floor, within the current 15 × 11 map view. Uses the map item, not an inventory item. Missing items and invalid arguments report an action error. The client still controls proximity and whether use is allowed.
UseTile(X, Y, Z)Use the tile’s top usable item at these coordinates. Missing items, unavailable tiles and invalid arguments report an action error instead of waiting indefinitely. The client still controls proximity and whether use is allowed.
UseTile(Position(X, Y, Z))Equivalent coordinate form of UseTile(X, Y, Z).
useOnSelf IDUse o item ID do inventário no próprio personagem.
useItemOnSelf IDAlias de useOnSelf: use o item ID do inventário no próprio personagem.
useFishingRod(X, Y, Z)Quando a vara no espaço Fishing está inativa, lance-a na água em X, Y, Z sem mira. Se o espaço contém a vara ativa (ID 6300), use-a diretamente para recolher a linha. A pesca automática observa o efeito de fisgada 390 no espaço selecionado.
useFishingRood(X, Y, Z)Alias de compatibilidade de useFishingRod(): use o item atual do espaço Fishing no ponto selecionado do mapa.
setfishingon()Ative a pesca automática na posição selecionada. Exige estar online, uma posição guardada e um item utilizável no espaço Fishing.
setfishingoff()Interrompa a pesca automática e desmarque Enable Fishing. Não remove posições guardadas ou iscas.
setfishingtoggle()Alterne a pesca automática: inicie quando estiver desligada ou pare quando estiver ligada. A caixa de seleção permanece sincronizada.
setfishing on | off | toggleSintaxe alternativa de setfishingon(), setfishingoff() e setfishingtoggle().
stopAttackCancele o ataque atual.
setTargeting VALUEAtive ou desative Targeting; use 1/on para ativar e 0/off para desativar.
startTargetingRetome Targeting.
stopTargetingPause Targeting.
setCavebot VALUEAtive ou desative Cavebot; use 1/on para ativar e 0/off para desativar.
setFollowWaypoints VALUEAlias de setCavebot: ative ou desative o seguimento dos pontos do Cavebot.
setStance "atk" | "bal" | "def"Defina o modo de combate do Pokémon: "atk" = ofensivo, "bal" = equilibrado, "def" = defensivo. Outros nomes aceitos: offensive/off/attack, balanced/balance, defensive/defence/defense. Os valores não diferenciam maiúsculas de minúsculas. Use nomes, não 1/2/3. O alias "off" significa ofensivo, não desativado. Exemplos: setStance "atk" e setStance("def").
stance "atk" | "bal" | "def"Alias de setStance: defina o modo de combate do Pokémon como ofensivo (atk), equilibrado (bal) ou defensivo (def). Aceita os mesmos nomes alternativos. Exemplo: stance "def".
talktonpc("NPC NAME")Use a ação Talk do cliente em um NPC visível com este nome. O servidor mantém sua verificação normal da distância de interação.
CallPokemon("1" … "6")Invoque o espaço selecionado da equipe na nova interface de Pokémon. Exige essa interface; no modo Legacy, o helper avisa e interrompe o script.
CallPokemonLegacy("Primary")Invoque o Pokémon principal no modo Legacy. Exige Legacy; na interface nova, o helper avisa e interrompe o script. Secondary não é compatível.
goto "WAYPOINT LABEL"Jump Cavebot to the first waypoint whose custom label matches the given name, without case sensitivity. Function syntax goto("Respawn") is also supported. Create the named waypoint before using it.
gotolabel "WAYPOINT LABEL"Alias of goto: jump to a waypoint with this custom label. Example: gotolabel "Respawn".
Module controls
seton MODULEEnable ShinyPriority, Targeting or Cavebot. FollowWaypoints is an alias of Cavebot. Enabling an already enabled module leaves it enabled. Command and module names are case-insensitive. Example: seton ShinyPriority.
setoff MODULEDisable ShinyPriority, Targeting or Cavebot; FollowWaypoints also selects Cavebot. Disabling an already disabled module leaves it disabled. Example: setoff ShinyPriority.
settoggle MODULESwitch ShinyPriority, Targeting or Cavebot once each time this command runs; FollowWaypoints also selects Cavebot. Example: settoggle ShinyPriority. Use it in a one-shot Action or shortcut.
seton("shiny priority")Function-style and quoted names are supported by seton, setoff and settoggle. ShinyPriority also accepts shiny priority, shiny-priority and shiny_priority. Examples: setoff("ShinyPriority") and settoggle("Cavebot").
Module control contextsUse the same commands in Cavebot Actions, Hotkeys, Shortkeys and Cavebot Edit Scripts saved with a route. These commands change the named helper module; they do not execute arbitrary Lua. Existing setTargeting and setCavebot commands remain available.
Repeated module commandsUse seton or setoff in repeating auto scripts and other persistent route scripts. A repeated settoggle changes the state on every iteration instead of keeping a chosen state.
Turning Cavebot offsetoff Cavebot also stops future runs of its saved route scripts. Enable Cavebot again through its checkbox, a Hotkey or a Shortkey; a stopped route script cannot enable itself on a later iteration.
Scripts saved with a route
Edit ScriptsOpen Edit Scripts in the Cavebot header beside Close, enter one independent persistent script per line, then choose Save with route. Each route keeps its own scripts in the same .cavebot file as its waypoints; no separate profile or global script file is created.
Route script intervalA line without auto uses a 100 ms interval. An explicit auto DELAY prefix accepts 50–60000 ms. Up to 32 scripts and 32000 bytes total are allowed; comment and blank lines are ignored.
Route script lifecycleRoute scripts run only with Cavebot enabled and honor the helper’s global pause. Loading a legacy route without saved scripts clears scripts from the previous route. Empty editor text removes the route’s scripts.
Save with route / CancelSave with route saves scripts and waypoints together atomically. Cancel leaves the route unchanged. A failed save keeps the editor open and retains its text.
Player death exampleCreate a waypoint named Respawn, then add: auto 100 if [$onDead] { gotolabel "Respawn" | wait 200 }. Put the death condition at the beginning of the script line.
Use Tile buttonRecord a UseTile Action at the position selected by Direction: Center uses the player’s tile; North, South, East and West select the adjacent tile. Recording does not use the item. Add a Stand waypoint first when the object requires proximity.
Empty ActionAn empty or whitespace-only Action stays in the route for later editing. Cavebot advances past it without stopping or adding the normal Action cooldown. Invalid nonempty code still reports an error.
Blocked movement waypointCavebot skips a movement waypoint after eight active seconds without an observed position change, or two active minutes of movement oscillation. Combat, loot, catch, revive, global pause and intentional Action waits do not consume the stationary timeout.
Automação de Pokémon
waitForPokemons(MIN, RANGE)Espere até que a quantidade solicitada de alvos de caça elegíveis esteja em RANGE SQM. MIN é opcional; quando omitido, espera todos os alvos da verificação atual. A espera tem limite de 5 segundos; o alcance padrão é 3 SQM.
waitForAllSpells()Espere todos os golpes disponíveis do Pokémon ficarem prontos para uso, sem cooldown ou outra indisponibilidade.
waitAllSpells()Alias de waitForAllSpells(): espere todos os golpes disponíveis do Pokémon ficarem prontos.
waitForMoves()Alias de waitForAllSpells(): espere todos os golpes disponíveis do Pokémon ficarem prontos.
waitAllMoves()Alias de waitForAllSpells(): espere todos os golpes disponíveis do Pokémon ficarem prontos.
hunt(MIN, RANGE, REVIVE_MODE)Execute um ciclo de caça gerenciado: espere os alvos, derrote-os, processe loot e captura e realize a etapa solicitada de recuperação.
huntCycle(MIN, RANGE, REVIVE_MODE)Alias de hunt(): execute a sequência gerenciada de espera, combate, loot/captura e recuperação.
killPokemons(WITH_LOOT, ATTACK_ALL, RANGE)Inicie ou continue o ataque a Pokémon próximos elegíveis. WITH_LOOT e ATTACK_ALL são opções true/false; RANGE é a distância máxima opcional do alvo.
killAllPokemons()Execute a ação kill com seleção ampla de alvos, usando as opções atuais de loot e alcance do helper.
setCombo(SLOT, ...)Selecione espaços da barra de golpes para o próximo combo. Uma chamada sem espaços válidos limpa o combo configurado.
setKillCombo(SLOT, ...)Alias de setCombo(): configure os espaços da barra de golpes usados pelo combo.
setMoves(SLOT, ...)Alias de setCombo(): configure os espaços da barra de golpes usados pelo combo.
killCombo(SLOT, ...)Execute o combo configurado ou indicado de espaços de golpes contra o alvo elegível atual.
combo(SLOT, ...)Alias de killCombo(): execute um combo de espaços de golpes.
killMoves(SLOT, ...)Alias de killCombo(): execute um combo de espaços de golpes.
collectLoot()Processe o próximo corpo elegível na fila de loot do Cavebot.
processCatch([CORPSE_ID])Use o item de captura configurado no próximo corpo elegível de Pokémon ou em CORPSE_ID quando indicado.
reviveIfDead()Inicie a sequência estrita de revive apenas quando o helper detectar que o Pokémon morreu.
refreshPokemon()Execute a sequência de recuperação/renovação do Pokémon do helper.
processRevive()Alias de refreshPokemon(): execute a sequência de recuperação do Pokémon do helper.
Valores somente de leitura
$connectedEstado da conexão do jogador: 1 quando conectado ao jogo; caso contrário, 0.
$onDeadA single player-death event delivered once after the trainer is alive again. It describes the trainer, not a dead Pokémon, and does not stay true while the trainer is dead. Put if [$onDead] at the beginning of its route-script line. Route scripts require Cavebot enabled and respect the global pause.
$hpHP absoluto atual do jogador.
$maxhpHP máximo do jogador.
$hppcHP atual do jogador em porcentagem. No PXG, este é o valor do jogador.
$posxCoordenada X atual do jogador no mapa.
$posyCoordenada Y atual do jogador no mapa.
$poszAndar atual do jogador no mapa (coordenada Z).
$targetingEstado de Targeting: 1 quando ativado; caso contrário, 0.
$cavebotEstado de Cavebot: 1 quando ativado; caso contrário, 0.
$pokemonVerificação booleana da presença do Pokémon invocado atual (1/0).
$pokemon.exists1 quando seu próprio Pokémon está invocado; caso contrário, 0.
$pokemon.hppcPorcentagem atual de HP do Pokémon invocado. Retorna 0 quando não há Pokémon invocado.
$pokemon.hpHP absoluto do Pokémon invocado conforme informado pelo painel verificado do cliente PXG.
$pokemon.maxhpHP máximo do Pokémon invocado conforme informado pelo painel verificado do cliente PXG.
$pokemon.idID de criatura do Pokémon invocado no cliente; 0 quando indisponível.
$pokemon.posxCoordenada X atual do Pokémon invocado no mapa; 0 quando indisponível.
$pokemon.posyCoordenada Y atual do Pokémon invocado no mapa; 0 quando indisponível.
$pokemon.poszAndar atual do Pokémon invocado no mapa (coordenada Z); 0 quando indisponível.
$pokemon.order(X, Y, Z)Use o item Order no alvo utilizável superior do mapa em X, Y, Z. O Pokémon invocado e o item Order devem estar disponíveis.
$pokemon.order(Position(X, Y, Z))Forma equivalente de coordenadas usando o construtor Position. O Pokémon invocado, o item Order e o alvo utilizável no mapa devem estar disponíveis.
$pokemon.order("self")Use o item Order no próprio personagem. O Pokémon invocado e o item Order devem estar disponíveis.
$pokemon.turn("north" | "east" | "south" | "west")Vire o Pokémon invocado para a direção solicitada. Exige um Pokémon invocado ativo.
$pokemon.standstill()Faça o Pokémon invocado parar de se mover. Exige um Pokémon invocado ativo.
Nenhum comando correspondente neste helper.
PXG não usa $self.hppc; use $hppc para o HP do jogador ou $pokemon.hppc para o Pokémon invocado. Ações de Pokémon exigem um personagem online e um Pokémon invocado ativo. CallPokemonLegacy("Secondary") ainda não é compatível.