Python mit Sikuli

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
MasterofChronos
User
Beiträge: 2
Registriert: Mittwoch 18. Juni 2014, 15:05

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^^
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

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?
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
MasterofChronos
User
Beiträge: 2
Registriert: Mittwoch 18. Juni 2014, 15:05

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")
Antworten