mpcabete / bombcrypto-bot

This is a python bot that automatically logs in, clicks the new button, and sends heroes to work in the bombcrypto game. It is fully open source and free.
819 stars 538 forks source link

Sending wrong hero to home// Mandando Hero errado pra casa #586

Closed R2Ngg closed 2 years ago

R2Ngg commented 2 years ago

[EN-US] If 2 heroes are on the same page, the bot sends one home and the second doesn't go. The bot clicks on another hero, because when sending the first one, the hero sequence changes. Has anyone managed to resolve this?

[PT-BR] Caso 2 heróis estejam na mesma página, o bot manda um pra casa e o segundo não vai. O bot clica em outro herói, pois ao mandar o primeiro, a sequência de heróis muda. Alguém conseguiu resolver isso?

fguide commented 2 years ago

Tente mudar a linha 406 para:

for position in reversed(heroes_positions):

Talvez ajude pois vai mandar na ordem invertida

Moscow85 commented 2 years ago

@fguide mano, estou quebrando a cabeça aqui para na hora em que o bot procura os herois, ele role a lista até em baixo, e antes dele apertar o x para sair, ele role uma vez para cima, para verificar se algum heroi ficou sem ser enviado para casa, você poderia me ajudar?

def scroll():

commoms = positions(images['commom-text'], threshold = ct['commom'])
if (len(commoms) == 0):
    return
x,y,w,h = commoms[len(commoms)-1]

# pyautogui.moveTo(x,y,1)

if not c['use_click_and_drag_instead_of_scroll']:
    pyautogui.scroll(-c['scroll_size'])
else:
    **pyautogui.dragRel(0,-c['click_and_drag_amount'],duration=1, button='left')**

estou tentando mexer nessa parte, mas não deu certo, pois quando modifico para ele rolar para cima, ele rola uma vez para baixo e uma vez para cima, faz esse=a sequencia 3 vezes e aperta o botão vermelho, voltando para o mapa.

fguide commented 2 years ago

@Moscow85

Não seria mais fácil você diminuir o click_and_drag_amount pela metade por exemplo e adicionar mais vezes no scroll_attemps para ele fazer todos os herois? Dessa forma ele vai fazer o scroll menor e tem menos chances de errar por posicao, eu imagino.

Estou perguntando porque nao sei como é o comportamento com a casa...

Moscow85 commented 2 years ago

@Moscow85

Não seria mais fácil você diminuir o click_and_drag_amount pela metade por exemplo e adicionar mais vezes no scroll_attemps para ele fazer todos os herois? Dessa forma ele vai fazer o scroll menor e tem menos chances de errar por posicao, eu imagino.

Estou perguntando porque nao sei como é o comportamento com a casa...

Então, assim não dá, justamente pelo comportamento do botão home, ele desce os já selecionados, escondendo os que não foram selecionados na ultima tela de rolagem, onde ficam 5 heróis, faltando no meu caso uma vaga a ser completa, rolando uma vez para cima apenas já me atenderia 100%.

fguide commented 2 years ago

@Moscow85

Entao consigo ajudar com uma ideia, porem nao testei, basicamente vc pode fazer uma função de scroll invertido, conforme abaixo:

def scroll_invert():

    commoms = positions(images['commom-text'], threshold = ct['commom'])
    if (len(commoms) == 0):
        return
    x,y,w,h = commoms[0]
    moveToWithRandomness(x,y,1)

    if not c['use_click_and_drag_instead_of_scroll']:
        pyautogui.scroll(c['scroll_size'])
    else:
        pyautogui.dragRel(0,c['click_and_drag_amount'],duration=1, button='left')

E na funcao refreshHeores, você adiciona o scroll invertido e a chamada da funcao send home, esta destacado a parte que adicionei:

    while(empty_scrolls_attempts >0):
        if c['select_heroes_mode'] == 'full':
            buttonsClicked = clickFullBarButtons()
        elif c['select_heroes_mode'] == 'green':
            buttonsClicked = clickGreenBarButtons()
        else:
            buttonsClicked = clickButtons()

        sendHeroesHome()

        empty_scrolls_attempts -= 1
        scroll()
        time.sleep(2)
    #parte adicionada
    scroll_invert()
    sendHeroesHome()
Moscow85 commented 2 years ago

@fguide mano, funcionou, só tive que mudar as linhas:

x,y,w,h = commoms[0] moveToWithRandomness(x,y,1) por:

x,y,w,h = commoms[len(commoms)-1] pyautogui.moveTo(x,y,1)

e seguir o que vc falou, ai ficou 100% Muito obrigado mano!

fguide commented 2 years ago

@fguide mano, funcionou, só tive que mudar as linhas:

x,y,w,h = commoms[0] moveToWithRandomness(x,y,1) por:

x,y,w,h = commoms[len(commoms)-1] pyautogui.moveTo(x,y,1)

e seguir o que vc falou, ai ficou 100% Muito obrigado mano!

Boa! quando for a moscow me traga uma garrafa de beluga! abraços

Gbetarelli commented 2 years ago

alguem pode me ensinar como faz?

J3Z1N63R57 commented 2 years ago

can someone help me ?

---> Some configs can be found in the config.yaml file. ←[99m[2022-03-28 13:36:28] => 🏢 Search for heroes to work←[0m ←[99m[2022-03-28 13:36:28] => ⬆️ Processing last action..←[99m.←[99m. ←[99m[2022-03-28 13:36:37] => 🟩 0 green bars detected←[0m ←[99m[2022-03-28 13:36:37] => 🆗 5 buttons detected←[0m 1 heroes that should be sent home found hero already home, or home full(no dark home button) ←[99m[2022-03-28 13:36:40] => 🟩 0 green bars detected←[0m ←[99m[2022-03-28 13:36:41] => 🆗 5 buttons detected←[0m 1 heroes that should be sent home found hero already home, or home full(no dark home button) ←[99m[2022-03-28 13:36:44] => 🟩 0 green bars detected←[0m ←[99m[2022-03-28 13:36:44] => 🆗 5 buttons detected←[0m 1 heroes that should be sent home found

stale[bot] commented 2 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

megamandev commented 2 years ago

@fguide @Moscow85

poderiam disponibilizar o bot para download já funcionando a opcao enviar para a casa e conectar pelo login

stale[bot] commented 2 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.