Duvida, como fazer 2 ações na macro de uma vez

Discussão em 'Dúvidas resolvidas (macro)' iniciado por zMatheus22, 9 Junho 2019.

Status do Tópico:
Não esta aberto para novas mensagens.
  1. zMatheus22

    zMatheus22 Craftlandiano
    VIP

    Afiliado:
    26 Abril 2013
    Mensagens:
    2,269
    Curtidas Recebidas:
    817
    Curtiu:
    1,065
    Sexo:
    Masculino
    Localização:
    Rio Claro-SP
    Cubos:
    1,784.28
    Nick:
    _matheus_22
    Clan:
    RNs
    Facebook:
    matheussamuelxD
    Skype:
    Matheus22567
    Bom, estou aprendendo a criar macros, e estou fazendo uma de escavação.
    porem tenho 1 problema.

    o que ela faz e olhar para os blocos do lado, e ficar colocando e quebrando a grama com a pá,
    pelo menos e esse o objetivo, porem eu nao consigo fazer com que faça as 2 coisas de 1 vez;
    se eu aperto o botao 1 vez, ela apenas fica olhando pros lados, mas nao escava. se eu apertar denovo, ai ela funciona completa. as 2 funcoes, queria juntar tudo pra apetar so 1 vez, eu ia fazer o sistema de reparação automatica tambem,
    mas preciso muito saber como fazer varias funcoes em 1 macro só.

    o codigo é esse:

    $${
    toggle(esc)
    if(esc)
    LOG("&6[zESC]&bLIGADA")
    SET(#pa,277)
    SET(#durab,75)
    SET(#delay,10ms)
    SET(#bloco,2)

    do;
    pick(277);
    key(attack);
    wait(115ms);
    pick(2);
    key(use);
    loop;
    endif;

    do
    look(60,40)
    wait(500ms)
    look(90,40)
    wait(500ms)
    look(110,40)
    wait(500ms)
    look(90,40)
    wait(500ms)
    look(60,40)
    loop
    endif

    else
    LOG("&6[zESC]&cDESLIGADA")
    stop()
    endif
    }$$
     
  2. lomexicano

    lomexicano Craftlandiano
    VIP

    Afiliado:
    20 Agosto 2013
    Mensagens:
    623
    Curtidas Recebidas:
    824
    Curtiu:
    743
    Sexo:
    Masculino
    Ocupação:
    Mestrando...
    Localização:
    Rio Grande...
    Cubos:
    2,390.00
    Nick:
    lomexicano
    Discord:
    lomexicano
    YouTube:
    LoMexicano
    Assim, seu objetivo é olhar para os blocos, ir colocando blocos e atacando?
     
  3. zMatheus22

    zMatheus22 Craftlandiano
    VIP

    Afiliado:
    26 Abril 2013
    Mensagens:
    2,269
    Curtidas Recebidas:
    817
    Curtiu:
    1,065
    Sexo:
    Masculino
    Localização:
    Rio Claro-SP
    Cubos:
    1,784.28
    Nick:
    _matheus_22
    Clan:
    RNs
    Facebook:
    matheussamuelxD
    Skype:
    Matheus22567
    OLHA QUEM TA AQUI JESUS, ME SALVA KKK, entao, queria fazer as 2 coisas tipo funcionarem juntas sabe. e isso ai
    ela fica olhando e ao msm tempo quebra e poe bloco, ja consegui fazer o codigo das 2 coisas, mas so funciona 1 delas de todas as maneiras q eu tento

    codigo de ficar olhando:
    do
    look(60,40)
    wait(500ms)
    look(90,40)
    wait(500ms)
    look(110,40)
    wait(500ms)
    look(90,40)
    wait(500ms)
    look(60,40)
    loop

    codigo de quebrar e por bloco

    do
    pick(277)
    key(attack)
    wait(115ms)
    pick(2)
    key(use)
    loop

    mas nao consigo juntar os 2, sabe funcionar ao mesmo tempo
     
  4. Xylic

    Xylic Excelente
    VIP

    Afiliado:
    23 Setembro 2015
    Mensagens:
    455
    Curtidas Recebidas:
    243
    Curtiu:
    119
    Sexo:
    Masculino
    Localização:
    ./
    Cubos:
    612.36
    Nick:
    %PLAYER%
    Clan:
    XYL
    #4 Xylic, 9 Junho 2019
    Última edição: 9 Junho 2019
    A função DO é um loop, ela faz ou infinitamente ou até atender um critério. No caso da macro que voce colou você está preso em um loop infinito mas precisa fazer os 2, marcado em laranja.
    Não sei se esse é só uma parte do código mas tem uns endif fora de lugar, marcado em vermelho.
    Estaõ faltando tambem alguns semicolons (ponto e virgula) no final de certas linhas.

    $${
    toggle(esc)
    if(esc)
    LOG("&6[zESC]&bLIGADA")
    SET(#pa,277)
    SET(#durab,75)
    SET(#delay,10ms)
    SET(#bloco,2)

    do;
    pick(277);
    key(attack);
    wait(115ms);
    pick(2);
    key(use);
    loop;

    endif;

    do
    look(60,40)
    wait(500ms)
    look(90,40)
    wait(500ms)
    look(110,40)
    wait(500ms)
    look(90,40)
    wait(500ms)
    look(60,40)
    loop

    endif

    else
    LOG("&6[zESC]&cDESLIGADA")
    stop()
    endif
    }$$

    A maneira como eu faria partindo desse código ai seria assim:
    Código:
    $${
        toggle(esc);
        if(esc);
            LOG("&6[zESC]&bLIGADA");
            SET(#pa,277);
            SET(#durab,75);
            SET(#bloco,2);
            SET(#dir,1);
            do;
                if(%#dir%=1);
                    look(60,40);
                    #dir=2;
                elseif(%#dir%=2);
                    look(90,40);
                    #dir=3;
                elseif(%#dir%=3);
                    look(110,40);
                    #dir=4;
                elseif(%#dir%=4);
                    look(90,40);
                    #dir=5;
                elseif(%#dir%=5);
                    look(60,40);
                    #dir=1;
                endif;
         
                pick(277);
                key(attack);
                wait(115ms);
                pick(%#bloco%);
                key(use);
            loop;
        else;
            LOG("&6[zESC]&cDESLIGADA");
            stop();
        endif;
    }$$
    
     
  5. lomexicano

    lomexicano Craftlandiano
    VIP

    Afiliado:
    20 Agosto 2013
    Mensagens:
    623
    Curtidas Recebidas:
    824
    Curtiu:
    743
    Sexo:
    Masculino
    Ocupação:
    Mestrando...
    Localização:
    Rio Grande...
    Cubos:
    2,390.00
    Nick:
    lomexicano
    Discord:
    lomexicano
    YouTube:
    LoMexicano
    O do() e o for(), que são os comandos utilizados para repetição, atuam sempre individualmente e nada ocorre até que eles terminem, então talvez fosse melhor você intercalar, tipo

    &delay = "50ms";
    #etapa = 1;

    do();
    if(#etapa == 1); look(60,40); endif;
    if(#etapa == 2); look(90,40); endif;
    if(#etapa == 3); look(120,40); endif;
    if(#etapa == 4); look(90,40); endif;

    pick(277); wait(%&delay%); key(attack); wait(%&delay%);
    pick(2); wait(%&delay%); key(use); wait(%&delay%);

    inc(#etapa,1);
    if(#etapa == 5); #etapa = 1; endif;
    loop;


    ou você pode fazer em dois arquivos diferentes, cada um com um do(), e quando inicia um você coloca
    exec<arquivo2la.txt>
     
  6. lomexicano

    lomexicano Craftlandiano
    VIP

    Afiliado:
    20 Agosto 2013
    Mensagens:
    623
    Curtidas Recebidas:
    824
    Curtiu:
    743
    Sexo:
    Masculino
    Ocupação:
    Mestrando...
    Localização:
    Rio Grande...
    Cubos:
    2,390.00
    Nick:
    lomexicano
    Discord:
    lomexicano
    YouTube:
    LoMexicano
    Pois é, eu faria algo semelhante a isso também. Só tem que cuidar que o #delay que você setou não pode ir acompanhado do 'ms'
     
  7. Xylic

    Xylic Excelente
    VIP

    Afiliado:
    23 Setembro 2015
    Mensagens:
    455
    Curtidas Recebidas:
    243
    Curtiu:
    119
    Sexo:
    Masculino
    Localização:
    ./
    Cubos:
    612.36
    Nick:
    %PLAYER%
    Clan:
    XYL
    Verdade. Eu nem olhei isso porque não foi usado no código em baixo. Editado.
     
    lomexicano curtiu isso.
  8. zMatheus22

    zMatheus22 Craftlandiano
    VIP

    Afiliado:
    26 Abril 2013
    Mensagens:
    2,269
    Curtidas Recebidas:
    817
    Curtiu:
    1,065
    Sexo:
    Masculino
    Localização:
    Rio Claro-SP
    Cubos:
    1,784.28
    Nick:
    _matheus_22
    Clan:
    RNs
    Facebook:
    matheussamuelxD
    Skype:
    Matheus22567
    @Xylic muito dahora, mano como praticamente vc fez a macro toda seguir o delay ali do 115ms, tipo, ela em vez de so aumentar o delay do auto click, aumenta tbm da visao, sensasional mas como kk
    @lomexicano agora tudo faz sentido, o do/loop nao pode ser usado mais de 1 vez?
     
  9. lomexicano

    lomexicano Craftlandiano
    VIP

    Afiliado:
    20 Agosto 2013
    Mensagens:
    623
    Curtidas Recebidas:
    824
    Curtiu:
    743
    Sexo:
    Masculino
    Ocupação:
    Mestrando...
    Localização:
    Rio Grande...
    Cubos:
    2,390.00
    Nick:
    lomexicano
    Discord:
    lomexicano
    YouTube:
    LoMexicano
    O do() vai ficar sendo repetido até que algo faça ele parar. Você pode parar ele com um comando break;, por exemplo. Mas enquanto ele está sendo reproduzido, naquele código, nada além do que está dentro dos seus parâmetros (antes do loop; ) vai acontecer.
     
  10. lomexicano

    lomexicano Craftlandiano
    VIP

    Afiliado:
    20 Agosto 2013
    Mensagens:
    623
    Curtidas Recebidas:
    824
    Curtiu:
    743
    Sexo:
    Masculino
    Ocupação:
    Mestrando...
    Localização:
    Rio Grande...
    Cubos:
    2,390.00
    Nick:
    lomexicano
    Discord:
    lomexicano
    YouTube:
    LoMexicano
    #10 lomexicano, 9 Junho 2019
    Última edição: 10 Junho 2019
    Você pode usar ele quantas vezes quiser, inclusive um dentro do outro. Nada impede. Lembre-se que o macro vai lendo o código de cima para baixo.
    do();
    fazer algo
    loop; --> o macro vai ler isso aqui como um comando para voltar para a linha do do().
     
Status do Tópico:
Não esta aberto para novas mensagens.