canal do gabrieltibiano do youtube onde fala tudo sobre tibia

Aprendendo a Criar Scripts no ElfBOT

Aprenda a criar scripts eficientes com nosso guia detalhado. Domine a automação de tarefas no seu OT e otimize seu tempo de jogo!

Aprendendo a Criar Scripts no ElfBOT
canal do gabrieltibiano do youtube onde fala tudo sobre tibia
Aprendendo a Criar Scripts no ElfBOT

Neste guia, você aprenderá a criar scripts no ElfBot para automatizar tarefas no jogo. Vamos cobrir desde os conceitos básicos até exemplos avançados, para que você possa aproveitar ao máximo as funcionalidades do ElfBot.

Caso ainda esteja iniciando com elfbot, comece estudando um pouco do que cada aba do elfbot faz! Você pode começar por cavebot e depois targeting. muitas configurações basicas do próprio bot pode te ajudar sem precisar de scripts complexos.

1. Funções mais usadas:

  • end: comando que faz parar a hotkey que está executada.
  • skip: igual ao end, porém é usado mais na criação de waypoints na aba actions.
  • dontlist: graças a essa maravilhosa hotkey, não aparecem mensagens na tela. Exemplo: auto 200 dontlist | safe healparalysis 'utani gran hur'
  • safe: só executa a ação se o bot não estiver tentando se curar.

2. Uma pequena explicação.

a) O que é variável?

  • Variável é um símbolo que vem antes de uma condição.
    • Exemplo: $mp é uma variável dentro do ElfBOT que mostra a sua mana atual.

b) Como comparar variáveis com um valor?

  • Use ==, < e >. Pode ser usado junto também, como <=.
    • Exemplo: $mp > 300 - a próxima ação só vai acontecer se você estiver com 300 ou mais de mana.

c) Posso usar uma variável com outra variável?

  • Claro que pode!
    • Exemplo: $mp == $hp - a próxima ação só irá acontecer se a vida estiver igual à mana.

d) Por que '==' e não '='?

  • É uma regra de programação. Apenas use '==' quando for usar uma variável com um valor.

e) Por que '>=' e não '>=='?

  • > e < já indicam maior e menor, então não há necessidade de usar >==.

f) Eu quero confirmar se o item1 não é igual ao item2, como faço isso?

  • Use !=.

3. Como criar condições simples.

Para dizer ao bot checar se algo é verdadeiro ou não, use:

  • if [check if true] { action }
    • Exemplo: if [$mp > 300] { action }
      • Só irá acontecer o que está escrito dentro do {} se você tiver mais de 300 de mana.

4. Como executar diversas ações com o uso do "|".

Se você quer executar mais de uma ação por script, separe-as com o uso do "|".

  • Exemplo: if [$mp > 300] { ação1 | ação2 | ação3 }
    • Vai executar a ação1, depois a ação2 e por último a ação3.

5. Condições avançadas: "&&" e "||".

  • &&: é como se fosse um 'e'.
  • ||: é como se fosse um 'ou'.

a) Usando '&&'

  • Exemplo: if [$mp > 300 && $hp < 300] { action }
    • A ação só irá acontecer se a mana for maior que 300 e a vida menor que 300.

b) Usando '||'

  • Exemplo: if [$mp > 300 || $hp < 300] { action }
    • A ação será executada se a mana for maior que 300 ou a vida menor que 300.

c) Usando ambos '||' e '&&'

  • Exemplo: if [$mp > 300 && ($hp > 600 || $cap < 800)] { action }
    • Quando a mana for maior que 300 e (a vida maior que 600 ou cap menor que 800), a ação será executada.

6. Condições mais complicadas.

Você pode utilizar várias condições e ações ao mesmo tempo.

  • Exemplo:
    if [$hp < 400] { if [$mp < 100] { say exura } | if [$mp > 100] {
          say exura gran } }
    • Aqui o bot vai ver se você está com menos de 400 de vida. Se a mana estiver menor que 100, ele dirá "Exura". Se a mana for maior que 100, ele dirá "Exura Gran".

7. Quando "{" e "}" são inúteis.

  • Quando tiver apenas uma condição ou se você não quiser usar "{" e "}" na última condição do script.
    • Exemplo: auto 200 if [$hp < 400] say exura
      • Não usamos "{" e "}" deixando o código mais limpo e profissional.

8. Mensagens.

Agora iremos aprender sobre mensagens, um aspecto básico de um script avançado. Você poderá usar mensagens para diversas coisas, responder automaticamente ou controlar outros chars totalmente botados.

a) Mensagens Recebidas.

  • Variáveis para mensagens: $curmsg, $lastmsg, $lastnavmsg.

    • Exemplo: auto 200 if [$lastmsg.sender ? 'GM'] playsound 'playeronscreen.wav'
      • Isto checará se a última pessoa que mandou a mensagem tem no nome a palavra 'GM'.

Mandando mensagens.

  • Exemplo:
    auto 100 if [$lastmsg.sender ? 'GM' || $lastmsg.sender ? 'CM'] pm 'Furao
          Dutra' 'RAPIDOOOOOOO LOGA AQUI O GM / CM ta aqui perto de mim acc:3423523
          pass 324234234'
    • Irá mandar uma mensagem para o Furao Dutra caso alguém com 'GM' ou 'CM' no nome te mande alguma mensagem.

9. Foreach.

a) Tipos de foreach no ElfBOT:

  • foreach 'listtype' $varname {action}
  • while {condition} {action}
  • loop {number} {action}

b) Exemplos:

  • auto 100 foreach 'floorplayers' $var pm 'Furao Dutra' 'Player $var.name
          is on screen.' | wait 2000
    • Envia uma mensagem para o Furao Dutra com o nome das pessoas que aparecerem na tela dele.

10. Como fazer refillers.

Refillers são scripts que fazem o bot se recarregar, por exemplo, ao acabar as mana potions, ele vai até o NPC de mana e compra mais.

a) Passos:

  1. Chegar ao NPC.
  2. Usar funções como say, npcsay, buyitems, settradeoptions.

b) Exemplo:

set $mspears 30
countitems 7378
set $needcash [($mspears - $itemcount.'royal spear') * 15]
say hi
npcsay deposit all
npcsay yes
npcsay withdraw $needcash
npcsay yes

11. Extras.

a) Sistema de Tempo. Para checar as horas use a variável $systime.

  • Exemplo: auto 200 if [$systime == '07:50:00'] gotolabel log

Actions para Cavebot Scripts 100% Afk

Reabrir suas Backpacks

wait $ping  
closeallwindows  
wait 2000  
openbpitem  
wait 2000  
openitemnew IDdaBackpack 1 'Nome da Backpack principal'  
wait 2000  
openitemnew IDdaBackpack 2 'Nome da Backpack de dentro'  
wait $ping

Ir para Label caso a contagem do item for menor

islocation countitems ID-ITEM  
if [ $count < 10 ] gotolabel Depositer

Ir para Label caso a contagem de SD for pequena

countitemsvisible 3155 | if [$count >= 200] gotolabel Start  

Segunda Opção:

if [ $itemcount.3155 >= 200 ] gotolabel Start

Terceira Opção:

if [$itemcount.'sudden death rune' >= 100] gotolabel 'Start'

Depositar itens no Depot

reachgrounditem 'ID DA CAIXA MARROM DO DP'  
wait 800  
opengrounditem 'ID DA CAIXA MARROM DO DP'  
wait 700  
openitem 3502 1 'Locker'  
wait 1000  
moveitems 3392 'Depot Chest'  
wait 2000  
moveitems 3400 'Depot Chest'  
wait 2000

Ir para Label caso Ultimate Health Potions esteja acabando

if [ $itemcount.7643 <= 100 ] gotolabel NOMEDOLABEL

Caso seja Maior:

if [ $itemcount.7643 >= 100 ] gotolabel NOMEDOLABEL

Ir para Label caso Mana Potions esteja acabando

if [ $itemcount.268 <= 100 ] gotolabel NOMEDOLABEL

Caso seja Maior:

if [ $itemcount.268 >= 100 ] gotolabel NOMEDOLABEL

Mover item do Depot para dentro da sua Backpack

reachgrounditem dp | wait 1000 | end
opengrounditem 3500 | opengrounditem 3499 | opengrounditem 3498 | opengrounditem 3497 | opengrounditem 3496 | end  
wait [$rand.500.1300]   
openitemnew ID-BP-DP 1 'Locker' | end
wait [$rand.500.1300]   
moveitems ID-ITEM 'NOME-BACKPACK'  
wait [$rand.200.500]   
moveitems ID-ITEM 'NOME-BACKPACK'

Mover itens para dentro do Depot com Backpack

opengrounditem 3500 | opengrounditem 3499 | opengrounditem 3498 | opengrounditem 3497 | end  
wait [$rand.500.1300]   
openitemnew IDPACKPACK 1 'Locker' | end  
set $deposit 1 | wait 7000 | set $deposit 0
auto 1 dontlist | if [$deposit == 1] { moveitems ID 'NOME DA BACKPACK' | moveitems ID² 'NOME DA BACKPACK' | moveitems ID³ 'NOME DA BACKPACK' | end }

Usar Corda

isdistance 1 {useongrounditem ID-CORDA ID-PISO | say exani tera | wait 500}  
isdistance 1 {useongrounditem ID-CORDA ID-PISO | say exani tera | wait 500}  
isdistance 1 {useongrounditem ID-CORDA ID-PISO | say exani tera | wait 500}

Usar Pá (Shovel)

isdistance 1 {useongrounditem ID-SHOVEL ID-PISO | wait 500 | useongrounditem ID-SHOVEL ID-PISO | wait 500 | useongrounditem ID-SHOVEL ID-PISO | wait 500}

Abrir Portas

usegrounditem ID | wait 1500 | end

Usar Hur"Up/Down

Turn[LADO] | say 'exani hur "UP' | say 'exani hur "UP'

Exemplo:

TurnN | say 'exani hur "DOWN' | say 'exani hur "DOWN'

Fazer Reffiler

useoncreature ITEMID self | useoncreature ITEMID2 self
if [$itemcount.'ITEMNAME' <= 150 || $itemcount.'ITEMNAME²' <= 50] { gotolabel 'Refill' } else { gotolabel 'Start' }

Exemplo:

useoncreature 3155 self | useoncreature 237 self
if [$itemcount.'Sudden Death Runes' <= 150 || $itemcount.'Great Mana Potions' <= 50] { gotolabel 'Refill' } else { gotolabel 'Start' }

Para viajar de barco

if [$screencount.'NOME-NPC' != 1] {skip}  
follow NOME-NPC | wait 1000  
npcsay hi | wait 600  
npcsay CIDADE | wait 600  
npcsay yes | wait 600

Falar com NPC e vender itens

if [$screencount.'nome-npc' != 1] {skip}  
npcsay hi | wait 600  
npcsay trade | wait 600  
useoncreature id-item self | useoncreature id-item self | useoncreature id-item self | wait 500  
sellitems id-item $itemcount.'Nome Item'  
sellitems id-item $itemcount.'Nome Item'  
sellitems id-item $itemcount.'Nome Item'  
closeallwindows | wait 600 | openbpitem | wait 600

Falar com NPC e vender itens #2

npcsay 'hi' | npcsay 'trade' | wait 500 | end  
wait 500 | countitems ID¹ | wait 500
sellitems ID¹ $count | end
wait 500 | countitems ID² | wait 500
sellitems ID² $count | end

Para comprar Items

npcsay 'hi' | npcsay 'trade' | wait 500 | end  
buyitems ID 100 | wait 400 | end
buyitems ID 100 | wait 400 | end
buyitems ID 100 | wait 400 | end

Ou:

npcsay 'hi' | npcsay 'trade' | wait 500 | end  
loop 3 buyitems ID 100 | wait 400 | end

Deixar o loot no depot

reachgrounditem dp | wait 1000 | end

+Vistas da Semana

Nenhum comentário:

Postar um comentário