Seite 1 von 1

Python mit Sikuli

Verfasst: Mittwoch 18. Juni 2014, 15:11
von MasterofChronos
Hallo Leute, ich bin grade dabei mit Sikuli ( mit Python ) einen Bot für ein Spiel zu schreiben. Es geht um einen P-server von meinem Kumpel, also is das kein Problem mit dem Bot. Ich bin hier dabei Rohstoffe abzubauen, doch falls ich während ich am abbauen bin in einen Kampf gerate, möchte ich dass der script den Kampf ausführt und danach vortsetzt. Nur weiß ich nicht genau wie ich das in eine Schleife machen soll. Wäre nett wenn ihr mir helfen könntet^^

Re: Python mit Sikuli

Verfasst: Mittwoch 18. Juni 2014, 17:26
von Hyperion
Packe das Abbauen in eine Schleife und prüfe in dieser, ob Du angegriffen wirst. Wenn ja, dann verzweige zu einer Funktionalität, die sich um den Kampf kümmert, wenn nein, fahre mit dem Abbauen fort. Wenn diese häufig genug durchlaufen wird, sollte das klappen :-)

Dir ist jetzt schon klar, dass wir mit so wenig Infos nicht wirklich hilfreiche Antworten geben können?

Re: Python mit Sikuli

Verfasst: Mittwoch 18. Juni 2014, 17:33
von MasterofChronos
Erstmal danke ^^

Schau dir mal hier meinen Code an ( irgendwie muss das doch einfacher gehen ohne so oft "Kampf"-code zu haben oder?):

Code: Alles auswählen

Farm=exists("1401199171994.png")
battle=exists(Pattern("1401200566229.png").similar(0.90))
battle=exists(Pattern("1401200566229.png").similar(0.90))
battle=exists(Pattern("1401200566229.png").similar(0.90))
if battle:
    sleep(2)
    click("1401200566229.png")
    sleep(3)
    battlestillexists=exists(Pattern("1401201018293.png").similar(0.85))
    while battlestillexists:
        myturn=exists("1401200603922.png")
        if myturn:
            sleep(1)
            click(Pattern("1401200627725.png").exact())
            click(Pattern("1401201493183.png").similar(0.80))
            hover(Pattern("1401202250130.png").exact())
            sleep(1)
            click(Pattern("1401200627725.png").exact())
            click(Pattern("1401201493183.png").similar(0.80))
            sleep(1)
            click(Pattern("1401200642958.png").similar(0.90))
        battlestillexists=exists(Pattern("1401201018293.png").similar(0.85))
        sleep(3)
        click(Pattern("1401202648284.png").similar(0.85)) 
while Farm:
    weed1=exists(Pattern("1401198441700.png").similar(0.60))
    while weed1:
        sleep(5)
        battle=exists(Pattern("1401200566229.png").similar(0.90))
        if battle:
            sleep(2)
            click("1401200566229.png")
            sleep(3)
            battlestillexists=exists(Pattern("1401201018293.png").similar(0.85))
            while battlestillexists:
                myturn=exists("1401200603922.png")
                if myturn:
                    sleep(1)
                    click(Pattern("1401200627725.png").similar(0.90))
                    click(Pattern("1401201493183.png").similar(0.80))
                    hover(Pattern("1401202250130.png").exact())
                    sleep(1)
                    click(Pattern("1401200627725.png").similar(0.90))
                    click(Pattern("1401201493183.png").similar(0.80))
                    sleep(1)
                    click(Pattern("1401200642958.png").similar(0.90))
                battlestillexists=exists(Pattern("1401201018293.png").similar(0.85))
                sleep(3)
                click(Pattern("1401202648284.png").similar(0.85))
        click(Pattern("1401198441700.png").similar(0.60))
        sleep(10)
        lvlup=exists(Pattern("1401206103972.png").exact())
        if lvlup:
            click(Pattern("1401206136049.png").exact())
        weed1=exists(Pattern("1401198441700.png").similar(0.60))
    weed2=exists(Pattern("1401198753659.png").similar(0.60))
    while weed2:
        sleep(5)
        battle=exists(Pattern("1401200566229.png").similar(0.90))
        if battle:
            sleep(2)
            click("1401200566229.png")
            sleep(3)
            battlestillexists=exists(Pattern("1401201018293.png").similar(0.85))
            while battlestillexists:
                myturn=exists("1401200603922.png")
                if myturn:
                    sleep(1)
                    click(Pattern("1401200627725.png").similar(0.90))
                    click(Pattern("1401201493183.png").similar(0.80))
                    hover(Pattern("1401202250130.png").exact())
                    sleep(1)
                    click(Pattern("1401200627725.png").similar(0.90))
                    click(Pattern("1401201493183.png").similar(0.80))
                    sleep(1)
                    click(Pattern("1401200642958.png").similar(0.90))
                battlestillexists=exists(Pattern("1401201018293.png").similar(0.85))
                sleep(3)
                click(Pattern("1401202648284.png").similar(0.85))
        click(Pattern("1401198753659.png").similar(0.60))
        sleep(10)
        lvlup=exists(Pattern("1401206103972.png").exact())
        if lvlup:
            click(Pattern("1401206136049.png").exact())
        weed2=exists(Pattern("1401198753659.png").similar(0.60))
    wait(Pattern("1401198441700.png").similar(0.60),2000)
    Farm=exists("1401199171994.png")