Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Luna atualizou nesta SEXTA 13 - SOCORRO #60

Open
marciliacampos opened this issue May 13, 2022 · 24 comments
Open

Luna atualizou nesta SEXTA 13 - SOCORRO #60

marciliacampos opened this issue May 13, 2022 · 24 comments

Comments

@marciliacampos
Copy link

Olá Walter tudo bem? Salva nossa comunidade ... o Luna atualizou e nosso amado botinho está todo perdido, você vai atualizar ele para nós? sei que o Luna hoje não está dando grandes ganhos, mas continuamos aqui firme e forte nele, graças a você, podemos contar com a sua ajuda nessa atualização?
Grata

Marcília

@tgarrone
Copy link

tgarrone commented May 14, 2022

Verdade, pelo que eu vi... o BOT precisa reconhecer a imagem "Tip" e procurar 3 botões... o "X" o "OK" e o ">>"... sinistro kkkk ou então quando o bot não encontrar o botão, talvez atualizar a pagina, não sei se daria certo.. peguei algumas imagens ai que apareceu por aqui. segue:
Tip--
Tipok
Tipx
Tip
Tip1
Tip2
Tip3
Tip4

@Soulbadguy54
Copy link

Hello. Kindly waiting for new update to challenge the tips :)

@hznandu
Copy link

hznandu commented May 14, 2022

O grande problema que estou enfrentando é que as caixas aparecem em locais aletaórios da tela, não é fixada, com isso não consigo programar o bot em um único ponto. Seria o caso de programar para todos os pontos possíveis?

@walterdis
Copy link
Owner

Opa pessoal.

Então, eu abandonei o jogo, então não estou mais fazendo desenvolvimento em cima do bot.
Pelo que eu vi das imagens acima, a posição do popup não importa e é simples de resolver.

Tem um método chamado "handlePopup()" que eu fiz no arquivo helpers.py (lá embaixo)

É só seguir a mesma lógica dele e ir adicionando novas imagens de botões (ele já verifica 2 tipos de botões diferentes).

Depois alguém pode enviar um Pull Request pro código que eu aceito (não faço pois não estou jogando, então não tenho como testar).

Obs: Tirem fotos tipo a que vou mostrar abaixo (e que o @tgarrone mostrou também)

image

Aqui a parte do código que verifica os botões, só duplicar uma dessas 2 linhas e fazer a substituição do nome pelo das imagens que vocês irão tirar.

image

@tgarrone
Copy link

Na verdade precisa colocar no código para ele fazer uma varredura na tela para encontrar esses botões novos toda hora que acabar a luta, a hora que ele sai do descanso de 1:30, a hora que ele clica em boss... se alguém ai souber mexer em pyton faz um pull request ai, pois eu não sei fazer.

@walterdis
Copy link
Owner

walterdis commented May 14, 2022

Na verdade precisa colocar no código para ele fazer uma varredura na tela para encontrar esses botões novos toda hora que acabar a luta, a hora que ele sai do descanso de 1:30, a hora que ele clica em boss... se alguém ai souber mexer em pyton faz um pull request ai, pois eu não sei fazer.

