[ Duvida ] Comportamento não planejado da macro

Discussão em 'Dúvidas resolvidas (macro)' iniciado por Xavier___, 10 Dezembro 2021.

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

    Xavier___ Neutro

    Afiliado:
    7 Dezembro 2021
    Mensagens:
    8
    Curtidas Recebidas:
    2
    Curtiu:
    5
    Sexo:
    Masculino
    Cubos:
    33.00
    Nick:
    TheKingOfXaviers
    Boa Tarde, recentemente eu estou a desenvolver uma macro para uma farm minha, mas estou tendo algumas dores de cabeça devido a alguns problemas dos quais eu desconheço como resolver

    O primeiro problema seria, que toda vez que era para a macro apertar shift ela, ela aperta esc e consequentemente não vende os itens

    O segundo seria em questão de uma variável estar sempre em 1, mesmo eu adicionando +1 nela, é isso e definitivamente um problema pois tem if, com condições vinculadas a ela.

    Codigo: https://pastebin.com/W4VWdUvP
     
  2. ThiagoSzz

    ThiagoSzz Craftlandiano

    Afiliado:
    17 Agosto 2012
    Mensagens:
    1,623
    Curtidas Recebidas:
    782
    Curtiu:
    1,192
    Sexo:
    Masculino
    Cubos:
    289.00
    Nick:
    ThiagoSzz
    Clan:
    FoF
    #2 ThiagoSzz, 10 Dezembro 2021
    Última edição: 13 Dezembro 2021
    Vamos ver...

    Esse primeiro problema está acontecendo pois você está utilizando os comandos keydown() e keyup() de maneira errada. Como pode ver na documentação, você deve utilizá-los não com nomes de teclas, mas sim com alguns valores que representam ações no jogo, como andar pra frente ("forward"), pular ("jump"), ou com um valor de 0 a 255 que represente um keycode do seu teclado.

    [​IMG]

    Nesse caso, como acho que você deve estar querendo fazer com que o jogador agache, você deve usar o parâmetro "sneak" ao invés de "shift".

    [​IMG]

    O motivo pelo qual está apertando "esc" é esse:

    [​IMG]

    Não entendi muito bem se isso faz parte da funcionalidade do seu script, senão, você pode só retirar essa linha do código.

    Já esse segundo problema está acontecendo por que você esqueceu de declarar o tipo da variável "@count" do seu script. Lembrando que mesmo se a variável for global, você precisará ainda indicar o tipo dela (# - numérica, & - string). Caso você não indique o tipo da variável com # ou &, você estará criando uma variável booleana (true/false). Portanto, executar operações matemáticas sobre uma variável booleana não faz sentido, e acho que o mod irá converter todos os valores iguais a zero para "0" (false) e todos os valores diferentes de zero para "1" (true).

    [​IMG]

    O resultado disso é:

    [​IMG]

    Deduzi que você quer criar uma variável numérica, então só precisa adicionar o "#" depois do "@".

    [​IMG]

    ps.: esqueci de atualizar os IFs

    O resultado disso é:

    [​IMG]

    Caso interesse, esse é o link de uma documentação não-oficial do mod. Lá você pode obter informações sobre o funcionamento de todas as ações, variáveis, eventos e parâmetros úteis pra criar seu script :)
     
    lomexicano e Xavier___ curtiram isso.
  3. Xavier___

    Xavier___ Neutro

    Afiliado:
    7 Dezembro 2021
    Mensagens:
    8
    Curtidas Recebidas:
    2
    Curtiu:
    5
    Sexo:
    Masculino
    Cubos:
    33.00
    Nick:
    TheKingOfXaviers
    Novamente você me salvou dessa vez XD, obrigado pela ajuda, tanto que eu estou usando essa própria documentação como base, mas devo ter me esquecido de olhar o keydown direito, mas, mesmo assim muito obrigado pela ajuda! :D

    PS: Ah sim é respondendo ao segundo problema, eu realmente não fazia ideia de que, tinha que colocar um "#" para identificar essa variável global como numérica, se não fosse por você, acho que eu estaria usando errado ate hoje xd
     
    ThiagoSzz curtiu isso.
  4. Xavier___

    Xavier___ Neutro

    Afiliado:
    7 Dezembro 2021
    Mensagens:
    8
    Curtidas Recebidas:
    2
    Curtiu:
    5
    Sexo:
    Masculino
    Cubos:
    33.00
    Nick:
    TheKingOfXaviers
    Quase que eu me esqueci, sobre a função do escape, e para fechar o gui do inventario, aparentemente ele esta abrindo o esc também, não sei o motivo exato, você saberia de alguma outra função que faz algo semelhante?
     
  5. ThiagoSzz

    ThiagoSzz Craftlandiano

    Afiliado:
    17 Agosto 2012
    Mensagens:
    1,623
    Curtidas Recebidas:
    782
    Curtiu:
    1,192
    Sexo:
    Masculino
    Cubos:
    289.00
    Nick:
    ThiagoSzz
    Clan:
    FoF
    Você pode usar o comando gui() pra fazer isso.

    [​IMG]

    Você pode abrir (e fechar) os menus do jogo com ele. Por exemplo, se você quiser abrir o inventário, use o gui(inventory). Para fechar qualquer GUI aberto use apenas gui().

    Pra verificar qual GUI está aberto no momento você pode checar o valor da variável %GUI%.

    [​IMG]
     
    Xavier___ e lomexicano curtiram isso.
Status do Tópico:
Não esta aberto para novas mensagens.