cryptotwinsbr / bomberland-bot

This is a free python bot program that crosses you to farm with auto click in space crypto NFT game, having fun :) Creator: Marlon Zanardi
169 stars 62 forks source link

Não move na tela play Play. Tudo o resto funciona. #62

Open s-areal opened 2 years ago

s-areal commented 2 years ago

Nao consigo avançar a tela play. Já fiz mais de 10 imagens, até tentei um formato mais retangular e não consigo que o bot mexa o rato neste tela. Há alguma coisa que possa fazer? Obrigado

s-areal commented 2 years ago

Já descobri. Estou numa maquina virtual que é lenta para os graficos do jogo. Mudei o timeout da tela e funcionou.

amentini commented 2 years ago

Estou tendo o mesmo problema, ele não detecta nenhuma ação na hora de apertar o botão Play. Tem como explicar em mais detalhes o que você fez para resolver?

amentini commented 2 years ago

Bom... Encontrei essa função do timeout do botão Play. Dentro das configurações do arquivo spacecrypto-bot.py eu alterei a linha 204 em:

def playSPG(): if clickBtn(images['play'], name='okPlay', timeout=30): dbg.console('played SPG','INFO', 'ambos')

Alterando o timeout=30 para timeout=50. Então o problema de não clicar no botão Play parou.

Por conta de eu estar rodando em uma máquina VPS de pouca potência, após clicar em Sign na carteira o loading que levaria para a tela do botão Play demora demais por conta do baixo processamento da máquina. Então se esgota o valor de 30 (acho que segundos) e o bot vai direto para o WARNING de que nenhuma função foi encontrada. Depois disso quando o Play aparece o bot não tem nenhuma configuração que detecta a tela Play, e isso faz com que nada aconteça e seja impossível logar.

As soluções são duas: 1 - Aumentar o timeout pra ele esperar o Play aparecer, assim ele segue a ordem de comando de Connect Wallet -> Sign -> Play, sem entrar no modo WARNING. 2 - Fazer como outros bots de Space, que tem a detecção da tela Play independente, então mesmo com o Warning assim que a opção Play aparecer na tela ele vai detectar o botão e clicar, caso contrário ele ficará eternamente em um loop F5 -> Connect Wallet -> Sign -> F5 -> Connect Wallet -> Sign ...

Eu testei deixar a tela direto no Play, com o botão livre, e iniciar o bot a partir dai e ocorreu o mesmo erro, ficou no Warning, indicando que realmente não há uma detecção independente para esta tela .

Em outra maquina mais lenta de apenas 1 CPU o timeout=50 não funcionou, precisei botar timeout=100 por exemplo.

Então minha sugestão para os devs é a de adicionar uma identificação para a tela Play, seguido da ordem de clicar no botão Play, independente da ordem de comandos que parte do Connect Wallet. Pois usuários que usam VPS como é o meu caso, que geralmente são maquinas lentas, ou máquinas virtuais onde é limitado a Ram e o CPU, Netbooks ou Laptops/PCs antigos, o tempo de carregamento do jogo na memória é muito maior que os 30 definido no timeout do botão Play, e cada maquina precisaria de um valor próprio. Todos esses usuários vão enfrentar esse problema de não logar consequentemente e ficar em um eterno loop sem conseguir jogar. É uma solução simples que resolveria esse potencial problema para diversos usuários com maquinas menos potente, fica a minha sugestão então para as próximas atualizações.

Grato!