Arquivo helpers.py lá no final no método handlePopup()

  • Duplica a linha 108 e 109.
  • Muda o "button-ok.png" para o nome do botão que vc quer q o bot também procure
  • Vai fazendo isso pra todos os outros botões daquela tool tip (se tiver 4 tipos de botões diferentes, duplica 4x aquela linha e coloca o nome de cada botão que você fez

Linha 108 verifica se existe a imagem do botão na tela, se existir, ele executa o que está na linha 109 que é clicar na imagem de destino (que é a mesma que verifica)

Ali atualmente ele verifica pelo botão de "ok" e por telas que tenham um "x" (uma das tooltips q aparecem tem, então ele já deve fechar ela atualmente)

Ex:

def handlePopup(screen=None):
    time.sleep(1)
    if screen is None:
        screen = printSreen()
    
    if(hasImage('button-ok.png', 0.8, screen)):
        clickDestinationImage('button-ok.png', None, 2, 0.8)

    if(hasImage('button-seta-dupla.png', 0.8, screen)):
        clickDestinationImage('button-seta-dupla.png', None, 2, 0.8)

    if(hasImage('button-x.png', 0.8, screen)):
        clickDestinationImage('button-x.png', None, 2, 0.8)```

@tgarrone
Copy link

Vou fazer e rodar aqui, vamos ver qual o comportamento.

@tgarrone
Copy link

Na verdade precisa colocar no código para ele fazer uma varredura na tela para encontrar esses botões novos toda hora que acabar a luta, a hora que ele sai do descanso de 1:30, a hora que ele clica em boss... se alguém ai souber mexer em pyton faz um pull request ai, pois eu não sei fazer.

Arquivo helpers.py lá no final no método handlePopup()

  • Duplica a linha 108 e 109.
  • Muda o "button-ok.png" para o nome do botão que vc quer q o bot também procure
  • Vai fazendo isso pra todos os outros botões daquela tool tip (se tiver 4 tipos de botões diferentes, duplica 4x aquela linha e coloca o nome de cada botão que você fez

Linha 108 verifica se existe a imagem do botão na tela, se existir, ele executa o que está na linha 109 que é clicar na imagem de destino (que é a mesma que verifica)

Ali atualmente ele verifica pelo botão de "ok" e por telas que tenham um "x" (uma das tooltips q aparecem tem, então ele já deve fechar ela atualmente)

Ex:

def handlePopup(screen=None):
    time.sleep(1)
    if screen is None:
        screen = printSreen()
    
    if(hasImage('button-ok.png', 0.8, screen)):
        clickDestinationImage('button-ok.png', None, 2, 0.8)

    if(hasImage('button-seta-dupla.png', 0.8, screen)):
        clickDestinationImage('button-seta-dupla.png', None, 2, 0.8)

    if(hasImage('button-x.png', 0.8, screen)):
        clickDestinationImage('button-x.png', None, 2, 0.8)```

Uma dúvida, ele verifica esse botão, apenas na hora que o bot volta do "time.sleep"? pois essas tips aparecem também na hora que você clica em "boss" ou após uma batalha, na área de seleção de heroínas, após uma batalha.

@grvasconcellos
Copy link

grvasconcellos commented May 14, 2022

Adicionei no arquivo index.py o comando "helper.handlePopup()" dentro das condicionais abaixo para procurar e checar os três botões de fechar, e deu certo.

Então tem que fazer a mudança dada pelo walterdis e mais essa abaixo:

if(isBossHuntStageSelect(screen)):
            print('Boss stage select screen found!!!')
            helper.handlePopup()
            bosshunt.execute()
            time.sleep(2)

        screen = helper.printSreen()
        if(isHeroSelectScreen(screen)):
            print('Hero select screen found!!!')
            helper.handlePopup()
            hasHero = heroselect.execute(screen)

@walterdis
Copy link
Owner

Na verdade precisa colocar no código para ele fazer uma varredura na tela para encontrar esses botões novos toda hora que acabar a luta, a hora que ele sai do descanso de 1:30, a hora que ele clica em boss... se alguém ai souber mexer em pyton faz um pull request ai, pois eu não sei fazer.

Arquivo helpers.py lá no final no método handlePopup()

  • Duplica a linha 108 e 109.
  • Muda o "button-ok.png" para o nome do botão que vc quer q o bot também procure
  • Vai fazendo isso pra todos os outros botões daquela tool tip (se tiver 4 tipos de botões diferentes, duplica 4x aquela linha e coloca o nome de cada botão que você fez

Linha 108 verifica se existe a imagem do botão na tela, se existir, ele executa o que está na linha 109 que é clicar na imagem de destino (que é a mesma que verifica)
Ali atualmente ele verifica pelo botão de "ok" e por telas que tenham um "x" (uma das tooltips q aparecem tem, então ele já deve fechar ela atualmente)
Ex:

def handlePopup(screen=None):
    time.sleep(1)
    if screen is None:
        screen = printSreen()
    
    if(hasImage('button-ok.png', 0.8, screen)):
        clickDestinationImage('button-ok.png', None, 2, 0.8)

    if(hasImage('button-seta-dupla.png', 0.8, screen)):
        clickDestinationImage('button-seta-dupla.png', None, 2, 0.8)

    if(hasImage('button-x.png', 0.8, screen)):
        clickDestinationImage('button-x.png', None, 2, 0.8)```

Uma dúvida, ele verifica esse botão, apenas na hora que o bot volta do "time.sleep"? pois essas tips aparecem também na hora que você clica em "boss" ou após uma batalha, na área de seleção de heroínas, após uma batalha.

handlePopup() é um método, você pode usar ele em diversas partes do código.
Se abrires o index.py, vais ver que ele é usado na linha 96 aproximadamente, coloquei ele ali para ser executado em praticamente todos os casos ;)

@walterdis
Copy link
Owner

Adicionei no arquivo index.py o comando "helper.handlePopup()" dentro das condicionais abaixo para procurar e checar os três botões de fechar, e deu certo.

Então tem que fazer a mudança dada pelo walterdis e mais essa abaixo:

if(isBossHuntStageSelect(screen)):
            print('Boss stage select screen found!!!')
            helper.handlePopup()
            bosshunt.execute()
            time.sleep(2)

        screen = helper.printSreen()
        if(isHeroSelectScreen(screen)):
            print('Hero select screen found!!!')
            helper.handlePopup()
            hasHero = heroselect.execute(screen)

Da uma olhada na linha 96, já tem a chamada ali, nesse seu caso, ele vai chamar 2 vezes seguidas quase

@grvasconcellos
Copy link

grvasconcellos commented May 14, 2022

Obs.: Não sou programador, então não tenho conhecimento técnico aprofundado, mas alterando apenas o botao-seta-dupla.png não funcionou para mim. Agora fazendo o que fiz acima fez com que o bot fechasse os pop-ups na tela de seleção de boss e de hero.

Aliás, muito obrigado pelo serviço prestado. Estou rodando o bot tem dois meses já, sem problemas.

@walterdis
Copy link
Owner

Obs.: Não sou programador, então não tenho conhecimento técnico aprofundado, mas alterando apenas o botao-seta-dupla.png não funcionou para mim. Agora fazendo o que fiz acima fez com que o bot fechasse os pop-ups na tela de seleção de boss e de hero.

Aliás, muito obrigado pelo serviço prestado. Estou rodando o bot tem dois meses já, sem problemas.

Então deixa assim, time que esta ganhando não se mexe 😁
Qualquer coisa da um toque que auxilio no que puder.

@grvasconcellos
Copy link

Obs.: Não sou programador, então não tenho conhecimento técnico aprofundado, mas alterando apenas o botao-seta-dupla.png não funcionou para mim. Agora fazendo o que fiz acima fez com que o bot fechasse os pop-ups na tela de seleção de boss e de hero.
Aliás, muito obrigado pelo serviço prestado. Estou rodando o bot tem dois meses já, sem problemas.

Então deixa assim, time que esta ganhando não se mexe 😁 Qualquer coisa da um toque que auxilio no que puder.

Agora deu errado quando o pop-up aparece no "Boss Select", o bot tenta clicar no Boss disponível ou arrastar a tela e não consegue porque o pop-up impede. Vou tentar encontrar no código para checar pop-ups no ínicio dessa tela.

@walterdis
Copy link
Owner

Obs.: Não sou programador, então não tenho conhecimento técnico aprofundado, mas alterando apenas o botao-seta-dupla.png não funcionou para mim. Agora fazendo o que fiz acima fez com que o bot fechasse os pop-ups na tela de seleção de boss e de hero.
Aliás, muito obrigado pelo serviço prestado. Estou rodando o bot tem dois meses já, sem problemas.

Então deixa assim, time que esta ganhando não se mexe 😁 Qualquer coisa da um toque que auxilio no que puder.

Agora deu errado quando o pop-up aparece no "Boss Select", o bot tenta clicar no Boss disponível ou arrastar a tela e não consegue porque o pop-up impede. Vou tentar encontrar no código para checar pop-ups no ínicio dessa tela.

Arrastar a tela no caso na horizontal?
Se for isso, testa no bosshunt.py na linha 54 tem o método mapSelect()
Adiciona o helper.handlePopup() logo abaixo do while(True)

def mapSelect(screen):
    while(True):
        helper.handlePopup()
        if(selectAvailableStage(screen)):
            print('Available boss found!!!')
            break

        if(isLastStageLockedShowing(screen)):
            print('Last stage found but no available stages to fight!')
            break

        if(scrollLastCompletedStagePosition()):
            continue

@tgarrone
Copy link

tgarrone commented May 14, 2022

Estou testando ainda... eu deixei ele rodando e originalmente quando apareceu a Tip (fecha no X) depois do time.sleep ele estava tentando clicar no BOSS ao invés de fechar a Tip... Porééémmmm eu fiz o recorte novamente do X e rodei o bot novamente, então ele fechou a TIP e depois foi para o Boss... estou testando ainda.. vamos ver como ele se comporta... vou atualizando por aqui.

Fiz esse recorte novamente:
button-x

@hznandu
Copy link

hznandu commented May 15, 2022

Estou testando ainda... eu deixei ele rodando e originalmente quando apareceu a Tip (fecha no X) depois do time.sleep ele estava tentando clicar no BOSS ao invés de fechar a Tip... Porééémmmm eu fiz o recorte novamente do X e rodei o bot novamente, então ele fechou a TIP e depois foi para o Boss... estou testando ainda.. vamos ver como ele se comporta... vou atualizando por aqui.

Fiz esse recorte novamente: button-x

Você poderia disponibilizar as suas modificações no código aqui? Agradeço!

@tgarrone
Copy link

Estou testando ainda... eu deixei ele rodando e originalmente quando apareceu a Tip (fecha no X) depois do time.sleep ele estava tentando clicar no BOSS ao invés de fechar a Tip... Porééémmmm eu fiz o recorte novamente do X e rodei o bot novamente, então ele fechou a TIP e depois foi para o Boss... estou testando ainda.. vamos ver como ele se comporta... vou atualizando por aqui.
Fiz esse recorte novamente: button-x

Você poderia disponibilizar as suas modificações no código aqui? Agradeço!

Sim, vou deixar rodando aqui, amanha volto para ver como foi.

@tgarrone
Copy link

Walter, tem como eu colocar para o BOT pesquisar essas popup das TIPs, assim que ele clica no "boss" e abre a tela de select warrior? pois essas Tips as vezes aparece nesse momento e o BOT está tentando pesquisar guerreiras com vida para adicionar porém tem uma popup na frente.. queria colocar o comando para veririficar a popup antes dele pesquisar as guerreiras com energia. "helper.handlePopup()"

@walterdis
Copy link
Owner

Walter, tem como eu colocar para o BOT pesquisar essas popup das TIPs, assim que ele clica no "boss" e abre a tela de select warrior? pois essas Tips as vezes aparece nesse momento e o BOT está tentando pesquisar guerreiras com vida para adicionar porém tem uma popup na frente.. queria colocar o comando para veririficar a popup antes dele pesquisar as guerreiras com energia. "helper.handlePopup()"

Abre o heroselect.py e veja se dessa forma resolve

def execute(screen):
    helper.handlePopup()
    
    removeDepletedHeroes(screen)

    sleep(1)

    hasHeroes = selectHeroes()
    startFight()

    return hasHeroes

@tgarrone
Copy link

Walter, tem como eu colocar para o BOT pesquisar essas popup das TIPs, assim que ele clica no "boss" e abre a tela de select warrior? pois essas Tips as vezes aparece nesse momento e o BOT está tentando pesquisar guerreiras com vida para adicionar porém tem uma popup na frente.. queria colocar o comando para veririficar a popup antes dele pesquisar as guerreiras com energia. "helper.handlePopup()"

Abre o heroselect.py e veja se dessa forma resolve

def execute(screen):
    helper.handlePopup()
    
    removeDepletedHeroes(screen)

    sleep(1)

    hasHeroes = selectHeroes()
    startFight()

    return hasHeroes

show, vou testar

@DoniniII
Copy link

DoniniII commented May 23, 2022

obrigado Walter por disponibilizar e estar ajudando no bot do Luna Rush, fiz todos os procedimentos acima, o bot funcionou só que ainda depois de um tempo trabalhando, travava na tela de selecionar o mapa quando tinha a TIP, tive que colocar o chamado para verificar as popup alem do arquivo heroselect, que vc tinha mencionado, tambem no arquivo booshunt, dai funcionou redondinho
luna booshunt
luna heroselect
.

@walterdis
Copy link
Owner

obrigado Walter por disponibilizar e estar ajudando no bot do Luna Rush, fiz todos os procedimentos acima, o bot funcionou só que ainda depois de um tempo trabalhando, travava na tela de selecionar o mapa quando tinha a TIP, tive que colocar o chamado para verificar as popup alem do arquivo heroselect, que vc tinha mencionado, tambem no arquivo booshunt, dai funcionou redondinho luna booshunt luna heroselect .

Opa, poisé
Teve gente que teve que por dentro do while de scroll de heroina por ex. Vai depender do caso 😁

@DoniniII
Copy link

DoniniII commented Jun 3, 2022

obrigado Walter por disponibilizar e estar ajudando no bot do Luna Rush, fiz todos os procedimentos acima, o bot funcionou só que ainda depois de um tempo trabalhando, travava na tela de selecionar o mapa quando tinha a TIP, tive que colocar o chamado para verificar as popup alem do arquivo heroselect, que vc tinha mencionado, tambem no arquivo booshunt, dai funcionou redondinho luna booshunt luna heroselect .

Opa, poisé Teve gente que teve que por dentro do while de scroll de heroina por ex. Vai depender do caso 😁

Acredita que ainda travava de vez em quando com as TIP, dai dupliquei as linhas de chamadas das popup, no bosshunt e heroselect, ficou chow 3 dias rodando direto sem erros.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants