Macro de upar Arco e Espada na mobvip (agora sem bugs)

Bem-vindo!

Ao se registrar conosco, você poderá discutir, compartilhar e enviar mensagens privadas com outros membros da nossa comunidade.

Inscreva-se agora!
Status
Não está aberto para novas respostas.

guilhermeeu74

Neutro
VIP
Entrou
Fev 12, 2021
Mensagens
23
Cubos
0
A pedidos havia feito uma simples macro de upar espada na mobvip, mas o projeto foi evoluindo e... Acabou virando um macro que é praticamente autossuficiente, mesmo se o mob se mexer, ele acha!!

A macro pode ser utilizada para upar tanto espada, quanto machado, quanto arco (ou da para usar qualquer outro item).
Ela tem uma função de procurar 360 pelo mob (o que pode ser desativado), além de possuir uma função de procurar em outras homes, caso não ache na atual. (O que é muito prático caso ele se mexa, e que também pode ser desativado).

Quando você inicia a macro ela pede o ID do item que irá se utilizado (e lista os 3 principais), pergunta se você quer utilizador o buscador de mobs (que gira 360 até encontrar), e caso queira, pergunta se quer utilizar as homes, para ampliar a busca.

A home qual ele vai quando inicia a macro é a gmob1 (independente se usar a função de homes). E caso queira utilizar a busca com homes, as outras 4 são gmob2 ; gmob3 ; gmo4 ; gmob5 ; caso não ache, para não ficar parado ali no mob, ele da /home.

Pode ser tanto utilizado no mobvip, quanto em algum mob privado, por tanto que seja configurado direito.

O inventario tem que ser com comida no Slot 9 e itens para reparar a ferramenta que você estiver usando.

Ela repara e come sozinha!

Acho que é isso, caso conheça a programação e ache que de para melhorar a macro, pode melhorar que atualizarei e darei os créditos!! Ou caso queira utilizar o projeto de base, também pode :) é open source. Caso ache um bug, reporte!!

Edit: Adicionei um segundo codigo da macro, com delay de 0ms, que mata mob muito mais rapido que a com delay de 200ms. Vou manter a segunda caso alguem tenha problema com a primeira.

Algumas imagens da Macro:


