[DÚVIDA] Como faço essa macro não ter erro?

Discussão em 'Dúvidas resolvidas (macro)' iniciado por SHORT, 23 Novembro 2019.

?

Essa macro seria usada?

Poll closed 24 Novembro 2019.
  1. Sim

    1 voto(s)
    100.0%
  2. Não

    0 voto(s)
    0.0%
Status do Tópico:
Não esta aberto para novas mensagens.
  1. SHORT

    SHORT Neutro

    Afiliado:
    8 Setembro 2019
    Mensagens:
    12
    Curtidas Recebidas:
    2
    Curtiu:
    3
    Sexo:
    Masculino
    Cubos:
    34.00
    Nick:
    SthorHd
    #1 SHORT, 23 Novembro 2019
    Última edição: 24 Novembro 2019
    Olá!
    Atualmente estou tentando criar uma macro de pesca, que possa detectar o inv cheio, ir para /home lava e após isso drope os itens inúteis na lava, e volte a pescar.

    Eu tentei fazer desta forma, mas não sei como arrumar, sempre dá erro no script D:

    $${

    unset(&id_inutil[]);
    &id_inutil[] = 268; // Madeira
    &id_inutil[] = 269; // Madeira
    &id_inutil[] = 270; // Madeira
    &id_inutil[] = 271; // Madeira
    &id_inutil[] = 290; // Madeira

    &id_inutil[] = 272; // Pedra
    &id_inutil[] = 273; // Pedra
    &id_inutil[] = 274; // Pedra
    &id_inutil[] = 275; // Pedra
    &id_inutil[] = 291; // Pedra

    &id_inutil[] = 298; // Couro
    &id_inutil[] = 299; // Couro
    &id_inutil[] = 300; // Couro
    &id_inutil[] = 301; // Couro

    if(x);
    log("&8[MACRO] O Macro foi &cDESLIGADO&8!");
    log("&8Foram pescados &c%#peixe% &8peixes.");
    log("&8A vara foi reparada &c%#rep% &8vezes.");
    unset(x);
    stop();
    else;
    log("&8[MACRO] O Macro acaba de ser ligado &c%PLAYER%&8.");
    ifmatches(%DIRECTION%,N);&dir=NORTH;endif;
    ifmatches(%DIRECTION%,S);&dir=SOUTH;endif;
    ifmatches(%DIRECTION%,W);&dir=WEST;endif;
    ifmatches(%DIRECTION%,E);&dir=EAST;endif;
    do();
    echo(/home lava)
    gui(inventory);
    until(%GUI% == "GUIINVENTORY");

    wait(500ms);


    #slot = -1;

    foreach(&id_comidas[],#id_de_algo_inutil);
    getslot(%#id_de_algo_inutil%,#slot);
    if(#slot != -1); ///// caso #slot não seja -1:

    #foodid = #id_de_algo_inutil;
    break;
    endif;

    next;

    if((#slot != -1)&&(#slot != 44));

    slotclick(%#slot%,l,false);
    wait(500ms);

    keydown(ctrl);
    keyup(Q);

    wait(100ms);
    slotclick(44,l,false);
    wait(100ms);
    slotclick(%#slot%,l,false);
    endif;

    wait(500ms);



    do(100);
    if(%DURABILITY%<15);
    echo(/fix);
    wait(100ms);
    do;
    endif;
    loop;
    endif;
    }$$



     
  2. Lehcki

    Lehcki Craftlandiano
    VIP

    Afiliado:
    13 Dezembro 2012
    Mensagens:
    1,836
    Curtidas Recebidas:
    920
    Curtiu:
    353
    Sexo:
    Feminino
    Cubos:
    4,458.00
    Nick:
    Trashpoc
    Discord:
    Lehcki#8342
    Okay to vendo do celular então não testei no Mine exatamente mas vendo assim por cima dá pra ver uns erros,
    Quando ele dá echo(/home lava) logo no começo faltou um " ; "
    Perto do final tem um do(100); blá blá blá e um "do" antes do "endif;" tira ele pq ele n faz nada ali ( e vc n colocou um "loop"ou , " until" dps dele, tecnicamente esse "do" ainda está em aberto)
    Isso deve fazer parar de dar a msg de erro do script.
    Me parece que vc está tentando jogar o iten fora fazendo a macro apertar ctrl e q certo?
    Isso é legal mais meio besta, faz a macro clicar primeiro no slot e dps clicar num slot q n existe ( tipo -99) que ela joga o item pra fora do inv (mais fácil!)
    Exemplo:
    slotclick(%#slot%,l,false);
    wait(50ms);
    slotclick(-99,l,false);

    Espero ter ajudado
     
  3. lomexicano

    lomexicano Craftlandiano
    VIP

    Afiliado:
    20 Agosto 2013
    Mensagens:
    622
    Curtidas Recebidas:
    822
    Curtiu:
    743
    Sexo:
    Masculino
    Ocupação:
    Mestrando...
    Localização:
    Rio Grande...
    Cubos:
    2,387.00
    Nick:
    lomexicano
    Discord:
    lomexicano
    YouTube:
    LoMexicano
    #3 lomexicano, 24 Novembro 2019
    Última edição: 24 Novembro 2019
    O erro de script que está sendo gerado está nesta última parte:

    Código:
    do(100);
    if(%DURABILITY%<15);
    echo(/fix);
    wait(100ms);
    do;
    endif;
    loop;
    Você iniciou dois do(), que necessitam ser finalizados em um loop, um until ou um while (cada). Você também iniciou um If, que necessita um endif.

    Esta última parte pode ficar assim:

    Código:
    Do(100);
    if(%DURABILITY%<15);
    echo(/fix);
    wait(500ms);
    endif;
    Wait(500ms); // delay que será repetido 100 vezes;
    loop;
    
    Bom, minhas dicas:
    Na parte do interruptor da macro, lá no começo, você esqueceu de setar x como true quando a macro é ligada "set(x)". Além disso, deixou o endif (vinculado à alavanca) lá no final do código, mas ele funcionaria já ali em cima :)

    Código:
    if(x);
        log("&8[MACRO] O Macro foi &cDESLIGADO&8!");
        log("&8Foram pescados &c%#peixe% &8peixes.");
        log("&8A vara foi reparada &c%#rep% &8vezes.");
        unset(x);
        stop();
    else;
        log("&8[MACRO] O Macro acaba de ser ligado &c%PLAYER%&8.");
        Set(x);
    Endif;
    Outra coisa é que, para dropar um item fora, basta o comando slotclick(-999). Os comandos keydown e keyup não podem ser aplicados à teclas como Q e Ctrl ;)

    Quando o esquema estiver funcionando, lembre-se de adicionar um do()+loop que percorra todo o código que você quer repetir, pois da forma como está ele será executado apenas uma vez.

    Qualquer coisa estamos aí.
     
  4. SHORT

    SHORT Neutro

    Afiliado:
    8 Setembro 2019
    Mensagens:
    12
    Curtidas Recebidas:
    2
    Curtiu:
    3
    Sexo:
    Masculino
    Cubos:
    34.00
    Nick:
    SthorHd
    O macro simplesmente, está me levando para a /home lava com meu inv aberto, e nada mais.

    $${

    unset(&id_inutil[]);
    &id_inutil[] = 268; // Madeira
    &id_inutil[] = 269; // Madeira
    &id_inutil[] = 270; // Madeira
    &id_inutil[] = 271; // Madeira
    &id_inutil[] = 290; // Madeira

    &id_inutil[] = 272; // Pedra
    &id_inutil[] = 273; // Pedra
    &id_inutil[] = 274; // Pedra
    &id_inutil[] = 275; // Pedra
    &id_inutil[] = 291; // Pedra

    &id_inutil[] = 298; // Couro
    &id_inutil[] = 299; // Couro
    &id_inutil[] = 300; // Couro
    &id_inutil[] = 301; // Couro

    if(x);
    log("&8[MACRO] O Macro foi &cDESLIGADO&8!");
    log("&8Foram pescados &c%#peixe% &8peixes.");
    log("&8A vara foi reparada &c%#rep% &8vezes.");
    unset(x);
    stop();
    else;
    log("&8[MACRO] O Macro acaba de ser ligado &c%PLAYER%&8.");
    Set(x);
    Endif;
    ifmatches(%DIRECTION%,N);&dir=NORTH;endif;
    ifmatches(%DIRECTION%,S);&dir=SOUTH;endif;
    ifmatches(%DIRECTION%,W);&dir=WEST;endif;
    ifmatches(%DIRECTION%,E);&dir=EAST;endif;

    do();
    echo(/home lava);
    gui(inventory);
    until(%GUI% == "GUIINVENTORY");
    wait(500ms);
    #slot = -1;

    foreach(&id_comidas[],#id_de_algo_inutil);
    getslot(%#id_de_algo_inutil%,#slot);
    if(#slot != -1); ///// caso #slot não seja -1:

    #pescaid = #id_de_algo_inutil;
    break;
    endif;

    next;

    if((#slot != -1)&&(#slot != 44));

    slotclick(%#slot%,l,false);
    wait(500ms);
    slotclick(-999,l,false)
    wait(100ms);
    endif;
    wait(500ms);
    Do(100);
    if(%DURABILITY%<15);
    echo(/fix);
    wait(500ms);
    endif;
    Wait(500ms);
    loop;

    }$$
     
  5. lomexicano

    lomexicano Craftlandiano
    VIP

    Afiliado:
    20 Agosto 2013
    Mensagens:
    622
    Curtidas Recebidas:
    822
    Curtiu:
    743
    Sexo:
    Masculino
    Ocupação:
    Mestrando...
    Localização:
    Rio Grande...
    Cubos:
    2,387.00
    Nick:
    lomexicano
    Discord:
    lomexicano
    YouTube:
    LoMexicano
    Acho que você fez o foreach com o array errado.
    Não seria
    foreach(&id_inutil[],#id_de_algo_inutil) ? Você não tem um array chamado &id_comidas[]
     
  6. SHORT

    SHORT Neutro

    Afiliado:
    8 Setembro 2019
    Mensagens:
    12
    Curtidas Recebidas:
    2
    Curtiu:
    3
    Sexo:
    Masculino
    Cubos:
    34.00
    Nick:
    SthorHd
    #6 SHORT, 24 Novembro 2019
    Última edição: 24 Novembro 2019
    A
     
  7. SHORT

    SHORT Neutro

    Afiliado:
    8 Setembro 2019
    Mensagens:
    12
    Curtidas Recebidas:
    2
    Curtiu:
    3
    Sexo:
    Masculino
    Cubos:
    34.00
    Nick:
    SthorHd
    Ainda está fazendo a mesma coisa, eu tentei mudar pra vender e dps jogar fora. Mas não consegui, por isso, tentei recomeçar. Nessa minha alteração a macro simplesmente pesca, nada mais. Eu realmente preciso é de uma maneira para detectar que o inventário está cheio, após isso acho que irei saber terminar.

    Código:
    $${
    
    
    unset(&id_inutil[]);
    &id_inutil[] = 268; // Madeira
    &id_inutil[] = 269; // Madeira
    &id_inutil[] = 270; // Madeira
    &id_inutil[] = 271; // Madeira
    &id_inutil[] = 290; // Madeira
    
    &id_inutil[] = 272; // Pedra
    &id_inutil[] = 273; // Pedra
    &id_inutil[] = 274; // Pedra
    &id_inutil[] = 275; // Pedra
    &id_inutil[] = 291; // Pedra
    
    &id_inutil[] = 298; // Couro
    &id_inutil[] = 299; // Couro
    &id_inutil[] = 300; // Couro
    &id_inutil[] = 301; // Couro
    
    if(x);
    log("&8[MACRO] O Macro foi &4DESLIGADO, &c%PLAYER%$8.");
    unset(x);
    stop();
    else;
    log("&8[MACRO] O Macro acaba de ser $2LIGADO &c%PLAYER%&8.");
    Set(x);
    Endif;
    ifmatches(%DIRECTION%,N);&dir=NORTH;endif;
    ifmatches(%DIRECTION%,S);&dir=SOUTH;endif;
    ifmatches(%DIRECTION%,W);&dir=WEST;endif;
    ifmatches(%DIRECTION%,E);&dir=EAST;endif;
    
    do;
    PICK(346);
    KEY(USE);
    WAIT(1ms);
    KEY(USE);
    WAIT(1ms);
    if(%DURABILITY%<15);
    echo(/fix);
    ENDIF;
    LOOP;
    endif;
    do();
    
    }$$
     
  8. ZAYN

    ZAYN Neutro

    Afiliado:
    21 Novembro 2019
    Mensagens:
    12
    Curtidas Recebidas:
    4
    Curtiu:
    1
    Sexo:
    Masculino
    Ocupação:
    Estudo
    Localização:
    Brasilia
    Cubos:
    16.00
    Nick:
    LucasL
    Discord:
    ZAYN#6922
    Desculpa amigo não uso macro e nem gosto, eu espero que alguém te ajude nisso.
     
  9. SHORT

    SHORT Neutro

    Afiliado:
    8 Setembro 2019
    Mensagens:
    12
    Curtidas Recebidas:
    2
    Curtiu:
    3
    Sexo:
    Masculino
    Cubos:
    34.00
    Nick:
    SthorHd
Status do Tópico:
Não esta aberto para novas mensagens.