Código da macro com delay de 0ms:
Código:
$${
  If(x);
    Log("&6MACRO&3 Mobs &4OFF");
    Unset(x);
    Unset(arco)
    unset(normal)
    Stop();
  Else;
    Log(&6MACRO &3Mobs &aON");
    Set(x);
  Endif;
  unset(arco)
  unset(normal)
  unset(resposta_incorreta)
  unset(arco2)
  Do(2);
    clearchat()
    log(&c Para Espada de Diamante, Digite 276)
    log(&c Para Machado de Diamante, Digite 279)
    log(&c Para Arco, Digite 261)
    log(&c Para outro item, Digite o ID)
    log(&c Para sair, Digite 3)
    log(                                       )
  loop;
  Prompt(#it,$$?,Digite: )
  if(%#it%=3)
    set(resposta_incorreta)
  endif
  Do(2);
    clearchat()
    log(&c Para usar o buscador de mobs Digite 1)
    log(&c Para não utilizar o buscador, Digite 2)
    log(&c Para sair, Digite 3)
    log(                                       )
  loop;
  Prompt(#itt,$$?,Digite: )
  if(%#itt%=3)
    set(resposta_incorreta)
  endif
  if(%#it% = 261)
    set(arco)
  else;
    set(normal)
  endif
  if(%#itt%=1)
    set(buscar)
    Do(2);
      clearchat()
      log(&c Para usar as homes Digite 1)
      log(&c Para não utilizar as homes Digite 2)
      log(&c Para sair, Digite 3)
      log(                                       )
    loop;
    Prompt(#ittt,$$?,Digite: )
    if(%#ittt%=1)
      set(homes)
    else;
      unset(homes)
    endif;
  else;
    unset(buscar)
  endif;
    if(%#ittt%=3)
    set(resposta_incorreta)
  endif
  if(resposta_incorreta)
    If(x);
    Log("&6MACRO&3 Mobs &4OFF");
    Unset(x);
    Unset(arco)
    unset(normal)
    Stop();
    endif;
  endif;
  #i=0
  #olhar=0
  #vr=0
  #home=0
}$$
/home gmob1
$${



  wait(8000ms)



  set(mob)
  Do();
    pick(%#it%);
    if(normal);
      if(%DURABILITY% < 70);
        log(Reparando)
        wait(1000ms)
        }$$
        /reparar
        $${
        wait(1000ms)
      endif
      if(%DURABILITY% < 50);
        break;
      endif;
    elseif(arco);
      if(%DURABILITY% < 20);
        log(Reparando)
        wait(1000ms)
        }$$
        /reparar
        $${
        wait(1000ms)
      endif
      if(%DURABILITY% < 10);
        break;
      endif;
    elseif(%HUNGER% < 14);
      slot(9)
      wait(200ms)
      Do;
      key(use)
      while(%HUNGER% != 20)
      wait(200ms)
    endif;
    if(normal)
      if(%HIT%="ENTITY");
        key(attack);
        until(%HIT%!="ENTITY");
        set(#vr,0)
        set(#home,0)
      endif;
    endif;
    if(arco)
        if(%HIT%="ENTITY");
            set(arco2)
        elseif(%HIT%!="ENTITY");
            unset(arco2)
        endif;
    endif;
    if(arco2)
      if(%HIT%="ENTITY");
        Do(40);
        Do(23);
        key(use);
        until(%HIT%!="ENTITY");
        set(#vr,0)
        set(#home,0)
        while(%DURABILITY% > 20)
        loop;
        do(1)
        key(attack)
        loop;
        while(%DURABILITY% > 20)
        loop;
        unset(arco2)
        wait(500ms)
        keydown(back)
        wait(100ms)
        keyup(back)
        keydown(forward)
        wiat(100ms)
        keyup(forward)
        wait(100ms)
        keydown(right)
        wait(100ms)
        keyup(right)
        wait(100ms)
        keydown(left)
        wait(100ms)
        keyup(left)
        wait(1000ms)
      endif;
    endif;
      if(buscar)
        unsafe;
          if(%HIT%!="ENTITY");
            look(0,0);
            Do(38);
              look(%#olhar%,%#i%);
              inc(#olhar,10)
              until(%HIT%="ENTITY");
            loop;
            inc(#i,10)
          endif
          if(%#i%>91)
            set(#i,0)
            set(#olhar,0)
            inc(#vr,1)
          endif
          if(%#vr% = 1)
            log(Procurando o mob)
          endif;
          if(%#vr% = 2)
              log(Procurando em outra home)
              set(#vr,0)
              inc(#home,1)
              inc(#vb,1)
          endif;
          if(%#vb=2)
            break;
          endif;
        endunsafe;
        if(homes);
          if(%#home%=1);wait(1000ms);Echo(/home gmob2);wait(2000ms);inc(#home,1);endif;
          if(%#home%=3);wait(1000ms);Echo(/home gmob3);wait(2000ms);inc(#home,1);endif;
          if(%#home%=5);wait(1000ms);Echo(/home gmob4);wait(2000ms);inc(#home,1);endif;
          if(%#home%=7);wait(1000ms);Echo(/home gmob5);wait(2000ms);inc(#home,1);endif;
          if(%#home%=9);wait(1000ms);Echo(/home);wait(2000ms);break;endif;
        endif;
      endif;
  loop;
}$$


Código da macro com delay de 200ms:

YW2KFWA

85FVgUh

8acFbNG

qcGOja6

Código:
$${
  If(x);
    Log("&6MACRO&3 Mobs &4OFF");
    Unset(x);
    Unset(arco)
    unset(normal)
    Stop();
  Else;
    Log(&6MACRO &3Mobs &aON");
    Set(x);
  Endif;
  unset(arco)
  unset(normal)
  unset(resposta_incorreta)
  unset(arco2)
  Do(2);
    clearchat()
    log(&c Para Espada de Diamante, Digite 276)
    log(&c Para Machado de Diamante, Digite 279)
    log(&c Para Arco, Digite 261)
    log(&c Para outro item, Digite o ID)
    log(&c Para sair, Digite 3)
    log(                                       )
  loop;
  Prompt(#it,$$?,Digite: )
  if(%#it%=3)
    set(resposta_incorreta)
  endif
  Do(2);
    clearchat()
    log(&c Para usar o buscador de mobs Digite 1)
    log(&c Para não utilizar o buscador, Digite 2)
    log(&c Para sair, Digite 3)
    log(                                       )
  loop;
  Prompt(#itt,$$?,Digite: )
  if(%#itt%=3)
    set(resposta_incorreta)
  endif
  if(%#it% = 261)
    set(arco)
  else;
    set(normal)
  endif
  if(%#itt%=1)
    set(buscar)
    Do(2);
      clearchat()
      log(&c Para usar as homes Digite 1)
      log(&c Para não utilizar as homes Digite 2)
      log(&c Para sair, Digite 3)
      log(                                       )
    loop;
    Prompt(#ittt,$$?,Digite: )
    if(%#ittt%=1)
      set(homes)
    else;
      unset(homes)
    endif;
  else;
    unset(buscar)
  endif;
    if(%#ittt%=3)
    set(resposta_incorreta)
  endif
  if(resposta_incorreta)
    If(x);
    Log("&6MACRO&3 Mobs &4OFF");
    Unset(x);
    Unset(arco)
    unset(normal)
    Stop();
    endif;
  endif;
  #i=0
  #olhar=0
  #vr=0
  #home=0
}$$
/home gmob1
$${



  wait(8000ms)



  set(mob)
  Do();
    pick(%#it%);
    if(normal);
      if(%DURABILITY% < 70);
        log(Reparando)
        wait(1000ms)
        }$$
        /reparar
        $${
        wait(1000ms)
      endif
      if(%DURABILITY% < 50);
        break;
      endif;
    elseif(arco);
      if(%DURABILITY% < 20);
        log(Reparando)
        wait(1000ms)
        }$$
        /reparar
        $${
        wait(1000ms)
      endif
      if(%DURABILITY% < 10);
        break;
      endif;
    elseif(%HUNGER% < 14);
      slot(9)
      wait(200ms)
      Do;
      key(use)
      while(%HUNGER% != 20)
      wait(200ms)
    endif;
    if(normal)
      if(%HIT%="ENTITY");
        wait(200ms)
        key(attack);
        until(%HIT%!="ENTITY");
        set(#vr,0)
        set(#home,0)
      endif;
    endif;
    if(arco)
        if(%HIT%="ENTITY");
            set(arco2)
        elseif(%HIT%!="ENTITY");
            unset(arco2)
        endif;
    endif;
    if(arco2)
      if(%HIT%="ENTITY");
        Do(40);
        Do(23);
        key(use);
        until(%HIT%!="ENTITY");
        set(#vr,0)
        set(#home,0)
        while(%DURABILITY% > 20)
        loop;
        do(1)
        key(attack)
        loop;
        while(%DURABILITY% > 20)
        loop;
        unset(arco2)
        wait(500ms)
        keydown(back)
        wait(100ms)
        keyup(back)
        keydown(forward)
        wiat(100ms)
        keyup(forward)
        wait(100ms)
        keydown(right)
        wait(100ms)
        keyup(right)
        wait(100ms)
        keydown(left)
        wait(100ms)
        keyup(left)
        wait(1000ms)
      endif;
    endif;
      if(buscar)
        unsafe;
          if(%HIT%!="ENTITY");
            look(0,0);
            Do(38);
              look(%#olhar%,%#i%);
              inc(#olhar,10)
              until(%HIT%="ENTITY");
            loop;
            inc(#i,10)
          endif
          if(%#i%>91)
            set(#i,0)
            set(#olhar,0)
            inc(#vr,1)
          endif
          if(%#vr% = 1)
            log(Procurando o mob)
          endif;
          if(%#vr% = 2)
              log(Procurando em outra home)
              set(#vr,0)
              inc(#home,1)
              inc(#vb,1)
          endif;
          if(%#vb=2)
            break;
          endif;
        endunsafe;
        if(homes);
          if(%#home%=1);wait(1000ms);Echo(/home gmob2);wait(2000ms);inc(#home,1);endif;
          if(%#home%=3);wait(1000ms);Echo(/home gmob3);wait(2000ms);inc(#home,1);endif;
          if(%#home%=5);wait(1000ms);Echo(/home gmob4);wait(2000ms);inc(#home,1);endif;
          if(%#home%=7);wait(1000ms);Echo(/home gmob5);wait(2000ms);inc(#home,1);endif;
          if(%#home%=9);wait(1000ms);Echo(/home);wait(2000ms);break;endif;
        endif;
      endif;
  loop;
}$$


Caso queiram a macro com loop infinito em vez de /home (me pediram):

Código:
$${
  If(x);
    Log("&6MACRO&3 Mobs &4OFF");
    Unset(x);
    Unset(arco)
    unset(normal)
    Stop();
  Else;
    Log(&6MACRO &3Mobs &aON");
    Set(x);
  Endif;
  unset(arco)
  unset(normal)
  unset(resposta_incorreta)
  unset(arco2)
  Do(2);
    clearchat()
    log(&c Para Espada de Diamante, Digite 276)
    log(&c Para Machado de Diamante, Digite 279)
    log(&c Para Arco, Digite 261)
    log(&c Para outro item, Digite o ID)
    log(&c Para sair, Digite 3)
    log(                                       )
  loop;
  Prompt(#it,$$?,Digite: )
  if(%#it%=3)
    set(resposta_incorreta)
  endif
  Do(2);
    clearchat()
    log(&c Para usar o buscador de mobs Digite 1)
    log(&c Para não utilizar o buscador, Digite 2)
    log(&c Para sair, Digite 3)
    log(                                       )
  loop;
  Prompt(#itt,$$?,Digite: )
  if(%#itt%=3)
    set(resposta_incorreta)
  endif
  if(%#it% = 261)
    set(arco)
  else;
    set(normal)
  endif
  if(%#itt%=1)
    set(buscar)
    Do(2);
      clearchat()
      log(&c Para usar as homes Digite 1)
      log(&c Para não utilizar as homes Digite 2)
      log(&c Para sair, Digite 3)
      log(                                       )
    loop;
    Prompt(#ittt,$$?,Digite: )
    if(%#ittt%=1)
      set(homes)
    else;
      unset(homes)
    endif;
  else;
    unset(buscar)
  endif;
    if(%#ittt%=3)
    set(resposta_incorreta)
  endif
  if(resposta_incorreta)
    If(x);
    Log("&6MACRO&3 Mobs &4OFF");
    Unset(x);
    Unset(arco)
    unset(normal)
    Stop();
    endif;
  endif;
  #i=0
  #olhar=0
  #vr=0
  #home=0
}$$
/home gmob1
$${



  wait(8000ms)



  set(mob)
  Do();
    pick(%#it%);
    if(normal);
      if(%DURABILITY% < 70);
        log(Reparando)
        wait(1000ms)
        }$$
        /reparar
        $${
        wait(1000ms)
      endif
      if(%DURABILITY% < 50);
        break;
      endif;
    elseif(arco);
      if(%DURABILITY% < 20);
        log(Reparando)
        wait(1000ms)
        }$$
        /reparar
        $${
        wait(1000ms)
      endif
      if(%DURABILITY% < 10);
        break;
      endif;
    elseif(%HUNGER% < 14);
      slot(9)
      wait(200ms)
      Do;
      key(use)
      while(%HUNGER% != 20)
      wait(200ms)
    endif;
    if(normal)
      if(%HIT%="ENTITY");
        key(attack);
        until(%HIT%!="ENTITY");
        set(#vr,0)
        set(#home,0)
      endif;
    endif;
    if(arco)
        if(%HIT%="ENTITY");
            set(arco2)
        elseif(%HIT%!="ENTITY");
            unset(arco2)
        endif;
    endif;
    if(arco2)
      if(%HIT%="ENTITY");
        Do(40);
        Do(23);
        key(use);
        until(%HIT%!="ENTITY");
        set(#vr,0)
        set(#home,0)
        while(%DURABILITY% > 20)
        loop;
        do(1)
        key(attack)
        loop;
        while(%DURABILITY% > 20)
        loop;
        unset(arco2)
        wait(500ms)
        keydown(back)
        wait(100ms)
        keyup(back)
        keydown(forward)
        wiat(100ms)
        keyup(forward)
        wait(100ms)
        keydown(right)
        wait(100ms)
        keyup(right)
        wait(100ms)
        keydown(left)
        wait(100ms)
        keyup(left)
        wait(1000ms)
      endif;
    endif;
      if(buscar)
        unsafe;
          if(%HIT%!="ENTITY");
            look(0,0);
            Do(38);
              look(%#olhar%,%#i%);
              inc(#olhar,10)
              until(%HIT%="ENTITY");
            loop;
            inc(#i,10)
          endif
          if(%#i%>91)
            set(#i,0)
            set(#olhar,0)
            inc(#vr,1)
          endif
          if(%#vr% = 1)
            log(Procurando o mob)
          endif;
          if(%#vr% = 2)
              log(Procurando em outra home)
              set(#vr,0)
              inc(#home,1)
              inc(#vb,1)
          endif;
          if(%#vb=2)
            break;
          endif;
        endunsafe;
        if(homes);
          if(%#home%=1);wait(1000ms);Echo(/home gmob2);wait(2000ms);inc(#home,1);endif;
          if(%#home%=3);wait(1000ms);Echo(/home gmob3);wait(2000ms);inc(#home,1);endif;
          if(%#home%=5);wait(1000ms);Echo(/home gmob4);wait(2000ms);inc(#home,1);endif;
          if(%#home%=7);wait(1000ms);Echo(/home gmob5);wait(2000ms);inc(#home,1);endif;
          if(%#home%=9);wait(1000ms);Echo(/home gmob1);wait(2000ms);set(#home,1);endif;
        endif;
      endif;
  loop;
}$$
 
Última edição:
Cara, você é o mais brabo!

Me salvou com esse macro, parabéns!
 
MAIS QUANDO O SERVER REINICIA N RELIGA PORQ?
Isso é uma coisa que queria saber programar e não sei :/ se alguém quiser ajudar, todas minhas macros tem esse problema. Mas os jeitos que vi até hoje, envolvem algo como o Sleep On Chat, e ai seria uma coisa a mais.
 
vai na aba onjoingame
/login suasenha $${$$<AutoMacro.txt>}$$
abre o edit file e cria um txt com a nomeação ''AutoMacro'' > create
e cola o seguinte:

EXEC("macrox.txt","macrox");
EXEC("macroy.txt","macroy");

agora só substituir ''macrox'' pelo nome da macro desejada e ''macroy'' caso deseje adicionar mais de uma, faz o teste ae
 
vai na aba onjoingame
/login suasenha $${$$<AutoMacro.txt>}$$
abre o edit file e cria um txt com a nomeação ''AutoMacro'' > create
e cola o seguinte:

EXEC("macrox.txt","macrox");
EXEC("macroy.txt","macroy");

agora só substituir ''macrox'' pelo nome da macro desejada e ''macroy'' caso deseje adicionar mais de uma, faz o teste ae

o problema que eu vejo nisso, que ja aconteceu comigo, eh dar exec mais de uma vez por x motivo, e ai se tem a mesma macro rodando duas vezes e ai fica louca, mas vou testar

Edit: mais tarde vou testar um jeito utilizando a variavel global (@) e PRESS // tbm vou testar com exec.
 
Última edição:
UtiIizo a macro atualmente para upar arco, mas testei com espada e machado e gostei bastante, parabéns
 
Status
Não está aberto para novas respostas.

Users who are viewing this thread

Voltar
Topo